SpeechSynthesizer.SpeakAsync 方法

定义

从字符串、 Prompt 对象或 PromptBuilder 对象异步生成语音输出。

重载

SpeakAsync(Prompt)

异步使用 Prompt 对象内容的语言。

SpeakAsync(PromptBuilder)

异步使用 PromptBuilder 对象内容的语言。

SpeakAsync(String)

异步使用字符串内容的语言。

注解

方法 SpeakAsync 以异步方式生成语音。 方法会立即返回,无需等待对象的内容 SpeakAsync 完成朗讲。 如果应用程序需要在说话时执行任务,例如突出显示文本、绘制动画、监视控件或其他任务,请使用 SpeakAsync

在调用此方法期间, SpeechSynthesizer 可能会引发以下事件:

如果应用程序不需要在说话时执行任务,可以使用 Speak 方法或 SpeakSsml 方法同步生成语音。

SpeakAsync(Prompt)

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

异步使用 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)

参数

prompt
Prompt

要朗读的内容。

示例

以下示例从字符串创建 对象 Prompt ,并将 对象作为参数传递给 SpeakAsync 方法。

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

注解

可以使用 或 SpeakAsyncCancelAll 方法取消提示SpeakAsyncCancel的异步语音。

若要同步朗说 对象的内容 Prompt ,请使用 Speak

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Speak(Prompt)异常。

适用于

SpeakAsync(PromptBuilder)

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

异步使用 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

参数

promptBuilder
PromptBuilder

要朗读的内容。

返回

包含要说话的内容的 对象。

示例

以下示例从字符串创建 对象 PromptBuilder ,并将 对象作为参数传递给 SpeakAsync 方法。

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

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Speak(PromptBuilder)异常。

注解

若要同步朗说 对象的内容 PromptBuilder ,请使用 Speak

适用于

SpeakAsync(String)

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

异步使用字符串内容的语言。

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

参数

textToSpeak
String

要朗读的文本。

返回

包含要说话的内容的 对象。

示例

如以下示例所示, SpeakAsync 方法提供了异步生成语音输出的最简单方法。

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

注解

若要异步朗说包含 SSML 标记的字符串,请使用 SpeakSsmlAsync 方法。 若要同步朗说字符串的内容,请使用 Speak 方法。 可以使用 或 SpeakAsyncCancelAll 方法取消提示SpeakAsyncCancel的异步语音。

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Speak(String)异常。

另请参阅

适用于