Sur cette page

TextToSpeech QML Type

Le type TextToSpeech permet d'accéder aux moteurs de synthèse vocale. Plus d'informations...

Import Statement: import QtTextToSpeech

Propriétés

Signaux

Méthodes

Description détaillée

Utilisez say() pour lancer la lecture du texte sur le périphérique audio par défaut, et stop(), pause() et resume() pour contrôler la lecture du texte.

    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
            }
    ...

Pour synthétiser le texte en données PCM en vue d'un traitement ultérieur, utilisez synthesize().

Pour définir une voix, utilisez la propriété attachée VoiceSelector comme suit :

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

La première voix qui correspond à tous les critères spécifiés sera utilisée. Si aucune voix ne correspond à tous les critères, la voix ne changera pas.

Vous pouvez également utiliser findVoices() pour obtenir une liste des voix correspondantes, ou utiliser availableVoices() pour obtenir la liste des voix qui prennent en charge la locale actuelle. Modifiez la propriété locale en utilisant l'un des availableLocales() qui correspond à la langue du texte d'entrée et à l'accent de la sortie vocale souhaitée. Cela modifiera la liste des voix disponibles sur la plupart des plates-formes. Utilisez ensuite l'une des voix disponibles dans la propriété voice.

Tous les moteurs ne prennent pas en charge toutes les fonctionnalités. Utilisez la fonction engineCapabilities() pour tester les fonctionnalités disponibles et adapter l'utilisation du type en conséquence.

Remarque : les langues et les voix prises en charge par le moteur dépendent généralement de la configuration du système d'exploitation. Par exemple, sur macOS, les utilisateurs finaux peuvent installer des voix via le panneau Accessibilité des préférences système.

Documentation sur les propriétés

engine : string

Le moteur utilisé pour synthétiser le texte en parole.

Le changement de moteur interrompt la synthèse vocale en cours.

Sur la plupart des plates-formes, le changement de moteur met à jour la liste de available locales et available voices.

engineCapabilities : enumeration [since 6.6]

Cette propriété contient les capacités mises en œuvre par le moteur actuel.

Cette propriété a été introduite dans Qt 6.6.

Voir aussi engine et QTextToSpeech::Capability.

engineParameters : map

Cette propriété contient des paramètres spécifiques au moteur.

Voir aussi engine.

locale : locale

Cette propriété indique les paramètres linguistiques actuellement utilisés.

Par défaut, les paramètres linguistiques du système sont utilisés.

Voir aussi voice.

pitch : double

Cette propriété contient la hauteur de la voix, allant de -1.0 à 1.0.

La valeur par défaut de 0.0 correspond à la hauteur normale de la voix.

rate : double

Cette propriété contient le débit vocal actuel, allant de -1.0 à 1.0.

La valeur par défaut de 0.0 correspond au débit vocal normal.

state : enumeration

Cette propriété indique l'état actuel du synthétiseur vocal.

        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
            }
        }

Voir aussi QTextToSpeech::State, say(), stop(), et pause().

voice : voice

Cette propriété contient la voix qui sera utilisée pour le discours.

La voix doit être l'une des voices available du moteur.

Sur certaines plateformes, la définition de la voix modifie d'autres attributs de la voix tels que locale, pitch, etc. Ces modifications déclenchent l'émission de signaux.

volume : double

Cette propriété contient le volume actuel, compris entre 0,0 et 1,0.

La valeur par défaut est le volume par défaut de la plateforme.

Documentation sur les signaux

[since 6.6] aboutToSynthesize(number id)

Ce signal est émis juste avant que le moteur ne commence à synthétiser le son de la parole pour id. Les applications peuvent utiliser ce signal pour apporter des modifications de dernière minute aux attributs de voice ou pour suivre le processus du texte mis en file d'attente via enqueue().

Note : Le gestionnaire correspondant est onAboutToSynthesize.

Ce signal a été introduit dans Qt 6.6.

Voir aussi enqueue() et voice.

void errorOccurred(enumeration reason, string errorString)

