Condividi tramite


SpeechSynthesisStream Classe

Definizione

Supporta la lettura e la scrittura di dati audio generati dal motore di sintesi vocale (voce) a/da un flusso di accesso casuale.

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
Ereditarietà
Object Platform::Object IInspectable SpeechSynthesisStream
Attributi
Implementazioni

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Esempio

L'app UWP può usare un oggetto SpeechSynthesizer per creare un flusso audio e un parlato di output in base a una stringa di testo normale.

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

Commenti

Cronologia delle versioni

Versione di Windows Versione dell'SDK Valore aggiunto
1703 15063 TimedMetadataTracks

Proprietà

CanRead

Ottiene se SpeechSynthesisStream può essere letto da.

CanWrite

Ottiene un valore che indica se SpeechSynthesisStream può essere scritto in.

ContentType

Ottiene il tipo MIME del contenuto di SpeechSynthesisStream.

Markers

Ottiene la raccolta di marcatori di sequenza temporale associati a SpeechSynthesisStream.

Nota

SpeechSynthesisStream.Markers è deprecato. È consigliabile usare gli oggetti MediaPlayerElement e MediaPlaybackItem , in combinazione con le proprietà IncludeSentenceBoundaryMetadata e IncludeWordBoundaryMetadata di un oggetto SpeechSynthesizerOptions.

Position

Ottiene la posizione corrente all'interno di SpeechSynthesisStream.

Size

Ottiene o imposta le dimensioni di SpeechSynthesisStream.

TimedMetadataTracks

Ottiene la raccolta di limiti facoltativi di parole e frasi nel flusso di sintesi vocale, come specificato dalla proprietà SpeechSynthesizer.Options .

Metodi

CloneStream()

Crea una copia di SpeechSynthesisStream che fa riferimento agli stessi byte del flusso originale.

Close()

Rilascia le risorse di sistema esposte da SpeechSynthesisStream.

Dispose()

Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite.

FlushAsync()

Scarica i dati in modo asincrono in un flusso sequenziale.

GetInputStreamAt(UInt64)

Recupera un flusso di input in una posizione specificata in SpeechSynthesisStream.

GetOutputStreamAt(UInt64)

Recupera un flusso di output in una posizione specificata in SpeechSynthesisStream.

ReadAsync(IBuffer, UInt32, InputStreamOptions)

Legge i dati in modo asincrono in un flusso sequenziale.

Seek(UInt64)

Passa alla posizione specificata all'interno di SpeechSynthesisStream.

WriteAsync(IBuffer)

Scrive i dati in modo asincrono in un flusso sequenziale.

Si applica a

Vedi anche