NV Speech Player. Eine Klatt-basierte Sprachausgabe, geschrieben 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 ist urheberrechtlich geschützt (c) 2014 NV Speech Player Mitwirkende NV Speech Player unterliegt der GNU General Public License (Version 2). Es steht Ihnen frei, diese Software auf beliebige Weise weiterzugeben oder zu verändern, solange die Lizenz beigefügt ist und Sie den gesamten Quellcode jedem zur Verfügung stellen, der dies wünscht. Dies gilt sowohl für Original- als auch für modifizierte Kopien dieser Software sowie für alle abgeleiteten Werke. Für weitere Einzelheiten können Sie die Lizenz online einsehen unter: 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

Die Sprachausgabe selbst ist in C++ geschrieben und verwendet moderne Idiome, orientiert sich aber eng an der Implementierung von klsyn-88, zu finden unter http://linguistics.berkeley.edu/phonlab/resources/

eSpeak wird verwendet, um Text in Phoneme zu parsen, die in IPA repräsentiert sind, wobei die vorhandene eSpeak-Wörterbuchverarbeitung genutzt wird. eSpeak ist zu finden unter: http://espeak.sourceforge.net/

Die Klatt-Formant-Daten für jedes einzelne Phonem wurden größtenteils von einem Projekt namens PyKlatt gesammelt: http://code.google.com/p/pyklatt/. Sie wurden jedoch auf der Grundlage von Tests und Abgleich mit eSpeak-eigenen Daten weiter optimiert.

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

Sie benötigen: - Python 3.7: http://www.python.org - SCons 3: http://www.scons.org/ - Microsoft Visual Studio

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.