Paramétrisation acoustique

Introduction

La paramétrisation acoustique consiste à extraire du signal audio les informations pertinentes pour la reconnaissance de la parole. Il s'agit de calculer une séquence de vecteurs numériques, ces vecteurs portant l'information utile pour le traitement automatique de la parole.

En convertissant le signal audio sous forme de vecteurs, plusieurs objectifs sont visés. Tout d'abord la réduction de la taille des données. Supposons qu'un signal audio soit représenté par une forme d'onde (waveform en anglais) stockée dans un fichier .wav au format PCM (Pulse Code Modulation, modulation par impulsion et codage). Si la fréquence d'échantillonage du fichier audio est de 16kHz et le codage des valeurs de deux octets, ce qui est un cas très fréquent, alors 100 secondes de signal audio seront représentées par 16000×2×100=3200000 octets3Mo16000\times 2 \times 100 = 3200000\ octets \approx 3 Mo de données. En reconnaissance de la parole, le système va généralement calculer 100 vecteurs pour 1 seconde d'audio. Chacun de ces vecteurs, qui apparaissent à chaque centième de seconde, est calculé à partir d'une trame. Une trame est une portion du signal utilisée pour l'analyse. Souvent, un vecteur comportera 39 dimensions, c'est-à-dire que chaque trame sera associée à 39 valeurs numériques codées chacune sur deux octets. Ainsi, 100 secondes de signal audio seront représentées par 39×100×2×100=780000 octets0.8Mo39\times100\times2\times100 = 780000\ octets \approx 0.8 Mo. Ces 0.8Mo0.8Mo d'information pour porter le signal utile sont à comparer aux 3Mo3Mo initiaux dans notre exemple.

La réduction de la taille des données ne peut être efficace que si l'information conservée est pertinente pour la reconnaissance automatique de la parole. Pour cela, sont utilisées des connaissances issues du traitement du signal (bancs de filtres, transformée de Fourier, ...) ou des connaissances sur la production et la perception de la parole. Dans le cas du traitement du signal sont utilisées des représentations non paramétriques, alors que dans le second cas, la représentation est souvent paramétrique. Il s'agit donc en réalité d'utiliser conjointement des approches par extraction de caractéristiques et des approches par paramétrisation. Malgré cette distinction, on utilise le terme de paramètres pour nommer l'ensemble des valeurs numériques contenues dans les trames, et l'ensemble du processus de calcul des trames à partir du signal audio est appelé paramétrisation.

Pré-traitements

Afin de limiter l'impact de certains phénomènes apparaissant dans le signal de parole, des pré-traitements sont utiles, voire nécessaires, simples à mettre en place.

Normalisation par la moyenne

Un premier pré-traitement peut être la normalisation par la moyenne. Ce traitement permet de ramener la moyenne du signal à 0 lorsque celle-ci n'est pas nulle. En effet, le décalage par rapport à 00 (DC offset: direct current offset) ne porte aucune information utile et peut même perturber certains calculs, par exemple celui de l'énergie. Dans la figure suivante, le décalage se situe autour de 0.50.5.

Direct current offset : décalage par rapport à 0 dans l'axe des ordonnées

La normalisation par la moyenne consiste à soustraire du signal la moyenne des valeurs du signal. En notant ss' le signal normalisé et ss le signal d'origine, nous avons :

s[n]=s[n]μss'[n] = s[n] - \mu_s

μs\mu_s est la moyenne des valeurs du signal.

Pré-accentuation

L'amplitude des variations du signal à haute fréquence est moins importante que celle du signal à basse fréquence. Or, l'amplitude est utile pour l'analyse du signal de parole et les hautes fréquences portent des informations non moins importantes que les basses fréquences. Afin d'égaliser l'amplitude quelque soit la fréquence et ne pas déséquilibrer l'analyse globale, il est intéressant d'appliquer une pré-accentuation du signal. Ce traitement (on parle de filtre de pré-accentuation) consiste à booster les fréquences hautes. Un traitement qui amplifie les hautes fréquences et par rapport aux fréquences basses est appelé un filtre passe-haut. Le filtre de pré-accentuation s'exprime par la valeur suivante :

s[n]=s[n]κs[n1]s′[n] = s[n] − \kappa s[n − 1],

avec κ[0.9 ;1]\kappa \in [0.9\ ; 1] et généralement κ=0.95\kappa=0.95.

Effet de l'application d'un filtre de préaccentuation

Trames

La parole est portée par un signal continu qui correspond aux vibrations mécaniques de l'air. Ce signal est un son, et ne contient pas uniquement des vibrations de l'air émises par un appareil phonatoire humain. Il contient également toutes les vibrations émises dans l'environnement de la communication. Un signal est considéré comme stationnaire si ses composants fréquentiels ou spectraux (nous verrons bientôt ce qu'est un spectre) ne varient pas dans le temps. Bien que la parole est un signal non stationnaire, l'hypothèse est posée qu'elle peut être représentée approximativement par une succession d'états stationnaires.

