音声エージェントのベストプラクティス
音声エージェントのベストプラクティス
本記事では、音声エージェントの選定、チューニング、公開における一般的な手法をまとめ、「はっきり聞き取り、正確に答え、自然に話す」音声 Agent をより早く手に入れられるようお手伝いします。各パラメータの意味と取り得る値の範囲は設定ガイドを参照してください。
エンジンモードの選び方
まず要件に応じてモードを位置付け、その後モデルを選びます。
- 最低遅延、自然な口語を追求 → Real-time model(REALTIME):遅延が最も低く、雑談練習や音声ナビゲーションなど、反応速度に敏感でトークが比較的オープンなシーンに適しています。
- 強力なテキスト能力、ツール呼び出し、厳密なトークが必要 → ASR-LLM-TTS:遅延は最も高いですが、テキスト大規模モデルの制御性が最も高く、ナレッジベース、データベース、ツールを安定して接続でき、音声カスタマーサポート、業務手続きなどのシーンに適しています。声色は独立した TTS で決まるため、ブランド音声を統一しやすくなります。
- モデルが音声入力をネイティブにサポートしており、フローを簡素化したい → LLM+TTS:遅延は中程度で、独立した ASR を 1 段省き、大規模モデルが直接音声を「聞き取る」ため、フローがより短くなります。
VAD と割り込みのチューニング
VAD は「Agent がいつあなたが話し終えたと判断するか」を決定し、体験に直接影響します。シーンに応じて取捨選択します。
- 音声カスタマーサポート / ホットライン(速く、割り込み可能にしたい):音声割り込みの感度を適度に高くし、ユーザーがいつでも口を挟めるようにします。区切りの間はやや小さくして、応答待ちを短縮できます。代償として、騒がしい環境では誤って割り込まれやすくなります。
- 深い問答 / 読み上げナレーション(安定させ、誤割り込みを減らしたい):音声割り込みの感度を低くし、区切りの間を適度に大きくして、ユーザーが考えて間を置いたときに話をさえぎられるのを防ぎます。
- 騒がしい環境:Real-time model のプリセットモードで音量アクティベーションしきい値を高くし、背景ノイズによる誤トリガーを減らします。
- プリセットモード vs セマンティックモード(Real-time model のみ):安定して予測可能な区切りを求めるならプリセットモードを、Agent に意味に基づいてユーザーが話し終えたかを判断させたいならセマンティックモードを使い、応答速度と組み合わせてリズムを微調整します。
まずデフォルト値(区切りの間 500 ms、音声割り込み 0.5)で体験し、その後、実際の録音に合わせて 1 段ずつ微調整し、一度に 1 つのパラメータだけを変更することをお勧めします。
アイデンティティプロンプトの書き方
音声シーンではユーザーは「読む」のではなく「聞く」ため、プロンプトは簡潔で口語的にするのが望ましいです。
- 役割と境界を明確にする:誰であるか、何ができるか、何を話さないか。
- 短文での回答を求め、長い段落、箇条書き、表など、読み上げに適さない構造を避ける。
- 口語的な表現を取り決める:数字、金額、時刻はできるだけ自然な口語で読み上げ、硬い専門用語を減らす。
- 言語と語調を指定する:例「簡体字中国語で、丁寧かつ簡潔に回答する」。
TTS テキストクリーニング
大規模モデルのテキスト応答にはしばしば記号が含まれ、そのまま合成すると「読み上げ」られてしまいます。削除と置換の 2 項目でクリーニングします。
- 削除:括弧
()、角括弧[]、書名号《》、アスタリスク*、ハッシュ#などの Markdown・組版記号。「アスタリスク」「ハッシュ」と読み上げられるのを防ぎます。 - スペースに置換:間を置く必要はあるが読み上げるべきでない記号に使用し、区切りの自然さを改善します。
- ペアの括弧は 1 つのまとまりとして入力し(
()など)、複数の記号は半角カンマで区切ります。
アイデンティティプロンプトでモデルに「Markdown を出力しない」よう求めることと併用すると、二重の効果でより良くなります。
ウェルカムガイドとバーチャルヒューマンイメージ
- ウェルカムメッセージは短く、要点を突き、一言でアイデンティティと用途を説明します。例「こんにちは、こちらは XX カスタマーサポートです。どのようなご用件でしょうか?」
- 発話 / 待機イメージの動画は必ず先頭フレームと末尾フレームがつながっているようにします。そうでないとループ時に明らかなコマ飛びが発生します。発話イメージは「発話中」に、待機イメージは「傾聴中」に対応します。
- 多言語業務では、言語ごとにウェルカムメッセージとイメージを個別に設定することを忘れないでください。
通話制御の戦略
各対話に「セーフティネット」を設定し、空回りとリソース占有を防ぎます。
- 無言制御:適切な沈黙タイムアウト(デフォルト 10 秒)を設定し、自然な無言プロンプトを添えます。例「まだいらっしゃいますか?続けてもよろしいですか?」でユーザーを引き戻します。
- 自動切断:最大通話時間(デフォルト 600 秒)と最大沈黙回数(デフォルト 5 回)でセーフティネットを張り、無制限の通話や、長時間応答のない回線占有を防ぎます。切断プロンプトは 20 tokens 以内に制限し、簡潔な別れの挨拶で十分です。
背景音使用時の注意
- 背景音量は人声を覆い隠すべきではありません(デフォルト 30、範囲 1~50)。高すぎると認識精度と通話の明瞭さが低下します。
- カスタム背景音は mp3 かつ ≤ 1 MB である必要があります。
音声認識品質
- 特定領域を対象とする場合は、ASR 書き起こし指示を活用して専門用語、ブランド名、業界用語をヒントとして与えると、認識精度が大幅に改善します。
- ユーザー言語が固定されている場合は、音声言語をできるだけ「自動認識」ではなく指定すると、安定性が向上します。
- プラットフォームには音声品質検証が内蔵されています。短すぎる(1 秒未満)音声を自動的に破棄し、よくある認識の「幻聴」フレーズ(「ご視聴ありがとうございました」「チャンネル登録をお願いします」などの無意味な結果)をフィルタリングして、誤トリガーを減らします。このような結果が無視されるのは正常な現象であり、追加の設定は不要です。
公開とインテグレーション
- Web 埋め込み:音声エージェントを音声対話コンポーネントとして Web サイトに埋め込みます。iframe インテグレーションを参照してください。
- 電話接続:Twilio 番号への着信をバインドするか、サードパーティ SIP システム経由で着信を転送します。電話システム接続操作マニュアルを参照してください。
課金と同時接続
- 音声通話は音声使用量に応じてポイントを差し引きます。ポイントを使い切ると着信が拒否されるため、余裕を確保してください。
- 同時通話数の上限に注意してください。上限を超えた新規着信は拒否されます。公開前に、想定する通話量に応じて同時接続の必要量を評価してください。
- 通話記録はログ / 対話記録で確認でき、セッションのソース、着信番号、複数ターンの問答、実行タイムラインを含むため、振り返りと最適化に便利です。
