ภายใน 24 ชั่วโมงถอดความคำพูดที่บันทึกไว้ 40 ชั่วโมงในภาษาเซอร์ไพรส์
สร้าง ASR สำหรับภาษาเซอร์ไพรส์ L จากโมเดลอะคูสติกที่ผ่านการฝึกอบรมมาก่อนพจนานุกรมการออกเสียง L และรูปแบบภาษา L วิธีการนี้แปลงโทรศัพท์โดยตรงเป็นคำ L นี่เป็นเสียงดังน้อยกว่าการใช้ ASR ที่ผ่านการฝึกอบรมข้ามหลายครั้งเพื่อให้คำภาษาอังกฤษซึ่งสกัดสตริงโทรศัพท์ถูกรวมเข้าด้วยกันโดย ptgen และสร้างขึ้นใหม่เป็นคำ l
คำอธิบายแบบเต็มพร้อมการวัดประสิทธิภาพอยู่บน arxiv และใน:
M Hasegawa-Johnson, L Rolston, C Goudeseune, Ga Levow และ K Kirchhoff
การถ่ายทอดกราฟเป็นฟอนิมสำหรับ ASR ข้ามภาษา, สถิติ หรั่ง คำพูด Proc.:3‒19, 2020
หากคุณยังไม่มี Kaldi รุ่นใหม่กว่าปี 2016 30 ก.ย. ให้รับและสร้างตามคำแนะนำในไฟล์ติดตั้ง
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. จากการจำแนกหน่วยการจำแนกของเทคโนโลยีถัดจากไดเรกทอรี 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 สามารถใช้เวลา 45 นาที (30 สำหรับ CTVE แมนดาริน) และใช้หน่วยความจำจำนวนมากเพราะเรียกว่า 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 คำต่อบรรทัดที่บรรทัดมากที่สุด 500k สิ่งเหล่านี้อาจมีเสียงดังมากเพราะพวกเขาจะได้รับการทำความสะอาด เป็น $L/train_all/g2aspire.txt ใส่ G2P สองสามร้อยบรรทัดแต่ละอันที่มีกราฟ (S) ช่องว่างและโทรศัพท์สไตล์ Aspire ที่คั่นด้วยอวกาศ
หากมี cr line terminators ให้แปลงเป็นมาตรฐานใน vi ด้วย %s/^M/r/g การพิมพ์ control-v ก่อน ^M
หากเริ่มต้นด้วย BOM ให้ลบออก: vi -b g2aspire.txt และเพียงแค่ x ตัวละครนั้นออกไป
หากคุณต้องการสร้าง G2P, ./g2ipa2asr.py $L_wikipedia_symboltable.txt aspire2ipa.txt phoibletable.csv > $L/train_all/g2aspire.txt
./run.sh $L ทำให้ l-customized hclg.fst./run_from_wordlist.sh $L ดูสคริปต์นั้นสำหรับการใช้งานบน IFP-serv-03.ifp.illinois.edu รับคำพูด ldc และแปลงเป็น dir แบน 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 Core แต่ละงานแต่ละงานมีระยะเวลาเสียงเดียวกัน$L-8khz , DIR ของไฟล์คำพูด 8 kHz$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 พร้อมเวลาเวลา 11 มิถุนายนและเวอร์ชัน 8grep -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หากการถอดความของคุณใช้คำภาษาอังกฤษไร้สาระให้แปลงเป็นโทรศัพท์แล้วผ่านสายย่อยที่มีความยาวหรือยาวที่สุดเป็น l-words:
./trie-$L.rb < trie1-scrips.txt > $L-trie-scrips.txtmake multicore-$L ; รอ; grep ... > $L-lcs-scrips.txtRUS_20160930 ถูกถอดความใน 67 นาที 13 MB/นาทีเร็วกว่าเวลาจริง 12x
ชุดย่อย 3.1 GB ของ Assam LDC2016E02 ถูกถอดความใน 440 นาที, 7 MB/นาที, 6.5x เรียลไทม์ (สิ่งนี้อาจช้าลงเพราะหน่วยความจำของ IFP-53 หมดลง)
ภาษาอาหรับ/nemlar_speech/nmbcn7ar, 2.2 GB (40 ชั่วโมง) ถูกถอดความใน 147 นาที, 14 MB/นาที, 16x เรียลไทม์ (นี่อาจเร็วกว่านี้เพราะมันเป็นไฟล์ที่ยาว (ครึ่งชั่วโมง) แทนไฟล์สั้น ๆ มากมาย)
TAM_EVAL_20170601 ถูกถอดความใน 45 นาที, 21 MB/นาที, 19x เรียลไทม์
การสร้าง lattices $L/lat/* ใช้เวลานานกว่า 1.04x สำหรับรัสเซียนานกว่า 0.93x (!) สำหรับภาษาอาหรับยาว 1.7x สำหรับทมิฬ