La paramétrisation acoustique pour la reconnaissance de la parole représente le signal par une séquence de vecteurs numériques, chaque vecteur représentant l'information contenue dans un intervalle de temps que l'on appelle trame. Une trame représente généralement un intervalle de temps de 1 centième de seconde. Par extension, la trame est aussi le nom que l'on donne au vecteur qui représentent le signal de cet intervalle. Il y a 100 trames par seconde.

Pour calculer les valeurs des éléments du vecteur associé à une trame, il est nécessaire d'analyser une fenêtre du signal de taille supérieure à 1 centième de seconde. Cela vient principalement des outils mathématiques impliqués dans l'extraction des paramètres qui composeront le vecteur.

La figure ci-dessous illustre la notion de fenêtrage du signal pour le calcul des trames :

Fenêtrage du signal audio pour la construction de trame

avec s(n)s(n) le signal, nn le temps, QQ la longueur de la trame, KK la taille de la fenêtre, qq l'échantillon sur lequel la fenêtre est appliquée, et sK(n,q)s_K(n,q) le signal extrait de la fenêtre, avec

sK(n,q)=s(n)w(qn)s_K(n,q)=s(n)w(q-n).

ww est la fonction de fenêtrage, ou fonction fenêtre d'observation. Plus la taille de la fenêtre d'observation est petite, plus elle sera étroite dans le domaine fréquentiel, ce qui signifie que nous ne pourrons pas extraire des informations pour toutes les fréquences qui nous intéressent. Plus elle sera grande et plus elle introduira de l'information lointaine qui perturbera l'analyse de la trame. Pour la reconnaissance de la parole, la taille QQ de la trame est généralement 10ms et la taille de la fenêtre 25ms, ce qui signifie que des fenêtres d'observation se superposent. Afin de limiter les effets de bord induits par l'application d'un fenêtrage sur le signal pour l'analyse de la trame, il existe plusieurs fonctions de fenêtrage ww. Pour la reconnaissance de la parole, c'est généralement la fenêtre de Hamming qui est utilisée, et qui se formule par :

w(n)=0.540.46cos(2π(n1)K1)w(n) = 0.54 - 0.46 \cos(2\pi\frac{(n-1)}{K-1})

et qui prend la forme suivante :

Fenêtre de Hamming

<!--

Paramètres de base

Énergie moyenne à court terme

Taux de passage à zéro (Zero Crossing Rate)

-->

Spectre

<!-- Définition d'un spectre sonore

-->

Le spectre d'un son est une description en fréquences de ce son. Cette description est possible grâce à l'extension aux phénomènes non périodiques de la démonstration de Joseph Fourier, qui a montré en 1822 que toute fonction décrivant un phénomène périodique peut se décrire par une série de coefficients de fonctions sinus et cosinus dont la fréquence est un multiple entier de celle du phénomène en question.

Transformée de Fourier

L'exemple ci-dessous illustre comment en ajoutant à une sinusoïde (rouge) de fréquence ff (fréquence fondamentale) des sinusoïdes dont les fréquences sont des multiples entiers de ff il est possible d'obtenir un signal périodique de fréquence ff et de forme quelconque (ici un signal carré, en bleu).

Séries de Fourier (wikipedia)

La transformation de Fourier discrète est utilisée pour le calcul du spectre d'un ensemble de NN échantillons sonores. Elle permet de changer la base du signal depuis l’espace des temps s(n)s(n) vers la base des fréquences. Avec la transformation de Fourier discrète, il est possible de calculer le spectre S(ρ)S(\rho) à court terme du signal, qui s'écrit :

S(ρ)=n=0N1s(n)w(qn)ei2πρnS(\rho) = \sum_{n=0}^{N-1}s(n)w(q-n) e^{-i2\pi \rho n}

avec NN le nombre d'échantillons, w(qn)w(q-n) la fenêtre d'observation, et ρ\rho une valeur appelée pulsation liée à la fréquence ff par la formule : ρ=2πf\rho=2\pi f

La figure ci-dessous illustre le passage d'un signal de l'espace temporel vers l'espace fréquentiel réalisé grâce à une transformation de Fourier.

