TEN Framework 快速入门指南
TEN Framework 快速入门指南
🎯 目标:5分钟内搭建开发环境并运行第一个 TEN 应用
系统要求
支持的操作系统:
- Linux (x64)
- Linux (arm64)
- macOS Intel (x64)
- macOS Apple Silicon (arm64)
- Windows (x64)
必需的软件环境:
- Python 3.10
- Go 1.20+
- Node.js / npm(用于安装和管理 JavaScript 依赖)
💡 Windows 用户注意:推荐使用 PowerShell 执行本指南中的命令。部分命令在 CMD 中可能不兼容。
第一步:检查环境
在开始之前,请确保你的系统已安装以下软件:
Python 3.10
python3 --version
# 应显示: Python 3.10.x💡 重要:TEN Framework 目前仅支持 Python 3.10。推荐使用
pyenv或venv创建 Python 虚拟环境:Linux / macOS:
# 使用 pyenv 安装和管理 Python 3.10(推荐) pyenv install 3.10.18 pyenv local 3.10.18 # 或使用 venv 创建虚拟环境 python3.10 -m venv ~/ten-venv source ~/ten-venv/bin/activateWindows:
从 https://www.python.org/downloads/release/python-31011/ 底部表格中下载 Windows installer,启动后安装 Python 3.10。
注意,点击Install Now前务必勾选 "Add Python to PATH"
# Windows平台需要配置python3命令: # 首先,确认python的安装路径: where.exe python # 输出示例: C:\Users\YourName\AppData\Local\Programs\Python\Python310\python.exe # 然后,以管理员身份打开 PowerShell,在python.exe同目录下创建symlink: New-Item -ItemType SymbolicLink -Path "C:\Users\YourName\AppData\Local\Programs\Python\Python310\python3.exe" -Target "C:\Users\YourName\AppData\Local\Programs\Python\Python310\python.exe" # 请将上面的路径替换为 where.exe python 的实际输出路径 # 验证: python3 --version# 推荐安装后使用 venv 创建虚拟环境,在该环境中工作 py -3.10 -m venv $env:USERPROFILE\ten-venv # 激活环境 & "$env:USERPROFILE\ten-venv\Scripts\Activate.ps1" # 若有权限错误,关闭终端/IDE,右键选择“以管理员身份运行”重新打开 # 或者改变执行策略来允许ps1脚本执行 Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
Go 1.20+
go version
# 应显示: go version go1.20 或更高版本
$env:CGO_ENABLED = "1"
# Windows下需要显式启用CGONode.js / npm
node --version
npm --version
# 确保 node 和 npm 命令可用GCC (MinGW)
💡仅在windows上需要安装
# 首先确定winget存在。
winget --version
# 若不存在则需要从 <https://apps.microsoft.com/detail/9nblggh4nns1?hl=en-US&gl=US> 安装。
#(系统需要满足:Windows10 高于 1709 (Build 16299),或者是Windows11)
#安装MinGW
winget install BrechtSanders.WinLibs.POSIX.MSVCRT
# 或查找后自行选择合适版本安装
winget search "mingw"
#检查安装
gcc --version💡 提示:如果缺少上述环境,请先安装对应版本后再继续。
第二步:安装 TEN Manager (tman)
TEN Manager (tman) 是 TEN Framework 的命令行工具,用于创建项目、管理依赖和运行应用。
方式一:通过包管理器安装(推荐)
Linux (Ubuntu/Debian):
sudo add-apt-repository ppa:ten-framework/ten-framework
sudo apt update
sudo apt install tmanmacOS:
brew install TEN-framework/ten-framework/tmanWindows:
winget install TEN-framework.tman方式二:通过安装脚本
Linux / macOS:
bash <(curl -fsSL https://raw.githubusercontent.com/TEN-framework/ten-framework/main/tools/tman/install_tman.sh)Windows:
irm https://raw.githubusercontent.com/TEN-framework/ten-framework/main/tools/tman/install_tman.ps1 | iex方式三:如果你已经克隆了仓库,使用仓库内的安装脚本
cd ten-framework
# Linux/MacOS
bash tools/tman/install_tman.sh
# Windows
& "C:\sw\ten-framework\tools\tman\install_tman.ps1"💡 提示:如果系统中已经安装了 tman,安装脚本会询问是否重新安装/升级,输入
y继续安装,输入n取消。非交互式安装(适用于自动化脚本或 CI 环境,Windows不可用):
# 远程安装 yes y | bash <(curl -fsSL https://raw.githubusercontent.com/TEN-framework/ten-framework/main/tools/tman/install_tman.sh) # 本地安装 yes y | bash tools/tman/install_tman.sh
验证安装:
tman --version💡 提示:如果出现类似
tman: command not found(Linux/macOS)
无法将"tman"项识别为 cmdlet、函数、脚本文件或可运行程序的名称(Windows)的提示,请确保 tman 所在目录在你的 PATH 中:
Linux / macOS:
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bashrc # Linux echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.zshrc # macOS source ~/.bashrc # 或 source ~/.zshrcWindows:
# 检查 PATH 中是否包含 tman $env:Path -split ";" | Select-String "tman" # 如果不包含,请 # 1. 通过 "系统属性 → 环境变量" 手动添加,然后重启终端以应用 # 2. 运行以下命令来临时添加路径 $env:PATH += ";$env:LOCALAPPDATA\tman"
第三步:创建并运行示例应用
创建应用
# 创建一个新的 transcriber_demo 应用
tman install app transcriber_demo
cd transcriber_demo配置环境变量
在运行应用前,需要配置 ASR(语音识别)服务的密钥。当前示例使用 Azure ASR extension,你需要在 transcriber_demo/.env 文件中填写相关配置:
Linux / macOS:
# 创建 .env 文件
cat > .env << EOF
# Azure Speech Service 配置
AZURE_STT_KEY=your_azure_speech_api_key
AZURE_STT_REGION=your_azure_region # 例如:eastus
AZURE_STT_LANGUAGE=en-US # 根据你的音频语种或实时录音语种设置,如:zh-CN, ja-JP, ko-KR 等
EOFWindows(PowerShell):
# 创建 .env 文件
@"
# Azure Speech Service 配置
AZURE_STT_KEY=your_azure_speech_api_key
AZURE_STT_REGION=your_azure_region
AZURE_STT_LANGUAGE=en-US
"@ | Out-File -Encoding utf8 .env💡 提示:Windows 用户也可以直接用文本编辑器创建
.env文件并填写上述配置。💡 提示:如果你想使用其他 ASR extension(如 OpenAI Whisper、Google Speech 等),可以从云商店下载并替换,同样将相应的 API key 等环境变量配置在
.env文件中。
运行应用
tman run start如果一切正常,你应该看到类似以下的输出:
[web_audio_control_go] Web server started on port 8001
[audio_file_player_python] AudioFilePlayerExtension on_start体验 Demo
打开浏览器访问:
http://localhost:8001你应该能看到 Transcriber Demo 的 Web 界面,可以尝试:
- 点击麦克风按钮进行实时语音转录
- 上传音频文件进行转录
- 查看实时转录以及字幕结果
恭喜!🎉
你已经成功运行了第一个 TEN 应用!
了解应用架构
这个 transcriber_demo 应用展示了 TEN Framework 的多语言扩展能力,它由以下组件构成:
- Go - WebSocket 服务器扩展 (
web_audio_control_go) - Python - ASR 语音识别扩展 (
azure_asr_python) - TypeScript - VTT 字幕生成和音频录制扩展 (
vtt_nodejs)
🎯 你已经可以运行这些多语言插件了!
下一步
现在你可以:
-
从云商店探索和下载更多插件,设计和编排你的应用
tman designer # 启动 TMAN Designer,在云商店中探索插件、下载插件并设计编排你的应用 -
选择一个语言,开发自己的插件
- 支持 Go、Python、TypeScript/JavaScript、C++ 等多种语言
- 查看 TEN 扩展开发完整指南 了解详情
进阶:开发和构建 C++ 插件
如果你想开发和使用 C++ 扩展,推荐安装 TEN 构建工具链(tgn)。以下是完整的步骤:
安装 tgn 构建工具
tgn 是 TEN Framework 的 C/C++ 构建系统,基于 Google 的 GN。
方式一:一键安装(推荐)
Linux / macOS:
curl -fsSL https://raw.githubusercontent.com/TEN-framework/ten-framework/main/tools/tgn/install_tgn.sh | bashWindows:
irm https://raw.githubusercontent.com/TEN-framework/ten-framework/main/tools/tgn/install_tgn.ps1 | iex方式二:从克隆的仓库安装
Linux / macOS:
# 如果你已经克隆了 TEN Framework 仓库
cd ten-framework
bash tools/tgn/install_tgn.shWindows:
# 如果你已经克隆了 TEN Framework 仓库
& ".\tools\tgn\install_tgn.ps1"安装完成后,确认 tgn 已添加到 PATH:
Linux / macOS:
# 临时添加到当前会话
export PATH="/usr/local/ten_gn:$PATH"
# 或永久添加到 shell 配置(推荐)
echo 'export PATH="/usr/local/ten_gn:$PATH"' >> ~/.bashrc # Linux
echo 'export PATH="/usr/local/ten_gn:$PATH"' >> ~/.zshrc # macOS
source ~/.bashrc # 或 source ~/.zshrcWindows:
# 安装脚本会自动添加到用户 PATH,如需手动添加:
$env:Path += ";$env:LOCALAPPDATA\ten_gn"验证安装:
tgn --help安装 C++ 扩展
以 WebRTC VAD(语音活动检测)扩展为例,从云商店安装 C++ 扩展:
cd transcriber_demo
tman install extension webrtc_vad_cpp💡 提示:
webrtc_vad_cpp是一个用 C++ 实现的语音活动检测扩展,可以在实时语音识别场景中筛选出语音部分。
编译 C++ 扩展
安装 C++ 扩展后,需要重新构建应用以编译 C++ 代码为动态库:
tman run build⏱️ 预计时间:首次编译 C++ 扩展可能需要 1-3 分钟,具体取决于你的机器性能。
运行带有 VAD 功能的应用
tman run start_with_vad如果一切正常,你应该看到:
[web_audio_control_go] Web server started on port 8001
[vad] WebRTC VAD initialized with mode 2
[audio_file_player_python] AudioFilePlayerExtension on_start现在打开浏览器访问 http://localhost:8001,进入麦克风实时转写页面,你会看到经过vad后的silence状态变化,当silence状态为true时,表示当前音频中没有语音。
C++ 开发环境要求
开发和编译 C++ 扩展需要安装 C++ 编译器(gcc 或 clang):
Linux:
# Ubuntu/Debian
sudo apt-get install gcc g++
# 或使用 clang
sudo apt-get install clangmacOS:
# 安装 Xcode Command Line Tools (包含 clang)
xcode-select --installWindows:
# 方式一:安装 Visual Studio Build Tools(推荐)
# 从 https://visualstudio.microsoft.com/visual-cpp-build-tools/ 下载安装
# 方式二:使用 winget 安装
winget install Microsoft.VisualStudio.2022.BuildTools --override "--add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --passive"
# 💡注意:
# - 安装时选择 "使用 C++ 的桌面开发" 工作负载
# - 且务必勾选“适用于Windows的C++ Clang工具”验证编译器安装:
# 检查 gcc(Linux/macOS/MSYS2)
gcc --version
g++ --version
# 或检查 clang(Linux/macOS)
clang --versionWindows(使用 MSVC):
# 在 "Developer PowerShell for VS" 中执行
clang-cl --version常见问题(C++ 扩展)
-
tgn 命令找不到
确保已经执行安装脚本并将 tgn 添加到 PATH:
export PATH="/usr/local/ten_gn:$PATH" -
编译失败:找不到编译器
请参考上面的"C++ 开发环境要求"部分安装编译器。
了解更多
- ten_gn 构建系统 - TEN 的 C/C++ 构建工具
- C++ 扩展开发指南 - 完整的 C++ 扩展开发文档
常见问题
macOS 上 Python 库加载失败
问题:运行应用时提示找不到 libpython3.10.dylib
解决方案:
export DYLD_LIBRARY_PATH=/usr/local/opt/python@3.10/Frameworks/Python.framework/Versions/3.10/lib:$DYLD_LIBRARY_PATH建议将这行添加到 ~/.zshrc 或 ~/.bash_profile 中。
端口 8001 已被占用
问题:启动时提示端口冲突
解决方案:
- 查找占用端口的进程:
- Linux/macOS:
lsof -i :8001 - Windows:
netstat -ano | findstr :8001
- Linux/macOS:
- 杀掉该进程:
- Linux/macOS:
kill -9 <PID> - Windows:
taskkill /PID <PID> /F
- Linux/macOS:
- 或修改应用配置文件(
transcriber_demo/ten_packages/extension/web_audio_control_go/property.json)中的端口号
Go build 失败
问题:构建时提示 Go module 相关错误
解决方案:
# 设置代理
# Linux/macOS
export GOPROXY=https://goproxy.cn,direct
# Windows PowerShell
$env:GOPROXY = "https://goproxy.cn,direct"
# 清理 Go module 缓存
go clean -modcache
# 重新安装依赖
cd transcriber_demo
tman run buildPython 依赖安装失败
问题:pip 安装超时或失败
解决方案:使用国内镜像源
pip3 install --index-url https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt获取帮助
- GitHub Issues:https://github.com/TEN-framework/ten-framework/issues
- 文档:https://theten.ai/cn/docs
- 贡献指南:contributing.md
最后更新