← プロジェクト一覧に戻る

TEN Framework

音声・電話・アバターまで含むリアルタイム多モーダル対話基盤。Apacheに追加条件が付いたライセンス

公式ソース公開型
スター
11.1k
フォーク
1.4k
オープンIssue
232
最終コミット
2026年8月27日

TEN Frameworkとは

音声エージェントのうち、モデルの外側にあって通常は手作業で組み上げる部分を覆います。発話の検出、ターン終了の判定、話者の分離、電話網への接続、口の動きを同期させたアバターの駆動、さらには組み込み機器への到達までが対象です。ただし採用の前にライセンスを読んでください。Apache 2.0にAgoraによる追加条件が付いており、モバイル端末を含むエンドユーザー機器上でのホスティングと、Agora自身の提供物と競合する形での配備が禁じられています。

TEN Frameworkで何ができますか?

  • 動く音声アシスタントから始める — サンプルのエージェントはDocker Composeでローカル実行できます。最初の音声対話が成立するまでの作業が、統合プロジェクトではなくキーの設定とコンテナ起動で済みます。
  • ターンの受け渡しを正しく扱う — 発話区間の検出とターン終了の判定が、後付けではなくエコシステムの独立した構成要素として用意されています。音声エージェントの体感品質は通常ここで決まります。
  • 電話を受け、かける — SIPのサンプルがエージェントを電話網に接続します。ブラウザのマイクとは別の問題であり、業務用途で実際に必要とされるのはこちらであることが多い部分です。
  • エージェントに顔を与える — 口の動きを同期させたアバターのサンプルがLive2Dのキャラクターを動かします。話者分離やリアルタイム書き起こしのサンプルも個別に用意されています。
  • 組み込み機器まで届かせる — ESP32ハードウェア向けの統合ガイドがあります。対象を作業機やブラウザのタブではなく、小さな物理デバイスにできます。

TEN Frameworkを選ぶ前に

  • Apacheの許諾に追加条件が付きます。モバイル端末を含むエンドユーザー機器上でのホスティングと、Agoraの提供物と競合する形での配備は認められていません。
  • サンプルのエージェントは、モデル・音声認識・音声合成のキーに加えてAgoraのアプリIDと証明書を要求します。最初の起動が、公開部品だけでなく商用アカウントに依存します。

スター推移

8月21日〜8月28日 · +22

11.1k11.1k

よくある質問

TEN Frameworkは商用利用できますか?

TEN FrameworkのライセンスはApache-2.0 with additional conditionsです。OSI承認のオープンソースではなくソース公開型のため、商用利用の前に条項の確認が必要です。

TEN Frameworkはどの形で使えますか?

TEN Frameworkはセルフホストの形で利用できます。

ドキュメント

TEN-framework/ten-framework のREADMEより転載(UNKNOWN — read the LICENSE file)。 原文を読む ↗

![Image][ten-framework-banner]

[![TEN Releases][ten-releases-badge]][ten-releases] [![Coverage Status][coverage-badge]][coverage] [![Release Date][release-date-badge]][ten-releases] [![Commits][commits-badge]][commit-activity] [![Issues closed][issues-closed-badge]][issues-closed] [![Contributors][contributors-badge]][contributors] [![GitHub license][license-badge]][license] [![Ask DeepWiki][deepwiki-badge]][deepwiki] [![ReadmeX][readmex-badge]][readmex]

[![README in English][lang-en-badge]][lang-en-readme] [![简体中文操作指南][lang-zh-badge]][lang-zh-readme] [![日本語のREADME][lang-jp-badge]][lang-jp-readme] [![README in 한국어][lang-kr-badge]][lang-kr-readme] [![README en Español][lang-es-badge]][lang-es-readme] [![README en Français][lang-fr-badge]][lang-fr-readme] [![README in Italiano][lang-it-badge]][lang-it-readme]

[Official Site][official-site] • [Documentation][documentation] • [Blog][blog]

  • [Welcome to TEN][welcome-to-ten]
  • [Agent Examples][agent-examples-section]
  • [Quick Start with Agent Examples][quick-start]
    • [Localhost][localhost-section]
    • [Codespaces][codespaces-section]
  • [Agent Examples Self-Hosting][agent-examples-self-hosting]
    • [Deploying with Docker][deploying-with-docker]
    • [Deploying with other cloud services][deploying-with-other-cloud-services]
  • [Stay Tuned][stay-tuned]
  • [TEN Ecosystem][ten-ecosystem-anchor]
  • [Questions][questions]
  • [Contributing][contributing]
    • [Code Contributors][code-contributors]
    • [Contribution Guidelines][contribution-guidelines]
    • [License][license-section]

