【问题标题】:Comparing two recorded voices比较两个录制的声音
【发布时间】:2019-01-18 16:34:47
【问题描述】:

我需要查找一些有关如何将实时录制的声音(来自麦克风)与预先录制的声音数据库进行比较的文献。比较之后,我需要输出它的匹配百分比。

我正在研究音频指纹识别,但我无法就此类实现的任何文献得出任何结论。这里有任何专家可以轻松指导我实现这一目标吗?

【问题讨论】:

  • 你对这项工作有什么结果吗?我正在解决同样的问题,我得到了 MFCC 向量,需要开始与特定标准进行比较

标签: algorithm audio audio-fingerprinting


【解决方案1】:

我以前做过类似的工作,所以我可能是向您描述该过程的合适人选。

我有纯粹的声音录音,我认为这是黄金标准。我编写了 python 脚本来将这些声音转换为 MFCC 向量数组。阅读有关 MFCC 的更多信息here

提取 MFCC 可被视为音频文件处理的第一步,即有利于识别声学内容的特征。我每 10 毫秒生成一次 MFCC,并有 39 个属性。所以一个 5 秒长的声音文件有大约 500 个 MFCC,每个 MFCC 有 39 个属性。

然后我在这些lines上写了一个人工神经网络代码 .更多关于神经网络的内容可以阅读here

然后我使用使用反向传播算法训练的随机梯度下降算法训练神经网络的权重和偏差,通常称为网络参数。然后保存经过训练的模型以识别未知声音。

然后将新声音表示为一系列 MFCC 向量,并作为神经网络的输入。神经网络能够将从新声音文件中获得的每个 MFCC 实例预测为神经网络所训练的声音类别之一。正确分类的 MFCC 实例的数量给出了神经网络能够对未知声音进行分类的准确度。

考虑例如:您使用上述过程在 4 种类型的声音上训练您的神经网络,1. 口哨、2. 汽车喇叭、3. 狗吠和 4. 警笛。

新的声音是 5 秒长的警笛声。您将获得大约 500 个 MFCC 实例。经过训练的神经网络将尝试将每个 MFCC 实例分类为神经网络所训练的类别之一。所以你可能会得到这样的东西。

30 个实例被归类为哨声。 20 个实例被归类为汽车喇叭/ 10个实例被归类为狗吠 其余实例被正确分类为警笛。

分类的准确性,或者更确切地说是声音之间的共性,可以近似计算为正确分类的实例数与实例总数的比率,在这种情况下为 440 / 500,即 88%。这个领域相对较新,在使用类似的机器学习算法(如Hidden Markov ModelSupport Vector Machine 等)之前已经做了很多工作。

这个问题之前已经解决了,你可以在 google 学者中找到一些关于这些的研究论文。

【讨论】:

  • 该领域有没有实施的产品/解决方案?
  • 我想知道是否也有任何实现
【解决方案2】:

没有这个领域的专家(所以相应地处理)但你应该看看:

如何接近?

  1. 过滤声音

    可识别的语音最小值达到0.4-3.4 KHz(这就是为什么在旧电话过滤器中使用这些)。人声通常高达12.7 KHz,所以如果你确定你有未经过滤的录音,那么过滤到12.7 KHz,并从电源线上取出50Hz60Hz

  2. 制作数据集

    如果您录制了相同的句子进行比较,那么您可以通过 DFFT 或 DFCT 计算相同音调/字母(例如开始、中间、结束)的频谱。过滤掉未使用的区域,从数据中制作声纹数据集。如果不是,那么您需要首先在录音中找到相似的音调/字母,因为您需要语音识别来确定或在录音中找到具有相似属性的部分。它们是什么你必须学习(通过试验,或通过研究语音识别论文)这里有一些提示:节奏、动态音量范围、频率范围。

  3. 比较数据集

    数字比较是通过相关系数完成的,这非常简单(也是我最喜欢的),您也可以为此使用神经网络(甚至是第 2 条),也可能有一些 FUZZY 方法来解决这个问题。我建议使用相关性,因为它的输出与您想要的相似并且是确定性的,因此不会出现过度/不足或无效架构等问题......

[编辑1]

人们也在使用 Furmant 过滤器来生成人声和语音。它们的属性模仿人类发声路径,它们背后的数学也可以通过检查滤波器的主要频率用于语音识别,您可以检测人声、语调、节奏……这可能直接用于语音检测。然而,这超出了我的专业领域,但有很多关于这方面的论文,所以只是谷歌......

【讨论】:

    【解决方案3】:

    这绝对不是小问题。

    如果您认真尝试解决这个问题,我建议您仔细查看语音编码器的工作原理。

    所涉及的步骤的粗略分解:

    1. 识别录音中包含元音的音程
    2. 确定元音的基频和谐波
    3. 确定谐波的相对幅度和基波的平均频率
    4. 开发一个“距离”度量标准,根据第 3 步中的参数测量两个元音之间的距离
    5. 计算新录音的元音与数据库录音的元音之间的距离。

    第 3 步的参数是声道的一种“指纹”。通常情况下,辅音声音并没有足够的不同而没有实质性的用途(除非两个人的元音非常相似)。

    第一步也是非常简单的一步,尝试确定元音的平均基频并将该频率用作签名。

    祝你好运,

    詹斯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-26
      • 1970-01-01
      • 1970-01-01
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多