[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-71951":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":34,"lastSyncTime":35,"discoverSource":36},71951,"ten-framework","TEN-framework\u002Ften-framework","TEN-framework"," Open-source framework for conversational voice AI agents","https:\u002F\u002Fagent.theten.ai\u002F",null,"Python",10661,1291,70,160,0,13,40,103,39,44.33,"Other",false,"main",[26,27,28,29,30],"ai","multi-modal","real-time","video","voice","2026-06-12 02:02:56","\u003Cdiv align=\"center\" id=\"readme-top\">\n\n![Image][ten-framework-banner]\n\n[![TEN Releases][ten-releases-badge]][ten-releases]\n[![Coverage Status][coverage-badge]][coverage]\n[![Release Date][release-date-badge]][ten-releases]\n[![Commits][commits-badge]][commit-activity]\n[![Issues closed][issues-closed-badge]][issues-closed]\n[![Contributors][contributors-badge]][contributors]\n[![GitHub license][license-badge]][license]\n[![Ask DeepWiki][deepwiki-badge]][deepwiki]\n[![ReadmeX][readmex-badge]][readmex]\n\n[![README in English][lang-en-badge]][lang-en-readme]\n[![简体中文操作指南][lang-zh-badge]][lang-zh-readme]\n[![日本語のREADME][lang-jp-badge]][lang-jp-readme]\n[![README in 한국어][lang-kr-badge]][lang-kr-readme]\n[![README en Español][lang-es-badge]][lang-es-readme]\n[![README en Français][lang-fr-badge]][lang-fr-readme]\n[![README in Italiano][lang-it-badge]][lang-it-readme]\n\n[![TEN-framework%2Ften_framework | Trendshift][trendshift-badge]][trendshift]\n\n[Official Site][official-site] •\n[Documentation][documentation] •\n[Blog][blog]\n\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\n\u003Cdetails open>\n  \u003Csummary>\u003Ckbd>Table of Contents\u003C\u002Fkbd>\u003C\u002Fsummary>\n\n  \u003Cbr>\n\n- [Welcome to TEN][welcome-to-ten]\n- [Agent Examples][agent-examples-section]\n- [Quick Start with Agent Examples][quick-start]\n  - [Localhost][localhost-section]\n  - [Codespaces][codespaces-section]\n- [Agent Examples Self-Hosting][agent-examples-self-hosting]\n  - [Deploying with Docker][deploying-with-docker]\n  - [Deploying with other cloud services][deploying-with-other-cloud-services]\n- [Stay Tuned][stay-tuned]\n- [TEN Ecosystem][ten-ecosystem-anchor]\n- [Questions][questions]\n- [Contributing][contributing]\n  - [Code Contributors][code-contributors]\n  - [Contribution Guidelines][contribution-guidelines]\n  - [License][license-section]\n\n\u003Cbr\u002F>\n\n\u003C\u002Fdetails>\n\n## Welcome to TEN\n\nTEN is an open-source framework for real-time multimodal conversational AI.\n\n[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].\n\n\u003Cbr>\n\n| Community Channel | Purpose |\n| ---------------- | ------- |\n| [![Follow on X][follow-on-x-badge]][follow-on-x] | Follow TEN Framework on X for updates and announcements |\n| [![Discord TEN Community][discord-badge]][discord-invite] | Join our Discord community to connect with developers |\n| [![Follow on LinkedIn][linkedin-badge]][linkedin] | Follow TEN Framework on LinkedIn for updates and announcements |\n| [![Hugging Face Space][hugging-face-badge]][hugging-face] | Join our Hugging Face community to explore our spaces and models |\n| [![WeChat][wechat-badge]][wechat-discussion] | Join our WeChat group for Chinese community discussions |\n\n\u003Cbr>\n\n## Agent Examples\n\n\u003Cbr>\n\n![Image][voice-assistant-image]\n\n\u003Cstrong>Multi-Purpose Voice Assistant\u003C\u002Fstrong> — 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.\n\nSee the [Example code][voice-assistant-example] for more details.\n\n\u003Cbr>\n\n![divider][divider-light]\n![divider][divider-dark]\n\n\u003Cbr>\n\n\n![Image][doodler-image]\n\n\u003Cstrong>Doodler\u003C\u002Fstrong> — A doodle board that turns spoken or typed prompts into simple hand-drawn sketches, complete with a crayon palette and real-time drawing.\n\n[Example code][doodler-example]\n\n\u003Cbr>\n\n![divider][divider-light]\n![divider][divider-dark]\n\n\u003Cbr>\n\n![Image][speaker-diarization-image]\n\n\u003Cstrong>Speaker Diarization\u003C\u002Fstrong> — Real-time diarization that detects and labels speakers, the Who Likes What game shows an interactive use case.\n\n[Example code][speechmatics-diarization-example]\n\n\u003Cbr>\n\n![divider][divider-light]\n![divider][divider-dark]\n\n\u003Cbr>\n\n![Image][lip-sync-image]\n\n\n\u003Cstrong>Lip Sync Avatars\u003C\u002Fstrong> — 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.\n\nSee the [Example code][voice-assistant-live2d-example] for different Live2D characters.\n\n\u003Cbr>\n\n![divider][divider-light]\n![divider][divider-dark]\n\n\u003Cbr>\n\n![Image][sip-call-image]\n\n\u003Cstrong>SIP Call\u003C\u002Fstrong> — SIP extension that enables phone calls powered by TEN.\n\n[Example code][voice-assistant-sip-example]\n\n\u003Cbr>\n\n![divider][divider-light]\n![divider][divider-dark]\n\n\u003Cbr>\n\n![Image][transcription-image]\n\n\u003Cstrong>Transcription\u003C\u002Fstrong> — A transcription tool that transcribes audio to text.\n\n[Example code][transcription-example]\n\n\u003Cbr>\n\n![divider][divider-light]\n![divider][divider-dark]\n\n\u003Cbr>\n\n![Image][esp32-image]\n\n\u003Cstrong>ESP32-S3 Korvo V3\u003C\u002Fstrong> — Runs TEN agent example on the Espressif ESP32-S3 Korvo V3 development board to integrate LLM-powered communication with hardware.\n\nSee the [integration guide][esp32-guide] for more details.\n\n\u003Cbr>\n\u003Cdiv align=\"right\">\n\n[![][back-to-top]][readme-top]\n\n\u003C\u002Fdiv>\n\n## Quick Start with Agent Examples\n\n### Localhost\n\n#### Step ⓵ - Prerequisites\n\n| Category | Requirements |\n| --- | --- |\n| **Keys** | • Agora [App ID][agora-app-id] and [App Certificate][agora-app-certificate]\u003Cbr>• [OpenAI][openai-api] API key\u003Cbr>• [Deepgram][deepgram] ASR \u003Cbr>• [ElevenLabs][elevenlabs] TTS  |\n| **Installation** | • [Docker][docker] \u002F [Docker Compose][docker-compose]\u003Cbr>• [Node.js (LTS) v18][nodejs] |\n| **Minimum System Requirements** | • CPU >= 2 cores\u003Cbr>• RAM >= 4 GB |\n\n\u003Cbr>\n\n![divider][divider-light]\n![divider][divider-dark]\n\n\u003C!-- > [!NOTE]\n> **macOS: Docker setting on Apple Silicon**\n>\n> Uncheck \"Use Rosetta for x86\u002Famd64 emulation\" in Docker settings, it may result in slower build times on ARM, but performance will be normal when deployed to x64 servers. -->\n\n#### Step ⓶ - Build agent examples in VM\n\n##### 1. Clone the repo, `cd` into `ai_agents`, and create a `.env` file from `.env.example`\n\n```bash\ncd ai_agents\ncp .\u002F.env.example .\u002F.env\n```\n\n##### 2. Set up the Agora App ID and App Certificate in `.env`\n\n```bash\nAGORA_APP_ID=\nAGORA_APP_CERTIFICATE=\n\n# Deepgram (required for speech-to-text)\nDEEPGRAM_API_KEY=\n\n# OpenAI (required for language model)\nOPENAI_API_KEY=\n\n# ElevenLabs (required for text-to-speech)\nELEVENLABS_TTS_KEY=\n```\n\n##### 3. Start agent development containers\n\n```bash\ndocker compose up -d\n```\n\n##### 4. Enter the container\n\n```bash\ndocker exec -it ten_agent_dev bash\n```\n\n##### 5. Build the agent with the default example (~5-8 min)\n\nCheck the `agents\u002Fexamples` folder for additional samples.\nStart with one of these defaults:\n\n```bash\n# use the chained voice assistant\ncd agents\u002Fexamples\u002Fvoice-assistant\n\n# or use the speech-to-speech voice assistant in real time\ncd agents\u002Fexamples\u002Fvoice-assistant-realtime\n```\n\n##### 6. Start the web server\n\nRun `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.\n\n```bash\ntask install\ntask run\n```\n\n##### 7. Access the agent\n\nOnce the agent example is running, you can access the following interfaces:\n\n| **localhost:49483** | **localhost:3000** |\n| :-----------------: | :----------------: |\n| ![Screenshot 1][localhost-49483-image] | ![Screenshot 2][localhost-3000-image] |\n\n- TMAN Designer: [localhost:49483][localhost-49483]\n- Agent Examples UI: [localhost:3000][localhost-3000]\n\n\u003Cbr>\n\n![divider][divider-light]\n![divider][divider-dark]\n\n#### Step ⓷ - Customize your agent example\n\n1. Open [localhost:49483][localhost-49483].\n2. Right-click the STT, LLM, and TTS extensions.\n3. Open their properties and enter the corresponding API keys.\n4. Submit your changes, now you can see the updated Agent Example in [localhost:3000][localhost-3000].\n\n\u003Cbr>\n\n![divider][divider-light]\n![divider][divider-dark]\n\n\u003Cbr>\n\n#### Run a transcriber app from TEN Manager without Docker (Beta)\n\nTEN also provides a transcriber app that you can run from TEN Manager without using Docker.\n\nCheck the [quick start guide][quick-start-guide-ten-manager] for more details.\n\n\u003Cbr>\n\n![divider][divider-light]\n![divider][divider-dark]\n\n\u003Cbr>\n\n### Codespaces\n\nGitHub offers free Codespaces for each repository. You can run Agent Examples in Codespaces without using Docker. Codespaces typically start faster than local Docker environments.\n\n[![][codespaces-shield]][codespaces-new]\n\nCheck out [this guide][codespaces-guide] for more details.\n\n\u003Cdiv align=\"right\">\n\n[![][back-to-top]][readme-top]\n\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\n## Agent Examples Self-Hosting\n\n### Deploying with Docker\n\nOnce 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.\n\n##### Release as Docker image\n\n**Note**: The following commands need to be executed outside of any Docker container.\n\n###### Build image\n\n```bash\ncd ai_agents\ndocker build -f agents\u002Fexamples\u002F\u003Cexample-name>\u002FDockerfile -t example-app .\n```\n\n###### Run\n\n```bash\ndocker run --rm -it --env-file .env -p 3000:3000 example-app\n```\n\n\u003Cbr>\n\n![divider][divider-light]\n![divider][divider-dark]\n\n### Deploying with other cloud services\n\nYou can split the deployment into two pieces when you want to host TEN on providers such as [Vercel][vercel] or [Netlify][netlify].\n\n1. 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.\n\n2. Deploy only the frontend to Vercel or Netlify. Point the project root to `ai_agents\u002Fagents\u002Fexamples\u002F\u003Cexample>\u002Ffrontend`, run `pnpm install` (or `bun install`) followed by `pnpm build` (or `bun run build`), and keep the default `.next` output directory.\n\n3. 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).\n\n4. Ensure your backend accepts requests from the frontend origin — via open CORS or by using the built-in proxy middleware.\n\nWith this setup, the backend handles long-running worker processes, while the hosted frontend simply forwards API traffic to it.\n\n\u003Cdiv align=\"right\">\n\n[![][back-to-top]][readme-top]\n\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\n## Stay Tuned\n\nGet instant notifications for new releases and updates. Your support helps us grow and improve TEN!\n\n\u003Cbr>\n\n![Image][stay-tuned-image]\n\n\u003Cbr>\n\u003Cdiv align=\"right\">\n\n[![][back-to-top]][readme-top]\n\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\n## TEN Ecosystem\n\n\u003Cbr>\n\n| Project | Preview |\n| ------- | ------- |\n| [**️TEN Framework**][ten-framework-link]\u003Cbr>Open-source framework for conversational AI Agents.\u003Cbr>\u003Cbr>![][ten-framework-shield] | ![][ten-framework-banner] |\n| [**TEN VAD**][ten-vad-link]\u003Cbr>Low-latency, lightweight and high-performance streaming voice activity detector (VAD).\u003Cbr>\u003Cbr>![][ten-vad-shield] | ![][ten-vad-banner] |\n| [**️ TEN Turn Detection**][ten-turn-detection-link]\u003Cbr>TEN Turn Detection enables full-duplex dialogue communication.\u003Cbr>\u003Cbr>![][ten-turn-detection-shield] | ![][ten-turn-detection-banner] |\n| [**TEN Agent Examples**][ten-agent-example-link]\u003Cbr>Usecases powered by TEN.\u003Cbr>\u003Cbr> | ![][ten-agent-example-banner] |\n| [**TEN Portal**][ten-portal-link]\u003Cbr>The official site of the TEN Framework with documentation and a blog.\u003Cbr>\u003Cbr>![][ten-portal-shield] | ![][ten-portal-banner] |\n\n\u003Cbr>\n\u003Cdiv align=\"right\">\n\n[![][back-to-top]][readme-top]\n\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\n## Questions\n\nTEN 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.\n\n| Service | Link |\n| ------- | ---- |\n| DeepWiki | [![Ask DeepWiki][deepwiki-badge]][deepwiki] |\n| ReadmeX | [![ReadmeX][readmex-badge]][readmex] |\n\n\u003Cbr>\n\u003Cdiv align=\"right\">\n\n[![][back-to-top]][readme-top]\n\n\u003C\u002Fdiv>\n\n## Contributing\n\nWe welcome all forms of open-source collaboration! Whether you're fixing bugs, adding features, improving documentation, or sharing ideas, your contributions help advance personalized AI tools. Check out our GitHub Issues and Projects to find ways to contribute and show your skills. Together, we can build something amazing!\n\n\u003Cbr>\n\n> [!TIP]\n>\n> **Welcome all kinds of contributions** 🙏\n>\n> Join us in building TEN better! Every contribution makes a difference, from code to documentation. Share your TEN Agent projects on social media to inspire others!\n>\n> Connect with one of the TEN maintainers [@elliotchen200][elliotchen200-x] on 𝕏 or [@cyfyifanchen][cyfyifanchen-github] on GitHub for project updates, discussions, and collaboration opportunities.\n\n\u003Cbr>\n\n![divider][divider-light]\n![divider][divider-dark]\n\n### Code Contributors\n\n[![TEN][contributors-image]][contributors]\n\n### Contribution Guidelines\n\nContributions are welcome! Please read the [contribution guidelines][contribution-guidelines-doc] first.\n\n\u003Cbr>\n\n![divider][divider-light]\n![divider][divider-dark]\n\n### License\n\n1. The entire TEN framework (except for the folders explicitly listed below) is released pursuant the Apache License, Version 2.0, with additional restrictions. For details, please refer to the [LICENSE][license-file] file located in the root directory of the TEN framework.\n\n2. The components within the `packages` directory are released under the Apache License, Version 2.0. For details, please refer to the `LICENSE` file located in each package's root directory.\n\n3. The third-party libraries used by the TEN framework are listed and described in detail. For more information, please refer to the [third_party][third-party-folder] folder.\n\n\u003Cdiv align=\"right\">\n\n[![][back-to-top]][readme-top]\n\n\u003C\u002Fdiv>\n\n[back-to-top]: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-Back_to_top-gray?style=flat-square\n[readme-top]: #readme-top\n\n\u003C!-- Navigation -->\n[welcome-to-ten]: #welcome-to-ten\n[agent-examples-section]: #agent-examples\n[quick-start]: #quick-start-with-agent-examples\n[localhost-section]: #localhost\n[codespaces-section]: #codespaces\n[agent-examples-self-hosting]: #agent-examples-self-hosting\n[deploying-with-docker]: #deploying-with-docker\n[deploying-with-other-cloud-services]: #deploying-with-other-cloud-services\n[stay-tuned]: #stay-tuned\n[ten-ecosystem-anchor]: #ten-ecosystem\n[questions]: #questions\n[contributing]: #contributing\n[code-contributors]: #code-contributors\n[contribution-guidelines]: #contribution-guidelines\n[license-section]: #license\n\n\u003C!-- Header badges -->\n[ten-releases-badge]: https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Ften-framework\u002Ften-framework?color=369eff&labelColor=gray&logo=github&style=flat-square\n[ten-releases]: https:\u002F\u002Fgithub.com\u002FTEN-framework\u002Ften-framework\u002Freleases\n[coverage-badge]: https:\u002F\u002Fcoveralls.io\u002Frepos\u002Fgithub\u002FTEN-framework\u002Ften-framework\u002Fbadge.svg?branch=main\n[coverage]: https:\u002F\u002Fcoveralls.io\u002Fgithub\u002FTEN-framework\u002Ften-framework?branch=main\n[release-date-badge]: https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Frelease-date\u002Ften-framework\u002Ften-framework?labelColor=gray&style=flat-square\n[commits-badge]: https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcommit-activity\u002Fm\u002FTEN-framework\u002Ften-framework?labelColor=gray&color=pink\n[commit-activity]: https:\u002F\u002Fgithub.com\u002FTEN-framework\u002Ften-framework\u002Fgraphs\u002Fcommit-activity\n[issues-closed-badge]: https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues-search?query=repo%3ATEN-framework%2Ften-framework%20is%3Aclosed&label=issues%20closed&labelColor=gray&color=green\n[issues-closed]: https:\u002F\u002Fgithub.com\u002FTEN-framework\u002Ften-framework\u002Fissues\n[contributors-badge]: https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Ften-framework\u002Ften-framework?color=c4f042&labelColor=gray&style=flat-square\n[contributors]: https:\u002F\u002Fgithub.com\u002FTEN-framework\u002Ften-framework\u002Fgraphs\u002Fcontributors\n[license-badge]: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache_2.0_with_certain_conditions-blue.svg?labelColor=%20%23155EEF&color=%20%23528bff\n[license]: https:\u002F\u002Fgithub.com\u002FTEN-framework\u002Ften-framework\u002Fblob\u002Fmain\u002FLICENSE\n[deepwiki-badge]: https:\u002F\u002Fdeepwiki.com\u002Fbadge.svg\n[deepwiki]: https:\u002F\u002Fdeepwiki.com\u002FTEN-framework\u002FTEN-framework\n[readmex-badge]: https:\u002F\u002Fraw.githubusercontent.com\u002FCodePhiliaX\u002Fresource-trusteeship\u002Fmain\u002Freadmex.svg\n[readmex]: https:\u002F\u002Freadmex.com\u002FTEN-framework\u002Ften-framework\n[trendshift-badge]: https:\u002F\u002Ftrendshift.io\u002Fapi\u002Fbadge\u002Frepositories\u002F11978\n[trendshift]: https:\u002F\u002Ftrendshift.io\u002Frepositories\u002F11978\n\n\u003C!-- Localized READMEs -->\n[lang-en-badge]: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FEnglish-lightgrey\n[lang-en-readme]: https:\u002F\u002Fgithub.com\u002FTEN-framework\u002Ften-framework\u002Fblob\u002Fmain\u002FREADME.md\n[lang-zh-badge]: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F简体中文-lightgrey\n[lang-zh-readme]: https:\u002F\u002Fgithub.com\u002FTEN-framework\u002Ften-framework\u002Fblob\u002Fmain\u002Fdocs\u002FREADME-CN.md\n[lang-jp-badge]: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F日本語-lightgrey\n[lang-jp-readme]: https:\u002F\u002Fgithub.com\u002FTEN-framework\u002Ften-framework\u002Fblob\u002Fmain\u002Fdocs\u002FREADME-JP.md\n[lang-kr-badge]: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F한국어-lightgrey\n[lang-kr-readme]: https:\u002F\u002Fgithub.com\u002FTEN-framework\u002Ften-framework\u002Fblob\u002Fmain\u002Fdocs\u002FREADME-KR.md\n[lang-es-badge]: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FEspañol-lightgrey\n[lang-es-readme]: https:\u002F\u002Fgithub.com\u002FTEN-framework\u002Ften-framework\u002Fblob\u002Fmain\u002Fdocs\u002FREADME-ES.md\n[lang-fr-badge]: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFrançais-lightgrey\n[lang-fr-readme]: https:\u002F\u002Fgithub.com\u002FTEN-framework\u002Ften-framework\u002Fblob\u002Fmain\u002Fdocs\u002FREADME-FR.md\n[lang-it-badge]: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FItaliano-lightgrey\n[lang-it-readme]: https:\u002F\u002Fgithub.com\u002FTEN-framework\u002Ften-framework\u002Fblob\u002Fmain\u002Fdocs\u002FREADME-IT.md\n\n\u003C!-- Primary sites -->\n[official-site]: https:\u002F\u002Ftheten.ai\n[documentation]: https:\u002F\u002Ftheten.ai\u002Fdocs\n[blog]: https:\u002F\u002Ftheten.ai\u002Fblog\n\n\u003C!-- Welcome -->\n[ten-framework]: https:\u002F\u002Fgithub.com\u002Ften-framework\u002Ften-framework\n[agent-examples-repo]: https:\u002F\u002Fgithub.com\u002FTEN-framework\u002Ften-framework\u002Ftree\u002Fmain\u002Fai_agents\u002Fagents\u002Fexamples\n[ten-vad]: https:\u002F\u002Fgithub.com\u002Ften-framework\u002Ften-vad\n[ten-turn-detection]: https:\u002F\u002Fgithub.com\u002Ften-framework\u002Ften-turn-detection\n[ten-portal]: https:\u002F\u002Fgithub.com\u002Ften-framework\u002Fportal\n\n\u003C!-- Community -->\n[follow-on-x-badge]: https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Ffollow\u002FTenFramework?logo=X&color=%20%23f5f5f5\n[follow-on-x]: https:\u002F\u002Ftwitter.com\u002Fintent\u002Ffollow?screen_name=TenFramework\n[discord-badge]: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-Join%20TEN%20Community-5865F2?style=flat&logo=discord&logoColor=white\n[discord-invite]: https:\u002F\u002Fdiscord.gg\u002FVnPftUzAMJ\n[linkedin-badge]: https:\u002F\u002Fcustom-icon-badges.demolab.com\u002Fbadge\u002FLinkedIn-TEN_Framework-0A66C2?logo=linkedin-white&logoColor=fff\n[linkedin]: https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Ften-framework\n[hugging-face-badge]: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FHugging%20Face-TEN%20Framework-yellow?style=flat&logo=huggingface\n[hugging-face]: https:\u002F\u002Fhuggingface.co\u002FTEN-framework\n[wechat-badge]: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTEN_Framework-WeChat_Group-%2307C160?logo=wechat&labelColor=darkgreen&color=gray\n[wechat-discussion]: https:\u002F\u002Fgithub.com\u002FTEN-framework\u002Ften-agent\u002Fdiscussions\u002F170\n\n\u003C!-- Agent examples -->\n[voice-assistant-image]: https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fdce3db80-fb48-4e2a-8ac7-33f50bcffa32\n[websocket-example]: ai_agents\u002Fagents\u002Fexamples\u002Fwebsocket-example\n[memory-example]: ai_agents\u002Fagents\u002Fexamples\u002Fvoice-assistant-with-memU\n[voice-assistant-vad-example]: ai_agents\u002Fagents\u002Fexamples\u002Fvoice-assistant-with-ten-vad\n[voice-assistant-turn-detection-example]: ai_agents\u002Fagents\u002Fexamples\u002Fvoice-assistant-with-turn-detection\n[voice-assistant-example]: ai_agents\u002Fagents\u002Fexamples\u002Fvoice-assistant\n[divider-light]: https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Faec54c94-ced9-4683-ae58-0a5a7ed803bd#gh-light-mode-only\n[divider-dark]: https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fd57fad08-4f49-4a1c-bdfc-f659a5d86150#gh-dark-mode-only\n[lip-sync-image]: https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F51ab1504-b67c-49d4-8a7a-5582d9b254da\n[voice-assistant-live2d-example]: ai_agents\u002Fagents\u002Fexamples\u002Fvoice-assistant-live2d\n[speaker-diarization-image]: https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Ff94b21b8-9dda-4efc-9274-b028cc01296a\n[speechmatics-diarization-example]: ai_agents\u002Fagents\u002Fexamples\u002Fspeaker-diarization\n[sip-call-image]: https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F6ed5b04d-945a-4a30-a1cc-f8014b602b38\n[voice-assistant-sip-example]: ai_agents\u002Fagents\u002Fexamples\u002Fvoice-assistant-sip-twilio\n[transcription-image]: https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fd793bc6c-c8de-4996-bd85-9ce88c69dd8d\n[transcription-example]: ai_agents\u002Fagents\u002Fexamples\u002Ftranscription\n[doodler-image]: https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F80c4eabd-de96-4971-8956-6b365d4fbd64\n[doodler-example]: ai_agents\u002Fagents\u002Fexamples\u002Fdoodler\n[esp32-image]: https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F3d60f1ff-0f82-4fe7-b5c2-ac03d284f60c\n[esp32-guide]: ai_agents\u002Fesp32-client\n\n\u003C!-- Quick start -->\n[agora-app-id]: https:\u002F\u002Fdocs.agora.io\u002Fen\u002Fvideo-calling\u002Fget-started\u002Fmanage-agora-account?platform=web#create-an-agora-project\n[agora-app-certificate]: https:\u002F\u002Fdocs.agora.io\u002Fen\u002Fvideo-calling\u002Fget-started\u002Fmanage-agora-account?platform=web#create-an-agora-project\n[openai-api]: https:\u002F\u002Fopenai.com\u002Findex\u002Fopenai-api\u002F\n[deepgram]: https:\u002F\u002Fdeepgram.com\u002F\n[elevenlabs]: https:\u002F\u002Felevenlabs.io\u002F\n[docker]: https:\u002F\u002Fwww.docker.com\u002F\n[docker-compose]: https:\u002F\u002Fdocs.docker.com\u002Fcompose\u002F\n[nodejs]: https:\u002F\u002Fnodejs.org\u002Fen\n[quick-start-guide-ten-manager]: https:\u002F\u002Ftheten.ai\u002Fdocs\u002Ften_framework\u002Fgetting-started\u002Fquick-start\n[localhost-49483-image]: https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F191a7c0a-d8e6-48f9-866f-6a70c58f0118\n[localhost-3000-image]: https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F13e482b6-d907-4449-a779-9454bb24c0b1\n[localhost-49483]: http:\u002F\u002Flocalhost:49483\n[localhost-3000]: http:\u002F\u002Flocalhost:3000\n\n\u003C!-- Codespaces -->\n[codespaces-shield]: https:\u002F\u002Fgithub.com\u002Fcodespaces\u002Fbadge.svg\n[codespaces-new]: https:\u002F\u002Fcodespaces.new\u002Ften-framework\u002Ften-agent\n[codespaces-guide]: https:\u002F\u002Ftheten.ai\u002Fdocs\u002Ften_agent_examples\u002Fsetup_development_env\u002Fsetting_up_development_inside_codespace\n\n\u003C!-- Deployment -->\n[vercel]: https:\u002F\u002Fvercel.com\n[netlify]: https:\u002F\u002Fwww.netlify.com\n\n\u003C!-- Stay tuned -->\n[stay-tuned-image]: https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F72c6cc46-a2a2-484d-82a9-f3079269c815\n\n\u003C!-- TEN ecosystem -->\n[ten-framework-shield]: https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Ften-framework\u002Ften-framework?color=ffcb47&labelColor=gray&style=flat-square&logo=github\n[ten-framework-banner]: https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F799584b2-61ff-4255-bdd1-2548d0fdba52\n[ten-framework-link]: https:\u002F\u002Fgithub.com\u002Ften-framework\u002Ften-framework\n\n[ten-vad-link]: https:\u002F\u002Fgithub.com\u002Ften-framework\u002Ften-vad\n[ten-vad-shield]: https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Ften-framework\u002Ften-vad?color=ffcb47&labelColor=gray&style=flat-square&logo=github\n[ten-vad-banner]: https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fe504135e-67fd-4fa1-b0e4-d495358d8aa5\n\n[ten-turn-detection-link]: https:\u002F\u002Fgithub.com\u002Ften-framework\u002Ften-turn-detection\n[ten-turn-detection-shield]: https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Ften-framework\u002Ften-turn-detection?color=ffcb47&labelColor=gray&style=flat-square&logo=github\n[ten-turn-detection-banner]: https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fc72d82cc-3667-496c-8bd6-3d194a91c452\n\n[ten-agent-example-link]: https:\u002F\u002Fgithub.com\u002FTEN-framework\u002Ften-framework\u002Ftree\u002Fmain\u002Fai_agents\u002Fagents\u002Fexamples\n[ten-agent-example-banner]: https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F7f735633-c7f6-4432-b6b4-d2a2977ca588\n\n[ten-portal-link]: https:\u002F\u002Fgithub.com\u002Ften-framework\u002Fportal\n[ten-portal-shield]: https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Ften-framework\u002Fportal?color=ffcb47&labelColor=gray&style=flat-square&logo=github\n[ten-portal-banner]: https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Ff56c75b9-722c-4156-902d-ae98ce2b3b5e\n\n\u003C!-- Contributing -->\n[elliotchen200-x]: https:\u002F\u002Fx.com\u002Felliotchen200\n[cyfyifanchen-github]: https:\u002F\u002Fgithub.com\u002Fcyfyifanchen\n[contributors-image]: https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=TEN-framework\u002Ften-framework\n[contribution-guidelines-doc]: .\u002Fdocs\u002Fcode-of-conduct\u002Fcontributing.md\n[license-file]: .\u002FLICENSE\n[third-party-folder]: .\u002Fthird_party\u002F\n","TEN-framework是一个用于实时多模态对话AI代理的开源框架。它采用Python语言开发，具备低延迟、高质量的实时语音处理能力，并支持RTC和WebSocket连接方式。此外，该框架还提供了记忆扩展功能，使得构建能够理解上下文的智能助手成为可能。适用于需要开发具有语音交互功能的应用场景，如智能家居控制、客户服务机器人等。",2,"2026-06-11 03:39:38","high_star"]