偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何開(kāi)發(fā)出你自己的Siri應(yīng)用程序?

譯文
移動(dòng)開(kāi)發(fā) Android
本文將幫助大家了解如何編寫(xiě)屬于自己的Siri應(yīng)用程序。去年我曾負(fù)責(zé)開(kāi)發(fā)過(guò)一款A(yù)ndroid Siri應(yīng)用,目前這款軟件已經(jīng)完成并被擺上Google Play的貨架。希望我的親身經(jīng)歷能為大家?guī)?lái)啟示。

什么是移動(dòng)助手應(yīng)用?

[[75855]]

【2013年6月26日 51CTO外電頭條】移動(dòng)助手應(yīng)用應(yīng)當(dāng)包含以下功能:

  • 它應(yīng)是一款移動(dòng)應(yīng)用(包括Android、iOS、Windows Phone等平臺(tái)),
  • 大家可以通過(guò)文字或語(yǔ)音進(jìn)行提問(wèn),
  • 大家可以通過(guò)文字、語(yǔ)音、圖像或者活動(dòng)獲得應(yīng)答信息,
  • 它應(yīng)涉及移動(dòng)設(shè)備中固有的功能,例如麥克風(fēng)、屏幕、GPS、互聯(lián)網(wǎng)、揚(yáng)聲器以及存儲(chǔ)在設(shè)備中的信息。

移動(dòng)助手應(yīng)用能做些什么?

移動(dòng)助手應(yīng)用能實(shí)現(xiàn)很多功能,我所開(kāi)發(fā)的首個(gè)版本僅僅能夠理解并回應(yīng)十五條指令,但如今它已經(jīng)能夠理解并回應(yīng)超過(guò)五十條指令?;A(chǔ)指令類(lèi)型應(yīng)當(dāng)包含新聞、天氣、鬧鐘設(shè)置以及呼叫聯(lián)系人等。在移動(dòng)市場(chǎng)中搜索移動(dòng)助手軟件時(shí),我發(fā)現(xiàn)以上幾類(lèi)指令最為通用。下面我就列出一份需要預(yù)置在內(nèi)指令列表,幫助大家的移動(dòng)助手具備基本功能。

  • 設(shè)置鬧鐘
  • 從新聞、天氣、賽事比分及維基百科中獲取信息
  • 運(yùn)行應(yīng)用程序
  • 打開(kāi)媒體文件(包括視頻與音樂(lè))
  • 在Facebook或者twitter等社交平臺(tái)上分享內(nèi)容
  • 讀取/編寫(xiě)短信或電子郵件
  • 讀取某些社交媒體分享內(nèi)容
  • 尋找最近的市場(chǎng)、藥房、醫(yī)院及餐廳等
  • 呼叫某人
  • 處理基本數(shù)學(xué)問(wèn)題
  • 檢查銀行存款余額
  • 向某人匯出款項(xiàng)
  • 檢查最近的貨幣或證券交易信息
  • 讀取/設(shè)置日程表
  • 購(gòu)買(mǎi)演唱會(huì)或旅行票據(jù)
  • 諸如此類(lèi)

其中一些指令類(lèi)型可以與第三方公司的業(yè)務(wù)相集成。舉例來(lái)說(shuō),大家可以通過(guò)集成讓自己的移動(dòng)助手向Amazon或者Best Buy下達(dá)貨品訂單。

市場(chǎng)上現(xiàn)有移動(dòng)助手匯總

目前市場(chǎng)上已經(jīng)存在六十多種知名手機(jī)助手產(chǎn)品,其中人氣最高的當(dāng)數(shù)Siri以及谷歌語(yǔ)音搜索方案。

以下表格列出了市場(chǎng)上的現(xiàn)有移動(dòng)助手及其開(kāi)發(fā)環(huán)境(編者注:僅包括國(guó)外)。

  • Siri,
  • 谷歌語(yǔ)音搜索,
  • Nuance Nina,
  • Dragon移動(dòng)助手,
  • Angel Lexee,
  • AIVC,
  • Iris,
  • Skyvi,
  • EverFriends,
  • EasyLuncher,
  • Speaktoit,
  • Evi,
  • Turkcell Mobil Asistan(土耳其)。
[[75856]]

