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()
- enqueue(string utterance)
(since 6.6)
- enumeration errorReason()
- string errorString()
- list<voice> findVoices(map criteria)
(since 6.6)
- pause(BoundaryHint boundaryHint)
- resume()
- say(string text)
- 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: { 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 passt, in der der Eingabetext verfasst ist, und zu dem Akzent der gewünschten Sprachausgabe. 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.
Eigenschaft Dokumentation
engine : string |
Die zur Synthetisierung von Text in Sprache verwendete Engine.
Wenn Sie die Engine ändern, wird die laufende Sprachausgabe gestoppt.
Auf den meisten Plattformen wird durch die Änderung der Engine die Liste von available locales und available voices aktualisiert.
engineCapabilities : enumeration |
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 engine-spezifische 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 enthält die Tonhöhe der Stimme, die von -1,0 bis 1,0 reicht.
Der Standardwert von 0,0 ist die normale Tonhöhe.
rate : double |
Diese Eigenschaft enthält die aktuelle Sprechgeschwindigkeit, die zwischen -1,0 und 1,0 liegt.
Der Standardwert von 0,0 ist der normale Sprachfluss.
state : enumeration |
Diese Eigenschaft enthält den aktuellen Status 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 Sprachausgabe 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
|
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.
void errorOccurred(enumeration reason, string errorString) |
Dieses Signal wird ausgegeben, nachdem ein Fehler aufgetreten ist und state auf TextToSpeech.Error
gesetzt wurde. Der Parameter reason spezifiziert den Fehlertyp, und errorString liefert eine menschenlesbare Fehlerbeschreibung.
Hinweis: Der entsprechende Handler ist onErrorOccurred
.
Siehe auch state, errorReason(), und errorString().
|
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().
Methode Dokumentation
list<string> availableEngines() |
Enthält die Liste der unterstützten Text-to-Speech-Engine-Plug-ins.
list<Voice> availableLocales() |
Enthält die Liste der Sprachumgebungen, die von der aktiven engine unterstützt werden.
list<Voice> availableVoices() |
Enthält die Liste der Stimmen, die für die aktuelle locale verfügbar sind.
|
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 Engine einen Fehler gemeldet hat.
Siehe auch QTextToSpeech::ErrorReason.
string errorString() |
Gibt die aktuelle Fehlermeldung der Engine zurück.
|
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.
pause(BoundaryHint boundaryHint) |
Hält die aktuelle Sprache bei boundaryHint an.
Ob die boundaryHint beachtet wird, hängt von der engine ab.
Siehe auch resume(), QTextToSpeech::BoundaryHint, und PauseResume.
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: { tts.say(input.text) } }
Hinweis: Alle laufenden Lesevorgänge werden angehalten, bevor mit dem Lesen des gerade synthetisierten Textes begonnen wird.
Der aktuelle Status 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.
stop(BoundaryHint boundaryHint) |
Stoppt das aktuelle Lesen bei boundaryHint und löscht die Warteschlange der anstehenden Texte.
Das Lesen kann nicht fortgesetzt werden. Ob boundaryHint beachtet wird, hängt von der Engine ab.
Siehe auch say(), enqueue(), pause(), und QTextToSpeech::BoundaryHint.
© 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.