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