[测试]工作中用声音控制计算机上命令的执行
发表于 : 2007-08-07 15:52
http://www.ibm.com/developerworks/cn/op ... index.html 原文
http://www.cs.princeton.edu/sound/softw ... ek-1.3.tgz 没有configure,也没makefile,怎么搞呢。
赶紧搞啊。
http://www.emacswiki.org/cgi-bin/alex/c ... e.pl_patch
http://www.cs.princeton.edu/sound/softw ... ek-1.3.tgz 没有configure,也没makefile,怎么搞呢。
赶紧搞啊。
http://www.emacswiki.org/cgi-bin/alex/c ... e.pl_patch
创建简单的音调序列
下载 源代码并找到 cmdWhistle.pl 脚本。这是 Perl 主程序,允许您创建音调序列,侦听特定音调序列及 run 命令。本文将先向您介绍 cmdWhistle.pl 程序的用户空间使用和配置,然后再说明各个功能。
用以下命令运行 cmdWhistle.pl 程序:sndpeek --print --nodisplay | perl cmdWhistle.pl -c。此命令将启动侦听麦克风的 sndpeek 程序并将输出打印到 Perl 程序。此程序运行后,请生成一些简单的口哨声 —— 稳定的单音调或具有 1-3-2 停顿的音调。注意,您必须在噪声相对较少的环境中运行此程序,因此请插入耳机并确保 CD 驱动器盘片停止旋转。如果膝上型电脑的电池着火,请在运行此程序之前先拔掉感烟探测器。
用不同的速度和音调做试验来感受 cmdWhistle 程序捕捉事件的能力。体验程序的音调检测过程的微妙对于创建重复的复杂音调序列来说很重要。第一个音调序列应当很简单:两声低音哔哔,间隔为 0.5 秒。运行 sndpeek --print --nodisplay | perl cmdWhistle.pl -c,当看到 “enter a tone sequence” 时,吹两声口哨,音调之间有 0.5 秒延迟。自动超时将在 4 秒钟(可配置)后发生,并且将打印出类似以下示例的音调序列:25.00 25.00 _#_ 0 500000 _#_ <command here> _#_ <comment here>。
命令设置和音调序列检测
让我们来仔细研究该行:音调值、分隔符、时间值、分隔符、命令区域、分隔符和注释区域。下一步是要将这一行复制到 cmdWhistle.pl 程序的默认配置文件中:{$HOME}/.toneFile,也可能是 /home/<username>/.toneFile。用以上音调序列行创建 ~/.toneFile 之后,可以修改该行来运行程序。将命令区域文本更改为 /bin/echo "two low" 并将注释区域修改为描述性内容,如 25.00 25.00 _#_ 0 500000 _#_ /usr/bin/echo "two low" _#_ two low tones。
现在您已经修改了配置文件来给出通知,用命令 sndpeek --print --nodisplay | perl cmdWhistle.pl 以守护进程模式运行 cmdWhistle.pl 脚本。程序将在背景中静静地侦听来自 ~/.toneFile 列表的任何事件。尝试以同样的时间间隔并以相同的音调吹两声低音调口哨,您将看到文本 “two low” 打印到屏幕上。如果需要详细查看运行中的 cmdWhistle.pl 脚本,请用命令 sndpeek --print --nodisplay | perl cmdWhistle.pl -v 以守护进程模式运行该脚本。如果系统支持图形显示,请删除 --nodisplay 选项以获得声音输入的优秀 3-D 视觉效果。