Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

语音与电话

实时语音输入与输出。四个通道覆盖整个矩阵:呼入通话、本地麦克风唤醒、呼出语音合成,以及 SIP 级实时对话。

ClawdTalk(实时 SIP)

由 Telnyx 提供支持的全双工 SIP 语音。智能体通过真实电话通话(呼入或呼出)进行对话。支持打断、回合中工具调用以及区域号码配置。

allowed_destinations string[] · default []

将它放置在任何表面上:

网关仪表板

打开 /config/channels/clawdtalk 并设置 channels.clawdtalk.<alias>.allowed_destinations 字段。

zerocode

Config 窗格中,设置 channels.clawdtalk.<alias>.allowed_destinations 字段。

zeroclaw config

zeroclaw config set channels.clawdtalk.<alias>.allowed_destinations <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__clawdtalk__<alias>__allowed_destinations=
api_key* string · default

将它放置在任何表面上:

网关仪表板

打开 /config/channels/clawdtalk 并设置 channels.clawdtalk.<alias>.api_key 字段。

zerocode

Config 窗格中,设置 channels.clawdtalk.<alias>.api_key 字段。

zeroclaw config

zeroclaw config set channels.clawdtalk.<alias>.api_key <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__clawdtalk__<alias>__api_key=
connection_id* string · default

将它放置在任何表面上:

网关仪表板

打开 /config/channels/clawdtalk 并设置 channels.clawdtalk.<alias>.connection_id 字段。

zerocode

Config 窗格中,设置 channels.clawdtalk.<alias>.connection_id 字段。

zeroclaw config

zeroclaw config set channels.clawdtalk.<alias>.connection_id <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__clawdtalk__<alias>__connection_id=
excluded_tools string[] · default []

从此通道的工具规范中排除的工具。设置后,通过此通道响应时不会向模型公开这些工具。

将它放置在任何表面上:

网关仪表板

打开 /config/channels/clawdtalk 并设置 channels.clawdtalk.<alias>.excluded_tools 字段。

zerocode

Config 窗格中,设置 channels.clawdtalk.<alias>.excluded_tools 字段。

zeroclaw config

zeroclaw config set channels.clawdtalk.<alias>.excluded_tools <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__clawdtalk__<alias>__excluded_tools=
from_number* string · default

将它放置在任何表面上:

网关仪表板

打开 /config/channels/clawdtalk 并设置 channels.clawdtalk.<alias>.from_number 字段。

zerocode

Config 窗格中,设置 channels.clawdtalk.<alias>.from_number 字段。

zeroclaw config

zeroclaw config set channels.clawdtalk.<alias>.from_number <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__clawdtalk__<alias>__from_number=
webhook_secret string? · default null

将它放置在任何表面上:

网关仪表板

打开 /config/channels/clawdtalk 并设置 channels.clawdtalk.<alias>.webhook_secret 字段。

zerocode

Config 窗格中,设置 channels.clawdtalk.<alias>.webhook_secret 字段。

zeroclaw config

zeroclaw config set channels.clawdtalk.<alias>.webhook_secret <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__clawdtalk__<alias>__webhook_secret=

api_key(Telnyx)和 webhook_secret 是机密信息:

channels.clawdtalk.<alias>.api_key 是机密信息。 它以加密形式存储,绝不会以明文出现在 config.toml 中。请通过以下方式之一进行设置,这些方式会在写入时加密:

网关仪表板

打开 /config/channels/clawdtalk,并在其中设置 channels.clawdtalk.<alias>.api_key 字段。

zerocode

Config窗格中,设置 channels.clawdtalk.<alias>.api_key 字段(输入已掩码)。

zeroclaw config

zeroclaw config set channels.clawdtalk.<alias>.api_key    # 提示输入掩码内容,以加密形式存储

配合使用: 使用 telnyx 模型提供方作为核心,并确保你的 Telnyx 账户拥有一个 SIP 连接,且其 webhook URL 正确指向 ZeroClaw 网关。

语音通话(Twilio / Telnyx / Plivo)

传统运营商语音:座席接听来电,转录来电者的语音,并通过 TTS 进行回复。延迟高于 ClawdTalk,但可用于任何普通电话号码,且无需配置 SIP 中继。外拨呼叫会拨打 from_number,并在启用 require_outbound_approval 时需要操作员审批。

account_id* string · default

将它放置在任何表面上:

网关仪表板

打开 /config/channels/voice_call 并设置 channels.voice_call.<alias>.account_id 字段。

zerocode

Config 窗格中,设置 channels.voice_call.<alias>.account_id 字段。

zeroclaw config

zeroclaw config set channels.voice_call.<alias>.account_id <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__voice_call__<alias>__account_id=
auth_token* string · default

将它放置在任何表面上:

网关仪表板

打开 /config/channels/voice_call 并设置 channels.voice_call.<alias>.auth_token 字段。

