Compartir a través de


SpeechSynthesizer.SpeakAsync Método

Definición

Genera voz emitida de forma asincrónica desde una cadena, un objeto Prompt o un objeto PromptBuilder.

Sobrecargas

SpeakAsync(Prompt)

De forma asincrónica habla el contenido de un objeto Prompt.

SpeakAsync(PromptBuilder)

De forma asincrónica habla el contenido de un objeto PromptBuilder.

SpeakAsync(String)

De forma asincrónica habla el contenido de una cadena.

Comentarios

Los SpeakAsync métodos generan voz de forma asincrónica. Los métodos devuelven inmediatamente sin esperar a que el contenido del SpeakAsync objeto termine de hablar. Use SpeakAsync si la aplicación necesita realizar tareas mientras habla, por ejemplo, resaltar texto, animación de pintura, controles de supervisión u otras tareas.

Durante una llamada a este método, SpeechSynthesizer puede generar los siguientes eventos:

  • StateChanged. Se genera cuando cambia el estado de habla del sintetizador.

  • SpeakStarted. Se genera cuando el sintetizador comienza a generar voz.

  • PhonemeReached. Elevado cada vez que el sintetizador alcanza una letra o combinación de letras que constituyen un sonido discreto de voz en un idioma.

  • SpeakProgress. Se genera cada vez que el sintetizador termina de hablar una palabra.

  • VisemeReached. Cada vez que la salida hablada requiere un cambio en la posición de la boca o los músculos faciales usados para producir voz.

  • BookmarkReached. Se genera cuando el sintetizador encuentra un marcador en un mensaje.

  • VoiceChange. Se genera cuando cambia la voz de habla para el sintetizador.

  • SpeakCompleted. Se genera cuando el sintetizador finaliza una SpeakAsync operación.

Si la aplicación no necesita realizar tareas mientras habla, puede usar los Speak métodos o el SpeakSsml método para generar voz de forma sincrónica.

SpeakAsync(Prompt)

Source:
SpeechSynthesizer.cs
Source:
SpeechSynthesizer.cs

De forma asincrónica habla el contenido de un objeto Prompt.

public:
 void SpeakAsync(System::Speech::Synthesis::Prompt ^ prompt);
public void SpeakAsync (System.Speech.Synthesis.Prompt prompt);
member this.SpeakAsync : System.Speech.Synthesis.Prompt -> unit
Public Sub SpeakAsync (prompt As Prompt)

Parámetros

prompt
Prompt

El contenido para hablar.

Ejemplos

En el ejemplo siguiente se crea un Prompt objeto a partir de una cadena y se pasa el objeto como argumento al SpeakAsync método .

using System;
using System.Speech.Synthesis;

namespace SampleSynthesis
{
  class Program
  {
    static void Main(string[] args)
    {

      // Initialize a new instance of the SpeechSynthesizer.
      SpeechSynthesizer synth = new SpeechSynthesizer();

      // Configure the audio output.
      synth.SetOutputToDefaultAudioDevice();

      // Create a prompt from a string.
      Prompt color = new Prompt("What is your favorite color?");

      // Speak the contents of the prompt asynchronously.
      synth.SpeakAsync(color);

      Console.WriteLine();
      Console.WriteLine("Press any key to exit...");
      Console.ReadKey();
    }
  }
}

Comentarios

Puede cancelar el habla asincrónica de un mensaje con el SpeakAsyncCancel método o SpeakAsyncCancelAll .

Para hablar sincrónicamente el contenido de un Prompt objeto, use Speak.

Este método almacena en la tarea que devuelve todas las excepciones que no son de uso que puede producir el homólogo sincrónico del método. Si se almacena una excepción en la tarea devuelta, esa excepción se producirá cuando se espere a la tarea. Las excepciones de uso, como ArgumentException, se siguen produciendo de forma sincrónica. Para ver las excepciones almacenadas, vea las excepciones producidas por Speak(Prompt).

Se aplica a

SpeakAsync(PromptBuilder)

Source:
SpeechSynthesizer.cs
Source:
SpeechSynthesizer.cs

De forma asincrónica habla el contenido de un objeto PromptBuilder.

