吳 哲
(西安交通工程學院機械與電氣工程學院, 陜西 西安 710300)
隨著經(jīng)濟技術(shù)的不斷發(fā)展,城市中的交通出行方式也在不斷地豐富。從最初固定線路的公交車到現(xiàn)今逐步走進日常生活的線路預約定制,從地面交通逐步發(fā)展為地面輕軌以及地鐵軌道交通,可選擇的出行方式越來越多。在乘坐公共交通工具的過程中,及時準確地獲知當前所在站點位置,是提高乘客乘坐公共交通工具效率的一個重要因素。語音播報站點實時信息以及交通換乘信息,能夠更直接更高效地將有用信息傳遞給乘客。在一些與人文歷史相關(guān)聯(lián)的站點,通過語音播報的形式,對人文歷史信息加以介紹,也是城市文化宣傳的有效途徑。LabVIEW軟件是NI公司提供的一款圖形化編程軟件,廣泛用于測量、控制等領(lǐng)域,利用其自身的圖形化編程方式,也可以實現(xiàn)具有特定功能且人機界面友好的功能軟件。
公交站點語音播報,需要能夠?qū)⒄麠l線路的公交站名按照到站的先后順序進行排列,在公交車行進過程中能夠進行站點的切換,正確的對應當前站點站名,并語音播報站名信息,播報與當前所到站點相關(guān)的人文歷史信息等內(nèi)容。同時還應根據(jù)公交車的去程和回程的不同,調(diào)整站點切換的順序。對于語音播報時候的語速和語調(diào),應具備可調(diào)整功能。
公交語音報站系統(tǒng)是模擬真實的公交車行進過程,站點的切換由公交車司機通過點擊公交語音報站系統(tǒng)前界面的“下一站”按鈕,實現(xiàn)站點名稱的切換。回程時,點擊“上一站”按鈕實現(xiàn)回程時候站點名稱的切換。站點切換功能的實現(xiàn)是利用LabVIEW軟件的“事件結(jié)構(gòu)”函數(shù)來實現(xiàn)[1]。在系統(tǒng)設計中,將公交線路所有的站點進行編號,去程行駛的時候,通過點擊“去程下一站”按鈕,按鈕狀態(tài)值的改變,觸發(fā)“事件結(jié)構(gòu)”中程序的運行,進行初值的加1功能,改變之后的站點編號信息,用于對“條件結(jié)構(gòu)”的條件分支進行選擇?;爻绦旭偟臅r候,通過點擊“回程下一站”按鈕,按鈕狀態(tài)值的改變,觸發(fā)“事件結(jié)構(gòu)”中程序的運行,進行初值的減1功能,改變之后的站點編號信息,也用于對“條件結(jié)構(gòu)”的條件分支進行選擇[2]。條件分支被選擇后,會將該分支程序中的站點文本信息以字符串常量的形式輸出,傳遞至Speak子VI進行讀取,轉(zhuǎn)換成語音的形式朗讀出來。程序如圖1所示。
圖1 公交站點切換程序
公交站點信息語音播報的內(nèi)容,可以在LabVIEW軟件里預先進行文字編輯,編輯成文本的形式,內(nèi)容可以是中文,也可以是英文,對于完成中英文站點信息中英文的播報提供了很大的便利。在PC上預先安裝語音引擎包Microsoft SDK, LabVIEW軟件就能夠調(diào)用PC中的語音引擎。SpVoice類是支持語音合成的核心類。通過SpVoice對象調(diào)用TTS引擎,從而實現(xiàn)朗讀功能。朗讀功能可以朗讀中文或英文文本。
為了實現(xiàn)文本的語音播報功能,LabVIEW通過調(diào)用微軟的插件(Microsoft Speech Object Library Version 5.4)來實現(xiàn)此功能。
“ISpeechVoice”屬性節(jié)點可以完成語音播報時候聲音的大小以及播報語速的設置。
在LabVIEW軟件的前面板選擇控件,在“新式”菜單頁選擇“引用句柄”,選擇“自動化句柄”,將“自動化引用句柄”控件放置于前面板。選擇“自動化引用句柄”,單擊右鍵,在彈出的快捷菜單中選擇“選擇ActiveX類”,在彈出的選擇菜單中選擇“瀏覽”,從而進入“從類型庫中選擇對象”窗口,單擊窗口中的下拉菜單,可以進入到操作系統(tǒng)所安裝的可創(chuàng)建的對象庫。從中選擇“Microsoft Speech Object Library Version 5.4”,選中以后可以進入“Microsoft Speech Object Library Version 5.4”所包含的類型庫,從中選擇“SpVoice(SAPI.SpVoice.1)”,點擊前面的加號,打開其包含項,從中選擇“ISpeechVoice”,從而完成該屬性節(jié)點的調(diào)用[3]。
在程序框圖中選擇函數(shù)/編程/互連接口/ActiveX,從中選擇“打開自動化”函數(shù)。在“打開自動化”函數(shù)的“自動化引用句柄”輸出端單擊右鍵,選擇 “創(chuàng)建”,在“SpeechLib.ISpeechVoice類屬性”中選擇“Voice”,將該屬性節(jié)點放置于函數(shù)面板,通過拖拽的方式增加節(jié)點內(nèi)容可選項,從中選擇“Rate”和“Volume”。這兩個選項可以設置文本的閱讀速度“Rate”和音量“Volume”,
所要朗讀的文本信息,能夠根據(jù)需要進行修改和增減,可以調(diào)用“SpeechLib.ISpeechVoice類的方法”來實現(xiàn)。在“SpeechLib.ISpeechVoice類屬性”的引用輸出連線端單擊鼠標右鍵,選擇“創(chuàng)建”,在“SpeechLib.ISpeechVoice類的方法”中選擇“Speak”,放置對應的屬性節(jié)點。
在對應的閱讀速度“Rate”和音量“Volume”功能端,創(chuàng)建輸入控件,就可以完成程序運行時,在程序前面板實現(xiàn)語音大小和語速的調(diào)整[4]。
軟件程序如圖2所示。
公交語音報站系統(tǒng)軟件界面包含了需要用到的站點切換按鈕、當前站點信息顯示窗口、播音類型選擇控件、音頻輸出設備選擇控件、播音聲音大小設置控件、播音語速調(diào)節(jié)控件和播音狀態(tài)指示燈控件。為了方便乘客直觀地看到當前站點行進位置,還添加了站點行進位置顯示,通過站點行進位置顯示,乘客可以直觀地看到當前到站,經(jīng)過了幾站,離目的地剩余幾站。站點的數(shù)量和名稱可根據(jù)需要進行添加和修改。
為了使公交語音報站系統(tǒng)站點狀態(tài)顯示更加生動,在程序前界面增加了線路地圖,使得乘客可以清楚地看到公交車行進的方向,了解該線路在城區(qū)行進的位置。在前面板設置了進度條,通過進度條,可將已駛過的站點顯示出來,方便提醒乘客,離目的地還有幾站。在這個功能上,為了方便乘客區(qū)分去程和回程,以免坐錯方向,特別在進度條上添加了“去程”文字及指示箭頭,添加了“回程”文字以及箭頭,并且將相應的文字和箭頭與行進方向進度條的填充顏色對應起來,方便乘客識別。同時利用LabVIEW軟件的布爾燈功能,在地圖中的每個站點,均放置了布爾燈,結(jié)合報站時條件分支函數(shù)的分支選項,行進到相應站點時,通過“True”常量,點亮此站的布爾燈,并保留點亮狀態(tài)。通過這樣的設置,當程序運行,前面板上會以布爾燈點亮的形式顯示已經(jīng)過的所有站點。
軟件系統(tǒng)前界面如圖3所示。
圖3 軟件系統(tǒng)前界面
基于LabVIEW的公交語音報站系統(tǒng)設計,實現(xiàn)了利用這款圖形化編程軟件,實現(xiàn)了公交站點切換,語音播報站點信息的功能。相比較其他編程語音,語音播報系統(tǒng)的前界面設計和后面板程序編程設計直觀易懂,修改方便。該系統(tǒng)前界面控制參數(shù)的調(diào)整如果借助觸摸屏,操作過程更為便捷。對于該系統(tǒng),仍有很多功能可增加,例如對每輛公交車位置進行精準定位,通過無線網(wǎng)絡借助手機APP可以查詢距離當前站點最近的車輛信息。借助公交車數(shù)量,分布的廣度,每輛公交車都可以視作是一個移動的觀測平臺,可以提供當前行駛位置的交通擁堵情況。隨著人們生活水平的不斷提高,科學技術(shù)的不斷發(fā)展,公交語音報站系統(tǒng)的功能一定會越來越豐富,越來越高效。