キーパッドのタッチトーンを再生

エージェントがDTMFトーンを再生し、自動電話システムとのやり取りやメニュー操作を行えるようにします。

概要

キーパッドのタッチトーンツールを使用すると、ElevenLabsエージェントは通話中にDTMF(Dual-Tone Multi-Frequency)トーンを再生できます。これはキーパッドの数字を押したときに鳴るトーンです。これにより、エージェントは自動電話システムとやり取りし、音声メニューの操作、内線番号の入力、PINコードの入力など、通常は人間の発信者が電話のキーパッドでキーを押す必要があるタッチトーン操作を実行できます。

このシステムツールは、標準のDTMFトーン(0~9、*、#)に加え、タイミング制御用の一時停止コマンドもサポートします。TwilioとSIPトランキングの電話インテグレーションの両方でシームレスに動作し、基盤となる電話インフラに適したオーディオトーンを自動生成します。

発信者からキーパッドの数字を収集する方法については、DTMF入力をご覧ください。

機能

  • 標準DTMFトーン:標準キーパッドのすべての文字(0~9、*、#)をサポート
  • 一時停止制御:正確なタイミングのための一時停止コマンドを含む(w=0.5秒、W=1.0秒)
  • 複数プロバイダーのサポート:TwilioとSIPトランキングの両方のインテグレーションで動作

このシステムツールは、電話メニューの操作、内線番号の入力、コードの入力に使用できます。 LLMは会話のコンテキストに基づいて、再生するタイミングとトーンを判断します。

デフォルトのツール説明では、会話を処理するLLMにこれらのトーンを再生できることを伝えます。 エージェントがこのツールを呼び出すタイミングを説明するよう、エージェントのシステムプロンプトを更新することをおすすめします。

パラメーター:

  • reason(文字列、任意):DTMFトーンを再生する理由(例:「内線へ移動」、「PINを入力」)
  • dtmf_tones(文字列、必須):再生するDTMFシーケンス。有効な文字:0~9、*、#、w(0.5秒の一時停止)、W(1秒の一時停止)

関数呼び出し形式:

{
"type": "function",
"function": {
"name": "play_keypad_touch_tone",
"arguments": "{"reason": "Navigating to customer service", "dtmf_tones": "2"}"
}
}

帯域外DTMF

デフォルトでは、DTMFトーンは音声ストリーム内の帯域内オーディオ信号として送信されます。ただし、一部のIVR(自動音声応答)システムでは、オーディオ圧縮、ネットワーク状況、システム設定により、これらの帯域内トーンを確実に検出できない場合があります。

帯域外DTMF(RFC 4733)は、オーディオではなく個別のRTPパケットとしてトーンを送信します。この方法は、受信側のIVRシステムが標準の帯域内DTMFを検出しにくいSIPトランキングの実装で、より信頼性が高くなります。

帯域外DTMFを有効にするには:

  1. エージェントのツール設定に移動します
  2. キーパッドのタッチトーンを再生ツールを選択します
  3. 帯域外DTMF(RFC 4733)を使用するチェックボックスをオンにします

帯域外DTMFはSIPトランキング通話でのみ利用できます。この設定は、Twilio Nativeインテグレーションの通話では無視されます。

サポートされる文字

このツールは、次のDTMF文字とコマンドをサポートします:

  • 数字:0、1、2、3、4、5、6、7、8、9
  • 特殊トーン:*(アスタリスク)、#(シャープ/ハッシュ)
  • 一時停止コマンド:
    • w:短い一時停止(0.5秒)
    • W:長い一時停止(1.0秒)

API実装

APIでエージェントを作成または更新する際に、play_keypad_touch_toneシステムツールを設定できます。このツールでは、有効化以外の追加設定パラメーターは必要ありません。

from elevenlabs import AgentConfig, ConversationalConfig, ElevenLabs
elevenlabs = ElevenLabs(api_key="YOUR_API_KEY")
response = elevenlabs.conversational_ai.agents.create(
conversation_config=ConversationalConfig(
agent=AgentConfig(
first_message="Hi, I can help you navigate phone systems. How can I assist you today?",
prompt={
"prompt": "You are a helpful assistant that can interact with phone systems.",
"built_in_tools": {
"play_keypad_touch_tone": {
"type": "system",
"name": "play_keypad_touch_tone",
# Optional custom description
"description": "Play DTMF tones to interact with automated phone systems.",
"params": {"system_tool_type": "play_keypad_touch_tone"},
}
},
},
),
),
)

このツールは、TwilioまたはSIPトランキングによるアクティブな通話中にのみ動作します。電話での会話以外のコンテキストで呼び出すと、 エラーが返されます。