Text to speech en iOS 7 con AVSpeechSynthesizer

Autor: | Última modificación: 15 de noviembre de 2022 | Tiempo de Lectura: 1 minutos
Temas en este post:

A falta de Siri o VoiceOver, para poder hacer escuchar y hablar nuestra app, buena es AVSpeechSynthesizer, una nueva clase del framework AVFoundation en iOS 7 que nos permite hacer el text to speech de una forma sencilla.

 

AVSpeechSynthesizer

Para hacer funcionar AVSpeechSynthesizer lo primero que necesitamos es crear una instancia de AVSpeechUtterance que contendrá el texto a ser hablado por el dispositivo. Con dicha clase también podremos controlar otras propiedades opciones como la velocidad o el tipo de voz (acento) entre otras. Para un funcionamiento básico bastaría con el siguiente código:

 

AVSpeechSynthesizer *synth = [AVSpeechSynthesizer new];

AVSpeechUtterance *utt = [[AVSpeechUtterance alloc] initWithString:@"Creando una instancia con new, a lo loco"];

[synth speakUtterance:utt];

 

Cuando enviamos el método speakUtterance el texto empezará a reproducirse inmediatamente, en caso de que hubiera algún texto siendo leído, permite encolar textos para ser leídos una vez finalice el actual. Podemos incluso darle unas pausas entre un texto y otro con las propiedades postUtteranceDelay preUtteranceDelay de la clase AVSpeechUtterance (que es la que va a contener el texto y las pijadas que le queramos poner).

 

Por supuesto podemos parar o pausar el speech con los métodos stopSpeakingAtBoundary o pauseSpeakingAtBoundary. Si nos suscribimos a su delegado, AVSpeechSynthesizerDelegate, seremos notificados cuando inicie, pare, reanude…

 

Como siempre, podéis encontrar un ejemplo más completo en GitHub

[email protected]

¿Trabajo? Aprende a programar y consíguelo.

¡No te pierdas la próxima edición del Aprende a Programar desde Cero Full Stack Jr. Bootcamp!

 

Prepárate en 4 meses, aprende las últimas tecnologías y consigue trabajo desde ya. 

 

Solo en España hay más de 120.400 puestos tech sin cubrir, y con un sueldo 11.000€ por encima de la media nacional. ¡Es tu momento!

 

🗓️ Próxima edición: 13 de febrero

 

Reserva tu plaza descubre las becas disponibles.