私の Android アプリケーションでは、ユーザーの音声をマイクからキャプチャしてサーバーに渡す必要があります。現在、私はMediaRecorder
クラスを使用しています。ただし、現在の入力音の音量に基づいて光る効果を作りたいので、AudioStreamなどが必要なので、それは私のニーズを満たしていません。現在、私は以下を使用しています:
this.recorder = new MediaRecorder();
this.recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
this.recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
this.recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
this.recorder.setOutputFile(FILENAME);
私は API レベル 7 を使用して書いているので、他の AudioEncoders は表示されませんが、AMR Narrow Band は表示されません。たぶんそれが私の録音で聞こえるひどいノイズの理由です.
私が直面している2番目の問題は、音質の悪さ、ノイズです。特にnoname中国語のタブレットでは本当にひどいので、それを減らしたい(キャンセル、抑制したい). 私の知る限り、多くのリソースが必要であり、最新のガジェット (特に noname の中国製タブレット) のすべてがそれを可能な限り高速に実行できるわけではないため、これはサーバー側である必要があります。サーバーで使用するプラットフォームは自由に選択できるので、ASP.NET、PHP、JSP など、サウンドを改善するのに役立つものであれば何でもかまいません。ASP.NET について言えば、NAudio というライブラリに出会いました。何らかの形で役立つかもしれません。ライブラリに組み込まれているノイズ削減ソリューションがないことはわかっていますが、それを使用した FFT と自動相関の例をいくつか見つけたので、役立つかもしれません。
正直なところ、これほど近くで音を扱ったことがなく、どこから始めればよいかわかりません。私はノイズリダクション技術、コード例について多くのことをグーグルで検索しましたが、何も見つかりませんでした. あなたたちは私の最後の希望です。
前もって感謝します。