NV Speech Player. A Klatt-based speech synthesis engine written in c++

Vue d'ensemble

NV Speech Player est un prototype de synthétiseur vocal libre et en open-source qui peut être utilisé par NVDA. Il génère la voix utilisant la synthèse Klatt, ce qui en fait est un peu similaires aux synthétiseurs vocaux Dectalk et Eloquence.

Licence et copyright

NV Speech Player is Copyright (c) 2014 NV Speech Player contributors NV Speech Player is covered by the GNU General Public License (Version 2). You are free to share or change this software in any way you like as long as it is accompanied by the license and you make all source code available to anyone who wants it. This applies to both original and modified copies of this software, plus any derivative works. For further details, you can view the license online at: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

Arrière-plan

Les années 70 et 80 ont vu beaucoup de recherches dans la synthèse vocale. Un des modèles de synthèse plus éminents qui est apparue était une synthèse de fréquence des formants appelée synthèse Klatt. Certains synthétiseurs Klatt connus sont Dectalk et Eloquence. Ils sont bien adaptés pour une utilisation par les aveugles car ils sont extrêmement sensibles, leur prononciation est souple et prévisible, et ils sont petit en mémoire occupée. Cependant, la recherche change bientôt sur d'autres formes de synthèse comme la voix concatinative, car bien que cela a été plus lente, il était beaucoup plus proche de la voix humaine. Il s'agissait d'un avantage pour l'utilisation dans les applications grand public tels que les appareils GPS ou les systèmes téléphoniques, mais pas nécessairement ainsi beaucoup d'avantage pour l'aveugle, qui à tendance à se soucier plus sur la réactivité et la prévisibilité que sur le plaisir.

Bien que les synthétiseurs tels que Dectalk et Eloquence continue à être maintenu et disponible depuis près de 20 ans, maintenant ils deviennent plus difficiles à obtenir, avec plusieurs sociétés, disant que ceux-ci et leurs variantes, ont été en fin-de-vie et ne serons plus mis à jour.

Les synthèse concatinative commence maintenant à s'avèrent prometteurs comme substitut de la réactivité et la souplesse s'améliore. Cependant, la qualité acceptable de la plupart sinon la totalité des synthétiseurs sont disponible sur le marché et sont assez chers.

Dectalk et Eloquence étaient des produits commerciaux de source fermé (non libres) eux-mêmes. Cependant, il y a une quantité considerable de code source et matériel de recherche sur la synthèse Klatt disponible pour la communauté. NV Speech Player essaie de tirer profit de cela en étant un prototype modern d'un synthétiseur Klatt, dans l'espoir soit d'être un remplacement pour les synthétiseurs comme Dectalk ou Eloquence, ou au moins de relancer la recherche et la conversation autour de cette méthode de synthèse.

Le synthétiseur eSpeak, lui-même un produit libre et open source s'est avéré bien en remplacement d'un certain nombre de personnes dans la Communauté, mais beaucoup de personnes qui l'entende sont très prompts à souligner sa voix "métallique" et n'arrive pas à continuer à l'utiliser. Bien que les auteurs de NV Speech Player préfèrent encore eSpeak comme leur synthétiseur de choix, ils espère toujours tenter de mieux comprendre cette étrange résistance à eSpeak susceptible qui peut avoir quelque chose à voir avec les fréquence spectrale de la synthèse d'eSpeak versets synthèse Klatt. Il peut-être aussi lié au fait que les consonnes sont également rassemblés à partir de la voix enregistré et peut donc être perçue comme étant injectés dans le flux de la voix.

Mise en œuvre

The synthesis engine itself is written in C++ using modern idioms, but closely following the implementation of klsyn-88, found at http://linguistics.berkeley.edu/phonlab/resources/

eSpeak is used to parse text into phonemes represented in IPA, making use of existing eSpeak dictionary processing. eSpeak can be found at: http://espeak.sourceforge.net/

The Klatt formant data for each individual phoneme was collected mostly from a project called PyKlatt: http://code.google.com/p/pyklatt/ However it has been further tweaked based on testing and matching with eSpeak's own data.

Les règles pour les longueurs de phonème, d'intervalle, de vitesse et d'intonation ont été codés à la main en Python, bien que l'intonation des données propre à eSpeak a été essayé de copier autant que possible.

Construction NV Speech Player

You will need: - Python 3.7: http://www.python.org - SCons 3: http://www.scons.org/ - Visual Studio 2019 Community

Pour construire: exécutez scons

Après la construction, il y aura un fichier nvSpeechPlayer_xxx.nvda-addon dans le répertoire racine, où xxx est le numéro de version de git révision ou codé en dur. Lorsque vous installer ce module complémentaire dans NVDA il vous permettra d'utiliser le synthétiseur Speech Player dans NVDA. Remarque tout ce dont vous avez besoin est dans le module complémentaire, aucune dll supplémentaire ou fichiers ne doivent être copiés.