中国青基会

查看完整版本: ubuntu语音交互控制初体验(gnome voice control)

cckj 2008-12-10 15:42

ubuntu语音交互控制初体验(gnome voice control)

听别人说《防火墙xxxx》很好看,看了第一集的前10分钟就看不下去了。
为啥中国拍的科幻片就这么土呢,土的一看就知道是忽悠小学生的。

话说回来,利用声音控制电脑这倒是个不错的主意。大名鼎鼎的linux里已经有现成的应用软件,当然目前很不成熟,该软件是2007年google编程之夏的一个作品。
目前已经收录在gnome里,名叫 gnome-voice-control ,当前版本号为0.3

在声音识别方面利用的是Sphinx
目前在ubuntu 8.04里可顺利安装 gnome-voice-control 0.2   
下载  http://live.gnome.org/GnomeVoiceControl

至于0.3 需要自己编译安装 sphinxbase 和 pocketsphinx

我安装的是0.3

这个软件是以 applet 的形式存在,所以要使用的时候,到任务栏里添加这个applet。

当然,如果你是用deb安装好的,那是有bug的。会提示添加错误。
我们修正他
打开
/usr/lib/bonobo/servers/GNOME_VoiceControlApplet_Factory.server
把location改成如下内容
<oaf_info>

<oaf_server iid="OAFIID:GNOME_VoiceControlApplet_Factory"
            type="exe"
            location="/usr/local/libexec/voice_control_applet">

这样这个可执行程序就找到了。  (为什么 gnome 里的 type  也用 exe 呢?)

界面如图
[img]http://www.lupaworld.com/attachments/2008/11/43_200811101715011ssA5.jpg[/img]


目前该程序是把现有的支持的语音指令写死在程序里的。
当前支持的具体操作如下:
  1 - RUN TERMINAL     : open gnome-terminal
  2 - RUN BROWSER      : open epiphany
  3 - RUN MAIL         : open evolution
  4 - RUN TEXT EDITOR  : open gedit
  5 - CLOSE WINDOW
  6 - MAXIMIZE WINDOW
  7 - MINIMIZE WINDOW
  8 - NEXT WINDOW
也就是你大喊一声“run mail"  linux就会自动打开 evolution 程序,我自己试验了下,基本上喊5次,有一次成功。

另外还有针对具体软件的操作,
1 - FILE .. OPEN
  2 - HELP .. ABOUT
  3 - SAVE
  4 - PRINT
  5 - UNDO
  6 - PASTE
  7 - FIND
  8 - REPLACE
  9 - EDIT .. SELECT ALL

为确认他的确听到了我的指令,而只是找不到相应的命令匹配,我们可以修改相关源码(开源的好处阿)
1、修改 voice-control.c 的 on_sink_message函数
他是通过查询message来获取结果。message 是sphinx的处理结果。
我们加一个其他情况
    } else // add by sanool
    {
        do_action(ACTION_NOTHING);
        return;
    }
   

2、到action.c的do_action函数,增加
        case ACTION_NOTHING:
                g_spawn_command_line_async ("espeak -v zh 不", NULL);
            break;

注意:
到action.h里增加一个 ACTION_NOTHING
还有就是我安装了  espeak 程序,这里是直接调用,让电脑发出“不”的中文读音。

目前之所以无法顺利实现交互,主要是因为sphinx的问题。期待改善。
另外我打算增加用户自定义命令功能。
希望各位推荐个好点的开源的语音识别引擎。。。。
附件:
[img]http://www.lupaworld.com/attachments/2008/11/43_200811101715011ssA5.thumb.jpg[/img]
aa  [发布时间:2008-11-10 17:15:01]

magic 2008-12-10 15:42

建议
大家能不能另外再做一个这样的系统?或者是让这个软件支持中文语音?
因为我觉得对于一个现有的软件进行修改最有意义的修改就是让他本地化比如支持中文语音
我只是提出这么一个想法,当然实现可能很困难。。。

cckj 2008-12-10 15:42

大家能不能另外再做一个这样的系统?或者是让这个软件支持中文语音?
因为我觉得对于一个现有的软件进行修改最有意义的修改就是让他本地化比如支持中文语音
我只是提出这么一个想法,当然实现可能很困难。。。 ...
目前的识别步骤如下

获取声音  -> 转换到具体英语单词 -> 单词匹配到具体操作指令

所以就存在语言支持问题了

能不能这样

记录用户的一段发音  以声音数据格式保存
获取声音的时候 直接用数据进行匹配  (这里的算法很复杂)
然后再定位到具体的操作指令
这样就不存在支持中文或者支持英文的说法了,或者说这样做的话,对软件来说他所接受的只是声音,和哪个国家的语言无关。

cckj 2008-12-10 15:42

大家能不能另外再做一个这样的系统?或者是让这个软件支持中文语音?




















免费电影
页: [1]
查看完整版本: ubuntu语音交互控制初体验(gnome voice control)
Baidu