Lang Id Voxlingua107 Ecapa
基于SpeechBrain框架和ECAPA-TDNN架构的语音语言识别模型,支持107种语言的识别和语音嵌入向量提取。
下载量 330.01k
发布时间 : 3/2/2022
模型简介
该模型采用ECAPA-TDNN架构,在VoxLingua107数据集上训练,可用于语音语言识别或作为语音片段特征提取器。支持16kHz采样率的单声道音频输入。
模型特点
多语言支持
支持107种语言的识别,涵盖全球主要语言和部分小语种
双重用途
既可直接用于语言识别,也可作为特征提取器用于构建专用模型
高性能架构
采用ECAPA-TDNN架构,在VoxLingua107开发集上错误率仅为6.7%
自动音频处理
内置音频标准化功能,自动处理采样率和声道转换
模型能力
语音语言识别
语音特征提取
多语言处理
使用案例
语音处理
多语言语音分类
识别语音片段所属的语言类别
在VoxLingua107开发集上错误率6.7%
语音特征提取
提取语音片段的嵌入向量用于下游任务
256维特征向量
内容管理
多语言内容分类
对用户生成的多语言语音内容进行分类管理
🚀 VoxLingua107 ECAPA - TDNN 口语语言识别模型
这是一个基于 SpeechBrain 在 VoxLingua107 数据集 上训练的口语语言识别模型,能够根据语音识别出对应的语言,涵盖 107 种不同语言,为语言识别相关的下游任务提供了有力支持。
模型信息
属性 | 详情 |
---|---|
模型类型 | 口语语言识别模型 |
训练数据 | VoxLingua107 数据集 |
指标 | 准确率 |
支持语言
- multilingual、ab、af、am、ar、as、az、ba、be、bg、bi、bo、br、bs、ca、ceb、cs、cy、da、de、el、en、eo、es、et、eu、fa、fi、fo、fr、gl、gn、gu、gv、ha、haw、hi、hr、ht、hu、hy、ia、id、is、it、he、ja、jv、ka、kk、km、kn、ko、la、lm、ln、lo、lt、lv、mg、mi、mk、ml、mn、mr、ms、mt、my、ne、nl、nn、no、oc、pa、pl、ps、pt、ro、ru、sa、sco、sd、si、sk、sl、sn、so、sq、sr、su、sv、sw、ta、te、tg、th、tk、tl、tr、tt、uk、ud、uz、vi、war、yi、yo、zh
标签
- audio - classification、speechbrain、embeddings、Language、Identification、pytorch、ECAPA - TDNN、TDNN、VoxLingua107
许可证
apache - 2.0
🚀 快速开始
本模型可以根据语音识别出对应的语言,支持 107 种不同语言。模型训练使用的是采样率为 16kHz(单声道)的录音,调用 classify_file 时,代码会自动对音频进行归一化处理(即重采样 + 单声道选择)。
安装依赖
pip install git+https://github.com/speechbrain/speechbrain.git@develop
代码示例
import torchaudio
from speechbrain.inference.classifiers import EncoderClassifier
language_id = EncoderClassifier.from_hparams(source="speechbrain/lang-id-voxlingua107-ecapa", savedir="tmp")
# 从 Omniglot 下载泰语样本并转换为合适的格式
signal = language_id.load_audio("speechbrain/lang-id-voxlingua107-ecapa/udhr_th.wav")
prediction = language_id.classify_batch(signal)
print(prediction)
# (tensor([[-2.8646e+01, -3.0346e+01, -2.0748e+01, -2.9562e+01, -2.2187e+01,
# -3.2668e+01, -3.6677e+01, -3.3573e+01, -3.2545e+01, -2.4365e+01,
# -2.4688e+01, -3.1171e+01, -2.7743e+01, -2.9918e+01, -2.4770e+01,
# -3.2250e+01, -2.4727e+01, -2.6087e+01, -2.1870e+01, -3.2821e+01,
# -2.2128e+01, -2.2822e+01, -3.0888e+01, -3.3564e+01, -2.9906e+01,
# -2.2392e+01, -2.5573e+01, -2.6443e+01, -3.2429e+01, -3.2652e+01,
# -3.0030e+01, -2.4607e+01, -2.2967e+01, -2.4396e+01, -2.8578e+01,
# -2.5153e+01, -2.8475e+01, -2.6409e+01, -2.5230e+01, -2.7957e+01,
# -2.6298e+01, -2.3609e+01, -2.5863e+01, -2.8225e+01, -2.7225e+01,
# -3.0486e+01, -2.1185e+01, -2.7938e+01, -3.3155e+01, -1.9076e+01,
# -2.9181e+01, -2.2160e+01, -1.8352e+01, -2.5866e+01, -3.3636e+01,
# -4.2016e+00, -3.1581e+01, -3.1894e+01, -2.7834e+01, -2.5429e+01,
# -3.2235e+01, -3.2280e+01, -2.8786e+01, -2.3366e+01, -2.6047e+01,
# -2.2075e+01, -2.3770e+01, -2.2518e+01, -2.8101e+01, -2.5745e+01,
# -2.6441e+01, -2.9822e+01, -2.7109e+01, -3.0225e+01, -2.4566e+01,
# -2.9268e+01, -2.7651e+01, -3.4221e+01, -2.9026e+01, -2.6009e+01,
# -3.1968e+01, -3.1747e+01, -2.8156e+01, -2.9025e+01, -2.7756e+01,
# -2.8052e+01, -2.9341e+01, -2.8806e+01, -2.1636e+01, -2.3992e+01,
# -2.3794e+01, -3.3743e+01, -2.8332e+01, -2.7465e+01, -1.5085e-02,
# -2.9094e+01, -2.1444e+01, -2.9780e+01, -3.6046e+01, -3.7401e+01,
# -3.0888e+01, -3.3172e+01, -1.8931e+01, -2.2679e+01, -3.0225e+01,
# -2.4995e+01, -2.1028e+01]]), tensor([-0.0151]), tensor([94]), ['th'])
# prediction[0] 张量中的分数可以解释为给定话语属于给定语言的对数似然(即越大越好)
# 可以使用以下方法获取线性比例的似然:
print(prediction[1].exp())
# tensor([0.9850])
# 识别出的语言 ISO 代码在 prediction[3] 中给出
print(prediction[3])
# ['th: Thai']
# 或者,使用话语嵌入提取器:
emb = language_id.encode_batch(signal)
print(emb.shape)
# torch.Size([1, 1, 256])
若要在 GPU 上进行推理,在调用 from_hparams
方法时添加 run_opts={"device":"cuda"}
。
⚠️ 重要提示
确保输入张量符合预期的采样率,特别是在使用 encode_batch 和 classify_batch 时。在数据集和此模型的默认设置中(见
label_encoder.txt
),希伯来语使用的 ISO 语言代码已过时(应为he
而非iw
),爪哇语的 ISO 语言代码不正确(应为jv
而非jw
)。详见 issue #2396。
✨ 主要特性
- 语言识别能力:能够对 107 种不同语言的语音进行分类识别。
- 架构优化:采用 ECAPA - TDNN 架构,在嵌入层后使用更多全连接隐藏层,并使用交叉熵损失进行训练,提升了提取的话语嵌入在下游任务中的性能。
- 音频自动处理:代码会自动对音频进行归一化处理(重采样 + 单声道选择)。
📦 安装指南
pip install git+https://github.com/speechbrain/speechbrain.git@develop
💻 使用示例
基础用法
import torchaudio
from speechbrain.inference.classifiers import EncoderClassifier
language_id = EncoderClassifier.from_hparams(source="speechbrain/lang-id-voxlingua107-ecapa", savedir="tmp")
signal = language_id.load_audio("speechbrain/lang-id-voxlingua107-ecapa/udhr_th.wav")
prediction = language_id.classify_batch(signal)
print(prediction)
高级用法
# 在 GPU 上进行推理
language_id = EncoderClassifier.from_hparams(source="speechbrain/lang-id-voxlingua107-ecapa", savedir="tmp", run_opts={"device":"cuda"})
signal = language_id.load_audio("speechbrain/lang-id-voxlingua107-ecapa/udhr_th.wav")
prediction = language_id.classify_batch(signal)
print(prediction)
📚 详细文档
预期用途
- 直接使用:可直接用于口语语言识别。
- 特征提取:作为话语级特征(嵌入)提取器,用于在自己的数据上创建专用的语言识别模型。
局限性和偏差
- 小语种准确性:对小语种的识别准确性可能有限。
- 性别差异:由于 YouTube 数据中男性语音较多,对女性语音的识别效果可能不如男性。
- 口音影响:对于带有外国口音的语音识别效果不佳。
- 特殊语音:对儿童语音和有语言障碍者的语音识别效果可能不好。
🔧 技术细节
本模型基于 SpeechBrain 在 VoxLingua107 数据集 上进行训练。使用 ECAPA - TDNN 架构,该架构此前用于说话人识别,本模型在嵌入层后使用了更多全连接隐藏层,并采用交叉熵损失进行训练,提升了提取的话语嵌入在下游任务中的性能。训练使用的录音采样率为 16kHz(单声道)。
📄 许可证
本项目采用 apache - 2.0 许可证。
引用信息
引用 SpeechBrain
@misc{speechbrain,
title={{SpeechBrain}: A General-Purpose Speech Toolkit},
author={Mirco Ravanelli and Titouan Parcollet and Peter Plantinga and Aku Rouhe and Samuele Cornell and Loren Lugosch and Cem Subakan and Nauman Dawalatabad and Abdelwahab Heba and Jianyuan Zhong and Ju-Chieh Chou and Sung-Lin Yeh and Szu-Wei Fu and Chien-Feng Liao and Elena Rastorgueva and François Grondin and William Aris and Hwidong Na and Yan Gao and Renato De Mori and Yoshua Bengio},
year={2021},
eprint={2106.04624},
archivePrefix={arXiv},
primaryClass={eess.AS},
note={arXiv:2106.04624}
}
引用 VoxLingua107
@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},
}
关于 SpeechBrain
SpeechBrain 是一个开源的一体化语音工具包,设计简单、极其灵活且用户友好,在各个领域都能取得有竞争力或最先进的性能。
- 网站:https://speechbrain.github.io/
- GitHub:https://github.com/speechbrain/speechbrain
Mms Lid 126
基于Facebook大规模多语言语音项目微调的语言识别模型,支持126种语言的音频分类
音频分类
Transformers 支持多种语言

