s3prl(边学边更新)
写在前面
s3prl论文链接:https://arxiv.org/abs/2105.01051
s3prl github链接:https://github.com/s3prl/s3prl
目前已经有很多自监督模型用于语音上了,s3prl集成了多个自监督模型,以及一些下游任务。本篇介绍我目前对这个工具包的使用情况,还望有一起做的朋友一起交流,q916782934。
简介
该工具包是需要自己花时间去做预训练的,包含了很多上游模型,比如:
- mockingjay ,完全仿照bert来的自监督模型,论文链接:https://arxiv.org/abs/1910.12638;
- TERA;
- 等等;
然后再应用于下游模型。
s3prl安装
我所用的是ubuntu 16.0,该工具包的安装需要python=3.6,在虚拟环境中进行
pip install s3prl
如果你的环境中有多个python版本,记得使用
python3 -m pip install s3prl
第一次使用github,我还下载了github上的整个文件,然后进行
python setup.py install
除此之外,还有两个需要下载,一个是sox,sox并不是通过python下载的,通过
sudo apt-get install sox
第二个是fairseq,是可以通过python下载的,以下两个都可以
pip install fairseq
python -m pip install fairseq
直接pip的都是在虚拟环境中进行的,sudo则是在ubuntu中进行的
,以上步骤完成后基本上就没有缺少包或者库上的问题了。
数据集下载以及预处理
因为s3prl的代码风格需要自己去做预训练,所以需要自己先去下载数据集,地址:http://www.openslr.org/12
个人推荐迅雷下载,两个小时内基本就可以下载完成。
然后所需要的是生成一个csv文件,是协助加速预训练的。
具体的操作为:
python3 preprocess/generate_len_for_bucket.py -i PATH_TO_YOUR/LibriSpeech/
后面的PATH_TO_YOUR是你保存数据集的路径,随后会在你进行这一步的文件中自动生成 .data/len_for_bucker 并且在该路径下会生成csv文件
接下来是修改s3prl-master/s3prl/pretrain/mockingjay/config_runner.yaml中修改两个参数,一个是数据集路径,一个是刚才生成的csv文件路径,我修改mockingjay是因为我想先做mockingjay的模型,想用其他模型的就对应修改
我只用了第一个数据集,所以在set那个列表中只保留了第一个数据集的名字。之后就可以进行预训练了
输入以下命令
python run_pretrain.py -u mockingjay -g pretrain/mockingjay/config_model.yaml -n YourModelName
然后目前我就卡在这里了,因为很多语音数据无法打开,边学边更新,希望大家能多多讨论,有新的进展我会及时更新,一起加油!