Per poter utilizzare gli esempi sonori che abbiamo registrato, dobbiamo trasformarli in un formato più conveniente, di veloce lettura e "comodo" per l'HTK.
Noi abbiamo registrato in formato wave, ma ci servono in formato mfcc (mel frequency cepstral coefficients), un formato veloce e opportuno per i nostri scopi.
Anche per questa operazione l'HTK ci aiuta con opportune funzioni di traduzione XD.
Apriamo risorse del computer, quindi C:, quindi cygwin, poi home, poi nomeUtente, poi voxforge, poi train.
Dentro la cartella train, crearne una nuova e chiamarla "mfcc".
Tornare in dietro fino alla cartella voxforge e aprire la cartella manual.
Dentro la cartella manual, creare un nuovo file e chiamarlo "codetrain.scp".
Il file codetrain.scp sarà un file di indirizzi che deve avere questa struttura:
(indirizzo di partenza file wave spazio indirizzo di destinazione file mfc)
../train/wav/sample1.wav ../train/mfcc/sample1.mfc
Per cui il nostro codetrain.scp, deve contenere all'interno tante righe quanti sono gli esempi sonori registrati.
ES:
Ho registrato 50 esempi sonori, da sample1.wav a sample50.wave, il mio codetrain.scp sarà:
../train/wav/sample1.wav ../train/mfcc/sample1.mfc
../train/wav/sample2.wav ../train/mfcc/sample2.mfc
../train/wav/sample3.wav ../train/mfcc/sample3.mfc
... ... ...
../train/wav/sample50.wav ../train/mfcc/sample50.mfc
Semplicemente copiate il rigo tra doppie virgolette (senza le doppie virgolette) dentro codetrain.scp, tante volte quanti esempi avete registrato:
"../train/wav/sample1.wav ../train/mfcc/sample1.mfc"
E dopo cambiate i due numeri "1" in numeri sempre crescenti, fino a coprire tutti gli esempi che avete registrato (e che sono contenuti nella cartella C:/cygwin/home/nomeUtente/voxforge/train/wav/).
Finita la scrittura di codetrain.scp, salvate e chiudete il file.
Andate nella cartella manual e create un nuovo file, chiamandolo "wav_config".
Dentro wav_config, scrivete il seguente testo tra virgolette (senza le virgolette):
"SOURCEFORMAT = WAV
TARGETKIND = MFCC_0_D
TARGETRATE = 100000.0
SAVECOMPRESSED = T
SAVEWITHCRC = T
WINDOWSIZE = 250000.0
USEHAMMING = T
PREEMCOEF = 0.97
NUMCHANS = 26
CEPLIFTER = 22
NUMCEPS = 12"
Salvate il file e chiudetelo.
Aprite la cygwin e scrivete:
cd voxforge (invio)
cd manual (invio)
dos2unix codetrain.scp (invio)
dos2unix wav_config (invio)
HCopy -A -D -T 1 -C wav_config -S codetrain.scp (invio)
Aspettate che tutti gli esempi vengano processati prima di chiudere la cygwin!
Dovreste vedere una serie di scritte nella cygwin, che indicano che HCopy sta:
-leggendo rigo per rigo il vostro codetrain.scp;
-per ogni rigo capisce che deve prendere il file wave indicato nel primo indirizzo e trasformarlo in .mfc, salvandolo nel secondo indirizzo;
-ogni traduzione da .wav a .mfc, deve essere effettuata con i parametri stabiliti in wav_config.
Avete appena concluso lo step 5 del tutorial di voxforge che trovate qui:
www.voxforge.org/home/dev/acousticmodels/windows/create/htkjulius/tutorial/data-pre...
..Nel prossimo post, creeremo una struttura dati chiamata "modelli nascosti di Markov" (HMM), che associa ad ogni suono fonetico (la pronuncia di una lettera), la corrispondente rappresentazione testuale..