turtlebot3-burger_150.png
turtlebot3-waffle-pi_150.png
turtlebot3-arm_150.png
walking-y2_150.png
turbot3-multi_150.png
turbot3-dl-ros1_150.png
turbot3-ai.png
turbot3-dl-ros2_150.png
turbot3-slam_150.png
turbot3-arm_150.png
turtlebot4-lite_150.png
turtlebot4-pro_150.png
turbot4-dl_150.png
turbot4-ai_150.png
aidriving-racebot_150.png
aidriving-autodrive_150.png
turtlebot-arm_150.png
openmanipulator-x_150.png
Home » 智能台灯LeLampX快速入门教程 » 智能台灯LeLampX快速入门教程-音频调试

智能台灯LeLampX快速入门教程-音频调试

纠错,疑问,交流: 请进入讨论区请点击进入页面,扫码加入微信群或Q群进行交流

获取最新文章: 扫一扫加入“创客智造”公众号

音频调试

目标:解决"听不见我说话""声音太小/太大""AI 说话时自己听到回声""说完话迟迟没反应"等常见音频问题,学会调麦克风/音箱音量和 VAD 灵敏度


一、先分清两条音频链路

LeLamp 的声音处理分两层,调参前先想清楚问题出在哪一层:

管什么 对应配置段
麦克风 VAD AI 对话时"何时开始听、何时算说完、何时可打断" microphone:
管道 VAD 本地语音流水线(录音启停、静音判定) pipeline.vad:

两个配置段名字相近但作用不同,修改时别搞混(下文有各自位置)。

二、查看音频设备

先确认系统认出了麦克风和音箱:

# 列出播放设备(音箱)
aplay -l

# 列出录音设备(麦克风)
arecord -l

你应看到什么:每条命令输出设备列表,包含 USB 声卡/板载声卡条目。什么都看不到 = 设备没插好或驱动没加载,先查硬件连接。

三、麦克风音量

3.1 交互式调节

alsamixer

F6 选择声卡 → 找到 Mic/Capture 通道 → 方向键调音量 → M 键取消静音(MM 表示静音)→ Esc 退出。

你应看到什么:说话时 Capture 电平条会跳动;不动时安静。

3.2 命令行快速设置

# 查看当前录音增益
amixer sget 'Mic'

# 设为 80%
amixer sset 'Mic' 80%

通道名称因声卡而异,以 amixer scontrols 列出的为准。

四、音箱音量

  • Web 界面:Settings / 播放页面直接调音量滑块
  • 语音:直接说"音量调大""音量调小""音量 50"
  • 命令行amixer sset 'Master' 70%(通道名以 amixer scontrols 为准)

你应看到什么:调完立刻能听到音量变化(可播放一首音乐验证)。

五、录音 / 播放测试

怀疑麦克风坏了?录一段再放出来听:

# 录 5 秒(默认设备)
arecord -d 5 -f S16_LE -r 16000 /tmp/test.wav

# 播放刚才的录音
aplay /tmp/test.wav

你应看到什么:录音时对着麦克风说话,播放时能清晰听到自己的声音。听不清 → 检查麦克风音量、摆放距离、是否被遮挡;有爆音 → 增益过高,调低。

六、回声问题(AI 说话时听到自己)

回声通常来自"音箱声音被麦克风拾取",按顺序排查:

  1. 调低音箱音量,别开太大
  2. 拉远距离:麦克风与音箱保持一定距离,别面对面紧贴
  3. 检查回声抑制门限microphone.echo_gate_threshold(默认 0.03)——低于此音量的信号会被当作 AI 扬声器回声而非人声。若回声仍明显,可适当调高:
microphone:
  echo_gate_threshold: 0.05   # 从 0.03 调高,更激进地抑制回声

若环境声学复杂(空旷房间、大音量),回声难以完全消除属正常现象,优先物理手段(距离/音量)。

七、VAD 阈值调节(说话识别灵敏度)

7.1 参数速查表

参数路径 默认值 作用 调低 调高
microphone.local_vad_threshold 0.65 人声检测敏感度(0~1) 更灵敏(易误触) 更保守(要大点声)
microphone.gate_release_time 1.5 人声停止后保持开启时间(秒) 响应快但易切半句 更稳但反应慢
microphone.barge_in_threshold 0.45 打断阈值:AI 说话时音量超过此值即打断 更容易打断 更难打断
microphone.echo_gate_threshold 0.03 回声抑制门限 更激进抑制回声
pipeline.vad.activation_threshold 0.45 管道 VAD 触发门槛(RMS) 更灵敏 更保守
pipeline.vad.min_silence_duration 0.5 静音多久算说完(秒) 结束更快 等更久

7.2 常见问题怎么调

说话要很大声才识别 → 调低敏感度:

microphone:
  local_vad_threshold: 0.50   # 从 0.65 降到 0.50

频繁误触发(背景噪音被当成说话)→ 调高 + 加长释放:

microphone:
  local_vad_threshold: 0.75   # 从 0.65 升到 0.75
  gate_release_time: 2.0      # 更长的保持时间,减少频繁开关

AI 话没说完就被打断 → 提高打断门槛:

microphone:
  barge_in_threshold: 0.60    # 从 0.45 升到 0.60

说完后迟迟不响应 → 缩短静音判定:

endpointing:
  min_delay: 0.5              # 从 0.8 降到 0.5
  max_delay: 4.0              # 从 6.0 降到 4.0

修改 config.yaml 后需重启 LeLamp 服务生效。

7.3 自动校准(推荐)

拿不准阈值?用脚本自动采样背景噪音并推荐:

# 基本校准:2 秒背景噪音 + 3 秒人声
python3 scripts/calibrate_voice.py

# 自定义:更长的采样、指定输入设备
python3 scripts/calibrate_voice.py --noise-duration 3 --speech-duration 5 --input-device 2

你应看到什么:输出类似——

背景噪音 RMS 统计: 平均值=0.0124 P50=0.0081 P90=0.0322
人声 RMS 统计:     最小值=0.0453 P10=0.0621 P50=0.1530
建议 VAD 阈值: 0.1288
校准结果已保存到: /tmp/vad_calibration.json

按"建议 VAD 阈值"调整 pipeline.vad.activation_threshold 即可。

常见问题

问题 处理
完全听不到我说话 arecord -l 确认麦克风被识别;alsamixer 检查 Capture 是否静音(MM);音量调高
说话要很大声才识别 调低 local_vad_threshold(0.65→0.50)
背景噪音乱触发 调高 local_vad_threshold(→0.75),加长 gate_release_time
AI 说话时听到回声 调低音箱音量、拉远距离;调高 echo_gate_threshold
话没说完就被打断 调高 barge_in_threshold(0.45→0.60)
说完迟迟不响应 调低 endpointing.min_delay / max_delay
录音有爆音/电流声 麦克风增益过高,调低 Mic 音量;检查供电和线材

纠错,疑问,交流: 请进入讨论区请点击进入页面,扫码加入微信群或Q群进行交流

获取最新文章: 扫一扫加入“创客智造”公众号


标签: LeLampX, LeLamp2