外观
AI Voice Platform
AI Voice Platform 是一套围绕 FreeSWITCH 与 sherpa-onnx 构建的本地化 AI 语音平台, 覆盖实时 ASR、TTS、ESL 通话编排、NLU / Chat、智能外呼、坐席协同与管理控制台。
仓库采用“模块文档与代码共置、VitePress 统一展示”的组织方式。本文只提供项目入口; 版本、端口、配置、协议和部署细节均链接到各自唯一来源。
核心调用链
当前识别链路只使用 mod_audio_fork,不再使用或维护 mod_unimrcp。TTS 通过普通 WAV 或 shout:// MP3 流交给 FreeSWITCH 播放。
系统一与系统二
- 系统一:AI 语音通话底座管理面。以
callflow-esl、本地 ASR / 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
│ ├── callout-webpage/ # 系统二外呼管理前端
│ ├── llm-nlu-server/ # 统一 NLU API
│ ├── llm-chat-server/ # Chat 与 conversation strategy API
│ ├── aliyun-speech-gateway/ # 阿里云语音兼容网关(可选)
│ ├── azure-speech-gateway/ # Azure 语音兼容网关(可选)
│ └── docs-site/ # VitePress 站点配置,不复制 Markdown 正文
├── onnx-platform/ # ASR、TTS、情绪分析、demo、模型与 SDK
├── deploy/ # 部署配置参考,不含一体化部署包或启停脚本
├── docs/ # 跨项目开发、部署、排障、发布与文档规范
├── scripts/ # 发布包装配等辅助脚本
├── RELEASE_NOTES.md # 版本与破坏性变更唯一来源
└── package.json # Bun workspace 与统一命令最短启动步骤
准备 Bun、PostgreSQL、Redis、Ollama、FreeSWITCH,并先构建三个 ONNX C++ 服务。随后在 仓库根目录执行:
bash
bun install
bun run dev默认启动范围、服务端口、健康检查和单服务命令统一查阅 服务目录。完整环境准备和联调步骤见 开发测试手册。
文档站命令:
bash
bun run docs:dev
bun run docs:check任务结束后必须停止本次启动的全部服务。
主要组件
组件、默认端口、启动命令与健康检查不在本文重复维护,请以 服务目录 为准。模块职责与接口从下方模块文档进入。
构建与运行
callflow-esl 配置
配置字段、TTS profile、FreeSWITCH 回连和业务配置见 callflow-esl 配置参考。
FreeSWITCH 拨号计划
拨号计划、mod_audio_fork 和部署配置树见 FreeSWITCH 配置说明;浏览器软电话另见 ICE / TURN 指南。
验证
统一提交检查使用 bun run check。分模块测试、C++ 构建和冒烟命令见 开发测试手册及对应模块 README。
源码交付包打包
发布包边界、参数与校验只在发布包装配维护。
文档索引
模块入口:
运维注意事项
运维步骤、日志定位、健康检查与常见故障统一从 部署与运行和故障排查进入; 部署目录提供什么、不提供什么以 deploy/README.md 为准。