text to speech

Text to speech en iOS 7 con AVSpeechSynthesizer

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

Acerca de Fernando Rodriguez

Fundador & Editor Jefe de justcodeit, Fernando Rodríguez (@frr149 & Linkedin) es desarrollador & un experto en la enseñanza de máxima calidad en programación y desarrollo para dispositivos iOS, Cocoa Touch, Objective C, Swift, Python, entre otros, aunque su mejor carta de presentación, es la opinión de sus alumnos: http://keepcoding.io/es/testimonio/ CLO en KeepCoding & Arunovo. Instructor de iOS Avanzado del Big Nerd Ranch. Profesor Asociado de la U-tad, autor invitado de revistas como iPhoneWorld, Applesfera.com & ponente habitual en conferencias dentro y fuera de España (iOSDevUK, CodeMotion, BCNDevCon, etc). En sus vidas anteriores fue un nerd de Python y Django, mago de Smalltalk, y para su pesar, galeote de C++ y un gran cocinero.

Share this: