2010-12-16 62 views
9

我正在开发一个iPhone应用程序,它记录用户的声音,并将其改为女声,如(TALKING TOM和iHOBO)。我是音频处理新手。 请告诉我哪个API需要这样做? 我可以使用iphone sdk apis实现此功能吗? 有没有开源的实现这个功能? 是否有任何教程重新调整?iPhone语音转换器

感谢Advace

回答

10

没有内置的iOS API可以进行独立的时间间隔修改。

Audacity中有实现时间间距拉伸的开源代码,但我不知道这段代码是否已经移植到iOS。同SoundTouch

DSP Dimensions网站上有一个T ime-Pitch Stretch Tutorial

更新:2012年年底,kAudioUnitSubType_NewTimePitch音频单元被包含在iOS 6的发行版中,并且已内置到iOS 6的发行版中,因此您现在可以使用iOS API实施(独立时间间隔修改)语音更改。有关详细信息,请参阅Apple的developer documentation

+0

非常感谢您指导我。 – rat 2010-12-17 04:21:17

5

看看Dirac。它是免费的,但不是免费的软件。

4

伟大的链接下载示例代码,提供您所有的需求,here也参考here获得更多关于您的问题的知识。

在HelloWorldLayer.mm的示例代码的init方法,U可以看到三个浮点值

time  = 0.7; 
pitch  = 0.8; 
formant = pow(2., 0./12.); 

只是调整间距值到1.9,这将是非常不错的猫的声音!

+1

但它只捕获几秒钟的声音如果用户说话数15秒.......或更多 – 2012-05-29 11:18:30

+2

@aloksinha定义您的值#define AUDIOMONITOR_THRESHOLD 0.01 #define MAX_SILENCETIME 0.8并删除“[audioMonitor stop]”在“if(audioMonitorResults> AUDIOMONITOR_THRESHOLD)”循环上“ - (void)monitorAudioController:(ccTime)dt”方法...它会工作... :)现在你可以长时间记录n播放它.. – 2012-05-29 20:16:21

+0

感谢你的responce.im测试这个,然后我会告诉你! – 2012-05-30 04:54:45