Nous avons résumé les prédictions phonétiques à l'aide du Microsoft Cognitive Toolkit (CNTK).
Dans la partie 1, nous préparerons la prédiction phonétique.
Je vais les présenter dans l'ordre suivant.
Le jeu de données audio d'exemple ATR [1] est un jeu de données d'énoncés composé des phonèmes de la base de données ATR.
Téléchargez et décompressez atr_503_v1.0.tar.gz à partir du lien ci-dessus. Les données audio existent dans le fichier .ad sous le répertoire de parole, et l'étiquette phonétique utilisée cette fois est le fichier .lab sous l'ancien répertoire sous étiquette / monophone.
La structure des répertoires cette fois est la suivante.
CTCR |―atr_503 |―label |―speech |―... ctcr_atr503.py MGCC
Les données audio sont stockées dans un type entier signé big-endian 16 bits avec une fréquence d'échantillonnage de 16 000, de sorte que la plage de valeurs est divisée par la valeur maximale de 2 $ ^ {16} / 2-1 = 32 767 $ [-1, 1] Normaliser à.
Cette fois, le coefficient Mel Frequency Cepstrum (MFCC) a été calculé à partir des données audio. Le nombre de fonctionnalités utilisées est de 13 dimensions.
De plus, une accentuation haute fréquence est appliquée aux données audio en tant que prétraitement. De plus, les différenciations de premier et de second ordre de MFCC sont combinées pour créer un total de quantités de caractéristiques à 39 dimensions.
Les fonctionnalités créées sont écrites et enregistrées sous forme de fichier binaire au format HTK (Hidden Markov Toolkit).
Au cours de cette formation, nous utiliserons HTKDeserializer et HTKMLFDeserializer, qui sont l'un des lecteurs intégrés spécialisés dans la reconnaissance vocale.
Le flux de traitement général du programme qui prépare la prédiction phonétique est le suivant.
・ Processeur Intel (R) Core (TM) i7-6700K 4,00 GHz
・ Windows 10 Professionnel 1909 ・ Python 3.6.6 ・ Librosa 0.8.0 ・ Numpy 1.19.2 ・ Pandas 1.1.2 ・ Scikit-learn 0.23.2 ・ Scipy 1.5.2
Le programme implémenté est publié sur GitHub.
ctcr_atr503.py
Il complète le contenu essentiel du programme à exécuter.
La puissance de la voix est atténuée à mesure qu'elle augmente, de sorte que l'amélioration des hautes fréquences est utilisée pour la compenser. En supposant que la fréquence est $ f $ et la fréquence d'échantillonnage est $ f_s $, le filtre à réponse impulsionnelle finie (FIR) du premier ordre $ H (z) $ utilisé comme filtre passe-haut est exprimé par l'équation suivante.
H(z) = 1 - \alpha z^{-1} \\
z = \exp(j \omega), \omega = 2 \pi f / f_s
Généralement, $ \ alpha = 0.97 $ est utilisé.
Mel Frequency Kepstram convertit le spectre de puissance du spectrogramme Mel utilisé dans Speech Recognition: Genre Classification Part1 --GTZAN Genre Collections en décibels, puis en conversion cosinus discrète. Obtenu en postulant.
Cepstrum [2] est un anagramme de Spectrum qui peut séparer les fluctuations fines et douces du spectre et représenter les caractéristiques de la voix humaine.
De plus, afin de capturer le changement d'heure de la quantité de caractéristiques, la différence entre les images adjacentes est également ajoutée en tant que quantité de caractéristiques. Cela s'appelle Delta Keptram [3], et cette fois, non seulement la différenciation du premier ordre mais aussi la différenciation du second ordre est calculée et utilisée comme quantité de caractéristiques.
L'un des lecteurs intégrés de CNTK, HTKDeserializer et HTKMLFDeserializer, nécessite trois fichiers: un fichier de liste, un fichier de script et un fichier d'étiquette de modèle.
Le fichier de liste doit avoir l'étiquette phonétique à utiliser de manière unique, comme indiqué ci-dessous. Ajoutez également _ comme caractère vide.
atr503_mapping.list
A
E
...
z
_
Le contenu du fichier de script est le suivant: Écrivez le chemin où le fichier au format HTK est enregistré sur le côté droit du nombre égal et écrivez le nombre d'images entre crochets. Notez que le début du nombre d'images doit être 0 et la fin doit être soustraite du nombre d'images.
train_atr503.scp
train_atr503/00000.mfc=./train_atr503/00000.htk[0,141]
train_atr503/00001.mfc=./train_atr503/00001.htk[0,258]
...
Le côté gauche du nombre égal dans le fichier de script doit correspondre au fichier d'étiquette de modèle. Le contenu du fichier de fichier d'étiquette de modèle est le suivant, et le cadre et l'étiquette phonétique commencent à partir de la deuxième ligne. L'espacement des cadres doit être supérieur ou égal à 1, et 5 0 doivent être ajoutés par conception. Les informations d'étiquette sont séparées par des points.
train_atr503.mlf
#!MLF!#
"train_atr503/00000.lab"
0 1600000 sil
1600000 1800000 h
...
13600000 14200000 sil
.
"train_atr503/00001.lab"
0 400000 sil
400000 1100000 s
...
Lorsque vous exécutez le programme, il génère des fonctionnalités et enregistre un fichier binaire au format HTK. En même temps, écrivez le cadre et l'étiquette phonétique.
Number of labels : 43
Number of samples 452
Number of samples 51
Maintenant que vous êtes prêt à vous entraîner, la partie 2 fera les prédictions phonétiques.
CNTK 208: Training Acoustic Model with Connectionist Temporal Classification (CTC) Criteria
Speech Recognition : Genre Classification Part1 - GTZAN Genre Collections
Recommended Posts