Skip to content

Latest commit

 

History

History
495 lines (354 loc) · 21.4 KB

File metadata and controls

495 lines (354 loc) · 21.4 KB

目录

欢迎来到 TEN

TEN 是一个用于创建、定制和部署实时多模态对话式 AI 代理的开源生态系统,支持语音、视觉和虚拟形象交互。

TEN 包括 TEN FrameworkTEN VADTEN Turn Detection 以及 TEN Portal。更多信息请查看 TEN 生态系统


社区渠道 用途
Follow on X 在 X 上关注 TEN Framework,获取最新更新与公告
Follow on LinkedIn 在 LinkedIn 上关注 TEN Framework,获取更新与公告
Discord TEN Community 加入我们的 Discord 社区,与开发者交流
Hugging Face Space 关注我们的 Hugging Face 社区,体验空间与模型
WeChat 加入我们的微信中文讨论群

示例代理


预览 亮点
多用途语音助手 —— 低延迟、高质量的实时助手,可与记忆VADTEN Turn Detection 等扩展整合。
查看 示例代码 获取更多细节。
唇形同步虚拟形象 —— 支持多个虚拟形象供应商,演示中展示了 Live2D 驱动的动漫角色 Kei,并即将支持 Trulience、HeyGen、Tavus 等真实形象。
参见 示例代码 了解 Live2D 实现。
SIP 呼叫 —— 基于 TEN 的 SIP 扩展,实现电话通话能力。
示例代码
语音分离 —— 实时检测并标注说话人,“Who Likes What” 游戏展示了交互式用例。 示例代码
转写 —— 将音频实时转成文本。 示例代码
ESP32-S3 Korvo V3 —— 在 Espressif ESP32-S3 Korvo V3 开发板上运行 TEN Agent,将 LLM 能力与硬件结合。
参见 集成指南 了解详情。


快速开始示例代理

本地环境

步骤 ⓵ - 前置条件

类别 要求
密钥 • Agora App IDApp Certificate(每月赠送免费分钟)
OpenAI API 密钥(任何兼容 OpenAI 的 LLM)
Deepgram ASR(注册即可获得免费额度)
ElevenLabs TTS(注册即可获得免费额度)
安装 Docker / Docker Compose
Node.js (LTS) v18
最低系统配置 • CPU ≥ 2 核心
• RAM ≥ 4 GB

divider

如果在国内,我们强烈建议在 SSH 中把代理打开,下载和安装的依赖的时候会更加丝滑。

# 如果用的代理软件没有增强模式的话, 建议手动把所有代理协议都打开
# export 的有效期为一个 session
export https_proxy=http://127.0.0.1:<port>
export http_proxy=http://127.0.0.1:<port>
export all_proxy=socks5://127.0.0.1:<port>

# Docker
export https_proxy=http://host.docker.internal:<port>
export http_proxy=http://host.docker.internal:<port>
export all_proxy=http://host.docker.internal:<port>

# tman 镜像设置
mkdir -p ~/.tman && echo '{
  "registry": {
    "default": {
      "index": "https://registry-ten.rtcdeveloper.cn/api/ten-cloud-store/v1/packages"
    }
  }
}' > ~/.tman/config.json

# GO 代理设置
export GOPROXY=https://goproxy.cn,direct

# pip 代理设置, 此设置需要先安装 pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
export UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple

divider

步骤 ⓶ - 在虚拟机中构建示例代理

1. 克隆仓库,进入 ai_agents,并复制 .env.example.env
cd ai_agents
cp ./.env.example ./.env
2. 在 .env 中配置 Agora App ID 和 App Certificate
AGORA_APP_ID=
AGORA_APP_CERTIFICATE=

# 如果你运行的是默认语音助手示例
# Deepgram(语音转写必需)
DEEPGRAM_API_KEY=your_deepgram_api_key_here

# OpenAI(语言模型必需)
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_MODEL=gpt-4o

# ElevenLabs(文本转语音必需)
ELEVENLABS_TTS_KEY=your_elevenlabs_api_key_here
3. 启动代理开发容器
docker compose up -d
4. 进入容器
docker exec -it ten_agent_dev bash
5. 使用默认示例构建代理(约 5–8 分钟)

查看 agents/examples 文件夹获取更多示例。 从下列默认示例之一开始:

# 使用串联语音助手
cd agents/examples/voice-assistant

# 或使用实时语音对语音助手
cd agents/examples/voice-assistant-realtime
6. 启动 Web 服务器

