主题
树莓派蓝牙通话设备
安装蓝牙通话集成后,树莓派在手机上显示为名为 Convbased Mic 的蓝牙设备。通话对方的声音从 USB 耳机播放;你对 USB 麦克风说的话经 Convbased 实时变声后传给通话对方。
text
USB 麦克风 → 树莓派客户端 → Convbased 实时服务 → 手机通话(发给对方)
手机通话(对方的声音) → 树莓派 → USB 耳机该集成只处理 HFP/HSP 蓝牙通话音频,不会配置音乐播放等蓝牙媒体音频。
准备工作
准备 Raspberry Pi 4、64 位 Debian 13、USB 耳机和 Android 手机。安装脚本会配置 PipeWire、WirePlumber 和 BlueZ;已通过测试的具体环境见验证与排障。
还需要:
- 能稳定访问 Convbased 的 HTTPS、WSS 和 TURN 服务的网络;
- 具备
realtime权限的 API Key; - 已在控制台为该 Key 绑定可用模型并启用实时服务。
获取源码
bash
git clone https://github.com/Convbased/convbased-sdk.git ~/convbased-sdk
cd ~/convbased-sdk安装
先阅读安装脚本的内容,再用之后运行该服务的普通用户执行,脚本会在需要时调用 sudo:
bash
cd ~/convbased-sdk/integrations/raspberry-pi/bluetooth-mic
less setup.sh
./setup.sh脚本安装系统依赖,构建 SDK,并配置 systemd、udev、PipeWire、WirePlumber 和蓝牙配对服务。重复执行不会覆盖 ~/convbased-bt/convbased-app.env。
配置
用 arecord -l 找到 USB 麦克风的声卡名称,CARD= 填写名称而不是会变化的编号,然后编辑设备配置文件:
bash
arecord -l
nano ~/convbased-bt/convbased-app.env
chmod 600 ~/convbased-bt/convbased-app.env在设备配置中将 your_api_key 替换为实际密钥:
dotenv
OUTPUT=pipewire
PW_TARGET=convbased_out
MIC_DEVICE=plughw:CARD=Device,DEV=0
RATE=48000
PITCH=12
PROFILE_POLL_MS=20000
WEBUI_PORT=0
API_KEY=your_api_key
MODEL_ID=model_xxx只有控制台的设备配置没有绑定模型时,才会使用 MODEL_ID。PROFILE_POLL_MS 必须大于零,否则在控制台关闭实时服务后,设备不再获取配置,重新启用实时服务也不会生效。
需要本地状态页时再设置 WEBUI_PORT;只监听可信网络内的地址并配置 WEBUI_TOKEN。不要把状态页直接暴露到公网。
启动
bash
systemctl --user enable --now convbased-app.service
systemctl --user is-active convbased-app convbased-link convbased-btagent
sudo systemctl is-active convbased-btclass convbased-bt-recover五项检查都应返回 active。配置或 API Key 有误时,应用会停止重试;修正后执行:
bash
systemctl --user restart convbased-app.service配对手机
重新启动配对服务后,五分钟内可以通过 Just Works 方式配对:
bash
systemctl --user restart convbased-btagent.service在手机上选择 Convbased Mic,并启用“通话音频”或“电话”。只在周围没有陌生设备的环境中开放配对;Just Works 不验证设备身份,蓝牙信号范围内的设备都可以发起配对。
完成首次通话
- 在 Convbased 控制台为 API Key 绑定模型并启用实时服务。
- 等待设备拉取配置并建立实时连接。
- 发起蜂窝通话或支持 HFP/HSP 的 VoIP 通话,选择 Convbased Mic。
- 对 USB 耳机麦克风说话;你应从耳机听到对方的声音,对方应只听到变声后的声音。
更换模型后设备会重新连接,修改变声参数后无需重连即可生效。关闭实时服务后,设备会断开实时连接,但仍会定期获取配置。
连接后按验证与排障检查通话音频、重连和服务开关。