Как убрать эхо
Я работаю над приложением, которое делает прямой эфир между двумя устройствами Android. У меня есть довольно хорошие результаты, такие как подключение, видео поток. Но я не доволен качеством звука, в звуке так много эха и шума. Вот как я использую звуковую дорожку
localMS = factory.createLocalMediaStream("ARDAMS");
if(pcParams.videoCallEnabled)
{
MediaConstraints videoConstraints = new MediaConstraints();
videoConstraints.mandatory.add(new MediaConstraints.KeyValuePair("maxHeight", height));
videoConstraints.mandatory.add(new MediaConstraints.KeyValuePair("maxWidth", width));
videoConstraints.mandatory.add(new MediaConstraints.KeyValuePair("maxFrameRate", Integer.toString(pcParams.videoFps)));
videoConstraints.mandatory.add(new MediaConstraints.KeyValuePair("minFrameRate", Integer.toString(pcParams.videoFps)));
videoSource = factory.createVideoSource(getVideoCapturer(), videoConstraints);
localMS.addTrack(factory.createVideoTrack("ARDAMSv0", videoSource));
}
AudioSource audioSource = factory.createAudioSource(new MediaConstraints());
localMS.addTrack(factory.createAudioTrack("ARDAMSa0", audioSource));
mListener.onLocalStream(localMS);
Поэтому я ищу способ удалить эхо и шумоподавление. любая помощь и руководство будут очень благодарны.
1 ответ
Возможные решения для решения проблем качества звука:
- Уменьшите разрешение видео, чтобы обеспечить большую пропускную способность для аудио
- Не запускайте двух клиентов в одной физической комнате (звук из динамика одного компьютера поступает в микрофон другого компьютера)
- Уменьшите громкость динамика.
- Используйте гарнитуру.
- Используйте конференц-микрофон / динамик со встроенным шумоподавлением.
- Android реализует API шумоподавления ( http://developer.android.com/reference/android/media/audiofx/NoiseSuppressor.html)