目錄
OWSM v4 簡介 卡內基梅隆大學
這個代碼不知道干嘛的
tokenizer
CTC分割算法
yodas2數據集
依賴性安裝:
數據集下載地址;
模型下載地址:
docker安裝(適用于多數 Linux 系統)測試ok
推理demo
OWSM v4 簡介 卡內基梅隆大學
OWSM v4: 通過數據擴充和清洗改進開放Whisper風格語音模型"為我們帶來了一個好消息:學術團隊也能打造媲美商業巨頭的開源語音模型!
https://github.com/espnet/espnet
https://github.com/espnet/espnet_model_zoo
這個代碼不知道干嘛的
https://huggingface.co/datasets/JinchuanTian/owsm_v4
tokenizer
s2t.tokenizer.text2tokens("<na>")
CTC分割算法
?CTC 模型:使用純文本標簽 + 時間對齊算法
YODAS數據集
YODAS數據集是一個大規模的多語言語音數據集,涵蓋了100多種語言
yodas2數據集
https://huggingface.co/datasets/espnet/yodas2
原始的YODAS數據集尚未經過嚴格的清洗過程,可能包含各種注釋錯誤。常見問題包括語言標簽錯誤和音頻與文本的不匹配。因此,數據清洗對于確保準確性和可靠性至關重要。研究團隊設計的數據清洗流程包括三個步驟:重新分割、基于語言識別的過濾和基于CTC得分的過濾。
首先,在重新分割階段,研究人員面對的是YODAS提供的未分割的長格式錄音,每條錄音都附有帶有開始和結束時間戳的文本轉錄列表。但這些時間戳往往不準確。因此,第一步是使用CTC分割算法重新對齊音頻和文本。
依賴性安裝:
pip install -U espnet_model_zoo
數據集下載地址;
espnet/yodas2
數據列表
from datasets import get_dataset_config_namesconfigs = get_dataset_config_names("espnet/yodas2",trust_remote_code=True)
print(configs)
['aa000', 'ab000', 'af000', 'ak000', 'am000', 'ar000', 'as000', 'ay000', 'az000', 'ba000', 'be000', 'bg000', 'bh000', 'bi000', 'bm000', 'bn000', 'bo000', 'br000', 'bs000', 'ca000', 'co000', 'cr000', 'cs000', 'cy000', 'da000', 'de000', 'de100', 'de101', 'de102', 'dz000', 'ee000', 'el000', 'en000', 'en001', 'en002', 'en003', 'en004', 'en005', 'en006', 'en007', 'en100', 'en101', 'en102', 'en103', 'en104', 'en105', 'en106', 'en107', 'en108', 'en109', 'en110', 'en111', 'en112', 'en113', 'en114', 'en115', 'en116', 'en117', 'en118', 'en119', 'en120', 'en121', 'en122', 'en123', 'en124', 'en125', 'en126', 'en127', 'en128', 'en129', 'eo000', 'es000', 'es100', 'es101', 'es102', 'es103', 'es104', 'es105', 'es106', 'es107', 'es108', 'et000', 'eu000', 'fa000', 'ff000', 'fi000', 'fj000', 'fo000', 'fr000', 'fr100', 'fr101', 'fr102', 'fr103', 'fy000', 'ga000', 'gd000', 'gl000', 'gn000', 'gu000', 'ha000', 'hi000', 'hi100', 'ho000', 'hr000', 'ht000', 'hu000', 'hy000', 'ia000', 'id000', 'id100', 'id101', 'ie000', 'ig000', 'ik000', 'is000', 'it000', 'it100', 'it101', 'iu000', 'iw000', 'ja000', 'ja100', 'jv000', 'ka000', 'ki000', 'kk000', 'kl000', 'km000', 'kn000', 'ko000', 'ko100', 'ko101', 'ko102', 'ko103', 'ks000', 'ku000', 'ky000', 'la000', 'lb000', 'lg000', 'ln000', 'lo000', 'lt000', 'lv000', 'mg000', 'mi000', 'mk000', 'ml000', 'mn000', 'mr000', 'ms000', 'mt000', 'my000', 'na000', 'nd000', 'ne000', 'nl000', 'nl100', 'no000', 'nv000', 'oc000', 'om000', 'or000', 'pa000', 'pl000', 'ps000', 'pt000', 'pt100', 'pt101', 'pt102', 'pt103', 'qu000', 'rm000', 'rn000', 'ro000', 'ru000', 'ru001', 'ru100', 'ru101', 'ru102', 'ru103', 'ru104', 'ru105', 'ru106', 'rw000', 'sa000', 'sc000', 'sd000', 'sg000', 'sh000', 'si000', 'sk000', 'sl000', 'sm000', 'sn000', 'so000', 'sq000', 'sr000', 'st000', 'su000', 'sv000', 'sw000', 'ta000', 'te000', 'tg000', 'th000', 'th100', 'ti000', 'tk000', 'tn000', 'to000', 'tr000', 'tr100', 'ts000', 'tt000', 'ug000', 'uk000', 'uk100', 'ur000', 'uz000', 've000', 'vi000', 'vi100', 'vi101', 'vo000', 'wo000', 'xh000', 'yi000', 'yo000', 'zh000', 'zu000']
| 配置名 | 語言代碼 | 語言名稱(中文) | 語言名稱(英文) |
|:---------|:-----------|:---------------------|:-------------------|
| bh000 | bh | Bihari languages | Bihari languages |
| eo000 | eo | 世界語 | Esperanto |
| zh000 | zh | 中文 | Chinese |
| da000 | da | 丹麥語 | Danish |
| uk100 | uk | 烏克蘭語 | Ukrainian |
| uz000 | uz | 烏茲別克語 | Uzbek |
| ur000 | ur | 烏爾都語 | Urdu |
| hy000 | hy | 亞美尼亞語 | Armenian |
| ik000 | ik | 伊努皮克語 | Inupiaq |
| ig000 | ig | 伊博語 | Igbo |
| ru106 | ru | 俄語 | Russian |
| bg000 | bg | 保加利亞語 | Bulgarian |
| sd000 | sd | 信德語 | Sindhi |
| si000 | si | 僧伽羅語 | Sinhala |
| qu000 | qu | 克丘亞語 | Quechua |
| ks000 | ks | 克什米爾語 | Kashmiri |
| hr000 | hr | 克羅地亞語 | Croatian |
| cr000 | cr | 克里語 | Cree |
| is000 | is | 冰島語 | Icelandic |
| gl000 | gl | 加利西亞語 | Galician |
| ca000 | ca | 加泰羅尼亞語 | Catalan |
| hu000 | hu | 匈牙利語 | Hungarian |
| nd000 | nd | 北恩德貝勒語 | North Ndebele |
| st000 | st | 南索托語 | Southern Sotho |
| af000 | af | 南非荷蘭語 | Afrikaans |
| kn000 | kn | 卡納達語 | Kannada |
| lg000 | lg | 盧干達語 | Ganda |
| rw000 | rw | 盧旺達語 | Kinyarwanda |
| lb000 | lb | 盧森堡語 | Luxembourgish |
| hi000 | hi | 印地語 | Hindi |
| id101 | id | 印度尼西亞語 | Indonesian |
| gu000 | gu | 古吉拉特語 | Gujarati |
| ki000 | ki | 吉庫尤語 | Kikuyu |
| kk000 | kk | 哈薩克語 | Kazakh |
| iu000 | iu | 因紐特語 | Inuktitut |
| ie000 | ie | 國際文字(E) | Interlingue |
| ia000 | ia | 國際語 | Interlingua |
| tk000 | tk | 土庫曼語 | Turkmen |
| tr000 | tr | 土耳其語 | Turkish |
| ee000 | ee | 埃維語 | Ewe |
| tg000 | tg | 塔吉克語 | Tajik |
| sr000 | sr | 塞爾維亞語 | Serbian |
| sh000 | sh | 塞爾維亞語(拉丁文) | Serbian (Latin) |
| oc000 | oc | 奧克語 | Occitan |
| om000 | om | 奧羅莫語 | Oromo |
| or000 | or | 奧里亞語 | Odia |
| cy000 | cy | 威爾士語 | Welsh |
| bn000 | bn | 孟加拉語 | Bangla |
| dz000 | dz | 宗卡語 | Dzongkha |
| ff000 | ff | 富拉語 | Fula |
| ne000 | ne | 尼泊爾語 | Nepali |
| ba000 | ba | 巴什基爾語 | Bashkir |
| eu000 | eu | 巴斯克語 | Basque |
| su000 | su | 巽他語 | Sundanese |
| br000 | br | 布列塔尼語 | Breton |
| iw000 | iw | 希伯來語 | Hebrew |
| el000 | el | 希臘語 | Greek |
| ho000 | ho | 希里莫圖語 | Hiri Motu |
| ku000 | ku | 庫爾德語 | Kurdish |
| de101 | de | 德語 | German |
| it100 | it | 意大利語 | Italian |
| yi000 | yi | 意第緒語 | Yiddish |
| la000 | la | 拉丁語 | Latin |
| lv000 | lv | 拉脫維亞語 | Latvian |
| no000 | no | 挪威語 | Norwegian |
| cs000 | cs | 捷克語 | Czech |
| ti000 | ti | 提格利尼亞語 | Tigrinya |
| ve000 | ve | 文達語 | Venda |
| fj000 | fj | 斐濟語 | Fijian |
| sk000 | sk | 斯洛伐克語 | Slovak |
| sl000 | sl | 斯洛文尼亞語 | Slovenian |
| sw000 | sw | 斯瓦希里語 | Swahili |
| pa000 | pa | 旁遮普語 | Punjabi |
| ja100 | ja | 日語 | Japanese |
| ps000 | ps | 普什圖語 | Pashto |
| ln000 | ln | 林加拉語 | Lingala |
| ky000 | ky | 柯爾克孜語 | Kyrgyz |
| kl000 | kl | 格陵蘭語 | Kalaallisut |
| ka000 | ka | 格魯吉亞語 | Georgian |
| sg000 | sg | 桑戈語 | Sango |
| sa000 | sa | 梵語 | Sanskrit |
| bi000 | bi | 比斯拉馬語 | Bislama |
| mi000 | mi | 毛利語 | Māori |
| to000 | to | 湯加語 | Tongan |
| vo000 | vo | 沃拉普克語 | Volapük |
| wo000 | wo | 沃洛夫語 | Wolof |
| fo000 | fo | 法羅語 | Faroese |
| fr000 | fr | 法語 | French |
| pl000 | pl | 波蘭語 | Polish |
| bs000 | bs | 波斯尼亞語 | Bosnian |
| fa000 | fa | 波斯語 | Persian |
| te000 | te | 泰盧固語 | Telugu |
| ta000 | ta | 泰米爾語 | Tamil |
| th000 | th | 泰語 | Thai |
| ht000 | ht | 海地克里奧爾語 | Haitian Creole |
| jv000 | jv | 爪哇語 | Javanese |
| ga000 | ga | 愛爾蘭語 | Irish |
| et000 | et | 愛沙尼亞語 | Estonian |
| bm000 | bm | 班巴拉語 | Bambara |
| na000 | na | 瑙魯語 | Nauru |
| sv000 | sv | 瑞典語 | Swedish |
| gn000 | gn | 瓜拉尼語 | Guarani |
| be000 | be | 白俄羅斯語 | Belarusian |
| zu000 | zu | 祖魯語 | Zulu |
| xh000 | xh | 科薩語 | Xhosa |
| co000 | co | 科西嘉語 | Corsican |
| lt000 | lt | 立陶宛語 | Lithuanian |
| so000 | so | 索馬里語 | Somali |
| yo000 | yo | 約魯巴語 | Yoruba |
| nv000 | nv | 納瓦霍語 | Navajo |
| sn000 | sn | 紹納語 | Shona |
| ug000 | ug | 維吾爾語 | Uyghur |
| my000 | my | 緬甸語 | Burmese |
| rm000 | rm | 羅曼什語 | Romansh |
| ro000 | ro | 羅馬尼亞語 | Romanian |
| lo000 | lo | 老撾語 | Lao |
| ts000 | ts | 聰加語 | Tsonga |
| ay000 | ay | 艾馬拉語 | Aymara |
| fi000 | fi | 芬蘭語 | Finnish |
| gd000 | gd | 蘇格蘭蓋爾語 | Scottish Gaelic |
| en116 | en | 英語 | English |
| tn000 | tn | 茨瓦納語 | Tswana |
| nl100 | nl | 荷蘭語 | Dutch |
| sc000 | sc | 薩丁語 | Sardinian |
| sm000 | sm | 薩摩亞語 | Samoan |
| pt102 | pt | 葡萄牙語 | Portuguese |
| mn000 | mn | 蒙古語 | Mongolian |
| bo000 | bo | 藏語 | Tibetan |
| fy000 | fy | 西弗里西亞語 | Western Frisian |
| es101 | es | 西班牙語 | Spanish |
| ha000 | ha | 豪薩語 | Hausa |
| vi101 | vi | 越南語 | Vietnamese |
| az000 | az | 阿塞拜疆語 | Azerbaijani |
| am000 | am | 阿姆哈拉語 | Amharic |
| sq000 | sq | 阿爾巴尼亞語 | Albanian |
| ab000 | ab | 阿布哈西亞語 | Abkhazian |
| ar000 | ar | 阿拉伯語 | Arabic |
| aa000 | aa | 阿法爾語 | Afar |
| ak000 | ak | 阿肯語 | Akan |
| as000 | as | 阿薩姆語 | Assamese |
| rn000 | rn | 隆迪語 | Rundi |
| tt000 | tt | 韃靼語 | Tatar |
| ko000 | ko | 韓語 | Korean |
| mk000 | mk | 馬其頓語 | Macedonian |
| mg000 | mg | 馬拉加斯語 | Malagasy |
| mr000 | mr | 馬拉地語 | Marathi |
| ml000 | ml | 馬拉雅拉姆語 | Malayalam |
| ms000 | ms | 馬來語 | Malay |
| mt000 | mt | 馬耳他語 | Maltese |
| km000 | km | 高棉語 | Khmer |
模型下載地址:
https://huggingface.co/papers/2506.00338
下載模型:
huggingface-cli download --resume-download espnet/owsm_ctc_v4_1B --local-dir /nas/lbg/models/espnet_owsm_ctc_v4_1B
模型目錄結構:
data ?exp ?meta.yaml ?README.md
docker安裝(適用于多數 Linux 系統)測試ok
curl -fsSL https://get.docker.com | sh
或者使用 wget:
wget -qO- https://get.docker.com | sh
推理demo
from espnet2.bin.s2t_inference_ctc import Speech2TextGreedySearch# "/nas/lbg/models/espnet_owsm_ctc_v4_1B",
s2t = Speech2TextGreedySearch.from_pretrained("espnet/owsm_ctc_v4_1B",device="cuda",use_flash_attn=False, # set to True for better efficiency if flash attn is installed and dtype is float16 or bfloat16lang_sym='<eng>',task_sym='<asr>',
)res = s2t.batch_decode("audio.wav", # a single audio (path or 1-D array/tensor) as inputbatch_size=16,context_len_in_secs=4,
) # res is a single str, i.e., the predicted text without special tokensres = s2t.batch_decode(["/nas/ASR_DATA/cv-corpus-21.0-2025-03-14/ar/clips/common_voice_ar_24146339.mp3", "/nas/lbg/project/Whisper-Finetune/dataset/test.wav"], # a list of audios as inputbatch_size=16,context_len_in_secs=4,
) # res is a list of str