#E6E6E6 【VB】朗讀軟體 ExtraSpeaker 第二版完成之隨寫 作者:吳文成

  這個禮拜,ExtraSpeaker 從 1.8 改版到 2.4 版,這中間我也寫了一套適用於IE瀏覽器的朗讀工具:ieSpeaker。有網友寫信來問我,安裝目錄下的兩個執行檔 ExtraSpeaker.exe 與 SapiTTS.exe 有什麼不同 ?其實兩者最後執行的結果是一樣的, 不同的地方在於, 執行 ExtraSpeaker.exe 這個程式

[[img src=computer/ExtraSpeaker4.gif height=400 width=483 align=middle]]

會先偵測你的作業系統,是否安裝有 Microsoft Text-to-Speech Package 語音套件( 通常 Windows-XP 預設內建這組套件 , ExtraSpeaker 需要用到其中 TTS 語音合成技術)。如果沒有安裝該語音套件的話,ExtraSpeaker.exe 會先導引你去微軟網站 ,下載與安裝相關的程式 ; 如果你已經有安裝了, ExtraSpeaker.exe 會接著去執行 SapiTTS.exe。 所以實際上,ExtraSpeaker 的主體是 SapiTTS.exe ,而 ExtraSpeaker.exe 本身只是一個啟動程式。

  ExtraSpeaker 並不像 ExtraPlayer 那樣是涵蓋面繁複的軟體 , 這反而使它更像是藝術家手上講求刻功精細的作品,如果 ExtraPlayer 是圍著大裙擺的村姑,那麼 ExtraSpeaker 就像是長髮飄逸的細腰女孩 ,讓我忍不住多看幾眼 。我們期待一個不到 100 KB 的朗讀軟體有哪些功能呢?它可以常駐於系統而即時朗讀,可以指定文章朗讀,也可以多文本的文字編輯,它還可以讓你改變軟體的外觀:最上層顯示、啟動時最小化、文本框的顯示設定,以及窗體透明比例的設定等等——在這小小的軟體裡,我已經發揮了很多創意,它是否讓我比設計 ExtraPlayer 更有成就感,我想,是的。雖然
,ExtraPlayer 是 toget 多媒體軟體下載排行榜的前五名,而 ExtraSpeaker 還是默默無名的小配角,可是對我而言,後者比前者更具有美學風格。在編程隨談裡,我常常談到美學,美學裡有個重要的成分,那就是創作者的「
真誠對待」,從作品裡看出作者的投注與傾心,於是,作品帶有作者本身的個性與想像。並不是因為很多人使用,所以它美,也不是因為外表華麗
,所以它美。它美,是因為它被作者賦予了更多的「真誠對待」。

[[img src=computer/ExtraSpeaker3.gif height=159 width=202 align=left]]   ExtraSpeaker 最新版有幾個設計主軸 。
首先,它可以作為常駐性的程式,所以提供了「設為開機啟動」、「啟動時最小化」、「最上層顯示」以及工具列圖示( TrayIcon
的呈現。再者,搭配著上述的常駐性,它可以實現背景性的螢幕朗讀功能,在你使用其他應用程式的時候,按下自訂的快捷鍵,ExtraSpeaker 便會背景地 , 即時朗讀你所選取的文字,完全不影響你正使用的其他應用程式(請參看〈實現螢幕朗讀的新版 ExtraSpeaker〉一文)。另外,ExtraSpeaker 可以作為多文本的文字編輯器,「進階管理」可以方便地新增、命名、刪除、定位與排序文本,本軟體也支援 NotePad 那樣的編輯指令,像昨天,我主要是在處理「尋找
」與「取代」兩項功能。最後一個設計主軸是,關於控件外觀的重設方面
(請參看〈談子類化(SubClassing)方法與重設控件外觀〉一文),這應該是比較有趣的部分,因為我發展出了四種重設控件外觀的方法。

  這是第一次在發行的軟體裡使用 ExtraButton,在平面按鈕方面,我原本都是使用自己設計的 FlatButton , 後來發展出 ExtraButton, 這次終於用上。FlatButton 是利用 DrawEdge API 來繪製物件邊框(請參看〈FlatButton 演示平面按鈕與影像處理〉一文),而 ExtraButton 是運用幾個 PictureBox 控件來遮蓋或喬改按鈕的邊框(請參看〈ExtraButton 實現改進版的平面按鈕〉一文)。 但是,關於重設控件外觀的方面,ExtraSpeaker 的「 文本外框類型」功能卻是採取另一種方法,該功能可以將文字盒的邊框直接改成骨架外框、立體外框、平面外框,或是沒有外框, 這也適用於 ListBox 控件 。 它是利用 SetWindowLong API 來改變控件的 Style 或是 Extended style
,顯然這是非常簡單與有用的方法。但是,以上三種方法都有適用對象的限制,只有第四種方法是超越所有對象的限制,它是運用「子類化」程序來根本地,任意繪製你要的控件邊框樣式,不過,它也是最麻煩的一種方法,無誠勿試!ExtraSpeaker 使用了上述的第二種與第三種方法。

  可以繼續談的東西還有很多,有的是理念性的話題,有的是技術性的話題。寫編程的文章,總是比我寫人文隨談、科學隨談來得輕鬆很多,編程文章立刻就可以寫上幾千字,但是人文隨談、科學隨談的文章,卻是跟寫學術論文一樣,需要再三考據與沉思 。 終結掉 ExtraSpeaker 2.4 版 ,看來不是馬上就可以休息,被編程所延誤的其他研究,還等著我去處理。

可執行檔下載

瀏覽發行頁面
2005/09/09