《電子技術應用》
您所在的位置:首頁 > 嵌入式技术 > 设计应用 > 基于Android系统的医院语音排队系统设计与实现
基于Android系统的医院语音排队系统设计与实现
2014年微型机与应用第16期
罗联财,霍朝宾,白 宇,丁宝忠
中国电子信息产业集团有限公司第六研究所,北京
摘要: 设计和实现了一款基于Android的语音排队系统。系统包括语音呼叫终端(Android系统)和医生控制端(基于Windows)两部分,它们之间通过Socket进行呼叫通信。系统很好地实现了两个终端之间的通信并实现语音呼叫,具有较强的实用价值和开发指导意义。
Abstract:
Key words :

  摘  要: 設計和實現了一款基于Android的語音排隊系統(tǒng)。系統(tǒng)包括語音呼叫終端(Android系統(tǒng))和醫(yī)生控制端(基于Windows)兩部分,它們之間通過Socket進行呼叫通信。系統(tǒng)很好地實現了兩個終端之間的通信并實現語音呼叫,具有較強的實用價值和開發(fā)指導意義。

  關鍵詞: 語音呼叫;Android系統(tǒng);TTS語音合成;排隊系統(tǒng)

  自2007年Google推出開源手機操作系統(tǒng)Android[1]以來,Android的應用開發(fā)一時風靡全球,各高科技領域應用都在向Android進軍[2],各種基于Android系統(tǒng)的設備層出不窮。Android的盛行取決于其獨特的優(yōu)勢:(1)開放性,Android是一款基于Linux內核的開源系統(tǒng),對第三方應用開發(fā)完全開放,開發(fā)人員具有較大的自由度[3];(2)易開發(fā),Android應用程序的開發(fā)采用Java語言,通過應用框架層提供的API[4],使開發(fā)簡單、周期短;(3)免授權費,Android一直采用免授權費的策略,這讓所有手持設備廠商都可以選擇Android系統(tǒng),這也是Android如此流行的很大原因之一,因為對這些廠商來說,采用安卓系統(tǒng)能夠帶來比WinCE更多的利潤。

  排隊系統(tǒng)(或稱排隊機)是一種綜合運用計算機、網絡、多媒體、通信控制的高新技術產品,以取代各類服務性窗口傳統(tǒng)的由顧客站立排隊的方式,改由計算機系統(tǒng)代替客戶進行排隊。該系統(tǒng)適用于各類窗口服務行業(yè),已經廣泛應用于金融、醫(yī)院、電信以及各級政府對外服務窗口等行業(yè)[5]。雖然現在市場上已經出現各種各樣的語音呼叫終端,但Android的出現及其廣泛應用,特別是Android系統(tǒng)設備的普及化,使得設備成本大大下降,開發(fā)一個基于Android系統(tǒng)的語音呼叫系統(tǒng)很有實用意義。

1 現有語音排隊系統(tǒng)綜述

  隨著語音合成技術的發(fā)展,語音排隊系統(tǒng)已經發(fā)展很多年了,目前的語音呼叫系統(tǒng)中,根據系統(tǒng)的組成,可以分為兩種應用類型:單純語音呼叫盒和帶顯示屏的語音呼叫系統(tǒng)。

  其中語音呼叫盒通常由語音芯片合成聲音,多應用于銀行、郵政之類的集中排隊叫號服務,這種盒子合成的聲音比較慢,聽起來一頓一頓的,用戶感覺差,隨著語音芯片技術的提高,以后有望做到一個更好的水平。

  語音呼叫系統(tǒng)除了一個聲音呼叫以外,還帶有一個顯示終端,終端會顯示當前叫號人員甚至下一個排隊者的姓名或其他信息,通常用于醫(yī)院等較為分散的排隊叫號服務,方便用戶在沒有聽到聲音時看到排隊信息。語音的屏顯功能,有的直接后臺帶電腦主機,這樣構成的成本較高;還有的利用分屏技術進行分屏顯示,但總體下來成本也不低。

  總體而言,目前主要利用語音芯片合成聲音的較多,隨著語音呼叫的需求發(fā)展,需要更多發(fā)展真人語音合成服務,但受限于語音合成芯片的資源限制,從長遠來看,需要將電腦級的語音合成技術帶入到語音排隊系統(tǒng)中。而目前的語音呼叫系統(tǒng)由于技術上的原因成本過高。隨著Android設備的發(fā)展,有很多顯示終端已經內置了Android系統(tǒng),特別是Android系統(tǒng)對TTS語音合成的支持標準化,為開發(fā)新一代呼叫系統(tǒng)提供了可能,同時由于單一設備實現了顯示與語音呼叫,有效地降低了設備成本。

