2010-01-08 3 views
3

quelqu'un peut me dire comment changer le pas d'un fichier wave dans Android?modifier la hauteur d'un fichier wave dans Android?

+3

[Piscine Son] (http://developer.android.com/reference/android/media/SoundPool.html) vous permet de modifier la vitesse de lecture, mais malheureusement, cela ne semble pas être possible avec Media Player . Vous voudrez peut-être ajouter java, DSP, tags audio à votre question, si vous avez réellement besoin de conseils sur le traitement audio en Java. – James

+0

piscine son permet simplement de changer le Play Back taux lorsque l'audio est en cours de lecture ... Il ne sera pas utile dans le cas d'un fichier enregistré. –

+0

La modification de la vitesse de lecture modifie la hauteur mais affecte également la vitesse de lecture. Donc, vous devriez envisager d'utiliser l'un des algorithmes présentés par @Phonon qui permettent de changer la hauteur sans changer la vitesse. – Chris623

Répondre

0

Android n'a pas de telles fonctions intégrées, et le processus est pas du tout trivial. Si vous souhaitez essayer de le coder vous-même, je vous suggère de regarder des algorithmes tels que PSOLA, WSOLA et Phase Vocoder pour l'altération de hauteur. Le livre DAFX d'Udo Zölzer en décrit beaucoup dans de très bons détails et la plupart sont assez simples. Phase Vocoder, je crois, fonctionne le plus rapidement, mais prend également plus de DSP et de connaissances mathématiques pour comprendre. PSOLA est peut-être le moins mathématiquement compliqué. Personnellement, je préfère WSOLA et WSOLA amélioré (EWSOLA), mais ceux-ci prennent un peu de puissance de traitement.

Pour les techniques de corrélation (si vous utilisez wsola) Je suggère de le faire si le domaine de fréquence (corrélation par FFT Google). C'est beaucoup plus rapide.

Si la plupart de ces venait dessus de votre tête, vous pourriez vouloir reconsidérer le faire tout à fait, mais je nullement essayer de vous décourager. =)

Questions connexes