Sujet : Re: Pitch shifting
De : me (at) *nospam* pla.net.invalid (robby)
Groupes : fr.sci.maths fr.sci.biologieDate : 04. May 2021, 11:17:06
Autres entêtes
Organisation : Guest of ProXad - France
Message-ID : <60911112$0$21593$426a74cc@news.free.fr>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1
Le 03/05/2021 à 13:34, François Guillet a écrit :
Mais bien sûr Mr j'sais tout. Mais les généralités, bof !
c'étaient juste des réfutations nuancées et prouvées de tes affirmations sur la phase et le fonctionnement de l'audition humaine.
Et désolé d'avoir suivi ces cours, ou que des parties relèvent de mon background pro.
Car je n'ai toujours pas la méthode pour traiter la phase, et c'est la seule question que j'ai posée ici. F'=k*F pour la fréquence, donc i'=k*i pour les indices de la FFT, facile. Donne-moi la formule pour la phase, ce devrait être facile pour un cador comme toi.
il y a encore plein d'inconnues dans ton set-up comme dans tes buts (i.e. les contraintes qu'ils impliquent).
mais bon, si tu te fiche de la phase, pourquoi ne pas juste la mettre à zero, et ne garder que le module de la freq (à décaler à ta guise) ?
( ou disons, à 2pi.random(f) pour éviter la correlation massive en 0 ).
comme ça elle tombera automatiquement d'aplomb si tu met tes iFFT bout a bout.
Sauf si tu fais un recouvrement a la reconstruction, auquel cas il manque des infos.
JE VEUX METTRE LE PITCH SHIFTING SEULEMENT EN BONUS AUDIO
c'est pas la peine de crier. et dire ça ne remplace pas un cahier des charges, seule moyen de savoir ce que tu considérera comme "bon" ou "mauvais". Mais supposons que tu veuilles juste la continuité. → solution ci dessus.
MES FFT FAITES POUR LE DECODAGE RADIO, LESQUELLES SONT LONGUES !
on ne sait toujours pas si "longue" signifie une fraction de secondes ou plusieurs minutes.
Je ne vais pas tout refaire.
ah mais les données sont déjà acquises ?
>
En plus les FFT courtes, c'est aussi parce qu'en musique ils sont obnubilités par le temps de latence, ce dont je me fiche.
non, ça n'est pas du tout le problème ici.
Si tu veux avoir du son audible pour de la voix ou transitoires musicaux, l'effet de correlation de phase est quasi totalement résolu juste en gardant l'espace temporel aux echelles de temps pertinentes ( disons > 1/100 ou 1/20 seconde ), c'est a dire en fenetrant pas plus large.
Mais si tu te fiche réellement de la qualité sonore du moment qu'il n'y a pas de discontinuité, alors baste, en effet.
Je pense qu'il y une solution, et je crois même en être assez proche. Je viens d'utiliser :
phase = atan(imag[i]/real[i]) - (2*pi*i*(1-k))
c'est à dire que je corrige à l'indice i la phase d'une valeur égale au décalage entrainé par la différence de fréquences. Et je n'ai plus de rupture de phase. Mais j'ai maintenant des variations d'amplitude en fonction des fréquences. La solution est sans doute de répartir le décalage de fréquence finale à la fois dans la fréquence et dans la phase, donc de ne pas faire bêtement F'=k*F.
pour l'instant je laisse de côté l'analyse de ce que tu veux dire, mais surtout: est-ce que tu fait cette opération dans le spectre, puis iFFT ?
Ou juste après la transformation souhaitée tu fait une resynthèse directe "à la mano" ? ( somme des sinusoides ).
Toute la différence porte sur les valeurs de k permises ( parceque prendre k = 1.137941 dans un la FFT risque de lui faire tout drôle :-D )
-- Fabrice