SlideShare una empresa de Scribd logo
1 de 5
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:
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:
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
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.
Hasta la próxima!
HappyCoding!

Más contenido relacionado

Destacado

Destacado (12)

Aneesul momineen
Aneesul momineenAneesul momineen
Aneesul momineen
 
Relatório global portugal
Relatório global portugalRelatório global portugal
Relatório global portugal
 
San valentin
San valentinSan valentin
San valentin
 
Portafolio de trabajos - Héctor Chumpitazi
Portafolio de trabajos - Héctor ChumpitaziPortafolio de trabajos - Héctor Chumpitazi
Portafolio de trabajos - Héctor Chumpitazi
 
Alternativa a
Alternativa aAlternativa a
Alternativa a
 
Apocalipse - Capitulo 21
Apocalipse -  Capitulo 21Apocalipse -  Capitulo 21
Apocalipse - Capitulo 21
 
Vigilancia centinela de influenza 2007
Vigilancia centinela de influenza  2007Vigilancia centinela de influenza  2007
Vigilancia centinela de influenza 2007
 
Trabalho a história da fisioterapia
Trabalho   a história da fisioterapiaTrabalho   a história da fisioterapia
Trabalho a história da fisioterapia
 
Implementando menús laterales en una app para windows phone
Implementando menús laterales en una app para windows phoneImplementando menús laterales en una app para windows phone
Implementando menús laterales en una app para windows phone
 
Acero al carbono
Acero al carbonoAcero al carbono
Acero al carbono
 
Ntics
NticsNtics
Ntics
 
Preliminar
PreliminarPreliminar
Preliminar
 

Similar a Speech Apis {usando el text to speech} #wp8

Alejandra vargas
Alejandra vargasAlejandra vargas
Alejandra vargaszalejitha
 
Colegio Venecia Trabajo #2 Gina Franco
Colegio Venecia Trabajo #2 Gina FrancoColegio Venecia Trabajo #2 Gina Franco
Colegio Venecia Trabajo #2 Gina FrancoGina31Franco
 
Andres alexis canizales (1)
Andres alexis canizales (1)Andres alexis canizales (1)
Andres alexis canizales (1)alexisprom
 
Que es action scrip 3
Que es  action scrip 3Que es  action scrip 3
Que es action scrip 3Harolsmr1103
 
Que es action scrip 3
Que es  action scrip 3Que es  action scrip 3
Que es action scrip 3Harolsmr1103
 
MAUIConf - Adios Net Maui Essentials Bienvenida Integración de Plataforma
MAUIConf - Adios Net Maui Essentials Bienvenida Integración de PlataformaMAUIConf - Adios Net Maui Essentials Bienvenida Integración de Plataforma
MAUIConf - Adios Net Maui Essentials Bienvenida Integración de PlataformaMiguel Angel Teheran Garcia
 
MAUIConf - Adios Net Maui Essentials Bienvenida Integracion de Plataforma.pdf
MAUIConf - Adios Net Maui Essentials Bienvenida Integracion de Plataforma.pdfMAUIConf - Adios Net Maui Essentials Bienvenida Integracion de Plataforma.pdf
MAUIConf - Adios Net Maui Essentials Bienvenida Integracion de Plataforma.pdfLuis775803
 
Herramientas tecnologicas
Herramientas tecnologicasHerramientas tecnologicas
Herramientas tecnologicasyamilereymejia
 
Hackin9 - Ataques de tipo HTML injection
Hackin9 - Ataques de tipo HTML injectionHackin9 - Ataques de tipo HTML injection
Hackin9 - Ataques de tipo HTML injectiondegarden
 

Similar a Speech Apis {usando el text to speech} #wp8 (20)

Maira
MairaMaira
Maira
 
Action Script
Action ScriptAction Script
Action Script
 
Alejandra vargas
Alejandra vargasAlejandra vargas
Alejandra vargas
 
Colegio Venecia Trabajo #2 Gina Franco
Colegio Venecia Trabajo #2 Gina FrancoColegio Venecia Trabajo #2 Gina Franco
Colegio Venecia Trabajo #2 Gina Franco
 
David reyes
David reyesDavid reyes
David reyes
 
Francy velandia
Francy velandiaFrancy velandia
Francy velandia
 
Action script 3
Action script 3Action script 3
Action script 3
 
Andres alexis canizales (1)
Andres alexis canizales (1)Andres alexis canizales (1)
Andres alexis canizales (1)
 
Action script 3.0
Action script 3.0Action script 3.0
Action script 3.0
 
Que es action scrip 3
Que es  action scrip 3Que es  action scrip 3
Que es action scrip 3
 
Que es action scrip 3
Que es  action scrip 3Que es  action scrip 3
Que es action scrip 3
 
Introduccion actionscript
Introduccion actionscriptIntroduccion actionscript
Introduccion actionscript
 
MAUIConf - Adios Net Maui Essentials Bienvenida Integración de Plataforma
MAUIConf - Adios Net Maui Essentials Bienvenida Integración de PlataformaMAUIConf - Adios Net Maui Essentials Bienvenida Integración de Plataforma
MAUIConf - Adios Net Maui Essentials Bienvenida Integración de Plataforma
 
