尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

更灵活易用、延迟超低、更多情感语音支持!地表最强 Voice Agent 开源框架再进化!丨TEN Framework 更新

更灵活易用、延迟超低、更多情感语音支持!地表最强 Voice Agent 开源框架再进化!丨TEN Framework 更新
📅 发布时间:2026/6/20 5:18:57

 

image

 

 

Hi !RTE 开发者社区的新老朋友们大家好,恰逢 TEN Framework 开源一周年之际,TEN 带着超厉害的 0.1.0 版 来了!

 

TEN Framework 本次带来了多项功能更新和开发者体验提升,相信 TEN 将成为开发者构建下一代 Voice Agent 的开发利器!

 

本次更新增加了简化的 main 概念,让开发者在不修改框架底层代码的情况下,能轻松注入和定制自己的业务逻辑,大大提升了灵活性。此外,新增了对 Node.js 的原生支持,开发更加轻松。

 

实时转录、AI 实时翻译、情感陪伴、语音助手、心理疗愈、营销 SIP、语音玩具等等各类热门的 Voice Agent 场景,都能通过 TEN Framework 轻松搭建。

 

Github:https://github.com/TEN-framework/ten-framework

 

Demo:https://agent.theten.ai

以防大家不知道 TEN Framework 超厉害的!

image

 

TEN Framework 是一个主流对话式 AI 开源框架,由声网与社区共同支持。基于 TEN Framework,你可以搭建任何 可用于生产环境的对话式 Voice Agent。

 

不少开发者已基于 TEN 上线了自己的 Voice Agent,从 AI 陪伴、口语陪练、语音儿童绘本、 AI 虚拟销售等等。大家也对 TEN 给予了 TEN 高度评价👇

 

image

 

 

那就让我们仔细聊聊为什么 TEN 超厉害的!

 

  • 超低延迟体验:框架稳定、可用于生产环境,支持全双工通信,实现可被打断的超低延迟对话,带来更自然的语音体验。

  • 插件灵活可拓展 :TEN 已经接入主流 STT、LLM、TTS 、S2S 模型,同时开发者也可以灵活接入自己想要的模型,高度自由。

  • 开发者友好:不仅支持 Python、Node.js、C++、Go 等多语言开发;也可通过 TMAN Designer 进行拖拽式低代码开发。

  • 多模态支持:TEN 同时支持级联模式与端到端模式,不仅限于语音,还可处理视觉、文本和数据流,构建更具情境感知的交互体验。

这次的 0.10 版本又有什么新内容呢?

TEN 在与开发者的沟通中不断进化。最新发布的 0.10 版本是 TEN Framework 的一个重要里程碑,在易用性与灵活性上,又有了极大的提升:

 

  1. 引入main支持自定义业务逻辑:新增了简化的 main 概念,这让开发者在不修改框架底层代码的情况下,轻松注入和定制自己的业务逻辑,大大提升了灵活性。

 

image

 

 

  1. 统一的实时协议 v2.0 :对 ASR、LLM、TTS 等核心实时通信协议进行了全面升级。特别是新的 TTS 协议基于 WebSocket,显著降低了延迟并提供了更好的错误处理能力。

  2. 更丰富的插件生态:正式增加了对 Sonniox、Speechmatics 和 Hume.ai 的官方支持,为开发者在语音识别、情感分析等方面提供了更多选择。

  3. 官方支持 Node.js:Node.js 现在与 Python 和 C++ 一样,成为 TEN 框架的 first-class runtime,为广大的 Node.js 开发者提供了原生支持。

  4. TMAN Designer UI 升级 :用于设计和管理语音代理工作流(pipelines)的用户界面 TMAN 进行了更新,响应速度更快,设计体验也更加直观。

 

image

 

来都来了!15 min 就能用 Node.js 捏完你的第一个语音助手

百说不如一练,那就和 TEN 一起,用 Node.js 动手搭建一个语音助手吧!

 

你无需在 Node.js 中重复造轮子去实现 ASR、LLM 或 TTS 这些底层功能,而是可以直接复用 Python 或 C++ 编写的现有模块或库,将 Node.js 的重心放在核心流程的编排和业务逻辑的开发上。

 


为什么选择 Node.js + TEN?

TEN 框架为模块化、跨语言开发而设计,在本次的教程中,你将直观体验到 :

 

  • RTC-优先的pipeline → 音频/视频/数据流均为实时且延迟低。

  • 跨语言extensions → 可以用 Python 做 ASR,用 C++ 做 TTS,用 Go 做 LLM 等等。

  • 统一编排(orchestration) → Node.js 只需实现 Main Extension,来协调所有组件。业务逻辑用 JavaScript/TypeScript 写,而耗性能的部分交由已经优化过的 extension 进行处理。

 


项目结构

