• Aucun résultat trouvé

M´ ethode bas´ ee sur le signal analytique

a partir du trajet de f 0

13.4 M´ ethode bas´ ee sur le signal analytique

vaut respectivement pour N B = [0 1 2 3 4 5] :

[0,264 0,716 1,000 0,716 0,264 0,05]

13.3.2 Conclusion

La d´ecision est prise ainsi : • Si pb est grand, il y a un vibrato.

Les estimations sont faites ainsi :

• Avib(n) = distfreq(n), ou Avib(n) = Mfreq(l)(n).

• fvib(n) est estim´ee `a partir des positions [P1 . . . PN BM] des N BM maximums locaux et des positions [p1 . . . pN Bm] des N Bmminimums locaux pour la portion centr´ee sur n :

ˆ fvib(M )(n) = 1 N BM− 1 N BM−1 X j=1 fe Pj+1− Pj et ˆfvib(m)(n) = 1 N Bm− 1 N Bm−1 X j=1 fe pj+1− pj

et, finalement : ˆfvib(n) = fˆ

(M )

vib (n) + ˆfvib(m)(n) 2

13.4 M´ethode bas´ee sur le signal analytique

13.4.1 Introduction

Une troisi`eme m´ethode pour d´etecter le vibrato et estimer ses param`etres une fois que le trajet de la fondamentale a ´et´e obtenu est donn´ee dans cette section. Cette m´ethode est bas´ee sur la d´etermination de la fr´equence instantan´ee par filtrage de Hilbert. Des variantes de cette m´ethode sont classiquement utilis´ees pour la d´etermination de la fondamentale d’un signal de parole et sa segmentation (segmentation en phones) simultan´ee : voir [Hes83]. Elle a ´et´e adapt´ee au cas du vibrato, le signal consid´er´e ici ´etant le trajet de f0. Dans la m´ethode originale, le signal est filtr´e en 1

fK, K ´etant entier. Ce filtrage assure que la fondamentale soit pr´edominante. Dans notre cas, ce filtre n’est pas n´ecessaire, et nous nous contentons d’un filtre passe-bande, avec : f1 = 4 Hz et f2 = 9 Hz. Ainsi, nous sommes sˆur que le continu (c’est-`a-dire, ici, fc

0) est ´elimin´e (ce qui est n´ecessaire pour le calcul du signal analytique) et que les harmoniques du vibrato sont eux aussi ´elimin´es. Le synoptique de la m´ethode est donn´e sur la figure 13.8. Le module des complexes X(n) nous donne des indications sur l’amplitude du vibrato. Seuiller le module relatif |X(n)|

ˆ fc

0(n) nous permet de d´eterminer les parties du signal o`u un vibrato est pr´esent et celles o`u il n’y a pas de vibrato : nous posons des marques sur le trajet de f0.

13.4.2 Filtrage passe-bande

La qualit´e de la r´ejection du continu (c’est-`a-dire de f0 (( moyen )), ou f0c) est primordiale pour le bon d´eroulement des traitements qui suivent (pour le filtrage de Hilbert principalement). De plus, l’ordre des filtres doit ˆetre petit. En effet, le signal est stationnaire sur de courts segments : il n’y a que quelques p´eriodes de vibrato par note. Le filtre utilis´e n’ob´eit pas tout `a fait au gabarit id´eal d´efini, mais ce d´efaut ne prˆete pas `a cons´equence d’une mani`ere trop importante. Ceci est simplement ennuyeux pour la d´etermination du module|X|, c’est-`a-dire de l’amplitude du vibrato, et pour le calcul de l’estimation ˆfc

0 de fc

0: dans ce cas, l’amplitude du vibrato ´etant sous-estim´ee (gain du filtre passe-bande inf´erieur `a 1), il n’est pas compl`etement supprim´e sur le trajet de f0 (c’est-`a-dire ˆf0c 6= fc

0). Avec un ordre de 35, l’amplitude de la r´eponse en fr´equence du filtre passe-bande est donn´ee sur la figure 13.9.

f0(n) filtre passe-bande -j j zN2 z−1 marques f0 et f f seuillage X(n) rif de taille N1 rif de taille N2 filtre de Hilbert f1= 3 Hz 11 Hzf2= filtre de Kay fr´equence conjugaison module relatif z−N2 f0(n) z−N1 1− 2 |X(n)|/ ˆf0c(n) 2 ˆ f0c fe (2π) 1 z−N1−N2 argument : φn− φn−1

Fig. 13.8 – Synoptique de la m´ethode de d´etection du vibrato bas´ee sur le signal analytique

0 5 10 15 20 25 30 35 40 45 50 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

