《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于Android系統(tǒng)的醫(yī)院語音排隊系統(tǒng)設(shè)計與實現(xiàn)
基于Android系統(tǒng)的醫(yī)院語音排隊系統(tǒng)設(shè)計與實現(xiàn)
2014年微型機與應(yīng)用第16期
羅聯(lián)財,霍朝賓,白 宇,丁寶忠
中國電子信息產(chǎn)業(yè)集團有限公司第六研究所,北京
摘要: 設(shè)計和實現(xiàn)了一款基于Android的語音排隊系統(tǒng)。系統(tǒng)包括語音呼叫終端(Android系統(tǒng))和醫(yī)生控制端(基于Windows)兩部分,它們之間通過Socket進行呼叫通信。系統(tǒng)很好地實現(xiàn)了兩個終端之間的通信并實現(xiàn)語音呼叫,具有較強的實用價值和開發(fā)指導意義。
Abstract:
Key words :

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3 系統(tǒng)架構(gòu)

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

001.jpg

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

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

4 Android端軟件實現(xiàn)

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

002.jpg

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

  4.1 Android服務(wù)進程建立

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

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

  mThreadServer=new Thread(mcreateRunnable);

  mThreadServer.start();

  其中的mcreateRunnable過程如下:

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

  private RunnablemcreateRunnable=new Runnable()

  {

  public void run()

  {

  try

  {

  serverSocket=new ServerSocket(5678);

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

  mSocketServer=serverSocket.accept();

  //接受客戶端數(shù)據(jù)

  new Thread( ServerRunnable).start();

  }

  catch (IOException e)

  {

  Message msg=new Message();

  msg.what=0;

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

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

  return;

  }

  }

  };

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

  4.2 Android語音呼叫實現(xiàn)

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

  使用系統(tǒng)提供的TTS引擎,可以使用TextToSpeech類來執(zhí)行TTS操作,或者用setEngineByPackageName()方法來自定義一個引擎。在Android4.0后可以通過一個新的TextToSpeech的構(gòu)造方法來指定引擎,該方法接收一個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)的設(shè)計與實現(xiàn)過程,限于篇幅,本文實現(xiàn)過程主要針對Android部分的實現(xiàn),實際上還有醫(yī)生客戶端的實現(xiàn)。由于介紹在Windows端實現(xiàn)Socket通信的文獻已經(jīng)很多,本文不在此做過多贅述。

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

  參考文獻

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

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

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

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

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

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


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 国产粗话肉麻对白在线播放| 99爱视频99爱在线观看免费| 一本一本久久aa综合精品| www视频在线观看| 91大神福利视频| 国产浮力影院第一页| 老马的春天顾晓婷5| 琪琪女色窝窝777777| 欧美成a人片在线观看久| 日本黄色免费观看| 娇小性色xxxxx中文| 国产精品视_精品国产免费| 国产日韩精品一区二区在线观看| 国产三级日产三级韩国三级韩级 | 97人妻人人做人碰人人爽| 亚洲欧美日韩国产vr在线观| 色妞www精品视频一级下载| 玖玖在线资源站| 曰批全过程免费视频网址 | 亚洲日韩乱码中文无码蜜桃| 久久精品国产99久久久| 一区免费在线观看| 六月婷婷中文字幕| 老子午夜精品我不卡影院| 波霸影院一区二区| 日本最大色倩网站www| 天天做天天爱夜夜想毛片| 国产成人亚洲综合一区| 全免费a级毛片免费看| 亚洲av中文无码乱人伦在线观看 | 欧美videosdesexo肥婆| 成人毛片18女人毛片免费| 国产精品福利尤物youwu| 国产av无码专区亚洲av毛片搜| 亚洲码一区二区三区| 丰满人妻熟妇乱又伦精品| 97一区二区三区四区久久| 色吊丝最新在线播放网站| 欧美性猛交xxxx免费看| 少妇大胆瓣开下部自慰| 国产成人mv在线播放|