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