Comparteix a través de


SpeechSynthesizer.Speak Método

Definición

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

Sobrecargas

Speak(Prompt)

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

Speak(PromptBuilder)

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

Speak(String)

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

Comentarios

Los Speak métodos generan voz de forma sincrónica. Los métodos no devuelven hasta que el contenido de la Speak instancia se haya hablado por completo. Esta es la manera más sencilla de generar voz. Sin embargo, si la aplicación necesita realizar tareas mientras habla, por ejemplo, resaltar texto, animación de pintura, supervisar controles u otras tareas, use los SpeakAsync métodos o el SpeakSsmlAsync método para generar voz de forma asincrónica.

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 completa hablando 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.

SpeechSynthesizer no genera el SpeakCompleted evento mientras se procesa ninguno de los Speak métodos.

Speak(Prompt)

Source:
SpeechSynthesizer.cs
Source:
SpeechSynthesizer.cs
Source:
SpeechSynthesizer.cs

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

public:
 void Speak(System::Speech::Synthesis::Prompt ^ prompt);
public void Speak (System.Speech.Synthesis.Prompt prompt);
member this.Speak : System.Speech.Synthesis.Prompt -> unit
Public Sub Speak (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 Speak método .

using System;
using System.Speech.Synthesis;

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

      // Initialize a new instance of the SpeechSynthesizer.
      using (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 synchronously.
        synth.Speak(color);
      }

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

Comentarios

Para hablar de forma asincrónica el contenido de un Prompt objeto, use SpeakAsync.

Se aplica a

Speak(PromptBuilder)

Source:
SpeechSynthesizer.cs
Source:
SpeechSynthesizer.cs
Source:
SpeechSynthesizer.cs

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

public:
 void Speak(System::Speech::Synthesis::PromptBuilder ^ promptBuilder);
public void Speak (System.Speech.Synthesis.PromptBuilder promptBuilder);
member this.Speak : System.Speech.Synthesis.PromptBuilder -> unit
Public Sub Speak (promptBuilder As PromptBuilder)

Parámetros

promptBuilder
PromptBuilder

El contenido para hablar.

Ejemplos

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

using System;
using System.Speech.Synthesis;

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

      // Initialize a new instance of the SpeechSynthesizer.
      using (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 synchronously.
        synth.Speak(song);
      }

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

Comentarios

Para hablar de forma asincrónica el contenido de un PromptBuilder objeto, use SpeakAsync.

Se aplica a

Speak(String)

Source:
SpeechSynthesizer.cs
Source:
SpeechSynthesizer.cs
Source:
SpeechSynthesizer.cs

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

public:
 void Speak(System::String ^ textToSpeak);
public void Speak (string textToSpeak);
member this.Speak : string -> unit
Public Sub Speak (textToSpeak As String)

Parámetros

textToSpeak
String

Texto para hablar.

Ejemplos

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

using System;
using System.Speech.Synthesis;

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

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

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

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

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

Comentarios

Para hablar de forma sincrónica una cadena que contiene el marcado SSML, use el SpeakSsml método . Para hablar de forma asincrónica el contenido de una cadena, use el SpeakAsync método .

Se aplica a