リアルタイム対話型 AI に関するよくある質問への回答をご確認ください。機能やインテグレーションから、音声設定やトラブルシューティングまで網羅しています。
よくある質問
機能
インテグレーション
音声設定
課金
トラブルシューティング
パフォーマンスチューニング
デバイスとプラットフォームのサポート
機能
オリジンサーバーにエージェントをデプロイする必要がありますか?
いいえ。エージェントは Alibaba Cloud が提供するパブリッククラウドサービスであるため、お客様側でのデプロイは不要です。コンソールでエージェントを設定し、OpenAPI を呼び出すことで、エージェントを構築および呼び出すことができます。
Alibaba Cloud Model Studio にデプロイされた大規模言語モデルにエージェントを接続するにはどうすればよいですか?
エージェントは Alibaba Cloud Model Studio と統合されています。コンソールで必要なパラメータを指定することで、Alibaba Cloud Model Studio 上の大規模言語モデルを呼び出すことができます。詳細については、「大規模言語モデル (LLM)」をご参照ください。
大規模言語モデルのトークン消費はどこで確認できますか?
大規模言語モデルのトークン消費は Model Studio コンソールで確認できます。コールバックデータにはトークン消費は含まれません。
インテグレーション
Model Studio アプリケーションまたはワークフローにカスタムパラメータを渡すにはどうすればよいですか?
ビジネスパラメータ — SDK を介してパラメータを渡す場合、ビジネスパラメータを
biz_paramsフィールド内にネストします。たとえば、Model Studio アプリケーションパラメータのbiz_paramsオブジェクトに配置します。トップレベルで渡されたパラメータは有効になりません。顧客情報 — 各呼び出しで顧客情報を渡すには、
UserDataを使用します。アバター、ペルソナ、ボイス — 音声通話のペルソナは Model Studio のプロンプトに渡されます。通話開始時にエージェント設定オブジェクトを介して、アバター、ペルソナ、ボイスなどのパラメータを動的に渡します。
Web SDK は setVisionPreviewView をサポートしていますか?
いいえ。setVisionPreviewView API は Android ソフトウェア開発キット (SDK) でのみ使用可能であり、リアルタイム対話型 AI Web SDK ではサポートされていません。代わりに、setAgentView API を使用してください。SDK は内部的にリモートビューレンダリング設定を処理します。
通話中に視覚理解に切り替えることはできますか?
いいえ。agentType は初期化時に callConfig で設定され、通話確立後に動的に変更することはできません。音声のみの通話から視覚理解モードに切り替えるには、現在の通話を終了し、agentType を AICallAgentType.VisionAgent に設定して再接続する必要があります。
カスタム TTS サービスをインテグレーションする際、画像を音声またはテキストに関連付けるにはどうすればよいですか?
リアルタイム対話型 AI では、画像と音声またはテキストがマルチモーダル大規模言語モデルに一緒に送信され、モデルは会話コンテキストを使用して理解し応答します。 [Text-to-speech] ノードはモデルの後に位置し、テキストのみを受け入れます。カスタム TTS サービスをインテグレーションする場合、TTS API レイヤーで画像を音声またはテキストに関連付ける必要はありません。
音声設定
クライアントの音声キャプチャサンプリングレートを調整するにはどうすればよいですか?
リアルタイム対話型 AI は現在、キャプチャ側で以下の音声パラメータをサポートしています。
48 kHz サンプリングレート、モノラルチャネル
16 kHz サンプリングレート、モノラルチャネル
Web SDK は現在、48 kHz サンプリングレートのみをサポートしています。
AICallKit SDK はデフォルトで 48 kHz サンプリングレートをサポートしています。16 kHz に切り替えるには、次のサンプルコードに示すように、音声プロファイルを BasicQualityMode に設定します。
iOS
self.engine.audioConfig = ARTCAICallAudioConfig(audioProfile: .BasicQualityMode, audioScenario: .MusicMode)
// 他の API を呼び出す
...
// 通話を開始する
self.engine.call(...)Android
ARTCAICallEngine.ARTCAICallConfig artcaiCallConfig = new ARTCAICallEngine.ARTCAICallConfig();
artcaiCallConfig.audioConfig.audioProfile = ARTCAICallAudioBasicQualityMode;
engine.init(artcaiCallConfig);エージェントの音声再生サンプリングレートを調整するにはどうすればよいですか?
リアルタイム対話型 AI は現在、エージェントの音声再生に対して以下のパラメータをサポートしています。
48 kHz サンプリングレート、モノラルまたはステレオチャネル
16 kHz サンプリングレート、モノラルチャネル
リアルタイム対話型 AI はデフォルトで 48 kHz モノラルチャネルサンプリングレートをサポートしています。通話を開始する操作で設定を調整します。方法は通話の開始方法によって異なります。
方法 1: サーバー側の操作で通話を開始する
GenerateAIAgentCall または StartAIAgentInstance API を呼び出して通話を開始する場合、AgentConfig パラメータを追加し、AIAgentConfig で ExperimentalConfig フィールドを設定します。
// AudioQualityMode: Integer
// RTC 出力のサンプリングレートモード。
// 0: 48 kHz モノラルチャネル
// 1: 48 kHz ステレオチャネル
// 2: 16 kHz モノラルチャネル
// ExperimentalConfig の値は JSON 文字列である必要があります。
{
"ExperimentalConfig":"{\"AudioQualityMode\":2}"
}方法 2: クライアント側の通話操作で通話を開始する
この方法には AICallKit SDK 2.5.0 以降が必要です。すでに callConfig を通話開始パラメータとして使用し、call(xxx) API を使用して通話を作成および開始している場合は、この方法を使用してエージェントの再生サンプリングレートを変更します。
iOS
let callConfig = ... // ARTCAICallConfig を作成して初期化します。詳細については、ユーザーガイドをご参照ください。
let agentConfig = ARTCAICallAgentConfig() // ARTCAICallAgentConfig オブジェクトを作成する
agentConfig.experimentalConfig = [
"AudioQualityMode": 2
]
... // ビジネス要件に基づいてパラメータを設定する
callConfig.agentConfig = agentConfig
self.engine.call(config: callConfig) // 通話を開始するAndroid
ARTCAICallEngine.ARTCAICallConfig artcaiCallConfig = new ARTCAICallEngine.ARTCAICallConfig();
artcaiCallConfig.agentConfig.experimentalConfig = new JSONObject();
try {
artcaiCallConfig.agentConfig.experimentalConfig.put("AudioQualityMode", 2);
} catch (JSONException e) {
e.printStackTrace();
}
engine.init(artcaiCallConfig);課金
相手が話していない場合でも、リアルタイム対話型 AI のデバッグ中に STT に課金されるのはなぜですか?
エージェントが実行されている間は、デバッグ中にエージェントが話していない場合でも音声テキスト変換 (STT) が有効になっているため、課金されます。STT 料金は、STT が有効であった実時間に基づき、STT 単価で計算されます。たとえば、STT が 34 分間実行された場合、34 分間の実使用時間に対して STT 単価で課金されます。この項目の料金と課金ルールの詳細については、「AI リアルタイムインタラクション」をご参照ください。
トラブルシューティング
通話開始時にエラーが発生する
"Could not resolve placeholder 'biz.live_mic.gslb' in value "${biz.live_mic.gslb}"" のようなエラーが表示される
サーバーサイドの application.yaml 設定ファイルで設定が欠落しているか、削除されています。@value アノテーションによって注入されるすべての変数は、設定ファイルに存在する必要があります。application.yaml ファイルの値を "xxxxxx" または "" に設定しておくことができます。
"User not authorized to operate on the specified resource" が表示される
AppServer をデプロイする際、設定された AccessKey が正しいことを確認し、Resource Access Management (RAM) ユーザーに AliyunICEFullAccess 権限を付与してください。詳細については、「ソースコードからのデプロイ」をご参照ください。
"generateAIAgentCall Tea error. e:code: 404, Specified access key is not found." が表示される
サーバー側の application.yaml 設定ファイルで AccessKey と AccessSecret が正しく設定されているかを確認し、RAM ユーザーに AliyunICEFullAccess 権限を付与してください。詳細については、「ソースコードからのデプロイ」をご参照ください。
"generateAIAgentCall Tea error. e:code: 400, The specified agentId "123456" is not found. request id: xxxxxxx" が表示される
agentId とリージョンが正しく設定されているかを確認してください。
[Intelligent Cloud Editor (ICE)] コンソールのナビゲーションペインで、Real-time Conversational AI > [エージェント管理] を選択します。ページ上部で選択されているリージョンがコードで設定されているリージョンと一致していることを確認し、エージェントリストの Agent ID/Name 列から正しい agentId を取得してください。
トークンは期待どおりに返されるが、クライアントが接続できない
RTC トークン検証ツールを使用して、署名が正しく生成されているかを確認してください。すべての必須パラメータはサーバー側のリクエストまたはレスポンスにあります。nonce を null に設定し、生成されたトークンが正しいかを確認してください。
メッセージング会話の開始時にクライアントで "AgentNotFound" エラーが表示される
クライアントコードで、agentId とリージョンが正しく設定されているかを確認してください。
[Intelligent Cloud Editor (ICE)] コンソールのナビゲーションペインで、Real-time Conversational AI > [エージェント管理] を選択します。ページ上部で選択されているリージョンがコードで設定されているリージョンと一致していることを確認し、エージェントリストの Agent ID/Name 列から正しい agentId を取得してください。
クライアントコード:
Android
String mAgentId = "XXX"; // エージェント ID -> コンソールで作成されたメッセージング会話エージェントの ID
String mRegion = "cn-shanghai"; // エージェントのリージョン -> コンソールのメッセージング会話エージェントのリージョン
ARTCAIChatAgentInfo agentInfo = new ARTCAIChatEngine.ARTCAIChatAgentInfo(mAgentId, mRegion)iOS
// エージェント ID -> コンソールで作成されたメッセージング会話エージェントの ID
let agentInfo = ARTCAIChatAgentInfo(agentId: "xxxx")
// エージェントのリージョン -> コンソールのメッセージング会話エージェントのリージョン
agentInfo.region = "cn-shanghai"メッセージング会話の開始時にクライアントで "UnsupportedWorkflowType" エラーが表示される
エラーの詳細が "The specified workflowType \"VoiceChat\" is not supported by this interface. Please use a compatible workflowType: [\"MessageChat\"]" の場合、エージェント ID と、そのエージェント ID に関連付けられたワークフロータイプがメッセージング会話であることを確認してください。
[エージェント管理] ページで対象のエージェントを見つけ、[エージェントワークフロー ID] 列を確認して、関連付けられたワークフロータイプが [MessageChat] であることを確認してください。
インテグレーション中に "Application not found or the application is disabled" エラーが発生した場合、どうすればよいですか?
インテグレーションには、Model Studio アプリケーション ID ではなく、エージェント ID を使用してください。エージェント詳細ページで、対応するエージェント ID とキーを取得してください。サーバーが認証トークンを生成するために使用するエージェント設定が、クライアントの設定と一致していることを確認してください。
通話およびメッセージング接続エラーをトラブルシューティングするにはどうすればよいですか?
チャネル ID がすでに使用されている — 通話ごとに新しい一意のチャネル ID を生成してください。通話終了後は速やかに切断し、リソースが解放されるまで待ちます。並行シナリオでは同じチャネル ID を再利用しないでください。
メッセージ送信時にクライアントが接続されていないと報告される場合 — まずエージェントを起動し、接続ステータスをリッスンしてください。接続イベントを受信した後にのみメッセージを送信してください。
エンジンステータスコールバックが ready にならない、またはセッション開始に応答がない場合 — 認証トークンを取得するコールバックを登録し、サーバーにトークンを発行させて認証を完了してください。1 回限りのリスナーではなく、継続的なリスナーを使用してください。
カスタムボイスが有効にならない場合、どうすればよいですか?
音声合成設定にボイスに一致する言語識別子を追加し、対応するリージョンでボイスが承認されたことを確認してください。エージェント設定の認識言語パラメータを介して認識言語を指定してください。
エージェントコールバックが受信されない場合、どのようにトラブルシューティングすればよいですか?
コールバック URL — コールバック URL は HTTPS を使用し、パブリック CA によって発行された完全な証明書チェーンを返す必要があります。(推奨)無料の Alibaba Cloud SSL 証明書を使用してください。
サーバーレスポンス — サーバーは POST リクエストを正しく受信し、200 を返す必要があります。また、エージェントインスタンスを起動する API を呼び出してインスタンス ID を取得していることを確認してください。
パフォーマンスチューニング
エージェントの応答が遅い場合や、途中で中断される場合、どのようにチューニングすればよいですか?
応答が遅い — セマンティックセグメンテーションの待機時間、つまり
turnDetectionConfigのセマンティック待機パラメータを確認してください。これを減らすと、応答速度が顕著に向上します。途中での中断 — エージェント設定でユーザー沈黙待機パラメータを調整してください。現在の最大値は約 1,200 ms です。
トランシーバーモードでエージェントが 2 回応答するのはなぜですか?
トランシーバーモードでは、音声アクティビティ検出とプッシュツートークが通常同時に音声をキャプチャするため、2 つの個別の入力が生成されます。トランシーバーモードが有効になった後にのみ音声キャプチャを有効にしてください。
デバイスとプラットフォームのサポート
WeChat H5 およびミニプログラムでリアルタイム対話型 AI をインテグレーションするにはどうすればよいですか?
WeChat H5 — サポートされています。ICP 登録済みの HTTPS ドメイン名の下にページをデプロイし、web-view を介してロードしてください。最初のマイク呼び出しにはユーザー認証が必要です。リアルタイムコミュニケーション機能の互換性を確認し、実際のデバイスで検証してください。
ミニプログラム — リアルタイムコミュニケーションストリームプルプロトコルを直接使用することはサポートされていません。web-view を介して HTTPS ドメイン名の下でホストされている Web ページを埋め込み、ビジネスドメイン名を設定してください。
サービスドメイン名 — システムが自動的にリアルタイムコミュニケーションサービスドメイン名を割り当てて紐付けます。メディア伝送ドメイン名を個別に設定する必要はありません。
リアルタイム対話型 AI はどのような入力、出力、およびモデル機能をサポートしていますか?
入力と出力 — 音声入力がサポートされており、テキスト送信 API を介してテキストを渡すことができます。出力は常に音声です。
自己学習モデル — OpenAI インターフェース仕様に準拠する自己学習モデルがサポートされています。モデル識別子、キー、および HTTPS エンドポイントを提供する必要があります。
ワークフロー — ワークフローでは、大規模言語モデルオプションを介して公開された Model Studio エージェントを設定できます。