재 미 있 는 오픈 소스 소프트웨어: 음성 인식 도구 Kaldi (2)
6203 단어 speech
Kaldi 소스 코드 트 리 에 egs 라 는 폴 더 가 있 습 니 다. 이 폴 더 에는 공공 데이터 세트 에서 의 훈련 절차 (셸 스 크 립 트) 와 테스트 결과 가 저장 되 어 있 습 니 다.그 중에서 중국어 의 음성 인식 공공 데이터 세트 는 모두 세 가지 가 있 는데 그것 이 바로
디 렉 터 리 구조
hkust 데이터 세트 와 관련 된 스 크 립 트 및 실험 결 과 는 kaldi/egs/hkust 에 있 습 니 다. 디 렉 터 리 구 조 는 다음 과 같 습 니 다.
.
├── README.txt
└── s5
├── cmd.sh
├── conf
│ ├── cmu2pinyin
│ ├── decode.config
│ ├── fbank.conf
│ ├── mfcc.conf
│ ├── pinyin2cmu
│ └── pinyin_initial
├── local
│ ├── create_oov_char_lexicon.pl
│ ├── ext
│ │ ├── 195k_chinese_word2char_map
│ │ ├── hkust_word2ch_tran.pl
│ │ ├── score_basic_ext.sh
│ │ └── score.sh
│ ├── hkust_data_prep.sh
│ ├── hkust_extract_subdict.pl
│ ├── hkust_format_data.sh
│ ├── hkust_normalize.pl
│ ├── hkust_prepare_dict.sh
│ ├── hkust_segment.py
│ ├── hkust_train_lms.sh
│ ├── nnet
│ │ ├── run_cnn.sh
│ │ ├── run_dnn.sh
│ │ └── run_lstm.sh
│ ├── nnet2
│ │ ├── run_5d.sh
│ │ └── run_convnet.sh
│ ├── nnet3
│ │ ├── run_ivector_common.sh
│ │ ├── run_lstm.sh
│ │ └── run_tdnn.sh
│ ├── score_basic.sh
│ ├── score_sclite_conf.sh
│ ├── score_sclite.sh
│ └── score.sh
├── path.sh
├── RESULTS
├── run.sh
├── steps -> ../../wsj/s5/steps
└── utils -> ../../wsj/s5/utils
그 중에서 README. txt 는 이 데이터 세트 에 대한 설명 적 인 것 으로 이 데이터 세트 에 익숙 하지 않 으 면 가서 볼 수 있다.
s5/run. sh 는 이 데이터 세트 에 있 는 모든 훈련 절 차 를 포함 하고 데이터 예비 처리, 훈련 및 테스트 gmm/dn/lstm/blstm/tdnn 등 모델, 실험 결과 통 계 를 포함 한 각종 스 크 립 트 를 포함한다.이론 적 으로 관련 환경 설정 이 정확 하면 run. sh 를 실행 하면 전체 훈련 절 차 를 완성 할 수 있다.하지만 Kaldi 의 공식 문 서 는 이 파일 에 있 는 스 크 립 트 를 셸 에 한 걸음 한 걸음 붙 여 넣 고 실행 하 는 것 을 권장 합 니 다.이렇게 하면 오 류 를 쉽게 발견 할 수 있 을 뿐만 아니 라 Kaldi 의 전체 운행 절차 에 대해 서도 알 수 있다.
s5/RESULTS 에는 최근 의 실험 결과 가 보존 되 어 있다.여기 간단하게 몇 개 붙 여 주세요. (CER 즉 character error rate)
s5/conf 는 훈련 에 필요 한 프로필 입 니 다.
s5/{local, steps, utils} 에는 run. sh 가 사용 할 스 크 립 트 파일 이 있 습 니 다.
데이터 처리
run. sh 의 첫 부분 은 주로 데이터 의 예비 처리 절차 입 니 다. 실행 하기 전에 먼저 hkust 의 데 이 터 를 고정된 곳 에 두 십시오 (STEP 1 에서 사 용 됩 니 다).그리고 run. sh 가 있 는 경로 로 전환 합 니 다. 제 컴퓨터 에서 ~/Documents/kaldi/egs/hkust/s 5 에 있 습 니 다.
$ pwd
/home/ling0322/Documents/kaldi/egs/hkust/s5
이 실험 은 단기 달리기 이기 때문에 cmd. sh 의 몇 가지 명령 을 실행 하고 quue. pl 을 run. pl 로 수정 해 야 합 니 다.
$ export train_cmd="run.pl --mem 8G"
$ export decode_cmd="run.pl --mem 8G"
$ export mkgraph_cmd="run.pl --mem 12G"
이 환경 변 수 를 export 에 내 보 내 고 run. sh 의 스 크 립 트 를 한 걸음 한 걸음 실행 할 수 있 습 니 다.
STEP 1
$ local/hkust_data_prep.sh /home/ling0322/Documents/hkust-data/LDC2005S15 /home/ling0322/Documents/hkust-data/LDC2005T32
이 단 계 는 hkust 와 의 데 이 터 를 data 폴 더 에 복사 하고 데이터 형식의 변환 작업 을 하 는 것 입 니 다. 그 동안 mmseg 에서 텍스트 에 대한 간단 한 단 어 를 사용 할 것 입 니 다.
STEP 2
다음 작업 은 음소 사전 을 만 드 는 것 이다. 음소 사전 은 모든 단어 발음 에 포 함 된 음절 서열 을 기록 하고 있다.예 를 들 어 중국어 단어의 음소 는 성모 운모 가 분 리 된 서열 일 수 있 고 이런 규칙 에 따라 '테스트' 와 같은 음소 서열 은 'c e4 sh i4' 일 수 있다.
그러나 이 스 크 립 트 를 성공 적 으로 실행 하려 면 의존 하 는 환경 을 설치 해 야 합 니 다.
$ sudo apt install gawk swig python-numpy python-dev
$ local/hkust_prepare_dict.sh
출력 에서 출력 을 간단하게 검사 합 니 다. 특히 아래 두 줄 의 첫 번 째 열 숫자 를 검사 합 니 다. 0 이 라면 위의 한 단계 가 잘못 되 었 습 니 다.
10894 data/local/dict/lexicon-ch/words-ch-oov.txt
19467 data/local/dict/lexicon-ch/lexicon-ch-iv.txt
STEP 3
다음은 tri - phone 모델 을 준비 하 는 의사 결정 트 리 question 집합 및 Transducer L 컴 파일 입 니 다.Transducer L 은 음소 서열 을 단어 서열 로 비 추 는 데 사용 합 니 다.각 Transducer 가 무슨 소 용이 있 는 지 에 대해 서 는 Some Kaldi Notes 를 참고 하 세 요.Transducer 가 무엇 인지 구체 적 으로 알 아 보 려 면 이 paper: Speech Recognition with Weighted Finite - State Transducers 를 보 러 가 야 합 니 다.
$ utils/prepare_lang.sh data/local/dict "" data/local/lang data/lang
이 어 3 - gram 의 언어 모델 을 훈련 시 켜 이 언어 모델 로 Transducer G 를 생 성 한 뒤 L 과 G 라 는 두 개의 Transducer 를 맞 춰 Transducer LG 를 만 들 었 다.Transducer LG 는 주어진 입력 의 음소 시퀀스 에 사용 할 수 있 으 며, 3 - gram 언어 모델 (G) 을 사용 해 가장 유력 한 단어 시퀀스 를 찾 아 낼 수 있다.
$ local/hkust_train_lms.sh
$ local/hkust_format_data.sh
보다
Done training LM of type 3gram-mincount
그리고
hkust_format_data succeeded
이 단 계 는 성공 했다.
STEP 4
이제 음성 데이터 에서 MFCC 특징 을 추출 할 수 있 습 니 다.MFCC 중국 어 는 멜 주파수 역 보 계수 라 고 부 르 며 가능 한 한 인간 청각 시스템 에 접근 하여 추출 한 음성 특징의 표현 방법 이다.이 약간 편향 신호 처 리 는 구체 적 인 과정 에서 음성 신호 처리 와 관련 된 책 을 참고 할 수 있다.
다음 절 차 를 실행 하기 전에 $train 을 다시 확인 하 는 것 이 좋 습 니 다.cmd 설정 이 올 바른 지 여부
$ echo "$train_cmd"
run.pl --mem 8G
그리고 실행
$ mfccdir=mfcc
$ for x in train dev; do
$ steps/make_mfcc.sh --cmd "$train_cmd" --nj 10 data/$x exp/make_mfcc/$x $mfccdir || exit 1;
$ steps/compute_cmvn_stats.sh data/$x exp/make_mfcc/$x $mfccdir || exit 1;
$ done
STEP 5
마지막 단 계 는 훈련 데 이 터 를 정리 하고 쓸모없는 부분 을 제거 하 는 것 이다.
$ utils/fix_data_dir.sh data/train
fix_data_dir.sh: kept 197387 utterances out of 197391
fix_data_dir.sh: old files are kept in data/train/.backup
이로써 데이터 준비 와 예 처리 단계 가 성공 적 으로 완성 되 었 고 이어서 훈련 모델 단 계 를 시작 할 수 있 게 되 었 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
23. Speech SynthesisText to Speech 기능 구현 voice 종류, rate, pitch도 함께 설정 (Html 상의 input value 연동) SpeechSynthesis API : text to speech 기능 구현 시 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.