熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

讓Linux“開口”講英語

2013-11-13 15:54:46  來源: Oracle 

  作者康芊  
  
  計算機的輸入輸出界面不僅包括傳統意義上的鍵盤鼠標手寫識別顯示器等等還應能聽懂語言即語音識別然後能發即語音合成這方面的研究及應用正迅速開展起來世界上進行語音識別和合成研究的公司很多IBM微軟AT&&TL&&H朗訊Lesstif等等如今這些研究成果已經走出實驗室在社會生產服務的各個方面推出了產品語音電子郵件語音輸入方法電話銀行客戶服務中心智能機器人等等我喜歡使用Linux就應用IBM的語音解決方案定制出一個可以讓Linux講英語的方案
  
  由於我用的是RedHat Linux而且又經常使用英漢詞典工具Xdict所以首當其沖的就是對它進行改進首先先得到Xdict的源程序文件可在其它Linux系統(如Turbo Linux )的源程序光盤或網絡上下載我得到的版本是xdictsrcrpm然後在File Manager 或 gmc中將上述源文件包打開解壓出xdicttgz
  
  ()拷貝到根目錄進行解壓
  
  # tar xzvf xdicttgz
  
  ()進入xdict目錄
  
  # cd xdict
  
  ()用gEdit打開xdict目錄中的Makefile文件把INCPATH = I$(QTDIR)/include/qt 改為INCPATH = I$(QTDIR)/usr/include/qt(或根據實際上QT所在目錄進行修改)
  
  () 進行編譯聯接
  
  # make
  
  這樣就產生了可執行文件Xdict但是要執行此文件還要將庫文件xdictlib和索引文件xdictenidx 拷貝目錄/usr/lib/ xdict下
  
  # mkdir p/usr/lib/xdict
  
  找到xdictlib和xdictenidx 拷貝目錄/usr/lib/xdict下
  
  #cp xdictlib xdictenidx /usr/lib/xdict
  
  ()啟動XWindow並運行xdict
  
  # startx
  
  #/xdict
  
  在此簡單介紹一下QTQT是Linux下很受歡迎的面向對象編程C++軟件開發包同時也支持Windows和Unix可在wwwtrollno/dl/l下載QT Free EditionRedHat Linux 中的是Qt devel的版本include文件安裝在/usr/include/qt下例子文檔及一系列教程安裝在 /usr/lib/qt下的不同目錄我們可以訪問本地文檔file:/usr/lib/qt/html/l其中包括圖形GUI控件OpenGL D圖形支持面向對象編程的類層次用於IE和Netscape的Qtbased插件和用於熟悉編程語言的節教程
  
  下面我們來簡單分析一下Xdict的源程序類Xdict由QT的子類QDialog派生而來對話框類QDialog的詳細信息可在file:/usr/lib/qt/html/l中查到其繼承關系如圖所示
  
  圖 QDialog的繼承關系
  
  Xdict的主界面是對話框類型的包含一個單詞輸入編輯框input由QLineEdit類派生而來詳細信息參見file:/usr/lib/qt/html/l四個按鈕reloadBtnprevBtnnextBtnaboutBtn都從QAutoButton派生詳細信息參見autobth和autobtcpp兩個列表框Wordlist和Showlist用來顯示英語單詞及其漢語解釋它們都從QListBox類派生詳細信息參見file:/usr/lib/qt/html/l
  
  在xdicth源文件中定義了主要的功能函數初始化函數xdict()按任意鍵處理函數keyPressEvent()單詞列表框顯示處理inputWord()關於按鈕處理aboutBtnclick()重裝按鈕處理reloadBtnclick()向前按鈕處理prevBtnclick()向後按鈕處理nextBtnclick()在wordlist中選中某詞處理函數wordHighlight()在wordlist中雙擊選中某詞處理函數wordSelected()單詞輸入結束處理inputReturn()
  
  在xdictcpp中有這些函數的詳細結構下面僅簡要分析初始化函數xdict()如圖所示其它函數可依此類推
  
  要使字典發音只需在輸入單詞回車後在顯示單詞漢字譯文的同時調用發音函數即在xdictcpp中的按下回車鍵處理函數中添加eciSpeakText函數即可
  
  
  圖 簡要分析初始化函數Xdict()
  
  Void xdict : : inputReturn( )
  
  { ecispeakText ( input > text ( )false);
  
  ……
  
  }
  
  需要注意的是重新編譯聯接前要在Makefile文件中加入ibmeci庫 LIBS = L$( QTDIR)/ lib lqt libmeci l 是命令行參數)
  
  然後在make 運行一下你就可以享受標准的單詞語音了!
  
  另外我想知道在Linux系統下如何進行文件的打包即如何制作rpm文件?請高手指教我的電子郵件地址
  
  
  
  
  

From:http://tw.wingwit.com/Article/program/Oracle/201311/17503.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.