ASR-LLM-TTS

GitHub
1.2k 195 较难 1 次阅读 今天Apache-2.0语言模型音频其他
AI 解读 由 AI 自动生成,仅供参考

ASR-LLM-TTS 是一个基于开源模型构建的全流程语音交互系统,旨在让计算机像真人一样“听、想、说”。它串联了阿里 SenseVoice(语音识别)、通义千问 Qwen2.5(大语言模型)以及 CosyVoice/Edge-TTS/pyttsx3(语音合成)三大核心组件,实现了从语音输入、智能理解到语音输出的完整闭环。

这套方案主要解决了开发者在搭建本地化语音助手时,面临的多模型整合困难、实时性差以及依赖复杂环境等痛点。通过提供详细的配置教程和模块化脚本,用户可快速部署支持实时打断、声纹识别(基于 CAM++ 模型)、自定义唤醒词及多轮对话记忆的高级交互应用。此外,它还支持切换至 Qwen2-VL 模型,拓展出能处理图片与视频的多模态交互能力。

ASR-LLM-TTS 特别适合有一定 Python 基础的开发者、AI 研究人员或技术爱好者使用。无论是希望低成本构建私有化智能助手,还是想深入研究语音与大模型结合的应用场景,都能从中获得灵活且高效的解决方案。项目社区活跃,持续更新,让前沿的语音交互技术变得触手可及。

使用场景

一位独居的视障老人希望在家中通过自然语音与智能助手交流,获取新闻播报、天气查询及日常陪伴,而无需依赖屏幕或复杂的触控操作。

没有 ASR-LLM-TTS 时

  • 交互门槛高:老人必须精准点击手机图标或记住特定指令词,传统的关键词匹配系统无法理解口语化的模糊表达(如“今天外面冷不冷”)。
  • 反馈机械生硬:现有的 TTS 引擎声音单调缺乏情感,长时间收听容易产生疲劳感,且无法根据对话语境调整语气。
  • 打断体验差:在助手播报过程中,若老人想中途插话提问,系统无法识别,必须等待播报结束才能重新唤醒,对话流程割裂。
  • 缺乏记忆能力:每次对话都是独立的,助手记不住老人刚才提到的喜好或前文语境,导致重复询问,体验极不连贯。

使用 ASR-LLM-TTS 后

  • 自然语义理解:依托 SenseVoice 和 QWen2.5 模型,老人可用任意自然口吻说话,系统能精准识别方言口音并理解“帮我看看要不要带伞”这类隐含意图。
  • 拟人化情感播报:集成 CosyVoice 或 Edge-TTS,助手能用温暖、自然的音色回应,甚至模仿亲人语气,显著提升陪伴感和可听性。
  • 实时自由打断:利用 webrtcvad 技术实现全双工交互,老人在助手说话时随时插嘴,系统能立即停止播报并响应新指令,如同真人交谈般流畅。
  • 上下文连续记忆:内置的历史队列功能让助手记住“刚才提到的那个公园”,在多轮对话中保持逻辑连贯,无需老人反复复述背景信息。

ASR-LLM-TTS 将冰冷的机器指令转化为有温度、懂语境的自然对话,真正实现了零门槛的语音智能陪伴。

运行环境要求

操作系统
  • Windows
  • Linux
  • macOS
GPU

需要 NVIDIA GPU(用于运行 PyTorch CUDA 版本),README 提及需根据显存大小选择 QWen 模型版本,未明确具体最低显存要求,但建议支持 CUDA 11.8

内存

未说明

