Шаги ==== 1. # apt-get install -y freeswitch-daemon 2. # fs_tts 3. # echo "1" | fs_tts file.wav 2 4. # echo "1" | fs_tts file.wav 2 extra-arg-so-it-works Фактический результат ===================== > # fs_tts > Usage: fs_tts [options] output [text] > > The output must end in the format, e.g., myfile.wav myfile.mp3 > -c path Path to the FS configurations. > -k path Path to the FS log directory > -l module[,module] Load additional modules (comma-separated) > -m path Path to the modules. > -r rate sampling rate > -v verbose > -e TTS engine > -V TTS voice > # echo "1" | fs_tts file.wav 2 > Couldn't open tts://flite|kal|1 > # echo "1" | fs_tts file.wav 2 extra-arg-so-it-works > Couldn't open tts://flite|kal|2 Ожидаемый результат =================== * Вне зависимости от наличия лишних аргументов всегда выбирается либо stdin, либо аргумент текста. * Лишние аргументы должны вызывать ошибку. Воспроизводимость ================= Воспроизводится на виртуальных машинах: [sisyphus] ALT Server 11.0 x86_64 freeswitch-daemon-1.10.12-alt4.x86_64 [p11] ALT Server 11.0 x86_64 freeswitch-daemon-1.10.12-alt2.x86_64
freeswitch-1:1.11.2-alt1 -> sisyphus: Thu Aug 13 2026 Anton Farygin <rider@altlinux> 1:1.11.2-alt1 - 1.11.1 -> 1.11.2 - fs_encode: treat only the part after the last dot as the file extension (Closes: 56577) - fs_encode: only use the output extension as a codec when it names a real codec; formats encoded by the file module (wav, flac, ogg, ...) now work as output, wav -> wav included (Closes: 47345, 47348) - fs_encode: do not encode twice when the output extension is claimed by mod_sndfile (gsm, ...): the file was gsm-compressed by the codec and then again by libsndfile, producing short noise-only files (Closes: 47344) - fs_tts: fixed argument handling: the text argument was ignored unless an extra argument followed it, and -i FILE was unreachable so the tool hung on stdin instead of reading the file; extra arguments are rejected now (Closes: 54889) - switch_xml: do not abort on assert in switch_xml_open_cfg() when the main configuration could not be loaded; fixes fs_tts/fs_encode/ tone2wav crash under a regular user (Closes: 47334) - fs_tts: load mod_dptools (tts:// provider) instead of mod_ssml removed upstream, and load the module of the selected TTS engine (mod_flite by default), so text-to-speech actually works (Closes: 47335) - mod_imagick: bound the lazy loading thread by the real page count; fixes endless re-reading of GIF frames with lazy=1 ending in an OOM kill (Closes: 47382) - mod_xml_rpc: build against the bundled xmlrpc-c as upstream intends instead of mixing bundled private headers with the system library; fixes the HTTP server failing to start and every /api, /webapi, /portal request answered with 404, which broke freeswitch-webui (Closes: 47399, 54894) - added a native systemd unit ordered after network-online.target; the unit generated from the SysV script started freeswitch before the network was up, so after a reboot sofia bound to the wrong address and clients could not connect (Closes: 47333) - freeswitch-vlc: require vlc-mini: without the VLC core plugins libvlc_new() returns NULL and mod_vlc fails with "cannot initialise VLC handle" on every call (Closes: 47403) - freeswitch-lang-he: package mod_say_he.so; the subpackage shipped the Hebrew prompts without the module that speaks them - packaged gentls_cert, the TLS certificate helper for sofia and verto - dropped mod_say_hu, mod_say_it and mod_say_nl from the build: they were built and thrown away, upstream ships no lang data for them - do not install the switch_eavesdrop unit test into the bin dir, the unnamespaced /usr/include/test headers, and the Flash-era htdocs leftovers - run the network-free part of tests/unit at build time (switch_utils, switch_hash, switch_event, switch_xml, switch_console); the binaries were already being built and thrown away