Fig. 13.9 – Amplitude de la r´eponse en fr´equence du filtre (( passe-bande )). En abscisse : la fr´equence en Hz ; en ordonn´ee : l’amplitude de la r´eponse en fr´equence 0 5 10 15 20 25 30 35 40 45 50 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Fig. 13.10 – Amplitude de la r´eponse en fr´equence du filtre de Hilbert. En abscisse : la fr´equence en Hz ; en ordonn´ee : l’amplitude de la r´eponse en fr´equence

13.4.3 Filtrage de Hilbert

Apr`es le filtrage passe-bande d´ecrit dans la section pr´ec´edente, nous obtenons, si un vibrato sinuso¨ıdal est pr´esent, id´ealement, une sinuso¨ıde pure, de fr´equence fvibvariant lentement et d’am-plitude Avib variant lentement. Donc, sur un court horizon, nous pouvons consid´erer que nous avons : sn = cos  2πfvib n fe 

. Le signal sn est en tout cas `a bande ´etroite. Le signal analytique associ´e `a ce signal r´eel s’´ecrit :

Cn= sn+ js0n = sn+ jH (sn) = cos  2πfvibn fe  + j sin  2πfvibn fe  = exp  2πjfvibn fe 

o`u l’op´erateur H correspond au filtrage de Hilbert.

En fait, si ˆS et ˆC sont respectivement les transform´ees de Fourier de s et C, nous voulons : ˆ C(f ) = 2 ˆS(f ) pour f > 0 = 0 pour f < 0 Soit : ˆ C(f ) = [1 + j(−jsigne(f))] ˆS(f ) = ˆS(f ) + j ˆH(f ) ˆS(f )

La r´eponse en fr´equence ˆH(f ) d’un filtre de Hilbert est donc : ˆ

H(f ) =−jsigne(f)

Ainsi, sa r´eponse impulsionnelle est :

q(k) = 1 fe fe/2 Z −fe/2 −jsigne(f) exp  2jπk fe f  df = 2 πksin 2 πk 2 

(pour k6= 0 ; pour k = 0 nous avons q(0) = 0)

Nous obtenons un filtre non causal et non r´ealisable physiquement. En tronquant la r´eponse impulsionnelle, nous arrivons `a obtenir une approximation convenable dans une certaine bande de fr´equences. Les basses fr´equences et les hautes fr´equences sont ´elimin´ees.

Dans notre cas, la taille du filtre utilis´e est, comme pour le filtre passe-bande, 35. L’amplitude de la r´eponse en fr´equence est donn´ee sur la figure 13.10. Les coefficients du filtre sont ´egaux `a :

h(k) = 2

πk Hamming(k) pour k ∈ [−17 − 15 . . . 15 17] = 0 pour k ∈ [−16 − 14 . . . 14 16]

L’important est d’obtenir une r´eponse sensiblement lin´eaire et horizontale entre 3 et 11 Hz. Ceci est `a peu pr`es v´erifi´e ici (tout du moins entre 4 et 11 Hz). La multiplication par la fenˆetre de Hamming permet d’obtenir cette r´eponse plate, mais r´eduit la bande-passante du filtre. Si nous uti-lisons la fenˆetre rectangulaire, la r´eponse est plus large mais elle ondule dans la bande-passante. La solution serait peut-ˆetre en fait de d’abord sous-´echantillonner le trajet de f0. Cependant, si nous voulions garder une taille pour les fenˆetres d’analyse de 0,35 seconde, nous serions oblig´e de diminuer le nombre de coefficients du filtre ! et, ainsi, il n’est pas ´evident que le sous-´echantillonnage apporterait quelque am´elioration.

13.4.4 Filtrage de Kay

La valeur de la fr´equence instantan´ee ˆfvib(n) = fe

n− φn−1) est liss´ee sur un horizon de N− 1 points. La premi`ere id´ee serait de calculer simplement la moyenne :

ˆ fvib(n) = 1 N− 1 N −2X i=0 ˆ fvib(n− i) soit : ˆfvib(n) = fe

2π(N − 1)n−φn−N+1). Ainsi, N−2 donn´ees φ ne sont pas utilis´ees, ce qui est en soi absurde. Kay (voir [Boa92] page 543, [Kay88]) a prouv´e qu’en terme de variance de l’estim´ee de la fr´equence, l’optimal est de prendre :

ˆ fvib(n) = feN −2X i=0 hin−i− φn−i−1) avec : hi= 1,5N N2− 1 1  i − (N/2 − 1) N/2 2! avec i ∈ [0 . . . N − 2]

Nous avons choisi un N ´egal `a 35, qui nous donne un lissage sur une fenˆetre d’analyse large de 0,35 seconde. Cette taille est celle des portions de signal que nous avions utilis´ees pour les autres filtres et pour les autres m´ethodes de d´etermination des param`etres du vibrato `a partir du trajet de f0(voir les sections 13.2 et 13.3).

