Понадобилось мне как-то создать WAV файл из текстового файла в Ubuntu. Это было нужно для проигрывания сообщения в Asterisk для абонента. Сразу скажу, всё то же самое прекрасно работает в WSL 2 под Windows:
Я работаю в Windows, в качестве дистрибутива у меня подсистема Ubuntu. Работаю под рутом.
Для преобразования текста в аудиофайл нам понадобится пакет festival, для поддержки русского языка дополнительно установим festvox-ru:
apt-get install festival festvox-ru
Создаю текстовый файл C:\wav\test.txt с текстом, который нужно преобразовать в WAV.
Содержимое файла test.txt:
В подсистеме Linux он в /mnt/c/wav/test.txt.
Выполняем:
cat /mnt/c/wav/test.txt | /usr/bin/text2wave -f 8000 -eval '(voice_msu_ru_nsh_clunits)' > /mnt/c/wav/test.wav
Немного о параметрах:
- -eval '(voice_msu_ru_nsh_clunits)'
Принудительно включаем поддержку русского языка из пакета festvox-ru. - -f 8000
Выходная частота. Для asterisk следует устанавливать именно 8000.
Получаем нужный нам файл test.wav: