「大数据文摘」如何在远程会议的时候静音吃薯片?微软团队用AI去除视频噪声( 二 )


对于语音识别而言 , 标注数据就是对麦克风说话的实际内容 。 而对于实时噪声抑制来说 , 标注数据是干净的语音 。 通过提供足够大的数据集(在这种情况下为数百小时的数据) , Microsoft可以有效地训练其模型 。 “即便我的声音没有出现在训练数据中 , 模型也可以泛化并降低其中的噪音 , ”Aichner说 , “于是当我讲话时 , 模型可以从噪音中实时地提取干净的语音 , 然后发送给远程人员 。 ”
挑战
和语音识别的功能进行比较 , 噪声抑制更容易实现 , 即使后者是实时的 。 那么为什么以前没有实现过?Microsoft的竞争对手可以快速重建它吗?Aichner列出了构建实时噪声抑制的挑战 , 包括查找代表性数据集 , 构建和缩小模型以及利用机器学习知识 。
具有代表性的数据集
我们已经提到了第一个挑战:代表性数据集 。 团队花费了大量时间来弄清楚如何产生能够代表典型通话情况的声音文件 。
他们从有声读物中找出代表男性和女性的典型声音 , 因为“男性和女性的声音之间确实有语音特征上的不同” 。 他们还用了带标注的YouTube数据集 , 标注出了录制内容包含的声音 , 比如打字声和音乐 。 然后 , Aichner的团队用脚本以不同的信噪比将语音数据和噪声数据合并在一起 。 接着通过放大噪音的方式 , 他们就可以模仿通话中可能发生的不同实际情况 。
但有声读物与电话会议完全不同 。 那难道不会影响模型 , 从而影响噪声抑制的效果?
“这是一个很好的观点 , ”Aichner承认 。 “我们的团队也做了一些录音 , 以确保我们不仅在生成的合成数据上面进行训练 , 而且还要在实际数据上能起作用 。 但要获得那些真实的录音肯定要困难得多 。 ”
隐私限制
Aichner的团队是不允许看到任何用户数据的 。 此外 , 微软内部还有着非常严格的隐私保护准则 。 “我不能只是简单地说:‘现在我要开始记录下每次会议’ 。 ”
因此 , 该团队不能使用Microsoft Teams进行通话 。 即使一些员工愿意让他们记录自己的会议 , 但当有很明显的噪音发生时还是需要人记录下来 。
“这就是为什么我们现在只做了一些小规模的工作 , 以确保能使用各种设备和扬声器等收集一些真实的录音“Aichner说 , ”接下来要做的是 , 将它们作为测试集 , 也就是接近真实会议场景的测试数据 。 就可以来看我们是否使用了一个准确的训练集 , 以及在测试集上的表现如何?当然 , 理想的情况是我能有一个训练集 , 它包含了所有Teams的录音 , 里面夹杂着人们正在听到的各种噪音 。 但现实是 , 我无法像通过获取其他开源数据那样轻松地获取相同规模的数据 。 “
另外他还说:“你可能会说它应该变得更好 。 当然 , 如果有更具代表性的数据 , 它可能会变得更好 。 所以我认为在未来 , 可以看看是否能进一步改善 。 但就目前而言 , 即使仅仅使用现有的公开数据 , 它已经表现得很好了 。 ”
云端和边缘端
接下来的挑战就是要确定:如何构建神经网络、模型结构应该是什么样子以及如何迭代 。 机器学习模型经历了很多的调整 , 这需要大量的计算 , 这使得Aichner的团队需要花很长时间才能在Azure(当然得是它??)的多块GPU上完成模型的训练 。
”很多机器学习任务是在云端完成的 , “Aichner说 , “比如对于语音识别任务来说 , 你对着麦克风说话 , 这段话会被发送到云端 。 借助云上强大的计算能力 , 便可以运行这些大型的模型来识别这段语音 。 但对于我们来说 , 由于这是实时通信我需要处理每一帧 , 假设它是10毫秒或20毫秒一帧 , 那我就要在这个时间以内处理完它 , 这样才可以立刻回传给你 。 所以我不能把它发送到云端 , 等待噪音抑制 , 再回传回来 。 “
对于语音识别来说 , 利用云可能还是有意义的 。 但对于实时的噪音抑制 , 它就没啥意义了 。 一旦你有了机器学习模型后 , 你应当缩小它以适应客户端 , 有可能是一部手机或是一台电脑 。 一个只针对拥有高端机人群的机器学习模型是没有意义的 。


推荐阅读