13.4.5 R´ejection du continu

La m´ethode pr´esent´ee dans la section 13.3 nous permettait d’obtenir la composante continue fc

0du trajet de f0. Ainsi, nous pouvons appliquer l’algorithme d´ecrit ci-dessus, mais sans le filtrage passe-bande, directement sur f0− fc

0. Mais mˆeme si nous consid´erons que les amplitudes des harmoniques du vibrato de num´eros d’ordre sup´erieurs sont tr`es petites (voir la section 13.5.2), l’exp´erience nous a montr´e qu’un filtrage passe-bas est n´ecessaire. Il est cependant plus facile `a r´ealiser, `a taille de filtre constante, que le filtre passe-bande initial. L’amplitude de la r´eponse en fr´equence du filtre utilis´e est donn´e sur la figure 13.11. Les r´esultats de l’algorithme appliqu´e `a f0− fc

0 sont donn´es, pour l’extrait de flˆute et l’extrait de voix chant´ee (voir la section 14.1), sur les figures 13.12 et 13.13. Nous voyons que nous obtenons de bons r´esultats, similaires `a ceux obtenus avec le filtrage passe-bande (ces r´esultats sont pr´esent´es sur les figures 14.17 et 14.18).

0 5 10 15 20 25 30 35 40 45 50 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

2 4 6 8 10 12 0

5 10 15

Fig. 13.12 – Trajet non liss´e et trajet liss´e de la fr´equence du vibrato pour la flˆute. En abs-cisse : le temps ; en ordonn´ee : la fr´equence en Hz. Une barre horizontale `a 6 Hz est ajout´ee

5 10 15 20 25

0 5 10 15

Fig. 13.13 – Trajet non liss´e et trajet liss´e de la fr´equence du vibrato pour la voix chant´ee. En abscisse : le temps ; en ordonn´ee : la fr´equence en Hz. Une barre horizontale `a 6 Hz est ajout´ee

13.4.6 Conclusion

La d´ecision est prise ainsi : • Si |X(n)|ˆ

fc

0(n) est grand, il y a du vibrato.

Les estimations des param`etres du vibrato sont faites ainsi : • Avib(n)' |X(n)|

• fvib(n) = fr´equence

13.5 Conclusion

Les trois m´ethodes d´ecrites dans ce chapitre pourront nous servir pour le cas du tr´emolo. Il s’agit d’une perspective.

