说话人识别

Ext*_*der 3 audio speech-recognition signatures

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

非常感谢能够回答此问题的任何人!

Bho*_*oot 12

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

  1. 以原始格式录制音频.这用作需要处理的数字信号.
  2. 对捕获的信号应用一些预处理例程.这些例程可以简单地进行信号归一化,或者对信号进行滤波以去除噪声(对于人类语音的正常频率范围使用带通滤波器.带通滤波器又可以使用低通和高通滤波器组合创建.)
  3. 一旦确定捕获的信号几乎没有噪声,则特征提取阶段开始.用于提取语音特征的一些已知技术是 - 梅尔频率倒谱系数(MFCC),线性预测编码(LPC)或简单FFT特征.
  4. 现在,有两个阶段 - 培训和测试.
  5. 首先,系统需要在不同扬声器的语音特征之前进行训练,然后才能区分它们.为了确保正确计算功能,建议必须收集来自扬声器的多个(> 10个)语音样本用于培训目的.
  6. 可以使用诸如神经网络或基于距离的分类之类的不同技术来进行训练,以找出来自不同说话者的声音特征的差异.
  7. 在测试阶段,训练数据用于找到位于距被测信号最低距离的语音特征集.可以使用诸如欧几里得或切比雪夫距离的不同距离来计算该接近度.

有两个开源实现可以识别说话人 - ALIZE:http://mistral.univ-avignon.fr/index_en.htmlMARF:http://marf.sourceforge.net/.

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

  • 现在存在第三个开源选项:**Recognito**https://github.com/amaurycrickx/recognito.主要优点是学习曲线短.我建议阅读Homayoon Beigi的"演讲者识别基础",对该主题进行深入的解释 (2认同)