オーディオを録音するアプリケーションを持っていますが、組み込みのレコーダー アプリケーションと比較すると品質が悪いです。
他のオーディオ レコーダーをダウンロードしてみましたが、確かに私のアプリよりも優れた音質です。
アプリケーションで最高品質のオーディオを得るにはどうすればよいですか?
オーディオを録音するアプリケーションを持っていますが、組み込みのレコーダー アプリケーションと比較すると品質が悪いです。
他のオーディオ レコーダーをダウンロードしてみましたが、確かに私のアプリよりも優れた音質です。
アプリケーションで最高品質のオーディオを得るにはどうすればよいですか?
録音環境が合理的である(つまり、重大なバックグラウンドノイズがない)と仮定すると、オーディオの品質に影響を与える2つの主な要因があります。
録音形式の場合、最高の品質が必要な場合は、MP3などの非可逆形式ではなく、非可逆形式(リニアPCMなど)を使用します。を使用する場合android.media.AudioRecord.AudioRecord
は、コンストラクターで録音されたサウンドデータのビット深度とサンプルレートを指定できます。
AudioRecord(int audioSource, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes)
一般的に、サンプルレートが高いほど、品質は高くなります。ビット深度はaudioFormat
パラメータによって制御され、またはのいずれかを指定できAudioFormat.ENCODING_PCM_8BIT
ますAudioFormat.ENCODING_PCM_16BIT
。16ビットは一般的に高品質であり、ほとんどのデバイスがこれを処理すると思います。最大サンプリングレートはデバイスによって異なりますが、このサンプルレートはすべてのデバイスで「保証」されているため、44.1kHz(16ビット@ 44.1kHzは標準のCD形式)を取得できるはずです(AudioRecordを参照) 。
後処理に関しては、取得したデジタルオーディオサンプルに対してエコーキャンセレーション、ノイズリダクション、オーディオ圧縮、フィルタリングなどを実行できますが、妥当な品質のオーディオを実現するためにこれは必要ありません。
録音したオーディオ品質を他のアプリケーションの音質と比較する場合は、最初に、比較対象のアプリケーションと同じ形式でオーディオを録音/保存していることを確認する必要があります。その場合、後処理段階で違いが生じる可能性があります。