本文档提供三种音频配置方案,解决双通道同声传译系统的音频路由问题。
| 方案 | 复杂度 | 额外软件 | 费用 | 音质 | 延迟 | 蓝牙支持 | 推荐指数 |
|---|---|---|---|---|---|---|---|
| 方案1:立体声混音 | ⭐ 最简单 | ❌ 不需要 | 免费 | ⭐⭐⭐⭐⭐ 最好 | <5ms | ❌ 不支持 | ⭐⭐⭐⭐⭐ |
| 方案2:双虚拟设备 | ⭐⭐ 中等 | ✅ 需要 | €15或免费试用 | ⭐⭐⭐⭐ 好 | <50ms | ✅ 支持 | ⭐⭐⭐⭐ |
| 方案3:VoiceMeeter | ⭐⭐⭐⭐ 复杂 | ✅ 需要 | 免费 | ⭐⭐⭐ 中等 | <100ms | ✅ 支持 | ⭐⭐⭐ |
使用有线耳机?
│
├─ YES → 方案1(立体声混音)⭐⭐⭐⭐⭐ 强烈推荐!
│ 最简单、最稳定、音质最好
│
└─ NO(必须用蓝牙)
│
├─ 愿意付费 €15?
│ │
│ ├─ YES → 方案2(VB-CABLE A+B)⭐⭐⭐⭐
│ │
│ └─ NO → 方案2(VB-CABLE + VB-CABLE Point 免费试用)⭐⭐⭐⭐
│
└─ 需要专业音频控制?
│
├─ YES → 方案3(VoiceMeeter)⭐⭐⭐
│
└─ NO → 方案2 推荐 ⭐⭐⭐⭐
- ✅ 使用有线耳机或有线音箱
- ✅ 电脑有 Realtek 声卡(或支持立体声混音的声卡)
- ✅ 追求最佳音质和最低延迟
- ✅ 希望配置最简单
利用 Windows 内置的"立体声混音"功能捕获系统音频,无需额外软件。
【Channel 1: 你说话 → 对方听英文】
物理麦克风
↓
main_v2.py Channel 1 读取
↓
火山引擎翻译(中文→英文)
↓
CABLE Input (VB-CABLE)
↓
CABLE Output
↓
Zoom 麦克风
↓
对方听到英文 ✅
【Channel 2: 对方说话 → 你看中文字幕】
对方说英文
↓
Zoom 接收
↓
Zoom 扬声器输出到 Realtek 声卡
↓
├─→ 物理耳机(你听到英文)✅
│
└─→ 立体声混音(Realtek 内部捕获)
↓
main_v2.py Channel 2 读取
↓
火山引擎翻译(英文→中文)
↓
字幕窗口显示中文 ✅
1. 右键任务栏"音量"图标 → 点击"声音"
2. 切换到"录制"标签
3. 在空白处右键 → 勾选"显示已禁用的设备"
4. 找到"立体声混音"或"立体声混音 Realtek(R) Audio"
(如果看不到,说明声卡不支持,需要用方案2)
5. 右键"立体声混音" → 点击"启用"
6. (可选)右键"立体声混音" → "设为默认设备"
7. 点击"应用"
播放设备(默认):
1. 右键"音量"图标 → "声音"
2. "播放"标签 → 找到你的物理耳机/音箱:
- "Realtek HD Audio output"
- "Speakers (Realtek HD Audio output)"
- 或你的耳机名称
3. 右键该设备 → "设为默认设备"
4. 右键该设备 → "设为默认通信设备"
5. 点击"应用"
录制设备(默认):
1. 切换到"录制"标签
2. 找到"CABLE Output (VB-Audio Virtual Cable)"
3. 右键 → "设为默认设备"
4. 右键 → "设为默认通信设备"
5. 点击"应用"→"确定"
1. 打开 Zoom → 设置 → 音频
2. 麦克风:选择 "CABLE Output (VB-Audio Virtual Cable)"
3. 扬声器:选择 "Realtek HD Audio output"(或你的物理耳机)
4. 其他设置:
✅ 勾选"自动调整麦克风音量"
❌ 取消"回声消除"(使用耳机不需要)
❌ 取消"背景噪音抑制"(可能影响翻译音质)
5. 点击"确定"
1. 播放一段音乐或 YouTube 视频
2. 右键"音量"图标 → "声音" → "录制"标签
3. 观察"立体声混音 Realtek(R) Audio"
4. 应该看到绿色音量条随音乐波动 ✅
如果没有波动:
- 检查立体声混音是否已启用
- 检查播放设备是否是 Realtek 声卡
- 尝试提高音乐音量
- 如果还是不行,说明立体声混音不可用,需改用方案2
配置文件已正确设置:
audio:
# 麦克风配置(用户说话)
microphone:
device: "麦克风" # 你的物理麦克风设备
# 系统音频配置(对方说话)
system_audio:
device: "立体声混音" # Windows 立体声混音
fallback_device: "Microsoft 声音映射器 - Input"
# VB-CABLE输出配置(给Zoom的英文音频)
vbcable_output:
device: "CABLE Input" # VB-CABLEcd F:\python\simultaneous_interpretation\realtime_translator
python main_v2.py预期日志:
✅ 麦克风捕获器已初始化
✅ 系统音频捕获器已初始化 (设备: 立体声混音)
✅ 音频播放器已初始化 (设备: CABLE Input)
✅ 字幕窗口已初始化
✅ Channel 1 翻译器: 中文 → 英文 (s2s)
✅ Channel 2 翻译器: 英文 → 中文 (s2t)
🔊 开始翻译...
| 设置项 | 正确配置 | 检查状态 |
|---|---|---|
| Windows 播放设备(默认) | Realtek HD Audio output | ⬜ |
| Windows 录制设备(默认) | CABLE Output | ⬜ |
| 立体声混音 | 已启用 | ⬜ |
| 立体声混音有波动 | 播放音乐时有绿色波动 | ⬜ |
| Zoom 麦克风 | CABLE Output | ⬜ |
| Zoom 扬声器 | Realtek HD Audio output | ⬜ |
| config_v2.yaml | device: "立体声混音" | ✅ |
1. 启动 main_v2.py
2. 对着物理麦克风说中文:"你好,测试"
3. 观察程序日志:
[Channel 1] 捕获到音频块
[Channel 1] 翻译结果: Hello, test
4. Zoom 应该把英文发送给对方
1. 播放英文视频/音乐,或让对方说英文
2. 你的耳机应该能听到英文 ✅
3. 观察程序日志:
[Channel 2] 捕获到系统音频块
[Channel 2] 翻译结果: [中文字幕]
4. 字幕窗口应该显示中文 ✅
✅ 配置最简单:只需5个步骤,3分钟完成 ✅ 不需要额外软件:Windows 内置功能 ✅ 音质最好:直接从声卡硬件捕获,无损音质 ✅ 延迟最低:<5ms 硬件级延迟 ✅ 最稳定:没有额外软件层,减少故障点 ✅ 完全免费:无需购买额外软件
❌ 不支持蓝牙:立体声混音只能捕获同一声卡的输出,无法捕获蓝牙音频 ❌ 需要 Realtek 声卡:部分电脑可能不支持立体声混音功能
可能原因:
- 声卡驱动未安装或过时
- 声卡不支持立体声混音功能
解决方法:
- 更新 Realtek 声卡驱动
- 如果还是找不到,说明硬件不支持,改用方案2
可能原因:
- 播放设备不是 Realtek 声卡
- 立体声混音音量被静音
- 音频输出到其他设备(如蓝牙)
解决方法:
- 确认 Windows 播放设备是 Realtek 声卡
- 右键"立体声混音"→"属性"→"级别"→检查音量
- 关闭蓝牙,使用有线耳机
可能原因:
- 设备名称不匹配
- 设备未启用
解决方法:
# 运行以下命令查看所有音频设备名称
cd F:\python\simultaneous_interpretation\realtime_translator
python -c "import sounddevice as sd; print(sd.query_devices())"
# 找到立体声混音的确切名称,更新到 config_v2.yaml- ✅ 需要使用蓝牙耳机/音箱
- ✅ 立体声混音不可用或不稳定
- ✅ 可以接受轻微音质损失和延迟
使用两个独立的虚拟音频设备,实现 Channel 1 和 Channel 2 的完全隔离。
CABLE-A: 用于 Channel 1(你的翻译音频)
CABLE-B: 用于 Channel 2(对方的音频)
- 费用:€15 一次性付费
- 下载:https://vb-audio.com/Cable/
- 内容:3个虚拟音频设备(CABLE, CABLE-A, CABLE-B)
- 优点:稳定、官方支持、终身使用
- 费用:免费试用(可捐赠)
- 下载:
- VB-CABLE:https://vb-audio.com/Cable/
- VB-CABLE Point:https://vb-audio.com/Cable/
- 内容:2个虚拟设备
- 优点:完全免费
- 注意:VB-CABLE Point 是免费试用版
1. 下载并安装 VB-CABLE A+B
或 VB-CABLE + VB-CABLE Point
2. 运行安装程序
3. 重启电脑(必须!)
4. 重启后验证设备:
右键"音量"→"声音"→"播放/录制"
应该看到:
- CABLE Input / CABLE Output
- CABLE-B Input / CABLE-B Output
或
- VB-CABLE Point Input / VB-CABLE Point Output
播放设备(默认):
设备:CABLE-B Input(或 VB-CABLE Point Input)
操作:右键"设为默认设备"+ "设为默认通信设备"
录制设备(默认):
设备:CABLE Output (VB-Audio Virtual Cable)
操作:右键"设为默认设备"+ "设为默认通信设备"
麦克风:CABLE Output (VB-Audio Virtual Cable)
扬声器:CABLE-B Input(或 VB-CABLE Point Input)
1. 右键"音量"→"声音"→"录制"标签
2. 找到"CABLE-B Output"(或"VB-CABLE Point Output")
3. 右键"属性"
4. 切换到"侦听"标签
5. ✅ 勾选"侦听此设备"
6. "通过此设备播放"→ 选择你的蓝牙音箱/耳机
7. 点击"应用"→"确定"
作用:让你能听到对方说话的声音
audio:
# 麦克风配置(用户说话)
microphone:
device: "麦克风" # 你的物理麦克风
# 系统音频配置(对方说话)
system_audio:
device: "CABLE-B Output" # 或 "VB-CABLE Point Output"
fallback_device: "CABLE Output"
# VB-CABLE输出配置(给Zoom的英文音频)
vbcable_output:
device: "CABLE Input" # 保持不变python main_v2.py【Channel 1: 你说话 → 对方听英文】
物理麦克风
↓
main_v2.py Channel 1
↓
CABLE Input (CABLE-A)
↓
CABLE Output
↓
Zoom 麦克风
↓
对方听到英文 ✅
【Channel 2: 对方说话 → 你看中文字幕】
对方说英文
↓
Zoom 接收
↓
Zoom 扬声器输出到 CABLE-B Input
↓
CABLE-B Output
├─→ Windows 监听 → 蓝牙音箱(你听到)✅
│
└─→ main_v2.py Channel 2
↓
字幕窗口显示中文 ✅
✅ 支持蓝牙:通过 Windows 监听功能 ✅ 完全隔离:两个独立虚拟设备,无回声风险 ✅ 灵活性高:不依赖物理声卡功能 ✅ 稳定可靠:比 VoiceMeeter 简单稳定
❌ 需要额外软件:付费 €15 或免费试用 ❌ 配置稍复杂:需要设置 Windows 监听 ❌ 轻微延迟:<50ms 软件处理延迟 ❌ 音质略差:经过虚拟设备处理
⚠️ 需要专业级音频控制⚠️ 有多个音频源需要混音⚠️ 愿意学习复杂的音频路由
- 配置复杂:需要理解混音器概念和多通道路由
- 学习曲线陡峭:需要配置 Hardware Input、Virtual Input、A1/A2/B1/B2 路由
- 容易出错:配置项太多,容易导致音频路由错误
- 资源占用:混音器持续运行占用 CPU/内存
- 过度设计:对于双通道翻译来说功能过剩
请参考之前提供的详细 VoiceMeeter 配置步骤,或选择更简单的方案1/方案2。
| 步骤 | 配置项 | 设置值 |
|---|---|---|
| 1 | 立体声混音 | 启用 |
| 2 | Windows 播放设备 | Realtek HD Audio output |
| 3 | Windows 录制设备 | CABLE Output |
| 4 | Zoom 麦克风 | CABLE Output |
| 5 | Zoom 扬声器 | Realtek HD Audio output |
| 6 | config_v2.yaml | device: "立体声混音" |
| 步骤 | 配置项 | 设置值 |
|---|---|---|
| 1 | 安装软件 | VB-CABLE A+B 或 Point |
| 2 | Windows 播放设备 | CABLE-B Input |
| 3 | Windows 录制设备 | CABLE Output |
| 4 | Zoom 麦克风 | CABLE Output |
| 5 | Zoom 扬声器 | CABLE-B Input |
| 6 | Windows 监听 | CABLE-B Output → 蓝牙音箱 |
| 7 | config_v2.yaml | device: "CABLE-B Output" |
解决方法:
# 1. 查看所有音频设备
cd F:\python\simultaneous_interpretation\realtime_translator
python -c "import sounddevice as sd; print(sd.query_devices())"
# 2. 找到对应设备的确切名称
# 3. 更新 config_v2.yaml 中的设备名称可能原因:
- 系统音频捕获设备配置错误
- 设备未启用或被静音
解决方法:
- 播放音乐测试系统音频捕获设备
- 检查 Windows 录制设备中对应设备是否有波动
- 检查 config_v2.yaml 中 system_audio.device 配置
可能原因:
- Channel 1 和 Channel 2 使用了相同设备
- 音频路由冲突
解决方法:
- 确认方案1:Zoom 扬声器 = Realtek(物理设备)
- 确认方案2:Zoom 扬声器 = CABLE-B Input(独立虚拟设备)
- 检查 Zoom 是否开启了"回声消除"(应该关闭)
可能原因:
- Channel 2 没有捕获到音频
- 火山引擎 API 配置错误
解决方法:
- 检查程序日志是否有 [Channel 2] 相关输出
- 验证火山引擎 API 密钥是否正确
- 测试播放英文视频,观察日志
如果遇到问题无法解决:
- 检查日志文件:
realtime_translator_v2.log - 运行测试脚本:
python test_phase2_components.py - 查看详细设备信息:
python -c "import sounddevice as sd; print(sd.query_devices())"
PHASE2_IMPLEMENTATION.md- Phase 2 实施文档PHASE2_PLANNING.md- Phase 2 技术规划README.md- 项目总体文档config_v2.yaml- Phase 2 配置文件
文档版本:v1.0 最后更新:2025-01-01 适用版本:Phase 2 v2.0