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;">之前我收集的好多文章也多次提到类似的应用。世界上最快的语音聊天机器人
一款快速低延迟的本地AI语音聊天系统:voicechat2
ChatTTS:用于对话场景的文本转语音
开源TalkWithGemini: 一键免费部署您的私人 Gemini 应用,支持图片识别和语音对话
Hume AI 带着情感感知实时语音对话
WhisperFusion: 超低延迟的实时语音对话
SpeechGPT-Gen: 实现语音跟语音的对话?
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 
该项目实现了一个语音到语音的级联管道,包含以下部分: 语音活动检测 (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 的微型架构是标准的,但可以使用不同的检查点,包括微调的多语言检查点。
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 实现的部分:语音转文本、语言模型和文本到语音。使用相应的前缀指定目标管道部分: stt(语音转文本) lm(语言模型) tts(文本到语音)
--lm_model_name google/gemma-2b-it
生成参数可以使用部分的前缀+_gen_ 来设置模型生成方法的其他生成参数,例如 --stt_gen_max_new_tokens 128。这些参数可以添加到管道部分的参数类中,如果尚未暴露的话(例如 LanguageModelHandlerArguments)。 重要参数VAD 参数语言模型语音转文本--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 流式输出时发送的第一块的持续时间,影响准备和解码步骤。
|