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

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

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