首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建自定义语音命令(GNU/Linux)

创建自定义语音命令(GNU/Linux)
EN

Stack Overflow用户
提问于 2013-03-09 06:59:41
回答 2查看 1.5K关注 0票数 2

我在寻求建议,为了一个个人项目。

我正在尝试创建一个用于创建自定义语音命令的软件。目标是允许用户/我录制一些音频数据(2/3秒),用于定义命令/宏。然后,当用户要说话(录制相同的音频数据)时,将执行命令/宏。该软件必须能够在低成本计算机(例如RaspberryPi)中在不到1秒的处理时间内检测到命令。

我已经通过两种方式进行了搜索:- Speech Recognition (CMU-Sphinx,Julius,simon):有很好的开源解决方案,但它们通常需要大型数据库文件,而语音识别并不是我真正想要做的。对于一个很小的特征来说,语音识别可能会消耗太多的能量。详细说明:音频指纹识别(Chromaprint -> http://acoustid.org/chromaprint):这似乎就是我想要的。其原理是从原始音频数据中创建指纹,然后比较指纹以确定它们是否相同。然而,这种软件/库似乎是为歌曲识别而设计的(就像智能手机上的著名软件):我正在尝试配置一个好的“比较器”,但我认为我走错了路。

你知道一些专门的软件或代码包做类似的事情吗?

任何建议都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-09 17:09:51

歌曲指纹对于该任务来说不是一个好主意,因为命令时间可能会有所不同,而指纹需要精确的时间匹配。然而,利用CMUSphinx库Sphinxbase对时间序列和特征提取的时间序列进行匹配是非常容易的。有关详细信息,请参阅维基百科关于DTW的条目。

http://en.wikipedia.org/wiki/Dynamic_time_warping

http://cmusphinx.sourceforge.net/wiki/download

票数 1
EN

Stack Overflow用户

发布于 2013-10-18 18:54:14

我有一个或多或少类似的项目,我打算向机器人发送语音命令。语音识别软件对于这样的任务来说太复杂了。我使用C++中的快速傅立叶变换实现提取采样语音的傅立叶分量,然后创建主要频率的直方图(目标语音命令具有最高振幅的频率)。我尝试了两种方法:

  1. 将给定语音命令的直方图与存储在内存中的直方图进行相似性比较,以识别最可能的命令。
  2. 使用支持向量机训练分类器来区分语音命令。我使用了LibSVM,结果比第一种方法要好得多。然而,支持向量机方法的一个问题是需要相当大的数据集来进行训练。另一个问题是,当给定未知语音时,分类器无论如何都会输出命令(这显然是错误的命令检测)。这可以通过第一种方法来避免,在第一种方法中,我有一个相似性度量的阈值。

我希望这能帮助你实现你自己的声控软件。

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

https://stackoverflow.com/questions/15304768

复制
相关文章

相似问题

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