Ce signal est émis lorsqu'une erreur s'est produite et que le paramètre state a été fixé à TextToSpeech.Error. Le paramètre reason spécifie le type d'erreur et le paramètre errorString fournit une description de l'erreur lisible par l'homme.

Remarque : le gestionnaire correspondant est onErrorOccurred.

Voir également state, errorReason() et errorString().

[since 6.6] sayingWord(string word, int id, int start, int length)

Ce signal est émis lorsque la tranche de texte word, indiquée par start et length dans l'énoncé id, est jouée sur le périphérique audio.

Remarque : ce signal nécessite que le moteur ait la capacité WordByWordProgress.

Le code suivant met en évidence le mot prononcé dans l'énoncé TextArea input :

        onSayingWord: (word, id, start, length)=> {
            input.select(start, start + length)
        }

Remarque : le gestionnaire correspondant est onSayingWord.

Ce signal a été introduit dans Qt 6.6.

Voir aussi QTextToSpeech::Capability et say().

Documentation de la méthode

list<string> availableEngines()

Contient la liste des plug-ins de moteur de synthèse vocale pris en charge.

list<voice> availableLocales()

Contient la liste des locales prises en charge par le site engine actif.

list<voice> availableVoices()

Contient la liste des voix disponibles pour le site locale.

[since 6.6] int enqueue(string utterance)

Ajoute utterance à la file d'attente des textes à prononcer et commence à prononcer.

Si l'adresse state du moteur est actuellement Ready, utterance sera prononcé immédiatement. Sinon, le moteur commencera à prononcer utterance une fois qu'il aura fini de prononcer le texte en cours.

Chaque fois que le moteur passe à l'entrée de texte suivante dans la file d'attente, le signal aboutToSynthesize() est émis. Cela permet aux applications de suivre la progression et d'apporter des modifications de dernière minute aux attributs vocaux.

L'appel à stop() efface la file d'attente.

Cette méthode a été introduite dans Qt 6.6.

Voir aussi say(), stop() et aboutToSynthesize().

enumeration errorReason()

Renvoie la raison pour laquelle le moteur a signalé une erreur.

Voir aussi QTextToSpeech::ErrorReason.

string errorString()

Renvoie le message d'erreur actuel du moteur.

[since 6.6] list<voice> findVoices(map criteria)

Renvoie la liste des voix qui correspondent à tous les critères spécifiés criteria.

criteria est une carte allant du nom de la propriété de la voix à la valeur de la propriété, prenant en charge des combinaisons de critères de recherche tels que :

let daniel = tts.findVoices({
    "name": "Daniel"
})
let maleEnglish = tts.findVoices({
    "gender": Voice.Male,
    "language": Qt.locale('en')
})

Cette méthode a été introduite dans Qt 6.6.

Voir également VoiceSelector.

void pause(BoundaryHint boundaryHint)

Interrompt le discours en cours à l'adresse boundaryHint.

Le respect de boundaryHint dépend de engine.

Voir également resume(), QTextToSpeech::BoundaryHint, et PauseResume.

void resume()

Reprendre la parole après l'appel de pause().

Voir aussi pause().

void say(string text)

Lance la synthèse de la parole text.

Cette fonction lance la synthèse de la parole de manière asynchrone et lit le texte sur le périphérique de sortie audio par défaut.

        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)
                }
            }

Remarque : toutes les lectures en cours sont interrompues avant de commencer à lire le texte récemment synthétisé.

L'état actuel est disponible à l'aide de la propriété state et prend la valeur QTextToSpeech::Speaking lorsque la lecture commence. Lorsque la lecture est terminée, state est remplacé par QTextToSpeech::Ready.

Voir également stop(), pause() et resume().

void stop(BoundaryHint boundaryHint)

Arrête la lecture en cours à l'adresse boundaryHint, et vide la file d'attente des textes en attente.

La lecture ne peut pas être reprise. Le respect de boundaryHint dépend du moteur.

Voir aussi say(), enqueue(), pause() et 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.