2016-12-30 13 views
2

私はボイスチェンジャーアプリについて非常に新しいです。いずれか1つのことができます少女の声のようにピッチを変更する方法を提案してください。AudioPitch withOutノイズを変更する最も良い方法は何ですか

ここに私が使ったコードがあります。私はいずれかを明快に欠け、よりdisturbance.canだオーディオファイルのピッチを変更した後

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]; 

は簡単な作業ではありません。この

+0

私はこのフォーマットといくつかの例題コードを教えてくれました –

答えて

2

のためのソリューションを提案します。基本的には、ピッチ全体ではなく、formantsの音をシフトする必要があります。

同じメモを歌っている男性と女性を想像してください。彼らは同じ音を歌っているにもかかわらず(その音が実際に同じピッチであることを意味する)、あなたは男と女の差を認識することができます。そのため、原因は異なるformantsです。あなたはformantsを周波数スペクトル内の既定の範囲として考えることができます。

私は、フォルマントシフトを提供するObj-C/Swiftフレームワークについて認識していません。基本的なC++ソリューションを見つけることができます。

自分で実装する必要がある場合は、おそらくCore Audioを使用してDSPを実行する必要があります。この場合、Obj-C/Swiftで実装する前に、Matlab/OctaveやNative Instrumentの「Reaktor」といったグラフィカルなDSPプログラミングソフトウェアで動作するプロトタイプを作成することをお勧めします。

このように、これは簡単な作業ではありません。


要件に応じて、あなたは確かに、ピッチの変更やEQをさまざまな組み合わせや設定を試してみることができますが、結果は常に「のようなおもちゃ」になります。

+0

Ok、arm64.recentlyをサポートするC++ソリューションを提案できますか?Dirac Audio Playerを使用しました。これは私がarm64.butを削除した後です。機能があります。私はAppstoreにアップロードすることを確認しています。私はArm64のサポートを欠いています。私は非常に便利なDSPオーディオプレーヤーを提案することができます。 –

+0

残念ながら。 – shallowThought

関連する問題