ESPnet 是一个端到端的语音处理工具包,涵盖了端到端的语音识别、文本到语音、语音翻译、语音增强、说话者分类、口语理解等。ESPnet 使用pytorch作为深度学习引擎,还遵循Kaldi风格的数据处理、特征提取/格式和配方,为各种语音处理实验提供完整的设置。
github直通车
git clone https://github.com/espnet/espnet
官网文档
使用官网安装的过程会很慢,下载限速
手动下载相关包
cd <espnet-root>/tools
make CPU_ONLY=0
$ cd <espnet-root>/tools
$ make
Makefile 尝试安装 ESPnet 和所有依赖项,包括 PyTorch。您还可以指定 PyTorch 版本,例如:
$ cd <espnet-root>/tools
$ make TH_VERSION=1.10.1
请注意,CUDA 版本是从nvcc
命令派生的。如果您想指定其他 CUDA 版本,您需要提供CUDA_VERSION
.
$ cd <espnet-root>/tools
$ make TH_VERSION=1.10.1 CUDA_VERSION=11.3
如果您没有nvcc
命令,则默认情况下会为 CPU 模式安装软件包。如果您要手动打开它,请提供CPU_ONLY
选项。
$ cd <espnet-root>/tools
$ make CPU_ONLY=0
cd <espnet-root>/tools
. ./activate_python.sh; python3 check_install.py
某些仅用于特定任务的软件包,例如 Transducer ASR、日语 TTS 等,默认情况下未安装,因此如果您在运行这些配方时遇到一些安装错误,您需要选择安装它们。
例如
安装 Warp CTC
cd <espnet-root>/tools
. activate_python.sh
. ./setup_cuda_env.sh <cuda-root> # e.g. = /usr/local/cuda
./installers/install_warp-ctc.sh
安装翘曲传感器
cd <espnet-root>/tools
. activate_python.sh
. ./setup_cuda_env.sh <cuda-root> # e.g. = /usr/local/cuda
./installers/install_warp-transducer.sh
安装 PyOpenJTalk
cd <espnet-root>/tools
. activate_python.sh
./installers/install_pyopenjtalk.sh
使用 pip 安装模块:例如安装 ipython
cd <espnet-root>/tools
. activate_python.sh
pip install ipython
官网安装教程
安装之前要安装相关依赖
sudo apt-get install build-essential libboost-all-dev cmake zlib1g-dev libbz2-dev liblzma-dev
wget -O - https://kheafield.com/code/kenlm.tar.gz |tar xz
mkdir kenlm/build
cd kenlm/build
cmake ..
make -j2
espnet/ # Python modules
utils/ # Utility scripts of ESPnet
test/ # Unit test
test_utils/ # Unit test for executable scripts
egs/ # The complete recipe for each corpora
an4/ # AN4 is tiny corpus and can be obtained freely, so it might be suitable for tutorial
asr1/ # ASR recipe
- run.sh # Executable script
- cmd.sh # To select the backend for job scheduler
- path.sh # Setup script for environment variables
- conf/ # Containing Configuration files
- steps/ # The steps scripts from Kaldi
- utils/ # The utils scripts from Kaldi
tts1/ # TTS recipe
...
在学习一个案例之前一定要把这个跑通才可以,否则无法看懂这些都是做了什么
# 运行前conda的环境要切换到安装espnet时候的环境,否则会报错
./run.sh
这个脚本里面包含了所有的步骤,数据下载,数据准备,特征提取,模型训练,解码和评分
脚本名称 | 参数 | 功能 |
---|---|---|
local/data.sh | =数据路径 | 数据预处理 |
scripts/utils/perturb_data_dir_speed.sh | =扰动因子 =训练数据路径 =生成数据路径 | 生成数据增强的目录 |
utils/combine_data.sh | =数据增强的目录 =生成后的目录 | 数据增强 |
utils/copy_data_dir.sh | 复制数据目录 | |
scripts/audio/format_wav_scp.sh | 格式化wav.scp | |
steps/make_fbank_pitch.sh | 特征提取fbank_pitch | |
scripts/feats/feat_to_shape.sh | 获取特征维度 | |
pyscripts/feats/feat-to-shape.py | 写入特征维度文件 | |
utils/filter_scp.pl | 清理短句子 | |
utils/fix_data_dir.sh | kaldi中的文件,用于检测win.scp和text文件排序是否正确,去掉句子没有的特征 | |
sudo ./run.sh --docker-gpu -1 --is-egs2 --docker-egs aishell3/tts1 --ngpu 0
sudo ./run.sh --docker-gpu -1 --is-egs2 --docker-egs aishell3/tts1 --ngpu 0
sudo docker ps
sudo docker exec -it a6a5ecc729f9 /bin/bash # 进入后台运行容器
sudo docker ps -a # 查看存在的容器
sudo docker rm 64fad9048303 # 移除容器
sudo docker images # 查看镜像
# 打开容器
sudo docker run -it espnet/espnet:cpu-latest /bin/bash
#
sudo docker run -it 281be2aa3c14 bash
run.pl
多半是环境问题,要么是没有配置好,要么是包没有安装
# 报错
ModuleNotFoundError: No module named 'espnet'
# 解决
rm -f activate_python.sh && touch activate_python.sh
make