Pheodor Lab

Блог веб-разработчика

Обзор бесплатных синтезаторов речи

Pheodor в Linux

 Распозновать речь мы научились хоть и, пока, только английскую, не будем стоять на месте, едем дальше, точнее в противоположную сторону - займемся преобразованием текста в голосовую речь.

 Наиболее популярные и свободные синтезаторы речи, которые мне известны и с которыми я имел практический опыт: Festival, eSpeak, OpenMary.
 Рассмотрим все 3 по порядку.

 Festival

ОС: Linux
Русский язык:
да (мужской голос)
Сайт: http://www.cstr.ed.ac.uk/projects/festival/

 Довольно продвинутый синтезатор, поставляется со следующими языковыми пакетами: английский (в английском и американском произношении), валлийский и испанский. Также существуют и другие пакеты, такие, как кастильский испанский, чешский, финский, хинди, итальянский, маратхи, польский, русский и телугу. Festival входит в поставку нескольких дистрибутивов Linux-а. Синтезатор довольно хорошо понимает русский язык, если поиграться с написанием слов, знаками препинания можно добиться вполне вменяемой речи.

  Установка

 В сети уже много материалов про установку фетиваля и прикрутке русского языка, поэтому особо расписывать не буду скажу лишь, что потребуется установить сам фестиваль (ставится из репозитория - festival) и русский языковой пакет, который также устанавливается из репозитория (festvox-ru), затем следует немного подправить конфиг. Хорошая статья по этому поводу есть здесь.

  Использование

 В консоли:

echo "Привет" | festival --tts --language russian

  eSpeak

ОС: Linux, Windows, Mac OS X, RISC OS
Русский язык:
да (мужской голос)
Сайт:
http://espeak.sourceforge.net/

 Простой, компактный, программный синтезатор речи. Если верить информации, eSpeak используется в мобильных операционных системах Android, начиная с версии 1.6, и Maemo. Версии под Windows и Linux регулярно обновляются вместе с исходным кодом, с остальными платформами дела обстоят хуже. Поддерживается множество языков, в том числе русский, английский, французский, испанский и т.д. Если брать в сравнение русскую речь - eSpeak уступает Festival, английский, франзузский, немецкий - на уровне.

  Установка

 В некоторых дистрибутивах линукс еСпик уже установлен, если нет - ставится он также просто из консоли (espeak), либо качаем нужную версию с официального сайта, например, в случае с Windows.

  Использование

 В консоли:

espeak "Привет мир!" -vru -s 100

Где:
-v язык (ru, en, de)
-s скорость (80-450)

  OpenMary

ОС: Linux, Windows, Mac OS X
Русский язык:
да (мужской голос)
Сайт:
http://mary.opendfki.de

 Молодой и, пока еще, не очень популярный синтезатор, но в то же время очень функциональный и продвинутый. Написан на Java, что позволяет ему быть платформонезависимым. Работает по принципу клиент-сервер. Обладает продвинутыми речевыми надстройками, с помощью которых можно указывать интонацию, тембр, скорость для каждого слова. Поставляется с клиентом, написанным на той же яве, с графическим интерфейсом.

  Установка

 Установка достаточно легкая и не требует определенных усилий, качаем ява-установщик (не забываем, что требуется Java). Запускаем установщик и следуем инструкциям. В определеный этап установки предложат выбрать языковые пакеты, которыми мы будем пользоваться, для себя я выбрал русский и английский.

  Использование

 Переходим в директорию установки, заходим в папку bin и запускаем сервер - maryserver. Как только сервер будет запущен, запускаем клиент - maryclient.

 

 
Если все было сделано правильно, после нажатия кнопки "Play" должно быть слышно произношения написанного текста. В папке example, директорией выше, есть примеры реализации клиентов под разные языки.

  Вывод

Festival: для средних домашних и корпоративных проектов (информирование о погоде, чтение писем, "язык" для ботов и т.п.).
eSpeak: для реализации малых задач (сообщение текущего времени, информирование о пробках, количестве писем в почтовом ящике, свободном месте на жестком диске и т.п.).
OpenMary: для крупных проектов (системы "умного дома", озвучка программ, чтение большого текста).

10 комментариев
Руслан
07.04.2012 18:57
Отличный обзор. Отдельное спасибо за OpenMary. Долго мучился с Festival-ем и freetts. Нужно вызывать говорилку из Java, причем синхронно, надеюсь сервер с этим справится (еще не пробовал :))
Искренне,
Ру

Ответить
nema
08.05.2012 11:12
Хорошо изложил. А можно озвученный текст сразу в WAV перекатать (например при помощи eSpesk)? Полдня просидел, что-то не выходит( Отпишись на почту, пожалуйста, по возможности. Спасибо)

Ответить
Pheodor
13.05.2012 23:55
Это делается опцией -w <wave file name>, т.е. например так:
espeak "проверка связи" -vru -w "./output.wav"

Ответить
Got a problem
03.06.2012 21:52
Прошу прощения, но... как работает Open Mary с вин.7 ? Делаю всё точно, как написано выше - программа не запускается. В чем может быть проблема?

Ответить
Pheodor
04.06.2012 19:05
Вы как и что пробуете запустить?

Ответить
Got a problem
04.06.2012 23:13
[ Использование

Переходим в директорию установки, заходим в папку bin и запускаем сервер - maryserver. Как только сервер будет запущен, запускаем клиент - maryclient. ]

У меня эти два файла в формате .bat . Когда запускаю, появляется окно, но потом закрывается и ничего не происходит. В диспетчере задач никаких новых процессов не отображается.

Ответить
Pheodor
10.06.2012 15:05
Попробуйте запустить эти файлы через командную строку.

Ответить
Neo
30.03.2016 20:57
сначала надо установить языковые движки через mary-component-installer.bat

Ответить
Владислав
23.02.2013 19:00
Спасибо автору за обзор. Ждем обзора для Андроида. Там по ходу ничего бесплатного русского нету.

Ответить
nikK
12.12.2013 18:46
спосиба за обзор. но я не понел можно-ли заставеть читать OpenMARY программы типа NVDA или balabolka которые работают на sapi4 или sapi 5? можноли подключить этот голос к ним?

Ответить
Написать комментарий