Speak メソッド
[Microsoft エージェントは Windows 7 の時点で非推奨となり、以降のバージョンの Windows では使用できない可能性があります。]
-
説明
-
指定した文字の指定したテキストまたはサウンド ファイルを読み上げる。
-
構文の
-
エージェント ** です。characters ("CharacterID")。Speak** [Text], [URL]
部分 形容 テキスト 随意。 文字の言い分を指定する文字列。 URL 随意。 オーディオ ファイルの場所を指定する文字列式 (.WAV または .LWV 形式)。 場所は、ファイル (UNC パス仕様を含む) または URL (文字アニメーション データも HTTP プロトコルを使用して取得される場合) として指定できます。
備考
Text パラメーターと Url パラメーターは省略可能ですが、そのうちの 1 つを指定する必要があります。 このメソッドを、ワード バルーンでのみ読み上げるか、テキスト読み上げ (TTS) エンジンを使用するように構成された文字で使用するには、Text パラメーターを指定するだけです。 従来スペースを含まない言語の場合でも、単語吹き出しに適切な単語区切りを定義するために、単語間にスペースを含めます。
また、Text パラメーターに垂直バー文字 (|) を含めて代替文字列を指定することもできます。そのため、サーバーはメソッドを処理するたびに異なる文字列をランダムに選択します。
TTS 出力の文字サポートは、Microsoft エージェント文字エディターを使用して文字をコンパイルするときに定義されます。 TTS 出力を生成するには、このメソッドを呼び出す前に、互換性のある TTS エンジンが既にインストールされている必要があります。 詳細については、「Speech Services へのアクセス」を参照してください。
録音したサウンドファイル(.WAV または .LWV 形式のみ) 文字の出力、Url パラメーターでファイルの場所を指定します。 このファイル仕様には、ローカル (絶対または相対) または汎用名前付け規則 (UNC) パスを含めることができます。 ファイル名には、米国コード ページ 1252 に含まれていない文字を含めることはできません。 ただし、HTTP プロトコルを使用して文字アニメーション データにアクセスする場合は、Speak メソッドを呼び出す前に、Get メソッドを使用してアニメーションを読み込みます。 クリエイティブの詳細については、「Microsoft 言語情報サウンド編集ツールの を使用する」を参照してください。LWV ファイル。
録音されたサウンド ファイル出力を使用する場合でも、Text パラメーターを使用して、文字のワード バルーンに表示される単語を指定できます。 ただし、言語的に拡張されたサウンド ファイル (.URL パラメーターに LWV) を指定し、ワード バルーンのテキストを指定しません。Text パラメーターは、ファイルに格納されているテキストを使用します。
Text パラメーターに含める特殊なタグを使用して、音声出力のパラメーターを変更することもできます。 詳細については、「Microsoft Agent Speech 出力タグの」を参照してください。
オブジェクト参照を宣言してこのメソッドに設定すると、Request オブジェクトが返されます。 これを使用すると、次の例のように、コードの他の部分を文字の読み上げ出力と同期できます。
Dim SpeakRequest as Object
...
Set SpeakRequest = Genie.Speak ("And here it is.")
...
Sub Agent1_RequestComplete (ByVal Request as Object)
' Make certain the request exists
If SpeakRequest Not Nothing Then
' See if it was this request
If Request = SpeakRequest Then
' Display the message box
Msgbox "Ta da!"
End If
End If
End Sub
Request オブジェクトを使用して、特定のエラー状態を確認することもできます。 たとえば、Speak メソッドを使用して話し、互換性のある TTS エンジンがインストールされていない場合、サーバーは、Request オブジェクトの Status プロパティを "failed" に設定し、Description プロパティを "Class not registered" または "Unknown or object returned error" に設定します。 TTS エンジンがインストールされているかどうかを確認するには、TTSModeID プロパティを使用します。
同様に、文字がサウンド ファイルを読み上げようとしたときに、ファイルが読み込まれていない場合、またはオーディオ デバイスに問題がある場合、サーバーは、Request オブジェクトの Status プロパティを適切なエラー コード番号で "failed" に設定します。
また、音声テキストにブックマークの音声タグを含め、コードを同期することもできます。
Dim SpeakRequest as Object
...
Set SpeakRequest = Genie.Speak ("And here \mrk=100\it is.")
...
Sub Agent1_Bookmark (ByVal BookmarkID As Long)
If BookmarkID = 100 Then
' Display the message box
Msgbox "Tada!"
End If
End Sub
ブックマーク音声タグの詳細については、「Speech Output Tags」を参照してください。
Speak メソッドは、最後に再生されたアクションを使用して、再生するスピーキング アニメーションを決定します。 たとえば、Speak コマンドの前に Play "GestureRight" を指定した場合、サーバーは GestureRight 再生され、GestureRight 読み上げアニメーションが再生されます。 最後に再生されたアニメーションにスピーキング アニメーションがない場合、エージェントはキャラクターの Speaking 状態に割り当てられたアニメーションを再生します。
Speak を呼び出し、オーディオ チャネルがビジー状態の場合、キャラクターのオーディオ出力は聞こえないが、テキストは吹き出しという単語に表示されます。
吹き出し内のエージェントの自動単語区切りは、空白文字 (スペースや Tab など) を使用して単語を区切ります。 ただし、できない場合は、吹き出しに合わせて単語を分割することがあります。 日本語、中国語、タイ語などの言語では、単語を区切るためにスペースを使用しない場合は、文字の間に Unicode のゼロ幅スペース文字 (0x200B) を挿入して、論理的な単語区切りを定義します。
手記
吹き出しの Enabled プロパティも、テキストを表示するには True する必要があります。
手記
文字の言語 ID を設定します (Speak メソッドを使用する前に、文字の LanguageID を設定して、ワード バルーン内に適切なテキストが表示されるようにします。
関連項目
Bookmark イベント、RequestStart イベント、RequestComplete イベント