2011年12月15日 星期四

一套會講中文的程式語言

一套會講中文的程式語言


曾慶潭 Ching-Tang Tseng
ilikeforth@gmail.com
Hamilton, New Zealand
16 December 2011


(獻給全體中國視障同胞)

我就拿文章的標題上網搜尋資料,確定截至目前為止,沒有人設計出這樣的程式語言系統。 Forth 是天生能夠使用中文文字的程式語言,沒什麼好強調的。

兩年前,我令 Forth 系統『會講英文』之後,雖然可令 Forth 系統的性能,大為領先其他程式語言,也沒什麼好強調的,因為,那是講英文之世界裡的問題,與中國人無關。

今天,我令 Forth 系統『會講中文』,則不同凡響。此前,電腦軟、硬體的性能,未發展到足夠配合的程度之前,也難以設計。現在,能否設計出這樣的系統?只是存乎一心而已,我只寫了不到半頁的程式,就以 Win32Forth V6.14 系統實現了這樣的設計。總共只設計了兩個指令,『發音』與『朗誦』,就足夠用來讓這個程式語言『講中文』。

八個精簡範例應用程式,列示如下:

: test1
龍 發音 飛 發音 鳳 發音 舞 發音 ;
: test2
s" 龍飛鳳舞,龍吟虎嘯。" 朗誦 ;
: test3
s" 勸君莫惜金縷衣,勸君惜取卲年時。" 朗誦
s" 花開堪折直須折,莫待無花空折枝。" 朗誦 ;
: test4
s" 這是宜套會講中文的程式語言。" 朗誦
s" 所有相關設計,敬獻給全體中國視障同胞,非份者,請勿取用。" 朗誦 ;
: test5
s" 爽兄,我已實現了能夠完全自動語音輸出中文的程式設計,從現在起。" 朗誦
s" 隨便打中文,系統就能自動輸出了,不再需要人工作業。" 朗誦
s" 辛苦的發展有了基本成果,也沒有辜負戚老的苦心。" 朗誦
s" 我將繼續發展把愛心獻給視障同胞的工作,我要讓視障同胞能用它來聽世界名住。" 朗誦
s" 用它來寫作。目前的成果僅送給您與戚老,是為了報答您的協助與戚老的貢獻。" 朗誦
s" 但拒絕把這個系統公開,或送給不是視障的人,我說過我要防止別人藉機斂財。" 朗誦
s" 系統的品質雖然不是最好,但面對一般中文而言,使用起來已無問題。" 朗誦
s" 以後有更好的發音辦法後,我就也能實現品質更好的設計。" 朗誦 ;
: test6
s" 花間亦壺酒,獨酌無相親,舉杯邀明月,對影成三人。" 朗誦
s" 月既不解飲,影徒隨我身,暫伴月將影,形樂需及春。" 朗誦
s" 我歌月徘徊,我舞影零亂,醒時同交歡,最後各分散。" 朗誦
s" 永結無情遊,相期邈雲漢。" 朗誦 ;
: test7
s" 生命的意義在創造宇宙繼起的生命" 朗誦
s" 生活的目地在增進人類全體的生活" 朗誦 ;
: test8
s" 實行三民主義統一中國" 朗誦 ;

執行從 test1 到 test8 的這幾個指令,就都能讓這個系統立即、自動、唸出程式內所安排的指定中文。

搞非 Forth 程式語言的程式設計者,您見到這樣的表白方式,請不要嫉妒到想從上述的雞蛋裡挑骨頭,有幾個字不是您才能發現的錯誤,是故意的安排,是為視障同胞刻意的安排,不是為您而安排。而且,短期內我就能自行解決中文『破音字』的發音問題,不用您煩心,假設文中夾雜英文、見不到的格式碼、見得到的圖形資料,都不用您煩心,我有本領解決。該您煩心的事情,是您若還設計不出這樣的系統,應該趕緊跟進,羨慕有理,嫉妒無用。

有朋友介紹我去參觀能唸中文文字的個人網頁,我看過了,嗤之以鼻。因其語音輸出能力,也還停留在逐字輸出的水準上,它不是程式語言,只是一個簡陋的視窗應用軟體,您想用,就只能用它以單字方式唸出中文,不能做其他任何事情,您自己能唸出的中文,都比這種產品高明太多了,何須用它?還有,買到的這種東西,根本不給音源,您要另行發展中文語音輸出於其他應用時,依然是得自行設法,買的結果,就是白花了錢。

這篇網文就來仔細談一談『會講中文之程式語言』的發展。

