2010-01-08 7 views
3

Android에서 웨이브 파일의 피치를 변경하는 방법을 누군가에게 알려 줄 수 있습니까?Android에서 웨이브 파일의 피치를 변경 하시겠습니까?

+3

[사운드 풀] (http://developer.android.com/reference/android/media/SoundPool.html)을 사용하면 재생 속도를 변경할 수 있지만 불행히도 Media Player에서는 불가능합니다. . 자바에서 오디오 프로세싱을 실제로해야하는 경우 Java, DSP, 오디오 태그를 질문에 추가 할 수 있습니다. – James

+0

사운드 풀은 오디오가 재생 될 때 재생 속도를 변경할 수 있습니다 ... 녹음 된 파일의 경우에는 도움이되지 않습니다. –

+0

재생 속도를 변경하면 피치가 변경되지만 재생 속도에도 영향을줍니다. 따라서 속도를 변경하지 않고 피치를 변경할 수있는 @Phonon이 제시 한 알고리즘 중 하나를 사용하는 것을 고려해야합니다. – Chris623

답변

0

Android에 이러한 기능이 내장되어 있지 않으므로 프로세스가 별다른 문제가 아닙니다. 직접 시도해보고 싶다면 PSOLA, WSOLA 및 Phase Vocoder와 같은 알고리즘을 피치 변경에 사용하는 것이 좋습니다. Udo Zölzer의 DAFX 책은이 중 많은 부분을 아주 자세히 설명하고 있으며 대부분은 매우 간단합니다. Phase Vocoder는 가장 빠른 속도로 작동하지만 더 많은 DSP와 수학 지식을 필요로합니다. PSOLA는 아마 수학적으로 가장 복잡한 것이 아닙니다. 저는 개인적으로 WSOLA와 향상된 WSOLA (EWSOLA)를 선호하지만, 이들은 처리 능력이 상당히 좋습니다.

상관 기법 (WSOLA를 사용하는 경우)에 대해서는 주파수 도메인 (Google FFT 기반 상관 관계)을 수행하는 것이 좋습니다. 훨씬 빠릅니다.

대부분이 머리 위로 넘어간 경우이 모든 것을 다시 고려해 볼 수는 있지만 결코 절대로 너를 낙담 시키려하지 않습니다. =)