Androidオーディオ録音の品質を改善しますか?
-
08-07-2019 - |
質問
オーディオを高品質で録音する方法はありますか?
そして、ユーザーが何か言っている情報をどのように読むことができますか?オーディオ録音アプリケーションでは、このようなインジケーターを見ることができます(正しい名前がわかりません)。
解決
録音と監視の場合:サウンドレコーダーのアクティビティを使用できます。 コードのスニペットは次のとおりです。
Intent recordIntent = new Intent(
MediaStore.Audio.Media.RECORD_SOUND_ACTION);
startActivityForResult(recordIntent, REQUEST_CODE_RECORD);
入力モニターを含むオーディオを録音する方法の完璧な例については、オープンソースのRingdroidプロジェクトをダウンロードしてください: https://github.com/google/ringdroid
スクリーンショットを見ると、モニターが表示されます。
オーディオの品質を高めるには、より良いマイクが必要です。内蔵マイクはあまりキャプチャできません(あまり良くありません)。繰り返しますが、ringdroidプロジェクトを見て、そこから情報を収集してください。その時点で、サウンドを改善するために、いくつかの正規化および増幅ルーチンを実装できます。
他のヒント
現時点では、Androidでの低音質録音の大きな理由は、MediaRecorderクラスで使用されるコーデック(AMR-NBコーデック)です。ただし、AudioRecordクラスを介して非圧縮オーディオにアクセスし、それを直接ファイルに記録できます。
リハーサルアシスタントアプリは、非圧縮オーディオをWAVファイルに保存するためにこれを行います。 RehearsalAudioRecord クラスのソースコード。
RehearsalAudioRecordクラスはgetMaxAmplitudeメソッドも提供します。このメソッドを使用すると、最後にメソッドを呼び出してからの最大オーディオレベルを検出できます(MediaRecorderもこのメソッドを提供します)。