Closed. This question needs to be more focused 。它目前不接受答案。












想改善这个问题吗?更新问题,使其仅通过 editing this post 关注一个问题。

4年前关闭。



Improve this question




我怎么区分两个人说话?就像有人说“你好”然后另一个人说“你好”我应该在音频数据中寻找什么样的签名?周期性?

非常感谢任何能回答这个问题的人!

最佳答案

这个问题的解决方案在于数字信号处理(DSP)。说话人识别是一个复杂的问题,它使计算机和通信工程携手并进。大多数说话人识别技术都需要使用机器学习进行信号处理(对说话人数据库进行训练,然后使用训练数据进行识别)。可以遵循的算法大纲 -

  • 以原始格式记录 音频。这用作需要处理的 数字信号
  • 对捕获的信号应用一些 预处理例程 。这些例程可以是简单的信号 归一化 ,或 过滤 信号以去除噪声(使用带通滤波器用于人类语音的正常频率范围。带通滤波器可以依次使用低通和高通滤波器在组合。)
  • 一旦确定捕获的信号几乎没有噪声, 特征提取 阶段就开始了。一些用于提取语音特征的已知技术是 - 梅尔频率倒谱系数 ( MFCC )、线性预测编码 ( LPC ) 或简单的 FFT 特征。
  • 现在,有两个阶段 - 训练和测试
  • 首先,系统需要对不同说话者的语音特征 进行 训练,然后才能区分它们。为了确保正确计算特征,建议必须收集来自说话者的多个 (>10) 语音样本用于训练目的。
  • 训练可以使用不同的技术来完成,比如 神经网络或基于距离的分类 来找到来自不同说话者的声音特征的差异。
  • 在测试阶段,训练数据用于找到与被测信号距离最小的语音特征集。不同的距离,如 Euclidean 或 Chebyshev 距离可用于计算这种接近度。

  • 有两个开源实现可以启用说话者识别 - ALIZE : http://mistral.univ-avignon.fr/index_en.html MARF : http://marf.sourceforge.net/

    我知道回答这个问题有点晚,但我希望有人觉得它有用。

    关于audio - 说话人识别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4837511/

    10-09 16:00