13.5.1 Une premi`ere remarque : prise en compte du vibrato pr´esent sur

les harmoniques du signal de num´eros d’ordre sup´erieurs

Le vibrato bien sˆur affecte tous les harmoniques du signal, et il les affecte de la mˆeme fa¸con qu’il affecte la fr´equence fondamentale : c’est-`a-dire que, pour une note, les vibratos pr´esents sur les harmoniques du signal sont tous en phase, que la fr´equence du vibrato est pour tous les harmoniques du signal fvibet que l’amplitude du vibrato (nous faisons ici l’hypoth`ese qu’il est mod´elis´e par une sinuso¨ıde pure) pr´esent sur l’harmonique de num´ero d’ordre l (donc dont la fr´equence est lf0) du signal est ´egale `a lAvib. Ainsi, il est possible d’utiliser les informations disponibles sur les harmoniques de num´eros d’ordre sup´erieurs `a 1 pour am´eliorer la robustesse des algorithmes de d´etection du vibrato que nous avons d´ecrits dans ce chapitre et celle de l’algorithme de suppression du vibrato sur le trajet de f0 que nous allons d´ecrire dans le chapitre 15, ne serait-ce qu’en travaillant avec le signal :

fmoy(i) = 1 Lpris Lpris X l=1 fl(i) l

plutˆot qu’avec le signal f0(i)1. Nous avons : Lpris le nombre d’harmoniques pris en compte et fl(i) le trajet du leme` harmonique. Il s’agit d’une perspective.

13.5.2 Une seconde remarque : d´etection des harmoniques du vibrato

sur des signaux r´eels

Il s’agit ici d’extraire les harmoniques du vibrato pour un signal r´eel. Ce signal r´eel est voi-ceP.sf. Nous consid´erons le mi4 (f0 = 659,26 Hz) final, qui est tenu et pour lequel un vibrato important est pr´esent. Nous n’utilisons pas les r´esultats obtenus par la mod´elisation ar et la pr´ediction (voir la section 13.2). Nous travaillons avec des fenˆetres d’analyse larges de 0,9 seconde, c’est-`a-dire avec des portions plutˆot plus larges que les portions habituelles : la note ´etant tenue, nous pouvons nous le permettre. Nous pouvons alors calculer la fft sur plus de points utiles : ainsi, la r´esolution de la transform´ee de Fourier est augment´ee. Nous donnons sur les figures 13.14 et 13.15 respectivement le signal sur lequel nous travaillons et les r´esultats obtenus, en nous limitant `a cinq harmoniques du vibrato.

Nous constatons que les harmoniques que nous obtenons suivent assez bien les trajets qu’ils devraient suivre th´eoriquement, c’est-`a-dire kfvib, avec k = 2 . . . 5, et avec fvible premier harmo-nique du vibrato obtenu : ce sont les courbes en pointill´es de la figure 13.15. Nous constatons que les amplitudes des harmoniques du vibrato de num´eros d’ordre sup´erieurs `a 1 sont faibles, rela-tivement `a celle du premier, qui vaut, en moyenne, 33,7. En effet, les autres valent, en moyenne, respectivement 2,34, 1,24, 0,95 et 0,49. 20.5 21 21.5 22 22.5 23 630 640 650 660 670 680 690 700

Fig. 13.14 – Trajet de la fr´equence fondamen-tale f0 pour une note chant´ee : il s’agit d’une partie du mi4 de voiceP.sf. Un vibrato im-portant est pr´esent. En abscisse : le temps en seconde ; en ordonn´ee : la fr´equence en Hz

21 21.5 22 22.5 5.6 5.8 21 21.5 22 22.5 11 11.2 11.4 11.6 11.8 21 21.5 22 22.5 16.5 17 17.5 21 21.5 22 22.5 22 23 21 21.5 22 22.5 26 28 21 21.5 22 22.5 30 35 21 21.5 22 22.5 1.5 2 2.5 3 21 21.5 22 22.5 1.2 1.4 21 21.5 22 22.5 0.5 1 21 21.5 22 22.5 0.2 0.4 0.6

Fig. 13.15 – `A droite, les fr´equences des har-moniques du vibrato ; en abscisse : le temps en seconde, en ordonn´ee : la fr´equence en Hz. `A gauche, les amplitudes des harmoniques du vi-brato ; en abscisse : le temps en seconde, en or-donn´ee : l’amplitude. De haut en bas : du pre-mier harmonique du vibrato au cinqui`eme

13.5.3 Perspective : d´ecoupage en sous-bandes

Nous consid´erons que la fr´equence fondamentale du vibrato est comprise dans la bande [3 Hz − 11 Hz]. Nous d´ecoupons cette bande en deux sous-bandes. Nous souhaitons que, quelque soit la fr´equence fondamentale du vibrato, elle se retrouve seule dans l’une des deux sous-bandes, et que ses harmoniques se retrouvent soit dans l’autre sous-bande, soit au-del`a de 11 Hz. Aussi, le d´ecoupage doit ˆetre fait de la fa¸con suivante : premi`ere sous-bande [3 Hz − 5,75 Hz], et seconde sous-bande [5,75 Hz − 11 Hz].

Ainsi, id´ealement, pour les fr´equences fondamentales du vibrato comprises dans la bande [3 Hz − 3,66 Hz], nous retrouvons la fr´equence fondamentale dans la premi`ere sous-bande et deux harmoniques dans la seconde (car 3,66× 3 = 11) ; pour celles comprises dans la bande [3,66 Hz − 5,5 Hz], nous retrouvons la fr´equence fondamentale dans la premi`ere sous-bande et un harmonique dans la seconde ; pour celles comprises dans la bande [5,5 Hz − 5,75 Hz], nous retrouvons la fr´equence fondamentale dans la premi`ere sous-bande et rien dans la seconde ; pour celles comprises dans la bande [5,75 Hz − 11 Hz], nous retrouvons la fr´equence fondamentale dans

la seconde sous-bande et rien de plus. Nous consid´erons que l’´energie du signal se concentre dans l’une de ces deux sous-bandes, mˆeme dans les cas o`u il y a un ou deux harmoniques du vibrato dans l’autre puisque leur amplitude d´ecroˆıt rapidement (voir la section 13.5.2) avec leur num´ero d’ordre. Il suffit alors de calculer les spectres d´efinis dans la section 13.2.1 sur la sous-bande o`u l’´energie est la plus grande.

Cette technique a pour but d’am´eliorer l’extraction de la fr´equence fondamentale du vibrato. `

A la rigueur, elle pourrait nous permettre d’extraire les harmoniques du vibrato de num´eros d’ordre sup´erieurs (cependant, quand deux harmoniques du vibrato sont pr´esents ensemble dans une sous-bande, la m´ethode bas´ee sur le signal analytique ne peut pas ˆetre utilis´ee). Elle n’a pas ´et´e impl´ement´ee, ni sous matlab ni en c. Il s’agit de perspectives.

Chapitre 14