检测语音和音乐之间的变化

信息处理 声音的 算法 演讲 语音 音乐
2021-12-29 18:51:15

我有一堆既有语音又有音乐部分的音频文件(想想收音机)。例如,给定文件可能包含以下部分:

music --- speech --- music --- speech --- music --- speech --- music

我的目标是检测文件何时在音乐和语音之间发生变化,并删除音乐部分,只留下语音。但是,我不知道用什么方法来区分语音和音乐。我正在考虑检测速度,但有些音乐很慢或速度不同。

(虽然我们在这里,所以我不必自己编写,是否有任何现有的软件库可以区分语音和音乐?)

1个回答

这是一个经过充分研究的问题,可以追溯到 90 年代中期(DARPA/NIST 广播转录挑战)。搜索“语音/音乐分割”或“音频分割”,您会发现数千篇研究论文。

有两种广泛的方法可以解决这个问题:

监督分类

使用标准机器学习方法训练语音/音乐分类器。您可以使用 MFCC 作为输入特征,以及其他基本特征,如过零率、4Hz 幅度调制等。最近,加入尽可能多的特征变得很普遍,并使用特征检测技术来识别最具辨别力的特征.

任何分类算法都可以——支持向量机、高斯混合模型、决策树。分类完成后,您将得到错误分类的帧(例如,歌曲中的一个小无伴奏合唱片段将被分类为语音;或者语音之间的 FX 或叮当声将突出)。这需要后处理,最常见的方法是对分类器输出序列应用模式过滤(投票)。分类/时间平滑有时通过使用隐藏马尔可夫模型进行分类和时间平滑而合二为一。

参考:使用支持向量机的基于内容的音频分类和分割,Lu 等人。

无监督段变化检测

考虑一个在信号上滑动的 10 秒窗口。计算前半部分和后半部分的音频特征,并使用统计检验来确定最有可能的假设:两组音频特征来自同一个分布,或者来自两个不同的分布。测试的输出将告诉您窗口中间对应于语音和音乐片段之间边界的可能性有多大。选择得分最高的点作为分段边界。

可以使用与监督方法相同的音频特征(MFCC、ZCR、4 Hz 的幅度调制......)。

统计检验的“教科书”标准:贝叶斯信息标准(BIC)。

参考:通过贝叶斯信息准则进行无监督音频流分割和聚类,Zhou & Hansen(BIC 简介)。

用于无线电音频流自动分割的监督和无监督组合方法,Richard、Ramona 和 Essid(用于更奇特的变化检测测试)。