库名称:transformers
基础模型:jq/whisper-large-v3-salt-plus-xog-myx-kin-swa
标签:
- 训练生成
数据集:
- Sunbird/salt
语言:
- 卢干达语
- 英语
- 尼扬科勒语
- 阿乔利语
- 特索语
- 卢格巴拉语
模型索引:
- 名称:whisper-large-v3-salt-plus-xog-myx-kin-swa-continued
结果:[]
面向乌干达语言的Whisper大模型
本模型是基于whisper-large-v3适配的版本,针对乌干达广泛使用的以下语言:
卢干达语、阿乔利语、卢格巴拉语、特索语、尼扬科勒语、鲁托罗语、卢马萨巴语、斯瓦希里语、卢索加语、基尼亚卢旺达语及乌干达口音英语。
训练过程
模型训练使用了SALT数据集、Common Voice(卢干达语、斯瓦希里语、基尼亚卢旺达语)、Google FLEURS及Makerere Yogera数据集。为提升实际场景泛化能力,训练过程中添加了随机噪声,并随机降采样至8kHz以模拟电话语音。还加入了乌干达城市环境采样的街道噪音以增强鲁棒性。
使用方法
本模型使用方式与基础Whisper模型类似。模型将尝试自动检测语言并提供转写文本。但需注意,语言检测并非总是准确,指定语言参数可能改善结果。由于基础Whisper模型不支持本模型包含的语言,格式略有不同:
import transformers
import datasets
import torch
processor = transformers.WhisperProcessor.from_pretrained(
"Sunbird/asr-whisper-large-v3-salt")
model = transformers.WhisperForConditionalGeneration.from_pretrained(
"Sunbird/asr-whisper-large-v3-salt")
SALT_LANGUAGE_TOKENS_WHISPER = {
'eng': 50259,
'swa': 50318,
'ach': 50357,
'lgg': 50356,
'lug': 50355,
'nyn': 50354,
'teo': 50353,
'xog': 50352,
'ttj': 50351,
'kin': 50350,
'myx': 50349,
}
ds = datasets.load_dataset('Sunbird/salt', 'multispeaker-lug', split='test')
audio = ds[0]['audio']
sample_rate = ds[0]['sample_rate']
lang = 'lug'
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
input_features = processor(
audio, sampling_rate=sample_rate, return_tensors="pt").input_features
input_features = input_features.to(device)
predicted_ids = model.to(device).generate(
input_features,
language=processor.tokenizer.decode(SALT_LANGUAGE_TOKENS_WHISPER[lang]),
forced_decoder_ids=None)
transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)
print(transcription)
性能指标
基于SALT文本及Common Voice(swa, kin)和Yogera(ttj, xog)保留测试集评估:
- 英语词错误率:0.018
- 卢干达语词错误率:0.142
- 阿乔利语词错误率:0.195
- 卢格巴拉语词错误率:0.189
- 特索语词错误率:0.202
- 尼扬科勒语词错误率:0.234
- 卢马萨巴语词错误率:0.461
- 卢索加语词错误率:0.453
- 斯瓦希里语词错误率:0.069
- 基尼亚卢旺达语词错误率:0.111
- 平均词错误率:0.207
- 英语字错误率:0.009
- 卢干达语字错误率:0.029
- 阿乔利语字错误率:0.045
- 卢格巴拉语字错误率:0.045
- 特索语字错误率:0.051
- 尼扬科勒语字错误率:0.043
- 卢马萨巴语字错误率:0.092
- 卢索加语字错误率:0.081
- 斯瓦希里语字错误率:0.015
- 基尼亚卢旺达语字错误率:0.031
- 平均字错误率:0.044