如何使用 GigaAM 实现比 Whisper 更精准的俄语语音识别
任何尝试将 Whisper 应用于真实呼叫中心录音或俄语语音消息的人都知道这个痛点。该模型经常产生幻觉、丢失词尾,或开始将俄语翻译成破碎的英语。长期以来,这似乎只能忍受,直到 SberDevices 团队推出了一个名为 GigaAM 的开源项目。
salute-developers/GigaAM 仓库包含基于 Conformer 架构的声学模型系列。主要针对俄语和独联体语言,但最新版本已支持 70 多种语言。模型采用宽松的 MIT 许可证,非常适合商业产品,无法律风险。
这个模型系列能做什么
项目涵盖多个核心音频处理任务。在仓库中你会找到针对不同场景的解决方案:
- 使用 CTC 和 RNN-T 解码器的经典 ASR。第三版(v3)模型在 700,000 小时的音频上训练。在复杂领域有明显质量提升:噪音、背景音乐、言语不流畅以及技术支持通话录音。
- 端到端转录 e2e。第
v3_e2e_ctc和v3_e2e_rnnt版本自动添加标点符号并进行文本规范化,将数字和缩写转换为可读形式。在盲测中(与 LLM 作为评判的并排比较),该组合以 70:30 的比分击败了 Whisper-large-v3。 - 情感识别。第
GigaAM-Emo版模型用于判断语句的情感基调,在 Macro F1 指标上比流行基线高出约 15%。 - 词级时间戳和长音频。你可以获得每个词的精确时间戳,或连接 pyannote 分割模块处理长达一小时的录音。
- 多语言支持。第
multilingual分支提供 220M 和 600M 参数的编码器,在 200 万小时数据上预训练,对哈萨克语、吉尔吉斯语和乌兹别克语表现出色质量。
快速入门和工作示例
入门需要 Python 3.10+ 和 ffmpeg。
安装基础包:
git clone https://github.com/salute-developers/GigaAM.git
cd GigaAM
pip install -e .[torch]
基本流程非常简单。以下示例首先转录音频文件,获取词级时间戳,然后检查说话者的情感:
import gigaam
# Скачиваем тестовый файл через встроенную утилиту
audio_path = gigaam.utils.download_short_audio()
# 1. Распознавание речи с пунктуацией
asr_model = gigaam.load_model("v3_e2e_rnnt")
text = asr_model.transcribe(audio_path)
print("Текст:", text)
# 2. Получение таймстемпов для каждого слова
timed_result = asr_model.transcribe(audio_path, word_timestamps=True)
for word in timed_result.words:
print(f"[{word.start:.2f} - {word.end:.2f}] {word.text}")
# 3. Определение эмоций
emo_model = gigaam.load_model("emo")
emotions = emo_model.get_probs(audio_path)
for emotion, prob in emotions.items():
print(f"{emotion}: {prob:.3f}")
文档中明确指出一个重要细节:基础 .transcribe 方法设计用于最长 25 秒的片段。如果需要处理长会议录音或播客,需要安装额外依赖项 pip install -e ".[longform]" 并配置 Hugging Face token 以下载分割器 pyannote/segmentation-3.0:
import os
import gigaam
os.environ["HF_TOKEN"] = "ваш_токен_huggingface"
long_audio = gigaam.utils.download_long_audio()
model = gigaam.load_model("v3_e2e_rnnt")
segments = model.transcribe_longform(long_audio)
for seg in segments:
print(f"[{gigaam.format_time(seg.start)} - {gigaam.format_time(seg.end)}]: {seg.text}")
如何部署到生产环境
开发者已考虑生产环境部署。模型不与纯 PyTorch 紧耦合:
- ONNX 导出。任何模型都可以通过
model.to_onnx()方法用几行代码转换。FP16 支持通过 onnxruntime-gpu 进行 GPU 推理。 - 与 Triton Inference Server 和 TensorRT 集成。
triton_scripts文件夹包含用于构建高吞吐量微服务的现成配置。 - 微调。仓库包含基于 PyTorch Lightning 的现成脚本,如果你有自己的标注数据集,CTC 和 RNN-T 适配器可以针对公司的特定词汇或术语进行定制。
导出到 ONNX 的示例:
import gigaam
import torch
model = gigaam.load_model("v3_ctc")
model.to_onnx(dir_path="onnx_models", dtype=torch.float16)
哪些人现在会觉得这个项目有用
如果你正在构建语音机器人、通话转录系统、客服语音分析或俄语内容字幕生成器,再看 Whisper 就没有什么实际意义了。GigaAM 运行更快,参数规模适中(220-600 百万),需要更少的显存,并且处理复杂的俄语语音明显更好。
最简单的入门方式是使用交互式 Google Colab 笔记本,链接就在官方仓库的顶部。
相关项目