言語検出

エージェントが言語を自動的に切り替えられるようにします

概要

language detectionシステムツールを使うと、ElevenLabsエージェントの出力言語を、エージェントが対応する任意の言語に切り替えられます。 このシステムツールは自動では有効になりません。特定のユースケースに合わせて説明をカスタマイズできます。

可能な場合は、エージェントですべての言語を有効にし、言語検出システムツールも有効にすることをおすすめします。

言語検出ツールは、受信したオーディオから検出された言語と内容に基づき、次の2つのケースで言語切り替えをトリガーします。

  • detection:ユーザーが現在の出力言語とは異なる言語で話すと、切り替えがトリガーされます
  • content:ユーザーが現在の言語で別の言語への変更を求めると、切り替えがトリガーされます

目的:会話中に検出されたユーザーの言語へ自動的に切り替えます。

トリガー条件:LLMは次の場合にこのツールを呼び出す必要があります。

  • ユーザーが現在の会話言語とは異なる言語で話している
  • ユーザーが明示的に言語の切り替えを要求した
  • 会話で多言語サポートが必要である

パラメーター:

  • reason(文字列、必須):言語を切り替える理由
  • language(文字列、必須):切り替え先の言語コード(サポート対象言語リストに含まれている必要があります)

関数呼び出し形式:

{
"type": "function",
"function": {
"name": "language_detection",
"arguments": "{\"reason\": \"User requested Spanish\", \"language\": \"es\"}"
}
}

実装:エージェント設定でサポート対象言語を構成し、言語検出システムツールを追加します。エージェントは、検出された言語に合わせて音声と応答を自動的に切り替えます。

言語検出を有効にする

1

対応言語を設定

エージェントが切り替え可能な言語は、Agent設定タブで定義する必要があります。

エージェントの言語

2

言語検出ツールを追加

Agentタブで、事前設定済みのシステムツールをエージェントのツールに選択して追加し、言語検出を有効にします。 add toolを選択すると、このオプションが自動的に表示されます。

システムツール

3

ツールの説明を設定

ツールを呼び出すタイミングを指定する説明を追加します。

説明

会話開始時のみに切り替えを制限する

長時間の会話では、バックグラウンドでの発話や珍しいアクセントによって、発信者が意図しない切り替えが発生することがあります。only_at_conversation_startを有効にすると、切り替えを最初の2回のユーザーターンに限定できます。

この2ターンの間に言語が切り替わらなかった場合、以降の会話では言語検出が無効になります。以降の試行はすべて失敗し、エージェントは現在の言語で話し続けます。この期間内に言語が切り替わった場合は、会話の残りの間も切り替えを利用できるため、誤検出を修正できます。

このオプションはデフォルトで無効です。

ToolsタブでDetect languageツールを選択し、Only at start of conversationを有効にします。

切り替えがブロックされると、ツールは現在の言語で話し続けるよう指示するエラーをLLMに返します。理由は発信者には公開されません。

API実装

APIでエージェントを作成する際は、エージェント設定にlanguage detectionツールを追加できます。システムツールとして定義してください。

from elevenlabs import AgentConfig, ConversationalConfig, ElevenLabs
elevenlabs = ElevenLabs(api_key="YOUR_API_KEY")
# Create language presets
language_presets = {
"nl": {"overrides": {"agent": {"first_message": "Hoi, hoe gaat het met je?"}}},
"fi": {"overrides": {"agent": {"first_message": "Hei, kuinka voit?"}}},
"tr": {"overrides": {"agent": {"first_message": "Merhaba, nasılsın?"}}},
"ru": {"overrides": {"agent": {"first_message": "Привет, как ты?"}}},
"pt": {"overrides": {"agent": {"first_message": "Oi, como você está?"}}},
}
response = elevenlabs.conversational_ai.agents.create(
conversation_config=ConversationalConfig(
agent=AgentConfig(
first_message="Hi how are you?",
prompt={
"built_in_tools": {
"language_detection": {
"type": "system",
"name": "language_detection",
# Optional: customize when the tool should be triggered
"description": "",
"params": {"system_tool_type": "language_detection"},
}
},
},
),
language_presets=language_presets,
),
)
デフォルトの言語検出プロンプトを使用するには、説明を空白のままにしてください。