Uploaded by cristhian.ronquillo

Audio data processing

advertisement
PCD – Préparation et
caractérisation des données
Chapitre 9 – Attributs pour les données audio
Andrei Popescu-Belis
Plan
1. Introduction : des ondes sonores à l’informatique
2. Représentation numérique des signaux audio
3. Attributs audio : domaine temporel
4. Attributs audio : analyse temps-fréquence
(transformation de Fourier, cepstre, coefficients MFCC)
5. Attributs audio : domaine fréquentiel
6. Exemple de librairie en Python
7. Utilisation des attributs pour la reconnaissance de la parole
2
1. Introduction :
des ondes sonores
à l’informatique
3
Ondes sonores
• Ondes longitudinales de pression : les molécules oscillent 
• Produites par la vibration d’un objet, puis propagées par l’air
Source : https://github.com/musikalkemist/AudioSignalProcessingForML
4
Variation de la pression de l’air dans le temps
• Pression à la
sortie d’une
clarinette
• Durée de
l’enregistrement :
20 ms
Source: Rburtonresearch, CC BY-SA 4.0, via Wikimedia Commons
5
Zoom sur ‘she’
Zoom sur [iy]
Source : SLP3, figures 25.9, 25.13 et 25.14
6
Perception de la fréquence et de l’amplitude
Fréquence plus élevée = son plus haut
Remarque : la hauteur perçue (p.ex. en termes
de notes de musique) varie avec le logarithme
de la fréquence réelle de l’onde sonore (en Hz)
Source : https://github.com/musikalkemist/AudioSignalProcessingForML
Amplitude plus élevée = son plus fort
Remarque : l’intensité perçue varie aussi de
manière logarithmique avec l’intensité réelle
et se mesure en décibels par rapport à une
intensité minimale audible conventionnelle
dB(I) = 10  log10(I / Imin) et Imin = 10-12 W/m2
8
Capacités humaines de traitement audio
• Les ondes sonores véhiculent des informations que
les humains traitent naturellement, avec facilité
• Exemples :
• distinguer la parole, la musique, les « bruits »
• identifier un locuteur comme femme ou homme
• reconnaître l’identité d’une personne
• comprendre les mots et le contenu linguistique
9
Buts du traitement automatique de l’audio
• Classification
• parole | musique | bruit | silence
• Suppression du bruit
• Compression (p.ex. MP3)
• Music information retrieval
• Ajout d’effets sonores
• Compréhension de scènes audio
• localiser les locuteurs dans une pièce
• détecter des pannes sur machines
• activer des caméras de surveillance
• Reconnaître les locuteurs, les authentifier
• Détecter les tours de parole (conversation)
• Reconnaissance automatique de la parole,
automatic speech recognition, ASR
= transcrire sous forme de texte ce qui est dit
• Communiquer avec des assistants électroniques
sur smartphone, domotique, central téléphonique, ou système de réservation
• Remplir des formulaires quand l’usage du clavier
n’est pas possible (p.ex., cabinet médical)
• Commandes vocales : voiture, navigateur, avion
• Augmenter l’accessibilité des enregistrements
• générer des sous-titres
• générer des PVs de séances
• chercher par mots-clés
• Monitorer les conversations dans les centres
d’appel (p.ex. pour mesurer la satisfaction)
10
2. Représentation numérique
des signaux audio
11
Conversion analogique-numérique
• reproduit assez bien la variation de pression due à l’onde sonore
• Information résultante : « suite de 0 et de 1 »
• valeurs numériques codées sur plusieurs bits
• Solution = 1 + 2
1. Découper le signal en des intervalles de temps
réguliers espacés de T = échantillonner à une
fréquence 1/T
• théorème de Nyquist-Shannon : on ne peut pas capturer
ainsi des signaux avec des composantes de fréquence > (1/T)/2
Source : https://github.com/musikalkemist/AudioSignalProcessingForML
• Signal de départ : tension électrique sortant d’un microphone
2. Quantifier l’amplitude du signal dans chaque échantillon (sample)
12
Convertir en nombres l’amplitude d’un signal
➢ c’est le cas des CD audio
• Exercice : quelle place prend une
minute de son sur un CD audio ?
• échantillonnage = 44'100 Hz
• codage de l’amplitude = 16 bits
• Réponse : … … …
Source : https://github.com/musikalkemist/AudioSignalProcessingForML
• Codage sur 4 bits : 16 niveaux possibles
• Codage sur 16 bits : 65'536 niveaux possibles
13
Fenêtre (frame) = ensemble d’échantillons
Fenêtre de 2n échantillons (8  n  13)
(perceptible)
Source : https://github.com/musikalkemist/AudioSignalProcessingForML
Durée d’un échantillon (à 44.1 kHz) = 0.0227ms (imperceptible à l’oreille)
14
Types d’attributs audio avec des exemples
1. Attributs temporels (analyse directe du signal)
• Amplitude de l’enveloppe du signal
• Carré-moyen de l’énergie
• Nombre de passages par zéro (ZCR)
2. Attributs temps-fréquence (après transformation de Fourier)
• Spectrogramme [slide suivante]
• Spectrogramme Mel
• Coefficients cepstraux Mel (MFCC)
3. Attributs fréquentiels (aussi après transformation de Fourier)
• Rapports d’énergies de bandes de fréquences
• Moyenne ou centroïde du spectre de fréquences
• Variance du spectre de fréquences
16
Signal
Spectrogramme
Source : https://www.researchgate.net/publication/317089729_On_the_Performance_Degradation_of_Speaker_Recognition_System_due_to_Variation_in_Speech_Characteristics_Caused_by_Physiological_Changes
17
3. Attributs audio : domaine temporel
18
Attributs temporels souvent utilisés (1/2)
1.
Enveloppe du signal
• c’est l’amplitude maximale des échantillons d’une fenêtre (s(k))
• représente la force du signal à un moment donné
• attribut sensible aux valeurs aberrantes du signal (outliers)
2.
Carré-moyen de l’énergie (RMS)
❑ Le volume peut être normalisé
par le maximum sur plusieurs
fenêtres
❑ Le volume dépend aussi de
l’amplification lors de
l’enregistrement et de la
conversion analogique/digital
• calculé sur les échantillons d’une fenêtre
• autre indicateur de la force du signal
• moins sensible aux outliers
• facile à calculer et souvent utilisé
• indicateur fiable du silence
❖ Utilisation : détection du début d’un segment, classification musicale par genre
19
Attributs temporels souvent utilisés (2/2)
3.
Zero-crossing rate (ZCR)
• nombre de fois où un signal passe par la valeur 0 dans une fenêtre
• indicateur robuste de la présence ou absence de voisement
• les cordes vocales vibrent pour les voyelles et certaines consonnes (‘b’, ‘v’, ‘d’, ‘z’ → ZCR faible)
mais pas pour d’autres consonnes (‘p’, ‘f’, ‘t’, ‘s’ → ZCR élevé) ou si on chuchote (→ ZCR élevé)
• instruments musicaux : percussions (→ ZCR élevé) vs. autres (→ ZCR faible)
➢ volume bas mais ZCR élevée  parole non voisée ou percussions
➢ alternance de segments avec ZCR élevée vs. basse  consonnes vs. voyelles  parole
4.
Hauteur du son (pitch)
• fréquence fondamentale de l’onde
• parole : typiquement 50 Hz  450 Hz | musique : spectre audible (20 Hz  20 kHz)
• attribut de bas niveau que l’on peut extraire d’une fenêtre (frame)
➢ Comment l’obtenir ? Grâce à la transformation de Fourier !
20
4. Attributs audio : analyse temps-fréquence
21
Analyse d’un signal audio en termes de fréquences
• Beaucoup de signaux audios sont périodiques sur un court laps de temps
• par exemple, sur 5 à 50 ms, donc sur une fenêtre contenant de nombreux échantillons [voir slide 14]
• des sinusoïdes de différentes fréquences composent le signal dans cette fenêtre → spectre
• suite des spectres quand on déplace la fenêtre avec le temps → spectrogramme
• Le spectrogramme représente l’information fréquentielle du signal au cours du temps
• il permet de construire des attributs audios qui caractérisent mieux les signaux que les attributs temporels
• Obtenir le spectrogramme s’appuie sur la théorie des séries de Fourier
• tout signal périodique f(x) de fréquence 1/T se décompose en une somme de fonctions sinusoïdales
• chaque coefficient de Fourier cn(f) indique l’importance de la sinusoïde de fréquence n/T dans le signal f
Source : https://fr.wikipedia.org/wiki/Série_de_Fourier
22
Illustration (1) : somme de trois sinusoïdes
f = f1 + f2 + f3
f1
f2
f3
Source : https://github.com/musikalkemist/AudioSignalProcessingForML
23
Illustration (2) : un signal et ses coefficients cn
Source : https://fr.wikipedia.org/wiki/Analyse_spectrale, domaine public
24
TF
Source : https://github.com/musikalkemist/AudioSignalProcessingForML
Illustration (3) : signaux non périodiques
• Les prismes séparent spatialement la lumière
en composantes, ordonnées par fréquence
• Équivalent physique de la transformée de Fourier
• Permettent de mesurer l’intensité de chaque
fréquence (=couleur) d’un signal lumineux
25
La transformée de Fourier
• En réalité, toute fonction peut s’écrire comme
une somme intégrale de fonction périodiques
• il s’agit de sinusoïdes à valeurs complexes
notées exp(i 2x), où  est la fréquence
• Les coefficients de Fourier
sont donnés
par la transformée de Fourier de la fonction
pour chaque fréquence 
• pour chaque fréquence , le module de la transformée de Fourier
donne l’amplitude la
composante sinusoïdale (complexe) dans le signal de départ, et l’argument donne la phase
• une grande amplitude indique que le signal ressemble à une sinusoïde de cette fréquence
• rappel : le ‘module’ d’un nombre complexe (a + ib) est (a2 + b2) et son ‘argument’ est arctan(b/a)
26
Analyse par fenêtre ( frame )
• Une fenêtre contient un grand nombre d’échantillons, p.ex. entre 512 et 8192
• Pour caractériser le signal, on applique l’analyse de Fourier à chaque fenêtre
• Éviter les fenêtres disjointes  faire avancer la fenêtre d’un nombre
d’échantillons plus petit que sa taille (p.ex. ½ ou ¼)
• Les discontinuités en marge de chaque fenêtre (en rouge) posent problème
• elles génèrent des composantes de haute fréquence dans les coefficients de Fourier
• solution : diminuer la valeur du signal près des marges avec la « fenêtre de Hahn »
• https://en.wikipedia.org/wiki/Window_function#Hann_and_Hamming_windows
Source : https://github.com/musikalkemist/AudioSignalProcessingForML
27
Signal d’origine
Fenêtre de Hann
Signal
résultant
28
Transformée de Fourier dans une fenêtre
• La version générale de la transformée de Fourier est difficile à appliquer
• considère une plage de temps entre – et +
• s’intéresse potentiellement à toutes les fréquences entre 0 et +
• a une complexité O(N2) où N est le nombre de coefficients (fréquences) cherchés
• Short-term Fourier Transform (STFT) : applicable à des données audios réelles
• données pour lesquelles la fonction f est non-nulle seulement dans une fenêtre
• calcule les coefficients pour un nombre fini de fréquences N
• souvent égal au nombre d’échantillons N de la fenêtre
• algorithme rapide (FFT) de complexité O(N log N)
• Résultat = matrice spectrale : nombre de fréquences  nombre de fenêtres
29
Matrice spectrale = spectrogramme
• STFT: calcule l’intensité de chaque
fréquence dans chaque fenêtre
= le carré du module du coefficient de
Fourier complexe de la fréquence
• Axe horizontal = fenêtres (m)
axe vertical = fréquences (k)
couleur = intensité (Y)
« nineteenth century »
Auteur : Aquegg, Public domain, via Wikimedia Commons
https://commons.wikimedia.org/wiki/File:Spectrogram-19thC.png
30
Spectrogramme sur l’échelle des « mels »
• La perception des fréquences des sons par les humains est logarithmique
• échelle des « mels » = faire que des différences égales soient perçues comme égales
• l’humain ne perçoit pas le doublement de la fréquence d’un son (octave)
comme la même variation de hauteur quelle que soit la fréquence
• la valeur correspondante en mels d’une fréquence f est m = 2595  log10(1 + f/700)
• les constantes 2595 et 700 ont été choisies pour que 1000 Hz = 1000 mels
• Construction du « spectrogramme en mels »
Exécuter la STFT  Convertir l’amplitude en décibels 
Choisir le nombre d’intervalles de fréquences (p.ex. 40 ou 90 ou 128, etc.) 
Convertir les bornes des intervalles de fréquences (Hz) en mels 
Additionner les coefficients de Fourier dans chaque intervalle de fréquences
31
Mel-Frequency Cepstral Coefficients (1/2)
• Cepstre (à prononcer ‘kepstre’)
• à l’origine, concept introduit pour les signaux sismiques (1960)
• attribut essentiel pour la reconnaissance de la parole (> 1980) et de la musique (> 2000)
• décrit informellement comme le « spectre du spectre »
➢ Transformée de Fourier inverse du log de la transformée de Fourier

