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
- Наследование
- Атрибуты
- Реализации
Требования к 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 для выполнения:
- Создание речи из обычного текста с помощью SynthesiseTextToStreamAsync или языка разметки синтеза речи (SSML) версии 1.1 с помощью SynthesiseSsmlToStreamAsync (
- Созданный аудиопоток воспроизводится с помощью объекта MediaElement , который позволяет управлять всем воспроизведением мультимедиа.
- Управляйте выходными данными речи с помощью различных параметров SpeechSynthesizerOptions, предоставляемых с помощью SpeechSynthesizer.Options.
Журнал версий
Версия 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) |
Асинхронно пытается задать голос, используемый для синтеза речи на устройстве Интернета вещей . Примечание Этот метод доступен только в внедренном режиме. |