语音识别框架之ESPnet

ESPnet 是一个端到端的语音处理工具包,涵盖了端到端的语音识别、文本到语音、语音翻译、语音增强、说话者分类、口语理解等。ESPnet 使用pytorch作为深度学习引擎,还遵循Kaldi风格的数据处理、特征提取/格式和配方,为各种语音处理实验提供完整的设置。

github直通车

克隆

git clone https://github.com/espnet/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. <cuda-root> = /usr/local/cuda
    ./installers/install_warp-ctc.sh
    
  • 安装翘曲传感器

    cd <espnet-root>/tools
    . activate_python.sh
    . ./setup_cuda_env.sh <cuda-root>  # e.g. <cuda-root> = /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
    

必须安装的工具

安装语言模型工具:kenlm

官网安装教程

安装之前要安装相关依赖

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.shkaldi中的文件,用于检测win.scp和text文件排序是否正确,去掉句子没有的特征

使用dock进行

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
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

语音不识别

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值