首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >说话人识别

说话人识别
EN

Stack Overflow用户
提问于 2011-01-29 22:56:03
回答 4查看 4.9K关注 0票数 3

我怎么能区分两个说话的人呢?例如,如果有人说"hello“,然后另一个人说"hello”,我应该在音频数据中查找哪种签名?周期性?

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

EN

回答 4

Stack Overflow用户

发布于 2013-12-24 18:05:39

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

对原始格式的音频进行

  1. Record。这用作需要在捕获的信号上执行一些预处理例程( processed.
  2. Apply )的数字信号处理。这些例程可以简单地对信号进行normalization,或滤波,以去除信号中的噪声(使用带通滤波器对正常频率范围的人类语音进行滤波)。在combination.)
  3. Once中,可以依次使用低通和高通滤波器创建带通滤波器。可以相当确定地说,捕获的信号几乎没有噪声,特征提取阶段开始。用于提取语音特征的一些已知技术是-Mel频率倒谱系数(FFT)、线性预测编码(LPC)或简单的特征。
  4. 现在,有两个阶段- training和testing
  5. 首先,系统需要对不同扬声器的语音特征进行训练,然后才能区分它们。为了确保正确计算特征,建议从说话者那里采集几个(>10)个语音样本用于训练。
  6. 训练可以使用不同的技术来完成,如神经网络或基于距离的分类,以发现来自不同说话者的语音特征的差异。
  7. 在测试阶段,训练数据用于找到与被测信号距离最小的语音特征集。可以使用不同的距离,如切比雪夫欧几里得距离或切比雪夫距离来计算这种接近。

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

我知道现在回答这个问题有点晚了,但我希望有人能发现它是有用的。

票数 12
EN

Stack Overflow用户

发布于 2011-01-29 23:08:47

这是一个极其困难的问题,即使对于语音和信号处理专家来说也是如此。这个页面有更多的信息:http://en.wikipedia.org/wiki/Speaker_recognition

以及一些建议的技术起点:

用于处理和存储声纹的各种技术包括频率估计、隐马尔可夫模型、高斯混合模型、模式匹配算法、神经网络、矩阵表示、矢量量化和决策树。一些系统还使用“反扬声器”技术,例如队列模型和世界模型。

票数 2
EN

Stack Overflow用户

发布于 2011-01-30 00:53:50

只有两个人来区分,如果他们说的是相同的单词或短语,这将使这变得更容易。我建议从简单的东西开始,只在需要的时候增加复杂性。

首先,我会尝试数字波形的样本计数,按时间和幅度或(如果你手边有软件功能)整个话语的FFT。我也会首先考虑一个基本的建模过程,比如线性判别式(或者你已经有的任何东西)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4837511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档