SpeechSynthesizer クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
テキスト読み上げ (TTS) サービス用にインストールされている音声合成エンジン (音声) の機能へのアクセスを提供します。
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
- 継承
- 属性
- 実装
Windows の要件
デバイス ファミリ |
Windows 10 (10.0.10240.0 で導入)
|
API contract |
Windows.Foundation.UniversalApiContract (v1.0 で導入)
|
例
次の例は、基本的なテキスト文字列から音声オーディオ ストリームを生成する方法を示しています。
// 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();
});
この例では、SSML 文字列から音声オーディオ ストリームを生成する方法を示します。これには、音声出力のピッチ、読み上げ速度、ボリュームを制御するいくつかのモジュレーション要素が含まれています。
// 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();
});
注釈
システムにインストールされている Microsoft 署名付き音声のみを使用して音声を生成できます。
Windows には、さまざまな言語に使用できるさまざまな Microsoft 署名付き音声が含まれています。 各音声は、特定の国/地域で話されているように、1 つの言語で合成された音声を生成します。
既定では、新しい SpeechSynthesizer オブジェクトは現在のシステム音声を使用します ( DefaultVoice を呼び出して、既定の音声が何であるかを確認します)。
ユーザーのシステムにインストールされている他の音声合成 (テキスト読み上げ) 音声のいずれかを指定するには、 Voice メソッドを使用します (システムにインストールされている 音声 を確認するには、 AllVoices を呼び出します)。
言語を指定しない場合は、[言語] コントロール パネルで選択した言語に最も近い音声が読み込まれます。
SpeechSynthesizer オブジェクトを使用して、次の手順を実行します。
- SynthesiseTextToStreamAsync を使用してプレーン テキストから音声を生成するか、または SynthesiseSsmlToStreamAsync ( を使用して音声合成マークアップ言語 (SSML) バージョン 1.1 を生成する(
- 生成されたオーディオ ストリームは MediaElement オブジェクトを介して再生されます。これにより、すべてのメディア再生を管理できます。
- SpeechSynthesizer.Options によって公開されるさまざまな SpeechSynthesizerOptions 設定を使用して、音声出力を制御します。
バージョン履歴
Windows のバージョン | SDK バージョン | 追加された値 |
---|---|---|
1703 | 15063 | オプション |
1709 | 16299 | TrySetDefaultVoiceAsync |
コンストラクター
SpeechSynthesizer() |
SpeechSynthesizer オブジェクトの新しいインスタンスを初期化します。 |
プロパティ
AllVoices |
インストールされているすべての音声合成エンジン (音声) のコレクションを取得します。 |
DefaultVoice |
既定の音声合成エンジン (音声) を取得します。 |
Options |
SpeechSynthesizer オブジェクトで設定できるオプションのコレクションへの参照を取得します。 |
Voice |
音声合成エンジン (音声) を取得または設定します。 |
メソッド
Close() |
SpeechSynthesizer を閉じ、システム リソースを解放します。 |
Dispose() |
アンマネージ リソースの解放またはリセットに関連付けられているアプリケーション定義のタスクを実行します。 |
SynthesizeSsmlToStreamAsync(String) |
音声 合成マークアップ言語 (SSML) バージョン 1.1 の文字列から音声出力を非同期的に生成および制御します。 |
SynthesizeTextToStreamAsync(String) |
文字列から音声出力を非同期的に生成します。 |
TrySetDefaultVoiceAsync(VoiceInformation) |
IoT デバイスでの音声合成に使用される音声の設定を非同期的に試みます。 注意 このメソッドは 、埋め込みモードでのみ使用できます。 |