SpeechSynthesizer Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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:
- Gerar fala de texto sem formatação usando SynthesizeTextToStreamAsync ou SSML (Speech Synthesis Markup Language) versão 1.1 usando SynthesizeSsmlToStreamAsync (
- O fluxo de áudio gerado é reproduzido por meio de um objeto MediaElement , que permite gerenciar toda a reprodução de mídia.
- Controle a saída de fala com as várias configurações de SpeechSynthesizerOptions expostas por meio de SpeechSynthesizer.Options.
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. |