SpeechSynthesizer Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Bietet Zugriff auf die Funktionalität einer installierten Sprachsynthese-Engine (Voice) für TTS-Dienste (Text-to-Speech).
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
- Vererbung
- Attribute
- Implementiert
Windows-Anforderungen
Gerätefamilie |
Windows 10 (eingeführt in 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)
|
Beispiele
Das folgende Beispiel zeigt, wie Sie einen Sprachaudiodatenstrom aus einer einfachen Textzeichenfolge generieren.
// 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();
});
In diesem Beispiel wird gezeigt, wie Sie einen Sprachaudiodatenstrom aus einer SSML-Zeichenfolge generieren, der einige Modulationselemente enthält, die die Tonhöhe, Sprechrate und Lautstärke der Sprachausgabe steuern.
// 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();
});
Hinweise
Nur von Microsoft signierte Stimmen, die auf dem System installiert sind, können zum Generieren von Sprache verwendet werden.
Windows enthält verschiedene von Microsoft signierte Stimmen, die für eine Reihe von Sprachen verwendet werden können. Jede Stimme generiert synthetisierte Sprache in einer einzelnen Sprache, die in einem bestimmten Land/einer bestimmten Region gesprochen wird.
Standardmäßig verwendet ein neues SpeechSynthesizer-Objekt die aktuelle Systemstimme (rufen Sie DefaultVoice auf, um herauszufinden, was die Standardstimme ist).
Verwenden Sie die Voice-Methode ( um herauszufinden, welche Stimmen auf dem System des Benutzers installiert sind) (um herauszufinden, welche Stimmen auf dem System installiert sind, rufen Sie AllVoices auf).
Wenn Sie keine Sprache angeben, wird die Stimme geladen, die der in der Sprachsteuerung ausgewählten Sprache am ehesten entspricht.
Verwenden Sie ein SpeechSynthesizer-Objekt für Folgendes:
- Generieren von Sprache aus Nur-Text mit SynthesizeTextToStreamAsync oder Speech Synthesis Markup Language (SSML) Version 1.1 mithilfe von SynthesizeSsmlToStreamAsync (
- Der generierte Audiodatenstrom wird über ein MediaElement-Objekt wiedergegeben, mit dem Sie die gesamte Medienwiedergabe verwalten können.
- Steuern Sie die Sprachausgabe mit den verschiedenen SpeechSynthesizerOptions-Einstellungen , die über SpeechSynthesizer.Options verfügbar gemacht werden.
Versionsverlauf
Windows-Version | SDK-Version | Mehrwert |
---|---|---|
1703 | 15063 | Optionen |
1709 | 16299 | TrySetDefaultVoiceAsync |
Konstruktoren
SpeechSynthesizer() |
Initialisiert eine neue instance eines SpeechSynthesizer-Objekts. |
Eigenschaften
AllVoices |
Ruft eine Auflistung aller installierten Sprachsynthese-Engines (Stimmen) ab. |
DefaultVoice |
Ruft die Standardmäßige Sprachsynthese-Engine (Voice) ab. |
Options |
Ruft einen Verweis auf die Auflistung von Optionen ab, die für das SpeechSynthesizer-Objekt festgelegt werden können. |
Voice |
Ruft die Sprachsynthese-Engine (Stimme) ab oder legt sie fest. |
Methoden
Close() |
Schließt speechSynthesizer und gibt Systemressourcen frei. |
Dispose() |
Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen. |
SynthesizeSsmlToStreamAsync(String) |
Generieren und steuern Sie die Sprachausgabe asynchron aus einer SSML-Zeichenfolge (Speech Synthesis Markup Language, Version 1.1). |
SynthesizeTextToStreamAsync(String) |
Generieren Sie die Sprachausgabe asynchron aus einer Zeichenfolge. |
TrySetDefaultVoiceAsync(VoiceInformation) |
Versucht asynchron, die für die Sprachsynthese auf einem IoT-Gerät verwendete Stimme festzulegen. Hinweis Diese Methode ist nur im eingebetteten Modus verfügbar. |