Speech Apis {usando el text to speech} #wp8

5
Speech APIs {Usando el Text to Speech} #WP8 Category Windows Phone 8 En este pequeño tutorial conoceremos una de las Speech APIs que el SDK de Windows Phone 8 nos provee, la de Text to Speech, o lo que es igual a obtener un sonido a partir de un texto escrito. NOTA: En WP7 teníamos la posibilidad de utilizar TTS (Text to Speech) mediante el uso de Bing Speech API, la cual era una opción muy limitada, además de que necesitaba una conexión a internet (para poder conectar con los servicios de Bing). Empecemos desde 0 creando una nueva App: Lo primero que haremos antes de continuar será añadir la capacidad de Reconocimiento de Voz (ID_CAP_SPEECH_RECOGNITION). Para esto dentro de la carpeta Properties encontraremos el archivo WMAppManifest.xml. Lo abrimos y nos dirigimos a la pestaña de Capacidades:

Transcript of Speech Apis {usando el text to speech} #wp8

Page 1: Speech Apis {usando el text to speech} #wp8

Speech APIs {Usando el Text to Speech} #WP8Category

En este pequeño tutorial conoceremos una de las Speech APIs que el SDK de Windows Phone 8 nos provee, la de Text to Speech, o lo que es igual a obtener un sonido a partir de un texto escrito.

NOTA: En WP7 teníamos la posibilidad de utilizar TTS (Text to Speech) mediante el uso de Bing Speech API, la cual era una opción muy limitada, además de que necesitaba una conexión a internet (para poder conectar con los servicios de Bing).

Empecemos desde 0 creando una nueva App:

Lo primero que haremos antes de continuar será añadir la capacidad de Reconocimiento de Voz (ID_CAP_SPEECH_RECOGNITION). Para esto dentro de la carpeta Properties encontraremos el archivo WMAppManifest.xml.Lo abrimos y nos dirigimos a la pestaña de Capacidades:

Page 2: Speech Apis {usando el text to speech} #wp8

Ahora es tiempo de hacer la parte grafica o visual con la que el usuario interactuara. En nuestro archivo MainPage.xaml agreguemos un TextBox donde se pueda escribir un texto, el cual será leído, junto a este un botón que provocara la lectura del mismo. Y para que exista un plus, añadiremos también la posibilidad de elegir la voz (masculina o femenina).Así quedara nuestro Grid principal ya con los elementos antes mencionados:

Page 3: Speech Apis {usando el text to speech} #wp8

Añadamos el evento Clic al botón:

<Button Content="Leer" HorizontalAlignment="Left" Width="450" Click="Leer_Click" />

Después agreguemos el siguiente namespace en el code-behind (MainPage.xaml.cs) para trabajar con la API Speech.

using Windows.Phone.Speech.Synthesis;

Ahora agreguemos la lógica al evento que acabamos de crear.

private async void Leer_Click (object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(inputTextBox.Text)) MessageBox.Show("Introduce algun texto a leer"); else { try { SpeechSynthesizer synth = new SpeechSynthesizer();

var voices = InstalledVoices.All.Where(v => v.Language == "es-ES").OrderByDescending(v => v.Gender);

VoiceGender gender = VoiceGender.Male;

if (rbHombre.IsChecked == true) gender = VoiceGender.Male; else gender = VoiceGender.Female;

synth.SetVoice(voices.Where(v => v.Gender == gender).FirstOrDefault());

await synth.SpeakTextAsync(inputTextBox.Text); } catch (Exception ex) { MessageBox.Show(ex.Message); } } }

¿Qué fue lo que se agregó?

Page 4: Speech Apis {usando el text to speech} #wp8

Bueno lo primero que realizamos fue instanciar un objeto de tipo SpeechSynthesizer, después con LINQ seleccionamos el conjunto de sintetizadores españoles de la clase InstalledVoices.Utilizamos los CheckBox para determinar el género elegido para la voz, después establecimos el sintetizador elegido utilizando el método SetVoice y ya por ultimo llamamos al método SpeakTextAsync que recibe el parámetro del texto para sintetizar a voz.

Así luce nuestra App:

Mas Información: Channel 9: Windows Phone 8: Using the Speech APIWindows Phone Dev Center: Text-to-Speech (TTS) for Windows Phone

Pueden descargar el ejemplo de este tutorial a continuación.

Page 5: Speech Apis {usando el text to speech} #wp8

Hasta la próxima!Happy Coding!