web-dev-qa-db-ja.com

音声を録音するための適切なAVAudioRecorder設定?

AVAudioRecorderを使用してボイスメモ機能を追加しています。音声を録音するためのレコーダーの最適な設定を知る必要があります。

残念ながら、私はオーディオについて何も知りません。

現在、私はテスト目的でどこかからコピーした次のものを使用しています:

recorderSettingsDict=[[NSDictionary alloc] initWithObjectsAndKeys:[NSNumber numberWithInt:kAudioFormatAppleIMA4],AVFormatIDKey,
                        [NSNumber numberWithInt:44100.0],AVSampleRateKey,
                        [NSNumber numberWithInt: 2],AVNumberOfChannelsKey,
                        [NSNumber numberWithInt:16],AVLinearPCMBitDepthKey,
                        [NSNumber numberWithBool:NO],AVLinearPCMIsBigEndianKey,
                        [NSNumber numberWithBool:NO],AVLinearPCMIsFloatKey,
                        nil];

または:

defaultSettings =     {
    AVFormatIDKey = 1768775988;
    AVLinearPCMBitDepthKey = 16;
    AVLinearPCMIsBigEndianKey = 0;
    AVLinearPCMIsFloatKey = 0;
    AVNumberOfChannelsKey = 2;
    AVSampleRateKey = 44100;
};

これは機能しますが、品質、速度、ファイルサイズなどの点で音声に最適かどうかはわかりません。

AVAudioRecorderクラスリファレンスには、多くの設定定数がリストされています ですが、音声に使用する設定の手掛かりがありません。

それを除けば、誰かが「ダミーのAudioFormats」リソースを知っているなら、私もそれを取るでしょう。 (注:Apple Docsを使用しましたが、彼らは私が所有していないデジタルオーディオの知識ベースを想定しています。)

41
TechZen

iPhoneアプリケーションプログラミングガイド というタイトルの「iPhone OSでのサウンドの使用」および Audio Queue Servicesプログラミングガイド をお読みください。 。 (編集:これらのリンクは古く、iPhone OSでのサウンドの使用は現在のアプリケーションプログラミングガイドから編集されていますが、 Audio Queue Servicesプログラミングガイド が更新および移動されました。)

人間の声のほとんどの音は、人間の聴覚の中ほどにあります。録音された音声は、非常に低いデータレートでデジタル化されている場合でも簡単に理解できます。音声録音全体を踏み鳴らすことができますが、それでも有用なファイルを持っています。したがって、これらの録音を最終的に使用することが、これらの設定に関する決定の指針となります。

まず、オーディオ形式を選択する必要があります。どちらを選択するかは、録音後にオーディオをどう処理するかによって決まります。現在の選択はIMA4です。別のフォーマットが必要な場合もありますが、IMA4はiPhoneに適しています。これは高速なエンコーディングスキームであるため、限られたiPhoneプロセッサに負担がかかることはありません。また、4:1の圧縮を提供するので、あまり多くのストレージ領域を占有しません。選択した形式に応じて、さらに設定を行います。

現在のサンプルレート44.1 kHzは、CDオーディオの標準と同じです。高忠実度のレコーディングの後でなければ、これほど高いレートは必要ありませんが、任意のレートを使用する必要はありません。ほとんどのオーディオソフトウェアは、32 kHz、24 kHz、16 kHz、12 kHzなどの特定のステップでのみレートを理解できます。

ステレオの場合、チャンネル数は2に設定されています。追加のハードウェアを使用しない限り、iPhoneにはマイクが1つしかなく、モノラルチャネルは1つで十分です。これにより、データのニーズが半分になります。

使用している3つのリニアPCM設定は、リニアPCMフォーマットの録音専用であるようです。 IMA4形式を使用しているため、コードには影響がないと思います。 IMA4のフォーマットがよくわからないので、どの設定を行う必要があるかを教えてくれるので、その設定を使い続ける場合は、追加の調査を行う必要があります。

90
Mr. Berna

考慮すべきことの1つは、従来の固定電話会社がデジタル化して以来、8ビット、7KHzのサンプリングを使用していたことです。これが、トランクラインのサイズです。T120 64kチャネル。これにより、56kの音声データと、必要な管理メタデータに少しオーバーヘッドが残ります。

したがって、POTS品質が必要な場合は、8b/7KHzで十分です。必要に応じて調整してください。

2
Ben Carroll