1. Data Preparation
[Command] hslab one.wav
[Rec] Start recording
[Stop] recording ends
[Mark] select the region to be marked
[Labelas] enter the annotation and press enter to confirm
[Save] Save
Three parts of Isolated Word tagging: Start mute (SIL) word speech (one) end mute (SIL)
Follow these steps to record the training set and Test Set
Write ebnf grammar and generate the final Decoding Network
[Command] hparse-T 1 gram.txt net. SF
[Gram.txt]
# Word = one | two | three;
# ({Start_sil} [$ word] {end_sil })
2. Feature Extraction
[Command] hcopy-C hcopy. conf-s train. MFCC. List-a-d-T 1
-C configuration file
-S list of feature extraction files
-A: displays command line parameters.
-D: Display configuration settings
-T 1: displays information about algorithm actions.
[Hcopy. conf]
Ourceformat = HTK
Sourcerate = 625
Targetkind = mfcc_0_d_a
Targetrate = 100000
Windowsize = 250000.0
Usehamming = T
Preemcoef = 0.97
Numceps = 12
Note:
Sourcerate = 625
# T = 62500ns = 0.0625 Ms = 0.0000625 S, sample = 1/T = 1/0. 0000625 = 16000 = 16 kHz
# T = 1250ns = 0.1250 Ms = 0.0001250 S, sample = 1/T = 1/0. 0001250 = 8000 = 8 kHz
Targetrate = 100000
# T = 10 ms
Windowsize = 250000
# T = 25 ms
# | _ |
# | _ |
# |
# A B C
# A --> B: targetrate (frame move)
# A --> C: windowsize (frame length)
[Train. MFCC. LIST]
/Disk2/data/train/one.wav/disk2/data/train/One. MFCC
....
3. initialize HMM Model
[Command] hinit-a-d-T 1-I 10-l data/train/lab/One/-C data/hinit. conf-m hmm/hmm.0/proto/one data/train/WAV/one _*. MFCC
[Proto/One] basic hmm file needs to be manually generated
4. multiple iterative hmm Models
[Command] hrest-a-d-T 1-I 10-l data/train/lab/One/-C data/hrest. conf-m hmm/hmm.1/HMM/hmm.0/one data/train/WAV/one _*. MFCC
The HMM model is actually used to train the HMM of each isolated word. its correspondence with the dictionary content is as follows:
[Dict]
# S_sil SIL
# E_sil
# One on
# Two TW
# Three th
If the dictionary is the above, the HMM model we train is the HMM Model of Sil, on, TW, and th, and then the HMM model of each phoneme is generated through multiple iterations.
Merge all Phoneme HMM models and remove
#~ O
# <Streaminfo> 1 39
# <Vecsize> 39 <nulld> <mfcc_d_a_0> <diagc>
It is retained only once at the beginning, which produces a HMM Model for all phoneme.
5. decoding and Testing
[Command] hvite-a-d-T 1-h hmm/hmm.3/hmmdef-l test/-W netlattce/net. SF netlattce/dict netlattce/hmmlist data/test/WAV /*. MFCC
[Hmmlist] Each phoneme has its own line
[Command] hresults-a-d-T 1-I ref. MLF lab. lst Rec. MLF
[Ref. MLF]
##! MLF! #
# "*/One. Lab"
#2300 one
#.
[Rec. MLF]
##! MLF! #
# "*/One. Lab"
#2300 4500000 one-1245
#.
The screen will output the final recognition result
Simple process of HTK Isolated Word Recognition