Condividi tramite


SpeechSynthesizer Classe

Definizione

Fornisce l'accesso alle funzionalità di un motore di sintesi vocale installato (voce) per i servizi TTS (Text-to-speech).

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
Ereditarietà
Object Platform::Object IInspectable SpeechSynthesizer
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

Nell'esempio seguente viene illustrato come generare un flusso audio vocale da una stringa di testo di base.

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

In questo esempio viene illustrato come generare un flusso audio vocale da una stringa SSML, che include alcuni elementi di modulazione che controllano il passo, la frequenza di parlato e il volume dell'output vocale.

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

È possibile usare solo voci con firma Microsoft installate nel sistema per generare la voce.

Windows include varie voci con firma Microsoft che possono essere usate per un numero di lingue. Ogni voce genera la sintesi vocale in una singola lingua, come parlato in un paese o in un'area geografica specifica.

Per impostazione predefinita, un nuovo oggetto SpeechSynthesizer usa la voce di sistema corrente (chiamare DefaultVoice per scoprire qual è la voce predefinita).

Per specificare una delle altre voci di sintesi vocale (sintesi vocale) installate nel sistema dell'utente, usare il metodo Voice (per scoprire quali voci sono installate nel sistema, chiamare AllVoices).

Se non si specifica una lingua, viene caricata la voce che corrisponde più strettamente alla lingua selezionata nel pannello di controllo lingua.

Usare un oggetto SpeechSynthesizer per:

Cronologia delle versioni

Versione di Windows Versione dell'SDK Valore aggiunto
1703 15063 Opzioni
1709 16299 TrySetDefaultVoiceAsync

Costruttori

SpeechSynthesizer()

Inizializza una nuova istanza di un oggetto SpeechSynthesizer .

Proprietà

AllVoices

Ottiene una raccolta di tutti i motori di sintesi vocale installati (voci).

DefaultVoice

Ottiene il motore di sintesi vocale predefinito (voce).

Options

Ottiene un riferimento all'insieme di opzioni che possono essere impostate nell'oggetto SpeechSynthesizer.

Voice

Ottiene o imposta il motore di sintesi vocale (voce).

Metodi

Close()

Chiude speechSynthesizer e rilascia le risorse di sistema.

Dispose()

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

SynthesizeSsmlToStreamAsync(String)

Generare e controllare in modo asincrono l'output vocale da una stringa SSML (Speech Synthesis Markup Language) versione 1.1 .

SynthesizeTextToStreamAsync(String)

Generare in modo asincrono l'output vocale da una stringa.

TrySetDefaultVoiceAsync(VoiceInformation)

Tenta in modo asincrono di impostare la voce usata per la sintesi vocale in un dispositivo IoT .

Nota

Questo metodo è disponibile solo in modalità incorporata.

Si applica a

Vedi anche