Compartilhar via


SpeechSynthesizer Classe

Definição

Fornece acesso à funcionalidade de um mecanismo de síntese de fala (voz) instalado para serviços de TTS (conversão de texto em fala).

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
Herança
Object Platform::Object IInspectable SpeechSynthesizer
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

O exemplo a seguir mostra como gerar um fluxo de áudio de fala de uma cadeia de caracteres de texto básica.

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

Este exemplo mostra como gerar um fluxo de áudio de fala de uma cadeia de caracteres SSML, que inclui alguns elementos de modulação que controlam a inclinação, a taxa de fala e o volume da saída de fala.

// 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

Somente as vozes assinadas pela Microsoft instaladas no sistema podem ser usadas para gerar fala.

O Windows inclui várias vozes assinadas pela Microsoft que podem ser usadas para vários idiomas. Cada voz gera fala sintetizada em um único idioma, conforme falado em um país/região específico.

Por padrão, um novo objeto SpeechSynthesizer usa a voz do sistema atual (chame DefaultVoice para descobrir qual é a voz padrão).

Para especificar qualquer uma das outras vozes de síntese de fala (conversão de texto em fala) instaladas no sistema do usuário, use o método Voice (para descobrir quais vozes estão instaladas no sistema, chame AllVoices).

Se você não especificar um idioma, a voz que mais corresponde ao idioma selecionado no painel de controle Idioma será carregada.

Use um objeto SpeechSynthesizer para:

Histórico de versão

Versão do Windows Versão do SDK Valor adicionado
1703 15063 Opções
1.709 16299 TrySetDefaultVoiceAsync

Construtores

SpeechSynthesizer()

Inicializa uma nova instância de um objeto SpeechSynthesizer .

Propriedades

AllVoices

Obtém uma coleção de todos os mecanismos de síntese de fala (vozes) instalados.

DefaultVoice

Obtém o mecanismo de síntese de fala padrão (voz).

Options

Obtém uma referência à coleção de opções que podem ser definidas no objeto SpeechSynthesizer.

Voice

Obtém ou define o mecanismo de síntese de fala (voz).

Métodos

Close()

Fecha o SpeechSynthesizer e libera recursos do sistema.

Dispose()

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

SynthesizeSsmlToStreamAsync(String)

Gere e controle de forma assíncrona a saída de fala de uma cadeia de caracteres SSML (Speech Synthesis Markup Language) versão 1.1 .

SynthesizeTextToStreamAsync(String)

Gere de forma assíncrona a saída de fala de uma cadeia de caracteres.

TrySetDefaultVoiceAsync(VoiceInformation)

Tenta de forma assíncrona definir a voz usada para síntese de fala em um dispositivo IoT .

Observação

Esse método só está disponível no modo Inserido.

Aplica-se a

Confira também