跳到主要内容

OpenClaw AI语音交互配置

OpenClaw AI语音交互配置1. 课程概述2. 语音交互整体链路3. 语音配置文件说明3.1 配置文件位置3.2 启动前建议检查的最少配置4. 关键参数说明4.1 语音识别引擎4.2 麦克风与扬声器设备4.3 DashScope 鉴权与 ASR 模型4.4 TTS 语音播报配置4.5 OpenClaw 网关配置引用4.6 串口唤醒配置4.7 中英切换步骤5. 启动语音交互5.1 准备虚拟环境5.2 启动方式5.3 如果其他交互方式要播报6. 配置验证方法6.1 验证语音程序能否启动6.2 验证识别与发布流程6.4 验证 TTS [可选]7. 常见问题7.1 程序启动失败7.2 唤醒后没有识别结果7.3 识别成功但 OpenClaw 没响应7.4 能识别但没有声音播报7.5 串口唤醒失败8. 推荐调试顺序

1. 课程概述

本课程将介绍 OpenClaw 的 AI 语音交互链路如何配置,包括语音配置文件位置、关键参数说明、启动方法以及常见问题排查。

完成本课程后,您将能够:

  • 知道 AI 语音交互使用哪个配置文件

  • 理解 .env 中的关键参数含义

  • 正确启动语音程序

2. 语音交互整体链路

OpenClaw 当前的语音交互流程可以简单理解为:

  1. 麦克风采集语音

  2. 程序进行静音检测和分段

  3. ASR 引擎将语音识别成文字

  4. 识别结果发布给 OpenClaw

  5. OpenClaw 返回结果

  6. [可选] TTS 将返回结果播报出来(回复内容会很长可自行选择是否播报)

这条链路的核心配置文件是:

/home/jetson/voice_to_openclaw/.env

3. 语音配置文件说明

3.1 配置文件位置

x /home/jetson/voice_to_openclaw/.env

如果这个文件不存在,可以先从模板复制:

xxxxxxxxxx cd /home/jetson/voice_to_openclaw/ cp .env.example .env

3.2 启动前建议检查的最少配置

建议至少确认下面几项:

  • ASR_ENGINE

  • DASHSCOPE_API_KEY

  • DEVICE

  • SPEAKER_DEVICE

  • OPENCLAW_CONFIG_PATH

  • ENABLE_SERIAL_WAKE

4. 关键参数说明

4.1 语音识别引擎

xxxxxxxxxx ASR_ENGINE=dashscope

当前支持两种模式:

  • dashscope:通义百炼原生语音识别接口,适合直接联网使用

对于大多数初学者,建议保留:

xxxxxxxxxx ASR_ENGINE=dashscope

4.2 麦克风与扬声器设备

xxxxxxxxxx DEVICE=0 SPEAKER_DEVICE=0

这两个参数决定程序使用哪个音频输入设备和输出设备。

适合修改的场景:

  • 有多个麦克风设备

  • USB 麦克风不是系统默认设备

  • 扬声器输出到了错误的设备

如果语音程序能启动,但听不到声音或录不到声音,优先检查这里。

4.3 DashScope 鉴权与 ASR 模型

自行根据登录阿里云百炼申请apikey

链接:大模型服务平台百炼控制台

image-20260428112611830

x DASHSCOPE_A PI _KEY= DASHSCOPE_A PI _URL=https://dashscope.aliyuncs.com/a pi /v1/services/aigc/multimodal-generation/generation DASHSCOPE_ASR_MODEL=qwen3-asr-flash

其中:

  • DASHSCOPE_API_KEY:必须填写有效的 API-KEY

  • DASHSCOPE_API_URL:默认已给出

  • DASHSCOPE_ASR_MODEL:默认语音识别模型

如果这里没有配置正确,常见现象是:

  • 程序启动后识别失败

  • 返回鉴权错误

  • 语音识别请求超时或报模型错误

4.4 TTS 语音播报配置

xxxxxxxxxx ENABLE_TTS=false WAKE_ACK_TEXT=我在。

如果希望语音识别后能进行语音播报,可以开启:

xxxxxxxxxx ENABLE_TTS=true

当前常见的 TTS 参数包括:

  • DASHSCOPE_TTS_MODEL

  • DASHSCOPE_TTS_VOICE

  • DASHSCOPE_TTS_VOLUME

  • DASHSCOPE_TTS_SPEECH_RATE

建议先跑通 ASR,再考虑开启 TTS。

4.5 OpenClaw 网关配置引用

xxxxxxxxxx OPENCLAW_CONFIG_PATH =~/ . openclaw / openclaw . json OPENCLAW_TIMEOUT = 70 #最长重试时间,等待openclaw回复,如果是很长的任务这个时间建议调高 OPENCLAW_RETRY = 1

这部分配置决定语音程序如何把识别结果发送给 OpenClaw。

默认情况下:

  • 程序会读取 openclaw.json

  • 自动推导本地网关端口

  • 自动读取网关鉴权 token

因此如果语音识别已经成功,但 OpenClaw 没有执行指令,优先检查这里。

4.6 串口唤醒配置

xxxxxxxxxx ENABLE_SERIAL_WAKE=true MIC_SERIAL_PORT=/dev/ttyUSB0 MIC_SERIAL_BAUDRATE=115200 SERIAL_WAKE_REQUIRED=true

如果您使用配套语音模块,通常会采用串口唤醒模式。

