SpeechSynthesisStream Classe

Definição

Dá suporte à leitura e gravação de dados de áudio gerados pelo mecanismo de síntese de fala (voz) de/para um fluxo de acesso aleatório.

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
Herança
Object Platform::Object IInspectable SpeechSynthesisStream
Atributos
Implementações

Requisitos do Windows

Família de dispositivos
Windows 10 (introduzida na 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v1.0)

Exemplos

Seu aplicativo UWP pode usar um objeto SpeechSynthesizer para criar um fluxo de áudio e uma fala de saída com base em uma cadeia de caracteres de texto sem formatação.

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

Comentários

Histórico de versão

Versão do Windows Versão do SDK Valor adicionado
1703 15063 TimedMetadataTracks

Propriedades

CanRead

Obtém se SpeechSynthesisStream pode ser lido.

CanWrite

Obtém um valor que indica se SpeechSynthesisStream pode ser gravado.

ContentType

Obtém o tipo MIME do conteúdo de SpeechSynthesisStream.

Markers

Obtém a coleção de marcadores linha do tempo associados ao SpeechSynthesisStream.

Observação

SpeechSynthesisStream.Markers foi preterido. Recomendamos usar os objetos MediaPlayerElement e MediaPlaybackItem em vez disso (em conjunto com as propriedades IncludeSentenceBoundaryMetadata e IncludeWordBoundaryMetadata de um objeto SpeechSynthesizerOptions ).

Position

Obtém a posição atual no SpeechSynthesisStream.

Size

Obtém ou define o tamanho do SpeechSynthesisStream.

TimedMetadataTracks

Obtém a coleção de limites opcionais de palavra e frase no fluxo de síntese de fala, conforme especificado pela propriedade SpeechSynthesizer.Options .

Métodos

CloneStream()

Cria uma cópia de SpeechSynthesisStream que faz referência aos mesmos bytes do fluxo original.

Close()

Libera recursos do sistema expostos por SpeechSynthesisStream.

Dispose()

Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados.

FlushAsync()

Libera dados de forma assíncrona em um fluxo sequencial.

GetInputStreamAt(UInt64)

Recupera um fluxo de entrada em um local especificado em SpeechSynthesisStream.

GetOutputStreamAt(UInt64)

Recupera um fluxo de saída em um local especificado em SpeechSynthesisStream.

ReadAsync(IBuffer, UInt32, InputStreamOptions)

Lê dados de forma assíncrona em um fluxo sequencial.

Seek(UInt64)

Vai para a posição especificada em SpeechSynthesisStream.

WriteAsync(IBuffer)

Grava dados de forma assíncrona em um fluxo sequencial.

Aplica-se a

Confira também