如果你修改了本地源代码,请先运行 task build。对于 TypeScript、Go 等编译型语言需要执行该步骤,Python 则无需执行。

task install
task run
7. 访问代理

当示例代理运行后,可以通过以下界面进行访问:

localhost:49483 Screenshot 1
localhost:3000 Screenshot 2

divider

步骤 ⓷ - 自定义你的代理

  1. 打开 localhost:49483
  2. 右键单击 STT、LLM、TTS 扩展。
  3. 打开扩展属性并填写对应的 API 密钥。
  4. 在画布上右键单击并选择 Manage Apps 打开应用管理器。
  5. Actions 栏点击 ▶ 来运行该应用。
  6. 选择 Run with TEN Agent,然后点击 Run

divider


Codespaces

GitHub 为每个仓库提供免费的 Codespaces。你可以在 Codespaces 中运行示例代理,而无需使用 Docker。Codespaces 的启动速度通常比本地环境更快。

更多细节请参考此指引


示例代理自托管

使用 Docker 部署

当你完成代理定制(通过 TMAN Designer 或直接编辑 property.json)后,可以构建发布用 Docker 镜像并部署服务。

构建发布镜像

注意:以下命令需在 Docker 容器之外执行。

构建镜像
cd ai_agents
docker build -f agents/examples/<example-name>/Dockerfile -t example-app .
运行
docker run --rm -it --env-file .env -p 3000:3000 example-app

divider

使用其他云服务部署

当你想在 VercelNetlify 等平台托管 TEN 时,可以将部署拆分为两个部分。

  1. 在任意支持容器的平台上运行 TEN 后端(带 Docker 的虚拟机、Fly.io、Render、ECS、Cloud Run 等)。无需修改示例镜像,仅需暴露 8080 端口。
  2. 仅将前端部署到 Vercel 或 Netlify。将项目根目录指向 ai_agents/agents/examples/<example>/frontend,运行 pnpm install(或 bun install),随后执行 pnpm build(或 bun run build),保持默认的 .next 输出目录。
  3. 在托管平台的控制面板中配置环境变量,让 AGENT_SERVER_URL 指向后端地址,并补充前端需要的 NEXT_PUBLIC_* 键(例如需要暴露给浏览器的 Agora 凭证)。
  4. 确保后端允许来自前端域名的请求——可设置开放 CORS,或使用内置代理中间件。

通过这种方式,后端负责长时间运行的任务,而托管的前端仅需转发 API 请求。


保持关注

及时获取新版本和更新通知,帮助我们持续改进 TEN!


Image



TEN 生态系统


项目 预览
️TEN Framework
TEN 是一个用于实时多模态对话式 AI 的开源框架。

TEN VAD
TEN VAD 是低延迟、轻量级且高性能的流式语音活动检测器。

️TEN Turn Detection
TEN Turn Detection 支持全双工对话通信。

TEN Portal
TEN Framework 官方站点,提供文档与博客。

TEN Agent
TEN Agent 是 TEN Framework 的实战示例。

TMAN Designer
TMAN Designer 提供低/无代码的可视化工作流,用于构建语音代理。



问题

TEN Framework 已登陆多个 AI 问答平台,可帮助你在多语言环境下快速定位答案,覆盖从基础配置到高级实现的各类问题。

服务 链接
DeepWiki Ask DeepWiki
ReadmeX ReadmeX

贡献

我们欢迎各种开源协作形式!无论是修复 Bug、添加特性、改进文档还是分享想法,你的贡献都可以推动个性化 AI 工具向前发展。查看我们的 GitHub Issues 与 Projects,寻找适合你的参与方式。让我们一起打造更出色的 TEN!


Tip

欢迎所有形式的贡献 🙏

加入我们,一起让 TEN 更出色!从代码到文档,每一份贡献都意义非凡。欢迎在社交媒体上分享你的 TEN Agent 项目,启发更多开发者!

可以联系 TEN 维护者之一 @elliotchen200(𝕏)或 @cyfyifanchen(GitHub)获取项目更新、讨论与协作机会。


divider

代码贡献者

TEN

贡献指南

欢迎贡献!请先阅读贡献指南


divider

许可证

  1. 整个 TEN 框架(下文明确列出的文件夹除外)基于 Apache License 2.0 发布,并附带额外限制。详情请参阅位于 TEN 框架根目录的 LICENSE 文件。
  2. packages 目录中的组件基于 Apache License 2.0 发布。详情请参阅各包根目录中的 LICENSE 文件。
  3. TEN 框架所使用的第三方库已列出并附带说明。更多信息请参考 third_party 目录。