恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

AIRI 实时语音聊天实现原理:VAD + STT + LLM + TTS 流式管线深度解析

  • 首页
  • 资讯中心
  • /
  • AIRI 实时语音聊天实现原理:VAD + STT + LLM + TTS 流式管线深度解析

相关资讯

车载以太网入门指南:EasyXMen中DoIP诊断+SoAd+lwIP协议栈实现原理 2026/9/25 1:49:32
Mixly图形化编程入门:从点亮LED到掌握Arduino开发 2026/9/25 1:44:31
嵌入式开发者Claude Code实战:安装配置、权限管理、MCP与Skills 2026/9/25 1:44:31

最新资讯

Math Dice 数学骰子:Basic Computer Games 中的加法可视化训练程序全解析
Atlas 300V 24G推理卡部署YOLO全流程与踩坑指南
DiceBear Pixel Art 风格预设(Preset)完全指南:10 套开箱即用的渲染选项与源码机制解析
学生宿舍管理系统:从建库到前端的完整数据流闭环实现
Atlas 300V 24G实战:从PyTorch到OM的YOLO推理部署全流程指南
Atlas 300V 24G推理加速卡部署实战:从YOLO模型转换到ACL调优

今日推荐

AI元人文:从工具使用到思维重构的深度探索
Python+CNN车牌识别实战:从数据预处理到模型训练与部署
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

本周热门

BrewUI:给Homebrew套上图形界面,让macOS软件包管理更简单
BrewUI:让Homebrew包管理变得可视化与高效
公式与文本对齐全攻略:从Word到LaTeX的实用技巧

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

AIRI 实时语音聊天实现原理:VAD + STT + LLM + TTS 流式管线深度解析

