次の方法で共有


Speak メソッド

[Microsoft エージェントは Windows 7 の時点で非推奨となり、以降のバージョンの Windows では使用できない場合があります。]

Description

指定した文字の指定したテキストまたはサウンド ファイルを読み上げる。

構文

agent**.文字 ("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 プロトコルを使用して文字アニメーション データにアクセスする場合は、 Get メソッドを使用してアニメーションを読み込み、 Speak メソッドを呼び出します。 クリエイティブの詳細については、「 Microsoft 言語情報サウンド編集ツールの使用 」を参照してください。LWV ファイル。

録音されたサウンド ファイル出力を使用する場合でも、 Text パラメーターを使用して、文字の吹き出しに表示される単語を指定できます。 ただし、言語的に強化されたサウンド ファイルを指定する場合 (。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

ブックマーク音声タグの詳細については、「 音声出力タグ」を参照してください。

Speak メソッドは、最後に再生されたアクションを使用して、再生するスピーキング アニメーションを決定します。 たとえば、[読み上げ] コマンドの前に "GestureRight" を再生した場合、サーバーは GestureRight を再生し、次に GestureRight を読み上げるアニメーションを再生します。 最後に再生されたアニメーションに話すアニメーションがない場合、エージェントはキャラクターの話す状態に割り当てられたアニメーション 再生します。

Speak を呼び出し、オーディオ チャネルがビジー状態の場合、文字のオーディオ出力は聞こえないが、テキストは吹き出しに表示されます。

エージェントの単語吹き出しの自動改行は、空白文字 (スペースやタブなど) を使用して単語を区切ります。 ただし、できない場合は、吹き出しに合わせて単語が壊れる可能性があります。 日本語、中国語、タイ語などの言語では、単語を区切るためにスペースを使用しない場合は、文字間に Unicode のゼロ幅スペース文字 (0x200B) を挿入して、論理単語区切りを定義します。

Note

テキストを表示するには、吹き出しの Enabled プロパティも True にする必要があります。

 

注意

文字の言語 ID を設定します (Speak メソッドを使用する前に文字の LanguageID を設定して、吹き出し内に適切なテキストが表示されるようにします。

 

参照

Bookmark イベントRequestStart イベントRequestComplete イベント