SpeechSynthesisStream クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ランダム アクセス ストリームとの間で音声合成エンジン (音声) によって生成されたオーディオ データの読み取りと書き込みをサポートします。
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
- 継承
- 属性
- 実装
Windows の要件
デバイス ファミリ |
Windows 10 (10.0.10240.0 で導入)
|
API contract |
Windows.Foundation.UniversalApiContract (v1.0 で導入)
|
例
UWP アプリでは 、SpeechSynthesizer オブジェクトを使用して、プレーン テキスト文字列に基づいてオーディオ ストリームを作成し、音声を出力できます。
// 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();
});
注釈
バージョン履歴
Windows のバージョン | SDK バージョン | 追加された値 |
---|---|---|
1703 | 15063 | TimedMetadataTracks |
プロパティ
CanRead |
SpeechSynthesisStream を読み取ることができるかどうかを取得します。 |
CanWrite |
SpeechSynthesisStream を書き込むことができるかどうかを示す値を取得します。 |
ContentType |
SpeechSynthesisStream のコンテンツの MIME の種類を取得します。 |
Markers |
SpeechSynthesisStream に関連付けられているタイムライン マーカーのコレクションを取得します。 注意 SpeechSynthesisStream.Markers は非推奨となりました。 代わりに MediaPlayerElement オブジェクトと MediaPlaybackItem オブジェクトを使用することをお勧めします (SpeechSynthesizerOptions オブジェクトの IncludeSentenceBoundaryMetadata プロパティと IncludeWordBoundaryMetadata プロパティと組み合わせて使用します)。 |
Position |
SpeechSynthesisStream 内の現在の位置を取得します。 |
Size |
SpeechSynthesisStream のサイズを取得または設定します。 |
TimedMetadataTracks |
SpeechSynthesizer.Options プロパティで指定された音声合成ストリーム内の省略可能な単語と文の境界のコレクションを取得します。 |
メソッド
CloneStream() |
元のストリームと同じバイトを参照する SpeechSynthesisStream のコピーを作成します。 |
Close() |
SpeechSynthesisStream によって公開されるシステム リソースを解放します。 |
Dispose() |
アンマネージ リソースの解放またはリセットに関連付けられているアプリケーション定義のタスクを実行します。 |
FlushAsync() |
シーケンシャル ストリームで非同期的にデータをフラッシュします。 |
GetInputStreamAt(UInt64) |
SpeechSynthesisStream 内の指定した場所にある入力ストリームを取得します。 |
GetOutputStreamAt(UInt64) |
SpeechSynthesisStream 内の指定した場所にある出力ストリームを取得します。 |
ReadAsync(IBuffer, UInt32, InputStreamOptions) |
シーケンシャル ストリームで非同期的にデータを読み取ります。 |
Seek(UInt64) |
SpeechSynthesisStream 内の指定した位置に移動します。 |
WriteAsync(IBuffer) |
シーケンシャル ストリームに非同期的にデータを書き込みます。 |