Welcome to TEN

TEN is an open-source framework for real-time multimodal conversational AI.

[TEN Ecosystem][ten-ecosystem-anchor] includes [TEN Framework][ten-framework], [Agent Examples][agent-examples-repo], [VAD][ten-vad], [Turn Detection][ten-turn-detection] and [Portal][ten-portal].

Community ChannelPurpose
[![Follow on X][follow-on-x-badge]][follow-on-x]Follow TEN Framework on X for updates and announcements
[![Discord TEN Community][discord-badge]][discord-invite]Join our Discord community to connect with developers
[![Follow on LinkedIn][linkedin-badge]][linkedin]Follow TEN Framework on LinkedIn for updates and announcements
[![Hugging Face Space][hugging-face-badge]][hugging-face]Join our Hugging Face community to explore our spaces and models

Agent Examples

![Image][voice-assistant-image]

Multi-Purpose Voice Assistant — This low-latency, high-quality real-time assistant supports both RTC and [WebSocket][websocket-example] connections, and you can extend it with [Memory][memory-example], [VAD][voice-assistant-vad-example], [Turn Detection][voice-assistant-turn-detection-example], and other extensions.

See the [Example code][voice-assistant-example] for more details.

![divider][divider-light] ![divider][divider-dark]

![Image][doodler-image]

Doodler — A doodle board that turns spoken or typed prompts into simple hand-drawn sketches, complete with a crayon palette and real-time drawing.

[Example code][doodler-example]

![divider][divider-light] ![divider][divider-dark]

![Image][speaker-diarization-image]

Speaker Diarization — Real-time diarization that detects and labels speakers, the Who Likes What game shows an interactive use case.

[Example code][speechmatics-diarization-example]

![divider][divider-light] ![divider][divider-dark]

![Image][lip-sync-image]

Lip Sync Avatars — Works with multiple avatar vendors, the main character features Kei, an anime character with MotionSync-powered lip sync, and also supports realistic avatars from Trulience, HeyGen, and Tavus.

See the [Example code][voice-assistant-live2d-example] for different Live2D characters.

![divider][divider-light] ![divider][divider-dark]

![Image][sip-call-image]

SIP Call — SIP extension that enables phone calls powered by TEN.

[Example code][voice-assistant-sip-example]

![divider][divider-light] ![divider][divider-dark]

![Image][transcription-image]

Transcription — A transcription tool that transcribes audio to text.

[Example code][transcription-example]

![divider][divider-light] ![divider][divider-dark]

![Image][esp32-image]

ESP32-S3 Korvo V3 — Runs TEN agent example on the Espressif ESP32-S3 Korvo V3 development board to integrate LLM-powered communication with hardware.

See the [integration guide][esp32-guide] for more details.

[![][back-to-top]][readme-top]

Quick Start with Agent Examples

Localhost

Step ⓵ - Prerequisites

CategoryRequirements
Keys• Agora [App ID][agora-app-id] and [App Certificate][agora-app-certificate]• [OpenAI][openai-api] API key• [Deepgram][deepgram] ASR • [ElevenLabs][elevenlabs] TTS
Installation• [Docker][docker] / [Docker Compose][docker-compose]• [Node.js (LTS) v18][nodejs]
Minimum System Requirements• CPU >= 2 cores• RAM >= 4 GB

![divider][divider-light] ![divider][divider-dark]

Step ⓶ - Build agent examples in VM

1. Clone the repo, cd into ai_agents, and create a .env file from .env.example
cd ai_agents
cp ./.env.example ./.env
2. Set up the Agora App ID and App Certificate in .env
AGORA_APP_ID=
AGORA_APP_CERTIFICATE=

# Deepgram (required for speech-to-text)
DEEPGRAM_API_KEY=

# OpenAI (required for language model)
OPENAI_API_KEY=

# ElevenLabs (required for text-to-speech)
ELEVENLABS_TTS_KEY=
3. Start agent development containers
docker compose up -d
4. Enter the container
docker exec -it ten_agent_dev bash
5. Build the agent with the default example (~5-8 min)

Check the agents/examples folder for additional samples. Start with one of these defaults:

# use the chained voice assistant
cd agents/examples/voice-assistant

# or use the speech-to-speech voice assistant in real time
cd agents/examples/voice-assistant-realtime
6. Start the web server

Run task build if you changed any local source code. This step is required for compiled languages (for example, TypeScript or Go) and not needed for Python.