M
facebook
2.1M
26
Wav2vec2 Base Finetuned Speech Commands V0.02
Apache-2.0
该模型是基于facebook/wav2vec2-base在speech_commands数据集上微调的语音命令识别模型,准确率达97.59%。
音频分类
Transformers

W
0xb1
1.2M
0
Whisper Medium Fleurs Lang Id
Apache-2.0
基于OpenAI Whisper-medium微调的语音语种识别模型,在FLEURS数据集上达到88.05%准确率
音频分类
Transformers

W
sanchit-gandhi
590.30k
14
Wav2vec2 Large Robust 12 Ft Emotion Msp Dim
该模型通过对Wav2Vec2-Large-Robust进行微调训练,用于语音情感识别,输出唤醒度、支配度和效价三个维度的预测值。
音频分类
Transformers 英语

W
audeering
394.51k
109
Lang Id Voxlingua107 Ecapa
Apache-2.0
基于SpeechBrain框架和ECAPA-TDNN架构的语音语言识别模型,支持107种语言的识别和语音嵌入向量提取。
音频分类
PyTorch 支持多种语言
L
speechbrain
330.01k
112
Ast Finetuned Audioset 10 10 0.4593
Bsd-3-clause
音频频谱图变换器(AST)是基于AudioSet微调的模型,将音频转换为频谱图后应用视觉变换器进行音频分类。
音频分类
Transformers

A
MIT
308.88k
311
Whisper Small Ft Common Language Id
Apache-2.0
基于openai/whisper-small微调的通用语言识别模型,在评估集上准确率达88.6%
音频分类
Transformers

W
sanchit-gandhi
256.20k
2
Emotion Recognition Wav2vec2 IEMOCAP
Apache-2.0
使用微调的wav2vec2模型进行语音情感识别,在IEMOCAP数据集上训练
音频分类
PyTorch 英语
E
speechbrain
237.65k
131
Ast Finetuned Audioset 14 14 0.443
Bsd-3-clause
基于AudioSet数据集微调的音频频谱图变换器,将音频转换为频谱图后使用视觉变换器架构处理,在音频分类任务中表现优异。
音频分类
Transformers

A
MIT
194.20k
5
Wav2vec2 Large Xlsr 53 Gender Recognition Librispeech
Apache-2.0
基于Librispeech-clean-100数据集微调的性别识别模型,在测试集上F1分数达0.9993
音频分类
Transformers

W
alefiury
182.33k
42
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98