我如何区分两个人说话?就像有人说“你好”,然后另一个人说“你好”,我应该在音频数据中寻找什么样的签名?周期性?
非常感谢任何能回答这个问题的人!
这个问题的解决方案在于数字信号处理(DSP)。说话人识别是一个复杂的问题,需要计算机和通信工程齐头并进。大多数说话人识别技术都需要通过机器学习进行信号处理(对说话人数据库进行训练,然后使用训练数据进行识别)。可以遵循的算法概要 -
-
Record原始格式的音频。这作为数字信号需要进行处理。
- 涂抹一些预处理例程超过捕获的信号。这些例程可以只是信号正常化, or 过滤信号以消除噪声(使用带通滤波器来消除人声的正常频率范围。带通滤波器又可以使用低通滤波器和高通滤波器组合来创建.)
- 一旦相当确定捕获的信号几乎没有噪声,特征提取阶段开始。用于提取语音特征的一些已知技术是 - 梅尔频率倒谱系数(MFCC), 线性预测编码 (LPC)或简单FFT特征。
- 现在,有两个阶段——培训和测试.
- 首先系统需要通过语音特征进行训练在能够区分不同说话者之前。为了确保正确计算特征,建议必须收集多个(>10)说话人的语音样本用于训练目的。
- 可以使用不同的技术来完成训练,例如神经网络或基于距离的分类找出不同说话者的声音特征的差异。
- 在测试阶段,训练数据用于找到与被测信号距离最近的语音特征集。不同的距离比如欧几里得或切比雪夫距离可以用来计算这种接近度。
有两种开源实现可以实现说话者识别 -ALIZE: http://mistral.univ-avignon.fr/index_en.html and MARF: http://marf.sourceforge.net/.
我知道回答这个问题有点晚了,但我希望有人觉得它有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)