Signaux aléatoires

Introduction



Simon Leglaive


CentraleSupélec





La science consiste à comprendre et modéliser les phénomènes qui nous entourent. L’ingénierie s’appuie sur ces modèles pour concevoir des solutions concrètes à des problèmes réels.



🤔 Et les signaux aléatoires dans tout ça ?

De nombreux phénomènes physiques peuvent être mesurés sous la forme d’un signal en sortie d’un capteur :

  • la température mesurée par une sonde ;
  • la tension en sortie d’un microphone ;
  • l’intensité lumineuse captée par un photodétecteur.

D’autres phénomènes moins naturels sont également caractérisés par un signal :

  • le cours d’une action en bourse ;
  • le nombre d’appels reçus par un centre d’appels ;
  • la consommation électrique d’un bâtiment ;
  • la position d’un objet suivi par un GPS ;
  • le processus de génération dans certains modèles d’IA générative basés sur la diffusion.
  • Tous ces signaux caractérisent l’évolution d’une certaine quantité au cours du temps.
  • Modéliser le phénomène (physique ou non) revient alors à modéliser le signal associé.
  • Une modélisation purement déterministe n’est souvent pas suffisante.
  • Ce cours a pour objectif de présenter les fondements du traitement des signaux aléatoires, avec comme terrain de jeu favori le traitement des signaux audio et parole.

Introduction : Pourquoi les signaux aléatoires ?

Réponse au travers d’un exemple en traitement du signal audio

Signal audio analogique

  • Une onde acoustique est émise lorsqu’une personne parle, lorsqu’un oiseau chante, lorsqu’un instrument de musique est joué, lorsque le vent souffle dans un feuillage, etc.
  • L’onde acoustique se propage, par exemple dans l’air jusqu’à être captée par un microphone.
  • Le microphone convertit l’onde acoustique en signal électrique.

Image credit: Meinard Müller, “Fundamentals of Music Processing”, Springer 2015

Signal audio numérique

  • Le signal analogique en sortie du microphone peut être converti en signal numérique via un convertisseur analogique-numérique (CAN).
  • On obtient un signal échantillonné et quantifié.

Image credit: Meinard Müller, “Fundamentals of Music Processing”, Springer 2015

Exemple d’un signal de parole

Voici un exemple de signal audio numérique extrait d’un fichier WAV.

import numpy as np
import soundfile as sf 
import matplotlib.pyplot as plt

wavfile = './audio/CS.wav'
print(sf.info(wavfile))

x, fs = sf.read(wavfile)
t = np.arange(len(x)) / fs  # Vecteur temps

plt.figure(figsize=(10, 3))
plt.plot(t, x, linewidth=0.5, color='black')
plt.title('Forme d\'onde d\'un signal de parole')
plt.xlabel('Temps (secondes)')
plt.ylabel('Amplitude')
plt.grid()

./audio/CS.wav
samplerate: 16000 Hz
channels: 1
duration: 1.072 s
format: WAV (Microsoft) [WAV]
subtype: Signed 16 bit PCM [PCM_16]

Tâches en traitement de la parole

  • Transcription automatique
  • Synthèse vocale
  • Débruitage
  • Compression
  • Reconnaissance de locuteur
  • Reconnaissance d’émotion
  • etc.

Signal audio mathématique

  • Pour développer des algorithmes de traitement du signal, nous travaillons avec un formalisme mathématique.

  • Par exemple, le signal audio numérique précédent peut être représenté mathématiquement comme une fonction du temps discret:

    \[ x: t \in \mathbb{Z} \to x(t) \in \mathbb{R}. \]

  • Le forme d’onde que nous visualisions précédemment correspond au graphe de cette fonction.

Cette description mathématique est essentielle à la formalisation du problème de traitement du signal, permettant ensuite le développement d’un algorithme pour le résoudre, son implémentation dans un langage de programmation et finalement peut-être son déploiement sur une cible de calcul.

Par exemple, je peux synthétiser un son en définissant la fonction \(x(t)\) comme un sinus de fréquence \(f_0\) (Hz) et d’amplitude \(A\):

\[ x(t) = A \sin(2 \pi f_0 t ∕ F_s), \quad t \in \{0, 1, ..., T-1\}, \] avec \(F_s\) la fréquence d’échantillonnage (Hz) et \(T\) le nombre d’échantillons.

