FMLLR
FMLLR신호 처리에서 기능 공간 최대우도 선형 회귀(fMLR)는 일반적으로 스피커 적응 방식으로 적용되는 글로벌 기능 변환입니다.fMLR은 변환 매트릭스를 사용한 곱셈 연산을 통해 음향 기능을 스피커 적응 기능으로 변환합니다.일부 문헌에서는 fMLLR을 cMLLR(Constrainted Maximum Liability Linear Regression)이라고도 합니다.
fMLLR 변환은 적응 데이터에 대한 최대우도 감각으로 훈련된다.이러한 변환은 여러 가지 방법으로 추정할 수 있지만 fMLLR에서는 최대우도(ML) 추정만 고려됩니다.fMLLR 변환은 현재 모델 집합에서 적응 데이터의 가능성을 최대화하기 위해 특정 적응 데이터 집합에 대해 훈련된다.
이 기술은 HMM 기반 음성 [1][2]인식에서 스피커 적응을 위해 널리 사용되는 접근법이다.
또한[3] 이후 연구는 fMLLR이 DNN/HM[4] 하이브리드 음성 인식 모델에 뛰어난 음향 기능임을 보여준다.
fMLLR의 장점은 다음과 같습니다.
- 적응 프로세스는 전처리 단계 내에서 수행될 수 있으며 ASR 교육 및 디코딩 프로세스와 독립적입니다.
- 이 유형의 적응된 기능은 엔드 투 엔드 음성 인식 모델에서 전통적으로 사용되는 멜 스펙트럼 프로그램을 대체하기 위해 심층 신경 네트워크(DNN)에 적용할 수 있다.
- fMLLR의 스피커 적응 프로세스는 ASR 모델의 성능을 크게 향상시켜 MFCC(Mel-Frequency Cepstral Cepstral Ceffructions) 및 FBANK(Filter Bank) 계수 등의 다른 변환 또는 기능을 능가합니다.
- 칼디와 같은 음성 툴킷으로 fMLLR 기능을 효율적으로 구현할 수 있습니다.
fMLLR의 주요 문제 및 단점:
- 적응 데이터의 양이 제한되면 변환 행렬이 주어진 데이터를 쉽게 과적합하는 경향이 있습니다.
fMLLR 변환 계산
fMLLR의 특징 변환은 오픈 소스 음성 도구 Kaldi를 사용하여 쉽게 계산할 수 있으며, Kaldi 스크립트는 원본 [1]논문의 부록 B, 특히 부록 B.1 "행 위의 직접 방법" 섹션에 설명된 표준 추정 체계를 사용합니다.
Kaldi 공식에서 fMLLR은 xx) A(\x +(\ 의 아핀 기능 변환입니다. 서 xx) ) {\hat} ) { \ 1 { bmatrix})은 음향 x({ x })에 1이 추가됩니다.이는 1이 x [ x로 선두가 되는 일부 문헌과는 다릅니다.
저장된 충분한 통계 정보는 다음과 같습니다.
여기서 -1 { _은 역공분산 매트릭스입니다.
0 D 、 D ( \ 0 \ i \ D) 。서는 피처 치수입니다.
fMLLR 및 일반적으로 사용되는 추정 기법을 설명하는 자세한 검토는 원본 논문 "HMM 기반 음성 인식을[1] 위한 최대 우도 선형 변환"을 참조하십시오.
fMLLR의 기능 변환을 실행하는 Kaldi 스크립트는 보조 요인 행 대신 역행 열을 사용하여와 다릅니다.즉, 변환 결과에 영향을 주지 않고 수치 언더플로우 또는 오버플로우의 잠재적 위험을 야기할 수 있으므로 결정 인자는 무시됩니다.
다른 기능 또는 변환과의 비교
실험 결과에 따르면 음성 인식에 fMLLR 기능을 사용하면 일반적으로 사용되는 다양한 벤치마크 데이터 세트(TIMIT, LibriSpeech 등)의 다른 음향 기능보다 지속적으로 개선된다.
특히 fMLLR 기능은 MFCC 및 FBANK 계수를 능가합니다.이는 주로 fMLLR이 수행하는 스피커 적응 프로세스에 [3]기인합니다.
그럼,[3] 다양한 신경 아키텍처를 가진 TIMIT의 테스트 세트에 대해 음소 오류율(PER, %)이 보고됩니다.
| 모델/기능 | MFCC | F뱅크 | fMLR |
|---|---|---|---|
| MLP | 18.2 | 18.7 | 16.7 |
| RNN | 17.7 | 17.2 | 15.9 |
| LSTM | 15.1 | 14.3 | 14.5 |
| GRU | 16.0 | 15.2 | 14.9 |
| Li-GRU | 15.3 | 14.9 | 14.2 |
예상대로, fMLLR 기능은 다른 모델 아키텍처를 사용함에도 불구하고 MFCC 및 FBANK 계수를 능가합니다.
여기서 MLP(다층 퍼셉트론)는 단순한 베이스라인으로 기능하지만 RNN, LSTM 및 GRU는 모두 잘 알려진 반복 모델입니다.
Li-GRU[5] 아키텍처는 단일 게이트에 기반하므로 표준 GRU 모델인 Li-GRU에 비해 계산의 33%를 절약할 수 있으므로 반복 모델의 경사 소실 문제를 효과적으로 해결할 수 있습니다.
그 결과, fMLLR 기능에 관한 Li-GRU 모델에서 최고의 성능을 얻을 수 있습니다.
Kaldi에서 fMLLR 기능을 추출하다
fMLLR은 Kaldi의 s5 레시피에서 보고한 대로 추출할 수 있다.
Kaldi 스크립트는 확실히 다른 데이터 세트 상에서 fMLLR 기능을 추출할 수 있습니다.다음은 오픈소스 음성 회사 Librispeech에서 fMLLR 기능을 추출하는 기본적인 예를 나타냅니다.
아래 설명은 서브셋용입니다.train-clean-100,train-clean-360,dev-clean,그리고.test-clean,
다른 세트를 지원하기 위해 쉽게 확장할 수 있습니다.dev-other,test-other,그리고.train-other-500.
- 이 명령어는 이 GitHub 저장소에서 제공되는 코드를 기반으로 합니다.이 저장소는 LibriSpeech 코퍼라에 Kaldi 레시피를 포함하고 있으며 fMLLR 기능 추출 프로세스를 실행하고 아래 파일을 교체합니다.
$KALDI_ROOT/egs/librispeech/s5/파일을 저장소로 보냅니다. - Kaldi를 설치합니다.
- Kaldiio를 설치합니다.
- 단일 머신에서 실행 중인 경우 에서 다음 행을 변경합니다.
$KALDI_ROOT/egs/librispeech/s5/cmd.sh교체하다queue.pl로.run.pl:수출. train_filename(열차)="run.pl --mem 2G" 수출. 복호화_복호화="run.pl --mem 4G" 수출. mkgraph_displaces="run.pl --mem 8G"
- 를 변경하다
data패스인run.shLibri Speech 데이터 경로, 디렉토리LibriSpeech/그 경로 아래에 있어야 합니다.예를 들어 다음과 같습니다.data=/media/user/SSD # 예제 경로
- 설치하다
flac포함:sudo apt-get install flac - 칼디 레시피 실행
run.shLibri Speech 에서는, 적어도 스테이지 13(최소)까지는, 간단하게 변경 후의 run.sh 를 사용할 수 있습니다. - 알았다.
exp/tri4b/trans.*줄지어 들어가다.exp/tri4b/decode_tgsmall_train_clean_*/다음 명령어를 사용합니다.mkdir exp/tri4b/tgsmall_train_clean_100 & & cp exp/tri4b/trans.* exp/tri4b/syslog_tgsmall_train_clean_100/ - 다음 스크립트를 실행하여 fMLLR 기능을 계산합니다.이 스크립트는 여기에서 다운로드할 수도 있습니다.
#!/bin/module ./cmd.sh ## cmd를 변경해야 합니다.시스템에서 동작할 수 있는 것으로 변경합니다. ./path.sh ## 툴/솔루션(큐를 Import)을 송신합니다.pl) gmmdir=exp/tri4b dev_clean test_clean train_clean_100 train_clean_360의 청크에 대해 dir=fmlr/$syslog steps/nnet/make_fmlr_feats.sh --nj 10 --syslog "$train_feats"\ --syslog-syslog $gmmdir/syslog_tgsmall_$syslog\ $syslog 데이터/$syslog$gmmdir$syslog$syslog/data exit1 compute - cmvn - spk2utt = ark : data / $spk2utt scp : fmlr / $sp / feats . scp ark : $sp / data / cmvn _ scp arc : 。방주다 했어요.
- 다음을 사용하여 정렬 계산:
dev_clean 및 test_clean에서의 정렬 수 stepes/align_fmlr.sh --nj 10 데이터/dev_clean 데이터/tri4b exp/tri4b_ali_dev_cleanstepes/align_fmlr.sh --nj 10 데이터/test_clean 데이터/tri4b exp/tri4b_ali_test_cleanstepes/align_fmlr.sh --nj 30 데이터/train_clean_100 데이터/tri4b exp/tri4b_ali_clean_100stepes/align_fmlr.sh --nj 30 데이터/train_clean_360 데이터/tri4b exp/tri4b_ali_clean_360
- CMVN을 적용하여 fMLLR 기능을 새로운 .ark 파일에 덤프합니다.스크립트는 여기서도 다운로드할 수 있습니다.
#!/bin/module data=/user/kaldi/egs/s5 ## 시스템에서 작동하는 경로로 변경해야 합니다. rm - data / fmlr _ cmvn / $ $datadata$data / fmlrmkdir $data/fmlr_cmvn/ dev_clean test_clean train_clean_100 train_clean_360; do의 일부입니다. mkdir $data/fmlr_cmvn/$part/apply-cmvn --utt2spk=ark:$data/fmlr/$part/utt2spk ark:$data/$part/cmvn_part.ark scp:$data/fmlr/$part/feats.scp ark:add-deltas --fmltas-order=0 arc:$part-fmllllllll/$다 했어요. du -sh $data/fmlr_cmvn/* 메아리치다"끝났어!"
- Python 스크립트를 사용하여 Kaldi에서 생성된 .ark 기능을 자신의 데이터레이더용으로 .npy로 변환합니다.Python 스크립트의 예를 다음에 나타냅니다.
python ark2libri.화이
「 」를 참조해 주세요.
레퍼런스
- ^ a b c d M.J.F. Gales (1998). "Maximum likelihood linear transformations for HMM-based speech recognition". Computer Speech & Language. 12 (2): 75–98. CiteSeerX 10.1.1.37.8252. doi:10.1006/csla.1998.0043.
- ^ Jing Huang; E Marcheret; K Visweswariah (2005). Rapid Feature Space Speaker Adaptation for Multi-Stream HMM-Based Audio-Visual Speech Recognition. IEEE International Conference on Multimedia and Expo (ICME). IEEE. pp. 338–341. doi:10.1109/ICME.2005.1521429.
- ^ a b c d Ravanelli, Mirco; Parcollet, Titouan; Bengio, Yoshua (2018-11-18). "The PyTorch-Kaldi Speech Recognition Toolkit". arXiv:1811.07453 [eess.AS].
- ^ Li, Longfei; Zhao, Yong; Jiang, Dongmei; Zhang, Yanning; Wang, Fengna; Gonzalez, Isabel; Valentin, Enescu; Sahli, Hichem (September 2013). "Hybrid Deep Neural Network--Hidden Markov Model (DNN-HMM) Based Speech Emotion Recognition". 2013 Humaine Association Conference on Affective Computing and Intelligent Interaction. IEEE: 312–317. doi:10.1109/acii.2013.58. ISBN 978-0-7695-5048-0. S2CID 9665019.
- ^ Ravanelli, Mirco; Brakel, Philemon; Omologo, Maurizio; Bengio, Yoshua (2017-08-20). "Improving Speech Recognition by Revising Gated Recurrent Units". Interspeech 2017. ISCA: ISCA: 1308–1312. arXiv:1710.00641. Bibcode:2017arXiv171000641R. doi:10.21437/interspeech.2017-775. S2CID 1696099.