2 基于Android系統(tǒng)的語音呼叫優(yōu)勢

  TTS(Text To Speech),即“從文本到語音”,是人機對話的一部分,讓計算機能夠說話。它是同時運用語言學和心理學的杰出之作,在內置芯片的支持下,通過神經網絡的設計,把文字智能地轉化為自然語音流。TTS技術對文本文件進行實時轉換,轉換時間之短可以秒計算。在其特有智能語音控制器作用下,文本輸出的語音音律流暢,使得聽者在聽取信息時感覺自然,毫無機器語音輸出的冷漠與生澀感。TTS語音合成技術即將覆蓋國標一、二級漢字,具有英文接口,自動識別中、英文,支持中英文混讀。所有聲音采用真人普通話為標準發(fā)音,實現了120~150個漢字/s的快速語音合成,朗讀速度達3~4個漢字/s,使用戶可以聽到清晰悅耳的音質和連貫流暢的語調。

  基于Android系統(tǒng)的語音呼叫有以下技術優(yōu)勢:

  (1)軟件優(yōu)勢。Android1.6版本及之后的系統(tǒng)都默認安裝了TTS引擎,這為開發(fā)基于Android系統(tǒng)的語音呼叫系統(tǒng)提供了可能。

  (2)硬件優(yōu)勢。現在已經有帶Android系統(tǒng)的智能電視、智能顯示器、電視機頂盒等硬件供開發(fā)使用,而且由于Android系統(tǒng)費用很低,做出來的產品比原來不帶Android系統(tǒng)的產品功能上有很大提升,但成本增加很少。

  (3)可重用性高。基于Android的語音呼叫,如果硬件更換,例如從Android顯示器換成Android電視機,由于都是基于Android系統(tǒng),可能不經過修改就能直接使用。如果是Android系統(tǒng)版本變化過大(比如新發(fā)布版本的API更新過大),也可能只需要經過重新編譯指定版本即可在新機器上使用,這為后續(xù)的開發(fā)部署提供了很大的便利,不會出現因為硬件變化而需要重新開發(fā)軟件的問題。

3 系統(tǒng)架構

  整體而言,本系統(tǒng)采用Client/Server架構,醫(yī)生客戶端從排隊服務器讀取當前排隊列表,由醫(yī)生決定呼叫排隊者,呼叫由Android呼叫終端完成。系統(tǒng)架構如圖1所示[6]。

001.jpg

  圖1中,每個陰影方塊表示不同的房間號,一個房間有多個醫(yī)生時,可以多個醫(yī)生共用一個顯示屏叫號。其中的呼叫終端,可以是帶Android系統(tǒng)的智能電視,也可以是智能顯示器甚至是機頂盒加顯示器的配置。

  系統(tǒng)的整體流程簡單明了,主要難點在于醫(yī)生客戶端與呼叫終端之間的聯(lián)系,通過Socket通信實現了通信過程。

4 Android端軟件實現

  本節(jié)主要討論Android系統(tǒng)下的語音呼叫系統(tǒng)實現,主要包括呼叫服務建立和語音呼叫過程的實現。軟件系統(tǒng)的主要程序流程圖如圖2所示。

