حسنًا في غضون 24 ساعة ، قم بنسخ 40 ساعة من الكلام المسجل بلغة مفاجئة.
قم ببناء ASR للغة المفاجئة L من نموذج صوتي تم تدريبه مسبقًا ، وقاموس النطق L ، ونموذج لغة L. هذا النهج يحول الهواتف مباشرة إلى كلمات ل. هذا أقل صاخبة من استخدام ASRs المدربين متعددة من أجل صنع كلمات إنجليزية يتم استخراج سلاسل الهاتف منها ، ودمجها بواسطة PTGen ، وإعادة تشكيلها في كلمات L.
وصف كامل مع قياسات الأداء على Arxiv ، وفي:
M Hasegawa-Johnson ، L Rolston ، C Goudeseune ، GA Levow ، و K Kirchhoff ،
تحويل GRAPHEME إلى PHONEME لـ ASR عبر اللغة ، STAT. لانغ. خطاب بروك: 3-19 ، 2020.
إذا لم يكن لديك بالفعل إصدار من Kaldi أحدث من 2016 سبتمبر ، احصل عليه وإنشائه باتباع الإرشادات في ملفات التثبيت الخاصة به.
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
tree EXP conf/ TDNN_7B_CHAIN_ONLINE هذا final.mdl الملفات phones.txt
هذا يبني data الدلائل الفرعية و exp . يمكن أن يستغرق الأمر آخر أمرها mkgraph.sh 45 دقيقة (30 لـ CTVE Mandarin) واستخدام الكثير من الذاكرة لأنه يدعو fstdeterminizestar على نموذج لغة كبير ، كما يوضح دان بوفي.
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 كلمات لكل سطر ، على الأقل 500 ألف خط. قد تكون هذه صاخبة للغاية ، لأنه سيتم تنظيفها. في $L/train_all/g2aspire.txt وضع G2P ، بضع مئات من الخطوط التي تحتوي على كل منها Grapheme (s) ، المسافة البيضاء ، والهواتف على طراز Aspire.
إذا كان يحتوي على محطات خط CR ، فقم بتحويلها إلى تلك القياسية في 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./run_from_wordlist.sh $L . انظر هذا البرنامج النصي للاستخدام.على IFP-Serv-03.ifp.illinois.edu ، احصل على خطاب LDC وقم بتحويله إلى ملف مسطح من 8 كيلو هرتز .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 إلى وظيفة واحدة لكل وحدة المعالجة المركزية ، كل وظيفة بنفس مدة الصوت تقريبًا.$L-8khz ، DIR من ملفات الكلام 8 كيلو هرتز.$L-submit.sh ../$L-submit.shgrep -h -e '^TAM_EVAL' $L/lat/*.log | sort > $L-scrips.txt (أو ... ^RUS_ ، ^BABEL_ ، إلخ).elisa.tam-eng.eval-asr-uiuc.y3r1.v8.xml.gz ، مع الطابع الزمني في 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' .)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 ميجابايت/دقيقة ، وأسرع 12x من الوقت الحقيقي.
تم نسخ مجموعة فرعية 3.1 جيجابايت من Assam LDC2016E02 في 440 دقيقة ، 7 ميجابايت/دقيقة ، 6.5x في الوقت الفعلي. (قد يكون هذا أبطأ لأنه استنفد ذاكرة IFP-53.)
تم نسخ اللغة العربية/nemlar_speech/nmbcn7ar ، 2.2 جيجابايت (40 ساعة) ، في 147 دقيقة ، 14 ميجابايت/دقيقة ، 16x في الوقت الحقيقي. (قد يكون هذا أسرع لأنه كان بضع ملفات طويلة (نصف ساعة) بدلاً من العديد من الملفات القصيرة.)
تم نسخ TAM_EVAL_20170601 في 45 دقيقة ، 21 ميجابايت/دقيقة ، 19x في الوقت الفعلي.
استغرق توليد lattices $L/lat/* أطول 1.04x للروسية ، 0.93x أطول (!) للعربية ، 1.7x أطول للتاميل.