Cloudflare 正在为其 AI Agent SDK 引入语音功能,旨在弥合基于文本的交互与自然对话之间的鸿沟。对许多人来说,AI 代理一直局限于聊天界面,要求用户掌握提示词设计技巧。这一新的实验性语音管道通过 @cloudflare/voice 包提供,允许代理通过现有的 WebSocket 连接进行实时对话。

这种集成意味着语音成为另一种输入方式,由驱动 SDK 的同一持久对象基础架构进行管理。这种方法保留了代理的状态、持久性和工具,避免了迁移到单独的语音框架。
语音作为原生代理功能
@cloudflare/voice 包提供了灵活的选项,例如用于完整语音代理的 withVoice(Agent),以及用于仅限语音转文本(如语音录入或语音搜索)用例的 withVoiceInput(Agent)。React 开发者可以利用 useVoiceAgent 和 useVoiceInput 钩子,而与框架无关的客户端则可以使用 VoiceClient。
Cloudflare 集成了 Workers AI 服务提供商,支持即开即用,包括用于连续语音转文本(Flux、Nova 3)和语音转文本(Aura)的 Deepgram,从而无需外部 API 密钥即可开始使用。
这使得开发者能够构建用户可以与之对话的代理,并以合成的方式回复用户,同时保持单个 WebSocket 连接并将对话历史记录保存在 SQLite 中。
专为可扩展性而设计
Cloudflare 强调开放性。其提供的接口设计@cloudflare/voice得非常简洁,鼓励第三方开发者构建语音、电话和传输组件。这样做旨在防止厂商锁定,并允许开发者定制其语音架构。
简化语音助手开发
服务器端的配置极为简洁。开发者只需实例化一个持续转录器和一个文本转语音提供程序,然后实现 onTurn() 方法来处理转录后的输入。客户端的集成同样简洁高效,尤其是结合 React Hooks 时。
其底层机制利用了 Agents SDK 的持久对象 (Durable Object) 基础架构。音频流通过现有的 WebSocket 连接传输,从而建立持续的语音文本转录 (STT) 会话。一旦 STT 模型检测到语音,转录文本就会传递给代理的逻辑。代理的响应随后被合成为音频,并通过句子分块的方式流式传输回客户端,以加快首次音频响应时间 (Time-to-First Audio)。
对话历史记录会自动保存到 SQLite 中,确保在重新连接和部署后能够保持数据连续性。
统一的多模态体验
其关键优势在于语音和文本的统一处理。用户可以输入查询内容,切换到语音,然后再切换回文本,所有操作都与同一个客服实例和对话历史记录进行交互。这简化了应用程序架构,并提供了更流畅的用户体验。
Cloudflare 将降低延迟列为一项显著优势。通过将音频传输、语音转语音 (STT) 和文本转语音 (TTS) 服务保留在 Cloudflare 网络内,并利用 Workers AI 绑定,该流程最大限度地减少了在不同服务之间数据传输所带来的开销。
逐句流式传输回复并合成音频的能力增强了对话的真实感。这对于构建真正交互式的 AI 代理至关重要。
超越对话:语音输入
对于仅将语音作为输入方式的应用场景,withVoiceInput选项提供了一个简洁的界面。这非常适合语音输入或语音搜索等无需语音回复的应用。
该SDK还支持高级功能,例如安排语音提醒和向LLM(生命周期管理)开放工具,从而实现与非语音代理类似的功能。这使得复杂的流程成为可能,例如通过语音命令设置提醒。
灵活性和集成性
支持运行时转录模型切换,开发者可以根据连接参数选择不同的语音转录模型。管道钩子提供了更高级的自定义功能,允许在不同阶段之间拦截和修改数据。
语音管道旨在与各种传输层集成,包括 WebSocket、用于电话通话的 Twilio 和 WebRTC。这使得单个代理能够处理跨不同渠道的交互。
Cloudflare 的方法旨在使语音成为现有代理功能的自然延伸,而不是一个独立而复杂的系统。此举使其平台能够实现更自然、多模态的 AI 交互。
本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/zixun/66219.html