專利名稱:動(dòng)態(tài)軟鍵盤的制作方法
動(dòng)態(tài)軟鍵盤背景當(dāng)前可以獲得許多不同類型的移動(dòng)計(jì)算設(shè)備,它們通常在小型封裝內(nèi)提供大量的 計(jì)算能力。然而,移動(dòng)設(shè)備面臨的一個(gè)挑戰(zhàn)是數(shù)據(jù)錄入。用戶習(xí)慣了經(jīng)由鍵盤錄入數(shù)據(jù),鍵 盤可以是大型且笨重的,通常比移動(dòng)計(jì)算設(shè)備本身還要大。一些移動(dòng)計(jì)算設(shè)備通過使用軟 鍵盤來解決這一問題,軟鍵盤是顯示在移動(dòng)設(shè)備的顯示器上的鍵盤并且其允許用戶選擇所 顯示的鍵(例如,使用指示筆、用戶的手指等)。不幸的是,由于缺少物理上分開的鍵并且軟 鍵盤通常是小尺寸的,所以用戶仍然難以選擇軟鍵盤上的鍵。概述提供本概述是為了以簡化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些概 念。本概述并不旨在標(biāo)識出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限定 所要求保護(hù)的主題的范圍。本文討論了動(dòng)態(tài)軟鍵盤。根據(jù)一個(gè)或多個(gè)方面,用戶輸入是經(jīng)由軟鍵盤接收的,該 軟鍵盤包括多個(gè)鍵。獲得描述軟鍵盤的當(dāng)前輸入環(huán)境的信息,并且作出關(guān)于該用戶輸入旨 在選擇該多個(gè)鍵中的哪一個(gè)或多個(gè)鍵的判定。這一判定是至少部分地基于當(dāng)前輸入環(huán)境來 作出的。附圖簡述在全部附圖中,使用相同的標(biāo)號來指示相同的特征。
圖1是示出根據(jù)一個(gè)或多個(gè)實(shí)施例的實(shí)現(xiàn)動(dòng)態(tài)軟鍵盤的示例計(jì)算設(shè)備的框圖。圖2示出根據(jù)一個(gè)或多個(gè)實(shí)施例的顯示軟鍵盤的示例顯示設(shè)備。圖3示出根據(jù)一個(gè)或多個(gè)實(shí)施例的實(shí)現(xiàn)動(dòng)態(tài)軟鍵盤的示例系統(tǒng)。圖4是示出根據(jù)一個(gè)或多個(gè)實(shí)施例的用于動(dòng)態(tài)軟鍵盤的示例過程的流程圖。圖5示出根據(jù)一個(gè)或多個(gè)實(shí)施例的可被配置成實(shí)現(xiàn)動(dòng)態(tài)軟鍵盤的示例計(jì)算設(shè)備。詳細(xì)描述本文討論了動(dòng)態(tài)軟鍵盤。將軟鍵盤用戶界面顯示給用戶。還獲得描述軟鍵盤用戶 界面的當(dāng)前輸入環(huán)境的各種信息。描述當(dāng)前輸入環(huán)境的這一信息可包括例如描述用戶正在 錄入的數(shù)據(jù)的當(dāng)前類型的信息(例如,電子郵件地址、郵政編碼、城市等)、描述用戶通常使 用的語言的信息、用戶通常錄入的數(shù)據(jù)、物理操作環(huán)境(例如,在桌上、在運(yùn)動(dòng)行走中、在移 動(dòng)的汽車中,等等)、靠近數(shù)據(jù)輸入域的字符和/或詞,等等。描述當(dāng)前用戶輸入環(huán)境的這一 信息被用來檢測在接收到用戶輸入時(shí)用戶旨在選擇軟鍵盤的哪一(些)鍵。動(dòng)態(tài)軟鍵盤因 而可有助于用戶輸入速度和用戶滿意度。圖1是示出根據(jù)一個(gè)或多個(gè)實(shí)施例的實(shí)現(xiàn)動(dòng)態(tài)軟鍵盤的示例計(jì)算設(shè)備100的框 圖。計(jì)算設(shè)備100可以是各種不同設(shè)備中的任一種。例如,計(jì)算設(shè)備100可以是臺式計(jì)算 機(jī)、移動(dòng)站、娛樂裝置、通信地耦合到顯示設(shè)備的機(jī)頂盒、電視機(jī)、無線電話、數(shù)碼相機(jī)、游戲 控制臺、汽車計(jì)算機(jī)等等。因而,計(jì)算設(shè)備100的范圍可以是從具有充足存儲器和處理器資 源的全資源設(shè)備(如個(gè)人計(jì)算機(jī)、游戲控制臺)到具有有限存儲器和/或處理資源的低資 源設(shè)備(如傳統(tǒng)機(jī)頂盒、手持式游戲控制臺)。
計(jì)算設(shè)備100包括軟鍵盤控制模塊102和預(yù)測鍵盤模塊104。軟鍵盤控制模塊102 生成軟鍵盤108以顯示給用戶。軟鍵盤108是在顯示設(shè)備上顯示的用戶界面。如以下更詳 細(xì)地討論地,軟鍵盤108包括可由用戶選擇的多個(gè)鍵。計(jì)算設(shè)備100可包括顯示組件,經(jīng)由 該顯示組件可以顯示軟鍵盤108或另選地可以向可顯示軟鍵盤108的另一設(shè)備或組件輸出 信號或數(shù)據(jù)。軟鍵盤108包括多個(gè)鍵,這些鍵可被安排成各種不同布局中的任一種且可以與各 種不同字母數(shù)字字符、日本漢字符號、字符和詞語組(例如,“http://”、“WWW. ”等)、其他符 號等等中的任一種相對應(yīng)。各鍵的一種示例布局是QWERTY布局,但可作為替換來提供其他 布局。另外,軟鍵盤108是動(dòng)態(tài)的。這一動(dòng)態(tài)性質(zhì)指的是預(yù)測鍵盤模塊104的行為隨時(shí)間 改變和/或顯示成軟鍵盤108的用戶界面隨時(shí)間改變。如以下更詳細(xì)地討論的,這一改變 可包括鍵盤布局的改變、與各鍵相對應(yīng)的不同字母數(shù)字字符或符號的改變、軟鍵盤108上 的哪些位置與哪些鍵相對應(yīng)的改變、擊中目標(biāo)邏輯的改變,等等。軟鍵盤108被顯示在顯示設(shè)備上,并且用戶輸入也是經(jīng)由這一顯示設(shè)備來錄入 的。在一個(gè)或多個(gè)實(shí)施例中,顯示軟鍵盤108的顯示設(shè)備是或包括觸摸屏或觸摸墊,通過用 戶觸摸顯示設(shè)備中顯示軟鍵盤108的各鍵的區(qū)域或進(jìn)入該區(qū)域的物理鄰近區(qū)域內(nèi)可經(jīng)由 該觸摸屏或觸摸墊來錄入用戶輸入。這一觸摸或接近物理鄰近區(qū)域可以使用指示筆、筆、手 指等來作出。在其他實(shí)施例中,使用其他定點(diǎn)設(shè)備而非觸摸屏或觸摸墊??梢允褂酶鞣N其 他定點(diǎn)設(shè)備中的任一種來導(dǎo)航指針并使用軟鍵盤108錄入輸入,這些定點(diǎn)設(shè)備包括相對定 點(diǎn)設(shè)備,如鼠標(biāo)、拇指操縱桿(thumbstick)、跟蹤墊(trackpad)、跟蹤球等。也可使用其他 類型的定點(diǎn)設(shè)備,包括絕對斷開的定點(diǎn)設(shè)備,如筆圖形輸入板。這些各種定點(diǎn)設(shè)備通常包括 可由用戶啟動(dòng)來選擇軟鍵盤108的特定位置的一個(gè)或多個(gè)按鈕或其他選擇機(jī)制(例如,在 指針位于軟鍵盤108的所需區(qū)域上方時(shí),用戶可按下鼠標(biāo)按鈕)。不需要具有與經(jīng)由其錄入 用戶輸入的軟鍵盤108相對應(yīng)的物理鍵的任何分開的物理鍵盤。圖2示出根據(jù)一個(gè)或多個(gè)實(shí)施例的顯示軟鍵盤202的示例顯示設(shè)備200。軟鍵盤 202可以是例如圖1的軟鍵盤108??梢悦靼?,示例布局和與軟鍵盤202的各鍵相對應(yīng)的字 母數(shù)字字符只是示例,并且各種不同布局中的任一種和/或?qū)?yīng)字符或符號可以如上所述 地使用。在圖2的示例中,軟鍵盤202不占據(jù)顯示設(shè)備200的所有顯示區(qū)域,從而為要顯示 給設(shè)備200的用戶的其他信息留下了空間?;蛘?,軟鍵盤202可以占據(jù)顯示設(shè)備200的所有 或幾乎所有顯示區(qū)域。軟鍵盤202還可任選地包括用于隱藏和顯示功能的用戶界面機(jī)制, 從而允許在某些時(shí)間隱藏鍵盤202以免被看到。如上所述,可以使用各種不同定點(diǎn)設(shè)備中的任一種來在軟鍵盤202上錄入輸入。 作為定點(diǎn)設(shè)備的示例,圖2示出用戶可用來觸摸鍵盤202的特定鍵或在其上懸停的指示筆 204。在用戶觸摸鍵盤202的特定區(qū)域時(shí)(使用指示筆204或另一定點(diǎn)設(shè)備所控制的指針), 或在鍵盤202的特定區(qū)域上方移動(dòng)指示筆204(或其他指針)時(shí),自動(dòng)地檢測用戶通過觸摸 或移動(dòng)指示筆或其他定點(diǎn)設(shè)備而旨在選擇的特定鍵。如以下更詳細(xì)地討論的,執(zhí)行這一自 動(dòng)檢測的方法是至少部分地基于當(dāng)前輸入環(huán)境的。在一個(gè)或多個(gè)實(shí)施例中,顯示設(shè)備200包括允許用戶觸摸顯示設(shè)備200的不同區(qū) 域或?qū)⒅甘竟P移動(dòng)到該區(qū)域附近以允許用戶錄入用戶輸入的觸摸屏或觸摸墊。這樣的觸摸 屏或觸摸墊可以是電磁輸入設(shè)備、電容輸入設(shè)備、電阻輸入設(shè)備、表面聲波輸入設(shè)備、光學(xué)成像輸入設(shè)備,等等。這樣的觸摸屏或觸摸墊對本領(lǐng)域技術(shù)人員而言是公知的??梢悦靼祝?如果使用其他定點(diǎn)設(shè)備(如鼠標(biāo)、筆圖形輸入板等),則顯示設(shè)備200不必包括觸摸屏或觸摸墊。返回圖1,軟鍵盤控制模塊102還接收用戶輸入110。用戶輸入110指的是對軟鍵 盤108的特定位置的選擇。如上所述,這一選擇可以使用指示筆、筆、手指、定點(diǎn)設(shè)備所控制 的指針等來作出。用戶輸入110通常被模塊102表示成標(biāo)識用戶所選擇的軟鍵盤108中的 位置的一組一個(gè)或多個(gè)坐標(biāo)(例如,X-Y坐標(biāo)、X-Y-Z坐標(biāo)等)。如上所述,這一選擇可包括 觸摸觸摸屏或觸摸墊、或移動(dòng)到該觸摸屏或觸摸墊的接近鄰近區(qū)域、或來自其他定點(diǎn)設(shè)備 的其他輸入。X和Y坐標(biāo)分別是指輸入表面(例如,觸摸屏、觸摸墊、筆圖形輸入板的表面 等)的水平和垂直位置。Z坐標(biāo)表示距輸入表面的距離,并且可被用來確定用戶是否懸停在 輸入表面的一部分的上方。在一個(gè)或多個(gè)實(shí)施例中,用戶輸入110是數(shù)據(jù)流(例如,X-Y坐標(biāo)流、X-Y-Z坐標(biāo)流 等)。這一數(shù)據(jù)流包括傳入跡線、一個(gè)或多個(gè)落筆跡線、以及外出跡線中的一個(gè)或多個(gè)。傳 入跡線指的是在定點(diǎn)設(shè)備擊中表面之前(或在用戶啟動(dòng)選擇機(jī)制之前)的坐標(biāo)流。落筆跡 線指的是定點(diǎn)設(shè)備在表面上所擊中的位置(或在用戶啟動(dòng)選擇機(jī)制時(shí)指針?biāo)幍奈恢?。 通常,存在單個(gè)落筆跡線,但可接收到多個(gè)落筆跡線(例如,在筆擊中表面時(shí)用戶將筆彈回 的情況下)。外出跡線指的是在定點(diǎn)設(shè)備離開表面時(shí)(或在用戶啟動(dòng)選擇機(jī)制之后)的坐 標(biāo)流。預(yù)測鍵盤模塊104從軟鍵盤控制模塊102接收用戶輸入110。預(yù)測鍵盤模塊104 基于用戶輸入110和描述軟鍵盤108的當(dāng)前輸入環(huán)境的信息兩者來確定用戶使用用戶輸入 110旨在選擇軟鍵盤108的哪一個(gè)或多個(gè)鍵。如以下更詳細(xì)地討論的,這一當(dāng)前輸入環(huán)境描 述其中顯示軟鍵盤108的環(huán)境的各個(gè)方面,如用戶正在錄入的數(shù)據(jù)的當(dāng)前類型(例如,電子 郵件地址、郵政編碼、城市等)、軟鍵盤108的用戶通常使用的語言、軟鍵盤108的用戶通常 錄入的數(shù)據(jù),等等。在一個(gè)或多個(gè)實(shí)施例中,預(yù)測鍵盤模塊104還基于用戶輸入110和/或描述軟鍵 盤108的當(dāng)前輸入環(huán)境的信息來確定要對軟鍵盤108作出的改變。如以下更詳細(xì)地討論 的,這些改變可以是鍵盤布局的改變和/或與各個(gè)鍵相對應(yīng)的不同字母數(shù)字字符或符號的 改變。圖3示出根據(jù)一個(gè)或多個(gè)實(shí)施例的實(shí)現(xiàn)動(dòng)態(tài)軟鍵盤的示例系統(tǒng)。系統(tǒng)300可以是 例如圖1的計(jì)算設(shè)備100。系統(tǒng)300包括軟鍵盤控制模塊302 (其可以是圖1的軟鍵盤控制 模塊102)和預(yù)測鍵盤模塊304(其可以是圖1的預(yù)測鍵盤模塊104)。模塊302和304可被 實(shí)現(xiàn)成同一設(shè)備的一部分,或另選地可由不同的設(shè)備來實(shí)現(xiàn)。另外,模塊302和304中的每 一個(gè)本身可由單個(gè)設(shè)備來實(shí)現(xiàn)或另選地由多個(gè)設(shè)備來實(shí)現(xiàn)。軟鍵盤控制模塊302生成軟鍵盤308并接收用戶輸入310 (與圖1的軟鍵盤108 和用戶輸入110類似)。用戶輸入310是軟鍵盤308的用戶作出的選擇,該選擇是對軟鍵 盤308的特定一個(gè)或多個(gè)位置的選擇。這一選擇可以用不同的方式來作出,如通過用手指、 筆、指示筆等來觸摸顯示設(shè)備,通過在軟鍵盤的位置上移動(dòng)指針,通過將筆或指示筆移動(dòng)到 顯示設(shè)備的附近,等等。如上所述,這一選擇包括傳入跡線、一個(gè)或多個(gè)落筆跡線、以及外出 跡線中的一個(gè)或多個(gè)。軟鍵盤控制模塊302可以用各種不同的方式中的任一種來表示用戶輸入310。在一個(gè)或多個(gè)實(shí)施例中,用戶輸入310被表示成一組一個(gè)或多個(gè)X-Y坐標(biāo)。該組 X-Y坐標(biāo)在2-維空間中標(biāo)識軟鍵盤308的特定位置。軟鍵盤308的特定位置被確定為原點(diǎn) (例如,軟鍵盤308的左下角、軟鍵盤308的中心,等等),并且X-Y值表示沿X軸和Y軸的 相對于原點(diǎn)的位置。另外,在一個(gè)或多個(gè)實(shí)施例中,在其上顯示軟鍵盤308的顯示設(shè)備支持Z軸。這一 Z軸與χ-γ坐標(biāo)的2-維空間正交。這樣的顯示設(shè)備可以檢測例如位于顯示設(shè)備附近但未觸 摸該顯示設(shè)備的指示筆。指示筆與顯示設(shè)備之間的距離被記錄為Z值。因此,在與這樣的 顯示設(shè)備一起使用時(shí),用戶輸入310被表示成一組一個(gè)或多個(gè)X-Y-Z坐標(biāo)。另外,在一個(gè)或多個(gè)實(shí)施例中,為用戶輸入記錄附加時(shí)間值T。時(shí)間值T指的是用 戶選擇的持續(xù)時(shí)間,如用戶的指示筆觸摸鍵盤308的特定X-Y位置的時(shí)間量、用戶的指示筆 保持距鍵盤308的特定X-Y位置的特定距離Z的時(shí)間量、將指針保持在鍵盤308的特定X-Y 位置上方(在其上懸停)的時(shí)間量,等等。因此,在這樣的實(shí)施例中,用戶輸入310被表示 成一組一個(gè)或多個(gè)X-Y-T坐標(biāo),或另選地被表示成X-Y-Z-T坐標(biāo)。如以下更詳細(xì)地討論的, 時(shí)間值T是對預(yù)測鍵盤引擎320的輸入,并可被用來對用戶所需的文本輸入作出更好預(yù)測。此外,在一個(gè)或多個(gè)實(shí)施例中,可以同時(shí)選擇鍵盤308的多個(gè)位置。該多個(gè)位置可 以是例如同時(shí)選擇(例如,使用兩個(gè)手指)的兩個(gè)或更多個(gè)位置,如“Shift (移位)”鍵加 字母鍵、“Control (控制)”鍵加字母鍵,等等。該多個(gè)位置還可以是從一個(gè)位置到另一個(gè) 位置的移動(dòng)(例如,在一個(gè)位置處用指示筆來觸摸鍵盤308,在顯示設(shè)備上滑動(dòng)指示筆,并 隨后在另一位置處提起指示筆)等。在這些情況下,用戶輸入310被表示成一組多個(gè)坐標(biāo) (例如,x-Y、X-Y-Z、X-Y-T、X-Y-Z-T等)。一個(gè)或多個(gè)坐標(biāo)可任選地還包括標(biāo)識指示筆(或 手指、筆等)在與顯示設(shè)備接觸時(shí)或位于顯示設(shè)備附近時(shí)(例如,距顯示設(shè)備的距離Ζ)正 在沿顯示設(shè)備移動(dòng)的方向的跡線參數(shù)。在一些實(shí)施例中,給定當(dāng)前硬件,用戶在垂直方向上 確定目標(biāo)時(shí)通常具有更多錯(cuò)誤而在水平方向上更加精確。預(yù)測鍵盤模塊304從軟鍵盤控制模塊302接收用戶輸入310,并基于用戶輸入310 和描述軟鍵盤308的當(dāng)前輸入環(huán)境的信息兩者來確定用戶使用用戶輸入310旨在選擇軟鍵 盤308的哪一個(gè)或多個(gè)鍵。在一個(gè)或多個(gè)實(shí)施例中,預(yù)測鍵盤模塊304還至少部分地基于 當(dāng)前輸入環(huán)境來確定要對軟鍵盤308作出的改變。這些改變的指示被發(fā)送到軟鍵盤控制模 塊302,軟鍵盤控制模塊302相應(yīng)地改變軟鍵盤308的顯示。預(yù)測鍵盤模塊304包括預(yù)測鍵盤引擎320、操作模式檢測模塊322、語言字典模塊 324、用戶專用詞典模塊326、上下文映射模塊328、語言檢測模塊330、以及詞和短語η元語 法統(tǒng)計(jì)模塊332。模塊322-332中的每一個(gè)向預(yù)測鍵盤引擎320提供關(guān)于軟鍵盤308的當(dāng) 前輸入環(huán)境的各種信息。預(yù)測鍵盤引擎320進(jìn)而使用關(guān)于當(dāng)前輸入環(huán)境的這一信息來改變 軟鍵盤308 (例如,布局或者與特定鍵相對應(yīng)的字符或符號)并還確定用戶使用用戶輸入 310旨在選擇軟鍵盤308的哪一個(gè)或多個(gè)鍵。預(yù)測鍵盤引擎320輸出用戶使用特定用戶輸入旨在選擇哪一個(gè)鍵的指示340。這 一指示340通常被用于更新軟鍵盤308的用戶界面,并且還可被提供給另一組件(未示出) 以用作字符錄入。這一指示340還可被返回給模塊322-332中的一個(gè)或多個(gè)以幫助確定當(dāng) 前輸入環(huán)境。例如,如以下更詳細(xì)地討論的,用戶專用詞典模塊326可以監(jiān)視用戶所輸入的詞。另外,在一個(gè)或多個(gè)實(shí)施例中,預(yù)測鍵盤引擎340還輸出所預(yù)測的輸入串360,其 是引擎340對用戶正在輸入的特定詞或短語的預(yù)測。輸出這一預(yù)測允許用戶選擇“自動(dòng)完 成”選項(xiàng),在這種情況下輸入所預(yù)測的詞或短語而無需用戶錄入該詞或短語的任何更多字 符。所預(yù)測的輸入串360被提供給軟鍵盤控制模塊302或另選地被提供給系統(tǒng)的另一組件 (未示出)以便可將該所預(yù)測的詞或短語顯示給用戶。用戶可以用不同的方式經(jīng)由軟鍵盤 308來選擇這一所顯示的所預(yù)測的詞或短語,如通過選擇“錄入”鍵、通過選擇“自動(dòng)完成” 鍵、通過選擇所預(yù)測的詞或短語中的特定字符,等等。應(yīng)當(dāng)注意,用戶還可以可任選地只選 擇所預(yù)測的詞或短語的一部分。操作模式檢測模塊322檢測其上顯示軟鍵盤308的設(shè)備的操作模式。操作模式可 包括例如該設(shè)備的物理情況和/或地理位置。物理情況指的是該設(shè)備正被如何使用的物理 描述。這一物理描述可包括例如該設(shè)備是靜止的還是移動(dòng)的,該設(shè)備是否定向在特定方向 上,等等。物理情況可以用不同的方式來確定,如由該設(shè)備的用戶來指定,使用該設(shè)備中的 運(yùn)動(dòng)傳感器,基于該設(shè)備耦合到的外圍設(shè)備或其他組件,基于與無線基站或接入點(diǎn)之間的 通{曰,等等ο地理位置指的是該設(shè)備所處的位置的地理描述。地理位置可以用不同的方式來確 定,如由該設(shè)備的用戶來指定,使用該設(shè)備的全球定位系統(tǒng)(GPS),基于分配給該設(shè)備的地 址(例如,網(wǎng)際協(xié)議(IP)地址),等等。來自操作模式檢測模塊322的描述該設(shè)備的操作模式的信息可由預(yù)測鍵盤引擎 320以各種不同的方式來使用。例如,預(yù)測鍵盤引擎320可以假定在設(shè)備正在移動(dòng)而非靜止 時(shí)更加難以精確地標(biāo)識特定鍵,所以引擎320可以在該設(shè)備正在移動(dòng)時(shí)而非在該設(shè)備靜止 時(shí)向特定鍵分配較大的軟鍵盤308區(qū)域。如以下更詳細(xì)地討論的,這些較大區(qū)域可以與正 顯示在軟鍵盤308上的較大鍵或特定鍵的較大擊中目標(biāo)相對應(yīng)。語言字典模塊324使一個(gè)或多個(gè)語言專用字典對預(yù)測鍵盤引擎320可用。預(yù)測鍵 盤引擎320可以自動(dòng)地嘗試標(biāo)識用戶正在輸入的特定詞或短語,以便可以確定用戶可能輸 入的下一字符(或其他符號)。例如,如果用戶錄入“imi”,則預(yù)測鍵盤引擎320可以自動(dòng) 地標(biāo)識用戶正在嘗試錄入詞“united”,所以用戶輸入的下一字符可能是字母“t”。預(yù)測鍵 盤引擎320可以使用來自不同的模塊322-332的各種信息來嘗試標(biāo)識用戶正在輸入的特定 詞或短語,這些信息之一是用戶通常使用的特定語言。語言字典模塊324提供給預(yù)測鍵盤 引擎320來幫助作出這一判定的一段信息是用戶通常使用的語言的詞和/或短語的字典。用戶通常使用的語言可以用不同的方式來標(biāo)識。例如,該語言可由用戶來指定,可 以是基于系統(tǒng)300的售出位置的默認(rèn)語言(例如,如果系統(tǒng)300是在法國售出的,則默認(rèn)語 言是法語),可以基于用戶的先前輸入(例如,大多數(shù)先前輸入是用英語的,則該語言可以 是英語),可以從另一模塊獲得(如在以下更詳細(xì)地討論的語言檢測模塊330),等等。用戶專用詞典模塊326收集并維護(hù)關(guān)于用戶通常錄入的詞(或其他數(shù)據(jù),如數(shù)字、 符號等)的信息。這一信息可以用各種不同方式來收集和維護(hù)。在一個(gè)或多個(gè)實(shí)施例中, 維護(hù)用戶所錄入的詞和指示這些詞多久被錄入一次的對應(yīng)頻率。這一頻率可以是例如在每 次錄入該詞時(shí)遞增的詞計(jì)數(shù)、指示該詞相對于模塊326所維護(hù)的其他詞多久出現(xiàn)一次的比 率,等等。另外,用戶或管理員(例如,該用戶工作的公司的管理員)可以可任選地安裝新的自定義字典,從而在用戶輸入他們的詞時(shí)來添加這些詞(和/或可任選地包括該用戶的 默認(rèn)詞和頻率)。此外,模塊326所跟蹤或維護(hù)的詞可以隨時(shí)間老化,使得與用戶更新近錄入的詞 相比,具有相同使用頻率但較久之前的詞被標(biāo)識為較不常被用戶使用。這一老化可以用不 同的方式來執(zhí)行,如通過維護(hù)在多久之前(例如,以分鐘、小時(shí)、天等為單位)使用特定詞的 記錄,通過更改(例如,降低)與在至少閾值時(shí)間量內(nèi)未被使用的詞相對應(yīng)的頻率,等等。如上所述,預(yù)測鍵盤引擎320可以自動(dòng)地嘗試標(biāo)識用戶正在輸入的特定詞或短 語。用戶專用詞典模塊326提供給預(yù)測鍵盤引擎320的一段信息是關(guān)于用戶通常錄入的詞 (或其他數(shù)據(jù))的信息。上下文映射模塊328維護(hù)其中用戶可錄入數(shù)據(jù)的特定域到對每一特定域有效的 數(shù)據(jù)類型的映射。例如,如果該域是郵政編碼域,則有效數(shù)據(jù)可以是數(shù)字而非字母。作為另 一示例,如果該域是電子郵件地址域,則有效數(shù)據(jù)可以是字母、數(shù)字、和一些符號(如“@”), 但不是其他符號(如“! ”或“#”)。上下文映射模塊328可以用各種不同方式中的任一種來標(biāo)識連同軟鍵盤308 —起 正在向用戶顯示的特定域。例如,可以分析正在屏幕上顯示的數(shù)據(jù)并標(biāo)識某些域(例如,具 有標(biāo)記“郵編”或“郵政編碼”的域、具有標(biāo)記“電子郵件”或“電子郵件地址”的域,等等)。 作為另一示例,連同軟鍵盤308 —起顯示的數(shù)據(jù)中可包括各種標(biāo)簽或標(biāo)識符,這些標(biāo)簽或 標(biāo)識符向上下文映射模塊328指示正在顯示的特定域。作為又一示例,輸入域可以經(jīng)由系 統(tǒng)300上的操作系統(tǒng)應(yīng)用程序編程接口(API)顯式地聲明它們的存在以及它們的“類型”或 合法輸入限制。特定域的有效數(shù)據(jù)類型可以用不同的方式來標(biāo)識。在一個(gè)或多個(gè)實(shí)施例中,特定 域的有效數(shù)據(jù)類型是在上下文映射模塊328中預(yù)先編程的或以其他方式來向該模塊標(biāo)識 的。例如,與連同軟鍵盤一起顯示的數(shù)據(jù)相對應(yīng)的各種標(biāo)簽、標(biāo)識符、或其他元數(shù)據(jù)可以標(biāo) 識特定域的有效數(shù)據(jù)類型,或可以訪問其他遠(yuǎn)程設(shè)備來獲得特定域的有效數(shù)據(jù)類型。作為 又一示例,可以調(diào)用系統(tǒng)300上的操作系統(tǒng)API來獲得特定域的有效數(shù)據(jù)類型。在其他實(shí) 施例中,上下文映射模塊328可以自動(dòng)地標(biāo)識特定域的一個(gè)或多個(gè)有效數(shù)據(jù)類型。例如,如 果用戶嘗試錄入特定類型的數(shù)據(jù)并且處理該輸入的程序或其他組件向用戶返回了錯(cuò)誤,則 上下文映射模塊328可以知道該類型的數(shù)據(jù)對特定域不是有效的。來自上下文映射模塊328的上下文映射信息可由預(yù)測鍵盤引擎320以各種不同方 式中的任一種來使用。在一個(gè)或多個(gè)實(shí)施例中,預(yù)測鍵盤引擎320確定不旨在使用用戶輸 入310選擇對特定域不是有效的特定類型的數(shù)據(jù)。例如,如果特定域只接受數(shù)字,則預(yù)測鍵 盤引擎320可以確定用戶旨在選擇的鍵將是軟鍵盤308上與用戶輸入310最接近的數(shù)字 鍵。作為又一示例,如果特定域只接受數(shù)字,則預(yù)測鍵盤引擎320可以向軟鍵盤控制模塊 302指示軟鍵盤308要只包括數(shù)字而不包括字母。或者,預(yù)測鍵盤引擎320可以確定有效的特定類型的數(shù)據(jù)與其他類型的數(shù)據(jù)相比 更易于由用戶選擇。例如,如果符號是特定域的有效符號而符號“ !”和“#”不是該域 的有效符號,則預(yù)測鍵盤引擎320所實(shí)現(xiàn)的擊中目標(biāo)邏輯可以增加選擇符號的可能性。 這一可能性可以用不同的方式來增加,如通過使符號的擊中目標(biāo)比“ !”和“#”符號的 大。軟鍵盤308上特定鍵的擊中目標(biāo)指的是軟鍵盤308上與該特定鍵相對應(yīng)的位置。因?yàn)樵谠S多鍵盤上“ !,,和“#”都在符號的兩側(cè),所以更改擊中目標(biāo)大小使得用戶更易于通 過在符號處或接近該符號觸摸軟鍵盤308來選擇符號。對預(yù)測鍵盤引擎320所實(shí) 現(xiàn)的擊中目標(biāo)和擊中目標(biāo)邏輯的使用在以下更詳細(xì)地討論。語言檢測模塊330標(biāo)識系統(tǒng)300的用戶正在使用的語言。該語言可以用不同的方 式來標(biāo)識,如用戶指定該語言,或模塊330自動(dòng)地標(biāo)識該語言。模塊330可以通過例如訪問 系統(tǒng)300的默認(rèn)語言(例如,操作系統(tǒng)所記錄的語言)、訪問上下文映射模塊328來標(biāo)識數(shù) 據(jù)類型和他們的對應(yīng)語言(例如,如果日本漢字符號是有效的數(shù)據(jù)類型,則該語言可被自 動(dòng)地標(biāo)識為日語)等等來自動(dòng)地標(biāo)識該語言。語言檢測模塊330所標(biāo)識的語言可以是系統(tǒng)300的用戶通常使用的語言,或另選 地可以是系統(tǒng)300的用戶針對該用戶正在作出的特定錄入所使用的語言。例如,如果用戶 錄入了部分詞(例如,“imi” ),則語言檢測模塊330可以自動(dòng)地檢測該用戶正在錄入的語 言。這可以是獨(dú)立檢測(例如,僅基于該部分單詞),或另選地可以結(jié)合其他信息(例如,系 統(tǒng)300的用戶通常使用的語言)。詞和短語η元語法統(tǒng)計(jì)模塊332基于部分輸入來標(biāo)識比其他詞或短語更加可能的 詞或短語。這可包括例如基于部分詞輸入來標(biāo)識詞和基于單個(gè)(或多個(gè))詞輸入來標(biāo)識短 語。在一個(gè)或多個(gè)實(shí)施例中,這種標(biāo)識是基于實(shí)際詞(例如,來自語言字典模塊324所提供 的字典)的。例如,如果錄入了詞“united”,則模塊332可以指示詞“states”比詞“run,, 更加可能。在其他實(shí)施例中,模塊332的這種標(biāo)識是基于語法規(guī)則或其他規(guī)則的。例如,兩個(gè) 動(dòng)詞通常不彼此相鄰,所以如果動(dòng)詞作為第一個(gè)詞來錄入,則模塊332可以指示該短語中 的下一個(gè)詞不可能是動(dòng)詞。作為又一示例,模塊332可以確定系統(tǒng)300的用戶經(jīng)常錄入短 語“United States of AmeriCa(美利堅(jiān)合眾國)”,所以模塊332可以確定如果用戶錄入了 "United States”,則與其他詞組合相比,“of America”更可能是該短語中接下來的詞。來自詞和短語η元語法統(tǒng)計(jì)模塊332的標(biāo)識可能的詞或短語的信息可由預(yù)測鍵盤 引擎320用各種不同的方式中的任一種來使用。與以上關(guān)于上下文映射模塊328的討論類 似,標(biāo)識可能的詞或短語的信息可被用來確定不旨在用用戶輸入310選擇特定詞、字母、或 其他符號并且因此不允許錄入這些詞、字母、或其他符號,或者另選地可以更改擊中目標(biāo)以 使其更易于由用戶選擇特定詞、字母、或其他符號。如上所述,預(yù)測鍵盤引擎320從各模塊322-332接收描述當(dāng)前輸入環(huán)境的信息。預(yù) 測鍵盤引擎320使用描述當(dāng)前輸入環(huán)境的這一信息來改變布局和/或與軟鍵盤308的各鍵 相對應(yīng)的字母數(shù)字字符或符號,和/或來確定用戶使用特定用戶輸入旨在選擇哪一個(gè)鍵。 預(yù)測鍵盤引擎320在用戶每次作出對鍵的選擇之后重復(fù)這一改變和/或確定。當(dāng)前輸入環(huán) 境可以在用戶每次選擇了鍵之后改變,并且在用戶每次選擇了鍵之后預(yù)測鍵盤引擎320可 以考慮新的當(dāng)前輸入環(huán)境。如上所述,描述當(dāng)前輸入環(huán)境的信息可以指示某些輸入比其他輸入更有可能。在 一個(gè)或多個(gè)實(shí)施例中,這一信息被用來改變軟鍵盤308的布局。例如,該信息可被用來將軟 鍵盤308的布局從QWERTY布局改變成數(shù)字鍵盤布局以便只包括來自QWERTY布局的某些
進(jìn)J寸寸ο在其他實(shí)施例中,描述當(dāng)前輸入環(huán)境的信息被用來改變哪些字母數(shù)字字符或其他符號與軟鍵盤308的各鍵相對應(yīng)。響應(yīng)于這一改變,軟鍵盤308顯示這些鍵的新的對應(yīng)字 符或符號而非先前顯示的字符或符號,并且對這些鍵之一的選擇使得用戶輸入所顯示的對 應(yīng)字符或符號。例如,軟鍵盤308的一行鍵可以從與數(shù)字相對應(yīng)改變成與符號相對應(yīng)。作 為又一示例,某些鍵可被改變成與某些語言專用字符和/或符號相對應(yīng)。在其他實(shí)施例中,描述當(dāng)前輸入環(huán)境的信息被用來改變軟鍵盤308的各鍵的外 觀。響應(yīng)于這一改變,軟鍵盤308顯示各鍵的不同外觀。例如,可以突出顯示可能的和/或 可能是正在錄入的詞的將來字母的各鍵。作為又一示例,將不產(chǎn)生詞(基于已錄入的字母) 的字母的各鍵將被變暗以幫助在視覺上確定目標(biāo)并減少用戶努力。在其他實(shí)施例中,描述當(dāng)前輸入環(huán)境的信息被用來確定用戶使用特定用戶輸入旨 在選擇哪一個(gè)鍵。包括擊中目標(biāo)邏輯的預(yù)測鍵盤引擎320使用當(dāng)前輸入環(huán)境連同用戶輸入 310來標(biāo)識用戶旨在選擇軟鍵盤308上的哪一特定鍵。預(yù)測鍵盤引擎可以使用當(dāng)前輸入環(huán)境和用戶輸入310的一種方式是更改特定鍵 的擊中目標(biāo)的大小。如上所述,軟鍵盤308上的每一個(gè)鍵可以具有對應(yīng)的擊中目標(biāo),并且預(yù) 測鍵盤引擎320可以將擊中目標(biāo)分配給每一個(gè)鍵。特定鍵的這一擊中目標(biāo)指的是軟鍵盤 308上與該特定鍵相對應(yīng)的位置。特定鍵的擊中目標(biāo)可被更改——預(yù)測鍵盤引擎320可以 增加擊中目標(biāo)的大小以使得軟鍵盤308上的更多位置與該特定鍵相對應(yīng),或預(yù)測鍵盤引擎 320可以減少擊中目標(biāo)的大小以使得軟鍵盤308上的更少位置與該特定鍵相對應(yīng)。增大鍵 的擊中目標(biāo)因而通常使得用戶更易于選擇該鍵,而減小鍵的擊中目標(biāo)通常使用戶更難以選 擇該鍵。應(yīng)當(dāng)注意,這可導(dǎo)致以下情況一個(gè)鍵的擊中目標(biāo)大于相鄰鍵,并且實(shí)際上擴(kuò)展覆 蓋了相鄰鍵的顯示的一部分。例如,假定預(yù)測鍵盤引擎320確定字母“d”可能是用戶的下 一字符輸入??梢栽龃笞帜浮癲”的擊中目標(biāo),同時(shí)可以減小相鄰字母“f”的擊中目標(biāo)。字 母“d”的擊中目標(biāo)可包括其中實(shí)際上在軟鍵盤308上顯示字母“f”的鍵的位置。因此,在該 示例中,如果用戶要在字母“f”的鍵的邊緣按下該位置,則預(yù)測鍵盤引擎320確定字母“d” 是用戶旨在選擇的鍵。這些情況可以出于各種不同的原因而發(fā)生,如在用戶正在走路同時(shí) 進(jìn)行輸入的情況下(在這種情況下,用戶更難以精確地?fù)糁兴桄I)。另外,預(yù)測鍵盤引擎320可以使軟鍵盤308上的某些鍵無效。因此,預(yù)測鍵盤引擎 320不指示旨在用特定用戶輸入選擇無效鍵,而不論該特定用戶輸入是什么。例如,如果確 定“! ”符號是無效的,則預(yù)測鍵盤引擎320不指示旨在用特定用戶輸入選擇“ !”符號,而 不論該特定用戶輸入是什么。預(yù)測鍵盤引擎320可以確定如何改變布局和/或與軟鍵盤308的各鍵相對應(yīng)的字 母數(shù)字字符或符號,和/或用各種不同的方式來確定用戶使用特定用戶輸入旨在選擇哪一 個(gè)鍵。在一個(gè)或多個(gè)實(shí)施例中,預(yù)測鍵盤引擎320是用各種輸入(用戶輸入310和描述當(dāng) 前輸入環(huán)境的各種不同信息的組合)來訓(xùn)練的學(xué)習(xí)系統(tǒng)。這一訓(xùn)練涉及向引擎320提供各 種輸入和正確的答案,以便引擎320可以知道響應(yīng)于該各種輸入應(yīng)該給出什么答案。初始 訓(xùn)練通常由預(yù)測鍵盤引擎320的設(shè)計(jì)者來執(zhí)行,而附加訓(xùn)練可以在系統(tǒng)300的操作期間執(zhí) 行。這一附加訓(xùn)練可以例如基于給予引擎320的指示特定輸出340是否是正確的輸出的反 饋來執(zhí)行。可以使用各種不同學(xué)習(xí)系統(tǒng)中的任一種,包括人工智能系統(tǒng)和其他基于統(tǒng)計(jì)的 系統(tǒng)。例如,這樣的學(xué)習(xí)系統(tǒng)可包括人工神經(jīng)網(wǎng)絡(luò)、貝葉斯推斷系統(tǒng)、k-最接近鄰居算法,
或者,預(yù)測鍵盤引擎320可被實(shí)現(xiàn)成其他系統(tǒng)。例如,可以使用各種統(tǒng)計(jì)分析系統(tǒng) 中的任一種來實(shí)現(xiàn)引擎320以評估用戶輸入310和描述當(dāng)前輸入環(huán)境的各種不同信息。作 為又一示例,可以使用應(yīng)用于用戶輸入310和描述當(dāng)前輸入環(huán)境的各種不同信息的各種其 他規(guī)則、準(zhǔn)則、或權(quán)重來實(shí)現(xiàn)引擎320。因此,可以看到,軟鍵盤308是動(dòng)態(tài)的。在一個(gè)或多個(gè)實(shí)施例中,軟鍵盤308改變 布局和/或與各鍵相對應(yīng)的字母數(shù)字字符或符號,從而造成動(dòng)態(tài)的軟鍵盤。另外,在一個(gè)或 多個(gè)實(shí)施例中,用戶旨在使用特定用戶輸入來選擇哪一個(gè)鍵是可以改變的,從而造成動(dòng)態(tài) 的軟鍵盤。關(guān)于用戶旨在使用特定用戶輸入選擇哪一個(gè)鍵的這樣的改變可以在向用戶顯示 或沒有顯示這樣的改變的指示的情況下作出。圖4是示出根據(jù)一個(gè)或多個(gè)實(shí)施例的用于動(dòng)態(tài)軟鍵盤的示例過程400的流程圖。 過程400由諸如圖3的系統(tǒng)300等系統(tǒng)來執(zhí)行,并可以用軟件、固件、硬件、或其組合來實(shí) 現(xiàn)。該過程被示為指定由一個(gè)或多個(gè)設(shè)備執(zhí)行的操作的一組動(dòng)作,并且其不必限于所示由 各相應(yīng)動(dòng)作執(zhí)行操作的次序。過程400是用于動(dòng)態(tài)軟鍵盤的示例過程;在此包括了參考其 他附圖的對動(dòng)態(tài)軟鍵盤的附加討論。一開始,經(jīng)由軟鍵盤接收用戶輸入(動(dòng)作402)。如上所述,這一用戶輸入是軟鍵盤 的特定一個(gè)或多個(gè)位置。另外,獲得描述當(dāng)前輸入環(huán)境的信息(動(dòng)作404)。這一信息可以 是各種不同類型的信息中的任一種,如以上參考圖3的模塊322-332討論的信息。至少部分地基于在動(dòng)作404獲得的信息來確定用戶輸入旨在選擇的特定一個(gè)或 多個(gè)鍵(動(dòng)作406)。輸出所確定的用戶要選擇的一個(gè)或多個(gè)鍵的指示(動(dòng)作408)。還可 任選地輸出所預(yù)測的輸入串的指示(動(dòng)作410)。另外,在一個(gè)或多個(gè)實(shí)施例中,至少部分地 基于在動(dòng)作404獲得的信息來更改軟鍵盤(動(dòng)作412)。如上所述,這一更改可以是例如改 變布局和/或改變與軟鍵盤的各鍵相對應(yīng)的字母數(shù)字字符或符號。圖5示出根據(jù)一個(gè)或多個(gè)實(shí)施例的可被配置成實(shí)現(xiàn)動(dòng)態(tài)軟鍵盤的示例計(jì)算設(shè)備 500。計(jì)算設(shè)備500可以是例如圖1的計(jì)算設(shè)備100。計(jì)算設(shè)備500包括一個(gè)或多個(gè)處理器或處理單元502、可包括一個(gè)或多個(gè)存儲器 和/或存儲組件506的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)504、經(jīng)由其接收圖1的用戶輸入110 (或 圖3的用戶輸入310)的一個(gè)或多個(gè)輸入/輸出(I/O)設(shè)備508、以及允許各組件和設(shè)備彼 此通信的總線510。計(jì)算機(jī)可讀介質(zhì)504和/或I/O設(shè)備508可作為計(jì)算設(shè)備500的一部 分來包括,或另選地可耦合到計(jì)算設(shè)備500。總線510表示任何若干類型的總線結(jié)構(gòu)中的一 個(gè)或多個(gè),包括存儲器總線或存儲器控制器、外圍總線、加速圖形端口、以及使用各種總線 體系結(jié)構(gòu)的任一種的處理器或局部總線??偩€510可包括有線和/或無線總線。存儲器/存儲組件506表示一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì)。組件506可包括易失性 介質(zhì)(如隨機(jī)存取存儲器(RAM))和/或非易失性介質(zhì)(如只讀存儲器(ROM)、閃存、光盤、 磁盤等等)。組件506可包括固定介質(zhì)(例如,RAM、ROM、固定硬盤驅(qū)動(dòng)器等)以及可移動(dòng) 介質(zhì)(例如閃存驅(qū)動(dòng)器、可移動(dòng)硬盤驅(qū)動(dòng)器、光盤等等)。本文討論的技術(shù)可以用軟件來實(shí)現(xiàn),其中各指令由處理單元502來執(zhí)行??梢悦?白,不同的指令可以存儲在計(jì)算設(shè)備500的不同組件中,如存儲在處理單元502中、存儲在 處理單元502的各種高速緩存存儲器中、存儲在設(shè)備500的其他高速緩存存儲器中(未示出)、存儲在其他計(jì)算機(jī)可讀介質(zhì)上,等等。另外,可以明白,指令被存儲在計(jì)算設(shè)備500中 的位置可以隨時(shí)間改變。一個(gè)或多個(gè)輸入/輸出設(shè)備508允許用戶向計(jì)算設(shè)備500輸入命令和信息,并還 允許向用戶和/或其他組件或設(shè)備呈現(xiàn)信息。呈現(xiàn)給用戶的這一信息可包括圖1的軟鍵盤 108或圖3的軟鍵盤308,輸入設(shè)備的示例包括鍵盤、光標(biāo)或指針控制設(shè)備(例如,鼠標(biāo)、跟 蹤墊、拇指操縱桿、筆圖形輸入板,等等)、話筒、掃描儀、觸摸屏、觸摸墊,等等。輸出設(shè)備的 示例包括顯示設(shè)備(例如監(jiān)視器或投影儀)、揚(yáng)聲器、打印機(jī)、網(wǎng)卡等。各種技術(shù)在此可以在軟件或程序模塊的一般上下文中描述。一般而言,軟件包括 執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。這些模塊 和技術(shù)的實(shí)現(xiàn)可以存儲在某種形式的計(jì)算機(jī)可讀介質(zhì)上或通過某種形式的計(jì)算機(jī)可讀介 質(zhì)傳輸。計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì)算機(jī)訪問的任何一個(gè)或多個(gè)可用介質(zhì)。作為示例而 非限制,計(jì)算機(jī)可讀介質(zhì)可以包括“計(jì)算機(jī)存儲介質(zhì)”和“通信介質(zhì)”?!坝?jì)算機(jī)存儲介質(zhì)”包括以用于存儲諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或 其它數(shù)據(jù)等信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì) 算機(jī)存儲介質(zhì)包括但不限于,RAM、ROM、EEPR0M、閃存或其他存儲器技術(shù)、CD-ROM、數(shù)字多功 能盤(DVD)或其他光盤存儲、盒式磁帶、磁帶、磁盤存儲或其他磁存儲設(shè)備,或者可用于存 儲所需信息并可由計(jì)算機(jī)訪問的任何其他介質(zhì)?!巴ㄐ沤橘|(zhì)”通常用諸如載波或其他傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號來體現(xiàn)計(jì)算機(jī)可 讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)。通信介質(zhì)還包括任意信息傳遞介質(zhì)。術(shù)語“已調(diào) 制數(shù)據(jù)信號”是指以在信號中對信息進(jìn)行編碼的方式來設(shè)置或改變其一個(gè)或多個(gè)特征的信 號。作為示例而非限制,通信介質(zhì)包括有線介質(zhì),諸如有線網(wǎng)絡(luò)或直接線連接,以及無線介 質(zhì),諸如聲學(xué)、RF、紅外線和其他無線介質(zhì)。以上的任一種的組合也包括在計(jì)算機(jī)可讀介質(zhì) 的范圍之內(nèi)。一般而言,本文描述的任何功能或技術(shù)可使用軟件、固件、硬件(例如,固定邏輯 電路)、手動(dòng)處理或這些實(shí)現(xiàn)的組合來實(shí)現(xiàn)。本文使用的術(shù)語“模塊”、“功能”和“邏輯”通 常表示軟件、固件、硬件、或其組合。在軟件實(shí)現(xiàn)的情況下,模塊、功能或邏輯表示當(dāng)在處理 器(例如,一個(gè)或多個(gè)CPU)上執(zhí)行時(shí)實(shí)現(xiàn)特定任務(wù)的程序代碼。該程序代碼可被存儲在一 個(gè)或多個(gè)計(jì)算機(jī)可讀存儲器設(shè)備中,對其的進(jìn)一步描述可參考圖5找到。本文描述的動(dòng)態(tài) 軟鍵盤技術(shù)的各個(gè)特征是平臺無關(guān)的,從而意味著該技術(shù)可在具有各種處理器的各種商用 計(jì)算平臺上實(shí)現(xiàn)。盡管用結(jié)構(gòu)特征和/或方法動(dòng)作專用的語言描述了本主題,但可以理解,所附權(quán) 利要求書中定義的主題不必限于上述具體特征或動(dòng)作。相反,上述具體特征和動(dòng)作是作為 實(shí)現(xiàn)權(quán)利要求的示例形式公開的。
權(quán)利要求
一個(gè)或多個(gè)其上存儲有多個(gè)指令的計(jì)算機(jī)存儲介質(zhì),所述指令在由設(shè)備的一個(gè)或多個(gè)處理器執(zhí)行時(shí)使得所述一個(gè)或多個(gè)處理器經(jīng)由軟鍵盤接收用戶輸入(402),所述軟鍵盤包括多個(gè)鍵;獲得描述所述軟鍵盤的當(dāng)前輸入環(huán)境的信息(404);以及至少部分地基于所述當(dāng)前輸入環(huán)境來確定所述用戶輸入旨在選擇所述多個(gè)鍵中的哪一個(gè)或多個(gè)鍵(406)。
2.如權(quán)利要求1所述的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì),其特征在于,所述用戶輸入由指 示用戶所選擇的所述軟鍵盤的一個(gè)或多個(gè)位置的一組一個(gè)或多個(gè)坐標(biāo)來表示。
3.如權(quán)利要求1所述的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì),其特征在于,描述所述當(dāng)前輸入 環(huán)境的信息包括描述所述設(shè)備的操作模式的信息。
4.如權(quán)利要求3所述的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì),其特征在于,描述所述設(shè)備的操 作模式的信息包括所述設(shè)備的地理位置。
5.如權(quán)利要求1所述的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì),其特征在于,描述所述當(dāng)前輸入 環(huán)境的信息包括語言專用字典。
6.如權(quán)利要求1所述的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì),其特征在于,描述所述當(dāng)前輸入 環(huán)境的信息包括關(guān)于所述設(shè)備的用戶通常錄入的詞的信息。
7.如權(quán)利要求1所述的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì),其特征在于,描述所述當(dāng)前輸入 環(huán)境的信息包括對于其中用戶可錄入數(shù)據(jù)的一個(gè)或多個(gè)域中的每一個(gè)域,將所述域映射到 對該域有效的數(shù)據(jù)類型的信息。
8.如權(quán)利要求1所述的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì),其特征在于,描述所述當(dāng)前輸入 環(huán)境的信息包括描述所述設(shè)備的用戶正在使用的語言的信息。
9.如權(quán)利要求1所述的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì),其特征在于,描述所述當(dāng)前輸入 環(huán)境的信息包括描述基于部分輸入而與其他詞或短語相比更加可能的特定詞或短語的信 肩、ο
10.如權(quán)利要求1所述的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì),其特征在于,描述所述當(dāng)前輸入 環(huán)境的信息包括描述所述設(shè)備的操作模式的信息;語言專用字典;關(guān)于所述設(shè)備的用戶通常錄入的詞的信息;對于其中用戶可以錄入數(shù)據(jù)的一個(gè)或多個(gè)域中的每一個(gè)域,將所述域映射到對該域有 效的數(shù)據(jù)類型的信息;描述所述用戶正在使用的語言的信息;以及描述基于部分輸入而與其他詞或短語相比更加可能的特定詞或短語的信息。
11.如權(quán)利要求1所述的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì),其特征在于,所述指令還使得所 述一個(gè)或多個(gè)處理器至少部分地基于描述所述當(dāng)前輸入環(huán)境的信息來更改所述軟鍵盤。
12.如權(quán)利要求1所述的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì),其特征在于,所述指令還使得所 述一個(gè)或多個(gè)處理器更改所述多個(gè)鍵中的一個(gè)或多個(gè)鍵的擊中目標(biāo)。
13.一種系統(tǒng),包括預(yù)測鍵盤引擎(320);耦合以向所述預(yù)測鍵盤引擎提供描述軟鍵盤的當(dāng)前輸入環(huán)境的信息的一個(gè)或多個(gè)模 土夬(322、324、326、328、330、332);以及所述預(yù)測鍵盤引擎(304)被配置成至少部分地基于描述所述當(dāng)前輸入環(huán)境的信息來更改所述多個(gè)鍵中的一個(gè)或多個(gè)的擊中目標(biāo);以及使用所述經(jīng)更改的擊中目標(biāo)來確定所述系統(tǒng)的用戶選擇了所述軟鍵盤的多個(gè)鍵中的 哪一個(gè)或多個(gè)鍵。
14.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述預(yù)測鍵盤引擎包括人工智能系統(tǒng)。
15.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述預(yù)測鍵盤引擎還被配置成至少部分 地基于描述所述當(dāng)前輸入環(huán)境的信息來確定如何改變所述軟鍵盤的布局。
16.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述一個(gè)或多個(gè)模塊包括用于提供描述所述系統(tǒng)的操作模式的信息的操作模式檢測模塊;以及用于提供關(guān)于所述系統(tǒng)的用戶通常錄入的詞的信息的用戶專用詞典模塊。
17.—種在設(shè)備中實(shí)現(xiàn)的方法,所述方法包括接收指示所述設(shè)備的用戶選擇的軟鍵盤的一個(gè)或多個(gè)位置的一組一個(gè)或多個(gè)坐標(biāo) (402),所述軟鍵盤具有多個(gè)鍵并且所述多個(gè)鍵中的每一個(gè)具有對應(yīng)的擊中目標(biāo);以及至少部分地基于所述一組一個(gè)或多個(gè)坐標(biāo)和使用所述軟鍵盤的當(dāng)前輸入環(huán)境的擊中 目標(biāo)邏輯兩者來確定(406)所述用戶選擇了所述多個(gè)鍵中的哪一個(gè)或多個(gè)。
18.如權(quán)利要求17所述的方法,其特征在于,還包括至少部分地基于所述當(dāng)前輸入環(huán) 境來改變哪些字符、數(shù)字、或符號與所述多個(gè)鍵中的哪些相對應(yīng)。
19.如權(quán)利要求17所述的方法,其特征在于,所述當(dāng)前輸入環(huán)境包括關(guān)于所述設(shè)備的 用戶通常錄入的詞的信息,以及對于其中所述用戶可以錄入數(shù)據(jù)的一個(gè)或多個(gè)域中的每一 個(gè)域,將所述域映射到對該域有效的數(shù)據(jù)類型的信息。
20.如權(quán)利要求17所述的方法,其特征在于,所述當(dāng)前輸入環(huán)境包括描述所述用戶正 在使用的語言的信息和描述基于部分輸入而與其他詞或短語相比更加可能的特定詞或短 語的信息。
全文摘要
根據(jù)動(dòng)態(tài)軟鍵盤的一個(gè)或多個(gè)方面,用戶輸入是經(jīng)由具有多個(gè)鍵的軟鍵盤接收的。獲得描述軟鍵盤的當(dāng)前輸入環(huán)境的信息,并且作出關(guān)于該用戶輸入旨在選擇該多個(gè)鍵中的哪一個(gè)或多個(gè)鍵的判定。這一判定是至少部分地基于當(dāng)前輸入環(huán)境來作出的。
文檔編號G06F3/00GK101932990SQ200980104463
公開日2010年12月29日 申請日期2009年1月9日 優(yōu)先權(quán)日2008年2月4日
發(fā)明者E·M·蓋黛爾, I·C·勒格羅, R·L·湯森, S·R·萊普羅斯 申請人:微軟公司