オーディオ処理用の iOS アプリケーションの開発を開始しようとしています。現時点では、これは研究プロジェクトであるため、アプリケーションの要件が何であるかはよくわかりません. しかし、基本的な要件は、少なくともコード、マイク入力からのオンセットを検出することです。したがって、この種の作業に適していると思われる利用可能なライブラリについてのご意見をお待ちしております。サードパーティのライブラリにはできるだけ近づかないようにしています。
4 に答える
Novocaine ライブラリの使用をお勧めします。オーディオは自分で一からやると大変ですよね…
https://github.com/alexbw/novocaine
これが彼らの言うことです:
Audio Units を使用して iOS や Mac OS X で本当に高速なオーディオを作成するのは困難であり、傷と血まみれの状態になります。以前は数日かかっていた作業が、わずか数行のコードで実行できるようになりました。
オーディオの取得
Novocaine *audioManager = [Novocaine audioManager];
[audioManager setInputBlock:^(float *newAudio, UInt32 numSamples, UInt32 numChannels) {
// Now you're getting audio from the microphone every 20 milliseconds or so. How's that for easy?
// Audio comes in interleaved, so,
// if numChannels = 2, newAudio[0] is channel 1, newAudio[1] is channel 2, newAudio[2] is channel 1, etc.
}];
オーディオユニットを使用しています。
とにかくiOSで最高のオーディオインターフェイスであるプレーンなオーディオユニットだけです。
最初は少しトリッキーですが、ドキュメントを読めば大丈夫です。
オーディオ グラフ ( https://github.com/tkzic/audiograph ) は、マイク、オーディオ ファイル、および MIDI ファイルからオーディオを読み取る方法を示しています。また、時間ドメインと周波数ドメインの両方でそれらを処理します (コード検出の場合、周波数ドメインでの分析が必要になる場合があります)。Apple の MixerHost の例を変更したものであるため、サードパーティのライブラリは使用しません。
Apple によるAurio Touch ( https://developer.apple.com/library/ios/samplecode/aurioTouch2/Introduction/Intro.html ) は習得が少し難しいですが、最初に必要なものが含まれています。また、これにはサードパーティのライブラリは含まれません。
CoreAudioとAccelerateフレームワークはiOSに組み込まれています。サードパーティのライブラリは必要ありません。AppleのDeveloperWebサイトにドキュメントがある場合はたくさんあります。リアルタイムの低遅延オーディオ入力については、iOSCoreAudioに組み込まれているRemoteIOオーディオユニットをお試しください。
コアオーディオの学習に関する本もあります。
Accelerateフレームワークには、FFT、行列演算、バイクアッドフィルターなどの基本的なDSPビルディングブロックが多数含まれています。