Voxlingua107-ECAPA-TDNN 项目介绍
项目描述
Voxlingua107-ECAPA-TDNN 是一个用于识别口语语言的模型。该模型基于VoxLingua107数据集,并利用SpeechBrain框架开发。模型采用了ECAPA-TDNN架构,这一架构曾经用于说话人识别。这个模型可以识别语音中所使用的语言,支持107种语言的分类,包括常见的英语、汉语、日语等,也涵盖了一些较少见的语言如阿布哈兹语、加泰罗尼亚语和塔吉克语等。
使用目的与限制
该模型有两个主要用途:
- 可以直接用作语言识别工具,识别音频语句中所使用的语言。
- 也可以提取发音级别特征(嵌入),用于在自己的数据上创建专用的语言识别模型。
值得注意的是,该模型是基于自动收集的YouTube数据进行训练的。因此,准确性可能受到数据收集过程中偏差的影响。一些可能的限制和偏见包括:对小语言的识别准确率可能较低;对女性语音识别的效果可能不如男性(因为YouTube数据中男性语音更多);在带有外国口音的语音识别中表现不佳;对于儿童语音和有语言障碍的人的语音识别效果可能也不理想。
使用说明
可以通过以下Python代码示例来使用该模型:
import torchaudio
from speechbrain.pretrained import EncoderClassifier
# 加载预训练的语言识别模型
language_id = EncoderClassifier.from_hparams(source="TalTechNLP/voxlingua107-epaca-tdnn", savedir="tmp")
# 下载并转换成合适格式的泰语音频样例
signal = language_id.load_audio("https://omniglot.com/soundfiles/udhr/udhr_th.mp3")
prediction = language_id.classify_batch(signal)
# 输出预测结果,其中包括预测语言的ISO代码
print(prediction[3]) # 输出:['th']
# 或者,可以使用发音嵌入提取器,以获取特征嵌入
emb = language_id.encode_batch(signal)
print(emb.shape) # 输出:torch.Size([1, 1, 256])
培训数据
模型的训练数据集是VoxLingua107。该数据集用于训练口语语言识别模型,由短语音片段组成,这些片段是从YouTube视频中自动提取的,并根据视频标题和描述进行语言标记。为了减少误标记,数据收集过程中进行了后期处理。VoxLingua107 数据集包含107种语言的6628小时语音数据。
训练方法
模型使用SpeechBrain框架进行训练。有关训练过程的详细配方将于近期公布。
评估结果
在开发数据集上的错误率为7%。这表明该模型在多数情况下能较为准确地识别所述语言。
引用信息
如果需要引用此研究,请参考以下BibTeX信息:
@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},
}