趙春陽(yáng),戴春曉,李勇,周峰,朱德來(lái),黃維雷
1. 蘇州大學(xué)附屬第二醫(yī)院 影像科,江蘇 蘇州 215004;2. 蘇州登頂醫(yī)療科技有限公司,江蘇 蘇州 215163
X 射線的影像學(xué)檢查是現(xiàn)代化精準(zhǔn)醫(yī)療中的重要環(huán)節(jié),在診治疾病和判斷疾病轉(zhuǎn)歸及手術(shù)方案制定中發(fā)揮著不可替代的作用[1]。影像科技師在面對(duì)患者時(shí),既要認(rèn)真核對(duì)患者申請(qǐng)單上各項(xiàng)信息,還要密切思考操作技術(shù)與方法,同時(shí)需要口頭指導(dǎo)每位患者如何配合接受檢查及取片的時(shí)間和地點(diǎn)等等,存在大量的重復(fù)話語(yǔ)。特別是體檢工作中,多為胸部X 光檢查,每天操作技師要重復(fù)幾百遍指令,成為極大的工作負(fù)擔(dān)[2]。另外醫(yī)生的發(fā)音、語(yǔ)氣也時(shí)常引起醫(yī)患之間的矛盾。
無(wú)線語(yǔ)音智能播報(bào)系統(tǒng),集語(yǔ)音合成、無(wú)線遙控操作、語(yǔ)音點(diǎn)播插播功能于一體。它采用單片機(jī)為控制核心,對(duì)各個(gè)子模塊進(jìn)行控制,以實(shí)現(xiàn)需要的功能[3]。該系統(tǒng)能有效地替代技師的人工重復(fù)喊話,減輕工作強(qiáng)度。
無(wú)線語(yǔ)音播報(bào)系統(tǒng)的工作原理是遙控器使用433 MHz ISM/SRD 頻段與語(yǔ)音播報(bào)主機(jī)通信,語(yǔ)音播報(bào)主機(jī)接收信號(hào)后解析指令,讀取本地Micro SD 卡中音頻文件,通過(guò)VS1003B 解碼器完成音頻的解碼工作,并通過(guò)外置音箱播放出來(lái)。系統(tǒng)結(jié)構(gòu)示意圖和實(shí)物圖,見(jiàn)圖1。
圖1 系統(tǒng)的結(jié)構(gòu)示意圖(a)和實(shí)物圖(b)
整個(gè)系統(tǒng)的使用流程如圖2 所示。首先通過(guò)PC 上的TTS 客戶端轉(zhuǎn)化需要播放的語(yǔ)音成MP3/WAV 文件,拷貝入Micro SD 卡并插入語(yǔ)音播報(bào)主機(jī),然后通過(guò)遙控器就可以控制語(yǔ)音播報(bào)主機(jī)任意播放Micro SD 卡內(nèi)語(yǔ)音。
圖2 使用流程圖
本系統(tǒng)硬件部分設(shè)計(jì)包括主控電路板、遙控器電路和無(wú)線接收電路,實(shí)現(xiàn)音頻編解碼、無(wú)線控制、數(shù)據(jù)存儲(chǔ)等功能。
本 系 統(tǒng) 選 用 基 于ARM Cortext-M3 內(nèi) 核 的STM32F103RCT6 作為主控制器,最高工作頻率達(dá)72 MHz,它擁有的資源包括256 k 內(nèi)置高速閃存、48 k SRAM 容量、4 個(gè)通用定時(shí)器、2 個(gè)DMA 控制器、3 個(gè)SPI 接口、2 個(gè)IIC 接口、5 個(gè)串口、3 個(gè)12 位ADC、一個(gè)SDIO 接口以及51 個(gè)通用IO 口。該芯片的配置非常豐富,能充分滿足本系統(tǒng)的各項(xiàng)需求。本系統(tǒng)硬件電路實(shí)物圖,見(jiàn)圖3。
圖3 硬件電路實(shí)物圖
參考STMicroelectronics 發(fā)布的STMF103 系列開(kāi)發(fā)文檔[4]進(jìn)行系統(tǒng)主板的設(shè)計(jì)。電源部分接收最大15 V 輸入,使用MIC5219 線性穩(wěn)壓器提供固定輸出電壓;存儲(chǔ)部分使用MicroSD 卡,通過(guò)STM32F1 自帶的SDIO 接口驅(qū)動(dòng);音頻解碼部分使用VLSI 的VS1003B 芯片[5],功耗低,單時(shí)鐘操作12 MHz,能解碼MPEG1 和MPEG2 音頻,支持MP3 和WAV 流,VS1003B 作為系統(tǒng)從機(jī),通過(guò)SPI 接口來(lái)接收輸入的音頻數(shù)據(jù)流。另外系統(tǒng)提供串口調(diào)試,通過(guò)MAX3232 與上位機(jī)實(shí)現(xiàn)了串口通信。
遙控器電路的設(shè)計(jì)[6]采用了森川電子的SC2262 遙控編碼電路,電路具有省電模式,功耗低,最多有12 位三態(tài)編碼。
無(wú)線接收電路的設(shè)計(jì),見(jiàn)圖4。采用的遙控解碼電路SC2272 是與SC2262 配對(duì)使用的專用集成電路,擁有12 位的三態(tài)地址管腳,可支持多達(dá)312 個(gè)地址的編碼。這種接收器集紅外接收與放大于一體,能完成從紅外線接收到輸出兼容TTL 信號(hào)的所有工作[7]。
本系統(tǒng)的軟件分為兩部分,一部分是燒錄在語(yǔ)音播報(bào)主機(jī)芯片內(nèi)的嵌入式系統(tǒng)軟件,軟硬件一體驅(qū)動(dòng)整個(gè)主機(jī)的工作。另一部分相對(duì)獨(dú)立的是TTS 客戶端程序,負(fù)責(zé)把文字合成清晰的語(yǔ)音文件。
圖4 無(wú)線接收電路設(shè)計(jì)原理框圖
嵌入式軟件系統(tǒng)采用了RT-Thread[8]實(shí)時(shí)操作系統(tǒng),該系統(tǒng)安全開(kāi)源,遵循Apache License 2.0 開(kāi)源許可協(xié)議,系統(tǒng)模塊化且可裁剪性很好,包含豐富的中間件組件,非常適合本系統(tǒng)嵌入式軟件的需求。軟件的底層驅(qū)動(dòng)設(shè)計(jì)考慮分離思想,分為硬件直接交互層和接口通用層,與硬件直接交互層參考微控器指南[9]編寫合適的控制代碼,接口通用層設(shè)計(jì)合適的接口框架,提供一致性的API 供應(yīng)用層調(diào)用。
整個(gè)軟件使用RT-Thread 來(lái)完成任務(wù)調(diào)度[10],每個(gè)任務(wù)對(duì)應(yīng)一個(gè)線程,線程間通信采用消息隊(duì)列的方式[11]。主要任務(wù)規(guī)劃,見(jiàn)表1。
表1 任務(wù)規(guī)劃
app_message_handler 是核心任務(wù),實(shí)時(shí)監(jiān)聽(tīng)遙控器發(fā)來(lái)的指令,并解析后轉(zhuǎn)化成內(nèi)部數(shù)據(jù)指令結(jié)構(gòu)壓入操作棧。app_speaker 負(fù)責(zé)接收app_message_handler 發(fā)送的消息,然后讀取Micro SD card 中的音頻文件,并調(diào)用編解碼器驅(qū)動(dòng),通過(guò)MIC 口傳輸音頻數(shù)據(jù)至音箱。app_monitor 是系統(tǒng)常駐線程,實(shí)時(shí)監(jiān)測(cè)主控制板硬件異常,并通過(guò)tshell 顯示系統(tǒng)運(yùn)行情況。
TTS 客戶端軟件選用了百度語(yǔ)音合成引擎,使用Visual C++進(jìn)行開(kāi)發(fā)[12]。本客戶端程序?qū)崿F(xiàn)了HTTP 通信,支持POST 和GET 兩種方式。百度語(yǔ)音合成引擎提供REST API 供使用者調(diào)用,具體接口定義參見(jiàn)百度開(kāi)發(fā)者文檔[13]生成的音頻文件數(shù)據(jù)通過(guò)HTTP 協(xié)議返回,然后保存在本地。語(yǔ)音下載后,需將語(yǔ)音地址與下載的語(yǔ)音文件一一對(duì)應(yīng)起來(lái),這是單片機(jī)讀取語(yǔ)音并且準(zhǔn)確播報(bào)的重要參考點(diǎn)[14]。表2 是我院編錄的語(yǔ)音文件內(nèi)容,語(yǔ)音內(nèi)容可以任意編輯,存放地址可以更改。
表2 我院編錄的語(yǔ)音文件內(nèi)容
產(chǎn)品采用專業(yè)級(jí)音頻解碼芯片,高低音控制,音質(zhì)可以與專業(yè)CD 媲美。433Mh 遙控系統(tǒng),對(duì)Wi-Fi 信號(hào)、藍(lán)牙信號(hào)和手機(jī)信號(hào)等零干擾,在空曠的環(huán)境可以實(shí)現(xiàn)400 m 實(shí)時(shí)遙控,在放射科室隔著鉛板也能無(wú)阻礙地?zé)o線遙控。產(chǎn)品技術(shù)參數(shù),見(jiàn)表3。
表3 產(chǎn)品技術(shù)參數(shù)
(1)可用性。該系統(tǒng)易安裝,無(wú)線遙控靈敏,響應(yīng)時(shí)間在1 s 以內(nèi),播放語(yǔ)音清晰響亮,支持長(zhǎng)時(shí)間穩(wěn)定使用。
(2)易用性。只需使用遙控器即可控制該系統(tǒng),可移動(dòng)使用,簡(jiǎn)便無(wú)使用門檻。
在實(shí)際的臨床使用中,該系統(tǒng)不僅減輕了技師的工作量,清晰溫婉的語(yǔ)音也給患者提供了良好的就醫(yī)體驗(yàn)。以具體使用為例:① 使用語(yǔ)音播報(bào)系統(tǒng)前:以胸部檢查為例,技師先要囑咐患者到病員更衣室去摘掉胸罩、項(xiàng)鏈等金屬物品,接著告知患者雙手叉腰、雙肩盡量往前靠,曝光時(shí)囑咐患者深吸氣再憋氣,檢查完成后還得告知病人取片的時(shí)間及地點(diǎn);② 使用語(yǔ)音播報(bào)系統(tǒng)后:技師只要依次按遙控器上的10、1、4、6、7、8 號(hào)鍵,完成檢查。整個(gè)檢查過(guò)程中,操作指令及各項(xiàng)告知都由語(yǔ)音播報(bào)系統(tǒng)代替。
常規(guī)X 線機(jī)都是沒(méi)有語(yǔ)音指令系統(tǒng)的[15],醫(yī)院常會(huì)加裝麥克風(fēng)對(duì)講,技師通過(guò)麥克風(fēng)發(fā)出各種操作指令及通知患者注意事項(xiàng)。作為三級(jí)甲等醫(yī)院,每天每個(gè)機(jī)房需承擔(dān)100~300 例檢查,上百次重復(fù)喊話,內(nèi)容單調(diào)枯燥,影響技師心情,語(yǔ)氣難免生硬,醫(yī)患之間易產(chǎn)生誤會(huì)。另外,技師來(lái)自全國(guó)各地,地方口音不可避免,常常有患者沒(méi)聽(tīng)懂指令,檢查就已完成,嚴(yán)重影響檢查質(zhì)量。
本文主要闡述了一種基于STM32 的嵌入式無(wú)線語(yǔ)音播報(bào)系統(tǒng)的設(shè)計(jì),從產(chǎn)品需求、整體設(shè)計(jì)、硬件設(shè)計(jì)及軟件設(shè)計(jì)各個(gè)層面詳述了整個(gè)系統(tǒng)的實(shí)現(xiàn)原理和技術(shù)細(xì)節(jié)。自動(dòng)語(yǔ)音控制系統(tǒng)在現(xiàn)代科技中已經(jīng)廣泛使用[16],為減輕醫(yī)院技師工作負(fù)擔(dān),結(jié)合臨床工作實(shí)際需求,設(shè)計(jì)本語(yǔ)音播報(bào)系統(tǒng)。該系統(tǒng)無(wú)需改動(dòng)X 線機(jī)電路,不會(huì)對(duì)設(shè)備產(chǎn)生不利影響,安裝方便,成本低廉,操作簡(jiǎn)便,語(yǔ)音播報(bào)清晰準(zhǔn)確。該系統(tǒng)使用后,達(dá)到了預(yù)期的效果,具有良好的使用價(jià)值和社會(huì)價(jià)值。同時(shí),該系統(tǒng)還適用于需要不斷重復(fù)相同語(yǔ)音的其他場(chǎng)景。