Text to speech en iOS 7 con AVSpeechSynthesizer

| Última modificación: 24 de abril de 2024 | Tiempo de Lectura: 1 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

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…

Fernando Rodríguez

iOS Developer & Co-Fundador de KeepCoding

Posts más leídos