2011-06-21 94 views
1

我正在为iPhone制作一个音调校正软件。我目前正处于有趣的音频队列部分,而且我还有一些关于改变音调的问题。我目前的想法是增加采样率并删除其他每一帧。我把它设置为记录到一个文件,并使用LPCM格式从该文件播放。如果我理解正确lpcm每个数据包有一帧,所以删除其他每一帧应该是小菜一碟。我在尝试解决这部分代码之前想知道的是,如果我使用lpcm,我可以在文件的不同部分中使用不同的采样率吗?如果不是,是否有另一种格式可以支持文件不同部分的多个采样率?iPhone音频队列采样率问题

+1

警告:这可能听起来很糟糕。这是为了演讲,音乐还是什么? –

+0

这是为了改变它应该使用的任何声音的音调。可能会更好地唱歌,因为如果一个音调正在举行,可以通过这种方式进行调整(我在这里猜测)。这段代码是一个实验。但是我相信有一些方法可以改变音乐的效果,比音效更好,反之亦然。 –

+0

看到我的答案下面 - 也看到许多以前的问题和答案SO有关的变调,PSOLA,相位声码器等。 –

回答

1

您可能希望首先在合适的环境中(例如,MATLAB/Octave,或者甚至只是您在桌面系统上的首选语言)尝试使用音高偏移算法本身。如果它需要为音乐和言语而工作,那么你可能要考虑实施phase vocoder

+0

我会研究,但我需要知道我的原始问题的答案,以加快/通过改变采样率来减慢音频文件的不同部分。 –

+0

@Daniel:我认为这可能是错误的方法 - 相位声码器可以进行音高转换和时间压缩/拉伸,因此您可以在一个经过验证的实现中获得所需的全部内容,而不是诉诸于可疑的黑客攻击在飞行中,这可能会引入一些讨厌的文物。 –

+0

当然,我可能最终会这样做。我并不是故意烦人,但是在实时采样率上搞乱了实际的lpcm文件不能控制采样率?如果是的话,所有的音频格式是这样吗?我对音频软件很陌生。是lpcm苹果名称wav或任何(我只是扔出一个声音文件类型)?我找不到lpcm的RFC。我从iOS开发人员库的音频数据格式标识符枚举中获取lpcm。我真的不知道这是不是一个标准的文件类型。但我听说过pcm。 –