Может кто-нибудь сказать мне, как изменить высоту волнового файла в Android?изменить высоту волнового файла в Android?
ответ
У Android нет таких встроенных функций, и процесс вовсе не является тривиальным. Если вы захотите попробовать и запрограммировать его самостоятельно, я предлагаю посмотреть на такие алгоритмы, как PSOLA, WSOLA и Phase Vocoder для изменения высоты тона. Книга DAFX Удо Зельзера обсуждает многие из них довольно неплохо, и большая часть из них довольно проста. Фазовый Vocoder, я считаю, работает быстрее всего, но также требует больше DSP и математических знаний для понимания. PSOLA, пожалуй, наименее математически сложна. Я лично предпочитаю WSOLA и Enhanced WSOLA (EWSOLA), но они занимают довольно много вычислительной мощности.
Для методов корреляции (если вы используете WSOLA), я предлагаю сделать это, если частотная область (корреляция на основе FFT на основе Google). Это намного быстрее.
Если бы большая часть этого только что прошла над вашей головой, вы можете пересмотреть это делать вообще, но я ни в коем случае не пытаюсь отговорить вас. =)
[Sound Pool] (http://developer.android.com/reference/android/media/SoundPool.html) позволяет вам изменять скорость воспроизведения, но, к сожалению, это не представляется возможным с помощью Media Player , Вы можете добавить java, DSP, аудио теги к своему вопросу, если вам действительно нужен совет: обработка звука на Java. – James
Звуковой пул позволяет просто изменять скорость воспроизведения при воспроизведении звука ... Это не поможет в случае записанного файла. –
Изменение скорости воспроизведения изменит высоту тона, но также повлияет на скорость воспроизведения. Поэтому вы должны использовать один из алгоритмов, представленных @Phonon, которые позволяют изменять высоту тона без изменения скорости. – Chris623