Windows Phone Tips & Tricks. Cómo usar Text-To-Speech

[Nota: Este artículo pertenece a la serie de Windows Phone Tips & Tricks de MSDN España]

Hola,

Una de las novedades de Windows Phone 8 es la posibilidad de utilizar Text-To-Speech (TTS) en nuestras apps, y además de manera muy, muy sencilla. Gracias a esta funcionalidad nuestra app podrá hablarle al usuario el texto que le indiquemos en el idioma que más nos guste.

Tomemos como ejemplo una página que contiene este XAML:

<!--Contenido de nuestra página-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <!--Para elegir si queremos que nos hable un hombre o una mujer-->
    <StackPanel Grid.Row="0"  Orientation="Horizontal">
        <RadioButton x:Name="MaleGenderRadioButton" Content="Hombre" GroupName="Gender" IsChecked="true"/>
        <RadioButton x:Name="FemaleGenderRadioButton" Content="Mujer" GroupName="Gender"/>
    </StackPanel>
    <!--El texto que queremos que nos lea-->
    <ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto" >
        <TextBox x:Name="TextToRepeat" AcceptsReturn="True" TextWrapping="Wrap"/>
    </ScrollViewer>
</Grid>

El siguiente código hará que la app lea en alto el texto del control TextToRepeat, en español, y con el tipo de voz que hayamos seleccionado con los RadioButton:

using Windows.Phone.Speech.Synthesis;

// Selecciona una voz que hable español
VoiceInformation voiceInfo =
    InstalledVoices.All.Where(
        voice =>
            voice.Language == "es-ES" &&
            voice.Gender == (this.MaleGenderRadioButton.IsChecked == true? VoiceGender.Male: VoiceGender.Female)
    ).FirstOrDefault();
if (voiceInfo == null)
{
    // No la hay. Dile al usuario que se la instale antes
    MessageBox.Show("No tienes ninguna voz en español de España instalada en el teléfono. Ve a Configuración > Voz > Idioma de Voz y descárgatela para poder usar esta aplicación. ¡Gracias!");
    return;
}
SpeechSynthesizer synth = new SpeechSynthesizer();
synth.SetVoice(voiceInfo);

// Repite el texto que ha seleccionado el usuario
await synth.SpeakTextAsync(this.TextToRepeat.Text);

Espero que te sea de utilidad.

Un saludo,

Alejandro Campos Magencio (@alejacma)

PD: Mantente informado de todas las novedades de Microsoft para los desarrolladores españoles a través del Twitter de MSDN, el Facebook de MSDN, el Blog de MSDN y la Newsletter MSDN Flash.

About these ads

Un pensamiento en “Windows Phone Tips & Tricks. Cómo usar Text-To-Speech

  1. Pingback: Tips & Tricks de desarrollo para Windows Phone - MSDN España - Site Home - MSDN Blogs

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s