
跟AI大模型实时语音通话解决方案
语音是人类最自然便捷的沟通方式,语音交互大幅降低与 AI 对话的门槛。人们只需说出需求,AI 就能快速理解并反应,无需复杂的操作,都在简单的话语中。越来越多的AI智能助手应用在发展语音实时交流方面有显著成效。诸多领域出现 AI 实时语音创新应用,如 AI 社交陪伴、AI 口语学习、游戏 AI NPC 及 AI 呼叫中心等。这些应用既展现 AI 技术潜力,也体现人们对更自然、更丰富的 AI 交流体验
语音是人类最自然便捷的沟通方式,语音交互大幅降低与 AI 对话的门槛。人们只需说出需求,AI 就能快速理解并反应,无需复杂的操作,都在简单的话语中。越来越多的AI智能助手应用在发展语音实时交流方面有显著成效。
诸多领域出现 AI 实时语音创新应用,如 AI 社交陪伴、AI 口语学习、游戏 AI NPC 及 AI 呼叫中心等。这些应用既展现 AI 技术潜力,也体现人们对更自然、更丰富的 AI 交流体验的期望。
我们与 AI 交互的流畅度和效率,不仅取决于大模型毫秒级的理解生成能力,还依赖于所选择的网络传输技术。起初,开发者鉴于 WebSocket 广泛的应用及普及性,常常选用它来构建语音对话。但随着方案的演进以及用户需求的提升,其局限性也逐渐展露:
响应延时:WebSocket 基于 TCP 协议构建,在公共互联网上进行高带宽的数据传输时,尤其是在网络的“最后一公里”中,容易受到网络条件不佳的影响,导致传输延迟不稳定,影响用户的交流体验。
打断回声:我们发现当前主流 AIGC 语音通话应用少有能实现用户随时打断,体验上更像“对讲机”而非“打电话”。因为用户在智能体输出时讲话,会混入智能体的回声,导致用户所说内容无法准确识别。
拓展限制:WebSocket 对于视频或多人交互场景显得“力不从心”。视频比音频使用更多的网络带宽,丢失和延迟的数据包也会更频繁;随着交互个体的增多,音视频流的发布和订阅管理也变得更加复杂。
为了提供更流畅自然的用户体验,适应大模型向多模态方向的快速发展,AI 实时语音方案采用实时通信(RTC)技术更为合适。RTC 技术能够更好地适应用户网络条件的变化,提供更优的实时传输性能。
今天介绍两款新的类似应用。
豆包在上一周的时候推出了对话式 AI 实时交互解决方案。
搭载火山方舟大模型服务平台,通过火山引擎 RTC 实现语音数据的高效采集、处理和传输,并深度整合豆包·语音识别模型和豆包·语音合成模型,简化语音到文本和文本到语音的转换过程,提供卓越的智能对话和自然语言处理能力,帮助应用快速实现用户和云端大模型的实时语音通话。
豆包·语音合成模型:解锁「豆包」同款音色,提供自然生动的语音合成能力,善于表达多种情绪,演绎多种场景。
豆包·语音识别模型:更高的准确率及灵敏度,更低的语音识别延迟,支持多语种的正确识别。
火山方舟:提供模型精调、推理、评测等全方位功能与服务,提供丰富的插件生态和 AI 原生应用开发服务,全方位保障企业级 AI 应用落地。
对话式 AI 实时交互服务方案架构
开箱即用快速搭建,只需调用标准的 OpenAPI 接口即可配置所需的语音识别(ASR)、大语言模型(LLM)、语音合成(TTS)类型和参数。而火山引擎 AIGC RTC-Server 负责边缘用户接入、云端资源调度、文本与语音转换处理以及数据订阅传输等环节。整体简化开发流程,让企业应用更专注在对大模型核心能力的训练及调试,加速 AI 实时语音场景创新。
随时打断,交流自然
要让与 AI 的交流像和朋友一样自然,随时打断甚至直接插话,关键在于:当用户和 AI 同时说话时,如何解决互相干扰的音频“双讲”现象。火山引擎 RTC 基于成熟的音频 3A 处理技术,针对“双讲”通过传统回声消除算法和深度学习算法的结合,不仅有效去除回声,还能避免用户语音被过度处理,确保云端语音识别(ASR)能准确捕捉和识别用户的语音信息。此外,火山引擎 RTC 通过简化算法提高处理速度,避免因算法复杂性带来的额外延时。
实时秒回,全球畅聊
火山引擎 RTC 依托于 WebRTC 传输网络(WTN),优选全球海量优质节点,实现全球用户智能接入和音视频数据超低延时传输,即使在复杂弱网环境下也能保持低延时、高质量的通信能力。同时,火山引擎 RTC 结合云端语音识别流式处理,优化端到端链路延迟,整体响应延时可低至 1s。此外,火山引擎实时信令 RTS 可提供稳定可靠、低延时、高并发的信令收发能力,可对文字信令高效传输。
不受限于 AI 服务部署区域,用户无论身处何地,是语音交流还是文字对话,都可以享受无延迟、流畅的 AI 交互体验。
再介绍另一个开源项目:
Speech To Speech
语音到语音:一个开源和模块化的 GPT-4-o 项目
https://github.com/eustlb/speech-to-speech
该项目实现了一个语音到语音的级联管道,包含以下部分:
-
语音活动检测 (VAD):使用 Silero VAD v5
-
语音转文本 (STT):使用 Whisper 模型检查点(包括简化版本)
-
语言模型 (LM):使用任何 Hugging Face Hub 上可用的 instruct 模型!🤗
-
文本到语音 (TTS):使用 Parler-TTS 🤗
该管道旨在提供一个完全开放和模块化的方法,利用 Transformers 库中可用的模型,通过 Hugging Face Hub 实现。每个部分的模块化程度如下:
-
VAD:使用 Silero 的实现。
-
STT:仅使用 Whisper 模型,不过可以使用任何 Whisper 检查点,支持选项包括 Distil-Whisper 和法语 Distil-Whisper。
-
LM:这一部分完全模块化,可以通过简单修改 Hugging Face Hub 模型 ID 来更换。用户需要选择一个 instruct 模型,因为此处涉及与其交互。
-
TTS:Parler-TTS 的微型架构是标准的,但可以使用不同的检查点,包括微调的多语言检查点。
git clone https://github.com/eustlb/speech-to-speech.git``cd speech-to-speech``pip install -r requirements.txt
该管道可以通过两种方式运行:
-
服务器/客户端方法:模型在服务器上运行,音频输入/输出从客户端流式传输。
-
本地方法:使用相同的客户端/服务器方法,但使用环回地址。
服务器/客户端方法
在服务器上运行管道:
python s2s\_pipeline.py --recv\_host 0.0.0.0 --send\_host 0.0.0.0
然后在本地运行客户端以处理麦克风输入和接收生成的音频:
python listen\_and\_play.py --host <服务器的IP地址>
本地方法
只需使用环回地址:
python s2s\_pipeline.py --recv\_host localhost --send\_host localhost
python listen\_and\_play.py --host localhost
推荐用法
为 Whisper 和 Parler-TTS 启用 Torch Compile:
python s2s\_pipeline.py \\
--recv\_host 0.0.0.0 \\
--send\_host 0.0.0.0 \\
--lm\_model\_name microsoft/Phi-3-mini-4k-instruct \\
--init\_chat\_role system \\
--stt\_compile\_mode reduce-overhead \\
--tts\_compile\_mode default
目前,捕获 CUDA Graphs 的模式不兼容 Parler-TTS 的流式传输(reduce-overhead, max-autotune)。
命令行使用
模型参数
model_name、torch_dtype 和 device 可用于每个利用 Transformers 实现的部分:语音转文本、语言模型和文本到语音。使用相应的前缀指定目标管道部分:
-
stt(语音转文本)
-
lm(语言模型)
-
tts(文本到语音)
\--lm\_model\_name google/gemma-2b-it
生成参数
可以使用部分的前缀+_gen_ 来设置模型生成方法的其他生成参数,例如 --stt_gen_max_new_tokens 128。这些参数可以添加到管道部分的参数类中,如果尚未暴露的话(例如 LanguageModelHandlerArguments)。
重要参数
VAD 参数
-
–thresh:触发语音活动检测的阈值。
-
–min_speech_ms:被认为是语音活动的最小检测时长。
-
–min_silence_ms:用于分割语音的最短静默时间间隔,平衡句子切割和延迟减少。
语言模型
-
–init_chat_role:默认为 None。设置聊天模板中的初始角色(如适用)。参考模型卡片设置该值(例如对于 Phi-3-mini-4k-instruct,必须设置 --init_chat_role system)。
-
–init_chat_prompt:默认为 “You are a helpful AI assistant.” 设置 --init_chat_role 时需要此参数。
语音转文本
-
–description:设置 Parler-TTS 生成语音的描述。默认为:“A female speaker with a slightly low-pitched voice delivers her words quite expressively, in a very confined sounding environment with clear audio quality. She speaks very fast.”
-
–play_steps_s:指定 Parler-TTS 流式输出时发送的第一块的持续时间,影响准备和解码步骤。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
更多推荐
所有评论(0)