?

基于LabVIEW的公交語音報站系統設計

2024-01-02 09:32
山西電子技術 2023年6期
關鍵詞:句柄回程控件

吳 哲

(西安交通工程學院機械與電氣工程學院, 陜西 西安 710300)

隨著經濟技術的不斷發展,城市中的交通出行方式也在不斷地豐富。從最初固定線路的公交車到現今逐步走進日常生活的線路預約定制,從地面交通逐步發展為地面輕軌以及地鐵軌道交通,可選擇的出行方式越來越多。在乘坐公共交通工具的過程中,及時準確地獲知當前所在站點位置,是提高乘客乘坐公共交通工具效率的一個重要因素。語音播報站點實時信息以及交通換乘信息,能夠更直接更高效地將有用信息傳遞給乘客。在一些與人文歷史相關聯的站點,通過語音播報的形式,對人文歷史信息加以介紹,也是城市文化宣傳的有效途徑。LabVIEW軟件是NI公司提供的一款圖形化編程軟件,廣泛用于測量、控制等領域,利用其自身的圖形化編程方式,也可以實現具有特定功能且人機界面友好的功能軟件。

1 公交站點信息語音播報的需求

公交站點語音播報,需要能夠將整條線路的公交站名按照到站的先后順序進行排列,在公交車行進過程中能夠進行站點的切換,正確的對應當前站點站名,并語音播報站名信息,播報與當前所到站點相關的人文歷史信息等內容。同時還應根據公交車的去程和回程的不同,調整站點切換的順序。對于語音播報時候的語速和語調,應具備可調整功能。

2 公交語音報站系統設計

2.1 站點切換功能設計

公交語音報站系統是模擬真實的公交車行進過程,站點的切換由公交車司機通過點擊公交語音報站系統前界面的“下一站”按鈕,實現站點名稱的切換?;爻虝r,點擊“上一站”按鈕實現回程時候站點名稱的切換。站點切換功能的實現是利用LabVIEW軟件的“事件結構”函數來實現[1]。在系統設計中,將公交線路所有的站點進行編號,去程行駛的時候,通過點擊“去程下一站”按鈕,按鈕狀態值的改變,觸發“事件結構”中程序的運行,進行初值的加1功能,改變之后的站點編號信息,用于對“條件結構”的條件分支進行選擇?;爻绦旭偟臅r候,通過點擊“回程下一站”按鈕,按鈕狀態值的改變,觸發“事件結構”中程序的運行,進行初值的減1功能,改變之后的站點編號信息,也用于對“條件結構”的條件分支進行選擇[2]。條件分支被選擇后,會將該分支程序中的站點文本信息以字符串常量的形式輸出,傳遞至Speak子VI進行讀取,轉換成語音的形式朗讀出來。程序如圖1所示。

圖1 公交站點切換程序

2.2 語音播報程序設計

公交站點信息語音播報的內容,可以在LabVIEW軟件里預先進行文字編輯,編輯成文本的形式,內容可以是中文,也可以是英文,對于完成中英文站點信息中英文的播報提供了很大的便利。在PC上預先安裝語音引擎包Microsoft SDK, LabVIEW軟件就能夠調用PC中的語音引擎。SpVoice類是支持語音合成的核心類。通過SpVoice對象調用TTS引擎,從而實現朗讀功能。朗讀功能可以朗讀中文或英文文本。

為了實現文本的語音播報功能,LabVIEW通過調用微軟的插件(Microsoft Speech Object Library Version 5.4)來實現此功能。

“ISpeechVoice”屬性節點可以完成語音播報時候聲音的大小以及播報語速的設置。

在LabVIEW軟件的前面板選擇控件,在“新式”菜單頁選擇“引用句柄”,選擇“自動化句柄”,將“自動化引用句柄”控件放置于前面板。選擇“自動化引用句柄”,單擊右鍵,在彈出的快捷菜單中選擇“選擇ActiveX類”,在彈出的選擇菜單中選擇“瀏覽”,從而進入“從類型庫中選擇對象”窗口,單擊窗口中的下拉菜單,可以進入到操作系統所安裝的可創建的對象庫。從中選擇“Microsoft Speech Object Library Version 5.4”,選中以后可以進入“Microsoft Speech Object Library Version 5.4”所包含的類型庫,從中選擇“SpVoice(SAPI.SpVoice.1)”,點擊前面的加號,打開其包含項,從中選擇“ISpeechVoice”,從而完成該屬性節點的調用[3]。

