Auf dieser Seite

TextToSpeech QML Type

Der Typ „TextToSpeech“ ermöglicht den Zugriff auf Text-to-Speech-Engines. Mehr...

Import Statement: import QtTextToSpeech

Eigenschaften

Signale

Methoden

Ausführliche Beschreibung

Verwenden Sie ` say()` (), um das Vorlesen von Text über das Standard-Audiogerät zu starten, sowie ` stop()`, ` pause()` und ` resume()`, um das Vorlesen 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
            }
    ...

Um Text zur weiteren Verarbeitung in PCM-Daten umzuwandeln, verwenden Sie `synthesize()`.

Um eine Stimme festzulegen, verwenden Sie die angehängte Eigenschaft „ VoiceSelector “ wie folgt:

TextToSpeech {
    VoiceSelector.locale: Qt.locale("en_UK")
    VoiceSelector.gender: Voice.Male
}

Es wird die erste Stimme verwendet, die alle angegebenen Kriterien erfüllt. Wenn keine Stimme alle Kriterien erfüllt, bleibt die Stimme unverändert.

Alternativ können Sie mit ` findVoices()` eine Liste der passenden Stimmen abrufen oder mit ` availableVoices()` die Liste der Stimmen abrufen, die die aktuelle Ländereinstellung unterstützen. Ändern Sie die Eigenschaft „ locale “, indem Sie eine der „ availableLocales()“-Funktionen verwenden, die gut zur Sprache des Eingabetextes und zum Akzent der gewünschten Sprachausgabe passt. Dadurch ändert sich auf den meisten Plattformen die Liste der verfügbaren Stimmen. Verwenden Sie anschließend eine der verfügbaren Stimmen in der Eigenschaft „ voice “.

Nicht jede Engine unterstützt alle Funktionen. Verwenden Sie die Funktion `engineCapabilities()`, um zu prüfen, 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 in der Regel von der Konfiguration des Betriebssystems ab. Unter macOS können Endbenutzer beispielsweise Stimmen über den Bereich „Barrierefreiheit“ in den Systemeinstellungen installieren.

Dokumentation zu den Eigenschaften

engine : string

Die Engine, die zur Text-zu-Sprache-Synthese verwendet wird.

Durch das Ändern der Engine wird die aktuelle Sprachausgabe unterbrochen.

Auf den meisten Plattformen wird durch den Wechsel der Engine die Liste unter available locales und available voices aktualisiert.

engineCapabilities : enumeration [since 6.6]

Diese Eigenschaft enthält die von der aktuellen Engine implementierten Funktionen.

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 die aktuell verwendete Locale.

Standardmäßig wird die System-Locale verwendet.

Siehe auch „ voice “.

pitch : double

Diese Eigenschaft gibt die Stimmhöhe an und reicht von -1,0 bis 1,0.

Der Standardwert 0,0 entspricht der normalen Sprechstimme.

rate : double

Diese Eigenschaft enthält die aktuelle Sprachgeschwindigkeit, deren Werte zwischen -1,0 und 1,0 liegen.

Der Standardwert 0,0 entspricht dem normalen Sprechfluss.

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 Sprachausgabe verwendet wird.

Die Stimme muss eine der für die Engine verfügbaren Stimmen sein ( voices available ).

Auf einigen Plattformen führt die Einstellung der Stimme zu Änderungen anderer Stimmenattribute wie „ locale “, „ pitch “ usw. Diese Änderungen lösen die Ausgabe von Signalen aus.

volume : double

Diese Eigenschaft enthält die aktuelle Lautstärke im Bereich von 0,0 bis 1,0.

Der Standardwert entspricht der Standardlautstärke der Plattform.

Signal-Dokumentation

[since 6.6] aboutToSynthesize(number id)

Dieses Signal wird unmittelbar vor dem Start des Engines ausgegeben, um die Sprachaudiodaten für id zu synthetisieren. Anwendungen können dieses Signal nutzen, um in letzter Minute Änderungen an den Attributen von voice vorzunehmen oder den Verarbeitungsprozess 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 ausgelöst, nachdem 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 für 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 ausgesendet, wenn der „ word “ – also der Textabschnitt, auf den in der Äußerung „ id “ durch „ start “ und „ length “ verwiesen wird – auf dem Audiogerät wiedergegeben wird.

Hinweis: Fürdieses Signal muss die Engine über die Funktion „ WordByWordProgress “ verfügen.

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()“.

Methodendokumentation

list<string> availableEngines()

Enthält die Liste der unterstützten Plug-ins für Text-to-Speech-Engines.

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 für das aktuelle ` locale` verfügbaren Stimmen.

[since 6.6] int enqueue(string utterance)

Fügt utterance zur Warteschlange der vorzusprechenden Texte hinzu und beginnt mit dem Vorlesen.

Wenn der Status „ state “ der Engine derzeit „ Ready “ lautet, wird „ utterance “ sofort vorgelesen. Andernfalls beginnt die Engine mit der Wiedergabe von „ utterance “, sobald sie den aktuellen Text vollständig vorgelesen hat.

Jedes Mal, wenn die Engine zum nächsten Texteintrag in der Warteschlange übergeht, wird das Signal „ aboutToSynthesize()“ ausgesendet. Dies ermöglicht es Anwendungen, den Fortschritt zu verfolgen und in letzter Minute Änderungen an den Sprachattributen vorzunehmen.

Der Aufruf von ` stop()` leert die Warteschlange.

Diese Methode wurde in Qt 6.6 eingeführt.

Siehe auch „ say()“, „ stop()“ und „ aboutToSynthesize()“.

enumeration errorReason()

Gibt den Grund zurück, aus dem die Engine einen Fehler gemeldet hat.

Siehe auch „ QTextToSpeech::ErrorReason “.

string errorString()

Gibt die aktuelle Fehlermeldung der Engine 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 Eigenschaftsnamen der Stimmen zu deren Werten und unterstützt Kombinationen von Suchkriterien wie beispielsweise:

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)

Hält die aktuelle Sprachausgabe unter boundaryHint an.

Ob die Angabe „ boundaryHint “ berücksichtigt wird, hängt von der Einstellung „ engine “ ab.

Siehe auch resume(), QTextToSpeech::BoundaryHint und PauseResume.

void resume()

Die Wiedergabe wird fortgesetzt, nachdem „ pause()“ aufgerufen wurde.

Siehe auch pause().

void say(string text)

Beginnt mit der Synthese von „ text “.

Diese Funktion startet die asynchrone Sprachsynthese und liest den Text über das 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 Vorlesevorgänge werden angehalten, bevor mit dem Vorlesen des gerade synthetisierten Textes begonnen wird.

Der aktuelle Status ist über die Eigenschaft „ state “ abrufbar und wird auf „ QTextToSpeech::Speaking “ gesetzt, sobald das Vorlesen beginnt. Nach Abschluss des Vorlesens wird „ state “ auf „ QTextToSpeech::Ready “ gesetzt.

Siehe auch „ stop()“, „ pause()“ und „ resume()“.

void stop(BoundaryHint boundaryHint)

Hält den aktuellen Lesevorgang bei „ boundaryHint “ an und löscht die Warteschlange mit ausstehenden Texten.

Das Einlesen kann nicht fortgesetzt werden. Ob der Wert „ boundaryHint “ berücksichtigt 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.