Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

问界 M9 车机通话桥接

使用 ESP32 模拟蓝牙 HFP Audio Gateway,让问界 M9 车机完成配对、通话控制、麦克风录音和电话语音播放;Mac 通过 USB-UART 运行本地调试台和可选 AI 处理流程。

链路

问界 M9 车机
  <-> Bluetooth Classic HFP / SCO
  <-> ESP32
  <-> USB-UART(921600 baud,8 kHz 单声道 PCM)
  <-> macOS 调试台

固件还提供 PBAP 通讯录、模拟来电、原号码回拨和每通电话独立会话记录。

环境

  • 原版 ESP32,已验证 ESP32-WROOM-32D 4 MB Flash
  • 支持 921600 baud 的 USB-UART 和数据线
  • macOS
  • ESP-IDF v6.0.2
  • Python 3.9 至 3.12
  • Node.js,仅用于前端语法检查

ESP32-S3、ESP32-C3 等不支持 Bluetooth Classic 的芯片不能运行本项目。

构建固件

mkdir -p .deps
git clone --branch v6.0.2 --recursive \
  https://github.com/espressif/esp-idf.git .deps/esp-idf-v6.0.2

IDF_TOOLS_PATH="$PWD/.deps/espressif-tools" \
  .deps/esp-idf-v6.0.2/install.sh esp32

./tools/idf.sh audio_bridge build
./tools/idf.sh audio_bridge -p /dev/cu.usbserial-0001 flash

运行调试台

./tools/build-mac-helpers.sh
python3 mac/recorder_web.py \
  --serial-port /dev/cu.usbserial-0001 \
  --no-auto-wait

浏览器打开 http://127.0.0.1:8765,进入配对模式后在车机中连接 ESP32_CALL_BRIDGE

可选 AI 流程为:车机录音 -> 微信输入法转写 -> Codex -> MiniMax TTS -> 原号码回拨。该流程还需要 BlackHole 2ch、FFmpeg、Codex、微信输入法和 MiniMax 配置;环境变量示例见 mac/minimax.env.example

测试

PYTHONPYCACHEPREFIX=/private/tmp/m9-call-bridge-pycache \
  python3.12 -m unittest discover -s mac -p 'test_*.py'
node --check mac/web/app.js

HFP、SCO、串口音频和回拨仍需使用真实 ESP32 与问界 M9 验证。

目录

  • firmware/audio_bridge/:ESP32 HFP、SCO、PBAP 和串口音频固件
  • mac/:本地网页、录音、转写、Codex、TTS 和回拨逻辑
  • protocol/:USB-UART 音频帧协议
  • tools/:ESP-IDF 与 macOS 辅助程序构建脚本

固件起始于 ESP-IDF v6.0.2 HFP Audio Gateway 示例,并增加了车机连接、串口音频、PBAP 和通话控制。来源、许可证及其他外部依赖见 firmware/audio_bridge/UPSTREAM.mdTHIRD_PARTY_NOTICES.md

本项目用于开发测试,不应替代紧急呼叫或安全关键车载通信系统。