主要作用是:

  • 平时等待唤醒信号

  • 收到唤醒后开始采集下一段语音

  • 处理完成后再次回到等待状态

如果没有配套串口唤醒模块,可以根据需要调整:

xxxxxxxxxx ENABLE_SERIAL_WAKE=false

4.7 中英切换步骤

如果需要把语音交互从中文切换到英文,建议直接修改 .env 里的语言参数,然后重新启动程序。

当前 voice_to_openclaw/.env 默认启用的是国内版(百炼)

方式一:海外版(讯飞国际版)

主要配置项:

xxxxxxxxxx XUNFEI_ASR_LANGUAGE = en_cn XUNFEI_ASR_ACCENT = mandarin # 终端日志语言:zh / en UI_LANGUAGE = en

  • 中文识别:XUNFEI_ASR_LANGUAGE=zh_cn

  • 英文识别:XUNFEI_ASR_LANGUAGE=en_us

  • 当识别语言改为英文时,XUNFEI_ASR_ACCENT 不再需要;可以注释掉,也可以保留原值不使用

示例:

​ x # 中文识别 XUNFEI_ASR_LANGUAGE = zh_cn XUNFEI_ASR_ACCENT = mandarin # 英文识别 XUNFEI_ASR_LANGUAGE = en_us # XUNFEI_ASR_ACCENT=mandarin

如果同时开启了 TTS,想要英文播报,还需要把 TTS_VOICE 改成您已经开通的英文音色;如果只是先验证英文识别,先只改 ASR 语言即可。

方式二:国内版(百炼)

主要配置项:

xxxxxxxxxx DASHSCOPE_LANGUAGE=zh

  • 中文识别:DASHSCOPE_LANGUAGE=zh

  • 英文识别:DASHSCOPE_LANGUAGE=en

示例:

xxxxxxxxxx # 中文识别 DASHSCOPE_LANGUAGE = zh # 终端日志语言:zh / en UI_LANGUAGE = zh

如果百炼方案同时启用了 TTS,建议同步切换成对应的英文音色,否则可能出现英文识别正常,但播报仍然偏中文音色的情况。

修改完成后,重新执行下面的启动命令即可生效。

5. 启动语音交互

5.1 准备虚拟环境

出厂镜像不需要这一个步骤 ,如果尚未安装依赖,先执行:

x cd /home/jetson/voice_to_openclaw python3 -m venv .venv source .venv/bin/activate pi p install -r requirements.txt

5.2 启动方式

xxxxxxxxxx cd /home/jetson/voice_to_openclaw source .venv/bin/activate python -m src.main

如果启动成功,程序会进入等待唤醒或等待语音输入状态。

image-20260529185856108

如果启动了英文log是这样的,

xxxxxxxxxx # 终端日志语言:zh / en UI_LANGUAGE = en

image-20260529185937321

5.3 如果其他交互方式要播报

  • 将播报参数配置改成True

xxxxxxxxxx ENABLE_TTS = true

  • 另外再启动一个独立监听器,终端输入

xxxxxxxxxx cd ~/ voice_to_openclaw source . venv / bin / activate python \- m src . openclaw_session_tts

image-20260529190000402

6. 配置验证方法

6.1 验证语音程序能否启动

执行:

xxxxxxxxxx cd /home/jetson/voice_to_openclaw source .venv/bin/activate python -m src.main

如果程序启动成功且没有立刻报错,说明基础环境大概率正常。

6.2 验证识别与发布流程

说"你好,小亚" 唤醒之后可以尝试说:

  • 给我讲一个笑话

  • 在 OLED 上显示你好

如果能看到 OpenClaw 返回文本,说明:

  • 麦克风采集正常

  • ASR 正常

  • OpenClaw 网关发布正常

image-20260529190054382

来一个!里面的内容就是会播报的内容,有裁剪的功能,如果太短了的话可以跟他说用语音给我讲一个笑话

image-20260529190216809

6.4 验证 TTS [可选]

如果已开启:

xxxxxxxxxx ENABLE_TTS=true

则在 OpenClaw 返回结果后,应当能听到语音播报。

7. 常见问题

7.1 程序启动失败

优先检查:

  • .venv 是否存在

  • 依赖是否已安装

  • .env 是否存在

7.2 唤醒后没有识别结果

优先检查:

  • ASR_ENGINE 是否配置正确

  • DASHSCOPE_API_KEY 是否有效

  • 麦克风设备号 DEVICE 是否正确

7.3 识别成功但 OpenClaw 没响应

优先检查:

  • OPENCLAW_CONFIG_PATH 是否正确

  • openclaw.json 中的网关端口是否正常

  • OpenClaw 网关是否已启动

7.4 能识别但没有声音播报

优先检查:

  • ENABLE_TTS 是否为 true

  • SPEAKER_DEVICE 是否正确

  • 扬声器是否正常连接

7.5 串口唤醒失败

优先检查:

  • ENABLE_SERIAL_WAKE 是否为 true

  • MIC_SERIAL_PORT 是否正确

  • MIC_SERIAL_BAUDRATE 是否正确

  • 语音模块串口设备是否已被系统识别

8. 推荐调试顺序

建议按下面顺序排查语音链路:

  1. 先确认 .env 文件存在

  2. 再确认 DASHSCOPE_API_KEY 已填写

  3. 启动程序确认没有立即报错

  4. 检查唤醒是否生效

  5. 检查识别是否生效

  6. 检查 OpenClaw 是否收到文本

  7. 最后再检查 TTS 播报