使用aishell数据集

1.安装依赖

安装train_lm.sh

cd tools
./extras/install_kaldi_lm.sh

2.获取数据集

和thchs30类似,参照egs/aishell/README.txt,手动下载数据集或运行s5/run.sh会自动下载并解压缩数据集,这里只演示手动下载数据集。

访问http://www.openslr.org/33/ ,下载两个压缩包:

data_aishell.tgz [15G] ( speech data and transcripts ) Mirrors: China
resource_aishell.tgz [1.2M] ( supplementary resources, incl. lexicon, speaker info ) Mirrors: China

下载解压缩到一个目录,这里解压缩到aishell-openslr

aishell-openslr/data_aishell/wav里的压缩包需要都解压出来,创建脚本local/untar.sh

#!/bin/bash

remove_archive=false

if [ "$1" == --remove-archive ]; then
  remove_archive=true
  shift
fi

if [ $# -ne 3 ]; then
  echo "Usage: $0 <data-base>"
  echo "e.g.: $0 /export/a05/xna/data"
fi

data=$1
part="data_aishell"

if [ ! -d "$data" ]; then
  echo "$0: no such directory $data"
  exit 1;
fi

if [ -f $data/$part/.complete ]; then
  echo "$0: data part $part was already successfully extracted, nothing to do."
  exit 0;
fi

touch $data/$part/.complete

if [ $part == "data_aishell" ]; then
  cd $data/$part/wav
  for wav in ./*.tar.gz; do
    echo "Extracting wav from $wav"
    tar -zxf $wav && rm $wav
  done
fi

echo "$0: Successfully downloaded and un-tarred $data/$part.tgz"

exit 0;

修改训练脚本run.sh

修改数据集存放路径

#data=/export/a05/xna/data
data=aishell-openslr #替换为你解压缩出数据集的路径
data_url=www.openslr.org/resources/33

修改下载解压缩数据集为我们新建的解压缩脚本

#local/download_and_untar.sh $data $data_url data_aishell || exit 1;
#local/download_and_untar.sh $data $data_url resource_aishell || exit 1;

local/untar.sh $data || exit 1;

这样在首次运行训练脚本时会执行我们的解压缩脚本,对wav文件进行批量解压缩

3.训练

3.1修改训练脚本

修改cmd.sh

#export train_cmd="queue.pl --mem 2G"
#export decode_cmd="queue.pl --mem 4G"
#export mkgraph_cmd="queue.pl --mem 8G"

export train_cmd=run.pl
export decode_cmd="run.pl --mem 4G"
export mkgraph_cmd="run.pl --mem 8G"

和thchs30一样,建议对训练脚本run.sh分成多个文件,run1.sh…,分次执行,公共的内容是:

#data=/export/a05/xna/data
data=aishell-openslr #替换为你解压缩出数据集的路径
data_url=www.openslr.org/resources/33

. ./cmd.sh

3.2训练

./run.sh # run1.sh run2.sh ...

4.识别–在线解码

以aishell的chain模型为例

4.1生成配置文件

所有操作都在aishell/s5

4.1.1使用nnet3模型

1.建立需要的软链接:

cd exp/nnet3/tdnn_sp
ln -s 0.mdl final.mdl

2.生成配置文件

./steps/online/nnet3/prepare_online_decoding.sh \
 --add-pitch true \
 --mfcc-config conf/mfcc_hires.conf \
 data/lang \
 exp/nnet3/extractor \
 exp/nnet3/tdnn_sp \
 exp/nnet3/nnet_online
  • --add-pitch:aishell的nnet3和chain模型输入的特征在MFCC的基础上还加入了pitch特征,反应了音高的信息

  • --mfcc-config:mfcc使用的配置文件,注意这里我们使用的是mfcc_hires.conf

  • data/lang:nnet3模型解码网络图中G.fstL.fst文件以及词汇表words.txt文件

  • exp/nnet3/tdnn_sp:nnet3模型

  • exp/nnet3/nnet_online:生成的配置文件存放的目录,自己定义

4.1.2使用chain模型(未经测试)

./steps/online/nnet3/prepare_online_decoding.sh \
 --add-pitch true \
 --mfcc-config conf/mfcc_hires.conf \
 data/lang \
 exp/nnet3/extractor \
 exp/chain/tdnn_1a_sp \
 exp/chain/nnet_online
  • --add-pitch:aishell的nnet3和chain模型输入的特征在MFCC的基础上还加入了pitch特征,反应了音高的信息

  • --mfcc-config:mfcc使用的配置文件,注意这里我们使用的是mfcc_hires.conf

  • data/lang_chain:存储chain模型解码网络图中G.fstL.fst文件以及词汇表words.txt文件

  • exp/chain/tdnn_1a_sp:存储chain模型

  • exp/chain/nnet_online:生成的配置文件存放的目录,自己定义

4.2解码

4.2.1使用nnet3模型(未经测试)

online2-wav-nnet3-latgen-faster \
  --config=exp/nnet3/nnet_online/conf/online.conf \
  --do-endpointing=false \
  --frames-per-chunk=20 \
  --extra-left-context-initial=0 \
  --online=true \
  --frame-subsampling-factor=3 \
  --min-active=200 \
  --max-active=7000 \
  --beam=15.0 \
  --lattice-beam=6.0 \
  --acoustic-scale=1.0 \
  --word-symbol-table=s5/data/lang/words.txt \
  s5/exp/chain/tdnn_1a_sp/final.mdl \
  s5/exp/chain/tdnn_1a_sp/graph/HCLG.fst \
  ark:s5/data/test/spk2utt \
  scp:s5/data/test/wav.scp \
  ark,t:20190308.txt

4.2.2使用chain模型(未经测试)

online2-wav-nnet3-latgen-faster \
  --config=s5/exp/chain/nnet_online/conf/online.conf \
  --do-endpointing=false \
  --frames-per-chunk=20 \
  --extra-left-context-initial=0 \
  --online=true \
  --frame-subsampling-factor=3 \
  --min-active=200 \
  --max-active=7000 \
  --beam=15.0 \
  --lattice-beam=6.0 \
  --acoustic-scale=1.0 \
  --word-symbol-table=s5/data/lang/words.txt \
  s5/exp/chain/tdnn_1a_sp/final.mdl \
  s5/exp/chain/tdnn_1a_sp/graph/HCLG.fst \
  ark:s5/data/test/spk2utt \
  scp:s5/data/test/wav.scp \
  ark,t:20190308.txt
上一页
下一页