将语音控制添加到Arduino项目的3种方法

使用OSX自动化程序和可口项目

我们做到这一点的一种方法是利用OSX中内置的现有语音命令实用程序;设置自定义命令以触发Automator动作很简单。 (如果您不熟悉Automator,请下载免费的PDF指南来实现Mac的自动化!)

在Arduino代码方面,我们将使用详细的字符串缓冲区在这个Arduino论坛线程上-这使我们能够在串行通信中搜索确切的单词-没有这个,我发现了数字字节,之间的类型转换字符串有问题。这是用于收听串行命令的完整Arduino代码,尽管您需要添加自己的命令和硬件以实际控制设备,因为这不在本Arduino项目教程的范围之内。如果您使用的是继电器,请记住,它们需要能够处理 120-240vAC。 另外,如果您不熟悉这一切,请务必先阅读我们的初学者的Arduino指南。

下一步,下载此Arduino串行实用程序,使我们能够从命令行或Shell脚本直接与Arduino通信。将其放在用户目录的根目录中,然后打开一个终端会话,然后键入:

make arduino-serial

为您的系统编译该软件包。

使用此实用程序非常简单,但出于我们的目的,请首先键入

ls /dev/tty.*

to figure out which port your Arduino is on (the USB one). Then to send a command, use:

./arduino-serial -b 9600 -p /dev/tty.usbmodemfd13411 -s lightsOn

,并用您为连接到Arduino的USB端口找到的确切名称替换 /dev/tty.usb~ 。请参阅原始页面以获取更多使用示例,包括获取返回值,但是现在可以使用。

我发现的一件事是,我必须通过使用以下命令发送命令来“启动" Arduino: Arduino串行监视器,然后一切正常。如果有人知道为什么会这样,我很想听听。

下一步,打开 Automator 并创建一个新的 Application 。找到运行Shell脚本操作,将其添加并粘贴到串行命令中以打开灯。

将其保存到库/语音/可口项目中文件夹,其中包含您要触发操作的字词-在我的情况下为“亮起"。

然后,从可访问性首选项面板中启用可说出的命令。

此教程仍与2009年相关,但基本上您想启用全球可口项目

以下是所有工作示例

Easy VR Shield(硬件)

EasyVR是一个附加的硬件盾牌,它首先对您预先录制的语音样本进行编码,然后使用基于硬件的解决方案对它们进行模式匹配。设置有些复杂,每个命令仅响应单个语音标记,但是如果您希望项目独立于计算机,则这是最全面的选择。 EasyVR Shield在英国的CoolComponents售价35英镑,在美国的SparkFun售价50美元。这是一个实际的屏蔽演示以及编码过程:

通过Ruby的SiriProxy

如果您已经越狱了具有Siri功能的iPhone,那么Siri Proxy是一种很好的利用方法手机的语音识别功能。 SiriProxy是一个Ruby应用程序,它侦听被识别并发送到Apple服务器的命令;添加一种与Arduino通信的方式,您便拥有了SiriProxy-Arduino。唯一的缺点是您需要将一个特殊的草图上载到实现Ruby API的Arduino,因此您需要对其进行调整,或者在计算机端用Ruby编写所有代码。

在那里拥有它– 3种独特的方式,仅凭您的声音即可控制任何Arduino项目。您会尝试通过语音控制灯光吗?您认为您可以在其他项目中利用这些想法吗?在评论中让我们知道!

标签: Arduino 语音识别