Speech Apis {usando el text to speech} #wp8

432 views

Published on

Published in: Mobile
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
432
On SlideShare
0
From Embeds
0
Number of Embeds
45
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Speech Apis {usando el text to speech} #wp8

  1. 1. Speech APIs {Usando el Text to Speech} #WP8 Category Windows Phone 8 En este pequeño tutorial conoceremos una de las SpeechAPIs 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:
  2. 2. 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:
  3. 3. 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. usingWindows.Phone.Speech.Synthesis; Ahora agreguemos la lógica al evento que acabamos de crear. privateasyncvoidLeer_Click (object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(inputTextBox.Text)) MessageBox.Show("Introduce alguntexto a leer"); else { try { SpeechSynthesizer synth = newSpeechSynthesizer(); 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()); awaitsynth.SpeakTextAsync(inputTextBox.Text); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } ¿Qué fue lo que se agregó? Bueno lo primero que realizamos fue instanciar un objeto de tipo SpeechSynthesizer, después con
  4. 4. 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 API Windows Phone Dev Center: Text-to-Speech (TTS) for Windows Phone Pueden descargar el ejemplo de este tutorial a continuación.
  5. 5. Hasta la próxima! HappyCoding!

×