一般而言,中華民國的國民,基礎中文教育,主要被安排在高中國文課程的教育之中,唸完高中,大學是專業分科教育,國文教育便不再是要求重點。但良好的高中國文基礎,足夠讓您自行繼續充實這方面的知識,可以讓您自己終身全面使用中文。我接受過中華民國政府提供過的完整基礎教育,能使用中文。

我從武陵中學高中畢業,從這個學校畢業的學生,程度如何?要由社會評鑑,我說了不算。但是,我知道那裡有很好的國文老師,當年,曾有老師教了幾年國文,竟然被聘為中國文化大學的講師,只好離職去教大學了。

我38歲就被國軍淘汰,只好從公職退休了,打算另謀高就時,曾經試著應徵台灣玻璃關係企業的子公司:固相公司的廠長職務,該公司老板澈底調查我是否真的從『武陵高中』畢業?經查屬實後,積極爭取我協助該公司完成從汐止搬遷到南崗工業區的工作。他與他的特別助理,對我的大學學歷及核子工程專長沒有興趣,卻問我高中時代的校長是誰?我立刻回答說是馮堯春先生與宋金印先生,兩人同時眼睛一亮,當時,我對這種反應,確實是不明就裡,現在則引以為榮。我離開公職後,曾為幾家私營企業公司服務過,自覺,為任何一種企業幹總經理,我都能幹,包括我自己開的公司,也能幹,我只幹過總經理,沒幹過不是總經理的工作。

我終身記得我的國文老師吳祥熊老師,教我如何讀古文,一輩子都記得『上文不懂看下文』、『音同則意通』的讀書技巧。他要求我們寫文章時,不要以濫用古文來自鳴得意,文章要寫得人人都能看懂、讀了通順才是好文。可用的中文好字這麼多,專寫怪字,並不代表高尚,寫正確了才重要。

他曾介紹我們英翻中講求信、達、雅技巧的重點,也稱讚過商務印書館出版的一本世界名著:『飄』(Gone with the wind)小說中,譯者將人名全譯成標準三個字的高明譯法,如白瑞德、郝思嘉,衛希禮……等。

他說詩、詞、賦都可以自己看書後學寫,但學來寫酸溜溜的東西就沒有意義,至少代表它沒有傳頌價值。寫文章要避免掺入武俠小說式的江湖氣,那會貶低自己,反不如不要為文。文章中講求道德,能夠代表為了自己,講求愛心,就能代表為了別人。

國文老師他不只講解國學常識、教我們讀書技巧,還教書中、文中的精神,經常要求我們多多理解紙底下的東西,以及作人處事的道理,我終身受益,感激不盡。

現在的國文老師,教不教這些教國文時應該附帶卻非常重要的東西?或者是只教如何去中國化?積極培養社會小忿青。碰到這種老師,您就可以終身嗤之以鼻,也代表了您真的非常不幸,國家跟著不幸。

上述這些國文教育資歷的簡介,能夠讓我進行中文語音輸出發展時,不會走得太離譜。我所發展完成的系統內容,澈底採用中華民國固有的正體中文資源,完全刻意排斥大陸的拼音或文字顯示格式。

我當然能協助大陸完成同樣的設計,但那絕不是我該做的事情,尤其是我根本不恥於使用英文字母來拼中國文字的音,我是道道地地的中國人,是一個比大陸同胞還要中國的中國人。

今年九月十七日,我們在中原大學開 Forth 月會,在蔡育秀博士的號召下,來了不少人與會。我結束演講後,已從海洋大學退休許久的戚桐欣老前輩,親自走上前來,要求買一本我寫的『ABC Forth 數學計算系統使用說明』以示支持我的發展。

此前,我沒跟戚老講過話,只知他與朱邦復、丁陳漢蓀老師都熟,我立刻回答戚老:『您都八十幾歲了,別買我的書了,您要,我就送您一本,看不看都沒關係,留著晚輩的拙著當紀念。我賣的書都不能賺到錢,但不買的人,就難以使用我所設計的系統,或者是難以與我交流技術。』

戚老邀請我去基隆他家,準備將他長期搞出來的中文發展資料,全盤轉贈給我。不幸,半個月的重感冒,耗去了我能留台辦事的時間,離台前,因為多次的應酬,飲食失控,痛風發作,若再去找戚老,肯定必須再度大吃一場,那就完了。因此,我爽了約,只能電話答謝後離台返紐。

我知道戚老多年來的中文研究心血結晶,傳贈給過不少人,但不太有人理會,或繼續進行延伸性的發展。戚老過去也未見過我有什麼本事?能幹甚麼事情?這次聽我講過一場怪裡怪氣的演講,特來關心一下。

