at 18.03-beta 81 lines 2.6 kB view raw
1{ stdenv, pkgconfig, fetchurl, python3Packages 2, intltool, itstool, libtool, texinfo, autoreconfHook 3, glib, dotconf, libsndfile 4, withLibao ? true, libao 5, withPulse ? false, libpulseaudio 6, withAlsa ? false, alsaLib 7, withOss ? false 8, withFlite ? true, flite 9# , withFestival ? false, festival-freebsoft-utils 10, withEspeak ? true, espeak, sonic, pcaudiolib 11, withPico ? true, svox 12# , withIvona ? false, libdumbtts 13}: 14 15let 16 inherit (stdenv.lib) optional optionals; 17 inherit (python3Packages) python pyxdg wrapPython; 18 19 # speechd hard-codes espeak, even when built without support for it. 20 selectedDefaultModule = 21 if withEspeak then 22 "espeak-ng" 23 else if withPico then 24 "pico" 25 else if withFlite then 26 "flite" 27 else 28 throw "You need to enable at least one output module."; 29in stdenv.mkDerivation rec { 30 name = "speech-dispatcher-${version}"; 31 version = "0.8.8"; 32 33 src = fetchurl { 34 url = "http://www.freebsoft.org/pub/projects/speechd/${name}.tar.gz"; 35 sha256 = "1wvck00w9ixildaq6hlhnf6wa576y02ac96lp6932h3k1n08jaiw"; 36 }; 37 38 nativeBuildInputs = [ pkgconfig autoreconfHook intltool libtool itstool texinfo wrapPython ]; 39 40 buildInputs = [ glib dotconf libsndfile libao libpulseaudio alsaLib python ] 41 ++ optionals withEspeak [ espeak sonic pcaudiolib ] 42 ++ optional withFlite flite 43 ++ optional withPico svox 44 # TODO: add flint/festival support with festival-freebsoft-utils package 45 # ++ optional withFestival festival-freebsoft-utils 46 # TODO: add Ivona support with libdumbtts package 47 # ++ optional withIvona libdumbtts 48 ; 49 50 pythonPath = [ pyxdg ]; 51 52 configureFlags = [ 53 # Audio method falls back from left to right. 54 "--with-default-audio-method=\"libao,pulse,alsa,oss\"" 55 ] ++ optional withPulse "--with-pulse" 56 ++ optional withAlsa "--with-alsa" 57 ++ optional withLibao "--with-libao" 58 ++ optional withOss "--with-oss" 59 ++ optional withEspeak "--with-espeak-ng" 60 ++ optional withPico "--with-pico" 61 # ++ optional withFestival "--with-flint" 62 # ++ optional withIvona "--with-ivona" 63 ; 64 65 postPatch = '' 66 substituteInPlace config/speechd.conf --replace "DefaultModule espeak" "DefaultModule ${selectedDefaultModule}" 67 substituteInPlace src/modules/pico.c --replace "/usr/share/pico/lang" "${svox}/share/pico/lang" 68 ''; 69 70 postInstall = '' 71 wrapPythonPrograms 72 ''; 73 74 meta = with stdenv.lib; { 75 description = "Common interface to speech synthesis"; 76 homepage = https://devel.freebsoft.org/speechd; 77 license = licenses.gpl2Plus; 78 maintainers = with maintainers; [ berce ]; 79 platforms = platforms.linux; 80 }; 81}