public:
 System::Speech::Synthesis::Prompt ^ SpeakAsync(System::Speech::Synthesis::PromptBuilder ^ promptBuilder);
public System.Speech.Synthesis.Prompt SpeakAsync (System.Speech.Synthesis.PromptBuilder promptBuilder);
member this.SpeakAsync : System.Speech.Synthesis.PromptBuilder -> System.Speech.Synthesis.Prompt
Public Function SpeakAsync (promptBuilder As PromptBuilder) As Prompt

Parámetros

promptBuilder
PromptBuilder

El contenido para hablar.

Devoluciones

Objeto que contiene el contenido que se va a hablar.

Ejemplos

En el ejemplo siguiente se crea un PromptBuilder objeto a partir de una cadena y se pasa el objeto como argumento al SpeakAsync método .

using System;
using System.Speech.Synthesis;

namespace SampleSynthesis
{
  class Program
  {
    static void Main(string[] args)
    {

      // Initialize a new instance of the SpeechSynthesizer.
      SpeechSynthesizer synth = new SpeechSynthesizer();

      // Configure the audio output.
      synth.SetOutputToDefaultAudioDevice();

      // Create a PromptBuilder object and append a text string.
      PromptBuilder song = new PromptBuilder();
      song.AppendText("Say the name of the song you want to hear");

      // Speak the contents of the prompt asynchronously.
      synth.SpeakAsync(song);

      Console.WriteLine();
      Console.WriteLine("Press any key to exit...");
      Console.ReadKey();
    }
  }
}

Este método almacena en la tarea que devuelve todas las excepciones que no son de uso que puede producir el homólogo sincrónico del método. Si se almacena una excepción en la tarea devuelta, esa excepción se producirá cuando se espere a la tarea. Las excepciones de uso, como ArgumentException, se siguen produciendo de forma sincrónica. Para ver las excepciones almacenadas, vea las excepciones producidas por Speak(PromptBuilder).

Comentarios

Para hablar sincrónicamente el contenido de un PromptBuilder objeto, use Speak.

Se aplica a

SpeakAsync(String)

Source:
SpeechSynthesizer.cs
Source:
SpeechSynthesizer.cs

De forma asincrónica habla el contenido de una cadena.

public:
 System::Speech::Synthesis::Prompt ^ SpeakAsync(System::String ^ textToSpeak);
public System.Speech.Synthesis.Prompt SpeakAsync (string textToSpeak);
member this.SpeakAsync : string -> System.Speech.Synthesis.Prompt
Public Function SpeakAsync (textToSpeak As String) As Prompt

Parámetros

textToSpeak
String

Texto para hablar.

Devoluciones

Objeto que contiene el contenido que se va a hablar.

Ejemplos

Como se muestra en el ejemplo siguiente, el SpeakAsync método proporciona los medios más sencillos para generar la salida de voz de forma asincrónica.

using System;
using System.Speech.Synthesis;

namespace SampleSynthesis
{
  class Program
  {
    static void Main(string[] args)
    {

      // Initialize a new instance of the SpeechSynthesizer.
      SpeechSynthesizer synth = new SpeechSynthesizer();

      // Configure the audio output.
      synth.SetOutputToDefaultAudioDevice();

      // Speak a string asynchronously.
      synth.SpeakAsync("What is your favorite color?");

      Console.WriteLine();
      Console.WriteLine("Press any key to exit...");
      Console.ReadKey();
    }
  }
}

Comentarios

Para hablar asincrónicamente una cadena que contiene el marcado SSML, use el SpeakSsmlAsync método . Para hablar sincrónicamente el contenido de una cadena, use el Speak método . Puede cancelar el habla asincrónica de un mensaje con el SpeakAsyncCancel método o SpeakAsyncCancelAll .

Este método almacena en la tarea que devuelve todas las excepciones que no son de uso que puede producir el homólogo sincrónico del método. Si se almacena una excepción en la tarea devuelta, esa excepción se producirá cuando se espere a la tarea. Las excepciones de uso, como ArgumentException, se siguen produciendo de forma sincrónica. Para ver las excepciones almacenadas, vea las excepciones producidas por Speak(String).

Consulte también

Se aplica a