SpeechSynthesisStream クラス

定義

ランダム アクセス ストリームとの間で音声合成エンジン (音声) によって生成されたオーディオ データの読み取りと書き込みをサポートします。

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
継承
Object Platform::Object IInspectable SpeechSynthesisStream
属性
実装

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)

シーケンシャル ストリームに非同期的にデータを書き込みます。

適用対象

こちらもご覧ください