24時間以内に、記録された40時間の録音されたスピーチをサプライズ言語で転写します。
事前に訓練された音響モデル、L発音辞書、およびL言語モデルからサプライズ言語LのASRを構築します。このアプローチは、電話を直接Lワードに変換します。これは、複数のクロストレーニングを受けたASRを使用して、電話文字列が抽出され、PTGENで統合され、l単語に再構成された英語の単語を作成するよりもノイズが少ないです。
パフォーマンス測定の完全な説明は、arxivおよび:
M Hasegawa-Johnson、L Rolston、C Goudeseune、GA Levow、およびK Kirchhoff、
言語間ASRのためのグラフェメから音量間変換、統計。ラング。 Speech Proc.:3-19、2020。
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)
BRNO U. of Technologyの音素認識器を通常の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では、ファイルphones.txt 、 tree 、 final.mdl 、 conf/などをビルドします。
これにより、サブディレクトリのdataとexpが構築されます。その最後のコマンドmkgraph.sh 、ダン・ポベイが説明するように、大規模な言語モデルでfstdeterminizestar呼び出すため、45分(CTVEマンダリンの場合は30)かかり、多くのメモリを使用できます。
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(どこからでも削り取った)、最大500k行で約10ワードの単語を入れます。これらはきれいになるので、これらは非常にうるさいかもしれません。 $L/train_all/g2aspire.txtにG2Pを入れます。それぞれにグラフェム、空白、およびスペースが削除されたAspireスタイルの携帯電話を含む数百列。
CRラインターミネーターがある場合は、 ^Mの前にコントロール-Vを入力する%s/^M/r/gでviの標準のものに変換します。
BOMで始まる場合は、削除してください: vi -b g2aspire.txt 、そしてそのキャラクターをxだけxします。
g2pを構築する必要がある場合、 ./g2ipa2asr.py $L_wikipedia_symboltable.txt aspire2ipa.txt phoibletable.csv > $L/train_all/g2aspire.txt 。
./run.sh $L 、lカスタマイズされたhclg.fstを作成します。./run_from_wordlist.sh $Lを使用するには。使用するためのスクリプトを参照してください。IFP-serv-03.ifp.illinois.eduで、LDCスピーチを取得し、8 kHz .WAVファイルのフラットディレクトリに変換します。
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コアごとに1つのジョブに分割し、各ジョブはほぼ同じオーディオ期間でです。$L-8khzを読み取ります。$L-submit.shを作成します。./$L-submit.sh 、これらのジョブを並行して起動します。grep -h -e '^TAM_EVAL' $L/lat/*.log | sort > $L-scrips.txt (または... ^RUS_ 、 ^BABEL_など)。elisa.tam-eng.eval-asr-uiuc.y3r1.v8.xml.gzとして、6月11日とバージョン8のタイムスタンプでgrep -h -e '^TAM_EVAL' tamil/lat/*.log | sort | sed -e 's/ /t/' | ./hyp2jonmay.rb /tmp/jon-tam tam 20180611 8-e 's/Ñ/N/g'などのSEDコマンドARGに追加して文字を簡素化します。)cat $L/lat/*.ascii | sort > $L-nbest.txt 。転写がナンセンスな英語の単語を使用した場合は、それらを電話に変換し、その後、トライまたは最長の一般的なサブストリングを介して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.5xリアルタイムで転写されました。 (IFP-53のメモリを使い果たしたため、これは遅かったかもしれません。)
アラビア語/nemlar_speech/nmbcn7ar、2.2 gb(40時間)は、147分、14 mb/min、 16倍のリアルタイムで転写されました。 (これは、多くの短いファイルではなく、30分の(30分)のファイルだったため、より速いかもしれません。)
TAM_EVAL_20170601は、45分、21 MB/min、 19Xでリアルタイムで転写されました。
ラティス$L/lat/*の生成は、ロシア語で1.04倍、アラビア語で0.93倍長く(!)、タミル語で1.7倍長くなりました。