speech-recognition - 音频分析以检测人声、性别、年龄和情绪——之前做过任何开源工作吗?

标签 speech-recognition analysis speech emotion

在“音频分析”领域是否有先前的开源工作来检测人声(比如尽管有一些背景噪音),确定说话者的性别,可能确定没有。演讲者的数量、演讲者的年龄以及演讲者的情绪?

我的预感是,像 CMU Sphinx 这样的语音识别软件可能是一个不错的起点,但如果有更好的东西,那就太好了。

最佳答案

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

如果您在实现信号处理或机器学习算法方面有一定的背景,您可以尝试使用以下一些搜索词查找学术论文:

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

  • 根据 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 Scholar 会发现许多人使用 Sphinx 撰写了硕士或博士论文,因此这可能是一个不错的起点。

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

    祝你好运!

    关于speech-recognition - 音频分析以检测人声、性别、年龄和情绪——之前做过任何开源工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5062032/

    相关文章:

    algorithm - 算法分析

    android - Google Speech to Text 对话框卡住了

    java - 没有从 SpeechRecognizer 类获得结果?

    android - 官方支持 android.speech.extra.DICTATION_MODE 吗?

    ocaml - 在值分析中获取数组索引变量及其值(Frama-C)

    android - 没有谷歌对话框的语音识别

    node.js - 将麦克风输入流式传输到 Google Speech API

    Python SpeechRecognition 与 Google Cloud Speech API

    python - 是否可以在 Django 上使用 Python SpeechRecognition?

    sql - 有没有更好的方法来识别系列模式的时间间隔边界?