Une série temporelle et son spectre (Astrophysique sur mesure, https://media4.obspm.fr/public/FSU/credit_asm.html)

Spectrogramme

À partir de la tranformation de Fourier, il est possible de calculer le spectre d'un signal sonore sur un intervalle très court, qui correspond à la taille de la fenêtre d'observation choisie, de l'ordre de 25ms. En concaténant l'ensemble des spectres calculés sur une succession de ces intervalles, nous obtenons une représentation en 3 dimensions du spectre du signal variant à travers le temps : il s'agit d'un spectrogramme.

Les deux images suivantes correspondent à deux spectrogrammes d'un même signal, calculés en utilisant deux tailles de fenêtre d'observation différentes. Pour la première, une fenêtre de Hamming de 256ms a été utilisée, alors que pour la seconde la fenêtre de Hamming avait une durée de 64ms. L'axe des abscisses correspond au temps, l'axe des ordonnées correspond aux fréquences, et l'énergie dans une fréquence à un instant donné est caractérisée par l'intensité du gris.

Les zones noires qui apparaissent dans un spectrogramme correspondent à des maxima d'énergie : on les appelle des formants.

<!-- calcul de spectrogramme en python

jouer avec les spectrogrammes avec Audacity

suite - jouer avec les spectrogrammes avec Audacity -->

Spectogramme avec trames longues (fenêtres de hamming de 256ms)
Spectogramme avec trames courtes (fenêtre de hamming de 64ms)

L'appareil phonatoire humain

L'appareil phonatoire est l'ensemble des mécanismes anatomiques impliqués dans la production des vibrations acoustiques permettant la production des unités de sons de la parole (les phones). En simplifiant, la production d'un son voisé repose sur trois principes :

  • la création d'une pression d'air par l'appareil respiratoire,

  • la création d'un son à partir des vibrations produites par les cordes vocales,

  • la modulation de ce son par les cavités buco-nasales.

L'anatomie de l'appareil phonatoire est décrit dans cette figure :

L'appareil phonatoire humain

La connaissance de l'appareil phonatoire et des différents organes qui le composent est utile pour la reconnaissance automatique de la parole. Elle a permis de retenir certaines hypothèses qui aident le traitement automatique. Par exemple, une hypothèse largement retenue consiste à considérer qu'un phone ne peut pas pas durer moins de 3ms. En particulier, cette hypothèse est posée pour la modélisation acoustique, qui sera abordée dans le prochain chapitre.

L'appareil auditif humain

La compréhension de l'appareil auditif humain est également important pour aborder la reconnaissance automatique de la parole. En particulier, il est utile de comprendre comment la parole est perçue par l'être humain. Cela dépasse la partie anatomique de l'oreille puisque des disciplines comme la psychoacoustique apportent des connaissances sur la perception auditive qui intègrent l'implication du cerveau dans cette tâche.

L'oreille est composée de trois parties : l'oreille externe qui permet d'acheminer les vibrations acoustiques jusqu'au tympan, l'oreille moyenne qui met en œuvre les osselets pour transformer une signal aérien en un signal propagé dans un milieu liquide jusqu'à la fenêtre ovale tout en protégeant contre les sons trop forts, et l'oreille interne qui contient la cochlée et qui transforme les vibrations mécaniques en influx nerveux.

La figure ci-dessous présente l'anatomie de l'oreille humaine :

Système auditif humain

Spectre de l'audition humaine

Dans le cadre du traitement automatique de la parole, il est intéressant de considérer le spectre de l'audition humaine, résumé dans la figure suivante. Les sons ne sont pas tous aussi bien perçus par l'oreille. Les sons les plus différenciants se situe entre 1KHz et 4KHz pour une intensité sonore allant de 80 à 130 dB. Les fréquences graves ont besoin d'une intensité forte pour être aussi bien perçues que des fréquences plus aigues. Ces informations sont utiles car elles permettent de mieux cibler les analyses du signal de parole.

Spectre de l'audition (wikipedia)

Une paramétrisation répandue pour la reconnaissance automatique de la parole : Mel-Frequency Cepstrum Coefficients(MFCC)

Des expériences pour mieux comprendre la perception humaine de la parole ont montré que l'oreille humaine agit comme un filtre en se concentrant uniquement sur certaines bandes de fréquences, que l'on appelle des bandes critiques. Des échelles psychoacoustiques des sons ont été proposées pour prendre en compte ces résultats pour imiter la perception humaine.

Échelle de Mel

Une échelle très utilisée en reconnaissance automatique de la parole est l'échelle de Mel. Il s'agit d'une échelle perceptive de fréquences fondamentales senties par des humains comme étant à égale distance l'une de l'autre (on parle d'isotonie) : la perception humaine des fréquences n'est pas linéaire, mais suit une courbe logarithmique analogue à celle présentée dans la figure ci-dessous.

