链载Ai

标题: 跟AI大模型实时语音通话解决方案 [打印本页]

作者: 链载Ai    时间: 昨天 11:17
标题: 跟AI大模型实时语音通话解决方案

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;line-height: 2em;visibility: visible;">语音是人类最自然便捷的沟通方式,语音交互大幅降低与 AI 对话的门槛。人们只需说出需求,AI 就能快速理解并反应,无需复杂的操作,都在简单的话语中。越来越多的AI智能助手应用在发展语音实时交流方面有显著成效。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;line-height: 2em;visibility: visible;">诸多领域出现 AI 实时语音创新应用,如 AI 社交陪伴、AI 口语学习、游戏 AI NPC 及 AI 呼叫中心等。这些应用既展现 AI 技术潜力,也体现人们对更自然、更丰富的 AI 交流体验的期望。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;line-height: 2em;visibility: visible;">我们与 AI 交互的流畅度和效率,不仅取决于大模型毫秒级的理解生成能力,还依赖于所选择的网络传输技术。起初,开发者鉴于 WebSocket 广泛的应用及普及性,常常选用它来构建语音对话。但随着方案的演进以及用户需求的提升,其局限性也逐渐展露:

响应延时:WebSocket 基于 TCP 协议构建,在公共互联网上进行高带宽的数据传输时,尤其是在网络的“最后一公里”中,容易受到网络条件不佳的影响,导致传输延迟不稳定,影响用户的交流体验。
打断回声:我们发现当前主流 AIGC 语音通话应用少有能实现用户随时打断,体验上更像“对讲机”而非“打电话”。因为用户在智能体输出时讲话,会混入智能体的回声,导致用户所说内容无法准确识别。
拓展限制:WebSocket 对于视频或多人交互场景显得“力不从心”。视频比音频使用更多的网络带宽,丢失和延迟的数据包也会更频繁;随着交互个体的增多,音视频流的发布和订阅管理也变得更加复杂。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;line-height: 2em;visibility: visible;">

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;line-height: 2em;visibility: visible;">为了提供更流畅自然的用户体验,适应大模型向多模态方向的快速发展,AI 实时语音方案采用实时通信(RTC)技术更为合适。RTC 技术能够更好地适应用户网络条件的变化,提供更优的实时传输性能。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;line-height: 2em;visibility: visible;">之前我收集的好多文章也多次提到类似的应用。


ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;line-height: 2em;visibility: visible;">今天介绍两款新的类似应用。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;line-height: 2em;visibility: visible;">豆包在上一周的时候推出了对话式 AI 实时交互解决方案。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;line-height: 2em;visibility: visible;">搭载火山方舟大模型服务平台,通过火山引擎 RTC 实现语音数据的高效采集、处理和传输,并深度整合豆包·语音识别模型和豆包·语音合成模型,简化语音到文本和文本到语音的转换过程,提供卓越的智能对话和自然语言处理能力,帮助应用快速实现用户和云端大模型的实时语音通话。

豆包·语音合成模型:解锁「豆包」同款音色,提供自然生动的语音合成能力,善于表达多种情绪,演绎多种场景。

豆包·语音识别模型:更高的准确率及灵敏度,更低的语音识别延迟,支持多语种的正确识别。

火山方舟:提供模型精调、推理、评测等全方位功能与服务,提供丰富的插件生态和 AI 原生应用开发服务,全方位保障企业级 AI 应用落地。

对话式 AI 实时交互服务方案架构

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;line-height: 2em;visibility: visible;">开箱即用快速搭建,只需调用标准的 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

该项目实现了一个语音到语音的级联管道,包含以下部分:

该管道旨在提供一个完全开放和模块化的方法,利用 Transformers 库中可用的模型,通过 Hugging Face Hub 实现。每个部分的模块化程度如下:


gitclonehttps://github.com/eustlb/speech-to-speech.gitcdspeech-to-speechpipinstall-rrequirements.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 实现的部分:语音转文本、语言模型和文本到语音。使用相应的前缀指定目标管道部分:


--lm_model_name google/gemma-2b-it

生成参数

可以使用部分的前缀+_gen_ 来设置模型生成方法的其他生成参数,例如 --stt_gen_max_new_tokens 128。这些参数可以添加到管道部分的参数类中,如果尚未暴露的话(例如 LanguageModelHandlerArguments)。

重要参数

VAD 参数
语言模型
语音转文本






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5