模型:
TalTechNLP/voxlingua107-epaca-tdnn
这是一个在VoxLingua107数据集上使用SpeechBrain训练的口语识别模型。该模型使用了之前用于说话人识别的ECAPA-TDNN架构。
该模型可以根据所说语言对语音进行分类。它涵盖了107种不同的语言(阿布哈兹语,南非荷兰语,阿姆哈拉语,阿拉伯语,阿萨姆语,阿塞拜疆语,巴什基尔语,白俄罗斯语,保加利亚语,孟加拉语,藏语,布列塔尼语,波斯尼亚语,加泰罗尼亚语,宿务语,捷克语,威尔士语,丹麦语,德语,希腊语,英语,世界语,西班牙语,爱沙尼亚语,巴斯克语,波斯语,芬兰语,法罗语,法语,加利西亚语,瓜拉尼语,古吉拉特语,马恩岛语,豪萨语,夏威夷语,印地语,克罗地亚语,海地语,匈牙利语,亚美尼亚语,国际语,印尼语,冰岛语,意大利语,希伯来语,日语,爪哇语,格鲁吉亚语,哈萨克语,柬埔寨中央语,卡纳达语,韩语,拉丁语,卢森堡语,林加拉语,老挝语,立陶宛语,拉脱维亚语,马达加斯加语,毛利语,马其顿语,马拉雅拉姆语,蒙古语,马拉地语,马来语,马耳他语,缅甸语,尼泊尔语,荷兰语,挪威纳恩诺斯克语,挪威语,奥克西唐语,旁遮普语,波兰语,普什图语,葡萄牙语,罗马尼亚语,俄语,梵语,苏格兰语,信德语,僧伽罗语,斯洛伐克语,斯洛文尼亚语,绍纳语,索马里语,阿尔巴尼亚语,塞尔维亚语,巽他语,瑞典语,斯瓦希里语,泰米尔语,泰卢固语,塔吉克语,泰语,土库曼语,他加禄语,土耳其语,鞑靼语,乌克兰语,乌尔都语,乌兹别克语,越南语,瓦拉伊语,意第绪语,约鲁巴语,普通话)。
该模型有两种用法:
该模型是在自动收集的YouTube数据上训练的。有关数据集的更多信息,请参阅 here 。
如何使用import torchaudio from speechbrain.pretrained import EncoderClassifier language_id = EncoderClassifier.from_hparams(source="TalTechNLP/voxlingua107-epaca-tdnn", savedir="tmp") # Download Thai language sample from Omniglot and cvert to suitable form signal = language_id.load_audio("https://omniglot.com/soundfiles/udhr/udhr_th.mp3") prediction = language_id.classify_batch(signal) print(prediction) (tensor([[0.3210, 0.3751, 0.3680, 0.3939, 0.4026, 0.3644, 0.3689, 0.3597, 0.3508, 0.3666, 0.3895, 0.3978, 0.3848, 0.3957, 0.3949, 0.3586, 0.4360, 0.3997, 0.4106, 0.3886, 0.4177, 0.3870, 0.3764, 0.3763, 0.3672, 0.4000, 0.4256, 0.4091, 0.3563, 0.3695, 0.3320, 0.3838, 0.3850, 0.3867, 0.3878, 0.3944, 0.3924, 0.4063, 0.3803, 0.3830, 0.2996, 0.4187, 0.3976, 0.3651, 0.3950, 0.3744, 0.4295, 0.3807, 0.3613, 0.4710, 0.3530, 0.4156, 0.3651, 0.3777, 0.3813, 0.6063, 0.3708, 0.3886, 0.3766, 0.4023, 0.3785, 0.3612, 0.4193, 0.3720, 0.4406, 0.3243, 0.3866, 0.3866, 0.4104, 0.4294, 0.4175, 0.3364, 0.3595, 0.3443, 0.3565, 0.3776, 0.3985, 0.3778, 0.2382, 0.4115, 0.4017, 0.4070, 0.3266, 0.3648, 0.3888, 0.3907, 0.3755, 0.3631, 0.4460, 0.3464, 0.3898, 0.3661, 0.3883, 0.3772, 0.9289, 0.3687, 0.4298, 0.4211, 0.3838, 0.3521, 0.3515, 0.3465, 0.4772, 0.4043, 0.3844, 0.3973, 0.4343]]), tensor([0.9289]), tensor([94]), ['th']) # The scores in the prediction[0] tensor can be interpreted as cosine scores between # the languages and the given utterance (i.e., the larger the better) # The identified language ISO code is given in prediction[3] print(prediction[3]) ['th'] # Alternatively, use the utterance embedding extractor: emb = language_id.encode_batch(signal) print(emb.shape) torch.Size([1, 1, 256]),限制和偏见
由于模型经过VoxLingua107的训练,因此它具有许多限制和偏见,其中一些包括:
该模型是在 VoxLingua107 上进行训练的。
VoxLingua107是用于训练口语识别模型的语音数据集。该数据集包含从YouTube视频中自动提取的短语音片段,并根据视频标题和描述的语言进行标记,并进行一些后处理步骤以过滤出误报。
VoxLingua107包含107种语言的数据。训练集中的语音总量为6628小时。每种语言的平均数据量为62小时。然而,每种语言的实际数据量差异很大。还有一个单独的开发集,其中包含来自33种语言的1609个语音片段,由至少两位志愿者验证确实包含所给定的语言。
我们使用 SpeechBrain 对模型进行训练。训练配方即将发布。
开发数据集上的错误率为7%。
@inproceedings{valk2021slt, title={{VoxLingua107}: a Dataset for Spoken Language Recognition}, author={J{\"o}rgen Valk and Tanel Alum{\"a}e}, booktitle={Proc. IEEE SLT Workshop}, year={2021}, }