# Paramètres de l'onde sinusoïdale
f0 = 440  # Fréquence en Hz
A = 0.5   # Amplitude
fs = 8000  # Fréquence d'échantillonnage en Hz
T = 8000  # Nombre d'échantillons (1 seconde)
t = np.arange(T)  # Vecteur temps discret

# Génération du signal sinusoïdal
x = A * np.sin(2 * np.pi * f0 * t / fs)

Signaux déterministes

  • Le formalisme mathématique nous aide aussi à catégoriser les signaux en différentes classes, par exemple :

    Les signaux déterministes sont les fonctions telles que, à chaque instant \(t \in \mathbb{Z}\), on dispose d’une règle permettant de calculer la quantité \(x(t)\) de manière unique et exacte.

  • Cette règle peut être spécifiée via

    • une expression mathématique (e.g., une fonction sinus) ;
    • une équation récurrente linéaire à coefficients constants: \[ y(t) + a_1 y(t-1) + ... + a_P y(t-P) = b_0 x(t) + b_1 x(t-1) + ... + b_Q x(t-Q)\] qui définit \(y(t)\) comme le filtrage du signal \(x(t)\), supposé connu ;
    • ou tout autre procédé.

Limites du traitement du signal déterministe

Revenons à notre signal de parole, pouvez-vous deviner à quel son chaque bloc correspond ?

  • Le signal pour la consonne “s” ne peut pas être décrit par une fonction déterministe du temps.
  • Une fonction déterministe suffisamment « flexible » pourrait approximer le signal sur un intervalle de temps donné, mais cette approximation ne serait pas valable en dehors de cet intervalle.

Le signal présente de nombreuses irrégularités, les valeurs observées semblent aléatoires.

Il est impossible de déterminer une règle permettant de caractériser le signal \(x(t)\) à tout instant \(t\) de manière unique et exacte.

  • Considérons maintenant un signal de parole plus simple : l’enregistrement de la voyelle “A”.

  • Il semble que l’on ait cette fois affaire à un signal quasi-périodique, que l’on pourrait peut-être modéliser par une fonction déterministe, au moins grossièrement.
  • Mais cette modélisation serait-elle valable pour d’autres enregistrements de la voyelle “A” ?

Voici 16 enregistrements de la voyelle “A” réalisés dans des conditions très contrôlées :

  • enregistrements consécutifs par la même personne ;
  • même environnement sonore ;
  • même microphone ;
  • niveau sonore et une hauteur de voix constants ;
  • etc.

  • Il y a certes des régularités, mais il y a aussi de nombreuses variations entre les enregistrements.

  • Cela pose la question de la modélisation d’un tel signal, et donc d’un tel phénomène physique.

    🤔 Comment décrire mathématiquement le fait qu’un même phénomène physique engendre des signaux différents ?




La réponse réside dans une approche probabiliste.

  • L’observation d’un signal est considérée comme le résultat d’une expérience aléatoire.

  • On considère alors que l’échantillon \(x(t)\) à chaque instant \(t\) est une variable aléatoire.

  • L’évolution au cours du temps de cette variable aléatoire est ce qu’on appelle un signal aléatoire, ou plus généralement un processus aléatoire.

  • Chaque enregistrement de la voyelle “A” est une réalisation de ce processus aléatoire.

  • Cette approche probabiliste permet de prendre en compte la variabilité des signaux issus d’un même phénomène, par exemple physique, et de tenir compte des incertitudes liées à la mesure, aux erreurs de modélisation, etc.

  • Cela est très utile par exemple pour la reconnaissance de la parole, où l’on cherche à identifier les mots (ou autre unité de langage) prononcés par une personne, indépendamment du locuteur, du microphone, du bruit ambiant, etc.

De nombreuses questions se posent alors :

  • Comment définir formellement un signal / processus aléatoire ?
  • Comment décrire ses propriétés statistiques ?
  • Comment estimer empiriquement ses propriétés statistiques ?
  • Quels modèles de processus aléatoires ?
  • Quelles applications ?
  • etc.

Nous allons dans ce cours tenter de répondre à la plupart de ces questions.

Organisation du cours

Après cette introduction, quelques mots sur l’organisation du cours.