在24小时内,以惊喜语言转录40小时的录制语音。
从预先训练的声学模型,L发音词典和L语言模型中为惊喜语言L构建ASR。这种方法将电话直接转换为L单词。这比使用多个交叉训练的ASRS来制作英语单词,从中提取电话字符串,由PTGEN合并并重组为L单词,这一点嘈杂。
具有性能测量的完整描述是在ARXIV上,在:
M木谷 - 约翰逊,L Rolston,C Goudeseune,GA Levow和K Kirchhoff,
跨语言ASR的字素至phoneme转导,stat。朗。演讲proc.:3至1920年。
如果您还没有比2016年9月30日更新的Kaldi版本,请按照安装文件中的说明获取并构建它。
git clone https://github.com/kaldi-asr/kaldi
cd kaldi/tools; make -j $(nproc)
cd ../src; ./configure --shared && make depend -j $(nproc) && make -j $(nproc)
将技术的音素识别器放在通常的S5目录旁边。
sudo apt-get install libopenblas-dev libopenblas-base
cd kaldi/egs/aspire
git clone https://github.com/uiuc-sst/brno-phnrec.git
cd brno-phnrec/PhnRec
make
将其放在通常的s5目录旁边。
(软件包nodejs适用于./sampa2ipa.js 。)
sudo apt-get install nodejs
cd kaldi/egs/aspire
git clone https://github.com/uiuc-sst/asr24.git
cd asr24
cd kaldi/egs/aspire/asr24
wget -qO- http://dl.kaldi-asr.org/models/0001_aspire_chain_model.tar.gz | tar xz
steps/online/nnet3/prepare_online_decoding.sh
--mfcc-config conf/mfcc_hires.conf
data/lang_chain exp/nnet3/extractor
exp/chain/tdnn_7b exp/tdnn_7b_chain_online
utils/mkgraph.sh --self-loop-scale 1.0 data/lang_pp_test
exp/tdnn_7b_chain_online exp/tdnn_7b_chain_online/graph_pp
在Exp/ tdnn_7b_chain_online中,这会构建files phones.txt , tree , final.mdl , conf/ ,,等。
这构建了子目录data和exp 。正如Dan Povey所解释的那样,它的最后一个命令mkgraph.sh可能需要45分钟(CTVE普通话30分钟),并使用大量内存,因为它可以在大型语言模型上调用fstdeterminizestar ,如Dan Povey所解释的那样。
sox MySpeech.wav -r 8000 8khz.wav或ffmpeg -i MySpeech.wav -acodec pcm_s16le -ac 1 -ar 8000 8khz.wav 。 (脚本cmd.sh和path.sh说在哪里可以找到kaldi/src/online2bin/online2-wav-nnet3-latgen-faster 。)
. cmd.sh && . path.sh
online2-wav-nnet3-latgen-faster
--online=false --do-endpointing=false
--frame-subsampling-factor=3
--config=exp/tdnn_7b_chain_online/conf/online.conf
--max-active=7000
--beam=15.0 --lattice-beam=6.0 --acoustic-scale=1.0
--word-symbol-table=exp/tdnn_7b_chain_online/graph_pp/words.txt
exp/tdnn_7b_chain_online/final.mdl
exp/tdnn_7b_chain_online/graph_pp/HCLG.fst
'ark:echo utterance-id1 utterance-id1|'
'scp:echo utterance-id1 8khz.wav|'
'ark:/dev/null'
wget -qO- http://kaldi-asr.org/models/0002_cvte_chain_model.tar.gz | tar xz
steps/online/nnet3/prepare_online_decoding.sh
--mfcc-config conf/mfcc_hires.conf
data/lang_chain exp/nnet3/extractor
exp/chain/tdnn_7b cvte/s5/exp/chain/tdnn
utils/mkgraph.sh --self-loop-scale 1.0 data/lang_pp_test
cvte/s5/exp/chain/tdnn cvte/s5/exp/chain/tdnn/graph_pp
$L/train_all/text将单词字符串放在l(从任何地方刮擦),每行约10个单词,最多为50万行。这些可能很嘈杂,因为它们会被清理。进入$L/train_all/g2aspire.txt放置一个G2P,每条包含数百行包含石墨,空格和空间限制的Aspire式手机。
如果它具有CR线终结器,则将其转换为具有%s/^M/r/g VI标准终结器,在^M之前键入控制-V。
如果它以bom开头,请删除它: vi -b g2aspire.txt ,只是x and and and and that角色。
如果您需要构建g2p, ./g2ipa2asr.py $L_wikipedia_symboltable.txt aspire2ipa.txt phoibletable.csv > $L/train_all/g2aspire.txt 。
./run.sh $L./run_from_wordlist.sh $L 。请参阅该脚本以获取用法。在IFP-serv-03.ifp.illinois.edu上,获取LDC语音并将其转换为8 kHz的平坦dir。
cd /ws/ifp-serv-03_1/workspace/fletcher/fletcher1/speech_data1/Russian/LDC2016E111/RUS_20160930
cd /ws/ifp-serv-03_1/workspace/fletcher/fletcher1/speech_data1/Tamil/TAM_EVAL_20170601/TAM_EVAL_20170601
cd /ws/ifp-serv-03_1/workspace/fletcher/fletcher1/speech_data1/Uzbek/LDC2016E66/UZB_20160711
mkdir /tmp/8k
for f in */AUDIO/*.flac; do sox "$f" -r 8000 -c 1 /tmp/8k/$(basename ${f%.*}.wav); done
tar cf /workspace/ifp-53_1-data/eval/8k.tar -C /tmp 8k
rm -rf /tmp/8k
对于babel .sph文件:
cd /ws/ifp-serv-03_1/workspace/fletcher/fletcher1/speech_data1/Assamese/LDC2016E02/conversational/training/audio
tar cf /tmp/foo.tar BABEL*.sph
scp /tmp/foo.tar ifp-53:/tmp
在IFP-53上,
mkdir ~/kaldi/egs/aspire/asr24/$L-8khz
cd myTmpSphDir
tar xf /tmp/foo.tar
for f in *.sph; do ~/kaldi/tools/sph2pipe_v2.5/sph2pipe -p -f rif "$f" /tmp/a.wav;
sox /tmp/a.wav -r 8000 -c 1 ~/kaldi/egs/aspire/asr24/$L-8khz/$(basename ${f%.*}.wav); done
在将运行转录的主机上,例如IFP-53:
cd kaldi/egs/aspire/asr24
wget -qO- http://www.ifp.illinois.edu/~camilleg/e/8k.tar | tar xf -
mv 8k $L-8khz
./mkscp.rb $L-8khz $(nproc) $L将ASR任务分为每个CPU核心,每个作业的音频持续时间大致相同。$L-8khz ,是8 kHz语音文件的DIR。$L-submit.sh 。./$L-submit.sh并行启动这些作业。grep -h -e '^TAM_EVAL' $L/lat/*.log | sort > $L-scrips.txt (or ... ^RUS_ , ^BABEL_等)。elisa.tam-eng.eval-asr-uiuc.y3r1.v8.xml.gz ·梅(Jon Maygrep -h -e '^TAM_EVAL' tamil/lat/*.log | sort | sed -e 's/ /t/' | ./hyp2jonmay.rb /tmp/jon-tam tam 20180611 8-e 's/Ñ/N/g'来简化字母。)cat $L/lat/*.ascii | sort > $L-nbest.txt 。如果您的抄录使用了胡说八道的英语单词,请将其转换为手机,然后通过Trie或最长的常见子字符串转换为L字:
./trie-$L.rb < trie1-scrips.txt > $L-trie-scrips.txt 。make multicore-$L ;等待; grep ... > $L-lcs-scrips.txt 。RUS_20160930在67分钟内转录13 MB/min,比实时快12倍。
Assam LDC2016E02的3.1 GB子集在440分钟内实时转录,实时7 MB/min, 6.5倍。 (这可能较慢,因为它耗尽了IFP-53的内存。)
阿拉伯语/nemlar_speech/nmbcn7ar,2.2 GB(40小时),在147分钟,14 MB/min,实时16倍。 (这可能更快,因为它是几个长时间(半小时)的文件,而不是许多简短的文件。)
TAM_EVAL_20170601在45分钟内进行21 MB/min, 19倍实时转录。
生成晶格$L/lat/*的俄罗斯时间更长1.04倍,阿拉伯语长度为0.93倍,泰米尔语更长1.7倍。