zerocode

Config 窗格中,设置 channels.voice_call.<alias>.auth_token 字段。

zeroclaw config

zeroclaw config set channels.voice_call.<alias>.auth_token <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__voice_call__<alias>__auth_token=
excluded_tools string[] · default []

从此通道的工具规范中排除的工具。设置后,通过此通道响应时不会向模型公开这些工具。

将它放置在任何表面上:

网关仪表板

打开 /config/channels/voice_call 并设置 channels.voice_call.<alias>.excluded_tools 字段。

zerocode

Config 窗格中,设置 channels.voice_call.<alias>.excluded_tools 字段。

zeroclaw config

zeroclaw config set channels.voice_call.<alias>.excluded_tools <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__voice_call__<alias>__excluded_tools=
from_number* string · default

将它放置在任何表面上:

网关仪表板

打开 /config/channels/voice_call 并设置 channels.voice_call.<alias>.from_number 字段。

zerocode

Config 窗格中,设置 channels.voice_call.<alias>.from_number 字段。

zeroclaw config

zeroclaw config set channels.voice_call.<alias>.from_number <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__voice_call__<alias>__from_number=
max_call_duration_secs integer · default 3600

将它放置在任何表面上:

网关仪表板

打开 /config/channels/voice_call 并设置 channels.voice_call.<alias>.max_call_duration_secs 字段。

zerocode

Config 窗格中,设置 channels.voice_call.<alias>.max_call_duration_secs 字段。

zeroclaw config

zeroclaw config set channels.voice_call.<alias>.max_call_duration_secs <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__voice_call__<alias>__max_call_duration_secs=
model_provider VoiceProvider · default "twilio"

将它放置在任何表面上:

网关仪表板

打开 /config/channels/voice_call 并设置 channels.voice_call.<alias>.model_provider 字段。

zerocode

Config 窗格中,设置 channels.voice_call.<alias>.model_provider 字段。

zeroclaw config

zeroclaw config set channels.voice_call.<alias>.model_provider <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__voice_call__<alias>__model_provider=
require_outbound_approval bool · default true

将它放置在任何表面上:

网关仪表板

打开 /config/channels/voice_call 并设置 channels.voice_call.<alias>.require_outbound_approval 字段。

zerocode

Config 窗格中,设置 channels.voice_call.<alias>.require_outbound_approval 字段。

zeroclaw config

zeroclaw config set channels.voice_call.<alias>.require_outbound_approval <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__voice_call__<alias>__require_outbound_approval=
transcription_logging bool · default true

将它放置在任何表面上:

网关仪表板

打开 /config/channels/voice_call 并设置 channels.voice_call.<alias>.transcription_logging 字段。

zerocode

Config 窗格中,设置 channels.voice_call.<alias>.transcription_logging 字段。

zeroclaw config

zeroclaw config set channels.voice_call.<alias>.transcription_logging <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__voice_call__<alias>__transcription_logging=
tts_voice string? · default null

将它放置在任何表面上:

网关仪表板

打开 /config/channels/voice_call 并设置 channels.voice_call.<alias>.tts_voice 字段。

zerocode

Config 窗格中,设置 channels.voice_call.<alias>.tts_voice 字段。

zeroclaw config

zeroclaw config set channels.voice_call.<alias>.tts_voice <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__voice_call__<alias>__tts_voice=
webhook_base_url string? · default null

将它放置在任何表面上:

网关仪表板

打开 /config/channels/voice_call 并设置 channels.voice_call.<alias>.webhook_base_url 字段。

zerocode

Config 窗格中,设置 channels.voice_call.<alias>.webhook_base_url 字段。

zeroclaw config

zeroclaw config set channels.voice_call.<alias>.webhook_base_url <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__voice_call__<alias>__webhook_base_url=
webhook_port integer · default 8090

将它放置在任何表面上:

网关仪表板

打开 /config/channels/voice_call 并设置 channels.voice_call.<alias>.webhook_port 字段。

zerocode

Config 窗格中,设置 channels.voice_call.<alias>.webhook_port 字段。

zeroclaw config

zeroclaw config set channels.voice_call.<alias>.webhook_port <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__voice_call__<alias>__webhook_port=

语音唤醒(本地唤醒词)

在本地运行,监听麦克风,在听到唤醒词时触发代理交互。适用于:

  • SBC 上的物理语音助手
  • 桌面端“热词 → 提问”工作流
  • 始终在线的家庭自动化代理

该代理不会将音频发送到任何地方;唤醒检测在本地完成。只有唤醒后的语音才会被捕获,并(单独)转录后传递给 LLM。

energy_threshold number · default 0.009999999776482582

用于语音活动检测的 RMS 能量阈值。低于此电平的采样将被视为静音。默认值:0.01

将它放置在任何表面上:

网关仪表板