依赖
notes1. 推荐使用 Anaconda 创建名为 'chatAudio' 的虚拟环境。2. 必须安装 FFmpeg。3. 若使用 CosyVoice 功能,需额外安装 pynini(建议通过 conda-forge 安装)和 WeTextProcessing。4. 模型支持自动下载(需网络通畅或配置镜像源)或手动从 ModelScope 下载,包括 SenseVoiceSmall 和 Qwen 系列模型。5. 若遇到权限问题导致安装失败,请以管理员身份运行终端。6. 声纹识别功能默认使用阿里开源的 CAM++ 模型。
python3.10
torch==2.3.1
torchaudio==2.3.1
funasr==1.1.12
transformers==4.45.2
edge-tts==6.1.17
accelerate==0.33.0
modelscope==1.15.0
onnxruntime==1.19.2
pynini==2.1.6
WeTextProcessing
ASR-LLM-TTS hero image

快速开始

环境配置详细教程 B站

  1. anaconda\ffmpeg安装
    网上很多教程,自行搜索
    SenseVoiceSmall模型下载:
        自动下载:设置215行 model_dir = "iic/SenseVoiceSmall"
        手动下载:https://www.modelscope.cn/models/iic/SenseVoiceSmall/files
    
    QWen模型下载:
        自动下载:设置220行 model_name = "Qwen/Qwen2.5-1.5B-Instruct",开启科学上网,可从huggingface自动下载
        手动下载:https://www.modelscope.cn/models/ 搜索QWen,结果中下载显存可支持模型
  1. 创建虚拟环境
    conda create -n chatAudio python=3.10
    conda activate chatAudio
  1. 安装pytorch+cuda版本,本地测试2.0以上版本均可,这里安装torch=2.3.1+cuda11.8
    pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 --index-url https://download.pytorch.org/whl/cu118

    其它适合自己电脑的torch+cuda版本可在torch官网查找
    https://pytorch.org/get-started/previous-versions/
  1. 简易版本安装,不使用cosyvoice时依赖项较少
    pip install edge-tts==6.1.17 funasr==1.1.12 ffmpeg==1.4 opencv-python==4.10.0.84 transformers==4.45.2 webrtcvad==2.0.10 qwen-vl-utils==0.0.8 pygame==2.6.1 langid==1.1.6 langdetect==1.0.9 accelerate==0.33.0 PyAudio==0.2.14

    可执行验证:
    python 13_SenceVoice_QWen2.5_edgeTTS_realTime.py

至此,不调用cosyvoice作为合成的交互可成功调用了。

  1. cosyvoice依赖库
    大家反馈较多pynini、wetext安装方法:
    conda install -c conda-forge pynini=2.1.6
    pip install WeTextProcessing --no-deps
  1. cosyvoice其它依赖项安装(如遇到权限问题导致安装失败,以管理员形式打开终端)
   pip install HyperPyYAML==1.2.2 modelscope==1.15.0 onnxruntime==1.19.2 openai-whisper==20231117 importlib_resources==6.4.5 sounddevice==0.5.1 matcha-tts==0.0.7.0

   可执行验证:
    python 10_SenceVoice_QWen2.5_cosyVoice.py

:sparkles: 241130-updata

新增声纹识别功能

设置固定声纹注册语音存储目录,如目录为空则自动进入声纹注册模式。默认注册语音时长大于3秒,可自定义,一般而言时长越长,声纹效果越稳定。 声纹模型采用阿里开源的CAM++,其采用3D-Speaker中文数据训练,符合中文对话需求

新增自由定义唤醒词功能

使用SenceVoice的语音识别能力实现,将语音识别的汉字转为拼音进行匹配。将唤醒词/指令词设置为中文对应拼音,可自由定制。15.0_SenceVoice_kws_CAM++.py中默认为'ni hao xiao qian',15.1_SenceVoice_kws_CAM++.py中默认为'zhan qi lai'[暗影君王实在太cool辣]

新增对话历史内容记忆功能

通过建立user、system历史队列实现。开启新一轮对话时,首先获取历史记忆,而后拼接新的输入指令。可自由定义最大历史长度,默认为512。

对应脚本:

无历史记忆:15.0_SenceVoice_kws_CAM++.py

有历史记忆:15.1_SenceVoice_kws_CAM++.py