Source : https://github.com/musikalkemist/AudioSignalProcessingForML



32
Illustration
33
Mel-Frequency Cepstral Coefficients (2/2)
• Combien de coefficients MFCC utiliser ?
• en pratique, les 13 premiers, car ce sont les plus informatifs
• on peut aussi utiliser leurs variations entre fenêtres (, deltas)
• on peut même utiliser les variations des variations ()
 39 coefficients
par fenêtre
• Avantages
• capturent les macrostructures du spectre tout en ignorant les microstructures
• efficaces pour traiter la parole (reconnaissance vocale, identification du locuteur)
aussi bien que la musique (classification de morceaux, détection d’instruments)
• Inconvénients
• peu robustes face aux bruits
• beaucoup de méta-paramètres doivent être choisis
• pas directement utilisables pour la synthèse vocale
34
Autres attributs temps-fréquence
• Linear Predictive Code (LPC)
• basé sur un modèle physique de la parole :
poumons → cordes vocales → tractus vocal → cavité nasale et buccale
• plusieurs algorithmes existent pour calculer les coefficients LPC
• attributs très utilisés pour le codage et la synthèse de la parole
• Attributs dérivés
• partial correlation (PARCOR), log area ratio (LAR), line spectrum pair (LSP), line spectrum frequency
(LSF), etc.
35
5. Attributs audio : domaine fréquentiel
36
Attributs fréquentiels
• Nécessitent la transformation de Fourier (SFTF) pour leur calcul, fenêtre par fenêtre
• Band energy ratio (BER)
• comparaison de l’énergie entre différentes bandes de fréquence
➢ trouver les fréquences dominantes dans une fenêtre
➢ séparer musique/parole, classifier le genre de musique
• Spectral centroid (SC)
• centre de gravité (moyenne pondérée) du spectre de fréquences
➢ indique la bande de fréquences où il y a le maximum d’intensité
➢ classification audio ou musicale
• Largeur de bande (BW) ou étalement spectral
• variance ou étalement autour du centroïde SC
➢ indique le timbre perçu
37
6. Exemple de librairie en Python
38
https://github.com/tyiannak/pyAudioAnalysis
Extrait les attributs audios en deux étapes
1.
Attributs à court terme
• divise le signal en fenêtres (frames)
• calcule les attributs fenêtre par fenêtre
➢ série de vecteurs d’attributs pour chaque fenêtre du signal
2.
Attributs à moyen terme
• extrait des statistiques sur un ensemble de fenêtres : p.ex. moyenne, écart-type, etc.
• Nombre d’attributs extraits par fenêtre : 34
• extrait aussi les attributs delta si demandés, arrivant ainsi à 64 attributs
39
Attributs extraits par pyAudioAnalysis
ID
Feature Name
Description
1
Zero Crossing Rate
The rate of sign-changes of the signal during the duration of a particular frame.
2
Energy
The sum of squares of the signal values, normalized by the respective frame length.
3
Entropy of Energy
The entropy of sub-frames' normalized energies ( measure of abrupt changes).
4
Spectral Centroid
The center of gravity of the spectrum.
5
Spectral Spread
The second central moment of the spectrum.
6
Spectral Entropy
Entropy of the normalized spectral energies for a set of sub-frames.
7
Spectral Flux
The squared difference between the normalized magnitudes of the spectra of the two
successive frames.
8
Spectral Rolloff
The frequency below which 90% of the magnitude of the spectrum is concentrated.
9-21
MFCCs
Mel Frequency Cepstral Coefficients form a cepstral representation where the
frequency bands are not linear but distributed according to the mel-scale.
22-33
Chroma Vector
A 12-element representation of the spectral energy where the bins represent the 12
equal-tempered pitch classes of western-type music (semitone spacing).
34
Chroma Deviation
The standard deviation of the 12 chroma coefficients.
40
7. Utilisation des attributs pour
la reconnaissance de la parole :
automatic speech recognition
41
Speech recognition with HMMs ( 1990-2015)
• Speech signal = piecewise stationary signal over a short time scale (e.g., 10 ms)
• Input = sequence of n-dimensional real-valued vectors (n  10) every 10 ms
• first n cepstral coefficients
• additional attributes
• vocal tract length and cepstral normalizations (to model speakers and recording conditions)
• delta and delta-delta coefficients (to capture speech dynamics)
• Hidden Markov Models = statistical models of sequences of symbols
• state = mixture of Gaussians, different for each symbol (word or phoneme)
• Decoding of the speech = Viterbi algorithm
42
Speech recognition with neural networks (> 2010)
• Example: Connectionist Temporal
Classification, CTC (Graves et al., 2006)
• Outputs a single character for
every frame of the input (encoder)
• pre-final output is the same length as the
input, post-processing is needed [next slide]
• Inference/decoding: softmax over
hidden state ht at each output step
43
CTC post-processing
• A collapsing function is applied to
combine sequences of identical
letters → final output (words)
44
Implementation: example of Coqui STT
https://github.com/coqui-ai/STT | https://stt.readthedocs.io
• Simple open source speech-to-text engine
• Architecture based on Deep Speech: Scaling up end-to-end speech recognition (2014)
• recurrent neural network (RNN) : speech spectrograms → English text transcriptions
• 5 layers of hidden units, the first 3 are not recurrent
• Each utterance is divided into frames, each frame is a vector of MFCC features
• Converts the input utterance into character probabilities per frame
• P(c|x) for c  {‘a’, ‘b’, ‘c’, . . . , ‘z’, space, apostrophe, ‘blank’}
• ‘blank’ for a frame that does not generate a character by itself
46
Coqui STT
47
Coqui STT: acoustic model & language model
• Two main runtime components
1. acoustic model
audio input  probability over characters from the alphabet
2. language model (used for hypothesis rescoring)
probabilities  coherent series of words in a language
• e.g., “I read a book” is much more likely than “I red a book” (but they sound the same)
• Training
• acoustic model: RNN with TensorFlow trained on speech//transcripts
• language model: n-gram model with KenLM trained on pure text
48
Examples of speech data (often commercial)
• LibriSpeech: large open-source read-speech dataset (16 kHz, 1000 hours), audio books from the LibriVox
project, with transcripts aligned at the sentence level (Panayotov et al., 2015)
• divided into an easier (“clean”) and a more difficult portion (“other”) for evaluation
• clean portion = higher recording quality & accents closer to US English
• Mozilla Common Voice: publicly available dataset from volunteers, > 100 languages
• English: 93k speakers, 3.5k hours, 1.67M sentences; French: 19k speakers, 1.15k hours, 1.64M sentencs
• Switchboard: prompted telephone conversations between strangers, with 2430 conversations averaging 6
minutes each (8 kHz, 240 hours, 3M words) (Godfrey et al., 1992)
• many auxiliary handmade annotations: parse trees, dialogue acts, phonetic and prosodic labels
• CALLHOME: 120 unscripted 30-minute telephone conversations between native speakers of English, usually
close friends or family (Canavan et al., 1997)
49
Sources
• https://web.stanford.edu/~jurafsky/slp3/ , Chapters 25 and 26
• https://github.com/musikalkemist/AudioSignalProcessingForML
• http://what-when-how.com/video-search-engines/audio-features-audio-processing-video-searchengines/
• https://en.wikipedia.org/wiki/Computer_audition
• https://en.wikipedia.org/wiki/Speech_recognition
• https://en.wikipedia.org/wiki/Short-time_Fourier_transform
• https://github.com/tyiannak/pyAudioAnalysis
• https://github.com/coqui-ai
50
Download