Siri與谷歌語(yǔ)音搜索人氣最高,也就無(wú)需贅述。下面我向大家介紹關(guān)于Nina、Lexee、Dragon移動(dòng)助手以及Turkcell Mobil Asistan的簡(jiǎn)要信息。

Nuance Nina: Nuance公司專(zhuān)為大型企業(yè)提供用于開(kāi)發(fā)自有移動(dòng)助手應(yīng)用的SDK,開(kāi)發(fā)成果可以充當(dāng)企業(yè)客戶(hù)的服務(wù)應(yīng)用。這款SDK可與iOS及Android應(yīng)用相集成。感興趣的朋友不妨點(diǎn)擊此處查看其官方網(wǎng)站的介紹信息。

Lexee: Lexee是一款來(lái)自Angel Labs公司的移動(dòng)助手,同時(shí)也提供足以創(chuàng)建自有移動(dòng)助手的網(wǎng)絡(luò)環(huán)境。大家可以添加、更新及刪除各類(lèi)方案,且無(wú)需通過(guò)網(wǎng)絡(luò)接口進(jìn)行編碼。Lexee另一大值得稱(chēng)道的重點(diǎn)在于分析工具。Angel Labs非常擅長(zhǎng)分析工具的開(kāi)發(fā),因此Lexee環(huán)境也給用戶(hù)帶來(lái)專(zhuān)業(yè)級(jí)別的使用報(bào)告及數(shù)據(jù)匯總選項(xiàng)。

感興趣的朋友可以點(diǎn)擊此處了解更多信息并查看介紹視頻。

Dragon移動(dòng)助手: Dragon移動(dòng)助手是Nuance公司帶來(lái)的又一力作。Dragon移動(dòng)助手允許用戶(hù)通過(guò)自然語(yǔ)言訪(fǎng)問(wèn)各類(lèi)內(nèi)容,并輕松在手機(jī)上完成日常工作。大家可以點(diǎn)擊此處查看更多相關(guān)資料。

點(diǎn)擊此處則能夠下載這款應(yīng)用,并觀(guān)看我個(gè)人最喜愛(ài)的移動(dòng)助手介紹視頻。

Turkcell Mobil Asistan: Turkcell Mobil Asistan是Google Play商店中惟一一款來(lái)自土耳其的移動(dòng)助手應(yīng)用。Turkcell歐洲最大的全球移動(dòng)通信企業(yè)之一。通過(guò)這款應(yīng)用程序,大家可以為客戶(hù)提供包括手機(jī)賬單查詢(xún)、流量資費(fèi)信息在內(nèi)的各種輔助性服務(wù)。另外,它還能回答用戶(hù)關(guān)于伊斯坦布爾本地新聞、天氣、貨幣以及交通情況的問(wèn)題。

大家可以點(diǎn)擊此處了解更多關(guān)于Turkcell Mobil Asistan的信息并下載這款應(yīng)用。

#p#

移動(dòng)助手中的技術(shù)要點(diǎn)

