用于检测人类语音,性别,年龄和情绪的音频分析 - 任何先前的开源工作都已完成?

时间:2011-02-21 03:39:16

标签: speech-recognition analysis speech emotion

是否在“音频分析”领域进行了先前的开源工作以检测人声(即尽管有一些背景噪音),确定说话人的性别,可能确定不。发言者,发言者的年龄和发言者的情绪?

我的预感是像CMU Sphinx这样的语音识别软件可能是一个很好的起点,但是如果有更好的东西,它会很棒。

3 个答案:

答案 0 :(得分:31)

我是一名从事语音识别研究的研究生。这些是开放的研究问题,不幸的是,我不知道可以开箱即用的开源软件包。

如果您有实施信号处理或机器学习算法的背景知识,您可以尝试使用以下搜索术语查找学术论文:

  • 性别认同(有时称为性别认同):从言语发音中预测发言者的性别
  • 年龄识别:预测发言者的年龄
  • 说话人识别:从一组可能的发言者中预测发言中最有可能发言者
  • 演讲者验证:接受或拒绝属于演讲者的话语(想象一下“声纹”型授权系统)
  • 扬声器分类:获取包含多个文件的音频文件,并标记哪个语段属于哪个发言者
  • 情感识别:通过言语(一个非常新的研究领域)预测说话者的情绪。

根据http://cmusphinx.sourceforge.net/sphinx4/doc/Sphinx4-faq.html#speaker_identification,CMU Sphinx可能是领先的开源语音识别器,不支持说话人识别(http://cmusphinx.sourceforge.net/sphinx4/doc/Sphinx4-faq.html#speaker_identification);我怀疑它是否具有上述任何其他功能。

一些学术研究人员在线发布他们的代码,和/或可能愿意与您分享。对Google学术搜索的搜索揭示了许多使用Sphinx撰写硕士或博士论文的人,因此这可能是一个很好的起点。

最后,如果您了解一点信号处理,您可以尝试实现非常粗略的性别识别算法,而无需进入语音识别器本身。基本上,男性和女性的声音基本频率不同 - 根据维基百科(http://en.wikipedia.org/wiki/Voice_frequency),男性声音在85-180Hz之间,而女性声音在165Hz-255Hz之间。您可以使用类似sox的内容来确定话语的频谱(使用称为快速傅立叶变换的东西),并将语音分类为“男性”或“女性”,具体取决于某些汇总统计信息(如平均频率)(请参阅{ {3}})。为了使其工作稳健(即使用许多扬声器,麦克风或录音环境),您可以做很多事情。我不确定我能否预测需要多少时间和精力来获得70%的准确度,因为这取决于你的任务的性质;我的感觉是,90%+肯定会很难。

祝你好运!

答案 1 :(得分:3)

使用CMU Sphinx 4提取低音量信息(例如音高和功率)可能有点困难(尽管旧版本可能具备此功能)。我建议你使用Praat。您可以编写脚本以扬声器的声音提取音高层和每个共振峰。老实说,Praat脚本语言是可怕的,但它很快就会做很多事情,否则需要很长时间。许多Praat脚本也在线发布。请参阅http://www.fon.hum.uva.nl/praat/

答案 2 :(得分:3)

对于您的语音/非语音分类和分类问题(确定发言人的数量和发言时间):有一个开源工具包可以做到这一点(自动,因此输出中会出现错误)。看看这篇文章:

stackoverflow question on diarization