Skip to content

Commit 69f39f9

Browse files
author
Vincent Timofti
committed
corrections
1 parent 14b1118 commit 69f39f9

File tree

1 file changed

+32
-32
lines changed

1 file changed

+32
-32
lines changed

rapport/rapport.tex

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,14 @@ \section{Introduction}
5353
audio pouvant servir d'identifiant unique. Le critère d'identifiabilté est en général celui de
5454
l'oreille humaine, \emph{ie} deux signaux considérés comme identiques à l'écoute doivent avoir une
5555
empreinte acoustique similaire. Par conséquent le système de construction d'empreinte doit être
56-
robuste aux petites déformations qui n'altèrent pas l'identifiabilité du signal. Déformation telles
56+
robuste aux petites déformations qui n'altèrent pas l'identifiabilité du signal. Déformations telles
5757
que l'ajout de bruit, la réverbération, la distortion\dots
5858

5959
De plus, un système efficace sera aussi robuste aux décalage temporels, c'est à dire qu'il sera
60-
capable d'identifier un extrait de signal, même si celui si n'est pas aligné temporelement avec le
60+
capable d'identifier un extrait de signal, même si celui si n'est pas aligné temporellement avec le
6161
signal utilisé pour l'apprentissage de l'empreinte.
6262

63-
Le sytème d'identification par empreinte doit aussi être rapide et capable d'identifier un extrait
63+
Le système d'identification par empreinte doit aussi être rapide et capable d'identifier un extrait
6464
parmi un très grand nombre de signaux. Ceci pose deux contraintes majeures pour notre système :
6565
\begin{itemize}
6666
\item La base de donnée contenant les empreintes ne doit pas être de taille trop importante.
@@ -83,23 +83,23 @@ \section{Principe de base}
8383
\label{sec:principe_base}
8484