MAUIConf - Adios Net Maui Essentials Bienvenida Integracion de Plataforma.pdf
MAUIConf - Adios Net Maui Essentials Bienvenida Integracion de Plataforma.pdfMAUIConf - Adios Net Maui Essentials Bienvenida Integracion de Plataforma.pdf
MAUIConf - Adios Net Maui Essentials Bienvenida Integracion de Plataforma.pdf
 
Tutorial eXeLearning
Tutorial eXeLearning Tutorial eXeLearning
Tutorial eXeLearning
 
Herramientas tecnologicas
Herramientas tecnologicasHerramientas tecnologicas
Herramientas tecnologicas
 
Hackin9 - Ataques de tipo HTML injection
Hackin9 - Ataques de tipo HTML injectionHackin9 - Ataques de tipo HTML injection
Hackin9 - Ataques de tipo HTML injection
 
Guia de pasos e xe learning 2
Guia de pasos  e xe learning 2Guia de pasos  e xe learning 2
Guia de pasos e xe learning 2
 
Parse intro
Parse introParse intro
Parse intro
 
Actionscript
ActionscriptActionscript
Actionscript
 

Más de Vicente Gerardo Guzman Lucio

Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsVicente Gerardo Guzman Lucio
 
Consumiendo un servicio externo con Axios en Alexa
Consumiendo un servicio externo con Axios en AlexaConsumiendo un servicio externo con Axios en Alexa
Consumiendo un servicio externo con Axios en AlexaVicente Gerardo Guzman Lucio
 

Más de Vicente Gerardo Guzman Lucio (20)

GPPB2024 - Integrando ChatGPT en Power Automate
GPPB2024 - Integrando ChatGPT en Power AutomateGPPB2024 - Integrando ChatGPT en Power Automate
GPPB2024 - Integrando ChatGPT en Power Automate
 
Introducción a Amazon Alexa.pptx
Introducción a Amazon Alexa.pptxIntroducción a Amazon Alexa.pptx
Introducción a Amazon Alexa.pptx
 
Creando un Chatbot en C# con ChatGPT.pdf
Creando un Chatbot en C# con ChatGPT.pdfCreando un Chatbot en C# con ChatGPT.pdf
Creando un Chatbot en C# con ChatGPT.pdf
 
ChatGPT & Alexa.pptx
ChatGPT & Alexa.pptxChatGPT & Alexa.pptx
ChatGPT & Alexa.pptx
 
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
 
Conectando un Azure Bot con una Alexa Skill
Conectando un Azure Bot con una Alexa SkillConectando un Azure Bot con una Alexa Skill
Conectando un Azure Bot con una Alexa Skill
 
Azure DevOps y Blazor Web Assembly
Azure DevOps y Blazor Web AssemblyAzure DevOps y Blazor Web Assembly
Azure DevOps y Blazor Web Assembly
 
Desarrollo de Interfaces de Voz: Alexa Skills
Desarrollo de Interfaces de Voz: Alexa SkillsDesarrollo de Interfaces de Voz: Alexa Skills
Desarrollo de Interfaces de Voz: Alexa Skills
 
Blazor vs VUE
Blazor vs VUEBlazor vs VUE
Blazor vs VUE
 
Introducción a Blazor
Introducción a BlazorIntroducción a Blazor
Introducción a Blazor
 
Infraestructura como Código en Azure
Infraestructura como Código en AzureInfraestructura como Código en Azure
Infraestructura como Código en Azure
 
Diseño de Experiencias de Voz con Amazon Alexa
Diseño de Experiencias de Voz con Amazon AlexaDiseño de Experiencias de Voz con Amazon Alexa
Diseño de Experiencias de Voz con Amazon Alexa
 
Alexa Skill con .NETCore & AWS Lambda
Alexa Skill con .NETCore & AWS LambdaAlexa Skill con .NETCore & AWS Lambda
Alexa Skill con .NETCore & AWS Lambda
 
Skills Nights - Vol.III - Primeros Pasos
Skills Nights - Vol.III - Primeros PasosSkills Nights - Vol.III - Primeros Pasos
Skills Nights - Vol.III - Primeros Pasos
 
¿Qué es la Nube?
¿Qué es la Nube?¿Qué es la Nube?
¿Qué es la Nube?
 
Consumiendo un servicio externo con Axios en Alexa
Consumiendo un servicio externo con Axios en AlexaConsumiendo un servicio externo con Axios en Alexa
Consumiendo un servicio externo con Axios en Alexa
 
La era de los Chatbots
La era de los ChatbotsLa era de los Chatbots
La era de los Chatbots
 
Android 64x con Xamarin.Forms
Android 64x con Xamarin.FormsAndroid 64x con Xamarin.Forms
Android 64x con Xamarin.Forms
 
Creando nuestra propia Skill de YouTube
Creando nuestra propia Skill de YouTubeCreando nuestra propia Skill de YouTube
Creando nuestra propia Skill de YouTube
 
Alexa Skill en 5 pasos
Alexa Skill en 5 pasosAlexa Skill en 5 pasos
Alexa Skill en 5 pasos
 

Speech Apis {usando el text to speech} #wp8

  • 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. 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. 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. 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.