イベント

hosted-experience-events

クライアントアプリケーションをさらに細かく制御したり、デジタルヒューマンの状態とウェブサイトを同期させたりしたい場合があります。そのために、デジタルヒューマンアプリケーションからのメッセージイベントを提供しており、これをウェブクライアントで利用することができます。そのためには、windowイベントUneeqMessageをリッスンします。

 

以下のコード例では、セッションがライブになるとbody要素のクラスリストを更新するために、どのようにメッセージをリッスンできるかを示しています。リッスンすることができるその他のメッセージイベントについては、以下に記載されています。

window.addEventListener( 'UneeqMessage', (event) => {
    const msg = event.detail;
    console.log('UneeQ Message: ', msg);

    switch( msg.uneeqMessageType ){

        case 'SessionStateUpdate':
            if( msg.live ) {
                document.body.classList.add('uneeq-session-live');
            } else {
                document.body.classList.remove('uneeq-session-live');
            }
            break;

        // Add additional event handlers here...

        default:
            break;

    }
});
 

Messages

以下に、リッスン可能なメッセージの完全なリストを定義しています:

AvatarAnswerContent

NLPシステムからレンダリングされるコンテンツが提供されました

AvatarStartedSpeaking

デジタルヒューマンが発話を開始しました

AvatarStoppedSpeaking

デジタルヒューマンの発話が終了しました

AvatarUnavailable

利用可能なデジタルヒューマンがありません

CallToActionDismissed

ユーザーによってコールトゥアクションボックスが閉じられました

DisplayContentUpdated

コンテンツ表示エリアでコンテンツが更新されました

CustomData

NLPシステムから「instructions」フィールドで提供されたJSONデータ。このデータは、NLPシステムからフロントエンドアプリケーションにカスタム指示を渡すために使用できます。 例えば、ウェブサイトに表示したい製品のカスタムデータを設定するなどです。

CustomMetadataUpdated

チャットメタデータが正常に更新されました。メッセージには新しく設定されたメタデータの値が含まれています

DeviceError

デジタルヒューマンのビデオでエラーが発生しました。詳細はメッセージの内容を参照してください

DigitalHumanMuted

デジタルヒューマンの音声出力がミュート状態になりました

DigitalHumanPlayedInMutedModeSuccess

ブラウザの自動再生ポリシーにより、デジタルヒューマンの音声を再生できませんでした。デジタルヒューマンは音声がミュートされた状態で起動しました。ユーザーのインタラクション後にuneeqUnmuteDigitalHuman()を呼び出すとミュートが解除される場合があります

DigitalHumanUnmuted

デジタルヒューマンの音声出力ミュートが解除されました

EnableMicrophoneUpdated

マイクの有効状態が更新されました。enabled値がtrueの場合はマイクが有効、falseの場合はマイクが解放されています

FrameReady

アプリケーションがロードされ、設定が検証されました。セッションはuneeqInstance.startSession()を呼び出すことで開始できます

Instructions

指示ペイロードがNLPから送信されました。指示はNLP内でJSONとして設定されている場合があります

MicPermissionDenied

ユーザーがページにマイクの使用許可を与えていませんが、音声入力をプロンプトとして使用しようとしています

Notification

通知がありました

PromptRequest

会話プラットフォームに送信される、ユーザーの入力(テキスト/音声)および関連メタデータです。各リクエストには追跡用の一意な UUID(requestId)が含まれます。

⚠️ セキュリティに関する重要な注意:

書き起こしテキスト(transcript)はXSSに対してサニタイズされていません。このデータをHTMLに直接挿入すると、XSS(クロスサイトスクリプティング)攻撃を受ける可能性があります。

安全な実装例:

javascript
コピー
ダウンロード
// ❌ 危険:直接HTMLに挿入しない
element.innerHTML = promptResult.transcript;

// ✅ 安全:テキストとして挿入
element.textContent = promptResult.transcript;

// ✅ 安全:エスケープ処理を行ってから挿入
element.innerHTML = escapeHtml(promptResult.transcript);

PromptResult

会話プラットフォームからの応答です。初期要求/userInputと応答メタデータが含まれています

SessionBackendError

セッションに関するバックエンド側でのエラーが発生したことを通知します

SessionConnecting

セッションの接続を開始しています。デジタルヒューマンとの通信を確立するための初期接続プロセスが進行中です。

RecordingStarted

音声認識のための録音が開始されました

RecordingStopped

音声認識のための録音が終了しました

ServiceUnavailable

問題が発生しました。詳細については含まれているメッセージを参照してください

SessionDisconnected

セッションが再接続できなかった場合、SessionDisconnectedメッセージとともにセッションが終了します。

SessionEnded

セッションが正常に終了しました

SessionError

セッション中に発生したエラーを含むメッセージです(例:TTS呼び出しの失敗、ネットワーク中断など)

SessionLive

セッションがライブ状態になり、アバタービデオがアクティブになりました

SessionReconnecting

ユーザーとバックエンド間で切断が発生し、セッションの再接続を試みています

SessionReconnectingFinished

セッションの再接続が完了しました

SessionStateUpdate

セッションの状態が更新されました

SpeechEvent

ウェブページにトリガーを組み込んで、デジタルヒューマンに話すコマンドを送信できます。詳細はスピーチイベントを参照してください

SpeechTranscription

ユーザーの音声の暫定的または最終的な書き起こしが受信されました

UserStartedSpeaking

ユーザーの音声入力アクティビティの開始が検出されました

UserStoppedSpeaking

ユーザーの音声入力アクティビティが停止または一定間隔で一時停止しました

VadInterruptionAllowed

デジタルヒューマンの発話中に割込みがありました

WaitingInQueue

ユーザーが待機列にいることを示します。ユーザーがデジタルヒューマンと対話できるようになるまでの待機状態を管理し、進行状況をカウントダウンします

WebRtcStats

WebRTC 接続やメディアストリームに関する統計情報(接続品質やパフォーマンス指標)を提供します

お役に立ちましたか?
😞
😐
🤩

最終更新日 April 14, 2025