2010-12-16 89 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