目录
[OWSM v4 简介 卡内基梅隆大学](#OWSM v4 简介 卡内基梅隆大学)
[docker安装(适用于多数 Linux 系统)测试ok](#docker安装(适用于多数 Linux 系统)测试ok)
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
数据列表
python
from datasets import get_dataset_config_names
configs = 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
python
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 bfloat16
lang_sym='<eng>',
task_sym='<asr>',
)
res = s2t.batch_decode(
"audio.wav", # a single audio (path or 1-D array/tensor) as input
batch_size=16,
context_len_in_secs=4,
) # res is a single str, i.e., the predicted text without special tokens
res = 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 input
batch_size=16,
context_len_in_secs=4,
) # res is a list of str