Подходящий аудиозахват и шумоподавление

В моем приложении для 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. Может быть, это причина ужасного шума, который я слышу в своих записях.

Вторая проблема, с которой я сталкиваюсь, это плохое качество звука, шум, поэтому я хочу уменьшить (отменить, подавить) его, потому что он действительно ужасен, особенно на моем неимеальном китайском планшете. Это должно быть на стороне сервера, потому что, насколько я знаю, требует много ресурсов, и не все современные гаджеты (особенно не китайские планшеты) могут сделать это как можно быстрее. Я свободен выбирать, какую платформу использовать на сервере, так что это может быть ASP.NET, PHP, JSP или что-то еще, что поможет мне улучшить звук. Говоря о ASP.NET, я столкнулся с библиотекой, которая называется NAudio, может быть, она может мне как-то помочь. Я знаю, что в библиотеке нет встроенного решения по снижению шума, но я нашел несколько примеров использования FFT и автокорреляции, так что это может помочь.
 Если честно, я никогда раньше не работал со звуком так близко, и понятия не имею, с чего начать. Я много гуглил о методах шумоподавления, примерах кода и ничего не нашел. Вы, ребята, моя последняя надежда.
Заранее спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос