2016-12-30 36 views
2

我很新的語音轉換器應用程序。可以任何一個請建議我改變音調像女孩的聲音的方式。什麼是改變AudioPitch與Out Noise的最佳方式

這裏是我使用的代碼。

audioPlayerNode=[[AVAudioPlayerNode alloc]init]; 

    [audioEngine attachNode:audioPlayerNode]; 

    changePitchEffect=[[AVAudioUnitTimePitch alloc]init]; 
     changePitchEffect.pitch=pitch; 
[audioEngine attachNode:changePitchEffect]; 


[audioEngine connect:audioPlayerNode to:changePitchEffect format:audioFile.processingFormat ]; 

[audioEngine connect:changePitchEffect to:audioEngine.outputNode format:processingFormat]; 

[audioPlayerNode scheduleFile:audioFile atTime:nil completionHandler:nil ]; 

    AVAudioInputNode *input = [audioEngine inputNode]; 
    AVAudioFormat *format = [input outputFormatForBus: 0]; 

    [audioEngine prepare]; 

    [audioEngine startAndReturnError:nil]; 

改變AUDIOFILE的間距後,我缺少透明度和得到更多的disturbance.can任何一個建議此

+0

你能幫助我的格式和目標c –

回答

2

的解決方案,它不是一個簡單的任務。基本上你必須改變聲音formants而不是整體音高。

想象一個男人和一個女人在唱同一個音符。儘管他們在唱同樣的音符(意思是他們的聲音實際上處於相同的音高),但你仍然可以認識到男女之間的差異。原因因此是不同的formants。您可以將頻譜中的formants視爲預設範圍。

我不知道Obj-C/Swift框架提供共振峯轉換。我假設你會在那裏找到基本的C++解決方案。

如果你想/必須自己實現它,你很可能必須使用Core Audio並自己完成DSP。在這種情況下,我建議在開始在Obj-C/Swift中實現之前,使用Matlab/Octave或圖形化DSP編程軟件(如Native Instrument的「Reaktor」)創建一個工作原型。

如上所述,這是一項不重要的任務。


根據您的要求,你當然可以用不同的組合和音調變化和均衡器設置進行試驗,但結果永遠是「玩具一樣」。

+0

一些示例代碼好吧,你可以建議C++解決方案,它支持arm64.recently我被用於Dirac音頻播放器。爲此,我剛剛刪除arm64.but完成後,我功能。當我驗證上傳到Appstore時,我得到了Arm64支持missing.Do有任何想法關於this.Could建議任何DSP音頻播放器,這將對我非常有用。 –

+0

不幸的不是。 – shallowThought

相關問題