在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 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倍。