雪風最近又有了一個新的靈感,他已經開始動手寫新系統的程式碼了,吭哧吭哧寫了兩天,感覺手指頭都快敲爛了,程式才完成了一點點,這時候他才感覺到了人多的優勢。
這讓他有了一個新的想法,他想讓小沙彌幫自己寫程式,雪風仔細分析了分析,認為這並不是不可能。小沙彌是自己設計出來的智慧語音系統,它能識別出人的語言,和人進行對話,它能根據人的語氣準確判斷出人說話時的感情色彩,然後做出最恰當的回答,它還能根據人的語言指令去執行正確的任務。
這一切都是基於小沙彌海量的詞彙庫,以及自己賦予小沙彌的一個獨特的邏輯判斷程式,這個邏輯判斷程式不同於現行的任何一種計算機判斷程式。
雪風剛開始設計小沙彌的時候,參閱過無數份關於這方面的最權威文獻,結果沒有找到一種讓自己滿意的思路。記得有一次,西京市舉辦了一個全球智慧機器人科技展覽,參展的機器人中有一個據說是世界上最先進的語言機器人,可以和人類進行無障礙交談。雪風當時就去參觀了,結果卻很令他失望。
雪風旁邊有個小孩問了機器人一句話,「你有女朋友嗎?」
機器人冷冰冰地回答到:「生活在同一個地球,我們都應該是朋友。」
答非所問也就罷了,那聲音冷的就像是人的舌頭被凍住了一般,沒有絲毫的感情色彩。這也堅定了雪風自己設計一種全新的智慧語音系統的決心。
雪風根據人們的對話習慣,將整個語音系統分為三部分,「接受語音-判斷語義-回覆」,這三個部分裡面,最難的就是判斷判斷語義,最粗糙的智慧語音系統大多采用的方法就是抓語句中的一個關鍵詞,然後針對這個關鍵詞進行分析和搜尋,然後做出回答,這也那個機器人答非所問的原因。
要準確判斷出一句話的意思,就要考慮到語言環境,一句話在不同環境裡的意思是不一樣,這個語言環境大多又決定於說話人當時的情緒。也有一些語音系統是根據語言環境來判斷語義的,開發者將語言環境分為了好多種:高興、悲傷、忿恨…,但是人的感情是一個複雜多變的東西,無可捉摸,你不可能把每種語言環境都考慮到。
雪風沒有按照這種方法進行設計,他認為人有情緒,但是計算機沒有情緒,所以他跟據計算機的思維來劃分,將語言環境分為a、b、c、d、e、f………等等型別,這些型別是沒有固定數量的,計算機在總結出新的語言環境時,會自動建立一個新的型別。在判斷一句話的感情色彩時,這些型別並不會相互獨立,並不是說認定它是a型,就不可能再是其他型別,萬一是悲中有喜呢,所以計算機會把這些型別進行組合後來判斷;同樣,一句話可能今天是儲存a型的詞庫裡,明天它就可能跑到b型的詞庫裡,甚至是出現在好幾種型別的詞庫裡。
正是由於這樣,小沙彌才能分辨出人們的哪些話是在開玩笑。不過,也正是因為如此,雪風剛做出小沙彌時,對小沙彌說了一句話,「兄弟,你吃飯了沒?」,小沙彌整整判斷了兩天,才蹦出一句:「沒吃。」
雖然小沙彌的回答是沒有錯的,但是雪風設計的判斷過程太過於複雜了,他後來又對判斷程式做出了修改,採用了鬆散式的判斷模式,以往的判斷都是採用排除法,這個不是,就試下一個,直到試出一個正確的,因為計算機的運算速度是非常快的,它一秒鐘就可以計算上億次,所以我們是不會感覺出它的慢來。但是一旦要排除的物件過多,計算機就完了,它會一直計算一直排除下去,直到它找出正確的答案,或者是它排除完所有的侯選物件,小沙彌就是這樣傻傻地排除了兩天。
人們有很多日常用語和常識性的對話,很多時候人們之間的對話都是有固定模式的,雪風根據這個,給小沙彌設計了自我記憶的判斷模式,一些常用的對話它會記錄下來,在遇到此類問題是,它會直接優先考慮上一次的判斷,而不是再次進行重複判斷;小沙彌每正確判斷出一句話的語義後,它會做一個記錄,它會根據自己的這次成功經驗對判斷過程進行簡化,去除掉一些不必要的判斷過程。
小沙彌判斷的次數越多,它的判斷速度就會越快,經過一段時間的訓練後,小沙彌的判斷速度就有了質的提高,最後都能夠和電視劇裡的人物對臺詞了,這就好比是一個小孩剛開始學說話,說的多了,也就熟練了。
雪風一點也不擔心小沙彌犯經驗主義錯誤,他認為人的語言系統是世界上最完美的語言系統,計算機語音系統的最高目標就是達到人的水平,人說話的時候都是*自己的感覺,也會有犯錯誤的時候,何況是計算機呢。犯點錯誤不要緊,只要能夠改正就可以,雪風給小沙彌還設計了一套自我完善的程式,幫助小沙彌經常自我檢查、自我整理現有的詞彙庫,及時修正錯誤。
再後來,雪風就給小沙彌設計了指令系統,它不再是簡單地陪雪風聊天了,它可以分辯出哪些是對話,那些是指令,然後根據指令去執行相對應的任務。
雪風這時候就把小沙彌併入了自己的外掛系統中,除了和遊戲中的人對話外,小沙彌還有一項很重要的任務,就是拉生意,它會自己去招攬生意、侃價,生意談成後,它會在客戶把錢匯過來後把對方的帳號掛到代練機器上。代練期滿後,它會主動和對方聯絡,詢問是否續時。
如果非要問雪風自己最滿意的作品是什麼,雪風肯定會說是小沙彌,三年來,他從來沒有停止過對小沙彌的完善,不斷地修改才造就了小沙彌的更加完美,反正雪風是沒有見過比小沙彌還要完美的智慧語音管理系統了。
不過,能夠把一個軟體壓榨到如此地步的人,他倒是見過了,那就是他自己,小沙彌可以說是雪風的大管家,因為它比雪風還要清楚雪風一個月能賺多少錢;也可以說小沙彌是雪風僱來的童工,它每天要工作24小時來幫雪風賺錢,可雪風卻從不給它發薪水。如果小沙彌是人,它肯定會告雪風「虐待童工」。
現在,雪風又要壓榨小沙彌的剩餘油水了,寫程式本來是程式設計師的天職,現在他也要把自己的天職讓小沙彌來代勞了,如果吃飯也能讓計算機代勞,不知道雪風會不會寫一個吃飯系統出來。
讓計算機來寫程式,遠遠比讓它來說話要簡單得多,很多現行的程式設計軟體都有一個叫做程式設計嚮導的功能,根據提示,使用者只要一步步輸入自己的要求,就可以完成一個簡單軟體的設計,使用者甚至可以是一個完全不懂程式設計的人,所有的程式碼都會由嚮導根據使用者的要求來生成,使用者不必鍵入任何一句程式碼,就可以拿到自己定製的軟體。
雪風這些年來也是每天不停地在寫程式,雖然沒出什麼成品,但是他寫了很多模組,一個成品軟體都是由很多具有不同功能的模組組成的。雪風這次設計的星河新系統,其中90%的功能他以前都是寫過的,只不過都是以一個個模組的形式儲存的而已。