NV Speech Player. Движок синтеза речи на базе Klatt, написанный на c++

Обзор

NV Speech Player - это бесплатный прототип синтезатора речи с открытым исходным кодом, который может быть использован NVDA. Он генерирует речь с помощью Klatt synthesis, что делает его в некоторой степени похожим на синтезаторы речи, такие как Dectalk и Eloquence.

Лицензия и авторское право

Авторские права на NV Speech Player защищены (c) 2014 авторами NV Speech Player. На NV Speech Player распространяется Общая публичная лицензия GNU (версия 2). Вы можете свободно распространять или изменять это программное обеспечение любым удобным вам способом, при условии, что оно сопровождается лицензией, и вы предоставляете доступ ко всему исходному коду всем желающим. Это относится как к оригинальным, так и к модифицированным копиям этого программного обеспечения, а также к любым производным работам. Для получения более подробной информации вы можете ознакомиться с лицензией онлайн по адресу: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

В прошлом

В 70-х и 80-х годах проводилось много исследований в области синтеза речи. Одной из наиболее известных моделей синтеза, которая появилась на свет, был синтез формантных частот, известный как синтез Клатта. Некоторые известные синтезаторы Клатта - это Dectalk и Eloquence. Они хорошо подходят для использования слепыми, поскольку обладают высокой чувствительностью, их произношение плавное и предсказуемое, а также они не занимают много места в памяти. Однако вскоре исследования перешли к другим формам синтеза, таким как связная речь, поскольку, хотя это был медленнее, он был намного ближе к человеческому голосу. Это было преимуществом для использования в обычных приложениях, таких как GPS-навигаторы или телефонные системы, но не обязательно таким большим преимуществом для слепых, которые, как правило, больше заботятся о быстродействии и предсказуемости, чем о красоте.

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

В настоящее время конкатинативный синтез становится перспективной заменой, поскольку улучшается быстродействие и плавность работы. Однако большинство, если не все, синтезаторов приемлемого качества являются коммерческими и довольно дорогими.

И Dectalk, и Eloquence сами по себе были коммерческими продуктами с закрытым исходным кодом. Однако сообществу доступно значительное количество исходного кода и исследовательских материалов по Klatt synthesis. NV Speech Player пытается воспользоваться этим преимуществом, представляя собой современный прототип синтезатора Klatt, в надежде либо заменить такие синтезаторы, как Dectalk или Eloquence, либо, по крайней мере, возобновить исследования и обсуждение этого метода синтеза.

Синтезатор eSpeak, сам по себе являющийся бесплатным продуктом с открытым исходным кодом, хорошо зарекомендовал себя в качестве замены определенному числу людей в сообществе, но многие люди, которые его слышат, очень быстро отмечают его "металлическое" звучание и, похоже, не могут продолжать им пользоваться. Хотя авторы NV Speech Player по-прежнему предпочитают eSpeak в качестве своего синтезатора, они всё же надеются попытаться лучше понять это странное сопротивление eSpeak, которое, возможно, как-то связано со спектральной частотой eSpeak синтез - это синтез Клатта. Возможно, это также связано с тем фактом, что согласные также берутся из записанной речи и, следовательно, могут восприниматься как вводимые в речевой поток.

Реализация

Сам движок синтеза написан на C++ с использованием современных идиом, но в точности повторяет реализацию klsyn-88, найденную по адресу http://linguistics.berkeley.edu/phonlab/resources/

eSpeak используется для разбора текста на фонемы, представленные в IPA, с использованием существующего словаря eSpeak. eSpeak можно найти по адресу: http://espeak.sourceforge.net/

Данные о формантах Klatt для каждой отдельной фонемы были собраны в основном в рамках проекта под названием PyKlatt: http://code.google.com/p/pyklatt/ Однако они были дополнительно доработаны на основе тестирования и сопоставления с собственными данными eSpeak.

Правила для длительности фонем, пробелов, скорости и интонации были написаны вручную на Python, хотя собственные интонационные данные eSpeak были скопированы в максимально возможной степени.

Сборка NV Speech Player

Вам понадобятся: - Python 3.7: http://www.python.org - SCons 3: http://www.scons.org/ - Visual Studio 2019 Community

Для сборки: выполните scons

После сборки в корневом каталоге появится файл nvSpeechPlayer_xxx.nvda-addon, где xxx - это ревизия git или жёстко заданный номер версии. Установка этого дополнения в NVDA позволит вам использовать синтезатор Speech Player в NVDA. Обратите внимание, что всё, что вам нужно, содержится в дополнении, никаких дополнительных библиотек dll или файлов копировать не нужно.