在程序框圖中選擇函數/編程/互連接口/ActiveX,從中選擇“打開自動化”函數。在“打開自動化”函數的“自動化引用句柄”輸出端單擊右鍵,選擇 “創建”,在“SpeechLib.ISpeechVoice類屬性”中選擇“Voice”,將該屬性節點放置于函數面板,通過拖拽的方式增加節點內容可選項,從中選擇“Rate”和“Volume”。這兩個選項可以設置文本的閱讀速度“Rate”和音量“Volume”,

所要朗讀的文本信息,能夠根據需要進行修改和增減,可以調用“SpeechLib.ISpeechVoice類的方法”來實現。在“SpeechLib.ISpeechVoice類屬性”的引用輸出連線端單擊鼠標右鍵,選擇“創建”,在“SpeechLib.ISpeechVoice類的方法”中選擇“Speak”,放置對應的屬性節點。

在對應的閱讀速度“Rate”和音量“Volume”功能端,創建輸入控件,就可以完成程序運行時,在程序前面板實現語音大小和語速的調整[4]。

軟件程序如圖2所示。

2.3 系統前界面設計

公交語音報站系統軟件界面包含了需要用到的站點切換按鈕、當前站點信息顯示窗口、播音類型選擇控件、音頻輸出設備選擇控件、播音聲音大小設置控件、播音語速調節控件和播音狀態指示燈控件。為了方便乘客直觀地看到當前站點行進位置,還添加了站點行進位置顯示,通過站點行進位置顯示,乘客可以直觀地看到當前到站,經過了幾站,離目的地剩余幾站。站點的數量和名稱可根據需要進行添加和修改。

為了使公交語音報站系統站點狀態顯示更加生動,在程序前界面增加了線路地圖,使得乘客可以清楚地看到公交車行進的方向,了解該線路在城區行進的位置。在前面板設置了進度條,通過進度條,可將已駛過的站點顯示出來,方便提醒乘客,離目的地還有幾站。在這個功能上,為了方便乘客區分去程和回程,以免坐錯方向,特別在進度條上添加了“去程”文字及指示箭頭,添加了“回程”文字以及箭頭,并且將相應的文字和箭頭與行進方向進度條的填充顏色對應起來,方便乘客識別。同時利用LabVIEW軟件的布爾燈功能,在地圖中的每個站點,均放置了布爾燈,結合報站時條件分支函數的分支選項,行進到相應站點時,通過“True”常量,點亮此站的布爾燈,并保留點亮狀態。通過這樣的設置,當程序運行,前面板上會以布爾燈點亮的形式顯示已經過的所有站點。

軟件系統前界面如圖3所示。

圖3 軟件系統前界面

3 結論

基于LabVIEW的公交語音報站系統設計,實現了利用這款圖形化編程軟件,實現了公交站點切換,語音播報站點信息的功能。相比較其他編程語音,語音播報系統的前界面設計和后面板程序編程設計直觀易懂,修改方便。該系統前界面控制參數的調整如果借助觸摸屏,操作過程更為便捷。對于該系統,仍有很多功能可增加,例如對每輛公交車位置進行精準定位,通過無線網絡借助手機APP可以查詢距離當前站點最近的車輛信息。借助公交車數量,分布的廣度,每輛公交車都可以視作是一個移動的觀測平臺,可以提供當前行駛位置的交通擁堵情況。隨著人們生活水平的不斷提高,科學技術的不斷發展,公交語音報站系統的功能一定會越來越豐富,越來越高效。

猜你喜歡
句柄回程控件
超密集網絡的動態無線回程拓撲管理方法
擺動斜楔及其回程機構
基于ADAMS和Pumplinx聯合仿真的柱塞泵回程盤運動受力薄弱點分析
春日別君
關于.net控件數組的探討
高校圖書館持久標識符應用研究
編譯程序語法分析句柄問題分析與探討
ASP.NET服務器端驗證控件的使用
基于嵌入式MINIGUI控件子類化技術的深入研究與應用
Spreadsheet控件在Delphi數據庫系統中的編程與應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合