Запись голоса во время воспроизведения музыки - фильтр ввода динамиков (iOS) - PullRequest
0 голосов
/ 21 сентября 2018

Я занимаюсь разработкой караоке-приложения , в котором вы можете записывать свой голос во время прослушивания музыки.Когда пользователь использует наушники, все отлично - он может слушать музыку и себя в наушниках во время пения.Затем у нас записан его чистый голос, и мы можем смешать его с воспроизведением.Проблема возникает, когда пользователь не использует наушники.Затем мы воспроизводим музыку через динамики AVAudioSessionCategoryPlayAndRecord и записываем одновременно.В финальной записи у нас есть голос пользователя и воспроизведение из динамиков, смешанных вместе.Проблема в том, что громкость воспроизведения очень велика, и она «покрывает» голос пользователя.Сначала я подумал, что это нормальное поведение, потому что динамики близки к microphone, поэтому я ничего не могу сделать.Однако, когда я попробовал то же самое на Garage Band, это как-то снизило уровень звучания динамиков, сделав голос более слышимым.Я также попробовал это с Instagram (вы можете записывать во время воспроизведения музыки, например, из Spotify), и я заметил, что через ~ 1 сек.Громкость воспроизведения уменьшается, и мы можем слышать голос более точно.Я не думаю, что это постобработка, потому что это было бы очень сложно, поэтому, возможно, есть опция, позволяющая «iOS справиться с этим».Чтобы быть понятным - он не снижает воспроизведение во время записи - он «готов» во время прослушивания финального видео.

Я использую AVCaptureSession для записи и AudioKit Player для воспроизведения.

Заранее спасибоза любые мысли / советы / советы!

С уважением

Ответы [ 2 ]

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

Хорошо, поэтому я спросил Apple TS, и ответ был именно тем, что я хотел: https://developer.apple.com/documentation/avfoundation/avaudiosession/mode/1616455-voicechat Вам просто нужно установить этот режим в AVAudioSession, и система будет обрабатывать его device’s tonal equalization is optimized for voice

0 голосов
/ 21 сентября 2018

iOS не может «просто обработать» это, нет функции «отфильтровывать музыку».Тот факт, что он не делает это в прямом эфире, но делает это позже или с задержкой, сильно подразумевает, что они делают некоторую постобработку.Я не эксперт по машинному обучению, но я думаю, что если бы вы просто использовали эквалайзер и шумовые затворы, вы могли бы получить этот эффект.Было бы трудно извлечь акапеллу, но вы, безусловно, могли бы ее улучшить.Вероятно, Instagram использует эту секунду, чтобы определить, где находятся голосовые частоты, поэтому он знает, как эквалайзировать сигнал.

...