メッセージング
sendMessage(text)
アバターにテキストメッセージを送信します。アバターがLLM応答を生成し、音声で返答します。
js
SDK.sendMessage('こんにちは');| パラメータ | 型 | 説明 |
|---|---|---|
text | string | 送信するメッセージ |
speak(option)
アバターが指定されたテキストをそのまま読み上げます(LLM処理なし)。
文字列またはオプションオブジェクトを渡せます。
js
// テキストのみ
SDK.speak('この文章をそのまま読み上げてください');
// オプションオブジェクトで
SDK.speak({ text: 'こんにちは。' });| パラメータ | 型 | 説明 |
|---|---|---|
option | string | SpeakOption | テキスト文字列またはオプションオブジェクト |
SpeakOption
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
text | string | O | アバターが読み上げるテキスト |
発話を止めて再度話させる場合
stopSpeaking() の直後に speak() や sendMessage() を呼び出すと、サーバーでリクエストが処理されない場合があります。安全な呼び出しパターンはアバター制御 > stopSpeaking()を参照してください。
sendSpeakAudio(audio, sample_rate)
Base64エンコードされたオーディオデータを送信し、アバターが該当音声でリップシンク(lip-sync)します。
js
SDK.sendSpeakAudio(base64AudioData);
// サンプルレートも一緒に渡す
SDK.sendSpeakAudio(base64AudioData, sampleRate);| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
audio | string | O | Base64エンコードされたオーディオデータ |
sample_rate | number | X | 送信するオーディオのサンプルレート(Hz)。元オーディオの実際のサンプルレートをそのまま渡してください — 例: ブラウザ録音なら AudioContext.sampleRate(通常 48000)。省略するとサーバーは 16000Hz とみなして処理するため、元が16000Hzでない場合は再生速度・音程が歪む可能性があります。 |
- サイズ制限は1回の呼び出しごとに適用されます。Base64をデコードした元のバイト数が0.1MBを超えると、その呼び出しは送信されません。複数回に分けて呼び出す場合は各呼び出しが個別に検査され、累計の合計にはこの制限が適用されません。
audioにはBase64文字列のみを渡してください。data:audio/...;base64,のようなdata URLのprefixが付いていると送信されません。- サイズを超過した場合やBase64形式が正しくない場合も例外は発生しません。その呼び出しのみが送信されず、コンソールに警告ログが出力されます。
audioは常に1回の呼び出しにつき1つのBase64文字列です(配列ではありません)。長いオーディオは以下のように文字列を分割して繰り返し呼び出し、送信が終わったらendSpeakAudio()を呼び出してください。
js
const CHUNK_SIZE = 96 * 1024;
for (let i = 0; i < base64Audio.length; i += CHUNK_SIZE) {
const chunk = base64Audio.slice(i, i + CHUNK_SIZE); // string
SDK.sendSpeakAudio(chunk, sampleRate);
}
SDK.endSpeakAudio();endSpeakAudio()
リップシンク音声送信を終了します。最後のチャンクを送信した後に1回呼び出します。サーバーがこの信号を受け取ると、受信したオーディオでリップシンク処理を開始します。
js
SDK.endSpeakAudio();clearMessages()
<chat-container> 使用時の会話メッセージリストをクリアします。
js
SDK.clearMessages();