朱飛燕 周挺
摘要:隨著人工智能技術(shù)的發(fā)展,語音識別在智能手機領(lǐng)域的應用日趨廣泛。那么把語音識別技術(shù)應用于基于手機平臺的Java程序編寫,能夠減少手動敲寫代碼帶來的人為錯誤,極大地提高代碼編寫效率。
關(guān)鍵詞:語音編程; 語音識別; java編譯器
引言
在學習《Java編程語言》這門課程時,發(fā)現(xiàn)許多大學生在學習Java編程時候,對于傳統(tǒng)的運用臺式電腦敲擊鍵盤來編寫程序的方式存在著一定的內(nèi)心抵觸,抵觸的原因在于老的方式需要手動敲寫每行代碼,效率低下,而且更容易產(chǎn)生人為敲寫的錯誤,使得程序的編譯和查錯更加困難,另一方面受到臺式電腦的限制,無法實現(xiàn)隨時隨地學習編程。
反觀現(xiàn)在的大學生們更習慣,精通和依賴于智能手機帶來的操作快捷和方便。學生們更喜歡在智能手機上學習和編寫Java程序。目前手機應用市場上面存在著幾款基于智能手機的Java語言編譯器IDE,不過這幾款I(lǐng)DE都還是需要學生通過手機虛擬鍵盤來一行一行的敲寫代碼,由于手機屏幕大小有限,虛擬鍵盤的敲擊還只能通過單指觸摸操作,這種通過虛擬鍵盤敲寫代碼的方式反而增加的代碼編寫的難度,降低了程序的編寫效率。
隨著人工技術(shù)的發(fā)展,語音識別在智能手機領(lǐng)域的應用日趨廣泛。那么把語音識別技術(shù)應用于基于手機平臺的Java程序編寫,能夠減少手動敲寫代碼帶來的人為錯誤,極大地提高代碼編寫效率。同時采用云編譯技術(shù),讓學生隨時隨地實現(xiàn)快捷編程。
1、系統(tǒng)設(shè)計
那么如何提高智能手機上的編程速度是我們需要深入探討和研究的課題?;谌斯ぶ悄艿恼Z音識別技術(shù)目前發(fā)展日趨成熟,把語音識別技術(shù)運用于編程領(lǐng)域已經(jīng)是可行的方案。本項目主要采用Android技術(shù),語音識別技術(shù)實現(xiàn)Java語言的語音編程IDE的功能設(shè)計,有效的提高了編程效率,降低了鍵盤輸入帶來的人為操作失誤,同時我們采用云編譯技術(shù)實現(xiàn)程序的在線編譯和運行。
系統(tǒng)主要設(shè)計模塊有:代碼編輯模塊,代碼編譯模塊,知識學習模塊、視頻模塊等。
2、關(guān)鍵技術(shù)
要設(shè)計和實現(xiàn)一款能夠用于教學的基于語音識別的Java編程工具軟件。主要研究的關(guān)鍵技術(shù)有:訊飛語音開發(fā)平臺中語音聽寫SDK開發(fā)包的研究,計算機語言的特征研究,后臺語音數(shù)據(jù)庫定義和設(shè)計,軟件UI界面的設(shè)計、遠程編譯技術(shù)等。
(1)語音聽寫SDK開發(fā)的研究:主要掌握訊飛語音提供的開發(fā)接口的定義和使用方法。以及如何把訊飛語音開發(fā)包加載到MyEclipse開發(fā)環(huán)境中去。
(2)計算機語言特征研究:掌握計算機語言Java語言的語法特征,分析Java語言的JDK包中所報行的開發(fā)類,進行歸類總結(jié),方便在后期開發(fā)中能夠自動引用加載這些系統(tǒng)類。同時,對Java基礎(chǔ)語法的關(guān)鍵字詞進行歸類。
(3)后臺語音數(shù)據(jù)庫的設(shè)計
在對Java語言的特征和用法進行歸納總結(jié)后,針對人體語音的特征,利用關(guān)系型數(shù)據(jù)庫在后臺創(chuàng)建數(shù)據(jù)庫和設(shè)計復雜語音和Java語法和語義的對應關(guān)系。設(shè)計的標準時能夠根據(jù)語音的識別內(nèi)容快速查詢并構(gòu)建Java語句。
(4)UI界面的設(shè)計
UI界面要求能夠簡潔美觀,操作方便,流程清除,語音編寫出來的代碼正確,簡介,效率高,對產(chǎn)生的異常情況能夠及時處理和完善。
(5)遠程編譯技術(shù)
編譯Java程序需要幾百兆大小的JDK,而手機端不支持安裝JDK,所以要編譯利用語音編寫的Java程序,就需要把程序發(fā)送給服務器,讓服務器去編譯Java代碼并把運行結(jié)果反饋給用戶客戶端。
3、總結(jié)
本課題實現(xiàn)了一款基于語音編程的Java IDE的App,該系統(tǒng)改變傳統(tǒng)的編程模式,利用語音實現(xiàn)更方便快捷的代碼編寫工作,幫助程序員和學生脫離繁重的手工代碼編寫,極大的縮小編程所耗費的時間,讓程序員留出足夠的時間來進行算法設(shè)計,提高工作效率。同時可以極大地提高學生學習編程的興趣,具有一定的應用價值。
基金項目:西安航空職業(yè)技術(shù)學院自然科學類科研項目:“語音編程教學軟件研究與設(shè)計”(課題編號:19XHZK-022)。