发布时间:2026/9/25 1:49:32
AIRI 实时语音聊天实现原理:VAD + STT + LLM + TTS 流式管线深度解析 AIRI 实时语音聊天实现原理VAD STT LLM TTS 流式管线深度解析【免费下载链接】airi 自托管、归你拥有的 Grok 风格 AI 伴侣与 waifu / 赛博生命灵魂容器目标是接近 Neuro-sama 的高度支持实时语音聊天、Minecraft 和 Factorio 游玩支持 Web / macOS / Windows。项目地址: https://gitcode.com/moeru-ai/airiAIRIMoeru AI / airi是一款自托管的 Grok 风格 AI 伴侣支持实时语音聊天、Minecraft 与 Factorio 游玩可运行在 Web、macOS 和 Windows 上。它的实时语音聊天并不是简单的录音—识别—回答—播放四步走而是一条 VAD语音活动检测→ STT语音转文字→ LLM大模型流式推理→ TTS文字转语音的流式管线每一环都不等上一环全部完成而是边听、边想、边说。这篇文章用尽量少的代码带你完整拆解这条语音管线的实现原理。一、先建立全局语音管线长什么样把一次对 AI 说话 → AI 开口回应的过程画成链路大致是这样麦克风 → VAD 切分语音段 → STT 转成文字 → LLM 流式生成回复 → TTS 分块合成 → 按时间线播放AIRI 把这条链路拆在了几个独立的模块里职责清晰环节作用核心代码位置VAD判断你在说话 / 你停下来了自动切分语音段vad.ts录音与分段麦克风采集、自动/音量兜底分段voice-input-session.tsSTT语音转文字支持流式识别hearing.ts管线编排文本分块、优先级打断、并发 TTS、播放调度speech-pipeline.tsTTS 分块把 LLM 流式 token 流切成适合合成的短句tts-chunker.ts这种每段一个独立模块 中央管线调度的结构是它能做到低延迟、可打断、可并发的关键。二、VADAI 是怎么知道你开始说话了实时语音聊天的第一道关卡是VADVoice Activity Detection语音活动检测。它解决两个问题什么时候开始录音——用户开口AI 就开始收集音频什么时候结束录音——用户停顿足够久就把这段音频送去识别。AIRI 的 VAD 基于轻量级神经网络模型silero-vad通过 Web 端 AI 运行时在浏览器本地推理音频数据不用上传服务器这也是自托管项目在意隐私的体现。核心实现见 libs/audio/vad.ts推理跑在独立 Worker 里process.worklet.ts不阻塞 UI 线程。它的工作方式是逐帧512 采样点打分每一帧音频都得到一个这是人声吗的概率再配合一组精心设计的参数做状态机判断speechThreshold: 0.3概率超过 0.3 判定为正在说话exitThreshold: 0.1概率低于 0.1 判定停止说话双阈值防抖动避免在阈值附近反复横跳minSilenceDurationMs: 400安静满 400ms 才算真正说完了防止正常断句被切开speechPadMs: 80往前多保留 80ms 音频避免句首被切掉。更妙的是双保险设计如果 VAD 模型加载失败或表现不佳系统会退化为音量包络触发——直接计算音频波形能量voice-input-session.ts 中的calculateTimeDomainVolumeLevel音量连续高于阈值就开始录音、持续低于阈值就结束。神经网络 能量检测双通道保证了各种设备上的鲁棒性。三、STT语音怎么变成文字VAD 切出的一段语音会由录音模块编码成标准格式WAV编解码工具在 packages/audio/src/encoding然后交给 STT 层。AIRI 的听觉状态中心是 hearing.ts它支持多种识别提供方本地 / 离线模型通过xsai的generateTranscription统一接口调用 Whisper 类模型云服务内置阿里云流式识别streamAliyunTranscription适合低延迟场景浏览器原生Web Speech APIstreamWebSpeechAPITranscription零配置即用。这里有一个值得新手注意的细节流式识别与记录后识别是两种策略。边说边转延迟更低但需要提供方支持增量返回录完整句再转更稳。AIRI 在 voice-input-session.ts 中把两种路径统一封装上层业务无需感知差异。识别结果不是直接甩给 LLM 的而是先经过转录缓冲——transcript-buffer.ts。流式识别会不断吐出一小段一小段的文字碎片缓冲器用滑动时间窗默认约 1200ms 静默后冲刷把碎句聚合成一个完整的说话回合再交给下游。这一层看似简单却避免了每蹦出一个字就触发一次 LLM的灾难。四、LLM流式生成 优先级打断用户的一句话送入大模型后回复是逐 token 流式返回的。AIRI 没有等整段回答生成完才开口而是让下游 TTS 立刻开始啃这个 token 流——这是低延迟的核心。真正体现工程功力的是 speech-pipeline.ts 中的意图Intent模型。每一轮 AI 开口都被建模为一个 Intent带三个关键属性优先级由 priority.ts 的优先级解析器决定比如用户正在插话永远高于AI 自言自语行为queue排队、interrupt打断当前、replace替换——你说等一下新指令就能立刻打断旧播报生命周期控制每个 Intent 持有独立的AbortController打断 中止未播完的音频自动丢弃。这意味着 AIRI 的语音对话支持自然的打断barge-inAI 说到一半你插话它会让出麦克风旧音频流优雅退场新意图接管播放。这正是像真人聊天而非念稿机器的体感来源。五、TTS文字流怎么边想边说TTS 环节要解决一个经典矛盾LLM 逐 token 吐字但 TTS 模型吃的是句子。AIRI 的答案是TTS 分块器tts-chunker.ts从 token 流中持续积攒文字遇到标点。等或达到长度上限时切出一个可合成段段落进入 TTS 合成队列最多 4 个段落并发合成ttsMaxConcurrent。合成出的音频块交给播放管理器playback-manager.ts按时间线精确排程每一块音频都带起止时间戳前一块播完无缝衔接下一块形成AI 一口气在说话的连贯听感。整个调度由 timeline.ts 维护全局时间轴任何 Intent 被取消时时间线上属于它的未播块会被级联清除。并发合成 时间线排程的组合让首字延迟LLM 出第一个标点到你听到第一个音节之间只剩一段 TTS 合成的毫秒级等待。六、串起来看一句话的完整旅程把前面的环节串成时序你对 AIRI 说一句今天天气怎么样VADWorker 中本地推理检测到开口 → 录音段开始停顿 400ms 后 VAD 判定说完 → 音频段 80ms 前缀补齐 → 编码为 WAVSTT流式识别 → 转录缓冲聚合成完整句子 → 送入会话LLM开始流式输出 token →TTS 分块器在第一个句号处切出首句首句TTS 合成与后续句子并发→ 播放管理器按时间线排程你在 AI 说话中途插话 → 新 Intent 以高优先级interrupt旧 Intent → 旧音频中止新一轮循环从第 1 步开始。全程没有任何一个环节在傻等上一个环节彻底结束这就是流式管线四个字的分量。七、想深入源码按这份地图走VAD 推理核心vad.ts麦克风录音与分段voice-input-session.ts听觉总控STT 提供方编排hearing.ts语音管线总调度Intent / 优先级 / 打断speech-pipeline.tsTTS 句子分块tts-chunker.ts播放排程playback-manager.ts包设计说明packages/pipelines-audio/README.md总结AIRI 的实时语音聊天 本地 VAD 切段 可插拔 STT 流式 LLM 分块并发 TTS 时间线播放再用Intent 优先级打断把所有环节缝成一个可以自然插话的对话体验。对想学习实时语音系统的同学来说它是一个非常完整的开源范本每一个环节都独立可替换换模型、换厂商、换端侧/云侧而 speech-pipeline.ts 的调度模型则展示了让多路异步流有序协作的通用解法。【免费下载链接】airi 自托管、归你拥有的 Grok 风格 AI 伴侣与 waifu / 赛博生命灵魂容器目标是接近 Neuro-sama 的高度支持实时语音聊天、Minecraft 和 Factorio 游玩支持 Web / macOS / Windows。项目地址: https://gitcode.com/moeru-ai/airi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号