🚀 M-CTC-T
M-CTC-T 是 Meta AI 推出的大规模多语言语音识别器。该模型是一个具有 10 亿参数的 Transformer 编码器,配备了一个针对 8065 个字符标签的 CTC 头部,以及一个针对 60 种语言 ID 标签的语言识别头部。它能有效解决多语言语音识别难题,为全球不同语言的语音处理提供了强大工具。
🚀 快速开始
M-CTC-T 是 Meta AI 研发的大规模多语言语音识别器。此模型为 10 亿参数的 Transformer 编码器,带有针对 8065 个字符标签的 CTC 头部和针对 60 种语言 ID 标签的语言识别头部。它在 Common Voice(版本 6.1,2020 年 12 月发布)和 VoxPopuli 上进行训练,之后仅在 Common Voice 上继续训练。标签为未归一化的字符级转录(未去除标点和大小写)。模型的输入为 16Khz 音频信号的梅尔滤波器组特征。

原始的 Flashlight 代码、模型检查点和 Colab 笔记本可在 此处 找到。
✨ 主要特性
- 多语言支持:能够识别多种语言,适用于不同语言环境的语音识别任务。
- 大规模参数:拥有 10 亿参数的 Transformer 编码器,提供强大的识别能力。
- 双头部设计:CTC 头部和语言识别头部结合,提高识别准确性和语言判断能力。
💻 使用示例
基础用法
import torch
import torchaudio
from datasets import load_dataset
from transformers import MCTCTForCTC, MCTCTProcessor
model = MCTCTForCTC.from_pretrained("speechbrain/mctct-large")
processor = MCTCTProcessor.from_pretrained("speechbrain/mctct-large")
ds = load_dataset("patrickvonplaten/librispeech_asr_dummy", "clean", split="validation")
input_features = processor(ds[0]["audio"]["array"], return_tensors="pt").input_features
logits = model(input_features).logits
predicted_ids = torch.argmax(logits, dim=-1)
transcription = processor.batch_decode(predicted_ids)
结果展示
Common Voice 的结果,按所有语言平均:
字符错误率 (CER):
📚 详细文档
引用信息
论文
作者: Loren Lugosch, Tatiana Likhomanenko, Gabriel Synnaeve, Ronan Collobert
@article{lugosch2021pseudo,
title={Pseudo-Labeling for Massively Multilingual Speech Recognition},
author={Lugosch, Loren and Likhomanenko, Tatiana and Synnaeve, Gabriel and Collobert, Ronan},
journal={ICASSP},
year={2022}
}
特别感谢 Chan Woo Kim 和 Patrick von Platen 将模型从 Flashlight 移植到 PyTorch。
训练方法
待办事项:用论文中的训练图替换
有关模型训练的更多信息,请查看 官方论文。
📄 许可证
本项目采用 Apache-2.0 许可证。