SpeechSynthesizer.SpeakAsync 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
从字符串、 Prompt 对象或 PromptBuilder 对象异步生成语音输出。
重载
SpeakAsync(Prompt) |
异步使用 Prompt 对象内容的语言。 |
SpeakAsync(PromptBuilder) |
异步使用 PromptBuilder 对象内容的语言。 |
SpeakAsync(String) |
异步使用字符串内容的语言。 |
注解
方法 SpeakAsync 以异步方式生成语音。 方法会立即返回,无需等待对象的内容 SpeakAsync 完成朗讲。 如果应用程序需要在说话时执行任务,例如突出显示文本、绘制动画、监视控件或其他任务,请使用 SpeakAsync 。
在调用此方法期间, SpeechSynthesizer 可能会引发以下事件:
StateChanged. 在合成器说话状态更改时引发。
SpeakStarted. 当合成器开始生成语音时引发。
PhonemeReached. 每当合成器到达构成语言中谨慎语音的字母或字母组合时引发。
SpeakProgress. 每次合成器说完单词时引发。
VisemeReached. 每次说话输出都需要改变用于生成语音的嘴部或面部肌肉的位置。
BookmarkReached. 当合成器在提示符中遇到书签时引发。
VoiceChange. 在合成器语音更改时引发。
SpeakCompleted. 在合成器完成操作 SpeakAsync 时引发。
如果应用程序不需要在说话时执行任务,可以使用 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)异常。