本文记录熟悉espnet,从零开始跑脚本的过程。
前情提要
espnet2已安装,了解enh.sh的13个stage,了解运行pipeline。
现在开始上手跑具体代码,并通过单步调试等方法熟悉具体流程。
具体操作
数据准备阶段
先跑第一个stage做数据准备1
./run.sh --stage 1 --stop-stage 1
报错,发现要在db.sh
中填入WSJ0 和 WSJ1
的数据集路径
将本地下载的数据集路径填入,报错“matlab not found”
由于历史遗留问题,混合音频生成脚本需要使用matlab,如果已有WSJ0_MIX数据,可在/local/data.sh中注释掉1
2# local/wsj0_create_mixture.sh ${wsj_2mix_scripts} ${WSJ0} ${wsj_full_wav} \
# ${wsj_2mix_wav} || exit 1;
然后在对应的data目录中加入混合数据集,将本地WSJ0_MIX中2speakers的部分链接过来。
再跑!报错:1
22025-03-17T21:51:16 (data.sh:74:main) local/wsj_data_prep.sh /mnt/rdata/wsj/WSJ0/??-{?,??}.? /mnt/rdata/wsj/WSJ1/??-{?,??}.?
Could not find (or execute) the sph2pipe program at sph2pipe
怀疑是环境配置问题,利用espnet/tools目录下的环境配置脚本配环境,已经安装conda的话会方便一些
根据脚本安装环境总是碰到错误1
2
3ERROR: Requested lightning from https://files.pythonhosted.org/packages/84/21/4a6ca0f7d0679794cc209da282728839d3296337d3759f86048eb4f1d027/lightning-1.8.3.post2-py3-none-any.whl has invalid metadata: .* suffix can only be used with `==` or `!=` operators
torch (>=1.9.*)
~~~~~~^
反复挣扎无果,选择手动安装包1
./installers/install_transformers.sh
终于可以开跑了,不过stage1后生成了一堆奇怪的数据……
丝滑跑到stage4完成数据准备工作。
训练阶段
开始跑stage5,报错,鉴定为环境问题
于是重开espnet2环境,根据espnet/tools
目录下readme的具体指示,用make重新配置环境
中途碰到报错:1
2
3
4
5
6Using cached lightning-1.8.0.post1-py3-none-any.whl.metadata (22 kB)
WARNING: Ignoring version 1.8.0.post1 of lightning since it has invalid metadata:
Requested lightning from https://files.pythonhosted.org/packages/89/dc/93c33bb378c0674855c5f1aef24317a9cb37c9cec9235334b6ceb712c662/lightning-1.8.0.post1-py3-none-any.whl has invalid metadata: .* suffix can only be used with `==` or `!=` operators
torch (>=1.9.*)
~~~~~~^
Please use pip<24.1 if you need to use this version.
看上去是各个包之间版本依赖问题,和copilot纠缠许久,未解决,最后寻求lcd老师帮助
由于这个基础代码都是他写的,只是后期经过一些魔改,也许新加的功能造成了一些环境不适配,最后他在espnet目录下使用1
pip install -e ./
应该是调用了setup.py
为espnet2环境配置好
但是跑stage5仍然报错,显示:1
OSError: /home/xxx/anaconda3/envs/espnet2/lib/python3.8/site-packages/torchaudio/lib/libtorchaudio.so: undefined symbol: _ZNK5torch8autograd4Node4nameEv
这真的很让人心烦,只好问copilot,它说因为torch和torchaudio版本不适配
好好好,一同操作,又把espnet2环境搞炸了
于是重开espnet3环境,这次直接使用pip install -e ./
安装,结果还是报错,手动安装torchaudio后,torch和torchaudio版本号一样,于是再次陷入崩溃
这次找了学长zx,他一开始也很懵逼,检查一阵子,发现是tools/activate_python.sh脚本中仍然激活的是espnet2的环境,所以会报版本不一致的错误
修改后,报错未导包,好好好仍旧是环境问题,这次注释掉makefile中关于torch的安装部分,重新make,终于是圆满成功运行,跑完stage5.至此耗时3h,,,