NV Speech Player. Klatt-базиран речев синтезатор написан на C++

Резюме

NV Speech Player е прототип на речев синтезатор със свободен лиценз и с отворен изходен код, който може да се използва с NVDA. Той генерира речта с използването на Klatt синтез, правейки го да звучи подобно на синтезатори като 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-те бяха направени много изследвания в областта на речевия синтез. Един от най-обещаващите модели на речев синтез, които се появиха беше формантно-честотния синтез, познат още като Klatt синтез. Някои добре известни Klatt синтезатори са Dectalk и Eloquence. Те са много удобни за използване от хората с нарушено зрение поради това, че са изключително пъргави, произношението им е гладко и предсказуемо и използват малко памет. Въпреки това, изследванията скоро преминаха към други форми на синтез например съставната реч, и макар че този метод е по-бавен, той беше много по-близо до човешкия глас. Това беше предимство при използване в приложения за широката публика като GPS навигатори или телефонни системи, но не непременно чак такова предимство за слепите, които в повечето случаи се интересуват предимно от пъргавостта и предсказуемостта пред красотата.

Макар че синтезатори като Dectalk и Eloquence продължиха да се поддържат и да са налични за почти 20 години, към момента е трудно човек да се сдобие с тях, като много компании казват, че те и техните варианти са изведени от употреба и няма да бъдат обновявани повече.

Съставният синтез вече започва да показва обещаващи резултати като заместител на формантно-честотния синтез, като пъргавостта и гладкостта се подобряват. Въпреки това, повечето, ако не всички от синтезаторите с приемливо качество, са комерсиални и доста скъпи.

Както Dectalk, така и Eloquence са комерсиални продукти със затворен изходен код. Въпреки това, има значително количество изходен код и научни материали върху Klatt синтеза, налични за общността. NV Speech Player се опитва да се възползва от това като бъде съвременен прототип на Klatt синтезатор, с надеждата да бъде заместител на синтезатори като Dectalk или Eloquence, или най-малкото да поднови изследванията и разговорите около този метод за синтез на реч.

Синтезаторът eSpeak, продукт със свободен лиценз и с отворен изходен код, се е доказал като заместител за доста хора в общността, но много хора, които го чуят много бързо отбелязват неговото "металическо" звучене и не желаят да продължат да го използват. Макар че създателите на NV Speech Player все още предпочитат eSpeak като техен избор на синтезатор, те все още се надяват да опитат и разберат по-добре тази странна съпротива към eSpeak, която може да има нещо общо със спектрално-честотния синтез на eSpeak, съпоставен с Klatt синтеза. Може да има общо и с факта, че съгласните са събрани от записана реч и следователно може да се възприема, че са били инжектирани в речевия поток.

Изпълнение

Самата речева машина е написана на 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 или други файлове.