В моем приложении для 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. Возможно, это причина ужасного шума, который я слышу в своих записях.
Вторая проблема, с которой я столкнулся, - это плохое качество звука, шум, поэтому я хочу восстановить (отменить, подавить) его, потому что это действительно ужасно, особенно на моей неамериканской китайской планшете. Это должно быть на стороне сервера, потому что, насколько мне известно, requiers много ресурсов, и не все современные гаджеты (особенно noname китайские планшеты) могут сделать это как можно быстрее. Я свободен в выборе, какую платформу использовать на сервере, поэтому это может быть ASP.NET, PHP, JSP или что-то еще, что помогает мне улучшить звук. Говоря об ASP.NET, я столкнулся с библиотекой под названием NAudio, может быть, это может мне помочь в некотором роде. Я знаю, что в библиотеке нет никакого решения по снижению шума, но я нашел несколько примеров использования FFT и автокоррелирования, поэтому это может помочь.
Если честно, я никогда раньше не работал со звуком, и я не знаю, с чего начать. Я много разбирался в методах шумоподавления, примерах кода и ничего не нашел. Вы, ребята, моя последняя надежда.
Спасибо заранее.
Возможно, вы могли бы разделить этот вопрос на два: (1) как захватить аудио на Android? и (2) как уменьшить шум (на сервере)? – Kaarel