字)的單個字符,或者可以表示字符的組合。圖形鍵盤的一個示例可以包括傳統(tǒng)的“QWERTY”鍵盤布局。其他示例可以包含用于不同語言、不同字符集或者不同字符布局的字符。如圖1的示例中所示,第一圖形鍵盤14包括用于英語語言的傳統(tǒng)的“QWERTY”鍵盤布局的版本,提供字符鍵以及提供其他功能的各種鍵(例如“ 123”鍵)。
[0024]在一些示例中,文本顯示區(qū)13可以包括在例如文本消息、文檔、電子郵件消息、web瀏覽器等中所包括的字符或者其他圖形內(nèi)容。例如,文本顯示區(qū)13可以包括由用戶經(jīng)由在UI設(shè)備4處所執(zhí)行的手勢而選擇的字符或者其他圖形內(nèi)容。在一些示例中,GUI 12可以包括一個或多個區(qū),諸如密碼區(qū)26??梢员话ㄔ贕UI 12中的其他示例區(qū)包括但不限于URL區(qū)、電子郵件地址區(qū)、顏色區(qū)、日期區(qū)、日期時間區(qū)、本地日期時間區(qū)、月份區(qū)、數(shù)字區(qū)、范圍區(qū)、搜索區(qū)、電話號碼區(qū)、時間區(qū)以及星期區(qū)。這樣的區(qū)可以各自是GUI 12的不同區(qū)。在一些示例中,這樣的區(qū)可以是⑶I 12的單個區(qū)并且可以包括⑶I 12的與文本顯示區(qū)13相同的一個或多個區(qū)。
[0025]UI模型6可以使得UI設(shè)備4顯示第一圖形鍵盤14并且檢測手勢輸入,諸如在UI設(shè)備4的一個或多個位置處所檢測到的手勢輸入,所述位置顯示第一圖形鍵盤4的一個或多個鍵。這樣的手勢輸入可以包括諸如一個或多個輕擊手勢的離散手勢以選擇第一圖形鍵盤14的單獨鍵。在一些示例中,UI設(shè)備4可以檢測一個或多個連續(xù)手勢,使得UI設(shè)備4檢測輸入單元(例如手指、筆、觸控筆)從UI設(shè)備4的第一位置到UI設(shè)備4的第二位置的連續(xù)運動。例如,如圖1中所示,UI設(shè)備4可以檢測包括輸入單元(例如手指)從第一位置30到第二位置32的運動的連續(xù)運動手勢28。UI模塊6可以從UI設(shè)備4接收諸如連續(xù)手勢28的連續(xù)手勢的指示并且可以至少部分地基于該手勢的指示來選擇第一圖形鍵盤14的一個或多個鍵,如下進一步描述。
[0026]輔助鍵盤模塊10可以至少部分地基于輸入上下文來確定顯示包括第二多個鍵的第二圖形鍵盤22。輸入上下文可以包括例如能夠接收輸入的諸如密碼區(qū)26的輸入?yún)^(qū)的識別符。在其他示例中,輔助鍵盤模塊10可以接收一個或多個輸入?yún)^(qū)的識別符的指示,所述輸入?yún)^(qū)諸如密碼區(qū)、URL區(qū)、電子郵件地址區(qū)、顏色區(qū)、日期區(qū)、日期時間區(qū)、本地日期時間區(qū)、月份區(qū)、數(shù)字區(qū)、范圍區(qū)、搜索區(qū)、電話號碼區(qū)、時間區(qū)以及星期區(qū)。識別符可以包括GUI12的活動輸入?yún)^(qū)(例如,當前所選擇的區(qū)、包括活動光標的區(qū)等)的識別符,諸如由超文本標記語言(HTML) 5界面所指定的識別符。
[0027]作為示例,輔助鍵盤模塊10可以接收密碼區(qū)26是⑶I 12的活動區(qū)的指示。此夕卜,輔助鍵盤模塊10可以接收識別密碼區(qū)26作為被配置成接收指定密碼(例如允許使用計算設(shè)備2來訪問應(yīng)用和/或服務(wù)的密碼)的數(shù)據(jù)的GUI 12的區(qū)的密碼去的識別符的指示。響應(yīng)于接收密碼區(qū)26作為GUI 12的活動區(qū)的指示,輔助鍵盤模塊10可以使得UI模塊6輸出第二鍵盤22,以在UI設(shè)備4處顯示。
[0028]在一些示例中,UI模塊6可以輸出第二鍵盤22以在⑶I 12的一部分處顯示,該部分包括一個或多個可顯示區(qū),諸如文本顯示區(qū)13。在一些示例中,UI模塊6可以輸出第二鍵盤22作為可顯示區(qū)中的一個或多個區(qū)的阿爾法混合(例如半透明的)疊加。例如,UI模塊6可以輸出第二鍵盤22作為文本顯示區(qū)13或者諸如一個或多個文本建議區(qū)(未示出)的一個或多個其他區(qū)的阿爾法混合疊加。
[0029]手勢模塊8可以接收在UI設(shè)備4 (例如存在敏感輸入設(shè)備)處所檢測到的連續(xù)手勢28的第一部分34的指示。如圖所示,第一部分34包括輸入單元(例如手指)從對應(yīng)于“P”鍵16的第一位置到對應(yīng)于第一圖形鍵盤14的“A”鍵18的UI設(shè)備4的位置的運動。手勢模塊8可以至少部分地基于連續(xù)手勢28的第一部分34的指示而選擇第一圖形鍵盤14的“A”鍵18,如下進一步描述。
[0030]手勢模塊8可以接收在UI設(shè)備4處所檢測到的連續(xù)手勢28的第二部分36的指示。如圖所示,第二部分36包括輸入單元從對應(yīng)于“A”鍵18的位置到對應(yīng)于“5”鍵24的位置的運動。手勢模塊8可以至少部分地基于連續(xù)手勢28的第二部分36的指示而選擇第二圖形鍵盤22的“5”鍵24。如圖1中進一步所示,手勢模塊8可以繼續(xù)至連續(xù)手勢28的一個或多個部分并且選擇第一圖形鍵盤14和/或第二圖形鍵盤22的一個或多個鍵,諸如第一圖形鍵盤14的“S”鍵20。
[0031]手勢模塊8可以確定包括與所選鍵相關(guān)聯(lián)的一個或多個字符的候選字符串。候選字符串可以包括與第一圖形鍵盤14的鍵相關(guān)聯(lián)的一個或多個字符以及與第二圖形鍵盤22相關(guān)聯(lián)的一個或多個字符。例如,手勢模塊8可以確定候選字符串38。如圖所示,候選字符串38可以包括對應(yīng)于第一圖形鍵盤14的“A”鍵18的“A”字符40以及對應(yīng)于第二圖形鍵盤22的“5”鍵24的“5”字符42。
[0032]以這種方式,計算設(shè)備2可以提高用戶可以提供手勢輸入以使用圖形鍵盤選擇文本的一個或多個字符的容易性。根據(jù)本文所述的技術(shù),用戶可以提供連續(xù)手勢輸入以選擇第一圖形鍵盤中所包括的一個或多個字母字符以及第二圖形鍵盤中所包括的一個或多個非字母字符,而無需離散的手勢輸入以改變圖形鍵盤的模式并且發(fā)起對應(yīng)于非字母字符的可選鍵的顯示。如此,所述技術(shù)可以潛在加快用戶可以提供手勢輸入以使用計算設(shè)備選擇包括字母和非字母文本的組合的文本的速率,由此潛在提高計算設(shè)備的易用性。
[0033]圖2是圖示根據(jù)本公開的一個或多個方面的在圖1中所示的計算設(shè)備的一個示例的進一步細節(jié)的框圖。圖2僅圖示計算設(shè)備2的一個特定示例,并且計算設(shè)備2的許多其他示例可以被使用于其他情況下。
[0034]如圖2的特定示例中所示,計算設(shè)備2包括一個或多個處理器50、一個或多個輸入設(shè)備52、UI設(shè)備4、一個或多個通信單元54、一個或多個輸出設(shè)備56、以及一個或多個存儲設(shè)備58。如圖所示,計算設(shè)備2可以進一步包括UI模塊6、手勢模塊8、輔助鍵盤模塊10以及由計算設(shè)備2(例如由一個或多個處理器50)可執(zhí)行的操作系統(tǒng)62。計算設(shè)備62可以進一步包括鍵區(qū)64和語言模型66。
[0035]組件4、50、52、54、56和58中的每一個均可以相互連接(物理地、通信地和/或操作地)以便在組件間進行通信。在一些示例中,通信信道60可以包括系統(tǒng)總線、網(wǎng)絡(luò)連接、進程間通信的數(shù)據(jù)結(jié)構(gòu)或者用于通信數(shù)據(jù)的任何其他方法。如圖2中的一個示例,組件4、50、52、54、56和58可通過一個或多個通信信道60而耦合。UI模塊6、手勢模塊8以及輔助模塊10也可以彼此以及與諸如鍵區(qū)64和語言模型66的計算設(shè)備2的其他組件通信信息。
[0036]處理器50在一個示例中被配置成實現(xiàn)用于在計算設(shè)備2內(nèi)執(zhí)行的功能和/或處理指令。例如,處理器50可以能夠處理在存儲設(shè)備58中所存儲的指令。處理器50的示例可以包括微處理器、控制器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或者等同的離散或集成邏輯電路中的一個或多個。
[0037]存儲設(shè)備58可以被配置成在操作期間存儲計算設(shè)備2內(nèi)的信息。存儲設(shè)備58在一些示例中被描述為計算機可讀存儲介質(zhì)。在一些示例中,存儲設(shè)備58是暫時存儲器,這表示存儲設(shè)備58的主要目的不是長期存儲。存儲設(shè)備58在一些示例中被描述為易失存儲器,意味著當關(guān)閉計算機時存儲設(shè)備58不保存已存儲的內(nèi)容。易失存儲器的示例包括隨機存取存儲器(RAM)、動態(tài)隨機存取存儲器(DRAM)、靜態(tài)隨機存取存儲器(SRAM)以及現(xiàn)有技術(shù)中已知的其他形式的易失存儲器。在一些示例中,存儲設(shè)備58被用于存儲用于由處理器50執(zhí)行的程序指令。存儲設(shè)備58在一個示例中是由在計算設(shè)備2上運行的軟件或者應(yīng)用(例如輔助鍵盤模塊10)使用以在程序執(zhí)行期間暫時存儲信息。
[0038]存儲設(shè)備58在一些示例中還包括一個或多個計算機可讀存儲介質(zhì)。存儲設(shè)備58可以被配置成存儲比易失存儲器更大量的信息。存儲設(shè)備58可以進一步被配置用于信息的長期存儲。在一些示例中,存儲設(shè)備58包括非易失性存儲元件。這些非易失性存儲元件的示例包括磁性硬盤、光盤、軟盤、快閃存儲器或者電可編程存儲器(EPROM)或者電可擦除可編程存儲器(EEPROM)的形式。
[0039]計算設(shè)備2在一些示例中還包括一個或多個通信單元54。計算設(shè)備2在一個示例中利用通信單元54經(jīng)由諸如一個或多個無線網(wǎng)絡(luò)的一個或多個網(wǎng)絡(luò)與外部設(shè)備進行通信。通信單元54可以是網(wǎng)絡(luò)接口卡,諸如以太網(wǎng)卡、光收發(fā)器、射頻收發(fā)器或者任何其他類型的能夠發(fā)送和接收信息的設(shè)備。這種網(wǎng)絡(luò)接口的其他示例可以包括藍牙、3G和WiFi無線電計算設(shè)備以及通用串行總線(USB)。在一些示例中,計算設(shè)備2利用通信單元54來與諸如服務(wù)器的外部設(shè)備進行無線通信。
[0040]計算設(shè)備2在一個示例中還包括一個或多個輸入設(shè)備52。輸入設(shè)備52在一些示例中被配置成通過觸覺、音頻或者視頻反饋從用戶接收輸入。輸入設(shè)備52的示例包括存在敏感顯示器、存在敏感輸入設(shè)備、鼠標、鍵盤、語音響應(yīng)系統(tǒng)、視頻相機、麥克風(fēng)或者其他任何類型的用于檢測來自用戶的命令的設(shè)備。在一些示例中,存在敏感顯示器包括觸摸敏感屏幕。
[0041]—個或多個輸出設(shè)備56也可以被包括在計算設(shè)備2中。輸出設(shè)備56在一些示例中被配置成使用觸覺、音頻或者視頻刺激向用戶提供輸出。輸出設(shè)備56在一個示例中包括存在敏感顯示器、聲卡、視頻圖形適配器卡或者任何其他類型的用于將信號轉(zhuǎn)換成人類或者機器可理解的適當形式的設(shè)備。輸出設(shè)備56的另外示例包括揚聲器、陰極射線管(CRT)監(jiān)視器、液晶顯示器(LCD)或者任何其他類型的能夠生成用戶可理解的輸出的設(shè)備。
[0042]在一些示例中,UI設(shè)備4可以包括輸入設(shè)備52和/或輸出設(shè)備56的功能。在一個示例中,UI設(shè)備4可以是觸摸敏感屏幕。在圖2的示例中,UI設(shè)備4可以是存在敏感顯示器。在一些示例中,存在敏感顯示器可以檢測在存在敏感顯示器的屏幕處和/或其附近的對象,諸如輸入單元(例如用戶的手指、筆、觸控筆等)。作為一個示例范圍,存在敏感顯示器可以檢測在存在敏感顯示器的物理屏幕的2英寸或更短之內(nèi)的輸入單元。存在敏感顯示器可以確定檢測到輸入單元處的存在敏感顯示器的一個或多個位置(例如(X,y)坐標)。在另一示例范圍內(nèi),存在敏感顯示器可以檢測距離存在敏感顯示器的物理屏幕6英寸或更近的對象,并且其他示例范圍也是可能的。存在敏感顯示器可以使用電容、電感和/或光學(xué)識別技術(shù)來確定由輸入單元所選擇的顯示器的位置。在一些示例中,存在敏感顯示器使用如關(guān)于輸出設(shè)備56所述的觸覺、音頻或者視頻刺激而向用戶提供輸出。
[0043]計算設(shè)備2可以包括操作系統(tǒng)62。操作系統(tǒng)62在一些示例中控制計算設(shè)備2的組件的操作。例如,操作系統(tǒng)62在一個示例中促進UI模塊6、手勢模塊8和/或輔助鍵盤模塊10與處理器50、通信單元54、存儲設(shè)備58、輸入設(shè)備52和輸出設(shè)備56的通信。UI模塊6、手勢模塊8和/或輔助鍵盤模塊10可以每個包括由計算設(shè)備可執(zhí)行的程序指令和/或數(shù)據(jù)。作為一個示例,輔助鍵盤模塊10可以包括使得計算設(shè)備2執(zhí)行在本公開中所述的操作和動作中的一個或多個的指令。
[0044]計算設(shè)備2可以包括語言模型66。語言模型66可以包括詞典。在一些示例中,詞典可以包括詞的列表并且可以包括有關(guān)所列詞的附加信息。詞典可以通過一個或多個數(shù)據(jù)結(jié)構(gòu)表示,諸如由陣列、列表、樹或者其他數(shù)據(jù)結(jié)構(gòu)中的一個或多個表示。例如,語言模型66可以包括以特里數(shù)據(jù)結(jié)構(gòu)存儲的詞典。在一些示例中,語言模型66可以是在計算設(shè)備2上所安裝的默認詞典。在一些示例中,語言模型66可以包括在計算設(shè)備2上所安裝的一組預(yù)定義短語。在其他示例中,語言模型66可以包括多個詞典源,其可以被存儲在計算設(shè)備2處或者被存儲在可經(jīng)由一個或多個通信信道訪問計算設(shè)備2的一個或多個遠程計算設(shè)備處。在一些示例中,語言模型66可以被實施在計算設(shè)備2的固件中。
[0045]語言模型66可以包括語言模型頻率信息,諸如η元語言模型。η元語言模型可以基于序列中之前的項為項的連續(xù)序列中的項X1 (字母、詞、標點符號或者其他定界符)提供概率分布(即Ρ(Χι|Χι (nl),...,Xl O)。例如,雙元語言模型(η元模型,其中η = 2)可以提供字母“i”跟隨在字母序列“th”之后的概率。作為另一示例,雙元語言模型可以提供詞“than”跟隨在詞“better”之后的概率。在一些示例中,語言模型66包括帶有集成的語言模型頻率信息的詞典特里。例如,詞典特里的每個節(jié)點可以包括字母和概率值的表示。
[0046]本公開的技術(shù)可以提高用戶能夠?qū)⑽谋据斎胗嬎阍O(shè)備中的速度。使用本公開的技術(shù),計算