TEN Framework 的仓库(https://github.com/TEN-framework/ten-framework/tree/main/ai_agents/agents/examples/voice-assistant-nodejs)中,已经提供了一个可用的 Node.js 语音助手示例,无需从 0 开始手搓。

 

目录结构大致如下(与 GitHub 上示例一致):

 

.
├── index.ts            → MainControlExtension (Node.js pipeline logic)
├── helper.ts           → Utilities for sending Cmd/Data
└── agent/├── agent.ts        → Event queue and orchestration├── events.ts       → Typed events (ASR, LLM, Tools, User)├── llm_exec.ts     → Handles LLM requests/responses└── struct.ts       → Zod schemas for message validation

 


入门指南(Getting Started)

建议按照官方的入门指南(https://theten.ai/docs/ten_agent/getting_started)完成基础设置步骤(安装、API 密钥、环境、Docker 等)。

 

⚠ 注意:当你执行 task use 来构建 agent 时,要确保选择 Node.js 语音助手示例:

 

task use AGENT=agents/examples/voice-assistant-nodejs

 

这样可以确保你运行的是 Node.js pipeline 版本,同时仍复用 Python/C++ 的 extension 来做 ASR、LLM、TTS。

 


Main Extension

index.ts 定义了 MainControlExtension,是 Node.js 的入口点。它会对运行时事件做出反应,并将输出发送到适当的目标(TTS、记录器等)。下面是其四个核心部分:

 

  1. 用户加入时的欢迎(Greeting on User Join)

 

当第一个用户加入时,extension 将自动发送欢迎信息。它既会发送给 TTS(这样用户能够听到),也发送给 transcript collector(在对话历史中也能看到)。例如:

 

this.agent.on(UserJoinedEvent, async () => {this.joinedUserCount++;if (this.joinedUserCount === 1) {await this._send_to_tts(this.config.greeting, true);await this._send_transcript("assistant", this.config.greeting, true, 100);}
});

 

这样,你的语音助手就能总是热情满满地和你 say hi 👋

 


 

  1. ASR 结果处理(Processing ASR Results)

 

当语音识别(ASR)产生结果时,extension 将:

 

  • 跟踪 session/stream ID。

  • 如果输入很长或者是“final”状态,则中断(interrupt)正在进行的 LLM 或 TTS。

  • 将最终用户文本放入 LLM 输入pipeline。

  • 将识别出的文本发送到 transcript collector。

 

示意代码:

 

this.agent.on(ASRResultEvent, async (event) => {this.session_id = String(event.metadata?.session_id ?? "100");const stream_id = Number(this.session_id) || 0;if (!event.text) return;if (event.final || event.text.length > 2) {await this._interrupt();}if (event.final) {this.turn_id += 1;await this.agent.queueLLMInput(event.text);}await this._send_transcript("user", event.text, event.final, stream_id);
});

 

这样,用户的语音输入被转换为可用于 LLM 的文本提示。

 


 

  1. 处理 LLM 响应(Handling LLM Results)

 

当 LLM 响应时,extension 将:

 

  • 使用 parseSentences 将流式增量(streaming deltas)分拆为完整句子。

  • 将每个句子片段立即发送给 TTS。

  • 对每个消息或推理片段,也将 transcript 转发给 collector。

 

示意代码:

 

this.agent.on(LLMResponseEvent, async (event) => {if (!event.is_final && event.kind === "message") {const [sentences, remainText] = parseSentences(this.sentenceFragment, event.delta);this.sentenceFragment = remainText;for (const sentence of sentences) {await this._send_to_tts(sentence, false);}}const dataType = event.kind === "message" ? "text" : "reasoning";await this._send_transcript("assistant", event.content, event.is_final, 100, dataType);
});

 

这允许“实时语音合成” — 在用户还不知道模型“思考”完的时候,就开始听到助手机器人的语音。

 


 

  1. 文本转写(Transcript Handling)

 

所有 ASR 和 LLM 的文本最终通过 _send_transcript 方法以结构化格式流向 message_collector:

 

private async _send_transcript(role: string,text: string,final: boolean,stream_id: number,data_type: "text" | "reasoning" = "text",
) {await sendData(this.tenEnv, "message", "message_collector", {role,text,is_final: final,stream_id,data_type,text_ts: Date.now(),});
}

 

每一次用户或助手机器人的发言都被一致地记录下来,用于界面显示、调试或分析。

 


总结要点

  • 在 TEN 框架下,用 Node.js 构建语音助手时,你主要负责编排与业务逻辑,而无需重写 ASR/LLM/TTS。

  • 可以重用 Python 或 C++ 写的扩展模块。

  • 使用 Node.js 管道时仍然能获得低延迟和实时性能。

 


Just Try it:测试与运行

当你完成设置后:

 

按照官方入门指南操作。

 

  1. 使用 Node.js agent:

 

task use AGENT=agents/examples/voice-assistant-nodejs
task build
task run

 

  1. 当你修改 Node.js 扩展文件后,需要执行 task build 来重新编译这些扩展

  2. 在浏览器中或设计界面中连接:

  3. 在本地通过 http://localhost:3000 测试

  4. 或者用 TMAN Designer 等工具测试

  5. 开始说话 —— 你的 Node.js 管道会负责协调整个流程

 


 

✨ 就酱!你的第一个实时语音助手就已经搭建完啦!请为自己鼓掌👏👏👏

 

如果你还有更多的创意想法想用 TEN 完成,也欢迎报名由TEN 发起的全球 Voice Agent 挑战赛:

 

TEN Dev Challenge 2025!角逐 11 K美金奖金池!

 

image

 

 

image

 

 

阅读更多 Voice Agent 学习笔记:了解最懂 AI 语音的头脑都在思考什么

 

image

 

相关新闻

  • 详细介绍:【干货收藏】Transformer架构深度拆解:大模型入门核心指南
  • PsExec
  • 详细介绍:开源AI智能客服与AI智能名片在S2B2C商城小程序客服管理中的应用与影响

最新新闻

  • 深入解析S12XDBG硬件调试模块:从比较器、状态机到复杂断点实战
  • 从环境变量到密码安全:Aero处理敏感配置的完整方案
  • CANN/ge获取HCCL跟随流数量
  • RxJavaSample高级技巧:10个实用方法解决回调地狱和复杂异步问题
  • 终极指南:快速解决跨平台中文显示不一致的PingFangSC字体配置方案
  • MiniCPM-V 4.6端侧部署实战:RTX 4070上稳定运行多模态推理

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号