AI Voice Platform
AI Voice Platform 是一套围绕 FreeSWITCH、sherpa-onnx 与 FunASR 构建的本地化 AI 语音平台, 覆盖实时流式 ASR(支持 2-pass 双流与 Zipformer)、离线 ASR(Paraformer / SenseVoice)、 TTS 语音合成、ESL 通话编排、NLU / Chat、智能外呼、坐席协同与管理控制台。
仓库采用“模块文档与代码共置、VitePress 统一展示”的组织方式。本文只提供项目入口; 版本、端口、配置、协议和部署细节均链接到各自唯一来源。
核心调用链
识别链路使用 mod_audio_fork。TTS 通过 WAV、audio_fork:// PCM 流或 shout:// MP3 流交给 FreeSWITCH 播放。
系统一与系统二
- 系统一:AI 语音通话底座管理面。以
callflow-esl、本地 ASR(FunASR / Sherpa)/ TTS / NLU、callflow-server和callflow-webpage为核心,负责 FreeSWITCH 接入、号码路由、 通话业务、识别播报与录音。 - 系统二:智能外呼与协同系统。以
callout-server、callout-webpage和callflow-esl的callout-flow-business为核心,负责外呼调度、流程脚本、名单与线路、 NLU 决策、坐席协同、转人工、质检与结果闭环。
两个系统复用语音底座,但管理职责和业务数据边界独立。系统二通过稳定的 HTTP / 通道变量 契约调用系统一,不把外呼经营逻辑写入通用语音 runtime。
仓库结构
text
ai-voice-platform/
├── apps/
│ ├── callflow-esl/ # FreeSWITCH outbound ESL 与通话业务编排
│ ├── callflow-server/ # 系统一管理 API
│ ├── callflow-webpage/ # 系统一管理前端
│ ├── callout-server/ # 系统二外呼管理 API(含原生 AI 策略中台)
│ └── callout-webpage/ # 系统二外呼管理前端(含「AI 策略中心」与 Playground)
├── docs-site/ # VitePress 站点配置,不复制 Markdown 正文
├── speech-gateway/ # 语音网关服务(Go 全双工网关与第三方云网关)
│ ├── audio-fork-server/ # 原生 Go 全双工音频网关(10091 WS / 默认启动组)
│ ├── aliyun-speech-gateway/ # 阿里云语音兼容网关(可选)
│ └── azure-speech-gateway/ # Azure 语音兼容网关(可选)
├── onnx-platform/ # ASR(FunASR/Sherpa)、TTS、情绪分析、模型与 SDK(纯 Rust 架构)
│ ├── funasr-asr-server/ # 统一 FunASR 语音识别服务(纯 Rust,10099 WS 流式 / 10094 HTTP 离线)
│ ├── sherpa-asr-server/ # 统一 Sherpa ASR 语音识别服务(纯 Rust,10096 WS 流式 / 10095 HTTP 离线)
│ ├── sherpa-tts-server/ # Sherpa TTS 语音合成服务(纯 Rust,9080)
│ ├── emotion-analysis-server/ # 多模态情绪分析服务(纯 Rust,9090)
│ └── sherpa-demo/ # 最小验证程序集(纯 Rust)
├── deploy/ # 当前双主机拓扑的部署配置:aliyun 公网节点、wsl-docker 计算集群、FreeSWITCH 参考树
├── docs/ # 跨项目开发、部署、排障、发布与文档规范
├── scripts/ # 工程构建、部署与维护辅助脚本
├── RELEASE_NOTES.md # 版本与破坏性变更唯一来源
└── package.json # Bun workspace 与统一命令最短启动步骤
准备 Bun、Go 1.23+(含 air,全双工音频网关热重载所需)、PostgreSQL、Redis、OpenAI 兼容推理后端、FreeSWITCH,并先构建 ONNX Rust 语音服务(ASR / TTS / Emotion)。随后在仓库根目录执行:
bash
bun install
bun run dev默认启动范围、服务端口、健康检查和单服务命令统一查阅 服务目录。完整环境准备和联调步骤见 开发测试手册。
文档站命令:
bash
bun run docs:dev
bun run docs:build任务结束后必须停止本次启动的全部服务。
主要组件
组件、默认端口、启动命令与健康检查不在本文重复维护,请以 服务目录 为准。模块职责与接口从下方模块文档进入。
构建与运行
callflow-esl 配置
配置字段、TTS profile、FreeSWITCH 回连和业务配置见 callflow-esl 配置参考。
FreeSWITCH 拨号计划
拨号计划、mod_audio_fork 和 FreeSWITCH 容器化部署包(deploy/freeswitch/,含五篇专题文档)见 部署资产总览;节点级操作见 阿里云公网节点与 WSL 计算集群; 浏览器软电话另见 ICE / TURN 指南。
验证
统一代码规范与类型检查使用 bun run lint、bun run typecheck 与 bun run check:rust。分模块测试、构建和冒烟命令见 开发测试手册及对应模块 README。
文档索引
模块入口:
- callflow-esl
- callflow-server
- callflow-webpage
- callout-server
- callout-webpage
- FunASR 识别服务
- Sherpa ASR 识别服务
- Sherpa TTS 语音合成
- 多模态情绪分析
- Go 全双工音频网关
- ONNX 平台总览
运维注意事项
运维步骤、日志定位、健康检查与常见故障统一从 部署与运行和故障排查进入; 部署目录提供什么、不提供什么以 deploy/README.md 为准。