[演示demo,B站] (https://www.bilibili.com/video/BV1Q6zpYpEgv)

Have fun! 😊

:sparkles: 241123-updata

更新单模态自由打断语音交互

使用webrtcvad进行实时vad检测,设置一个检测时间段=0.5s,有效语音激活率=40%,每个检测chunk=20ms。也就是说500ms/20ms=25个检测段,如果25*0.4=10个片段激活,则该0.5秒为有效音,加入缓存。

可改进点:使用模型VAD,去除噪声干扰

13_SenceVoice_QWen2.5_edgeTTS_realTime.py

音视频多模态语音交互

基于以上逻辑,替换QWen2.5-1.5B模型为QWen2-VL-2B,可实现音视频多模态交互。模型具有两种输入格式,图片/视频

14_SenceVoice_QWen2VL_edgeTTS_realTime.py

[演示demo,B站] (https://www.bilibili.com/video/BV1uQBCYrEYL)

:sparkles: 241027-语音交互大模型/SenceVoice-QWen2.5-TTS

框架

SenceVoice-QWen2.5-CosyVoice搭建

此工程主代码来于[CosyVoice] (https://github.com/FunAudioLLM/CosyVoice)

在CosyVoice基础上添加[SenceVoice] (https://github.com/modelscope/FunASR) 作为语音识别模型

添加[QWwn2.5] (https://github.com/QwenLM/Qwen2.5) 作为大语言模型进行对话理解

3种语音合成方法

CoosyVoice推理速度慢,严重影响对话实时性,额外添加pyttsx3和edgeTTS

EdgeTTS实验过程出现链接错误问题,升级版本至6.1.17解决,无需科学上网

All dependencies are listed in requirements.txt, the interactive inference scripts are 10/11/12_SenceVoice_QWen2.5_xxx.py.

Have fun! 😊

常见问题

相似工具推荐

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

159.3k|★★☆☆☆|今天
开发框架Agent语言模型

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|1周前
语言模型图像Agent

spec-kit

Spec Kit 是一款专为提升软件开发效率而设计的开源工具包,旨在帮助团队快速落地“规格驱动开发”(Spec-Driven Development)模式。传统开发中,需求文档往往与代码实现脱节,导致沟通成本高且结果不可控;而 Spec Kit 通过将规格说明书转化为可执行的指令,让 AI 直接依据明确的业务场景生成高质量代码,从而减少从零开始的随意编码,确保产出结果的可预测性。 该工具特别适合希望利用 AI 辅助编程的开发者、技术负责人及初创团队。无论是启动全新项目还是在现有工程中引入规范化流程,用户只需通过简单的命令行操作,即可初始化项目并集成主流的 AI 编程助手。其核心技术亮点在于“规格即代码”的理念,支持社区扩展与预设模板,允许用户根据特定技术栈定制开发流程。此外,Spec Kit 强调官方维护的安全性,提供稳定的版本管理,帮助开发者在享受 AI 红利的同时,依然牢牢掌握架构设计的主动权,真正实现从“凭感觉写代码”到“按规格建系统”的转变。

88.7k|★★☆☆☆|今天
语言模型图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|1周前
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85.1k|★★☆☆☆|1周前
图像数据工具视频

funNLP

funNLP 是一个专为中文自然语言处理(NLP)打造的超级资源库,被誉为"NLP 民工的乐园”。它并非单一的软件工具,而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。 面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点,funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具,还独特地收录了丰富的垂直领域资源,如法律、医疗、金融行业的专用词库与数据集,甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性,从基础的字典词典到前沿的 BERT、GPT-2 模型代码,再到高质量的标注数据和竞赛方案,应有尽有。 无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师,还是从事人工智能研究的学者,都能在这里找到急需的“武器弹药”。对于开发者而言,它能大幅减少寻找数据和复现模型的时间;对于研究者,它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神,极大地降低了中文自然语言处理的开发与研究成本,是中文 AI 社区不可或缺的宝藏仓库。

79.9k|★☆☆☆☆|1周前
语言模型数据工具其他