Как убрать эхо

Я работаю над приложением, которое делает прямой эфир между двумя устройствами 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)
Другие вопросы по тегам