【问题标题】:Recording voice while playing music - filter speakers input (iOS)播放音乐时录制声音 - 过滤扬声器输入 (iOS)
【发布时间】:2018-09-21 10:51:33
【问题描述】:

我正在开发一个卡拉 OK 应用程序,您可以在其中一边听音乐一边录制自己的声音。当用户使用耳机时,一切都很棒——他可以一边唱歌一边用耳机听音乐和自己。然后我们录制了他纯净的声音,我们可以将其与播放混合。 当用户不使用耳机时会出现问题。然后我们通过扬声器AVAudioSessionCategoryPlayAndRecord 播放音乐并同时录制。在最终录音中,我们将用户的声音和扬声器的回放混合在一起。问题是播放的音量非常大,它“覆盖”了用户的声音。首先,我认为这是正常行为,因为扬声器靠近microphone,所以我无能为力。 然而,当我在 Garage Band 上尝试同样的事情时,它以某种方式降低了扬声器的播放,使声音更容易听到。 我还用 Instagram 进行了尝试(您可以在播放音乐时录制,例如来自 Spotify),我注意到大约 1 秒后。播放的音量正在降低,我们可以更准确地听到声音。 我不认为它是后期处理,因为它会非常复杂,所以也许可以选择让“iOS 处理它”。 需要明确的是 - 它不会在录制过程中降低播放速度 - 它在收听最终视频时“完成”。

我使用AVCaptureSession 进行录音,AudioKit Player 用于播放。

提前感谢您的任何想法/提示/建议!

问候

【问题讨论】:

    标签: ios avcapturesession audiokit


    【解决方案1】:

    好的,所以我问了 Apple TS,得到的回答正是我想要的:https://developer.apple.com/documentation/avfoundation/avaudiosession/mode/1616455-voicechat您只需在 AVAudioSession 中设置此模式,系统就会处理它device’s tonal equalization is optimized for voice

    【讨论】:

      【解决方案2】:

      iOS 不能“只处理”它,没有“过滤掉音乐”功能。它不会实时执行,而是稍后执行或延迟执行,这一事实强烈暗示他们正在进行一些后期处理。我不是机器学习专家,但我认为如果你只使用均衡器和噪声门,你可以获得这种效果。提取无伴奏合唱很难,但你当然可以改进它。 Instagram 很可能会用那一秒来识别语音频率的位置,以便知道如何均衡信号。

      【讨论】:

      • 感谢您的回答。但是我真的不确定这是某种后期处理。我们在 Logic 上尝试了 EQ 和其他过滤器,即使在 1 个录音中手动也无法正确区分语音。 iPhone 在通话过程中使用这种机制 - 它会尝试消除所有背景噪音,以便更容易听到声音。
      • “尝试去除所有背景噪音”。降噪正是您想要做的。在stackoverflow.com/questions/49507343/… 上还有一个非常相似的问题,在 cmets 中,这个人链接了这段代码。 github.com/comyar/TuningFork如果你发现一个神奇的“从声音中删除音乐”函数调用 LMK,我也会觉得它非常有用;)。
      • 想想在 Garageband 工作的团队——这些都是很重要的。
      • 再次感谢您的回复。对我来说最有趣的是 Instagram 的这个案例——它能够降低其他应用音乐的音量(但在录制之后)。我认为它可能正在使用:developer.apple.com/documentation/avfoundation/avaudiosession/… 我没有测试它,但它可能只是在录制期间而不是之后降低音量。尽管如此,我似乎对这个问题无能为力。
      • 啊,我明白你为什么会这样想。躲避的一个很好的例子是电影中的角色说话。可能有火灾、枪声、引擎等等——但是当角色说话时,这些其他声音通道(想象一个混音器)的音量会降低,这样你就可以听到角色的声音。这是播放的东西而不是录音的东西。
      猜你喜欢
      • 1970-01-01
      • 2014-06-20
      • 1970-01-01
      • 2016-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      相关资源
      最近更新 更多