返回首页

Whisper C# 会议语音识别

C# 程序捕获系统音频流,使用 Whisper 进行 STT 并通过 Azure/OpenAI 翻译。最优 Small 模型、短语 VAD 设置。可扩展模块化架构。

C# 工具:Whisper STT + 实时翻译
Advertisement 728x90

用C#实现实时语音识别与翻译:Whisper技术实战

该应用可从Teams等平台捕获音频流,根据语音幅度和静音段自动分句,再利用Whisper将俄语、英语或法语语音转为文字,并进行实时翻译。整个C#实现中约20%为自定义代码,其余均通过集成完成。当仅选择单一语言时,支持听写模式——仅进行语音转文字,可选保存音频。

设置项支持校准:

  • 语音检测的音量阈值。
  • 句子间的静音时长。

底部右角显示的统计信息包含当前音频电平和检测标志,便于精细调优。音频捕获仅支持系统混音(耳机/扬声器输出),不支持麦克风直连输入。

Google AdInline article slot

Whisper模型选择与性能表现

测试了多种本地语音识别方案:

  • Sherpa (ONNX):流式法语版本与架构不兼容。
  • Foundry Local (微软):原始文件传输方式,基于Whisper框架。

最终选定Whisper:

| 模型 | 速度 | 逻辑处理 | 备注 |

Google AdInline article slot

|-------|-------|----------|------|

| 基础版 | 快 | 无 | 简单,无上下文 |

| 小型版 | 中等 | 有 | 最佳平衡,温度设为0.1–0.2 |

Google AdInline article slot

| 中型版 | 慢 | 良好 | 实时会议中分块队列易堆积 |

未使用NPU/GPU时,内存占用上升,但高质量会议音频下结果仍可接受。

集成翻译服务

提供两种选项:

  • OpenAI:在设置中配置API密钥、模型及请求地址。
  • Azure翻译服务:免费套餐每月提供200万字符;需注册账户。

ITranslationService 接口设计简洁,便于扩展新服务商(如Yandex API,需付费)。目前本地翻译器无法达到基准质量标准。

Azure示例配置:

public class AzureTranslationService : ITranslationService
{
    private readonly string _key;
    // ...
}

实际应用场景与局限性

本工具适用于实时多语言会议场景,无需录音。已实测支持法语、英语和俄语。并非通用录音设备——仅捕获系统音频输出。

适合中高级开发者:模块化架构聚焦流式数据块处理,可通过替换STT/翻译引擎或添加新VAD算法轻松扩展。

核心亮点:

  • 基于类似VAD参数的系统音频捕获与分句。
  • Whisper小型版最适合实时使用:温度0.1–0.2,无需GPU。
  • 简洁翻译接口;Azure每月提供200万字符免费额度。
  • 支持仅语音识别模式,无需翻译。
  • 实时统计数据辅助优化语音检测精度。

— Editorial Team

Advertisement 728x90

继续阅读