Наткнулся недавно на такую замечательную программу Festival. Данная утилита является синтезатором речи, а именно с помощью нее можно заставить ваш ПК читать тексты, записывать прочтенный текст в звуковой файл. Мне показалась данная программа интересной и я решил разобрать как установить ее на Ubuntu 14.04 Trusty Tahr.
Собирать я решил из исходников и последнюю версию на данный момент 2.4. В репозиториях Ubuntu 14.04 Trusty Tahr находится версия 2.1. Так же разобрал как заставить Festival говорить по-русски.
Создаем временный каталог, куда будем скачивать необходимые файлы для сборки Festival
1 |
sudo mkdir /usr/src/temp |
Переходим в созданный каталог
1 |
cd /usr/src/temp |
Скачиваем архивы сборки Festival
1 2 3 4 5 |
sudo wget http://jakondo.ru/wp-content/uploads/file-manager/Festival/speech_tools-2.4-release.tar.gz sudo wget http://jakondo.ru/wp-content/uploads/file-manager/Festival/festival-2.4-release.tar.gz sudo wget http://jakondo.ru/wp-content/uploads/file-manager/Festival/festlex_CMU.tar.gz sudo wget http://jakondo.ru/wp-content/uploads/file-manager/Festival/festlex_OALD.tar.gz sudo wget http://jakondo.ru/wp-content/uploads/file-manager/Festival/festlex_POSLEX.tar.gz |
Распаковываем скачанные архивы
1 2 3 4 5 |
sudo tar -zxvf speech_tools-2.4-release.tar.gz -C /usr/src/ sudo tar -zxvf festival-2.4-release.tar.gz -C /usr/src/ sudo tar -xvf festlex_CMU.tar.gz -C /usr/src/ sudo tar -xvf festlex_OALD.tar.gz -C /usr/src/ sudo tar -xvf festlex_POSLEX.tar.gz -C /usr/src/ |
Установим зависимость, для успешной сборки пакетов
1 |
sudo apt-get install libncurses-dev |
Теперь можно приступать к сборке пакетов. Сперва соберем пакет speech_tools:
1 2 3 4 |
cd /usr/src/speech_tools sudo ./configure sudo make sudo make install |
Теперь собираем пакет festival:
1 2 3 4 5 |
cd .. cd festival sudo ./configure sudo make sudo make install |
Добавляем в PATH путь до бинарных файлов:
1 |
export PATH=$PATH:/usr/src/festival/bin/ |
Переходим во временный каталог:
1 |
cd /usr/src/temp |
Скачиваем звуковые файлы, для работы Festival (Английский, Русский). Английская речь, доступна в мужском и женском исполнении, а русская речь только в мужском.
1 2 |
sudo wget http://jakondo.ru/wp-content/uploads/file-manager/Festival/kal_diphone.tar.gz sudo wget http://jakondo.ru/wp-content/uploads/file-manager/Festival/msu_ru_nsh_clunits-0.5.tar.bz2 |
Создаем каталоги для расположения речевых данных:
1 2 |
sudo mkdir -p /usr/src/festival/lib/voices/english sudo mkdir -p /usr/src/festival/lib/voices/russian |
Распаковываем архив с английской речью:
1 |
sudo tar -zxvf kal_diphone.tar.gz -C /usr/src/festival/lib/voices/english/ |
Распаковываем архив с русской речью:
1 |
sudo tar -jxvf msu_ru_nsh_clunits-0.5.tar.bz2 -C /usr/src/festival/lib/voices/russian/ |
Внесем необходимые настройки для воспроизведения русской речи. Редактируем файл настройки языков:
1 |
sudo nano /usr/src/festival/lib/languages.scm |
В начало файла добавляем строки:
1 2 3 4 5 6 7 |
(define (language_russian) "(language_russian) Set up language parameters for Russian." (set! male1 voice_msu_ru_nsh_clunits) (male1) (Parameter.set 'Language 'russian) ) |
Находим строки:
1 2 |
((equal? language 'americanenglish) (language_american_english)) |
Ниже вставляем следующие строки:
1 2 |
((equal? language 'russian) (language_russian)) |
Сохраняем и закрываем файл настроек. На этом установка и настройка Festival завершена. Проверим работу программы, воспроизведем текст на английском:
1 |
echo "Hello world" | festival --tts |
Для воспроизведения текста на русском:
1 |
echo "Привет" | festival --tts --language russian |
Если все сделали правильно, то услышим голос на английском и на русском.
Если нужно установить использование русского голоса по-умолчанию, то редактируем файл:
1 |
sudo nano /usr/src/festival/lib/siteinit.scm |
Перед текстом:
1 |
(provide 'siteinit) |
Пишем следующее:
1 |
(set! voice_default 'voice_msu_ru_nsh_clunits) |
Теперь чтобы услышать воспроизведение на русском не нужно использовать ключ —language russian.
Festival так же может указанный текст записать в звуковой файл wav:
1 |
cat test.txt | text2wave > test.wav |
Вот так можно указать какой речевой язык использовать при создании звукового файла (пример. использовать русский язык):
1 |
cat test.txt | text2wave > test.wav -eval '(voice_msu_ru_nsh_clunits)' |
Если необходимо задать битрейт для выходящего звукового файла, то команда будет выглядеть так:
1 |
cat test.txt | text2wave > test.wav -F 8000 |
Запись воспроизведения текста с последующей конвертацией звукового файла в формат mp3:
1 |
cat text.txt | text2wave | lame - test.mp3 |
Чтобы добиться более приемлемого произношения текста, в текста можно указывать где использовать ударения в словах, для более точного произношения. Это делается знаками (+, —, .), например:
1 |
echo "До+брый день.. Хочу сказать спас+ибо Жак+онде. за предоставленный материал" | festival --tts --language russian |
С помощью данного синтезатора речи, можно реализовывать интересные вещи, с которыми я по возможности буду делится.
Понравилась или оказалась полезной статья, поблагодари автора
Оставить ответ