前言

因为最近在公司做大模型相关的工作,前段时间就趁着兴头,挑了点空闲时间按照自己瞎想的思路实现了一个埃癸斯的语音助手DEMO(可能也不算助手吧,算是角色扮演?).先前演示和代码都已经放在B站和GitHub上了,就顺带也放到博客来吧。

视频演示

https://www.bilibili.com/video/BV1Dyf5YLE4p

代码仓库

https://github.com/CosineG/aegis-assistant

系统介绍

系统工作流程

  1. 语音活动检测(VAD):通过声音活动实时检测用户语音输入
  2. 音频采集:触发录音模块进行语音捕获
  3. 语音识别(ASR):将音频转换为文本
  4. 大模型处理(LLM):解析用户意图并生成回复
  5. 语音合成(TTS):将文本回复转换为语音输出

当前为循环对话模式,即程序启动后持续监听环境语音。

模型选用

语音识别

采用 fast-whisper large-v3 模型,多语言支持、识别准确率高。

大模型交互

选用 Deepseek V3 的官方 API(性价比高,但是现在因为 R1 爆火很不稳定)。

另外实现了:

  • 流式输出:通过分块响应降低等待延迟。
  • Function Calling:支持天气查询、音乐播放等扩展功能(需自定义实现)。

语音合成

选用GPT-SOVTIS(基于P3R解包语音数据集训练),在 RTX 4080 环境下训练和推理速度都很优异,相比下 Fish-Speech 训练周期较长,生成质量不佳。

针对长文本场景的语音延迟问题,采用分句级流式处理方案:
实时解析大模型流式输出,动态检测完整语义分句,后台线程并行生成语音,最终实现播放与生成的流水线作业。可在播放当前语句时即可预生成后续内容,显著提升交互流畅度。

扩展方向

  • 智能家居集成:通过米家 Python SDK 实现设备控制。
  • 离线部署优化:部署如 Qwen 2.5 14B 等大模型本地交互。
如果觉得我的文章对你有用,请随意赞赏