我在『獨特的語言經驗』文末說過,我想把 MIDI 硬體拿來當講人話的裝備使用,仁愛一下,為視障同胞發展一些東西。我試用了戚老的資源,感覺可以派得上用場,但要耗些時間與勞力修改後才能發揮作用。因此,發動了一次『Forth 活動』,試做『語音輸出百家姓與千字文』,希望能集眾人之力完成此事。

活動初期,對參與活動者是否真誠的參與?缺乏感覺,於是出了習題強迫參與者答覆,以便了解狀況,結果發現了嚴重問題。如果活動了一個多月,參與者只想白拿傳給他的技術資料,連拼幾個百家姓來找出對應音檔的簡單分擔工作都不肯貢獻,或者敷衍了事,甚至於連安裝起 Win32Forth V6.14 系統的最基本要求都不肯做,而成天去網頁上『打屁』抱怨,任何人都能明白這是一種什麼狀況?絕對代表了白搞了這樣的活動,那就應該毅然決然的中止活動,我這裡絕不提供白吃的午餐。

以後,我也搞清楚了,別再舉辦這種活動,後續發展只宜自己搞。大多數的參與活動者,都很合作的完成了百家姓的程式編寫工作,但對他們的日常生活,產生了不少影響。因此,千字文的程式設計,改由我個人獨自完成。

發展了兩個半月,遭遇過不知多少次的失敗,挖空了心思,想盡辦法解決問題,連我太太都加入了提供意見的行列,我們每天散步時,都討論為視障同胞設計中文語音輸出程式語言的問題。

大師兄陳爽成為這次活動的最後支撐者,有許多大型的苦工,都是由他親手完成的,與他連絡卻無法及時得到答覆時,我開始動家人的腦筋,請小女兒小真幫忙,用她寫論文時慣用的軟體工具,幫忙我編製那種一萬多筆資料的大型檔案。女婿得知了,乾脆來為我安裝適合解決這類問題的現代軟體,為了達到目的,幾乎是全家總動員,所有材料彙整交到我手裡時,難免還有一些問題,我就得進行零星測試後修改。我不是一個肯輕易低頭的人,晚上可以少睡一點,就是要把工作完成,正常的飲食與健康的生活,就交由我太太強制干涉來維持。

昨晚趕出了結果,讓程式只剩半頁,雛型立刻傳請陳爽幫忙驗證,代表以後靠網路傳輸後依然能用,在紐西蘭,我無法隨時說走就走,趕回台灣,只能靠網路傳送。後續當然還有許多發展工作得做,系統功能不是僅只這樣而已。

能講中文的程式語言有甚麼用?對大多數人而言,根本沒用。那麼,發展這種系統的過程中,就會令發展者經常感到相當痛苦。我是為視障同胞而發展,抱持著這種心態,才能安慰自己,忍受痛苦繼續發展。

發展數學計算系統時,我為自己找到發展的目標與理由,才能發展成功。同樣的,發展中文語音輸出程式語言時,我也需要健全且有意義的理由來驅動發展,那就是為視障同胞服務,我說過我想設計出『啟明 Forth』,提供給視障同胞使用,這就是理由。

學習語言的過程是聽、說、讀、寫,視障者不能讀,怎麼辦?我代勞。

我唸高中的時候,見到聯合報上刊登廣告,徵求義工,為視障小幼苗錄製朗誦世界名著的錄音帶,心中就深受感動,但那時,我連買張車票去當義工的錢都沒有,能幹什麼?因此,一輩子記得這件事情,希望有一天能夠為他們澈底解決讀、寫的問題。

我們的社會,大多數人都不理會視障同胞的事情,讓他們大都躲在暗處,靠色情按摩維生。我也不斷的聽說,管視障同胞事務的某些人,藉機向政府、社會要錢,是既得利益者,不容外人涉入其事、以免被斷了財源。其他的惡劣行徑,就別在這裡繼續寫下去了。

我只是個小人物,管不了這麼多骯髒的社會現象,但懂得一點 Forth ,自知能設計得出視障同胞可以終身使用的工具來。昨晚,我完成的設計,就能用來發展自動朗誦世界名著的程式。

現在市面上已經有人販賣軟體,讓正常人操作電腦,黏貼一段中文短文,讓電腦讀出來,但除了讀出來,不能做其他任何事情。

我設計的是程式語言,它能叫出一本世界名著,自動朗誦出來,還能操控電腦,同時進行其他事情,包括設計程式,以便解決視障同胞才有需求的操控設計,這是一套中、英文都會講的程式語言。

