TextToSpeech QML Type
El tipo TextToSpeech proporciona acceso a los motores de texto a voz. Más...
| Import Statement: | import QtTextToSpeech |
Propiedades
- engine : string
- engineCapabilities : enumeration
(since 6.6) - engineParameters : map
- locale : locale
- pitch : double
- rate : double
- state : enumeration
- voice : voice
- volume : double
Señales
- aboutToSynthesize(number id)
(since 6.6) - void errorOccurred(enumeration reason, string errorString)
- sayingWord(string word, int id, int start, int length)
(since 6.6)
Métodos
- 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)
Descripción detallada
Utilice say() para iniciar la lectura de texto en el dispositivo de audio predeterminado, y stop(), pause() y resume() para controlar la lectura del texto.
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 } ...
Para sintetizar el texto en datos PCM para su posterior procesamiento, utilice synthesize().
Para establecer una voz, utilice la propiedad adjunta VoiceSelector de la siguiente manera:
TextToSpeech { VoiceSelector.locale: Qt.locale("en_UK") VoiceSelector.gender: Voice.Male }
Se utilizará la primera voz que coincida con todos los criterios especificados. Si ninguna voz coincide con todos los criterios, la voz no cambiará.
Como alternativa, utilice findVoices() para obtener una lista de voces coincidentes, o utilice availableVoices() para obtener la lista de voces compatibles con la configuración regional actual. Cambie la propiedad locale, utilizando uno de los availableLocales() que sea una buena coincidencia para el idioma en el que está el texto de entrada, y para el acento de la salida de voz deseada. Esto cambiará la lista de voces disponibles en la mayoría de las plataformas. A continuación, utilice una de las voces disponibles en la propiedad voice.
No todos los motores soportan todas las funciones. Utilice la función engineCapabilities() para comprobar qué características están disponibles, y ajuste el uso del tipo en consecuencia.
Nota: Las localizaciones y voces que soporta el motor dependen normalmente de la configuración del sistema operativo. Por ejemplo, en macOS, los usuarios finales pueden instalar voces a través del panel Accesibilidad en Preferencias del Sistema.
Documentación de propiedades
engine : string
El motor utilizado para sintetizar texto a voz.
Al cambiar el motor, se detiene el habla en curso.
En la mayoría de las plataformas, el cambio de motor actualizará la lista de available locales y available voices.
engineCapabilities : enumeration [since 6.6]
Esta propiedad contiene las capacidades implementadas por el motor actual.
Esta propiedad se introdujo en Qt 6.6.
Véase también engine y QTextToSpeech::Capability.
engineParameters : map
Esta propiedad contiene parámetros específicos del motor.
Véase también engine.
locale : locale
Esta propiedad contiene la configuración regional en uso.
Por defecto, se utiliza la configuración regional del sistema.
Véase también voice.
pitch : double
Esta propiedad contiene el tono de voz, que oscila entre -1,0 y 1,0.
El valor predeterminado de 0,0 es el tono de voz normal.
rate : double
Esta propiedad contiene el flujo de voz actual, que va de -1.0 a 1.0.
El valor predeterminado de 0,0 es el flujo de voz normal.
state : enumeration
Esta propiedad contiene el estado actual del sintetizador de voz.
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 } }
Véase también QTextToSpeech::State, say(), stop(), y pause().
voice : voice
Esta propiedad contiene la voz que se utilizará para el discurso.
La voz tiene que ser una de las voices available para el motor.
En algunas plataformas, al establecer la voz se modifican otros atributos de la voz, como locale, pitch, etc. Estos cambios provocan la emisión de señales.
volume : double
Esta propiedad contiene el volumen actual, que va de 0.0 a 1.0.
El valor por defecto es el volumen por defecto de la plataforma.
Documentación de señales
[since 6.6] aboutToSynthesize(number id)
Esta señal se emite justo antes de que el motor comience a sintetizar el audio de voz para id. Las aplicaciones pueden utilizar esta señal para realizar cambios de última hora en los atributos de voice, o para seguir el proceso del texto puesto en cola a través de enqueue().
Nota: El manejador correspondiente es onAboutToSynthesize.
Esta señal se introdujo en Qt 6.6.
Véase también enqueue() y voice.
void errorOccurred(enumeration reason, string errorString)
Esta señal se emite después de que se haya producido un error y el parámetro state se haya establecido en TextToSpeech.Error. El parámetro reason especifica el tipo de error, y errorString proporciona una descripción del error legible por humanos.
Nota: El manejador correspondiente es onErrorOccurred.
Véase también state, errorReason(), y errorString().
[since 6.6] sayingWord(string word, int id, int start, int length)
Esta señal se emite cuando el word, que es el fragmento de texto indicado por start y length en el enunciado id, se reproduce en el dispositivo de audio.
Nota: Esta señal requiere que el motor tenga la capacidad WordByWordProgress.
El siguiente código resalta la palabra que se pronuncia en un TextArea input :
onSayingWord: (word, id, start, length)=> { input.select(start, start + length) }
Nota: El manejador correspondiente es onSayingWord.
Esta señal se introdujo en Qt 6.6.
Véase también QTextToSpeech::Capability y say().
Documentación del método
list<string> availableEngines()
Contiene la lista de plug-ins compatibles con el motor de texto a voz.
list<voice> availableLocales()
Contiene la lista de configuraciones regionales compatibles con la página engine activa.
list<voice> availableVoices()
Contiene la lista de voces disponibles para locale.
[since 6.6] int enqueue(string utterance)
Añade utterance a la cola de texto a pronunciar y comienza a hablar.
Si el motor de state es actualmente Ready, utterance se hablará inmediatamente. De lo contrario, el motor comenzará a hablar utterance una vez que haya terminado de hablar el texto actual.
Cada vez que el motor pasa a la siguiente entrada de texto de la cola, se emite la señal aboutToSynthesize(). Esto permite a las aplicaciones seguir el progreso y realizar cambios de última hora en los atributos de voz.
La llamada a stop() borra la cola.
Este método se introdujo en Qt 6.6.
Véase también say(), stop() y aboutToSynthesize().
enumeration errorReason()
Devuelve la razón por la que el motor ha informado de un error.
Véase también QTextToSpeech::ErrorReason.
string errorString()
Devuelve el mensaje de error actual del motor.
[since 6.6] list<voice> findVoices(map criteria)
Devuelve la lista de voces que coinciden con todas las especificadas en criteria.
criteria es un mapa de nombre de propiedad de voz a valor de propiedad, que admite combinaciones de criterios de búsqueda como:
let daniel = tts.findVoices({ "name": "Daniel" }) let maleEnglish = tts.findVoices({ "gender": Voice.Male, "language": Qt.locale('en') })
Este método se introdujo en Qt 6.6.
Véase también VoiceSelector.
void pause(BoundaryHint boundaryHint)
Pausa el discurso actual en boundaryHint.
El respeto de boundaryHint depende de engine.
Véase también resume(), QTextToSpeech::BoundaryHint, y PauseResume.
void resume()
Reanudar el habla después de llamar a pause().
Véase también pause().
void say(string text)
Inicia la síntesis de text.
Esta función comienza a sintetizar el habla de forma asíncrona y lee el texto en el dispositivo de salida de audio predeterminado.
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) } }
Nota: Todas las lecturas en curso se detienen antes de comenzar a leer el texto recién sintetizado.
El estado actual está disponible utilizando la propiedad state, y se establece en QTextToSpeech::Speaking una vez que comienza la lectura. Cuando finalice la lectura, state se establecerá en QTextToSpeech::Ready.
Véase también stop(), pause(), y resume().
void stop(BoundaryHint boundaryHint)
Detiene la lectura en curso en boundaryHint, y borra la cola de textos pendientes.
La lectura no puede reanudarse. El respeto de boundaryHint depende del motor.
Véase también say(), enqueue(), pause(), y 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.