Qt TextToSpeech Engines
Qt TextToSpeech unterstützt mehrere Engine-Implementierungen für verschiedene Plattformen und mit unterschiedlichen Kompromissen zwischen Fähigkeiten, Verfügbarkeit und Laufzeitkosten.
Ein Motor kann ausgewählt werden, wenn eine Instanz von QTextToSpeech erstellt wird, oder bei einem bereits instanziierten Objekt durch Setzen der Eigenschaft engine. Wenn keine Engine angegeben wird, wird die bevorzugte Engine für die aktuelle Plattform verwendet. Rufen Sie availableEngines() auf, um die Liste der Motoren zu erhalten, die auf dem aktuellen System verwendet werden können. Dazu gehört auch eine "Mock"-Engine, die zu Testzwecken verwendet wird und nicht auf Zielsystemen eingesetzt werden sollte.
Beim Festlegen der Engine können Anwendungen eine QVariantMap mit Schlüssel/Wert-Paaren von engine-spezifischen Parametern an die Engine weitergeben. In den folgenden Abschnitten werden die für jede Engine unterstützten Konfigurationsparameter aufgeführt. Parameter, die von der Engine nicht unterstützt werden, werden stillschweigend ignoriert.
WinRT
Die "winrt"-Engine verwendet die APIs aus dem Windows.Media.SpeechSynthesis Namespace. Sie erfordert ein aktuelles Windows SDK und ist bei Verwendung des MinGW-Compilers nicht verfügbar. Die Engine bietet Zugang zu allen Stimmen, die für die Installation auf aktuellen Windows-Versionen verfügbar sind.
Die Implementierung verwendet QAudioSink von Qt Multimedia um den vom Synthesizer erzeugten PCM-Datenstrom auf einem Audiogerät abzuspielen.
Name | Typ | Bemerkungen |
---|---|---|
audioDevice | QAudioDevice |
SAPI
Die "sapi"-Engine verwendet das SAPI 5.3 Framework, das im Windows SDK enthalten ist. Sie bietet eine begrenzte Auswahl an Stimmen, mit reduzierter Qualität im Vergleich zur "winrt" Engine.
Die SAPI-Engine unterstützt keine engine-spezifischen Parameter.
Darwin
Die "darwin"-Engine verwendet das AVFoundation-Framework, das auf iOS-Geräten und unter macOS 10.15 verfügbar ist. Die Dokumentation des Frameworks gibt an, dass auch macOS 10.14 unterstützt wird, aber standardmäßig sind keine Stimmen auf dieser Plattform verfügbar.
Die Darwin-Engine unterstützt keine Engine-spezifischen Parameter.
macOS
Die "macos"-Engine verwendet das NSSpeechDispatcher-Framework von AppKit. Sie ist nur auf macOS-Systemen verfügbar, funktioniert aber auf macOS 10.14 sofort nach dem Auspacken. Die Anzahl der verfügbaren Stimmen ist im Vergleich zur iOS-Engine begrenzt.
Die macOS-Engine unterstützt keine engine-spezifischen Parameter.
Hinweis: Die "macos"-Engine verfügt nicht über die Funktion Synthesize. Die "darwin"-Engine ist die Standard- und bevorzugte Engine auf allen macOS- und iOS-Systemen, die von Qt unterstützt werden. Die macOS-Engine sollte nicht mehr verwendet werden und wird in Qt 6.8 entfernt werden.
Android
Die "android"-Engine ist die einzige Engine, die auf der Android-Plattform verfügbar ist. Sie verwendet das TextToSpeech-Paket, das wiederum mehrere Engine-Backends unterstützt.
Hinweis: Die "android"-Engine verfügt nicht über die Fähigkeit PauseResume.
Name | Typ | Bemerkungen |
---|---|---|
androidEngine | QString | Es gibt keine API in Qt, um die Liste der installierten Engines zu erhalten. |
Flite
Die "flite"-Engine verwendet den flite-Synthesizer. Der geringe Platzbedarf der Engine macht sie besonders nützlich für eingebettete Umgebungen. Das Plugin benötigt mindestens Flite 2.2 und verwendet QAudioSink von Qt Multimedia zum Rendern des erzeugten PCM-Datenstroms.
Das Engine-Plugin sucht nach Sprachbibliotheken in den Verzeichnissen, die in der Umgebungsvariablen LD_LIBRARY_PATH
aufgeführt sind, und greift auf gängige Bibliotheksspeicherorte wie /usr/lib
, /usr/lib64
und /usr/lib/x86_64-linux-gnu
zurück.
Wenn Flite als statische Bibliothek verwendet wird, müssen die gewünschten Sprachbibliotheken auch statisch in das Engine-Plugin eingebunden werden. Es ist derzeit keine Build-System-API für die Auswahl solcher Sprachbibliotheken bei der Konfiguration von Qt implementiert.
Name | Typ | Bemerkungen |
---|---|---|
audioDevice | QAudioDevice |
speech-dispatcher
Die "speechd"-Engine kommuniziert mit dem speech-dispatcher-Daemon und benötigt mindestens libspeechd 0.9.
Hinweis: Die speech-dispatcher-Engine verfügt nicht über die Funktionen WordByWordProgress oder Synthesize.
Die speech-dispatcher-Engine unterstützt keine engine-spezifischen Parameter.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.