Sdílet prostřednictvím


SpeechSynthesizer.SpeakAsync Metoda

Definice

Generuje výstup řeči asynchronně z řetězce, objektu Prompt nebo objektu PromptBuilder .

Přetížení

SpeakAsync(Prompt)

Asynchronně vyslovuje obsah objektu Prompt .

SpeakAsync(PromptBuilder)

Asynchronně vyslovuje obsah objektu PromptBuilder .

SpeakAsync(String)

Asynchronně vyslovuje obsah řetězce.

Poznámky

Metody SpeakAsync generují řeč asynchronně. Metody se okamžitě vrátí, aniž by čekaly na dokončení mluvení obsahu objektu SpeakAsync . Použijte SpeakAsync , pokud vaše aplikace potřebuje provádět úkoly při mluvení, například zvýraznění textu, animace malování, ovládací prvky monitoru nebo jiné úkoly.

Během volání této metody SpeechSynthesizer může vyvolat následující události:

  • StateChanged. Vyvolána při změně stavu mluvení syntetizátoru.

  • SpeakStarted. Vyvolána, když syntezátor začne generovat řeč.

  • PhonemeReached. Vyvolá se pokaždé, když syntezátor dosáhne písmena nebo kombinace písmen, které představují diskrétní zvuk řeči v jazyce.

  • SpeakProgress. Vyvolá se pokaždé, když syntezátor dokončí vyslovování slova.

  • VisemeReached. Zvednuté při každém mluveném výstupu vyžaduje změnu pozice úst nebo obličejových svalů používaných k produkci řeči.

  • BookmarkReached. Vyvolána, když syntezátor narazí na záložku ve výzvě.

  • VoiceChange. Zvednuto, když se změní hlas pro syntezátor.

  • SpeakCompleted. Vyvolá se, když syntezátor dokončí SpeakAsync operaci.

Pokud vaše aplikace nepotřebuje provádět úlohy při mluvení, můžete k synchronnímu Speak generování řeči použít metody nebo metodu SpeakSsml .

SpeakAsync(Prompt)

Zdroj:
SpeechSynthesizer.cs
Zdroj:
SpeechSynthesizer.cs

Asynchronně vyslovuje obsah objektu 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)

Parametry

prompt
Prompt

Obsah, který se má mluvit.

Příklady

Následující příklad vytvoří Prompt objekt z řetězce a předá objekt jako argument SpeakAsync metodě.

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();
    }
  }
}

Poznámky

Asynchronní mluvení o výzvě můžete zrušit metodou SpeakAsyncCancel nebo SpeakAsyncCancelAll .

Pokud chcete synchronně vyslovovat obsah objektu Prompt , použijte Speak.

Tato metoda ukládá do úlohy, která vrací všechny výjimky nesouvisejí s používáním, které může vyvolat synchronní protějšek metody. Pokud je ve vrácené úloze uložena výjimka, bude tato výjimka vyvolána při čekání na úkol. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. Informace o uložených výjimkách najdete v tématu Výjimky vyvolané nástrojem Speak(Prompt).

Platí pro

SpeakAsync(PromptBuilder)

Zdroj:
SpeechSynthesizer.cs
Zdroj:
SpeechSynthesizer.cs

Asynchronně vyslovuje obsah objektu 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

Parametry

promptBuilder
PromptBuilder

Obsah, který se má mluvit.

Návraty

Objekt, který obsahuje obsah, který má mluvit.

Příklady

Následující příklad vytvoří PromptBuilder objekt z řetězce a předá objekt jako argument SpeakAsync metodě.

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();
    }
  }
}

Tato metoda ukládá do úlohy, která vrací všechny výjimky nesouvisejí s používáním, které může vyvolat synchronní protějšek metody. Pokud je ve vrácené úloze uložena výjimka, bude tato výjimka vyvolána při čekání na úkol. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. Informace o uložených výjimkách najdete v tématu Výjimky vyvolané nástrojem Speak(PromptBuilder).

Poznámky

Pokud chcete synchronně vyslovovat obsah objektu PromptBuilder , použijte Speak.

Platí pro

SpeakAsync(String)

Zdroj:
SpeechSynthesizer.cs
Zdroj:
SpeechSynthesizer.cs

Asynchronně vyslovuje obsah řetězce.

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

Parametry

textToSpeak
String

Text, který se má vyslovit.

Návraty

Objekt, který obsahuje obsah, který má mluvit.

Příklady

Jak je znázorněno v následujícím příkladu SpeakAsync , metoda poskytuje nejjednodušší způsob asynchronního generování výstupu řeči.

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();
    }
  }
}

Poznámky

Pokud chcete asynchronně vyslovit řetězec, který obsahuje značky SSML, použijte metodu SpeakSsmlAsync . Pokud chcete synchronně vyslovovat obsah řetězce, použijte metodu Speak . Asynchronní mluvení o výzvě můžete zrušit metodou SpeakAsyncCancel nebo SpeakAsyncCancelAll .

Tato metoda ukládá do úlohy, která vrací všechny výjimky nesouvisejí s používáním, které může vyvolat synchronní protějšek metody. Pokud je ve vrácené úloze uložena výjimka, bude tato výjimka vyvolána při čekání na úkol. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. Informace o uložených výjimkách najdete v tématu Výjimky vyvolané nástrojem Speak(String).

Viz také

Platí pro