На уровне ++ Вы используете постфиксный оператор. Этот оператор работы после переменной используется. Это - после того, как это помещается на стек для вызванной функции, это увеличено. С другой стороны, уровень + 1 является простым математическим выражением, и это оценено, и результат передается вызванной функции. Если Вы хотите увеличить переменную сначала и затем передать ее вызванной функции, можно использовать префиксный оператор: ++ уровень
you can use dirac-2 from dsp dimension for pitch shifting on the iphone. quote: -
"DIRAC2 is available as both a commercial object library offering unlimited sample rates and phase locked multichannel support and as a free single channel, 44.1/48kHz LE version."
См .: Связанный вопрос
Какой контроль над высотой тона вам нужен ... не могли бы вы заранее рассчитать все различные звуки? Если ответ положительный, то вы можете просто выбрать правильные звуки и воспроизвести их.
Вы также можете использовать Audio Converter Services в сочетании с AVAudioPlayer, что позволит вам повторно дискретизировать звук (который будет эффективно воспроизводить их, хотя они изменим продолжительность).
В качестве альтернативы, как указывает связанный вопрос, вы можете использовать OpenAL и AL_PITCH
используйте проект с открытым исходным кодом soundtouch для изменения высоты тона
Вот ссылка: http://www.surina.net/soundtouch/
Как только вы добавите soundtouch в вашего проекта, вы должны указать путь к входному звуковому файлу, путь к выходному звуковому файлу и изменение высоты звука в качестве входных данных.
Поскольку для обработки вашего звука требуется больше времени, лучше изменить звуковое касание, чтобы при записи голоса напрямую предоставить данные для обработки. Это сделает ваше приложение лучше.