002.jpg

  Thread服務創(chuàng)建很關鍵,通過它建立起Socket偵聽線程與消息處理線程。在Android編程中,Thread的作用與Windows下的多線程編程作用一樣,其目的是讓主線程不至于“陷入”到消息等待中。

  4.1 Android服務進程建立

  在此,需要在Android系統(tǒng)上建立一個Socket服務器,用來與醫(yī)生客戶端建立連接,以完成呼叫信息的接收工作。

  在主界面的Create()過程中,建立一個線程mThreadServer用于偵聽端口:

  mThreadServer=new Thread(mcreateRunnable);

  mThreadServer.start();

  其中的mcreateRunnable過程如下:

  //線程:監(jiān)聽服務器發(fā)來的消息

  private RunnablemcreateRunnable=new Runnable()

  {

  public void run()

  {

  try

  {

  serverSocket=new ServerSocket(5678);

  //方法用于等待客戶連接

  mSocketServer=serverSocket.accept();

  //接受客戶端數據

  new Thread( ServerRunnable).start();

  }

  catch (IOException e)

  {

  Message msg=new Message();

  msg.what=0;

  recvMessageServer="創(chuàng)建異常:"+e.getMes

  sage()+e.toString()+"\n";

  return;

  }

  }

  };

  在偵聽線程完成建立之后,即完成了語音呼叫服務的建立,醫(yī)生客戶端就可以訪問指定的端口與呼叫終端進行數據傳輸了。

  4.2 Android語音呼叫實現

  在Android系統(tǒng)下,由于已經有了標準化的TTS語音呼叫引擎,完成一個語音呼叫的過程顯得非常容易,只需要根據Google提供的標準化API就能完成呼叫服務。

  使用系統(tǒng)提供的TTS引擎,可以使用TextToSpeech類來執(zhí)行TTS操作,或者用setEngineByPackageName()方法來自定義一個引擎。在Android4.0后可以通過一個新的TextToSpeech的構造方法來指定引擎,該方法接收一個TTS引擎的包名。還可以通過getEngines()來查詢可用的TTS引擎,這個方法返回一個TextToSpeech.EngineInfo對象的集合,該對象包含引擎的圖標、標簽和包名等信息。

  通過如下過程完成語音引擎的初始化:

  if (status==TextToSpeech.SUCCESS){

  int result=mTts.setLanguage(Locale.CHINESE);

  if(result==TextToSpeech.LANG_MISSING_DATA

  ||result==TextToSpeech.

  LANG_NOT_SUPPORTED)

  {

  Log.e(TAG,"初始化成功,但是找不到語言包");

  //TODO安裝語言安裝包

  }

  }

  引擎初始化之后,就可以開始讓引擎發(fā)音了:

  try {

  mTts.speak(mContent,TextToSpeech.QUEUE_FLUSH, null);

  } catch (Exception e) {

  e.printStackTrace();

  showToast("出錯了~");

  }

  以上過程完成了一個語音引擎的初始化并讀出從醫(yī)生客戶端中接收到的文本信息。

  圖3是本系統(tǒng)實際使用的效果圖。

003.jpg

  本文介紹了一個基于Android系統(tǒng)的醫(yī)院語音呼叫系統(tǒng)的設計與實現過程,限于篇幅,本文實現過程主要針對Android部分的實現,實際上還有醫(yī)生客戶端的實現。由于介紹在Windows端實現Socket通信的文獻已經很多,本文不在此做過多贅述。

  本文設計實現的基于Android的語音呼叫系統(tǒng)在實際應用中取得了很好的效果。隨著Android系統(tǒng)設備的大量普及,這種基于Android系統(tǒng)的語音呼叫終端因為系統(tǒng)成本低且使用可靠,一定會得到推廣使用。

  參考文獻

  [1] 劉安戰(zhàn),賈曉輝.基于Android的私密短信系統(tǒng)設計與實現[J].微型機與應用,2012,31(17):51-56.

  [2] 周時偉,謝維波.基于Android的智能家居終端設計與實現[J].微型機與應用,2012,31(14):11-14.

  [3] 葛艷,高占江.基于Android系統(tǒng)的音樂播放器設計與實現[J].微型機與應用,2014,33(1):5-8.

  [4] 弋改珍,解爭龍,張琨.基于Android的火車時刻表查詢系統(tǒng)設計與實現[J].現代電子技術,2012,35(4):41-44.

  [5] 但成福,劉曉明.一種用排隊論指導的CAN總線語音通信系統(tǒng)設計[J].電子技術應用,2013,39(2):22-25.

  [6] 曾建平,邵艷潔.Android系統(tǒng)架構及應用程序開發(fā)研究[J].微計算機信息,2011,27(9):1-3.


此內容為AET網站原創(chuàng),未經授權禁止轉載。
主站蜘蛛池模板: 久久精品国产精品亚洲| 亚洲欧洲精品一区| 91国产在线精品| 狠狠色综合欧美激情| www日韩欧美| 国产精品热视频| 国产有码在线一区二区视频| 97精品一区二区视频在线观看| 国产在线高清精品| 欧美成人免费在线观看| 日本精品久久久久久久| 97成人在线免费视频| 国产精品免费久久久| 尤物一区二区三区| 国产精品日韩在线观看| 日韩久久久久久久久久久久久| 国产精品69av| 国产精品一区二区在线观看| 日韩精品一区二区三区外面| 国产精品免费久久久久影院| 久久国产精品久久| 欧美日韩一区二区视频在线| 国产精品国产亚洲伊人久久| 久久免费国产视频| 欧美大香线蕉线伊人久久国产精品 | 久久久久久久久91| 亚洲中文字幕无码av永久| 国产精品三级网站| 国产精品免费久久久久影院| 久久久久久久免费| 美女精品国产| 青青青免费在线| 亚洲在线欧美| www..com日韩| 久久精品色欧美aⅴ一区二区| 国产综合欧美在线看| 视频一区二区在线| 欧美激情网友自拍| 久青草国产97香蕉在线视频| 2019日韩中文字幕mv| 久久这里只有精品视频首页|