我希望上述信息能幫助大家了解移動(dòng)助手的基本概念。下面我們?cè)賮?lái)看看關(guān)于這類(lèi)應(yīng)用程序的一些技術(shù)要點(diǎn)。移動(dòng)助手應(yīng)用應(yīng)當(dāng)涉及以下技術(shù)項(xiàng)目:

  • 語(yǔ)音到文本(簡(jiǎn)稱(chēng)STT)引擎
  • 文本到語(yǔ)音(簡(jiǎn)稱(chēng)TTS)引擎
  • 標(biāo)簽(智能)
  • 降噪引擎
  • Voice Biometrics,語(yǔ)音生物識(shí)別技術(shù)
  • Speech Compression Engine,語(yǔ)音壓縮引擎
  • 應(yīng)答用戶(hù)界面
  • STT: Speech2Text引擎能夠?qū)?lái)自用戶(hù)的語(yǔ)音轉(zhuǎn)化為文本信息。語(yǔ)音內(nèi)容應(yīng)可以來(lái)自語(yǔ)音文件或者數(shù)媒體信息。
  • TTS: Text2Speech引擎能夠?qū)⑽谋緝?nèi)容轉(zhuǎn)化為語(yǔ)音信息。將回答文本轉(zhuǎn)化為語(yǔ)音形式非常重要,在用戶(hù)駕車(chē)等特殊情況下尤其如此。
  • 標(biāo)簽: 由STT創(chuàng)建出的文本內(nèi)容有時(shí)候會(huì)比較復(fù)雜。標(biāo)簽技術(shù)的介入能夠快速識(shí)別出用戶(hù)希望通過(guò)語(yǔ)音表達(dá)的主要意見(jiàn)。舉例來(lái)說(shuō),如果用戶(hù)詢(xún)問(wèn)明天應(yīng)該穿什么樣的衣物,標(biāo)簽引擎會(huì)將信息記入天氣或者日程表標(biāo)簽。
  • 降噪引擎: 用戶(hù)輸入的語(yǔ)音信息有時(shí)候不太清晰,其中混入的噪音(例如空調(diào)機(jī)噪音)可能影響識(shí)別效果。降噪引擎會(huì)從語(yǔ)音中將白噪音消除掉。
  • 語(yǔ)音生物識(shí)別技術(shù): 移動(dòng)助手能夠提供基于賬戶(hù)的細(xì)節(jié)信息,例如信用卡月度報(bào)告等。跟金錢(qián)掛鉤的當(dāng)然是大事,因此身份識(shí)別機(jī)制就顯得極為重要。語(yǔ)音生物識(shí)別技術(shù)正是身份驗(yàn)證方案中的一種。通過(guò)這種技術(shù),移動(dòng)助手能夠驗(yàn)證使用者的身份,從而決定是否允許其進(jìn)行系統(tǒng)操作。
  • 語(yǔ)音壓縮引擎: 如果助手工作起來(lái)速度緩慢,用戶(hù)很可能由于失去耐心轉(zhuǎn)而打開(kāi)瀏覽器去網(wǎng)上尋找答案,這就讓大家的心血付之東流了?;ヂ?lián)網(wǎng)通信狀態(tài)非常重要,而傳輸過(guò)程中所使用的數(shù)據(jù)包大小也同樣關(guān)鍵。小數(shù)據(jù)包的傳輸速度更快、獲取結(jié)果的速度也更為出色。有鑒于此,一款優(yōu)秀的移動(dòng)助手應(yīng)用必須具備語(yǔ)音壓縮引擎。客戶(hù)端需要通過(guò)發(fā)送語(yǔ)音壓縮包來(lái)實(shí)現(xiàn)快速反應(yīng)。不過(guò)語(yǔ)音壓縮與普通壓縮有所區(qū)別,這是因?yàn)檎Z(yǔ)音文件中并不存在我們平時(shí)所見(jiàn)的重復(fù)數(shù)據(jù)。大家最好選用G711壓縮算法,它的勝出主要因?yàn)檫@種算法不會(huì)造成數(shù)據(jù)丟失。
  • 應(yīng)答用戶(hù)界面: 在服務(wù)器發(fā)回處理結(jié)果后,應(yīng)用會(huì)播放一段語(yǔ)音應(yīng)答,而設(shè)備屏幕中的應(yīng)答界面也需給出對(duì)應(yīng)信息提供。我個(gè)人的建議是,請(qǐng)不要使用本機(jī)組件,因?yàn)檫@樣會(huì)給應(yīng)用造成限制。最好采用基于網(wǎng)絡(luò)的用戶(hù)界面,這種應(yīng)用界面能夠更方便地在不同系統(tǒng)平臺(tái)中正確運(yùn)作。

移動(dòng)助手架構(gòu)解析

移動(dòng)設(shè)備與主服務(wù)器之間必然存在通信流,因?yàn)橛脩?hù)當(dāng)然不希望在使用應(yīng)用的同時(shí)還要苦等語(yǔ)音數(shù)據(jù)下載完成。對(duì)于助手類(lèi)應(yīng)用而方,速度的重要性不言而喻——速度越快、用戶(hù)的使用感受也就越自然。在理想狀況下,用戶(hù)甚至?xí)械阶约合袷钦娴脑谂c客戶(hù)代表或者助理開(kāi)展交流。