8585
\subsection{Recherche du plus proche voisin}
86-
On défini une collection $\chi = \{x_1,x_2,\dots,x_L\}$ de $L$ signaux audios et un requête $q$ (un
86+
On défini une collection $\chi = \{x_1,x_2,\dots,x_L\}$ de $L$ signaux audios et une requête $q$ (un
8787
nouvel extrait appartenant ou non à la base). On cherche alors l'élément de $\chi$ le plus proche de
8888
$q$, c'est à dire son \emph{plus proche voisin}. Le problème revient alors à déterminer une mesure
8989
de \emph{proximité} $d(x,y)$ entre deux signaux $x$ et $y$ tel que l'expression suivante donne le
9090
\emph{plus proche voisin} de $q$ : \[ \argmin_{x \in \chi} d(x,q) \]
9191

9292
Bien entendu, le calcul de la mesure de proximité doit être le moins complexe possible. Impossible
93-
donc d'effecture $L$ comparaison entre $q$ et les éléments de la collection. D'autant plus qu'en
93+
donc d'effectuer $L$ comparaison entre $q$ et les éléments de la collection. D'autant plus qu'en
9494
pratique $q$ ne sera qu'un extrait du signal audio correspondant.
9595

9696

9797
\subsection{Indexation}
9898

9999
\subsubsection{Descripteurs locaux}
100100
L'idée derrière les deux algorithmes que nous présentons ici est d'utiliser des descripteurs locaux
101-
pour la création de l'empreinte acoustique d'un signal. Ces descripteurs séléctionnent une partie de
102-
l'information temporel et fréquentielle censé être caractéristique du signal donné.
101+
pour la création de l'empreinte acoustique d'un signal. Ces descripteurs sélectionnent une partie de
102+
l'information temporel et fréquentielle censée être caractéristique du signal donné.
103103

104104
On utilise ainsi ces descripteurs pour les signaux de référence et la requête. La fusion des
105105
résultats de recherche des descripteurs de la requête nous permet alors de retrouver le signal ayant
@@ -137,19 +137,19 @@ \subsubsection{Table de hachage}
137137
\subsection{Recherche}
138138
\label{sec:recherche_hist}
139139

140-
Pour effecuter une recherche de similarité pour une requêt $q$, on va calculer des descripteurs
140+
Pour effectuer une recherche de similarité pour une requête $q$, on va calculer des descripteurs
141141
locaux de la même manière que pour l'apprentissage de la base. Chaque clé $c_j$ calculée fait alors
142142
l'objet d'une recherche dans la base et renvoie donc les couples $(t_j^l,k_j^l)$ associés à cette clé,
143143
si celle ci existe. Connaissant le temps d'apparition $t_j$ de la clé, on peut en déduire le
144-
décalage temporel de cette clé avec chaque occurence : $\tau_j^l =t_j^l - t_j$. Pour éviter d'être
144+
décalage temporel de cette clé avec chaque occurrence : $\tau_j^l =t_j^l - t_j$. Pour éviter d'être
145145
trop précis quant au décalage, on quantifiera souvent $\tau_j^l$ par une valeur assez importante.
146146

147147
On pourrait alors établir le décompte du nombre de clé en commun entre la requête et chaque signal,
148148
mais on traiterait alors chaque descripteur local indépendamment les uns des autres. Il est donc
149149
plus intéressant de prendre en compte le décalage temporel.
150150

151151
On construit alors les histogrammes $\mathbf{H}_k(\tau) \, : \, \mathbb{Z} \rightarrow \mathbb{N}$
152-
qui contienent pour chaque indice $k \in [0,\dots,L-1]$ le nombre de clés ayant un décalage $\tau$
152+
qui contiennent pour chaque indice $k \in [0,\dots,L-1]$ le nombre de clés ayant un décalage $\tau$
153153
comme montré en figure~\ref{fig:ex_hist}.
154154

155155

@@ -182,7 +182,7 @@ \subsection{Spectrogramme}
182182

183183
\subsection{Extraction de pics d'intensité}
184184

185-
Le spectrogramme est découpé selon un quadrillage 10x10. Dans chaque case du quadrillage nous extrayons le point d'intensité maximale, qui définira un pic. Nous avons donc 100 pics d'itensité par trame de 5 secondes. Un pic est défini par sa position (sa fréquence et l'instant à laquel il apparaît) :
185+
Le spectrogramme est découpé selon un quadrillage 10x10. Dans chaque case du quadrillage nous extrayons le point d'intensité maximale, qui définira un pic. Nous avons donc 100 pics d'intensité par trame de 5 secondes. Un pic est défini par sa position (sa fréquence et l'instant à laquelle il apparaît) :
186186

187187
\begin{equation}
188188
p_i = (f_i, t_i)
@@ -205,10 +205,10 @@ \subsection{Couplage des pics}
205205
\end{split}
206206
\end{equation}
207207

208-
Pour constituer un couple les pics précedents doivent satisfaire 2 conditions :
208+
Pour constituer un couple les pics précédents doivent satisfaire 2 conditions :
209209
\begin{itemize}
210210
\item $ t_2 > t_1 $
211-
\item la distance euclidiènne entre les 2 pics doit être inférieur à un certain seuil d (le nombre de clé que l'on prendra pour une trame dépendra de ce seuil)
211+
\item la distance euclidienne entre les 2 pics doit être inférieur à un certain seuil d (le nombre de clé que l'on prendra pour une trame dépendra de ce seuil)
212212
\end{itemize}
213213

214214
Nous obtenons finalement une liste de clés pour chaque trame.
@@ -229,15 +229,15 @@ \subsection{Couplage des pics}
229229
l'information fréquentielle et temporelle.
230230

231231
\subsection{Formulation mathématiques}
232-
Soit un espace de Hilbert $\mathcal H$, un dicionnaire d'éléments $d_\gamma \in \mathcal H$ et un
232+
Soit un espace de Hilbert $\mathcal H$, un dictionnaire d'éléments $d_\gamma \in \mathcal H$ et un
233233
élément $x \in \mathcal H$, l'algorithme \bsc{mp} va construire une approximation de $x$ : $\tilde x_n =
234234
\sum_{i=1}^{n}\alpha_i d_{\gamma^i}$ après $n$ itérations.
235235

236236
L'algorithme est un algorithme itératif en deux étapes. Initialement on défini le \textbf{résiduel}
237237
$R^0x = x$, l'ensemble des éléments du dictionnaire sélectionnés $\Gamma^0 = \emptyset$. Lors de la
238238
$n^{\text{ième}}$ itération, on procède alors comme suivant :
239239
\begin{itemize}
240-
\item Sélection : on sélectionne un élement du dictionnaire $d_{\gamma^n}$ selon un critère
240+
\item Sélection : on sélectionne un élément du dictionnaire $d_{\gamma^n}$ selon un critère
241241
de $\mathcal C$.
242242
\item Mise à jour : on met à jour l'approximation selon une règle $\mathcal A$ et on recalcule
243243
le résiduel.
@@ -255,7 +255,7 @@ \subsection{Couplage des pics}
255255

256256
Pour notre implémentation, nous choisissons un dictionnaire redondant constitué d'une union de
257257
bases \bsc{mdct} (\emph{Modified Discrete Cosine Transform}). La \bsc{mdct} est une transformée
258-
basée sur la tranfromée en consinys discrete.
258+
basée sur la transformée en consinus discrete.
259259

260260
Pour un vecteur $x$ de taille $N=PK$ (\emph{ie} $x$ est composé de $P$ segments de taille $K$). La
261261
\bsc{mdct} de taille $L = 2K$ s'écrit comme une matrice de transformation $\mathbf{T}$ de taille $N
@@ -284,7 +284,7 @@ \subsection{Couplage des pics}
284284
\end{align}
285285

286286
Les conditions~\ref{eq:win_1} et~\ref{eq:win_3} assurent la conservation aux bords du signal.
287-
La fenêtre que nous utilisons pour le mathcalcul de \bsc{mdct} est définie par :
287+
La fenêtre que nous utilisons pour le calcul de \bsc{mdct} est définie par :
288288
\[
289289
w[u] = \sin\left[\frac\pi L \left( u + \frac 12 \right)\right]
290290
\]
@@ -297,7 +297,7 @@ \subsection{Couplage des pics}
297297
\caption{Atome d'une union de base \bsc{mdct}}
298298
\label{fig:atom}
299299
\end{figure}
300-
En utilisant un dicitonnaire d'union de bases \bsc{mdct} avec différentes tailles de fênetres, on
300+
En utilisant un dictionnaire d'union de bases \bsc{mdct} avec différentes tailles de fenêtres, on
301301
peut alors utiliser des atomes de tailles différentes pour être plus précis dans notre algorithme
302302
\bsc{mp}.
303303

@@ -327,24 +327,24 @@ \subsection{Couplage des pics}
327327
effectuer de légères modification dans le déroulement de l'algorithme.
328328

329329
\subsubsection{Sélection}
330-
À chaque itération, il est nécessaire de calculer la tranformée \bsc{mdct} du résiduel lors de
330+
À chaque itération, il est nécessaire de calculer la transformée \bsc{mdct} du résiduel lors de
331331
l'étape de sélection. Ceci peut devenir coûteux en temps de calcul si l'on a un grand nombre
332332
d'itérations.
333333

334-
Cependant il n'est pas nécessaire de calculer la tranformée pour tout le signal, en effet seul la
334+
Cependant il n'est pas nécessaire de calculer la transformée pour tout le signal, en effet seul la
335335
partie temporel correspondant à l'atome sélectionné est affectée par la mise à jour. Il n'est donc
336-
pas nécessaire de recalculer la transformée correspondant aux atomes qui ne sont pas correlés avec
336+
pas nécessaire de recalculer la transformée correspondant aux atomes qui ne sont pas corrélés avec
337337
l'atome sélectionné.
338338

339339
On modifie donc la fonction de calcul de \bsc{mdct}, pour ne mettre à jour que la partie du signal
340340
où les atomes pourrait être affecté par le changement de résiduel.
341341

342342

343343
\subsubsection{Masque}
344-
L'algorithme \bsc{mp} à tendance à sélectionner les atomes la où il y a beacoup d'énergie, ils sont
344+
L'algorithme \bsc{mp} à tendance à sélectionner les atomes la où il y a beaucoup d'énergie, ils sont
345345
donc en général proches fréquentiellement et temporellement.
346346

347-
L'idée est donc de changement le critère de sélection en utilsant un masque :
347+
L'idée est donc de changement le critère de sélection en utilisant un masque :
348348
\[
349349
\mathcal{C_M}(R^nx,\mathcal D) = \argmax_{d_i \in \mathcal D}(|\langle
350350
R^nx,d_i \rangle|\mathcal M(d_i|\Gamma^n))
@@ -372,12 +372,12 @@ \subsubsection{Masque}
372372
\subsection{Construction des clés}
373373
\label{sec:mp_cles}
374374

375-
Dans cette deuxième méthode nous utilsons donc l'algorithme \emph{Matching Pursuit} pour construire
375+
Dans cette deuxième méthode nous utilisons donc l'algorithme \emph{Matching Pursuit} pour construire
376376
nos clés. On découpe notre signal d'entrée en trames de 5 secondes, puis on extrait les un nombre
377377
$n$ d'atomes en utilisant l'algorithme \bsc{mp} avec un dictionnaire composé de trois tailles
378-
d'atome différentes (128,1024 et 8192 échantillons). On va ensuite apairer chaque atomes avec $p$
378+
d'atome différentes (128,1024 et 8192 échantillons). On va ensuite appairer chaque atomes avec $p$
379379
de ses plus proches voisins dans le plan temps-fréquence, en ne considérant que ceux
380-
apparaisant après l'atome choisi. La figure \label{fig:mp_pairs} montre un exemple d'apairage avec
380+
apparaissant après l'atome choisi. La figure \label{fig:mp_pairs} montre un exemple d'appairage avec
381381
$p=1$.
382382
\begin{figure}[htbp]
383383
\centering
@@ -404,7 +404,7 @@ \section{Performances}
404404
Afin de tester les deux méthodes, nous utilisons un base d'apprentissage de 100 morceaux de quelques
405405
minutes. Ces morceaux sont ensuite utilisés pour construire les bases de donnée pour chaque méthode.
406406
Les bases sont construite grâce au système de gestion de base de donnée SQLite. Les clés sont
407-
caclulées sur 40 bits grâce à fonction de hachage \bsc{sha}-1 (on conserve les 40 premiers bits sur
407+
calculées sur 40 bits grâce à fonction de hachage \bsc{sha}-1 (on conserve les 40 premiers bits sur
408408
les 160 donnés par \bsc{sha}-1.
409409

410410
\subsection{Méthode par spectrogramme}
@@ -449,11 +449,11 @@ \section{Performances}
449449
\vspace{0.4cm}
450450

451451
\label{sec:base_modif}
452-
Pour la deuxième expérimentation la bibliothèque musicale est modifiée de la façon suivante : on ajoute à chaque musique du bruit blanc ($\sigma^2=0.005$), de la réverberation et un applique un passe-haut (fréquence de coupure : 500 Hz) de façon à obtenir un effet microphone. Ces modifications sont réalisées avec l'outil en ligne de commande SoX :
452+
Pour la deuxième expérimentation la bibliothèque musicale est modifiée de la façon suivante : on ajoute à chaque musique du bruit blanc ($\sigma^2=0.005$), de la réverbération et un applique un passe-haut (fréquence de coupure : 500 Hz) de façon à obtenir un effet microphone. Ces modifications sont réalisées avec l'outil en ligne de commande SoX :
453453

454454
\texttt{sox input\_file.wav ouput\_file.wav highpass 500 reverb whitenoise vol 0.005}
455455

456-
Nous effectuons ensuite des tests identifques à la première expérimentation mais sur la bibliothèque modifiée.
456+
Nous effectuons ensuite des tests identiques à la première expérimentation mais sur la bibliothèque modifiée.
457457

458458
\begin{figure}[htbp]
459459
\center
@@ -489,7 +489,7 @@ \subsubsection{Bases de test}
489489
Pour tester l'efficacité de la méthode basée sur l'algorithme \emph{Matching Pursuit} nous
490490
construisons 12 bases différentes en suivant le protocole suivant:
491491
\begin{itemize}
492-
\item Les morceaux sont découpés en trames de 5 secondes avec lequels on construit les
492+
\item Les morceaux sont découpés en trames de 5 secondes avec lesquels on construit les
493493
clés comme décrit en section~\ref{sec:mp_cles}.
494494
\item Chaque base extrait un nombre d'atome différent $n$ pour la construction des clés.
495495
\item Pour chaque atomes on construit au maximum 3 paires différentes, on a donc environ
@@ -576,7 +576,7 @@ \subsubsection{Bases de test}
576576
\subsubsection{Resistance au bruit}
577577

578578
Les conditions normales d'écoute imposent souvent de nombreuses modifications (bruit,distortions,
579-
modifications du spectre,réverberation,\ldots).
579+
modifications du spectre,réverbération,\ldots).
580580
Nous nous proposons ici de tester la résistance au bruit avec le protocole suivant:
581581
\begin{itemize}
582582
\item On utilise la base construite avec 25 atomes par trame de 5 secondes.
@@ -603,7 +603,7 @@ \subsubsection{Resistance au bruit}
603603
Comme décrit dans la section~\ref{sec:base_modif}, nous avons construit une autre base de musique en
604604
modifiant la base originale. Ces signaux sont censés imiter l'impression auditive lorsqu'on écoute
605605
les morceaux grâce à des haut-parleurs de qualité moyenne. On obtient alors un taux de
606-
reconnaissance de 72.5\% en utilsant le même protocole que précédement.
606+
reconnaissance de 72.5\% en utilisant le même protocole que précédemment.
607607

608608
\nocite{*}
609609
\bibliographystyle{plain}

0 commit comments

Comments
 (0)