Найти тему

Создать аудиофайл из текста в Linux

Понадобилось мне как-то создать WAV файл из текстового файла в Ubuntu. Это было нужно для проигрывания сообщения в Asterisk для абонента. Сразу скажу, всё то же самое прекрасно работает в WSL 2 под Windows:

Windows Subsystem for Linux 2

Я работаю в Windows, в качестве дистрибутива у меня подсистема Ubuntu. Работаю под рутом.

Для преобразования текста в аудиофайл нам понадобится пакет festival, для поддержки русского языка дополнительно установим festvox-ru:

apt-get install festival festvox-ru
-2

Создаю текстовый файл C:\wav\test.txt с текстом, который нужно преобразовать в WAV.

-3

Содержимое файла test.txt:

-4

В подсистеме Linux он в /mnt/c/wav/test.txt.

-5

Выполняем:

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:

-6

Источник:
https://internet-lab.ru/text2wave_linux_windows

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.