打开 /config/channels/voice_wake 并设置 channels.voice_wake.<alias>.energy_threshold 字段。

zerocode

Config 窗格中,设置 channels.voice_wake.<alias>.energy_threshold 字段。

zeroclaw config

zeroclaw config set channels.voice_wake.<alias>.energy_threshold <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__voice_wake__<alias>__energy_threshold=
excluded_tools string[] · default []

从此通道的工具规范中排除的工具。设置后,通过此通道响应时不会向模型公开这些工具。

将它放置在任何表面上:

网关仪表板

打开 /config/channels/voice_wake 并设置 channels.voice_wake.<alias>.excluded_tools 字段。

zerocode

Config 窗格中,设置 channels.voice_wake.<alias>.excluded_tools 字段。

zeroclaw config

zeroclaw config set channels.voice_wake.<alias>.excluded_tools <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__voice_wake__<alias>__excluded_tools=
max_capture_secs integer · default 30

强制转写前的最大捕获时长(秒)。默认值:30

将它放置在任何表面上:

网关仪表板

打开 /config/channels/voice_wake 并设置 channels.voice_wake.<alias>.max_capture_secs 字段。

zerocode

Config 窗格中,设置 channels.voice_wake.<alias>.max_capture_secs 字段。

zeroclaw config

zeroclaw config set channels.voice_wake.<alias>.max_capture_secs <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__voice_wake__<alias>__max_capture_secs=
silence_timeout_ms integer · default 2000

静音超时(毫秒):在最后一次能量峰值之后,等待多长时间才结束一个捕获窗口。默认值:2000

将它放置在任何表面上:

网关仪表板

打开 /config/channels/voice_wake 并设置 channels.voice_wake.<alias>.silence_timeout_ms 字段。

zerocode

Config 窗格中,设置 channels.voice_wake.<alias>.silence_timeout_ms 字段。

zeroclaw config

zeroclaw config set channels.voice_wake.<alias>.silence_timeout_ms <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__voice_wake__<alias>__silence_timeout_ms=
wake_word string · default "hey zeroclaw"

要监听的唤醒词短语(不区分大小写的子串匹配)。默认值:"hey zeroclaw"

将它放置在任何表面上:

网关仪表板

打开 /config/channels/voice_wake 并设置 channels.voice_wake.<alias>.wake_word 字段。

zerocode

Config 窗格中,设置 channels.voice_wake.<alias>.wake_word 字段。

zeroclaw config

zeroclaw config set channels.voice_wake.<alias>.wake_word <value>

环境变量

导出此覆盖配置(POSIX shell;可放入 ~/.bashrc~/.zshrc.env 或 Dockerfile 中)。将 <alias> 替换为实际的别名:

export ZEROCLAW_channels__voice_wake__<alias>__wake_word=

**构建标志:**Voice Wake 由 zeroclaw-channels 上的 voice-wake cargo 特性控制。使用 --features voice-wake 进行构建即可包含该功能。在 Android 上,Voice Wake 要求 Android 8(API 级别 26)或更高版本。

TTS(出站语音合成)

TTS 是各通道调用的输出服务,而非独立的入站通道。全局默认配置位于 tts 下。TTS 提供方实例在 providers.tts.<type>.<alias> 下配置(OpenAI、ElevenLabs、Google、Edge、Piper),并通过各 agent 的 tts_provider 为每个 agent 进行选择。有关提供方条目及各 agent 的接线方式,请参阅 Model Providers。提供方 API 密钥属于机密信息;应通过 gateway、zerocode 或 zeroclaw config set 设置,切勿以明文形式存储。


延迟预算

端到端延迟低于约 500 毫秒时,语音听起来是实时的。实际预算:

组件典型延迟
唤醒检测(本地)<100 毫秒
STT(Whisper 本地)每条话语 300–800 毫秒
LLM 首字100–2000 毫秒(取决于模型)
TTS 首次音频200–700 毫秒
网络(蜂窝 / PSTN)100–300 毫秒往返时间(RTT)

ClawdTalk 通过保持音频流实时传输,简化了其中几个步骤;而常规的 voice_call 则依次经历 STT + LLM + TTS。

STT

语音转文字与语音通道分开配置;请参阅 Config reference 中的 [transcription] 配置。语音通道在需要将音频转换为文本时,会调用当前激活的转录提供程序。

硬件说明

对于始终开启的语音功能,在 SBC 上:

  • USB 麦克风:任何符合 UAC 标准的麦克风都可用。使用 arecord -l 验证操作系统是否能识别它。
  • 扬声器:USB 音频输出或 SBC 的板载耳机接口;选择守护进程所运行用户的操作系统默认设备。
  • 内置 AEC(声学回声消除)功能的麦克风可在扬声器靠近时显著提升唤醒可靠性。

有关 Android 特定的音频设置,请参阅 硬件 → Android