NV Speech Player. syntezator mowy oparty o technologię Klatta napisany na c++

Przegląd

NV Speech Player to bezpłatny, oparty na licencji open-source prototyp syntezatora mowy , którego można używać w NVDA. Generuje mowę przy użyciu syntezy Klatt'a, a jego głos jest trochę podobny do syntezatorów takich jak Dectalk i Eloquence.

Licencja i prawa autorskie

NV Speech Player Copyright (c) 2014 współpracownicy projektu NV Speech Player. NV Speech Player jest objęty licencją GNU General Public License (Version 2). Możesz udostępniać lub zmieniać to oprogramowanie w dowolny sposób tak długo, jak długo dołączona jest do niego ta licencja, a kod źródłowy jest dostępny dla wszystkich zainteresowanych. Dotyczy to oryginalnej i zmienionych kopii tego oprogramowania, oraz wszystkich utworów pochodnych. Aby uzyskać więcej szczegółów, możesz przeczytać licencję pod adresem: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html

Tło

W latach 70 i 80-tych interesowano się bardzo syntezą mowy ludzkiej. Jednym z najbardziej obiecujących modeli syntezy, była synteza formantowo-częstotliwościowa, znana jako synteza Klatt'a. Niektóre dobrze znane syntezatory bazujące na tej metodzie, to Dectalk i Eloquence. Są one dobrze przystosowane do użytku dla osób niewidomych, ponieważ są szybkie, ich wymowa jest wyraźna i przewidywalna, powodują niewielkie zużycie pamięci. O ile badania poszły w stronę innych form syntezy, takich jak synteza konkatenacyjna, która, chociaż wolniejsza, była bliższa naturalnego głosu ludzkiego. Była to zaleta dla ogólnych zastosowań, takich jak nawigacje GPS, systemy telefoniczne, chociaż niekoniecznie była to również zaleta dla niewidomych, którym bardziej zależy na responsywności i przewidywalności niż ładnym głosie.

O ile syntezatory Dectalk i Eloquence były udoskonalane i dostępne przez blisko 20 lat, teraz coraz trudniej je zdobyć, ponieważ firmy twierdzą, że cykl życia tych produktów został zakończony.

Synteza konkatenacyjna jest coraz bardziej obiecująca jako zastępnik , ponieważ jej responsywność i płynność się poprawia. Mimo to, większość jeśli nie wszystkie syntezatory akceptowalnej jakości, są komercyjne i raczej kosztowne.

Dectalk i Eloquence były komercyjnymi produktami o zamkniętych źródłach. Jednakże, istnieje znaczna ilość kodów źródłowych i materiałów badawczych na temat syntezy Klatt'a dostępnych dla społeczności. NV Speech Player próbuje wykorzystać tę sytuację i stać się nowoczesnym prototypem syntezatora Klatt'a, w nadziei, że zostanie zastępnikiem syntezatorów takich jak Dectalk lub Eloquence, albo przynajmniej wznowi badania i dyskusję wokół tej metody syntezy.

Syntezator eSpeak, będąc produktem darmowym i open-source, okazał się dobrym zamiennikiem dla pewnej liczby użytkowników, ale wiele słuchających go osób szybko podkreśla jego "metaliczne" brzmienie i nie jest w stanie go używać. Chociaż autorzy NV Speech Player preferują eSpeak jako syntezator, to jednak chcieliby zrozumieć lepiej tę dziwną niechęć do Espeak, która może mieć coś wspólnego z syntezą spektralno-częstotliwościową inną niż używana w syntezatorach Klatt. Może to również mieć związek z faktem, że spółgłoski są pozyskane z nagranej mowy i mogą przez to być odbierane jako wstrzyknięte do strumienia mowy.

Implementacja

Sam silnik syntezy jest napisany w C++ z wykorzystaniem nowoczesnych idiomów, ale blisko związany z implementacją klsyn-88, znalezionego pod https://linguistics.berkeley.edu/phonlab/resources/

eSpeak jest używany do zamiany tekstu na fonemy reprezentowane w IPA, korzystając z istniejącego przetwarzania słownika eSpeak. eSpeak można znaleźć na: https://espeak.sourceforge.net/

Dane formantów Klatt dla każdego fonemu zostały pozyskane głównie z projektu PyKlatt: https://code.google.com/p/pyklatt/ jakkolwiek zostały następnie ulepszone na bazie testów i powiązań z danymi eSpeak.

Zasady długości fonemów, przerw, prędkości i intonacji zostały ręcznie zakodowane w Python, chociaż próbowano skopiować intonację eSpeaka tak bardzo, jak to było możliwe.

Kompilacja NV Speech Player

Potrzebne będzie: - Python 3.7: http://www.python.org - SCons 3: http://www.scons.org/ - Visual Studio 2019 Community

Aby skompilować: uruchom scons

Po kompilacji, pojawi się plik nvSpeechPlayer_xxx.nvda-addon w głównym folderze projektu, gdzie xxx jest numerem wersji, lub poprawki git. Instalacja tego dodatku do NVDA pozwoli używać syntezatora Speech Player w NVDA. Uwaga: wszystko co niezbędne znajduje się w dodatku, nie trzeba kopiować zewnętrznych bibliotek i plików.