跳到正文

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-servercallflow-webpage 为核心,负责 FreeSWITCH 接入、号码路由、 通话业务、识别播报、录音与运行时配置。
  • 系统二:智能外呼与协同系统。以 callout-servercallout-webpagecallflow-eslcallout-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 为准。

文档与代码在同一仓库维护,现有 Markdown 是唯一内容源。