Обнаружение звука только с 10 см.Потоковое аудио только тогда, когда человек говорит на Android - PullRequest
0 голосов
/ 28 октября 2018

Я занимаюсь разработкой конференц-системы, в которой все телефоны подключены друг к другу через API соседних сервисов Google.Я следовал руководству по Google Walkie Talkie по этой ссылке: https://github.com/googlesamples/android-nearby/tree/master/connections/walkietalkie В этом руководстве человек должен нажать клавишу громкости, чтобы поговорить.Я хочу, чтобы человек не нажимал клавишу voulume, но когда он начинает говорить, он должен транслировать голос.Для этого я перешел по следующей ссылке: Обнаружение голоса в приложении для Android , но когда я проверяю его, голос прерывается и не может точно услышать, что говорит другой человек.Я проверил RECORDER_SAMPLERATE с 8000, а также с 44100, но безуспешно.Кроме того, я хочу, чтобы мой микрофон передавал только голос с 10 см.Например, если человек говорит на расстоянии 10 см, он должен передавать голос, и человек, говорящий рядом с ним, а микрофон далеко на расстоянии 10 см, не должен слышать его голос.

1 Ответ

0 голосов
/ 29 октября 2018

Вы можете использовать FFmpeg для процесса шумоподавления.Есть хорошая обёртка FFmpeg для Android.Вы можете перейти к этому репозиторию https://github.com/WritingMinds/ffmpeg-android-java.Затем интегрируйте этот FFmpeg в Android.

После этого вы можете использовать приведенную ниже команду для уменьшения шума

ffmpeg -i <input_file> -af "highpass=f=200, lowpass=f=3000" <output_file>

Это просто уменьшит шум.Я думал, что этот диапазон даст вам хорошее подавление шума.Вы можете изменить его в соответствии с тем, что вы хотите.Но вы можете многое сделать, используя библиотеку FFmpeg.Это очень мощная библиотека.Перейдите к https://ffmpeg.org/ffmpeg.html это.Вы можете найти много команд для редактирования аудио.большинство из них могут использовать в этой оболочке FFmpeg Android.Я думаю, вам нужно заменить ffmpeg на -y, чтобы выполнить команду в этой оболочке FFmpeg

...