Поделиться через


SpeechSynthesizer Класс

Определение

Предоставляет доступ к функциональным возможностям установленного модуля синтеза речи (голос) для служб преобразования текста в речь (TTS).

public ref class SpeechSynthesizer sealed : IClosable
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class SpeechSynthesizer final : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class SpeechSynthesizer final : IClosable
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class SpeechSynthesizer : System.IDisposable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class SpeechSynthesizer : System.IDisposable
function SpeechSynthesizer()
Public NotInheritable Class SpeechSynthesizer
Implements IDisposable
Наследование
Object Platform::Object IInspectable SpeechSynthesizer
Атрибуты
Реализации

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v1.0)

Примеры

В следующем примере показано, как создать речевой аудиопоток из простой текстовой строки.

// The media object for controlling and playing audio.
MediaElement mediaElement = this.media;

// The object for controlling the speech synthesis engine (voice).
var synth = new Windows.Media.SpeechSynthesis.SpeechSynthesizer();

// Generate the audio stream from plain text.
SpeechSynthesisStream stream = await synth.SynthesizeTextToStreamAsync("Hello World");

// Send the stream to the media object.
mediaElement.SetSource(stream, stream.ContentType);
mediaElement.Play();
// The object for controlling the speech synthesis engine (voice).
synth = ref new SpeechSynthesizer();
// The media object for controlling and playing audio.
media = ref new MediaElement();
// The string to speak.
String^ text = "Hello World";

// Generate the audio stream from plain text.
task<SpeechSynthesisStream ^> speakTask = create_task(synth->SynthesizeTextToStreamAsync(text));
speakTask.then([this, text](SpeechSynthesisStream ^speechStream)
{
    // Send the stream to the media object.
    // media === MediaElement XAML object.
    media->SetSource(speechStream, speechStream->ContentType);
    media->AutoPlay = true;
    media->Play();
});

В этом примере показано, как создать речевой аудиопоток из строки SSML, которая включает в себя некоторые элементы модуляции, управляющие тон, скорость речи и громкость вывода речи.

// The string to speak with SSML customizations.
string Ssml =
    @"<speak version='1.0' " +
    "xmlns='http://www.w3.org/2001/10/synthesis' xml:lang='en-US'>" +
    "Hello <prosody contour='(0%,+80Hz) (10%,+80%) (40%,+80Hz)'>World</prosody> " + 
    "<break time='500ms'/>" +
    "Goodbye <prosody rate='slow' contour='(0%,+20Hz) (10%,+30%) (40%,+10Hz)'>World</prosody>" +
    "</speak>";

// The media object for controlling and playing audio.
MediaElement mediaElement = this.media;

// The object for controlling the speech synthesis engine (voice).
var synth = new Windows.Media.SpeechSynthesis.SpeechSynthesizer();

// Generate the audio stream from plain text.
SpeechSynthesisStream stream = await synth.synthesizeSsmlToStreamAsync(Ssml);

// Send the stream to the media object.
mediaElement.SetSource(stream, stream.ContentType);
mediaElement.Play();
// The object for controlling the speech synthesis engine (voice).
synth = ref new SpeechSynthesizer();
// The media object for controlling and playing audio.
media = ref new MediaElement();
// The string to speak.
String^ ssml =
    "<speak version='1.0' "
    "xmlns='http://www.w3.org/2001/10/synthesis' xml:lang='en-US'>"
    "Hello <prosody contour='(0%,+80Hz) (10%,+80%) (40%,+80Hz)'>World</prosody>"
    "<break time='500ms' /> "
    "Goodbye <prosody rate='slow' contour='(0%,+20Hz) (10%,+30%) (40%,+10Hz)'>World</prosody>"
    "</speak>";

// Generate the audio stream from SSML.
task<SpeechSynthesisStream ^> speakTask = create_task(synth->SynthesizeSsmlToStreamAsync(ssml));
speakTask.then([this, ssml](SpeechSynthesisStream ^speechStream)
{
    // Send the stream to the media object.
    // media === MediaElement XAML object.
    media->SetSource(speechStream, speechStream->ContentType);
    media->AutoPlay = true;
    media->Play();
});

Комментарии

Для создания речи можно использовать только голоса, подписанные корпорацией Майкрософт, установленные в системе.

Windows включает различные голоса, подписанные корпорацией Майкрософт, которые можно использовать для нескольких языков. Каждый голос создает синтезированную речь на одном языке, на котором говорят в определенной стране или регионе.

По умолчанию новый объект SpeechSynthesizer использует текущий системный голос (вызовите DefaultVoice , чтобы узнать, что такое голос по умолчанию).

Чтобы указать любые другие голоса синтеза речи (преобразования текста в речь), установленные в системе пользователя, используйте метод Voice (чтобы узнать, какие голоса установлены в системе, вызовите AllVoices).

Если язык не указан, загружается голос, который наиболее точно соответствует языку, выбранному на панели управления языком.

Используйте объект SpeechSynthesizer для выполнения:

Журнал версий

Версия Windows Версия пакета SDK Добавленная стоимость
1703 15063 Варианты
1709 16299 TrySetDefaultVoiceAsync

Конструкторы

SpeechSynthesizer()

Инициализирует новый экземпляр объекта SpeechSynthesizer .

Свойства

AllVoices

Возвращает коллекцию всех установленных модулей синтеза речи (голосов).

DefaultVoice

Возвращает подсистему синтеза речи по умолчанию (голос).

Options

Возвращает ссылку на коллекцию параметров, которые можно задать для объекта SpeechSynthesizer.

Voice

Возвращает или задает подсистему синтеза речи (голос).

Методы

Close()

Закрывает SpeechSynthesizer и освобождает системные ресурсы.

Dispose()

Выполняет определяемые приложением задачи, связанные с удалением, высвобождением или сбросом неуправляемых ресурсов.

SynthesizeSsmlToStreamAsync(String)

Асинхронное создание и управление выходными данными речи из строки языка разметки синтеза речи (SSML) версии 1.1 .

SynthesizeTextToStreamAsync(String)

Асинхронное создание выходных данных речи из строки.

TrySetDefaultVoiceAsync(VoiceInformation)

Асинхронно пытается задать голос, используемый для синтеза речи на устройстве Интернета вещей .

Примечание

Этот метод доступен только в внедренном режиме.

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

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