メッセージング
sendMessage(text)
アバターにテキストメッセージを送信します。アバターがLLM応答を生成し、音声で返答します。
js
SDK.sendMessage('こんにちは');| パラメータ | 型 | 説明 |
|---|---|---|
text | string | 送信するメッセージ |
speak(text)
アバターが指定されたテキストをそのまま読み上げます(LLM処理なし)。
js
SDK.speak('この文章をそのまま読み上げてください');| パラメータ | 型 | 説明 |
|---|---|---|
text | string | アバターが読み上げるテキスト |
stopSpeaking() の直後にメッセージを送信する場合の注意
stopSpeaking() の直後に speak() や sendMessage() を呼び出すと、サーバーがリクエストをドロップする場合があります。RESPONSE_ENDED シグナルを受信してから呼び出してください。
js
let pendingText = null;
SDK.onSignal((data) => {
if (data.signal === 'RESPONSE_ENDED' && pendingText) {
SDK.speak(pendingText);
pendingText = null;
}
});
function stopAndSpeak(text) {
pendingText = text;
SDK.stopSpeaking();
}sendSpeakAudio(audio)
Base64エンコードされたオーディオデータを送信し、アバターが該当音声でlip-syncします。
js
SDK.sendSpeakAudio(base64AudioData);| パラメータ | 型 | 説明 |
|---|---|---|
audio | string | Base64エンコードされたオーディオデータ(最大0.1MB) |
0.1MB超過または無効なBase64形式は拒否されます。複数回呼び出してチャンク単位で送信でき、送信完了後に endSpeakAudio() を呼び出してください。
endSpeakAudio()
オーディオエコー送信を終了します。サーバーがこの信号を受け取ると、受信したオーディオでlip-sync処理を開始します。
js
// チャンク単位で送信後に終了
for (const chunk of audioChunks) {
SDK.sendSpeakAudio(chunk);
}
SDK.endSpeakAudio();clearMessages()
<chat-container> 使用時の会話メッセージリストをクリアします。
js
SDK.clearMessages();