用声音与Ubuntu交流

偶然在Ubuntu中发现了espeak这个命令,其实也不算偶然,而是故意去找的。因为在看《生活大爆炸》时,有一集就是Sheldon被骗而不能开口讲话,他只能使用他的笔记本来代替他说话,还有一集Sheldon说他最喜欢的是Ubuntu系统,所以我想Ubuntu里应该会有这样一个帮助哑巴说话的工具的,于是就发现了espeak,它是Ubuntu默认安装的软件,一个能说N种语言,自定义语速,自定义发音音量,自定义停顿时长,自定义的选项太多,就不一一列举了。

举个例子:

espeak -v zh -s 120

-v zh表示使用中文,默认为英语,当然还支持其他各种语言,包括zh-yue,即粤语,就英语还分好多种呢。你可以在/usr/share/espeak-data/voices里找到所有这些语言各类。-s 120表示语速为每分钟120个词,默认为160,感觉太快了点。回车后,输入一段中文,你的电脑就会帮你读出来。

你可以写一段脚本,定时执行,在开机时,让你的电脑说出“欢迎使用,我的主人”,在关机前让电脑说出“主人,我将关机,请保存好文件”。很有趣吧,呵呵!

不过,它对中文的支持还是有些问题的,就是有些字它并不准确的发音,如“刘”这个很常见的字,它就读不准,你需要使用“流”来代替。很奇怪吧,同样的发音,一个读得准,而另一个则读不准。

上面说的是让电脑说话给你听,下面要说的是让你说的话,让你的电脑听懂,这就是与语音识别相关了,由于Ubuntu由apt进行包管理,尽管Ubuntu默认没有语音识别工具,但是安装起来也就是一个命令罢了。

sudo apt-get install gnome-voice-control

该工具依赖于sphinxbase库,apt会自动帮你安装上去,你直接使用就可以了,gnome-voice-control是一个applet,在你的任务栏,也就是Ubuntu的最上头那一横栏上右键,选择“Add to Panel...”,然后选择gnome-voice-control这个工具就可以了。当该工具出现在任务栏上后,在它上面右键选择start control就可以开始语音控制了。

不要奢望你说什么,它都能够听得懂,语音识别是相当有难度的东西,近年来也没有大的进展,gnome-voice-control只能做到的就是识别一些特定的单词,确切的说是一些指定的命令,从而对你的桌面做相应的操作。而且也并不能做到每次都准确识别,不过这不是最令人头疼的,像我英语还算发音标准,基本大多命令都能一次识别出来,但是有些命令也要喊上两遍才行。最令人头疼的是,你随便说一段不相关的话,它也能识别出一些命令来,这就不爽了,如果你老是把它开着,突然一个朋友过来与你聊了几句话,结果你可能发现你的电脑打开了N个窗口,或者其他什么的。

通过apt安装是0.1版本,只支持以下几个命令:

  RUN TERMINAL     : open default terminal
  RUN BROWSER      : open default web browser
  RUN MAIL         : open Evolution
  RUN TEXT EDITOR  : open GEdit
  CLOSE WINDOW
  MAXIMIZE WINDOW
  MINIMIZE WINDOW
  NEXT WINDOW

所以,你对着你的电脑喊”run terminal“,它就会帮你打开一个终端来,很酷!

我是自己从gnome官网上下载了最新0.4版本的源码,自己编译安装的,0.4版本支持的命令更多,除了对以上命令的支持,它还有其他命令的支持。

对键盘:

  MOUSE RIGHT
  MOUSE LEFT
  MOUSE UP
  MOUSE DOWN
  CLICK, RIGHT CLICK
  PAGE UP
  PAGE DOWN
  LEFT
  RIGHT

对gedit:

  FILE .. OPEN
  HELP .. ABOUT
  SAVE
  PRINT
  UNDO
  PASTE
  FIND
  REPLACE
  EDIT .. SELECT ALL

不过,不建议你自已编译安装,因为太麻烦了,而且依赖的第三方库相当多,相当大,很容易导致你的系统塞入大量垃圾,而且0.4版本的尽管命令支持的多了,但是识别误判也相当严重。

这里还有一些东西要说说,就是gnome-voice-control是基于语音模型sphinx2的,到目前为些已经有sphinx3和sphinx4了,而之所以选择sphinx2是因为它的处理速度快,所以如果你要求识别的准确性,而不要求实时性的话,你需要去尝试一些以sphinx3甚至是sphix4为基础的软件。当然模型很多,也不仅仅限于sphinx类型,而且不同地区的语言,所适合的分析模型也不一样。

还有,gnome-voice-control的机器学习所使用的声音是来自于网上的自由爱好者,所以gnome-voice-control并不是为你而精心设计的,它是为更兼容,更通用而设计的,如果你的声音很特别,或者你的发音有地方口音,gnome-voice-control并不能很好的利用你的发音特点,而正确地工作。如果你想自己来训练gnome-voice-control,那么你得研究一下sphinx train了。

能用自己的声音与Ubuntu交流,不是那么通畅,但也相当有趣,但愿语音识别能在未来几年有很大的突破。

发表于 2010年08月30日 02:53   评论:0   阅读:2155  



回到顶部

首页 | 关于我 | 关于本站 | 站内留言 | rss
python logo   django logo   tornado logo