SpeechSynthesizer.SpeakAsync Метод

Определение

Создает речевой вывод асинхронно из строки, объекта 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)

Исходный код:
SpeechSynthesizer.cs
Исходный код:
SpeechSynthesizer.cs
Исходный код:
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();
    }
  }
}

Комментарии

Вы можете отменить асинхронное произнесение запроса с помощью SpeakAsyncCancel метода или SpeakAsyncCancelAll .

Чтобы синхронно говорить о содержимом Prompt объекта, используйте Speak.

Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые Speak(Prompt).

Применяется к

SpeakAsync(PromptBuilder)

Исходный код:
SpeechSynthesizer.cs
Исходный код:
SpeechSynthesizer.cs
Исходный код:
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)

Исходный код:
SpeechSynthesizer.cs
Исходный код:
SpeechSynthesizer.cs
Исходный код:
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 метод . Вы можете отменить асинхронное произнесение запроса с помощью SpeakAsyncCancel метода или SpeakAsyncCancelAll .

Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые Speak(String).

См. также раздел

Применяется к