談小柱,楊 璐
(1.武昌工學(xué)院 智能制造學(xué)院;2.武昌工學(xué)院 信息工程學(xué)院,湖北 武漢 430065)
現(xiàn)今移動支付方式發(fā)展迅速,為了保障不同人群的支付安全,筆者設(shè)計了一款基于語音識別的智能收付款系統(tǒng)。
系統(tǒng)總體設(shè)計如圖1所示,該系統(tǒng)通過主控制芯片STM32F103RCT6,對矩陣按鍵、語音識別芯片LD3320和語音播報芯片SYN6288進行控制,在收付款期間,商家或買家一方將會報出支付金額,語音識別系統(tǒng)精確捕捉,與商家通過按鍵輸入的金額進行判斷,通過語音播報系統(tǒng)進行播報,確認(rèn)是否支付成功。若出現(xiàn)錯誤,系統(tǒng)將自動終止支付并提醒;若仍然出現(xiàn)支付錯誤,商家可急速退款。這將大大降低了支付的錯誤率,進一步提高支付效率。
圖1 系統(tǒng)總體流程
系統(tǒng)可實現(xiàn)兩種控制方式:人工控制、語音智能控制。其中人工控制通過收銀機電腦進行控制。前者更適用于突發(fā)狀況;后者則是通過語音識別系統(tǒng)進行控制,通過商家或者買家語音控制整個支付過程。
硬件劃分為4個模塊:①語音識別模塊?;陉P(guān)鍵詞語列表識別技術(shù)來進行語音識別。②語音播報模塊。通過異步串口(UART)通信方式,來實現(xiàn)文本到語音(或TTS語音)的轉(zhuǎn)換,實現(xiàn)語音播報功能。③矩陣按鍵模塊。商家通過按鍵來進行金額的設(shè)置。④主控板模塊。用于控制其他模塊的工作。
模塊采用LD3320芯片,這是一顆基于非特定人語音識別(SI-ASR:Speaker-Independent Automatic Speech Recognition)技術(shù)的語音識別/聲控芯片。LD3320芯片上集成了高精度的A/D和D/A接口,可實現(xiàn)語音識別/聲控/人機對話的功能。并且,識別的關(guān)鍵詞語可以動態(tài)編輯?;谶@款芯片,可以為所有的電子產(chǎn)品增加VUI(Voice User Interface)語音用戶操作界面。
2.1.1 語音識別技術(shù)介紹。語音識別ASR技術(shù),是基于關(guān)鍵詞語表識的技術(shù),只需要設(shè)定好要識別的關(guān)鍵詞語列表,并把這些關(guān)鍵詞語以字符的形式傳送到LD3320內(nèi)部,就可以對用戶說出的關(guān)鍵詞語進行識別,不需要用戶做任何的錄音訓(xùn)練。每次的識別過程就是把用戶說出的語音內(nèi)容,通過頻譜轉(zhuǎn)換為語音特征,和這個關(guān)鍵詞語列表中的條目進行一一匹配,最優(yōu)匹配的一條作為識別結(jié)果。語音識別過程見圖2。
圖2 語音識別過程
2.1.2 LD3320芯片介紹。語音識別模塊采用的是由ICRoute公司生產(chǎn)的非特定人語音設(shè)備芯片LD3320。LD3320芯片共48個引腳,是一款專用的語音識別芯片,該芯片集成一塊專用DSP(Digital Signal Processing)電路,即語音識別處理電路和一些外圍電子電路,主要用于完成語音交互功能?;贚D3320芯片的語音識別模塊原理見圖3。
圖3 基于LD3320芯片的語音識別模塊原理
該模塊采用SYN6288芯片,是宇音天下科技有限公司2010年推出的性價比更高、效果更加自然的一款中高端語音合成芯片。這款芯片通過異步串口(UART)通信方式,接受待合成的文本數(shù)據(jù)實現(xiàn)文本到語音(或TTS語音)的轉(zhuǎn)換。
芯片支持GB23、GBK、BIG5和UNICODE內(nèi)碼格式的文本,支持多種控制命令功能,包括:合成、停止、暫停合成、繼續(xù)合成、改變波特率等。支持串口數(shù)據(jù)通信接口,支持3種通信波特率:9 600,19 200,38 400。內(nèi)置10 bit推挽式、可獨立供電的功放,進行數(shù)模DAC輸出。支持16級音量調(diào)整,播放文本的前景音量和播放背景音樂的背景音量可分開控制。語音播報原理見圖4。
圖4 語音播報原理
獨立按鍵一個按鍵就要占用一個IO口,整個單片機也就32個IO口,全部用完也控制不了幾個按鍵,太占用資源,而矩陣按鍵則在這方面更有優(yōu)勢,可以只用8個IO口就控制16個按鍵。矩陣按鍵的原理見圖5。
主控板采用的是STM32F103RCT6芯片,它是一種嵌入式、微控制器的集成電路,它擁有的資源包括:48KB SRAM、256KB FLASH、2個基本定時器、4個通用定時器、2個高級定時器、2個DMA控制器(共12個通道)、3個SPI、2個IIC、5個串口、1個USB、1個CAN、3個12位ADC、1個12位DAC、1個SDIO接口及51個通用IO口。主控板原理見圖6。
圖5 矩陣按鍵原理
圖6 主控板原理
語音識別系統(tǒng)通過LD3320語音識別芯片進行語音識別,將收集到的語音與軟件設(shè)計的一些關(guān)鍵詞進行比較,如果匹配則將其存儲在LD3320寄存器中,并連接STC11單片機,應(yīng)用SPI或串口發(fā)送到STM32F103RCT6的單片機進行處理。
該系統(tǒng)通過一個一級指令來啟動語音識別系統(tǒng),例如:商家說出“收款”則啟動語音識別系統(tǒng),其他時間段系統(tǒng)處于休眠狀態(tài)。當(dāng)系統(tǒng)啟動之后,商家說出一個要付款的金額時,例如:“五十元”,這時會有一個二級命令的產(chǎn)生,系統(tǒng)將會識別出這段語音,并將語音中的詞語與系統(tǒng)中的關(guān)鍵詞進行對比,轉(zhuǎn)換成識別碼,通過串口通信傳輸?shù)接嬎銠C,讓計算機可讀取,并將其語音輸入的金額數(shù)在收銀機的電腦屏幕上進行顯示。
語音播報系統(tǒng)通過SNY6288中文語音合成芯片進行語音播報。通過異步串口(UART)通信方式,將STM32F103RCT6中得到的金額進行數(shù)讀取,將其文本數(shù)據(jù)轉(zhuǎn)換成語音(或TTS語音),通過模塊中的音響,進行語音播報。例如:買家成功支付了五十元;通過主控板傳輸?shù)絊NY6288芯片中,播報“成功支付五十元”,若付款失敗,或者語音輸入金額與按鍵輸入的金額不符,通過主控板匹配后,將會播報“支付失敗,請重新輸入”。
通過這個模塊還可以進行音量的調(diào)節(jié)、詞語語速的改變、設(shè)置背景音樂、設(shè)置提示音等多種功能。
使用矩陣按鍵模塊,主要是用來讓商家輸入需要買家支付的金額。該模塊的使用,先是讓行做出輸出,并輸出低電平,列作輸入,并讀取電平,當(dāng)有按鍵按下的時候就會有電平變化,來判斷是哪一行,同樣的方法,再來判斷是哪一列,這樣得出是哪一個按鍵按下,然后在按鍵位置做處理,讓它進行金額輸入。
主控板由STM32F103RCT6芯片控制,由主控板控制其他模塊的運行。按鍵輸入的金額數(shù)字和語音識別輸入的金額數(shù)字是由主控板進行匹配,核對是否相等,相等則讓主控板發(fā)起付款界面,讓買家進行付款;若不相等,則由主控板控制語音播報系統(tǒng)提示失敗的語音,并重新讓語音識別系統(tǒng)和矩陣按鍵進行輸入。在此過程中,可以控制語音識別系統(tǒng)進行語音錄制。
圖7 主控板程序流程
通過串口的接收區(qū),可以看到語音識別接收到的金額數(shù)目。通過串口打印,可以看到矩陣按鍵輸入的金額數(shù)目。通過測試,兩個數(shù)據(jù)在系統(tǒng)運行過程中基本準(zhǔn)確無誤。
通過主控板讓語音播報系統(tǒng)模塊進行語音播報,能準(zhǔn)確地播報出程序所設(shè)置的詞語和語句。并且設(shè)置的背景音樂、提示音、音量大小都能夠準(zhǔn)確、連續(xù)、音質(zhì)良好的播放。
在進行模擬支付環(huán)節(jié)時,首先是兩個輸入金額都相等時:商家說話輸入的金額和矩陣按鍵輸入的金額進行對比,通過主控板進行比較,相等后,系統(tǒng)成功的跳出支付二維碼界面,并通過語音播報“支付成功”。其次是輸入兩個金額不等時:主控板比較發(fā)現(xiàn)錯誤后,通過語音播報系統(tǒng)播報出警告的提示音,并語音播報“輸入錯誤,請重新輸入”,再傳給主控板,重新發(fā)起語音輸入系統(tǒng)和矩陣按鍵的輸入,重新讓主控板進行比較。系統(tǒng)運行過程穩(wěn)定,并沒有出現(xiàn)運行錯誤,并且可以存儲并提取出整個支付環(huán)節(jié)過程的錄音。
該系統(tǒng)整體運行過程中較為穩(wěn)定安全,語音識別過程準(zhǔn)確,語音播報內(nèi)容無誤,主控板芯片運行穩(wěn)定。
基于LD3320語音識別芯片、SYN6288中文語音合成芯片,在STM32F103RCT6的主控板上進行語音識別的智能支付系統(tǒng),能夠有效地防止由于誤支付所引起的各類問題,提高支付的成功率,并且使智能支付更加安全、便捷。并且該系統(tǒng)小巧,能夠適配于商家的收銀機電腦。經(jīng)過實際測試,該智能支付系統(tǒng)運行較為穩(wěn)定,并且語音收集準(zhǔn)確,語音播報清晰。