IAgentCharacter::Speak
[Microsoft エージェントは Windows 7 の時点で非推奨となり、以降のバージョンの Windows では使用できない場合があります。]
HRESULT Speak(
BSTR bszText, // text to speak
BSTR bszURL, // URL of a file to speak
long * pdwReqID // address of a request ID
);
テキストまたはサウンド ファイルを読み上げる。
- 操作が成功したことを示すS_OKを返します。
-
bszText
-
文字が読み上げるテキスト。
-
bszURL
-
音声出力に使用するサウンド ファイルの URL (またはファイル仕様)。 これは、標準のサウンド ファイル (.WAV) または言語的に強化されたサウンド ファイル (.LWV)。
-
pdwReqID
-
Speak 要求 ID を受け取る変数のアドレス。
テキスト読み上げ (TTS) エンジンを使用して話せるように構成された文字でこのメソッドを使用する場合。 bszText パラメーターを指定するだけです。 bszText パラメーターに垂直バー文字 (|) を含めて代替文字列を指定し、サーバーがメソッドを処理するたびにランダムに別の文字列を選択することができます。 TTS 出力のサポートは、文字が Microsoft エージェント文字エディターを使用してコンパイルされるときに定義されます。
文字にサウンド ファイル出力を使用する場合は、 bszURL パラメーターでファイルの場所を指定します。 HTTP プロトコルを使用してサウンド ファイルをダウンロードする場合は、 Prepare メソッドを使用して、このメソッドを使用する前にファイルの可用性を確保します。 bszText パラメーターを使用して、文字の吹き出しに表示される単語を指定できます。 言語的に拡張されたサウンド ファイルを指定する場合 (.LWV) は 、bszURL パラメーターに対してテキストを指定せず、 bszText パラメーターはファイルに格納されているテキストを使用します。
Speak メソッドは、最後に再生されたアニメーションを使用して、再生するスピーキング アニメーションを決定します。 たとえば、 Speak コマンドの前に IAgentCharacter::P lay "GestureRight" を指定すると、サーバーは GestureRight と GestureRight の読み上げアニメーションを再生します。 最後に再生されたアニメーションに読み上げアニメーションがない場合、Microsoft エージェントはキャラクターの読み上げ状態に割り当てられたアニメーション を 再生します。
Speak を呼び出し、オーディオ チャネルがビジー状態の場合、文字のオーディオ出力は聞こえないが、テキストは吹き出しという単語に表示されます。 テキストを表示するには、吹き出しの Enabled プロパティも True である必要があります。
Microsoft エージェントの吹き出しという単語の自動改行は、空白文字 (スペースやタブなど) を使用して単語を区切ります。 ただし、吹き出しに合わせて単語を分割することもできます。 日本語、中国語、タイ語などの言語では、単語を区切るためにスペースを使用しない場合は、文字の間に Unicode ゼロ幅のスペース文字 (0x200B) を挿入して、論理的な単語区切りを定義します。
注意
文字の言語 ID を設定します (Speak メソッドを使用する前に IAgentCharacterEx::SetLanguageID を使用して、吹き出し内に適切なテキストが確実に表示されるようにします。
参照
IAgentCharacter::P lay、 IAgentBalloon::GetEnabled、 IAgentCharacter::P repare