Обзор речевых синтезаторов (Text To Speach, TTS) для Raspberry Pi

  • Автор
В процессе разработки приложений для Raspberry Pi иногда возникает потребность использования речевых синтезаторов, которые преобразуют текстовую информацию в речевую. В этой статье рассмотрим самые популярные речевые синтезаторы для Raspberry Pi

Festival TTS

Один из самых популярных речевых синтезаторов. К плюсам стоит отнести бесплатность и поддержку русского языка. К минусам - не очень качественный синтез речи.
Установка:  sudo apt-get install festival
Пример использования:  echo "This is a sample text" | festival --tts

ESpeak TTS

Установка:  sudo apt-get install espeak
Пример использования:  espeak -ven+f1 -k5 -s200 "This is a sample text"
Качество синтеза речи посредственное, но доступно много полезных настроек, например

-s - скорость речи, количество слов в минуту,
-g - длительность паузы между словами в милисекундах
-v[код языка][высота тональности и тип голоса - мужской женский],  пример -ven+f1 :  англоязычный женский голос,  тональность +1
-k - выделение слов, начинающихся с заглавной буквы.

В ESpeak TTS реализована поддержка языка разметки синтеза речи https://ru.wikipedia.org/wiki/Speech_Synthesis_Markup_Language

Google

Можно также использовать речевой синтезатор, встроенный в Google Translate.  Качество синтеза хорошее, но требуется подключение к интернету.
Пример скрипта g_speak.sh для использования Google Translate в качестве речевого синтезатора в вашем проекте:
#!/bin/bash
say() { local IFS=+;/usr/bin/mplayer -ao alsa -really-quiet -noconsolecontrols "http://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&q=$*&tl=ru"; }
say $*

Запускаем скрипт: ./g_speak.sh Текст, который нужно сказать

Pico TTS

Один из лучших синтезаторов речи для Raspberry Pi, который также используется в ОС Android
Установка:  sudo apt-get install libttspico-utils
Пример использования:  pico2wave -w sample.wav "This is a sample text" && aplay sample.wav

Примеры проектов, в которых использованы речевые синтезаторы:
http://raspberrypi.ru/blog/153.html
http://raspberrypi.ru/blog/636.html
http://raspberrypi.ru/blog/155.html

Raspberry Pi!

Комментарии:

mshock
Спасибо! Полезная статья.
andrey37
Не хватает yandex:
http://tts.voicetech.yandex.net/generate?text='text'&format=wav&lang=ru-RU&speaker='speaker'&emotion='emotion'&key='key'
speaker - женские голоса "jane", "oksana", "alyss" и "omazh", мужские голоса "zahar" и "ermil", "robot"
emotions -  "evil" (злой), "good" (доброжелательный), "neutral" (нейтральный)
key-'ваш ключ'
на выходе wav
примерно так:
import urllib2
url = "http://tts.voicetech.yandex.net/generate?text='text'&format=wav&lang=ru-RU&speaker='speaker'&emotion='emotion'&key='key'"
wavfile = urllib2.urlopen(url)
output = open('frase.wav','wb')
output.write(files.read())
output.close()

Для написания комментариев необходимо зарегистрироваться