24 시간 안에 40 시간의 기록 된 연설을 놀라운 언어로 기록하십시오.
사전 훈련 된 음향 모델, L 발음 사전 및 L 언어 모델에서 놀라운 언어 L에 대한 ASR을 구축하십시오. 이 접근법은 전화를 L 단어로 직접 변환합니다. 이것은 여러 교차 훈련 된 ASR을 사용하여 전화 문자열을 추출하고 ptgen에 의해 병합 된 영어 단어를 만드는 것보다 시끄 럽습니다.
성능 측정에 대한 전체 설명은 arxiv에 있습니다.
M Hasegawa-Johnson, L Rolston, C Goudeseune, Ga Levow 및 K Kirchhoff,
교차 언어 ASR에 대한 그래프-프로 넷 형질 도입, STAT. 랭. 연설 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)
일반적인 S5 디렉토리 옆에 Technology 's Phoneme Celloizer의 Brno U.를 넣으십시오.
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 분 (CTVE Mandarin의 경우 30)이 소요될 수 있으며 Dan Povey가 설명하는 것처럼 큰 언어 모델에서 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 (어디에서나 긁 었음) 최대 500K 라인에서 줄 당 약 10 단어를 넣습니다. 그들은 청소 될 것이기 때문에 상당히 시끄 럽습니다. $L/train_all/g2aspire.txt 에 G2P, 각각 grapheme, whitespace 및 space elimited Aspire 스타일 전화를 포함하는 수백 줄을 넣습니다.
Cr 라인 터미네이터가있는 경우 %s/^M/r/g 로 VI의 표준 thans로 변환하고 ^M 전에 Control-V를 입력하십시오.
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- 피스토 된 hclg.fst를 만듭니다../run_from_wordlist.sh $L 사용하십시오. 사용에 대한 스크립트를 참조하십시오.ifp-serv-03.ifp.illinois.edu에서 LDC 연설을 받고 8kHz .wav 파일의 평평한 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 를 읽습니다.$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 로 Jon May에 대한 SFTP 전사.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 명령에 추가하여 문자를 단순화하십시오.)cat $L/lat/*.ascii | sort > $L-nbest.txt .전사가 말도 안되는 영어 단어를 사용한 경우, 전화로 전환 한 다음 트리 또는 가장 긴 공통 서브 스트링을 통해 l-word로 변환하십시오.
./trie-$L.rb < trie1-scrips.txt > $L-trie-scrips.txt .make multicore-$L ; 기다리다; grep ... > $L-lcs-scrips.txt .RUS_20160930은 67 분, 13MB/분, 실시간보다 12 배 빠르게 기록되었습니다.
Assam LDC2016E02의 3.1 GB 서브 세트를 440 분, 7MB/분, 6.5 배 실시간으로 전사 하였다. (IFP-53의 기억을 지쳤 기 때문에 느리게되었을 수 있습니다.)
아랍어/nemlar_speech/nmbcn7ar, 2.2 GB (40 시간)는 147 분, 14MB/분, 16 배의 실시간으로 전사되었습니다. (이것은 많은 짧은 파일 대신 몇 시간 (30 분) 파일 이었기 때문에 더 빠를 수 있습니다.)
TAM_EVAL_20170601은 45 분, 21MB/분, 19 배의 실시간으로 전사되었습니다.
격자 $L/lat/* 생성은 러시아어의 경우 1.04 배, 아랍어의 경우 0.93 배 더 길고 타밀어의 경우 1.7 배 더 길었습니다.