TextToSpeech QML Type
Der Typ TextToSpeech ermöglicht den Zugriff auf Text-to-Speech-Engines. Mehr...
| Import Statement: | import QtTextToSpeech |
Eigenschaften
- engine : string
- engineCapabilities : enumeration
(since 6.6) - engineParameters : map
- locale : locale
- pitch : double
- rate : double
- state : enumeration
- voice : voice
- volume : double
Signale
- aboutToSynthesize(number id)
(since 6.6) - void errorOccurred(enumeration reason, string errorString)
- sayingWord(string word, int id, int start, int length)
(since 6.6)
Methoden
- list<string> availableEngines()
- list<voice> availableLocales()
- list<voice> availableVoices()
- int enqueue(string utterance)
(since 6.6) - enumeration errorReason()
- string errorString()
- list<voice> findVoices(map criteria)
(since 6.6) - void pause(BoundaryHint boundaryHint)
- void resume()
- void say(string text)
- void stop(BoundaryHint boundaryHint)
Ausführliche Beschreibung
Verwenden Sie say(), um das Lesen von Text auf dem Standard-Audiogerät zu starten, und stop(), pause() und resume(), um das Lesen des Textes zu steuern.
TextToSpeech { id: tts volume: volumeSlider.value pitch: pitchSlider.value rate: rateSlider.value ... RowLayout { Button { text: qsTr("Speak") enabled: [TextToSpeech.Paused, TextToSpeech.Ready].includes(tts.state) onClicked: { let voices = tts.availableVoices() tts.voice = voices[voicesComboBox.currentIndex] tts.say(input.text) } } Button { text: qsTr("Pause") enabled: tts.state == TextToSpeech.Speaking onClicked: tts.pause() visible: tts.engineCapabilities & TextToSpeech.Capabilities.PauseResume } Button { text: qsTr("Resume") enabled: tts.state == TextToSpeech.Paused onClicked: tts.resume() visible: tts.engineCapabilities & TextToSpeech.Capabilities.PauseResume } ...
Verwenden Sie synthesize(), um Text in PCM-Daten für die weitere Verarbeitung zu synthetisieren.
Um eine Stimme festzulegen, verwenden Sie die angehängte Eigenschaft VoiceSelector wie folgt:
TextToSpeech { VoiceSelector.locale: Qt.locale("en_UK") VoiceSelector.gender: Voice.Male }
Die erste Stimme, die alle angegebenen Kriterien erfüllt, wird verwendet. Wenn keine Stimme alle Kriterien erfüllt, wird die Stimme nicht geändert.
Alternativ können Sie findVoices() verwenden, um eine Liste der passenden Stimmen zu erhalten, oder availableVoices(), um die Liste der Stimmen zu erhalten, die das aktuelle Gebietsschema unterstützen. Ändern Sie die Eigenschaft locale, indem Sie eine der availableLocales() verwenden, die gut zu der Sprache, in der der Eingabetext verfasst ist, und zu dem Akzent der gewünschten Sprachausgabe passt. Dadurch wird die Liste der verfügbaren Stimmen auf den meisten Plattformen geändert. Verwenden Sie dann eine der verfügbaren Stimmen in der Eigenschaft voice.
Nicht jede Engine unterstützt alle Funktionen. Verwenden Sie die Funktion engineCapabilities(), um zu testen, welche Funktionen verfügbar sind, und passen Sie die Verwendung des Typs entsprechend an.
Hinweis: Welche Sprachumgebungen und Stimmen die Engine unterstützt, hängt normalerweise von der Konfiguration des Betriebssystems ab. Unter macOS z.B. können Endbenutzer die Stimmen über das Bedienfeld Barrierefreiheit in den Systemeinstellungen installieren.
Dokumentation der Eigenschaft
engine : string
Die Engine, die für die Synthetisierung von Text in Sprache verwendet wird.
Wenn Sie die Engine ändern, wird die laufende Sprachausgabe unterbrochen.
Auf den meisten Plattformen wird bei einem Wechsel der Engine die Liste von available locales und available voices aktualisiert.
engineCapabilities : enumeration [since 6.6]
Diese Eigenschaft enthält die von der aktuellen Engine implementierten Fähigkeiten.
Diese Eigenschaft wurde in Qt 6.6 eingeführt.
Siehe auch engine und QTextToSpeech::Capability.
engineParameters : map
Diese Eigenschaft enthält motorspezifische Parameter.
Siehe auch engine.
locale : locale
Diese Eigenschaft enthält das aktuell verwendete Gebietsschema.
Standardmäßig wird das Systemgebietsschema verwendet.
Siehe auch voice.
pitch : double
Diese Eigenschaft speichert die Tonhöhe der Stimme im Bereich von -1,0 bis 1,0.
Der Standardwert von 0,0 ist die normale Stimmlage.
rate : double
Diese Eigenschaft enthält die aktuelle Sprachrate, die von -1,0 bis 1,0 reicht.
Der Standardwert von 0,0 ist der normale Sprachfluss.
state : enumeration
Diese Eigenschaft enthält den aktuellen Zustand des Sprachsynthesizers.
onStateChanged: updateStateLabel(state) function updateStateLabel(state) { switch (state) { case TextToSpeech.Ready: statusLabel.text = qsTr("Ready") break case TextToSpeech.Speaking: statusLabel.text = qsTr("Speaking") break case TextToSpeech.Paused: statusLabel.text = qsTr("Paused...") break case TextToSpeech.Error: statusLabel.text = qsTr("Error!") break } }
Siehe auch QTextToSpeech::State, say(), stop(), und pause().
voice : voice
Diese Eigenschaft enthält die Stimme, die für die Sprache verwendet werden soll.
Die Stimme muss eine der voices available für die Engine sein.
Auf einigen Plattformen werden durch das Einstellen der Stimme andere Stimmattribute wie locale, pitch usw. geändert. Diese Änderungen lösen die Ausgabe von Signalen aus.
volume : double
Diese Eigenschaft enthält die aktuelle Lautstärke, die von 0,0 bis 1,0 reicht.
Der Standardwert ist die Standardlautstärke der Plattform.
Signal-Dokumentation
[since 6.6] aboutToSynthesize(number id)
Dieses Signal wird ausgegeben, kurz bevor die Engine beginnt, das Sprachaudio für id zu synthetisieren. Anwendungen können dieses Signal verwenden, um in letzter Minute Änderungen an voice Attributen vorzunehmen oder um den Prozess von Text zu verfolgen, der über enqueue() in die Warteschlange gestellt wurde.
Hinweis: Der entsprechende Handler ist onAboutToSynthesize.
Dieses Signal wurde in Qt 6.6 eingeführt.
Siehe auch enqueue() und voice.
void errorOccurred(enumeration reason, string errorString)
Dieses Signal wird ausgegeben, wenn ein Fehler aufgetreten ist und der Parameter state auf TextToSpeech.Error gesetzt wurde. Der Parameter reason gibt die Art des Fehlers an, und der Parameter errorString liefert eine von Menschen lesbare Fehlerbeschreibung.
Hinweis: Der entsprechende Handler ist onErrorOccurred.
Siehe auch state, errorReason(), und errorString().
[since 6.6] sayingWord(string word, int id, int start, int length)
Dieses Signal wird ausgegeben, wenn der word, d.h. der Textabschnitt, der durch start und length in der Äußerung id angegeben wird, auf dem Audiogerät abgespielt wird.
Hinweis: Dieses Signal setzt voraus, dass die Engine über die Fähigkeit WordByWordProgress verfügt.
Der folgende Code hebt das Wort hervor, das in einem TextArea input gesprochen wird:
onSayingWord: (word, id, start, length)=> { input.select(start, start + length) }
Hinweis: Der entsprechende Handler ist onSayingWord.
Dieses Signal wurde in Qt 6.6 eingeführt.
Siehe auch QTextToSpeech::Capability und say().
Dokumentation der Methode
list<string> availableEngines()
Enthält die Liste der unterstützten Text-to-Speech-Engine-Plug-ins.
list<voice> availableLocales()
Enthält die Liste der Gebietsschemata, die von dem aktiven engine unterstützt werden.
list<voice> availableVoices()
Enthält die Liste der verfügbaren Stimmen für die aktuelle locale.
[since 6.6] int enqueue(string utterance)
Fügt utterance in die Warteschlange der zu sprechenden Texte ein und beginnt zu sprechen.
Wenn die Engine state gerade Ready ist, wird utterance sofort gesprochen. Andernfalls beginnt die Maschine, utterance zu sprechen, sobald sie den aktuellen Text gesprochen hat.
Jedes Mal, wenn die Engine mit dem nächsten Texteintrag in der Warteschlange fortfährt, wird das Signal aboutToSynthesize() ausgesendet. Dies ermöglicht es Anwendungen, den Fortschritt zu verfolgen und Änderungen an den Sprachattributen in letzter Minute vorzunehmen.
Der Aufruf von stop() löscht die Warteschlange.
Diese Methode wurde in Qt 6.6 eingeführt.
Siehe auch say(), stop(), und aboutToSynthesize().
enumeration errorReason()
Gibt den Grund zurück, warum die Maschine einen Fehler gemeldet hat.
Siehe auch QTextToSpeech::ErrorReason.
string errorString()
Gibt die aktuelle Fehlermeldung des Motors zurück.
[since 6.6] list<voice> findVoices(map criteria)
Gibt die Liste der Stimmen zurück, die allen angegebenen criteria entsprechen.
criteria ist eine Zuordnung von Stimmeneigenschaftsnamen zu Eigenschaftswerten und unterstützt Kombinationen von Suchkriterien wie z.B.:
let daniel = tts.findVoices({ "name": "Daniel" }) let maleEnglish = tts.findVoices({ "gender": Voice.Male, "language": Qt.locale('en') })
Diese Methode wurde in Qt 6.6 eingeführt.
Siehe auch VoiceSelector.
void pause(BoundaryHint boundaryHint)
Unterbricht die laufende Rede bei boundaryHint.
Ob die boundaryHint beachtet wird, hängt von der engine ab.
Siehe auch resume(), QTextToSpeech::BoundaryHint, und PauseResume.
void resume()
Setzen Sie das Sprechen fort, nachdem pause() aufgerufen wurde.
Siehe auch pause().
void say(string text)
Startet die Synthese der text.
Diese Funktion startet die Sprachsynthese asynchron und liest den Text auf dem Standard-Audioausgabegerät vor.
RowLayout { Button { text: qsTr("Speak") enabled: [TextToSpeech.Paused, TextToSpeech.Ready].includes(tts.state) onClicked: { let voices = tts.availableVoices() tts.voice = voices[voicesComboBox.currentIndex] tts.say(input.text) } }
Hinweis: Alle laufenden Lesevorgänge werden angehalten, bevor mit dem Lesen des gerade synthetisierten Textes begonnen wird.
Der aktuelle Zustand ist über die Eigenschaft state verfügbar und wird auf QTextToSpeech::Speaking gesetzt, sobald das Lesen beginnt. Wenn das Lesen beendet ist, wird state auf QTextToSpeech::Ready gesetzt.
Siehe auch stop(), pause(), und resume().
void stop(BoundaryHint boundaryHint)
Stoppt das aktuelle Lesen unter boundaryHint und löscht die Warteschlange der anstehenden Texte.
Der Lesevorgang kann nicht fortgesetzt werden. Ob boundaryHint beachtet wird, hängt von der Engine ab.
Siehe auch say(), enqueue(), pause(), und QTextToSpeech::BoundaryHint.
© 2026 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.