Skip to content

メッセージング ​

sendMessage(text) ​

アバターにテキストメッセージを送信します。アバターがLLM応答を生成し、音声で返答します。

js
SDK.sendMessage('こんにちは');
パラメータ型説明
textstring送信するメッセージ

speak(option) ​

アバターが指定されたテキストをそのまま読み上げます(LLM処理なし)。

文字列またはオプションオブジェクトを渡せます。

js
// テキストのみ
SDK.speak('この文章をそのまま読み上げてください');

// オプションオブジェクトで
SDK.speak({ text: 'こんにちは。' });
パラメータ型説明
optionstring | SpeakOptionテキスト文字列またはオプションオブジェクト

SpeakOption ​

フィールド型必須説明
textstringOアバターが読み上げるテキスト

発話を止めて再度話させる場合

stopSpeaking() の直後に speak() や sendMessage() を呼び出すと、サーバーでリクエストが処理されない場合があります。安全な呼び出しパターンはアバター制御 > stopSpeaking()を参照してください。

sendSpeakAudio(audio, sample_rate) ​

Base64エンコードされたオーディオデータを送信し、アバターが該当音声でリップシンク(lip-sync)します。

js
SDK.sendSpeakAudio(base64AudioData);

// サンプルレートも一緒に渡す
SDK.sendSpeakAudio(base64AudioData, sampleRate);
パラメータ型必須説明
audiostringOBase64エンコードされたオーディオデータ
sample_ratenumberX送信するオーディオのサンプルレート(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();