Echelle de Mel - By Krishna Vedala - Own work This image was created with gnuplot., CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=3775197 Il n'existe pas une formule unique pour la conversion d'une valeur de fréquence vers l'échelle de Mel. Une formule souvent utilisée pour l'échelle de Mel exprime ainsi le lien entre fréquence réelle FHzF_{Hz} et fréquence perçue FmelF_{mel} :

Fmel=2595×log10(1+FHz700)F_{mel}= 2595\times log_{10} (1 + \frac{F_{Hz}}{700})

Afin de concentrer l'analyse sur des zones pertinentes,

banc de filtres de Mel

Le cepstre

Le système de production de la parole peut être schématisé par la figure suivante, qui sépare sources, bruit et conduit vocal.

Les sons voisés sont générés par une vibration périodique des cordes vocales qui s'effectue par l’air sous pression provenant de l’appareil respiratoire. Ce mouvement vibratoire correspond à une succession de cycles d’ouverture et de fermeture de la glotte. Le nombre de ces cycles par seconde correspond à la fréquence fondamentale.

Les sons non-voisés viennent de l'air qui passe dans une partie du conduit vocal sans faire vibrer les cordes vocales.

La parole est formée d'un mélange de sons voisés et de sons non voisés, mélange influencé par les paramètres du conduit vocal.

Modèle simple de production de la parole, extrait du mémoire de thèse d'Asmaa Amehraye

Alors qu'un spectrogramme ne fait appel à aucune information a priori, le cepstre s'appuie sur une connaissance du mécanisme de production de la parole. En considérant la parole comme une convolution d'une séquence d'excitations et des caractéristiques du conduit vocal, nous prouvons exprimer le signal s(n)s(n) avec :

s(n)=e(n)h(n)s(n) = e(n) * h(n),

avec s(n)s(n) le signal de parole complet, e(n)e(n) la séquence d'impulsions, et h(n)h(n) le filtre qui représente le conduit vocal. En basculant dans le domaine des fréquences, cette formule se réécrit :

X(f)=E(f).H(f)X(f) = E(f) . H(f)

L'objectif est de séparer la source ee et le filtre hh, dans l'idée de récupérer l'information utile pour le traitement de la parole. En d'autres termes, nous cherchons à extraire l'enveloppe spectrale, dont les pics correspondent à la présence de formants :

Extraire l'enveloppe spectrale

Cette séparation peut être réalisée en appliquant une transformée par cosinus discrète (notée DCTDCT) après passage en logarithme (une transformée par cosinus discrète est une transformation proche de la transformée de Fourier discrète) :

cn=DCT(log(X(f))c_n = DCT(log(|X(f)|)

En utilisant les propriétés de parité et de périodicité de log(X(f))log(|X(f)|), on en déduit :

log(X(f))=c0+2Σk=1Kckcos(2πfk)log(|X(f)|) = c_0 + 2 \Sigma_{k=1}^{K}c_k cos (2\pi f k)

KK est le nombre de points de la DCTDCT. Les termes ckc_k sont appelés des coefficients ceptraux et le kk-ième coefficients cepstral représente la constribution de la cosinusoïde de fréquence 2πfk2 \pi f k au spectre d’amplitude logarithmique.

En pratique, et en tenant compte de nos connaissance sur l'audition humaine, les coefficients cepstraux ne sont calculés que les points résultants d'un banc de filtres de l'échelle de Mel.

En résumé, voici la procédure de calcul des MFCC : 1. Pré-accentuation du signal 2. Découpage en trames 3. Calcul de la Transformée de Fourier Discrète sur chaque trame 4. Filtrage par un banc de filtres triangulaires répartis le long de l’échelle de Mel 5. Calcul du logarithme du module de l’énergie en sortie du banc de filtres 6. Application de la Transformée en Cosinus Discrète Inverse 7. Seuls les premiers coefficients sont conservés (c1c_1 correspond à la fréquence fondamentale) qui correspondent à notre perception du signal.

La figure suivante constitue un résumé du calcul des MFCC :

Chaine de calculs des coefficients MFCC, extrait du mémoire de thèse d'Asmaa Amehraye

L'énergie et les 12 premiers coefficient cepstraux constituent les 13 éléments de base d'un vecteur de paramètres acoustiques pour une trame du signal de parole. Ces éléments sont complétés par leurs dérivées (vitesse, notées Δ\Delta) et leurs dérivées seconde (accélération, notées ΔΔ\Delta \Delta.

Finalement, ces vecteurs de paramètres acoustiques contiennent 39 valeurs et chaque vecteur caractérise le signal audio sur une trame de 10ms. Le calcul de ces valeurs combinent traitement du signal et connaissances sur la perception auditive humaine. Ces vecteurs seront exploités par les modèles acoustiques pour estimer la vraisemblance que des phonèmes ait été prononcés dans la zone du signal de parole analysé.

Last updated

Was this helpful?