當(dāng)用戶(hù)按下按鈕、通過(guò)客戶(hù)端提出問(wèn)題,客戶(hù)端會(huì)立即將問(wèn)題一字節(jié)一字節(jié)地提交至主服務(wù)器(Main Server)。主服務(wù)器又將數(shù)據(jù)發(fā)送至STT服務(wù)器(STT Server),STT服務(wù)器從語(yǔ)音中整理出文本內(nèi)容,然后將其傳回主服務(wù)器。接下來(lái),主服務(wù)器將文本發(fā)送至標(biāo)簽服務(wù)器(Tagging Server),旨在了解用戶(hù)的實(shí)際需要。標(biāo)簽服務(wù)器為該條請(qǐng)求創(chuàng)建標(biāo)簽,例如“weather_info”。標(biāo)簽被發(fā)回之后,主服務(wù)器再次負(fù)責(zé)將標(biāo)簽信息傳送至信息服務(wù)器(Information Server)。如果標(biāo)簽內(nèi)容涉及身份驗(yàn)證機(jī)制,那么安全服務(wù)器(Security Server)將率先對(duì)其進(jìn)行檢查,然后才放行至信息服務(wù)器。最后,響應(yīng)結(jié)果進(jìn)入主服務(wù)器,主服務(wù)器據(jù)此創(chuàng)建響應(yīng)文本、響應(yīng)圖像以及語(yǔ)音文本(借助TTS服務(wù)器)并將響應(yīng)結(jié)果發(fā)送至移動(dòng)設(shè)備。

信息服務(wù)器可以與第三方服務(wù)器進(jìn)行通信,以獲取某些原本并未存儲(chǔ)在信息服務(wù)器當(dāng)中的資訊。安全服務(wù)器則可以包含多種身份驗(yàn)證技術(shù),例如語(yǔ)音生物識(shí)別技術(shù)、IMSI-IP半徑查找、賬號(hào)密碼認(rèn)證等等。

#p#

應(yīng)答用戶(hù)界面 

如果大家打算利用本機(jī)組件開(kāi)發(fā)應(yīng)答界面,那么最終軟件成果將很難在不同類(lèi)型的客戶(hù)機(jī)上順利實(shí)現(xiàn)顯示格式與項(xiàng)目滾動(dòng)的統(tǒng)一效果。我個(gè)人建議大家創(chuàng)建一套自定義Web視圖,這樣會(huì)讓?xiě)?yīng)答格式的添加變得更為輕松。

上面圖片顯示的是SiriWebView在屏幕中的顯示效果。Web視圖可由用戶(hù)任意滾動(dòng),而且當(dāng)新應(yīng)答出現(xiàn)后、整個(gè)視圖會(huì)自動(dòng)向上移動(dòng)。

在本節(jié)中,我將向大家簡(jiǎn)要介紹自己編寫(xiě)SiriWebView的過(guò)程。在這里大家將看到關(guān)于web視圖的所有示例項(xiàng)目。向其它平臺(tái)的用戶(hù)們說(shuō)聲抱歉,此處所舉的范例只適用于A(yíng)ndroid平臺(tái)。

