Partage via


SpeechSynthesisStream Classe

Définition

Prend en charge la lecture et l’écriture de données audio générées par le moteur de synthèse vocale (voix) vers/à partir d’un flux d’accès aléatoire.

public ref class SpeechSynthesisStream sealed : IClosable
public ref class SpeechSynthesisStream sealed : IClosable, ITimedMetadataTrackProvider
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class SpeechSynthesisStream final : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class SpeechSynthesisStream final : IClosable, ITimedMetadataTrackProvider
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class SpeechSynthesisStream : System.IDisposable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class SpeechSynthesisStream : System.IDisposable, ITimedMetadataTrackProvider
Public NotInheritable Class SpeechSynthesisStream
Implements IDisposable
Public NotInheritable Class SpeechSynthesisStream
Implements IDisposable, ITimedMetadataTrackProvider
Héritage
Object Platform::Object IInspectable SpeechSynthesisStream
Attributs
Implémente

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Exemples

Votre application UWP peut utiliser un objet SpeechSynthesizer pour créer un flux audio et une sortie vocale basée sur une chaîne de texte brut.

// 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();
});
// 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();
});

Remarques

Historique des versions

Version de Windows Version du SDK Valeur ajoutée
1703 15063 TimedMetadataTracks

Propriétés

CanRead

Obtient si SpeechSynthesisStream peut être lu.

CanWrite

Obtient une valeur qui indique si SpeechSynthesisStream peut être écrit dans.

ContentType

Obtient le type MIME du contenu de SpeechSynthesisStream.

Markers

Obtient la collection de marqueurs chronologie associés à SpeechSynthesisStream.

Notes

SpeechSynthesisStream.Markers est déconseillé. Nous vous recommandons d’utiliser les objets MediaPlayerElement et MediaPlaybackItem à la place (conjointement avec les propriétés IncludeSentenceBoundaryMetadata et IncludeWordBoundaryMetadata d’un objet SpeechSynthesizerOptions ).

Position

Obtient la position actuelle dans SpeechSynthesisStream.

Size

Obtient ou définit la taille de SpeechSynthesisStream.

TimedMetadataTracks

Obtient la collection de limites de mots et de phrases facultatives dans le flux de synthèse vocale, comme spécifié par la propriété SpeechSynthesizer.Options .

Méthodes

CloneStream()

Crée une copie de SpeechSynthesisStream qui fait référence aux mêmes octets que le flux d’origine.

Close()

Libère les ressources système exposées par SpeechSynthesisStream.

Dispose()

Exécute les tâches définies par l'application associées à la libération ou à la redéfinition des ressources non managées.

FlushAsync()

Vide les données de manière asynchrone dans un flux séquentiel.

GetInputStreamAt(UInt64)

Récupère un flux d’entrée à un emplacement spécifié dans SpeechSynthesisStream.

GetOutputStreamAt(UInt64)

Récupère un flux de sortie à un emplacement spécifié dans SpeechSynthesisStream.

ReadAsync(IBuffer, UInt32, InputStreamOptions)

Lit les données de manière asynchrone dans un flux séquentiel.

Seek(UInt64)

Accède à la position spécifiée dans SpeechSynthesisStream.

WriteAsync(IBuffer)

Écrit des données de manière asynchrone dans un flux séquentiel.

S’applique à

Voir aussi