task install
task run
7. Access the agent

Once the agent example is running, you can access the following interfaces:

localhost:49483localhost:3000
![Screenshot 1][localhost-49483-image]![Screenshot 2][localhost-3000-image]
  • TMAN Designer: [localhost:49483][localhost-49483]
  • Agent Examples UI: [localhost:3000][localhost-3000]

![divider][divider-light] ![divider][divider-dark]

Step ⓷ - Customize your agent example

  1. Open [localhost:49483][localhost-49483].
  2. Right-click the STT, LLM, and TTS extensions.
  3. Open their properties and enter the corresponding API keys.
  4. Submit your changes, now you can see the updated Agent Example in [localhost:3000][localhost-3000].

![divider][divider-light] ![divider][divider-dark]

Run a transcriber app from TEN Manager without Docker (Beta)

TEN also provides a transcriber app that you can run from TEN Manager without using Docker.

Check the [quick start guide][quick-start-guide-ten-manager] for more details.

![divider][divider-light] ![divider][divider-dark]

Codespaces

GitHub offers free Codespaces for each repository. You can run Agent Examples in Codespaces without using Docker. Codespaces typically start faster than local Docker environments.

[![][codespaces-shield]][codespaces-new]

Check out [this guide][codespaces-guide] for more details.

[![][back-to-top]][readme-top]

Agent Examples Self-Hosting

Deploying with Docker

Once you have customized your agent (either by using the TMAN Designer or editing property.json directly), you can deploy it by creating a release Docker image for your service.

Release as Docker image

Note: The following commands need to be executed outside of any Docker container.

Build image
cd ai_agents
docker build -f agents/examples/<example-name>/Dockerfile -t example-app .
Run
docker run --rm -it --env-file .env -p 3000:3000 example-app

![divider][divider-light] ![divider][divider-dark]

Deploying with other cloud services

You can split the deployment into two pieces when you want to host TEN on providers such as [Vercel][vercel] or [Netlify][netlify].

  1. Run the TEN backend on any container-friendly platform (a VM with Docker, Fly.io, Render, ECS, Cloud Run, or similar). Use the example Docker image without modifying it and expose port 8080 from that service.

  2. Deploy only the frontend to Vercel or Netlify. Point the project root to ai_agents/agents/examples/<example>/frontend, run pnpm install (or bun install) followed by pnpm build (or bun run build), and keep the default .next output directory.

  3. Configure environment variables in your hosting dashboard so that AGENT_SERVER_URL points to the backend URL, and add any NEXT_PUBLIC_* keys the UI needs (for example, Agora credentials you surface to the browser).

  4. Ensure your backend accepts requests from the frontend origin — via open CORS or by using the built-in proxy middleware.

With this setup, the backend handles long-running worker processes, while the hosted frontend simply forwards API traffic to it.

[![][back-to-top]][readme-top]

Stay Tuned

Get instant notifications for new releases and updates. Your support helps us grow and improve TEN!

![Image][stay-tuned-image]

[![][back-to-top]][readme-top]

TEN Ecosystem

ProjectPreview
[️TEN Framework][ten-framework-link]Open-source framework for conversational AI Agents.![][ten-framework-shield]![][ten-framework-banner]
[TEN VAD][ten-vad-link]Low-latency, lightweight and high-performance streaming voice activity detector (VAD).![][ten-vad-shield]![][ten-vad-banner]
[️ TEN Turn Detection][ten-turn-detection-link]TEN Turn Detection enables full-duplex dialogue communication.![][ten-turn-detection-shield]![][ten-turn-detection-banner]
[TEN Agent Examples][ten-agent-example-link]Usecases powered by TEN.![][ten-agent-example-banner]
[TEN Portal][ten-portal-link]The official site of the TEN Framework with documentation and a blog.![][ten-portal-shield]![][ten-portal-banner]

[![][back-to-top]][readme-top]

Questions

TEN Framework is available on these AI-powered Q&A platforms. They can help you find answers quickly and accurately in multiple languages, covering everything from basic setup to advanced implementation details.

ServiceLink
DeepWiki[![Ask DeepWiki][deepwiki-badge]][deepwiki]
ReadmeX[![ReadmeX][readmex-badge]][readmex]

[![][back-to-top]][readme-top]

Code Contributors

[![TEN][contributors-image]][contributors]

Contribution Guidelines

Contributions are welcome! Please read the [contribution guidelines][contribution-guidelines-doc] first.

![divider][divider-light] ![divider][divider-dark]

TEN Framework
AIに聞く
GitHub