捕获系统音频,实时同声传译,所听即所译
功能特性 · 快速开始 · 使用场景 · 技术架构 · English
看日语直播听不懂?看英文会议跟不上?TransEcho 直接捕获 macOS 系统音频,实时翻译成你的语言,字幕 + 语音同传,零延迟体验。
| 场景 | 说明 |
|---|---|
| 看海外直播 | YouTube / Twitch / 日本直播,实时字幕翻译 |
| 远程会议 | Zoom / Teams / Google Meet 跨语言会议同传 |
| 学习外语 | 听外语播客/视频,对照原文和翻译 |
| 看番追剧 | 无字幕生肉也能看懂 |
# 克隆仓库
git clone https://github.com/wxkingstar/TransEcho.git
cd TransEcho
# 安装依赖
npm install
# 开发模式运行
npm run tauri dev
# 构建发布版
npm run tauri build
首次运行时会弹出设置面板,填入从火山引擎获取的 API Key 即可。
首次启动需要授予「屏幕录制」权限(系统设置 → 隐私与安全 → 屏幕录制)。
Frontend (Svelte 5 / SvelteKit) Backend (Rust / Tokio)
┌─────────────────────────┐ IPC ┌───────────────────────────┐
│ +page.svelte │◄────────►│ commands.rs │
│ 实时字幕显示 / 设置面板 │ Channel │ 会话编排 / 事件去重 │
└─────────────────────────┘ ├───────────────────────────┤
│ audio/ │
│ capture.rs ScreenCaptureKit│
│ resample.rs 48kHz→16kHz │
│ playback.rs TTS/Rodio │
├───────────────────────────┤
│ transport/ │
│ client.rs WebSocket │
│ codec.rs Protobuf │
└───────────────────────────┘
│ wss://
┌──────────────────────┐
│ 豆包同声传译 2.0 API │
└──────────────────────┘
数据流: 系统音频 (48kHz stereo f32) → 重采样 (16kHz mono i16) → WebSocket 发送 → 豆包 ASR → Protobuf 响应 → 字幕事件 → 前端展示 & TTS 播报
| 层 | 技术 |
|---|---|
| 桌面框架 | Tauri 2.x |
| 前端 | Svelte 5 + SvelteKit |
| 后端 | Rust + Tokio |
| 音频捕获 | ScreenCaptureKit |
| 音频重采样 | Rubato |
| TTS 播放 | Rodio |
| 通信协议 | WebSocket + Protobuf |
| 翻译引擎 | 豆包同声传译 2.0 |
TransEcho/
├── src/ # 前端 Svelte 代码
│ └── routes/+page.svelte # 单页应用 UI
├── src-tauri/
│ ├── src/
│ │ ├── commands.rs # Tauri IPC 命令
│ │ ├── audio/
│ │ │ ├── capture.rs # 系统音频捕获
│ │ │ ├── resample.rs # 音频重采样
│ │ │ └── playback.rs # TTS 播放
│ │ └── transport/
│ │ ├── client.rs # WebSocket 客户端
│ │ └── codec.rs # Protobuf 编解码
│ └── proto/ # Protobuf 定义文件
├── package.json
└── CLAUDE.md
首次打开时系统可能提示无法验证开发者。前往:系统设置 → 隐私与安全 → 向下滚动找到 TransEcho → 点击「仍要打开」。
确保已授予「屏幕录制」权限:系统设置 → 隐私与安全 → 屏幕录制 → 勾选 TransEcho。授权后需重启应用。
支持 macOS 14+ 和 Windows 10+。macOS 使用 ScreenCaptureKit 捕获系统音频,Windows 使用 WASAPI Loopback。Linux 暂不支持,欢迎 PR。
欢迎提交 Issue 和 Pull Request!
git checkout -b feature/amazing)git commit -m 'Add amazing feature')git push origin feature/amazing)MIT - 自由使用,欢迎传播。
Made with Rust + Svelte by wangxin