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

Überblick

NV Speech Player ist ein kostenloser und quelloffener Prototyp eines Sprachsynthesizers, der von NVDA verwendet werden kann. Es erzeugt Sprache mit Hilfe der Klatt-Synthese und ähnelt damit in gewisser Weise Sprachausgaben wie Dectalk und Eloquence.

Lizenz und Kopierrecht

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

Hintergrund

In den 70er und 80er Jahren wurde viel Forschung in der Sprachsynthese betrieben. Eines der bekanntesten Synthesemodelle war eine Formant-Frequenz-Synthese, die als Klatt-Synthese bekannt ist. Einige bekannte Klatt-Synthesizer sind Dectalk und Eloquence. Sie eignen sich gut für den praktischen Einsatz für blinde Menschen, da sie extrem reaktionsschnell sind, ihre Aussprache weich und vorhersagbar ist und sie einen geringen Speicherbedarf haben. Doch die Forschung ging bald auf andere Formen der Synthese über, wie z.B. die konkatinative Sprachausgabe, denn obwohl diese langsamer war, war sie der menschlichen Stimme viel näher. Dies war ein Vorteil für den Einsatz in Mainstream-Anwendungen wie GPS-Geräten oder Telefonanlagen, aber nicht unbedingt ein Vorteil für Blinde Anwender. Den für blinde Anwender ist die Reaktionsfähigkeit und Vorhersagbarkeit wichtiger als die Schönheit der Stimme.

Obwohl Sprachausgaben wie Dectalk und Eloquence seit fast 20 Jahren gewartet und zur Verfügung gestellt wurden, sind sie nun immer schwieriger zu bekommen, da mehrere Firmen die standard und ihre benutzerdefinierten Varianten nicht mehr aktualisieren.

Die konkatinative Synthese beginnt nun vielversprechend als Ersatz dienen zu können , da sich die Reaktionsfähigkeit und Geschmeidigkeit verbessert. Allerdings sind die meisten, wenn nicht gar alle Synthesizer von akzeptabler Qualität kommerziell und ziemlich teuer.

Sowohl Dectalk als auch Eloquence waren selbst kommerzielle Closed-Source-Produkte. Allerdings steht der Community eine beträchtliche Menge an Quellcode und Forschungsmaterial zur Klatt-Synthese zur Verfügung. NV Speech Player versucht dies zu nutzen, indem er ein moderner Prototyp eines Klatt-Synthesizers ist. Wir hoffen mit dem NV Speech Player entweder ein Ersatz für Synthesizer wie Dectalk oder Eloquence zu ermöglichen, oder zumindest die Forschung und Diskussion über diese Synthesemethode wieder aufzunehmen.

Der eSpeak-Synthesizer, selbst ein freies und quelloffenes Produkt, hat sich als Ersatz für eine bestimmte Anzahl von Nutzern in der Community bewährt. Doch viele Anwender, die die Sprachausgabe zum ersten mal hören, sind extrem schnell dabei, auf den "metallischen" Sound hinzuweisen und können ihn nicht weiter verwenden. Obwohl die Autoren von NV Speech Player immer noch eSpeak als Synthesizer ihrer Wahl bevorzugen, hoffen sie dennoch diese seltsame Resistenz gegen eSpeak besser verstehen zu können, die etwas mit der spektralen Frequenzsynthese von eSpeak zu tun haben könnte. Es kann auch damit zusammenhängen, dass Konsonanten auch aus der aufgezeichneten Sprache gewonnen werden und dadurch so wahrgenommen werden, als wären sie in den Sprachstrom eingespeist worden.

Implementierung

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.

Die Regeln für Phonemlängen, Lücken, Geschwindigkeit und Intonation wurden in Python von Hand kodiert, wobei eSpeaks eigene Intonationsdaten so weit wie möglich kopiert wurden.

Building von NV Speech Player

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

Um aufzubauen: Scons ausführen

Nach der Erstellung wird es eine nvSpeechPlayer_xxx.nvda Addon-Datei im Stammverzeichnis geben, wobei xxx die Git-Revision oder die fest programmierte Versionsnummer ist. Wenn Sie diese Erweiterung in NVDA installieren, können Sie den Speech Player-Synthesizer in NVDA verwenden. Beachten Sie, dass alles, was Sie benötigen, in der Erweiterung enthalten ist. Es müssen keine zusätzlichen DLLs oder Dateien kopiert werden.