視障同胞的電腦寫作工具,也能根據這樣的程式語言設計出來,自動發出中文語音,可以作為響應操作後的結果,既然是 Forth 程式語言,當然能夠用它設計出編輯軟體,視障同胞就能用來寫作,寫出他們的心聲,當個偉大的作家,像海倫凱樂(Helen Keller)那樣,不必只靠按摩維生。

啟明學校裡的視障小幼苗,可以使用這樣的系統來學習與寫作業,解決讀、寫困難的問題。也能用來寫信與我聯繫,告訴我,還需要什麼操作功能?我能聽到小幼苗的心聲,也能傳達我的鼓勵。寂寞時,也能打幾句話來嘉勉自己。

我發展系統所採用的方法,是車庫軟體式的發展技術,所以品質還不太好,是戚老提供的免費資源,陳爽提供的編輯資料,沒有任何人提供經費。若公開設計內容,肯定會斷掉許多人的既得利益,或者是被拿去藉機斂財。這是一套會得罪人的設計,但不必強調要讓視障同胞知道此事,反而應該要讓既得利益者明確的知道此事。網文留在這裡,全世界每天都有人來觀賞,其意義是告訴大家,不要再利用視障同胞掘利,要重視能讓他們正常生活的基本人權問題。

只要取得更好的音源,我就有本事進行同樣的設計,這篇網文公佈這個第一套系統的基本功能,形同正式的宣告:一套『會講中文的程式語言』已經誕生。

文末,我講一個最近才親眼目睹,令人難過的故事。

紐西蘭是一個注重社會福利的國家,所有視障國民,可以獲得政府無條件的妥善照顧,包括終身可以獲得完成訓練的拉不拉多導盲犬,協助他們外出活動。大眾也都同情視障同胞,主動對他們表示友善,並給予應有的禮讓。所以,我們居住的區域,經常能夠見到一位瘦弱的視障女士,牽著導盲犬上街來購物,我們散步時,偶爾會碰面,也互相打招呼,我們會主動先行繞到不牽狗的這一邊行走。

有一天,我們散步時,又與這位視障女士碰面了,她笑臉回應我們的問候。突然,我們的身後發出了另外一隻狗的狂吠,是另外一位溜狗人士,帶著一隻大狗溜過此地,我毫不猶豫的以身體擋在兩隻狗間,避免發生事情,卻不敢向後挑釁那隻想要攻擊導盲犬的沒教養狗,緊張的觀察視障女士的表情,她面露恐怖之色,只能以兩手抓緊了狗的頸項鍊,強壓著導盲犬坐下。我太太則示意溜狗人走別處的路,趕快離開這裡。我也第一次看到紐西蘭人,因為憤怒而踢他自己養的那隻沒教養的狗,事後,大家都捏了一把冷汗。

若想檢討避免讓這種事件再度發生,那就是溜狗人士根本不該溜狗到此,或者是遠遠見到導盲犬時,溜狗者就該主動改道。那天,我沒被狗咬到,算我幸運。

回顧台灣,許多人都養狗,並且整天縱放於外,導盲犬能用嗎?

很多人發展與設計語音處理軟體,都想賺錢,視障同胞能用嗎?


附註 : 20241026 重新整理後貼出。

4 則留言:

Unknown 提到...

您好
我是吳祥熊老師的女兒
謝謝您對父親的稱讚
我有將您的文章轉述給他聽
他非常高興
謝謝您記得他

Chings World 提到...

Ruby:

令我非常驚奇,我已遠在天邊將近20年了,還能得到恩師的訊息。

吳老師傳授給我們的知識與技能,不僅只是能用中文而已,也不僅只是作人處世的原則而已,還包括了希望我們繼續向全人類散佈愛心與道德,學生如果想感恩而圖報,就應身體力行,我照做。

恩師有恩於我,我們卻無以回報,很高興恩師的女兒能來訪。日後,如有任何我能效勞之處,請不吝指教,我必以回報恩師的精神回報恩師的家人。

吳老師的學生
曾慶潭於紐西蘭

Unknown 提到...

學長您好

您能記得父親
就是最大的回報
這件事讓父親高興了一整天
笑的合不攏嘴

再次謝謝您
萬分感謝

吳煥如

Chings World 提到...

Ruby:

不知老師是否還住台灣?

請以ilikeforth@gmail.com信箱與我私下聯絡。

年底我可能回台一趟,要是情況許可,我必得拜寫恩師。

很高興知道您也是我的學妹,我猜是武陵。這不是一所可以憑關係進去就讀的學校,而且曾經培養出無數的清寒學生,後來都成了社會中堅。

吳老師的學生
曾慶潭於紐西蘭