歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

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 呢?)

    界面如圖

ubuntu語音交互控制初體驗(gnome voice control)

    目前該程序是把現有的支持的語音指令寫死在程序裡的。
    當前支持的具體操作如下:
      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的問題。期待改善。
    另外我打算增加用戶自定義命令功能。
    希望各位推薦個好點的開源的語音識別引擎

Copyright © Linux教程網 All Rights Reserved