莫 沛,梁偉鄯,殷浩天,倪志平
(柳州工學院 電氣與計算機工程系,廣西 柳州 545000)
語音識別近年來在國內發展迅速,市場上具有語音識別功能的產品也越來越受消費者歡迎。語音識別解放了人的雙手,便捷了人們的生活,智慧了生活[1]。設計了一種有限語音識別系統,具有文本翻譯、語音翻譯和視頻文字提取等功能,一定程度上打破了不同地域不同語言溝通困難的堡壘,解決使用者與外國友人的溝通障礙[2-3],方便學習外國文化藝術和科技,具有很高的實用價值和廣闊的市場前景。
開發環境的選擇:研究選擇使用以Python作為開發語言、PyCharm軟件作開發平臺。相比于C語言,Python是一門代表簡單主義思想的語言,它的運行速度非常快,支持面向對象的編程,同時具有開源的本質,因此具有豐富的庫,可以幫助處理各種工作,包括正則表達式、文檔生成、單元測試、線程、數據庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶界面)、Tk和其他與系統有關的操作,這些庫功能強大,拿來即用,大大豐富了系統的功能并縮短了開發周期。
軟件開發平臺使用的是JetBrains公司開發的PyCharm軟件。PyCharm帶有一整套可以幫助用戶提高效率的工具,如調試、語法高亮、項目管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制。該軟件除了擁有一般IDE具有的功能,還具有函數及關鍵字的自動補全等人性化功能,這使得項目能更快很流暢地完成,在函數功能和使用方法忘記的時候還能點擊查看,代碼的區塊化讓代碼思路更加清晰,代碼編寫錯誤的地方還會直接報紅。
錄音方案的設計:選擇了使用PyAudio庫和Speech Recognition庫來進行錄音。PyAudio庫提供了Python語言版本,能夠進行錄音、播放、生成wav文件等功能,同時PyAudio庫是一個可跨多平臺的音頻 I/O 庫,能夠在Linux、微軟Windows和蘋果Mac OS X/MACOS等系統上使用。SpeechRecognition庫是Google設計的一款專注語音識別的功能庫,依賴于PyAudio資源庫。SpeechRecognition的易用性很高,靈活性高,因為不需要構建訪問麥克風和從頭開始處理音頻文件的腳本,只需幾秒鐘即可自動完成音頻輸入、檢索并運行。研究使用了listen()函數來獲取麥克風數據,并且當檢測到沒有人說話時則自動停止,做好后使用open()函數,將其保存為.pcm格式的音頻文件,供后面功能使用。
語音識別方案的設計:語音識別使用的是百度短語音識別API,能夠進行普通話和英語的識別,并且可以根據語音的內容理解和停頓智能匹配合適的標點符號,識別準確且快速,但只能識別60 s內的音頻,為了能夠連續長時間識別,每次識別后的數據會暫時保存在本地中進行合成。
文本翻譯方案的設計:考慮到了翻譯對準確性的要求,本系統采用了兩種翻譯方案,一種是使用Requests庫爬取有道翻譯的結果,另一種是使用百度通用翻譯API接口來實現功能。第一種方案通過Requests庫的方式來進行翻譯結果的爬取,實現了中英互譯的翻譯功能,Requests庫是用Python編寫的,基于urllib,采用Apache2 Licensed開源協議的HTTP庫,Requests庫經常被用來進行HTTP測試。通過使用Requests庫的get()函數來獲取請求,再經過json解析獲取翻譯結果。第二種方案使用百度通用翻譯API,通過HTTP接口來進行多語種互譯功能,輸入需要翻譯的文本,并設置好源語種和目標語種,就能得到相對應的翻譯結果。該翻譯功能能夠在27種語種中互譯,滿足大部分生活需求,并且準確率高,響應速度快。
語音合成方案的設計:選擇了百度在線語音合成API方案,該語音合成功能可以將上面翻譯后的文字信息轉化為聲音信息,可以在程序里設置語速、音調、音量、發音人等,并使用open()函數保存.mp3格式音頻文件在本地,為下面的功能提供資源。
視頻中聲音提取方案的設計:在提取視頻中聲音時,首先將視頻轉換為音頻格式,然后再使用上面的語音識別功能進行文字提取,最后再將文字信息保存在.txt文件里。第一步的視頻轉換音頻格式使用的是ffmpeg庫,ffmpeg庫領先的多媒體框架,它包括這樣的幾個庫:libavcodec,libavutil,libavformat,libavfilter,libavdevice,libswscale and libswresample,具有音頻解碼和編碼、視頻的復用和多路處理、噪音處理等功能,本研究中使用ffmpeg庫的input()函數,將.mp4文件轉換為.wav音頻文件。第二步再進行語音識別,最后使用os庫的write()函數寫入.txt文件里,隨后就可以查看音頻提取結果。
軟件界面的設計使用的是Python的圖形開發界面的Tkinter庫,Tkinter庫的兼容性強,能夠在大多數的Unix平臺、Windows和Macintosh系統中良好地運行。Tkinter庫里提供了各種控件,如按鈕、畫布、多選框、列表、文本等控件,在方便開發的同時,也為使用者提供了良好的使用體驗。
文本翻譯界面設計:文本的翻譯功能設定之初考慮到了語言表達方式的博大精深,因此設有了百度和有道兩種翻譯引擎翻譯結果,用戶可以根據自己的喜好選擇表達方式,如圖1所示。其中有道翻譯只能中英互譯,百度可以選擇翻譯成多國語言,準確度可靠,如圖2所示。

圖1 兩種翻譯結果對比Fig.1 Comparison of translation results of two types

圖2 中文翻譯為日語Fig.2 Translation from Chinese to Japanese
語音翻譯界面設計:語音翻譯支持中英文互譯,滿足人們的日常需求,選擇好源語言,按照提示進行錄音,錄音完成后就可以進行翻譯后語音的播放,并在顯示框顯示翻譯后的文本信息,方便用戶使用。例如:用戶使用麥克風輸入“柳州螺螄粉是廣西著名的小吃。”,則會播放為“Liuzhou snail powder is a famous snack in Guangxi.”的英文語音并顯示在文本框里。
視頻音頻提取界面設計:視頻音頻提取功能支持提取MP4格式的視頻,設置好原語言,選擇需要翻譯的MP4視頻,點擊轉換,很快就能在文件夾下的test.txt文件里查看提取結果。
設計的語音識別翻譯系統主要有以下特點:第一,文本翻譯、語音識別和語音合成等功能使用了百度AI云平臺提供的人工智能服務,不需要龐大的本地資源庫,只要以HTTPS的方式向平臺請求服務,就可以得到AI分析結果,提高了響應速度,同時也擁有了可靠的準確性,大大縮小了軟件的體積。第二,語言識別軟件運行速度快、兼容性強、穩定性好,因為使用的是Python語言進行開發。Python擁有豐富且成熟的庫,功能強大,有利于以后的功能升級。第三,翻譯功能,可以反饋有道翻譯、百度翻譯兩種翻譯引擎的翻譯結果,讓使用者擇優選擇,降低了機器翻譯帶來的準確性不高的問題。同時該系統的翻譯功能強大,支持包括粵語、文言文等28種類型的互相翻譯。第四,將文本翻譯、語音識別翻譯、視頻音頻提取等功能集為一體,實現一軟件多用途,打破了不同語言溝通障礙的堡壘,更加方便了交流,滿足人們的日常需求。第五,打破了傳統的文字輸入方式,使用語音輸入更加快捷、準確、方便。