Baik dalam 24 jam, menyalin 40 jam dari pidato yang direkam dalam bahasa kejutan.
Bangun ASR untuk bahasa kejutan L dari model akustik pra-terlatih, kamus pengucapan L, dan model bahasa L. Pendekatan ini mengubah ponsel langsung ke kata -kata L. Ini kurang bising daripada menggunakan beberapa ASR yang terlatih silang untuk membuat kata-kata bahasa Inggris dari mana string telepon diekstraksi, digabungkan oleh PTGEN, dan dilarutkan menjadi kata-kata L.
Deskripsi lengkap dengan pengukuran kinerja ada di ArXIV, dan di:
M Hasegawa-Johnson, L Rolston, C Goudeseune, Ga Levow, dan K Kirchhoff,
Transduksi Grapheme-to-Phoneme untuk ASR Cross-Language, Stat. Lang. Pidato Proc.:3‒19, 2020.
Jika Anda belum memiliki versi Kaldi yang lebih baru dari 2016 30 September, dapatkan dan bangunlah mengikuti instruksi dalam file instalasi.
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)
Letakkan Brno U. Teknologi Foneme Acognizer di sebelah direktori S5 yang biasa.
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
Letakkan ini di sebelah direktori s5 yang biasa.
(Paket NodeJs adalah untuk ./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
Dalam exp/ tdnn_7b_chain_online ini membangun file phones.txt , tree , final.mdl , conf/ , dll.
Ini membangun data subdirektori dan exp . Perintah terakhirnya mkgraph.sh dapat memakan waktu 45 menit (30 untuk ctve mandarin) dan menggunakan banyak memori karena memanggil fstdeterminizestar pada model bahasa besar, seperti yang dijelaskan Dan Povey.
sox MySpeech.wav -r 8000 8khz.wav , atau ffmpeg -i MySpeech.wav -acodec pcm_s16le -ac 1 -ar 8000 8khz.wav . (Skrip cmd.sh dan path.sh mengatakan di mana menemukan 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 menempatkan string kata di L (dikikis dari mana saja), kira -kira 10 kata per baris, paling banyak 500 ribu baris. Ini mungkin sangat berisik, karena mereka akan dibersihkan. Menjadi $L/train_all/g2aspire.txt menempatkan G2P, beberapa ratus baris masing-masing berisi grafe, whitespace, dan ponsel gaya aspire yang dibatasi ruang.
Jika memiliki terminator garis CR, konversinya menjadi standar di VI dengan %s/^M/r/g , mengetik kontrol-V sebelum ^M .
Jika dimulai dengan bom, lepaskan: vi -b g2aspire.txt , dan hanya x karakter itu.
Jika Anda perlu membangun g2p, ./g2ipa2asr.py $L_wikipedia_symboltable.txt aspire2ipa.txt phoibletable.csv > $L/train_all/g2aspire.txt .
./run.sh $L membuat lclg.fst yang disesuaikan dengan L../run_from_wordlist.sh $L . Lihat skrip itu untuk digunakan.Di IFP-serv-03.ifp.illinois.edu, dapatkan pidato LDC dan ubah menjadi direk datar 8 kHz file .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
Untuk file .sph .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
Di 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
Pada host yang akan menjalankan transkripsi, misalnya 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 membagi tugas ASR menjadi satu pekerjaan per inti CPU, masing-masing pekerjaan dengan durasi audio yang kira-kira sama.$L-8khz , Dir dari file pidato 8 kHz.$L-submit.sh ../$L-submit.sh meluncurkan pekerjaan ini secara paralel.grep -h -e '^TAM_EVAL' $L/lat/*.log | sort > $L-scrips.txt (atau ... ^RUS_ , ^BABEL_ , dll.).elisa.tam-eng.eval-asr-uiuc.y3r1.v8.xml.gz , dengan cap waktu 11 Juni dan versi 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'cat $L/lat/*.ascii | sort > $L-nbest.txt .Jika transkripsi Anda menggunakan kata-kata bahasa Inggris yang tidak masuk akal, ubahlah menjadi telepon dan kemudian, melalui trie atau substring umum terpanjang, menjadi kata-L:
./trie-$L.rb < trie1-scrips.txt > $L-trie-scrips.txt .make multicore-$L ; Tunggu; grep ... > $L-lcs-scrips.txt .RUS_20160930 ditranskripsi dalam 67 menit, 13 mb/menit, 12x lebih cepat dari waktu nyata.
Subset 3,1 GB dari Assam LDC2016E02 ditranskripsi dalam 440 menit, 7 mb/menit, 6,5x waktu nyata. (Ini mungkin lebih lambat karena kelelahan memori IFP-53.)
Arab/nemlar_speech/nmbcn7ar, 2,2 GB (40 jam), ditranskripsi dalam 147 menit, 14 mb/menit, 16x waktu nyata. (Ini mungkin lebih cepat karena beberapa file panjang (setengah jam) bukannya banyak yang singkat.)
Tam_eval_20170601 ditranskripsi dalam 45 menit, 21 mb/mnt, 19x waktu nyata.
Menghasilkan kisi $L/lat/* memakan waktu 1,04x lebih lama untuk Rusia, 0,93x lebih panjang (!) Untuk bahasa Arab, 1,7x lebih lama untuk Tamil.