首先,創(chuàng)建一個(gè)新類(lèi),并將其命名為SiriWebView。它基本上屬于由基本Android web視圖做出的擴(kuò)展。這個(gè)類(lèi)應(yīng)該包含并覆蓋OnDraw函數(shù),另外我們還應(yīng)向其中添加兩個(gè)新函數(shù)。其一用于創(chuàng)始化,其二則用于添加新應(yīng)答內(nèi)容。以下代碼片段顯示的就是如何添加新應(yīng)答內(nèi)容。

  1. public void AddNewCallOut(String message, Boolean ismsgResponse) { 
  2.         elementId = elementId + 1
  3.         StringBuilder messageBuilder = new StringBuilder(); 
  4.  
  5.         if (!message.contentEquals("")) { 
  6.  
  7.             if (!ismsgResponse) { 
  8.                 messageBuilder 
  9.                         .append("<table class='bubble-gray' cellspacing='0' cellpadding='0'><tr><td class='head'></td></tr>"); 
  10.                 messageBuilder 
  11.                         .append("<tr><td class='mid'><div class='txt shadow'>" 
  12.                                 + message + "</div></td></tr>"); 
  13.                 messageBuilder 
  14.                         .append("<tr><td class='foot'></td></tr></table>"); 
  15.             } else { 
  16.                 messageBuilder 
  17.                         .append("<table class='bubble-blue' cellspacing='0' cellpadding='0'><tr><td class='bhead'></td></tr>"); 
  18.                 messageBuilder 
  19.                         .append("<tr><td class='bmid'><div class='txt shadow'>" 
  20.                                 + message + "</div></td></tr>"); 
  21.                 messageBuilder 
  22.                         .append("<tr><td class='bfoot'></td></tr></table>"); 
  23.             } 
  24.  
  25.             loadUrl("javascript:document.getElementById(\"div" + elementId 
  26.                     + "\").innerHTML=\"" + messageBuilder.toString() + "\";"); 
  27.         } 
  28.         StringBuilder jvscr = new StringBuilder(); 
  29.         if (!ismsgResponse) { 
  30.             if (elementId != 1) { 
  31.                 if (!ismsgResponse) { 
  32.                     jvscr.append("var elem = document.getElementById('div" 
  33.                             + (elementId - 1
  34.                             + "');     var x = 0;     var y = 0;     while (elem != null) {         x += elem.offsetLeft;         y += elem.offsetTop;         elem = elem.offsetParent;     } "); 
  35.                     jvscr.append("var endj=500; var i=window.scrollY; for(i=window.scrollY;i<y;i++){ var j=0; var a=0; for(j=0;j<endj;j++) {a=a+1; }  window.scrollTo(x, i); } "); 
  36.                     loadUrl("javascript:" + jvscr.toString()); 
  37.                 } 
  38.             } 
  39.         } 
  40.     } 

該函數(shù)中涉及兩個(gè)參數(shù),分別是message與isResponse。大家可以在需要添加新應(yīng)答內(nèi)容時(shí)隨意寫(xiě)入消息字串,并設(shè)定isResponse參數(shù)的值以調(diào)用該函數(shù)。該參數(shù)的作用是改變應(yīng)答信息的字體顏色并滾動(dòng)屏幕。在函數(shù)的第一行中,大家可以看到elementId參數(shù)。該參數(shù)對(duì)于對(duì)象的滾動(dòng)處理非常重要。

在創(chuàng)建好自己的界面組件后,大家可以將成果添加到main_activity.xml當(dāng)中,如下所示。

  1. <com.example.siriui.SiriWebView 
  2.           android:id="@+id/webview" 
  3.           android:layout_width="fill_parent" 
  4.           android:layout_height="fill_parent" 
  5.           android:keepScreenOn="true" 
  6.         android:layout_marginTop="0dp" 
  7.         android:layout_gravity="fill" 
  8.           android:layout_marginBottom="0dp" 
  9.           android:layout_marginLeft="0dp" 
  10.           android:layout_marginRight="0dp" 
  11.           android:scrollbars="horizontal" 
  12.            /> 

最終效果是什么樣?大家可以參照前面給出的截圖。

責(zé)任編輯:徐川 來(lái)源: 51CTO
相關(guān)推薦

2012-04-25 22:56:10

Android

2022-09-19 00:37:13

SaaS云計(jì)算開(kāi)發(fā)

2012-04-26 22:32:01

Android

2018-12-11 11:41:14

物聯(lián)網(wǎng)應(yīng)用程序IOT

2013-11-19 15:35:01

2021-12-08 07:31:40

微服務(wù)架構(gòu)程序

2021-11-24 09:00:00

云計(jì)算開(kāi)發(fā)應(yīng)用

2011-02-22 14:42:52

AndroidPad

2009-07-17 16:09:29

Swing桌面應(yīng)用程序

2015-09-06 09:17:31

2012-02-08 15:06:31

ibmdw

2020-08-25 14:03:20

應(yīng)用程序屏蔽應(yīng)用程序內(nèi)保護(hù)網(wǎng)絡(luò)攻擊

2013-02-21 14:15:41

開(kāi)發(fā)Tizen

2013-02-21 14:14:40

開(kāi)發(fā)Tizen

2024-01-18 07:53:37

2013-02-22 09:28:45

MEAP軟件移動(dòng)應(yīng)用開(kāi)發(fā)HTML5

2012-04-26 13:48:56

iPhone應(yīng)用發(fā)布Ad Hoc

2011-05-24 16:09:57

Androi

2015-01-06 09:59:59

云應(yīng)用程序Java開(kāi)發(fā)SQL

2009-11-12 11:06:38

VS創(chuàng)建MFC應(yīng)用程序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)