本申請要求2015年6月5日提交的美國臨時申請No.62/171,846的權益,該申請的全部內容具體地通過引用并入本文。
技術領域
本發明的實施例涉及智能地決定當便攜式計算裝置(諸如,智能電話)連接到音頻輸出系統(諸如,汽車無線電音響主機(head unit))時的音頻回放。其他實施例也被描述和要求保護。
背景技術:
現代的汽車音響主機可以通過有線連接(例如,通用串行總線USB電纜)或者通過無線連接(例如,藍牙連接)與便攜式計算裝置(例如,智能電話)連接以播放來自在該便攜式計算裝置上運行的應用的音頻內容,該音頻內容通過車輛的揚聲器系統而被轉換為聲音。通過用戶手動地選擇暫停或停止按鈕、然后選擇播放按鈕,音頻內容的這樣的回放可以被停止,然后被重新開始。當便攜式計算裝置與音響主機斷開連接時,回放也可以自動地停止。在便攜式計算裝置中運行的處理通過更新識別在前臺的當前正在播放音頻的應用的數據結構來監視“最后播放音頻應用”。例子包括音樂播放器應用、播客應用以及音樂流傳輸應用。
當便攜式計算裝置連接到音響主機時,音響主機可以將開始播放音頻的命令發送到便攜式計算裝置。在許多情況下,便攜式計算裝置通過播放來自當前正在前臺運行的應用的音頻來做出響應。一些音響主機將請求存儲在便攜式計算裝置的音樂庫中的歌曲列表,然后將播放該列表中的第一首歌曲(例如,按字母順序的第一首歌曲)的命令發送到便攜式計算裝置。在這兩種情況下,播放來自哪個應用的音頻的決策被過于簡單地確定,并且通常,該決策不滿足用戶的期望。其他音響主機在便攜式計算裝置連接到音響主機時不自動地請求開始音頻回放,而是等待用戶手動地選擇播放來自什么應用的音頻,這可能給用戶造成不便。
附圖說明
本發明的實施例在附圖的圖中以舉例的方式,而非限制的方式被例示說明,在附圖中,相似的附圖標記指示類似的元件。應當指出,在本公開中對“一”或“一個”實施例的論述不一定是對同一個實施例的論述,它們意指至少一個。此外,為了減少附圖的總數,給定的圖可以用于例示說明本發明的多于一個的實施例的特征,結果,對于給定實施例,并非圖中所有的元件都是必需的。
圖1是例示說明根據一些實施例的用于智能地用信號通知音頻回放的處理的流程圖。
圖2是例示說明根據一些實施例的用于用信號通知音頻回放的另一處理的流程圖。
圖3是例示說明根據一些實施例的可以是便攜式計算裝置的裝置的框圖。
圖4例示說明根據一些實施例的便攜式計算裝置中的對于與音頻輸出系統建立的連接的可用音頻回放。
具體實施方式
現在參照附圖來說明本發明的幾個實施例。每當這里描述的實施例的各方面未被明確定義時,本發明的范圍不是僅限于示出的部分,這些部分僅僅意在用于例示說明的目的。此外,雖然闡述了許多細節,但是理解的是,本發明的一些實施例沒有這些細節也可以實施。在其他情況下,沒有對公知的電路、結構和技術進行詳細描述,以便不使該描述的理解模糊。
圖1是例示說明根據一些實施例的用于智能地用信號通知音頻回放的處理的流程圖。該流程圖的操作可以由便攜式計算裝置(例如,智能電話或便攜式音樂播放器)執行。在一個實施例中,當便攜式計算裝置檢測到與音頻輸出系統建立連接時,發起該處理(方框110)。音頻輸出系統可以是車輛的音響主機(其耦合到車輛中的一個或多個揚聲器)、揚聲器塢站(dock)、或能夠將正從便攜式計算裝置播放的音頻內容轉換為聲音的任何系統。在一個實施例中,便攜式計算裝置和音頻輸出系統之間的連接是通過通用串行總線(USB)電纜建立的有線連接。在其他實施例中,連接是無線連接,諸如藍牙連接或Wi-Fi連接。
當檢測到與音頻輸出系統建立連接時,便攜式計算裝置確定在便攜式計算裝置中哪個音頻回放應用最后播放音頻(最近播放音頻)(方框120)。如本文所使用的音頻回放應用是如下這樣的應用,該應用能夠(例如,從音樂文件或其他音頻節目文件)生成數字音頻,并且允許用戶通過停止和重新開始數字音頻的生成來控制數字音頻的生成。音頻回放應用的例子包括播放存儲在便攜式計算裝置本地的音樂內容的音樂播放器應用、流傳輸(例如,通過諸如互聯網的數據網絡)從音樂提供者接收的音樂的音樂流傳輸應用、以及視頻回放應用。在一些情況下,web瀏覽器也可以是音頻回放應用(例如,當它被用來播放音頻或視頻時)。
在一個實施例中,便攜式計算裝置執行對于便攜式計算裝置管理音頻回放的音頻回放控制器程序。在一個實施例中,音頻回放控制器保持跟蹤:1)哪個音頻回放應用最后播放音頻(通過便攜式計算裝置的內置聲音轉換子系統,或者通過外部聲音轉換子系統(僅舉幾個例子,諸如有線/無線連接的耳機、揚聲器塢站或車輛音響主機));以及2)它何時最后播放音頻。在便攜式計算裝置上執行的其他程序可以從音頻回放控制器程序訪問該存儲的信息,以確定哪個音頻回放應用最后播放音頻。
便攜式計算裝置確定在便攜式計算裝置中最后播放音頻的音頻回放應用是否在過去的指定時間量內這樣做(方框130)。這是要找出用戶是否“最近”收聽過來自該音頻回放應用的音頻。例如,便攜式計算裝置可以確定最后播放的音頻回放應用是否在最后八分鐘內這樣做。八分鐘的值是作為例子提供的、而非限制,就這一點而論,該時間間隔可以根據需要配置。如以上所介紹的,音頻回放控制器可以跟蹤最后播放音頻的音頻回放應用何時這樣做,例如,通過將存儲的時間戳與存儲的該應用的標識符相關聯。時間戳可以指示音頻回放由于任何原因而被停止的時間。便攜式計算裝置可以從音頻回放控制器訪問該存儲的信息,以確定最后播放音頻的音頻回放應用是否在過去的指定時間量內這樣做。
如果最后播放音頻的音頻回放應用在過去的指定時間量內(例如,在最后八分鐘內)這樣做,則這表明用戶最有可能最近收聽了該音頻回放應用。因此,有可能的是,用戶現在將會想要繼續收聽該音頻回放應用(當與音頻輸出裝置/系統連接時)。就這一點而論,在便攜式計算裝置中運行的處理用信號通知音頻回放應當從最后播放音頻的音頻回放應用開始。該音頻回放將通過最近與音頻輸出系統建立的連接進行(方框140)。
指出,被信號通知開始音頻回放的應用可能在那時已經在前臺中(在該情況下,正在進行中的音頻回放被路由到與音頻輸出系統的當前連接),或者它可能在后臺中(在該情況下,它將被移至前臺以通過連接播放音頻),或者它可能被關閉(在該情況下,它將被啟動以使得它可以通過連接播放音頻)。
例如,考慮在走向他或她的車輛的同時在連接到他或她的智能電話的耳機上收聽播客的用戶。當用戶靠近車輛時,用戶斷開耳機,這樣停止回放(并且暫停播客),并且在幾分鐘內,在車內安頓好之后,將智能電話連接到車輛的音響主機。在該情況下,有可能的是,用戶將會想要繼續收聽播客。這里描述的實施例在用戶將智能電話連接到車輛的音響主機時將自動地重新開始暫停的播客的回放(通過車輛揚聲器系統)。
另一方面,如果最后播放音頻的音頻回放應用沒有在過去的指定時間量內(例如,在最后八分鐘內)這樣做,則這表明用戶最近沒有收聽該音頻回放應用。因此,有可能的是,用戶將會想要繼續收聽用戶的便攜式計算裝置上一次連接到(現在連接的)音頻輸出系統時用戶收聽的任何音頻回放應用。該信息(即,便攜式計算裝置上一次連接到音頻輸出系統時正在播放的應用的身份)可能已經被音頻回放控制器程序監視,例如,被事先存儲,以供便攜式計算裝置中的其他程序訪問。就這一點而論,在便攜式計算裝置中運行的處理用信號通知音頻回放應當從當便攜式計算裝置先前連接到音頻輸出系統時最后播放音頻的音頻回放應用開始。該音頻回放將通過最近與音頻輸出系統建立的連接進行(方框150)。例如,考慮在開車去工作的同時(通過連接到車輛的音響主機)收聽智能電話上的播客(來自智能電話上的播客應用)的用戶。一旦到達辦公室,用戶將智能電話與車輛斷開連接(其暫停播客),并且在她的桌上開始工作。例如在幾個小時后午餐時間期間,用戶收聽音樂(來自智能電話上的不同于播客應用的音樂回放應用),但不收聽智能電話上的任何其他的音頻回放應用。當用戶在傍晚返回到車輛以便開車回家并且將智能電話連接到車輛的音響主機時,有可能的是,用戶將會想要繼續收聽播客應用,而不是午餐時間的音樂(來自音樂回放應用)。這里描述的實施例在用戶將智能電話連接到車輛的音響主機時將會自動地重新開始來自播客應用的回放。
以上所述的當便攜式計算裝置連接到音頻輸出系統時播放哪個音頻回放應用的決策是啟發式的,因此所述處理可能做出與用戶的期望不匹配的決策。就這一點而論,在另一實施例中,便攜式計算裝置可以為用戶提供用戶接口,以允許用戶選擇將音頻回放決策變為與最初通過啟發法選擇的音頻回放應用不同的音頻回放應用。該用戶接口因此提供用戶可以選擇的“第二選項”,以防在通過啟發法選擇的主選項或第一選項不是用戶期望的選項。圖1用于例示說明該“另一選擇”實施例。
例如,參照圖1,如果在便攜式計算裝置中運行的處理已經決定了從最后播放音頻的音頻回放應用開始音頻回放的主選項(例如,如方框140中那樣),則便攜式計算裝置可以為用戶提供用戶接口,以便將音頻回放決策變為當便攜式計算裝置先前連接到音頻輸出系統時最后播放音頻的應用(方框160)。換句話說,在回放最初按照方框140被(自動地)決定時,用戶然后在方框160中被提示將回放變為第二選項。
類似地,在圖1中所描繪的第二選項的另一例子中,如果在便攜式計算裝置中運行的處理最初決定音頻回放應當來自當便攜式計算裝置先前連接到音頻輸出系統時最后播放音頻的音頻回放應用(例如,如方框150中那樣),則便攜式計算裝置可以為用戶提供將音頻回放決策變為第二選項的用戶接口,其中,該情況下的第二選項是從最后播放音頻的音頻回放應用回放(方框170)。
更一般地,在一個實施例中,以上提及的第二選項可以不同于在圖1的方框160、170中給出的第二選項,并且可以由預測模型(諸如下面參照圖2描述的預測模型)確定。以這種方式,用戶接口為用戶提供如下選項:改變(最初通過啟發法做出的)音頻回放決策、改為開始從與通過啟發法選擇的音頻回放應用不同的音頻回放應用進行回放。
在一個實施例中,便攜式計算裝置可以在音頻輸出系統的顯示器上提供用戶接口。例如,在一個實施例中,用戶接口被作為顯示在車輛音響主機的顯示器上的提示/虛擬按鈕提供。用戶可以輕敲顯示器上的虛擬按鈕(如果顯示器是觸摸顯示器的話),或者致動音響主機的物理按鈕以開始來自第二選項、而不是主選項的音頻回放。在另一實施例中,用戶接口被作為顯示在被構建到便攜式計算裝置中的觸摸屏顯示器上的提示/虛擬按鈕提供。用戶可以輕敲觸摸屏顯示器上的虛擬按鈕,或者致動便攜式計算裝置的物理按鈕以重新開始來自第二選項、而不是主選項的音頻回放。在一個實施例中,用戶接口被作為語音命令接口提供。例如,語音命令應用可以提示用戶是否想要開始來自第二選項、而不是主選項的音頻回放。用戶可以通過對語音命令應用說命令(例如,“是”或“否”)來對語音命令應用做出響應。
圖2是例示說明根據一些實施例的用于智能地開始音頻回放的另一處理的流程圖。該流程圖的操作可以由便攜式計算裝置(例如,智能電話或便攜式音樂播放器)執行。在一個實施例中,當便攜式計算裝置檢測到與音頻輸出系統建立連接時,發起該處理(方框210)。音頻輸出系統可以是車輛的音響主機(其耦合到車輛中的一個或多個揚聲器)、揚聲器塢站、或能夠轉換正從便攜式計算裝置播放和接收的音頻內容的任何系統。便攜式計算裝置和音頻輸出系統之間的連接可以是有線的或無線的(如以上在結合圖1描述的實施例中那樣)。
當檢測到連接被建立時,便攜式計算裝置檢索上下文信息(方框220)。在一個實施例中,上下文信息可以與便攜式計算裝置的周圍狀況(或者其用戶上下文)相關。例如,上下文信息可以與一天中的時間、日期、星期幾、當前地點和/或當前天氣相關。在一個實施例中,上下文信息還可以包括與便攜式計算裝置連接的當前的音頻輸出系統相關的信息。上下文信息可以從便攜式計算裝置的一個或多個組件獲得。例如,上下文信息可以從作為內部數字時鐘操作的軟件代碼和/或硬件裝置、全球定位系統(GPS)裝置或日歷的任何組合獲得。在一個實施例中,上下文信息可以通過經由數據網絡(例如,互聯網)訪問信息而獲得。在另一實施例中,上下文信息可以包括當前的用戶上下文,例如,走路、跑步、開車和鍛煉。
便攜式計算裝置使用預測模型基于上下文信息來識別最有可能被用戶訪問的音頻回放應用(方框230)。預測模型可以例如通過記錄用戶多頻繁地以及在什么情況下播放來自給定音頻回放應用的音頻來學習用戶的音頻回放偏好和行為模式。因此,預測模型可以基于用戶與便攜式計算裝置的歷史交互。預測模型可以利用上下文信息,連同所學習的用戶的音頻回放偏好和行為模式,來預測給定音頻回放應用在當前情況下將被用戶訪問(當與特定音頻輸出系統連接時)的可能性。預測模型可以基于任何合適的預測建模技術和/或機器學習技術。這樣的技術的例子在所附的標題為“基于檢測的觸發事件的應用推薦”的附錄A中給出。
例如,預測模型可能已經從用戶在他或她早上上班時幾乎總是(例如,十次中有九次)播放來自播客應用的新聞播客的用戶過去行為進行學習。就這一點而論,當用戶在早上將他或她的便攜式計算裝置連接到車輛的音響主機時,預測模型可以確定播客應用最有可能被用戶訪問(在存儲在便攜式計算裝置中的音頻回放應用之中)。
便攜式計算裝置開始來自最有可能被用戶訪問的音頻回放應用的音頻回放。該音頻回放將通過最近與音頻輸出系統建立的連接進行(方框240)。因此,便攜式計算裝置基于上下文信息以及所學習的用戶的偏好和/或行為模式智能地做出要播放哪個音頻回放應用的決策。
以上所述的當便攜式計算裝置連接到音頻輸出系統時播放哪個音頻回放應用的決策是可能做出與用戶的期望不匹配的決策的預測。就這一點而論,在一個實施例中,便攜式計算裝置可以為用戶提供允許用戶選擇將音頻回放決策變為與最初通過預測模型選擇的音頻回放應用不同的音頻回放應用的用戶接口。用戶接口因此提供用戶可以選擇的“第二選項”,以防通過預測模型選擇的主選項或第一選項不是用戶期望的選項。
例如,在一個實施例中,便攜式計算裝置通過使用預測模型基于上下文信息識別具有第二高的被用戶訪問的概率的音頻回放應用來確定第二選項(方框250)。便攜式計算裝置然后為用戶提供指示音頻回放應當來自具有第二高的被用戶訪問的概率的音頻回放應用的用戶接口(方框260)。在一個實施例中,第二選項通過啟發法(諸如以上參照圖1描述的啟發法)確定。以這種方式,用戶接口為用戶提供了開始來自與通過啟發法選擇的音頻回放應用不同的音頻回放應用的音頻回放的選項。在一個實施例中,用戶接口可以提供供用戶從中選擇的多于一個的選項。類似于以上參照圖1討論的用戶接口,便攜式計算裝置可以在音頻輸出系統的顯示器(例如,車輛音響主機的顯示器)或者被構建到便攜式計算裝置中的觸摸屏顯示器上提供用戶接口。此外,用戶接口可以被作為語音命令接口提供。
啟發法和預測模型的任何組合可以用于當便攜式計算裝置連接到音頻輸出系統時智能地、自動地(例如,無需來自用戶的播放命令)開始音頻回放。例如,如果預測模型識別具有最高的被用戶訪問的概率(例如,大于90%)的音頻回放應用,則便攜式計算裝置可以決定開始來自該音頻回放應用的音頻回放,而不依賴于啟發法。如果預測模型不能識別具有足夠高的被用戶訪問的概率的音頻回放應用,則便攜式計算裝置可以決定依賴于啟發法來決定調用哪個音頻回放應用。在一個實施例中,便攜式計算裝置可以超控從連接的音頻輸出系統接收的請求播放來自特定音頻回放應用的音頻的命令,而是播放來自如上所述那樣基于啟發法或預測模型選擇的音頻回放應用的音頻。在便攜式計算裝置中運行的這些處理可以提供比音頻輸出系統更智能的決策,因為它們可以考慮到便攜式計算裝置的上下文,例如,其用戶上下文。
在一個實施例中,便攜式計算裝置還可以確定用戶將經由音頻輸出系統播放的內容。一旦音頻回放應用被確定(例如,方框140、150、230),便攜式計算裝置的操作系統可以確定在回放期間將播放的推薦內容(例如,方框140、150和240)。操作系統還可以產生關于確定的音頻回放應用的推薦內容的回放隊列(例如,方框140、150、230)。操作系統還可以產生關于被作為替代方案呈現給用戶的音頻回放應用的推薦內容的回放隊列(例如,方框160、170、260)。例如,在方框160、170、260,當用戶被呈現指示音頻回放應當來自與音頻回放從其開始的音頻回放應用(方框140、150和240)不同的音頻回放應用的用戶接口時,操作系統可以提供推薦內容的回放隊列,并且在用戶接口上顯示來自回放隊列的推薦內容。
內容可以例如是歌曲、唱片集、藝術家、播客的片段等。便攜式計算裝置的操作系統可以確定將被播放的內容,并且構建內容的回放隊列(例如,歌曲隊列、播放列表等)。當音頻回放應用回放內容時,音頻回放應用將詞典(dictionary)發送給操作系統,該詞典包括標識和描述被播放的內容的密鑰和值。操作系統在回放期間動態地更新詞典。密鑰是標識內容的高級元數據(例如,藝術家的姓名),值可以具體地描述內容(例如,歌曲的題目、唱片集、歌曲的持續時間等)。操作系統可以將詞典存儲在便攜式計算裝置中的可供便攜式計算裝置的其他部分訪問的存儲器地點中。例如,在便攜式計算裝置上執行的其他程序(例如,音頻回放應用)可以訪問該存儲器地點來獲得密鑰和值,并且提供該信息(例如,當前播放的歌曲的題目和藝術家)以使其在用戶接口(例如,觸摸屏)上顯示給用戶。該音頻回放應用還可以將內容樹發送給操作系統。內容樹的根可以是藝術家的集合或列表、唱片集的集合、歌曲的集合、播放列表的集合等。如果根是播放列表的集合(例如,“全部播放列表”),則內容樹中的下一級包括全部播放列表的清單(例如,“在路上”、“鍛煉混錄”、“學習音樂”等)。來自被選播放列表(例如,“鍛煉混錄”)的內容樹中的下一級可以包括該播放列表中的全部歌曲的列表。
在一個實施例中,使用來自音頻回放應用的詞典和內容樹,操作系統可以包括分析引擎,該分析引擎編譯正被用戶回放的內容的歷史以及該內容的回放頻率(例如,歌曲、唱片集、藝術家、播客等的播放計數)。內容的歷史還可以編譯用戶回放給定內容(例如,早上回放鍛煉歌曲)的時間或日期。分析引擎可以使用正被回放的內容的歷史和回放頻率來確定推薦內容,并且產生推薦內容的回放隊列。將被播放的內容的推薦以及推薦內容的回放隊列也可以經由用戶接口顯示給用戶以允許用戶選擇將被播放的內容。
在另一個實施例中,分析引擎也可以使用上下文信息來確定推薦內容并且產生推薦內容的回放隊列。例如,分析引擎可以從上下文信息確定用戶正在跑步、用戶在健身房,一天中的時間指示在早上。使用該上下文信息,分析引擎確定用戶的“鍛煉混錄”播放列表中他最頻繁播放的歌曲是推薦內容。此外,分析引擎可以提供“鍛煉混錄”播放列表作為推薦內容的回放隊列。
圖3是例示說明根據一些實施例的裝置的框圖,該裝置可以是便攜式計算裝置。裝置300大體上包括計算機可讀介質302、處理系統304、輸入/輸出(I/O)子系統306、無線電路308以及音頻電路310,音頻電路310包括揚聲器350和麥克風352。這些組件可以由一個或多個通信總線或信號線303耦合。裝置300可以是任何便攜式電子裝置,包括手持計算機、平板計算機、移動電話、膝上型計算機、平板裝置、媒體播放器、個人數字助理(PDA)、密鑰環、汽車鑰匙、接入卡、多功能裝置、便攜式游戲裝置、或包括這些物品中的兩個或更多個的組合的類似裝置。
應當顯而易見的是,圖3中所示的架構僅僅是裝置300的架構的一個例子,裝置300可以具有比所示的組件更多或更少的組件、或組件的不同配置。圖3中所示的各種組件可以用硬件、軟件或硬件和軟件的組合(包括一個或多個信號處理和/或應用特定集成電路)來實現。
無線電路308用于通過無線鏈路或網絡將信息發送到一個或多個其他裝置的常規電路并且接收信息,所述常規電路諸如天線系統、RF收發器、一個或多個放大器、調諧器、一個或多個振蕩器、數字信號處理器、CODEC芯片組、存儲器等。無線電路308可以使用各種協議,例如,如本文描述的協議。
無線電路308經由外設接口316耦合到處理系統304。接口316可以包括用于建立并且保持外設和處理系統304之間的通信的常規組件。無線電路308(例如,在言語識別或語音命令應用中)接收的語音和數據信息經由外設接口316被發送到一個或多個處理器318。一個或多個處理器318可配置為處理用于存儲在介質302上的一個或多個應用程序334的各種數據格式。
外設接口316將裝置的輸入和輸出外設耦合到處理器318和計算機可讀介質302。一個或多個處理器318經由控制器320與計算機可讀介質302進行通信。計算機可讀介質302可以是可以存儲供一個或多個處理器318使用的代碼和/或數據的任何裝置或介質。介質302可以包括存儲器層次體系,包括高速緩存、主存儲器和二級存儲器。
裝置300還包括用于給各種硬件組件供電的電源系統342。電源系統342可以包括電源管理系統、一個或多個電源(例如,電池、交流(AC))、再充電系統、電源故障檢測電路、電源轉換器或逆變器、電力狀態指示器(例如,發光二極管(LED))、以及典型地與移動裝置中的電力的產生、管理和分配相關聯的任何其他的組件。
在一些實施例中,裝置300包括照相機344。在一些實施例中,裝置300包括傳感器346。傳感器可以包括加速度計、指南針、陀螺儀、壓力傳感器、音頻傳感器、光傳感器、氣壓表等。傳感器346可以用于感測地點方面,諸如地點的聽覺或光簽名。
在一些實施例中,裝置300可以包括GPS接收器,有時被稱為GPS單元348。移動裝置可以使用衛星導航系統(諸如全球定位系統(GPS))來獲得位置信息、時序信息、海拔高度或其他導航信息。在操作期間,GPS單元可以從繞地球的軌道運行的GPS衛星接收信號。GPS單元對這些信號進行分析以做出渡越時間和距離估計。GPS單元可以確定移動裝置的當前位置(當前地點)。基于這些估計,移動裝置可以確定定位方位(location fix)、海拔高度和/或當前速度。定位方位可以是地理坐標,諸如緯度和經度信息。
一個或多個處理器318運行存儲在介質302中的各種軟件組件以執行用于裝置300的各種功能。在一些實施例中,軟件組件包括操作系統322、通信模塊(或指令集)324、定位模塊(或指令集)326、音頻回放應用選擇模塊328、以及其他應用(或指令集)334(諸如汽車定位器app和導航app)。
操作系統322可以是任何合適的操作系統,包括iOS、Mac OS、Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS或嵌入式操作系統(諸如VxWorks)。操作系統可以包括各種過程、指令集、軟件組件和/或用于控制和管理一般系統任務(例如,存儲器管理、存儲裝置控制、電源管理等)的驅動器,并且有助于各種硬件和軟件組件之間的通信。
通信模塊324有助于與其他裝置通過一個或多個外部端口336或者經由無線電路308的通信,并且包括用于處理從無線電路308和/或外部端口336接收的數據的各種軟件組件。外部端口336(例如,USB、FireWire、Lightning連接器、60腳連接器等)適于直接地或者通過網絡(例如,互聯網、無線LAN等)間接地耦合到其他裝置。
定位/運動模塊326可以幫助確定裝置300的當前位置(例如,坐標或其他地理地點標識符)和運動。現代的定位系統包括基于衛星的定位系統(諸如全球定位系統(GPS))、基于“小區ID”的蜂窩網絡定位、以及基于Wi-Fi網絡的Wi-Fi定位技術。GPS還依賴于多個衛星的可見性來確定位置估計,該位置估計在室內或者在“城市峽谷”中可能是不可見的(或者具有微弱的信號)。在一些實施例中,定位/運動模塊326從GPS單元348接收數據,并且對信號進行分析以確定移動裝置的當前位置。在一些實施例中,定位/運動模塊326可以使用Wi-Fi或蜂窩定位技術來確定當前地點。例如,可以使用附近的小區站點和/或Wi-Fi接入點的知識、還有它們的地點的知識來估計移動裝置的地點。標識Wi-Fi或蜂窩發送器的信息在無線電路308處被接收,并且被傳遞給定位/運動模塊326。在一些實施例中,定位模塊接收一個或多個發送器ID。在一些實施例中,可以將發送器ID序列與將發送器ID映射或關聯到對應發送器的位置坐標的參考數據庫(例如,小區ID數據庫、Wi-Fi參考數據庫)進行比較,并且基于對應發送器的位置坐標來計算裝置300的估計位置坐標。不管使用的特定定位技術如何,定位/運動模塊326接收從其可以導出定位方位的信息,對該信息進行解譯,并且返回地點信息,諸如地理坐標、緯度/經度或其他定位方位數據。
音頻回放應用選擇模塊328可以執行以上針對實施例中的一個或多個討論的操作或處理中的任何一個,以當裝置300連接到音頻輸出系統(未示出)時智能地用信號通知音頻回放的開始。
移動裝置上的一個或多個應用334可以包括安裝在裝置300上的任何應用,包括但不限于瀏覽器、地址簿、聯系人列表、電子郵件、即時消息傳送、字處理、鍵盤仿真、窗口小部件、啟用JAVA的應用、加密、數字權限管理、語音識別、語音復制、音樂播放器(其回放存儲在一個或多個文件(諸如MP3或AAC文件)中的記錄的音樂)等。
可以存在其他模塊或指令集(未示出),諸如圖形模塊、時間模塊等。例如,圖形模塊可以包括用于在顯示器表面上渲染、動畫繪制和顯示圖形對象(包括但不限于文本、網頁、圖標、數字圖像、動畫等)的各種常規的軟件組件。在另一個例子中,定時器模塊可以是軟件定時器。定時器模塊也可以用硬件實現。時間模塊可以維護用于任何數量的事件的各種定時器。
I/O子系統306可以耦合到顯示系統(未示出),顯示系統可以是觸敏(即,觸摸屏)顯示器。顯示器在GUI中向用戶顯示視覺輸出。視覺輸出可以包括文本、圖形、視頻以及它們的任何組合。視覺輸出中的一些或全部可以對應于用戶接口對象。顯示器可以使用LED(發光二極管)、LCD(液晶顯示器)技術或LPD(發光聚合物顯示器)技術,但是在其他實施例中可以使用其他顯示技術。
在一些實施例中,I/O子系統306可以包括顯示器和用戶輸入裝置,諸如鍵盤、鼠標和/或跟蹤板。在一些實施例中,I/O子系統306可以包括觸敏顯示器。觸敏顯示器也可以基于觸覺和/或觸感接觸從用戶接受輸入。在一些實施例中,觸敏顯示器形成接受用戶輸入的觸敏表面。觸敏顯示器/表面(連同任何相關聯的模塊和/或介質302中的指令集)在觸敏顯示器上的接觸(以及接觸的任何移動或釋放)發生時檢測該接觸并且將檢測到的接觸轉換為與顯示在觸摸屏幕上的用戶接口對象(諸如一個或多個軟鍵)的交互。在一些實施例中,觸敏顯示器和用戶之間的接觸點對應于用戶的一個或多個手指。用戶可以使用任何合適的對象或附加物(諸如觸針、筆、手指頭等)來與觸敏顯示器進行接觸。觸敏顯示器表面可以使用任何合適的觸摸敏感性技術(包括電容式、電阻式、紅外和表面聲波技術、以及其他接近傳感器陣列或用于確定與觸摸敏感顯示器的一個或多個接觸點的其他元件)來檢測接觸及其任何移動或釋放。
此外,I/O子系統可以耦合到一個或多個其他的物理控制裝置(未示出),諸如按鈕、按鍵、開關、波動按鈕、轉盤、滑動開關、操縱桿、LED等,這些物理控制裝置用于控制或執行各種功能,諸如電源控制、揚聲器音量控制、鈴聲響度、鍵盤輸入、滾動、保持、菜單、屏幕鎖、清除和結束通信等。在一些實施例中,除了觸摸屏之外,裝置300還可以包括用于啟動或停用特定功能的觸控板(未示出)。在一些實施例中,觸控板是裝置的與觸摸屏不同的、不顯示視覺輸出的觸敏區域。觸控板可以是與觸敏顯示器分離的觸敏表面或者由觸敏顯示器形成的觸敏表面的延伸部分。
在一些實施例中,本文描述的操作中的一些或全部可以使用在用戶的裝置上執行的應用來執行。電路、邏輯模塊、處理器和/或其他組件可以被配置為執行本文描述的各種操作。本領域技術人員將意識到,根據實現,這樣的配置可以通過特定組件的設計、設置、互連和/或編程來實現,并且再次根據實現,配置的組件可以或者不可以針對不同的操作重新配置。例如,可編程處理器可以通過提供合適的可執行代碼來配置;專用邏輯電路可以用適當連接邏輯門和其他電路元件來配置;等等。
本申請中描述的軟件組件或功能中的任何一個可以被實現為將被處理器執行的軟件代碼,其中,該軟件代碼可以為任何合適的計算機語言,諸如,舉例來說,Java、C、C++、C#、Objective-C、Swift、或使用常規的或面向對象的技術的腳本語言(諸如Perl或Python)。軟件代碼可以被作為一系列指令或命令存儲在計算機可讀介質上以供存儲和/或傳輸。合適的非暫時性計算機可讀介質可以包括隨機存取存儲器(RAM)、只讀存儲器(ROM)、磁性介質(諸如硬盤驅動器或軟盤)、或光學介質(諸如緊湊盤(CD)或DVD(數字多功能盤))、閃存等。計算機可讀介質可以是這樣的存儲或傳輸裝置的任何組合。
實施例可以是一種制造品,在該制造品中,機器可讀存儲介質上存儲將一個或多個數據處理組件(這里通稱為“處理器”)編程為執行上述操作的指令。機器可讀存儲介質的例子包括只讀存儲器、隨機存取存儲器、CD-ROM、DVD、磁帶、光學數據存儲裝置以及載波。機器可讀存儲介質也可以分布在網絡上以使得軟件指令被以分布式的方式存儲和執行。在其他實施例中,這些操作中的一些可以由包含硬連線邏輯的特定硬件組件執行。這些操作可替代地可以由編程的數據處理組件和固定硬連線電路組件的任何組合執行。
圖4例示說明根據一些實施例的在便攜式計算裝置中對于與音頻輸出系統建立的連接的可用音頻回放。如所示,便攜式計算裝置300連接到音頻輸出系統400(例如通過有線連接或無線連接)。便攜式計算裝置300存儲多個音頻回放應用410A-Z。便攜式計算裝置300中的控制器/選擇器組件420可以實現以上針對一個或多個實施例描述的操作和處理,以智能地選擇當便攜式計算裝置300連接到音頻輸出系統400時調用哪個音頻回放應用(例如,在音頻回放應用410A-Z之中)。一旦決策已經被做出,便攜式計算裝置300用信號通知音頻輸出系統400通過與音頻輸出系統400建立的連接開始來自選擇的音頻回放應用410的回放。
雖然已經描述了并且在附圖中示出了某些實施例,但是要理解,這樣的實施例僅僅例示說明廣泛的發明,而非限制廣泛的發明,并且本發明不限于所示出的和所描述的特定構造和布置,這是因為各種其他修改可以被本領域的普通技術人員想到。
附錄A
基于檢測的觸發事件的應用推薦
基于檢測的觸發事件的應用推薦
相關申請的交叉引用
本申請與Gauci等人的標題為“Segmentation Techniques for Learning User Patterns to Suggest Applications Responsive to an Event on a Device”的共有美國專利申請(律師卷號90911-P26712US1-939087)有關,該共有美國專利申請的公開的全部內容出于所有目的通過引用并入本文。
背景技術
現代的移動裝置(諸如,智能電話)可包含許多應用。每個應用可被設計為執行一種或多種特定功能。例如,應用可被設計為播放音樂或視頻。隨著現代移動裝置越來越多地融入到現代生活中,移動裝置中存儲的應用的數量增加。現代移動電話具有數百個應用并不是罕見的。具有大量應用可允許移動裝置對于用戶尤其有用;但是,用戶在所有可用的應用中找到并運行希望的應用可能會困難并且耗時。
技術實現要素:
實施例提供了用于基于觸發事件推薦應用的改進的裝置和方法。例如,一些事件可被裝置檢測到,并且被識別為觸發事件。不同的觸發事件可具有不同的預測模型,這樣可允許更加準確的推薦。所選擇的預測模型可使用上下文信息(例如,在事件被檢測之前或之后被收集的)以識別用于呈現給用戶以便更容易訪問的應用,例如,允許在鎖定屏幕上訪問。
在一些實施例中,對于一個或多個輸入裝置監測觸發事件。當觸發事件被檢測到時,可從一個或多個源(例如,已經獲得上下文信息的裝置的另一應用)收集上下文信息。上下文信息可與在觸發事件發生時或者附近的裝置的上下文有關,諸如位置或一天中的時間。一旦上下文信息被接收,然后歷史信息可被從歷史事件數據庫收集。數據庫可保持用戶與裝置之間的歷史交互的記錄。根據觸發事件,上下文信息和歷史信息可被用于為用戶識別一個或多個應用的集合。然后,所識別的應用可通過以不同于所識別的應用通常被如何訪問、何時訪問或者何處訪問(例如,在主屏幕上)的方式提供用戶界面而被建議給用戶,由此為用戶提供了在希望時運行該應用的選項。
一些實施例針對與文中所述的方法相關聯的系統、便攜式消費器件、和計算機可讀介質。
參照以下的詳細描述和附圖可更好地理解本發明的實施例的本質和優點。
附圖說明
圖1是根據本發明的實施例的用于基于觸發事件識別應用的方法的流程圖。
圖2示出根據本發明的實施例的用于確定觸發事件的系統的框圖。
圖3示出根據本發明的實施例的用于基于觸發事件為用戶識別應用的系統的框圖。
圖4示出根據本發明的實施例的用于通過多個預測模型識別應用的系統的框圖。
圖5是根據本發明的實施例的對于裝置基于觸發事件識別應用的方法的流程圖。
圖6是根據本發明的實施例的具有用于音樂應用的用戶接口的裝置的簡化圖。
圖7A和7B是根據本發明的實施例的用于從用戶接口去除被識別的應用的方法的流程圖。
圖8是根據本發明的實施例的示例性裝置的框圖。
術語
“用戶接口”對應于用戶與裝置進行交互的任何接口。用于應用的用戶接口可允許用戶與該應用進行交互。在應用運行時用戶接口可以是該應用的接口。作為另一示例,用于接口可以是提供減少的應用的集合以供用戶從中選擇,由此使得用戶更容易使用該應用的系統接口。
“主屏幕”是當裝置被第一次通電時出現的裝置的屏幕。對于移動裝置,主屏幕常常顯示對應于可在裝置上運行的各種應用的圖標的排列。額外的屏幕可被訪問以瀏覽沒有在主屏幕上出現的其它應用。
“鎖定屏幕”是當用戶未被認證、因此裝置對于大多數應用被鎖定時被顯示的屏幕。一些功能可被露出,例如照相機。在一些實施例中,如果對應于建議的應用的用戶接口暴露于鎖定屏幕上,與所建議的應用相關聯的一些功能可被獲得。例如,應用可運行。如果該應用被從鎖定屏幕運行,則功能是受限的,并且受限的功能可在用戶被認證時被擴展。
“上下文信息”總體上指的是可用于定義裝置的上下文的任何數據。對于給定上下文的上下文信息可包括一個或多個上下文數據,每個上下文數據對應于裝置的不同特性。可能的特性可屬于不同的類別,諸如時間類別或位置類別。上下文數據被用作模型(或者子模型)的特征,用于訓練模型的數據可包括同一類別的不同特性。特定上下文可對應于裝置的特性的特定組合,或者僅對應于一個特性。
具體實施方式
當前的移動裝置可在其固態驅動器上存儲有許多應用。在一些情況中,移動裝置可在其固態驅動器上存儲數百個應用。當用戶希望在其移動裝置上運行應用時,他或她必須解鎖該裝置,搜索裝置中的所有應用以識別希望的應用,然后開始執行該應用。經歷尋找希望的應用的過程會非常耗時且冗長,對于比其它應用被更頻繁地使用的應用而言尤其如此。
用戶可對裝置預先編程以當特定條件被滿足時(例如,觸發事件發生時)自動執行預定應用的指定動作。例如,裝置可被編程以在觸發事件發生時建議預定的應用。但是,這樣的操作是靜態的,并且需要用戶進行配置。
不是自動建議預定應用,而是本發明的實施例可在觸發事件發生時利用預測模型來建議在給定上下文中可能由用戶運行的應用。對于相同的觸發事件,不同的應用可對于不同的上下文被識別。作為示例,一個應用可在第一上下文被建議,而另一應用可在第二上下文中被建議。
識別用戶可能使用的應用具有若干益處。用戶接口可以合適的方式或者在合適的屏幕中被提供給用戶,這樣可節省時間并且使裝置的操作流水線化。用戶無需搜索大量的應用來識別要使用的應用。應用的用戶接口可被以各種方式提供,該方式可依賴于用戶將使用該應用的概率有多高。此外,如果特定動作具有高的被執行的概率,則預測模型可提供特定用戶接口。因此,與僅僅提供更容易打開應用的機制相反,在一些實施例中,使用的概率越高,則可采取更加積極主動的動作,諸如通過對應的用戶接口(例如,視覺或語音命令)自動打開應用。
I、應用預測
實施例可基于觸發事件建議應用。例如,當耳機被插入耳機插孔時,音樂應用可被建議。在一些實施例中,上下文信息可與觸發事件相結合地使用,以識別要建議給用戶的應用。作為示例,當一組耳機被插入耳機插孔時,與位置相關聯的上下文信息可被使用。如果裝置在健身房中,例如,當耳機被插入耳機插孔時,應用A可被建議。作為替代,如果裝置在家中,則在耳機被插入耳機插孔時,應用B可被建議。因此,可能在某些上下文中被使用的應用可在合適的時間被建議,從而提高了用戶體驗。
圖1是根據本發明的實施例的基于觸發事件建議應用的方法100的流程圖。方法100可由移動裝置(例如,電話、平板電腦)或者非移動裝置執行,并且利用裝置的一個或多個用戶接口。
在塊102,檢測觸發事件。不是所有在裝置處發生的事件都是觸發事件。觸發事件可被標識為非常可能與裝置的獨特操作相關。作為觸發事件的事件的列表可被存儲在裝置上。這樣的事件可以是默認列表并且可被保持為操作系統的一部分,可以被或者可以不被用戶配置。
觸發事件可以是用戶和/或外部裝置引起的事件。例如,觸發事件可以是輔助裝置連接到移動裝置。示例包括將耳機插入耳機插孔,進行藍牙連接等。在此示例中,這些示例中的每一個可被歸類為不同的觸發事件,或者觸發事件可總體上為任何輔助裝置連接到移動裝置。作為其它示例,觸發事件可以是用戶與裝置的特定交互。例如,用戶可能以與跑步相同的方式來移動移動裝置,裝置的跑步狀態是觸發事件。這樣的跑步狀態(或其它狀態)可基于裝置的傳感器被確定。
在塊104,與觸發事件相關聯的應用被識別。作為示例,音樂應用可在耳機插入耳機插孔時被識別。在一些實施例中,多于一個的應用可被識別。預測模型可識別相關聯的應用,該預測模型可對于特定的觸發事件被選擇。預測模型可使用上下文信息來識別應用,例如,因為不同的應用更有可能在不同的上下文中被使用。一些實施例可僅在有足夠高的被用戶選擇的概率(例如,從用戶與該裝置的歷史交互確定)時才識別應用。各種預測模型可被使用。預測模型的示例包括神經網絡、決策樹、多標記邏輯回歸以及它們的組合。
在塊106,與該應用相關聯地執行動作。在一個實施例中,該動作可以是提供用于用戶接口以供用戶選擇來運行該應用。用戶接口可被以各種方式提供,例如通過在裝置的屏幕上顯示,投影在表面上,或者提供音頻接口。
在其它實施例中,應用可運行,并且該應用特定的用戶接口可被提供給用戶。任何用戶接口可響應于識別應用被提供,例如在鎖定屏幕上。在其它實現中,要與應用交互的用戶接口可在用戶被認證(例如,通過密碼或生物辨識)之后被提供。當用戶接口被顯示時,這樣的用戶接口將比僅僅主屏幕更加明確,即,要運行的建議應用的列表比在主屏幕上的較小。用戶接口可在觸發事件被檢測到之后立即在裝置的顯示器上顯示。在其它實施例中,用戶接口可在用戶提供一些輸入(例如,一個或多個點擊手勢)之后被顯示,這樣與沒有應用被建議的情況相比用戶輸入(例如,點擊的數量)仍然較少。
II.事件啟動預測
觸發事件可以是觸發要被提供給用戶的一個或多個應用的識別的預定的事件集合。事件可通過使用裝置組件生成的信號被檢測。如何檢測觸發事件的另外的細節在下文被更詳細地討論。
圖2示出了根據本發明的實施例的用于確定觸發事件的檢測系統200的簡化框圖。檢測系統200可駐留在對于其確定觸發事件的裝置中。如圖所示,檢測系統200可檢測多個不同的事件。所檢測的事件中的一個或多個可由檢測系統200確定為觸發事件。其它處理模塊可然后使用觸發事件執行處理。
A.檢測事件
在實施例中,檢測系統200包括用于檢測事件的硬件和軟件組件。作為示例,檢測系統200可包括多個輸入裝置,諸如輸入裝置202。輸入裝置202可以是能夠響應于事件而產生信號的任何合適的裝置。例如,輸入裝置202可包括可分別檢測裝置連接事件、用戶交互事件、和位置事件的裝置連接輸入裝置204、用戶接口輸入裝置206、和位置輸入裝置208。當事件在輸入裝置處被檢測到時,輸入裝置可發送指示特定事件的信號以便進一步分析。
在一些實施例中,組件的集合可對單個事件起作用。例如,基于運動傳感器和GPS位置裝置,用戶可被檢測為正在跑步。
1、裝置連接事件
裝置連接事件可以是當其它裝置與該裝置連接時發生的事件。例如,裝置連接輸入裝置204可以檢測裝置與該裝置通信地耦合的事件。與外部裝置形成有線或無線連接的任何合適的裝置組件都可用作裝置連接輸入裝置204。裝置連接輸入204的示例包括耳機插孔210和數據連接212,諸如無線連接電路(例如,藍牙、Wi-Fi等)或者有線連接電路(諸如,以太網等)。
耳機插孔允許一組耳機耦接到裝置。信號可在耳機耦接(例如通過插入耳機插孔210而產生電氣連接)時被生成。在一些更復雜的實施例中,耳機插孔210可包括電路,該電路將識別耳機插孔的類型的標識信號提供給該裝置。因此,該事件可被以各種方式檢測,并且信號被以各種方式生成和/或傳遞。
數據連接212可與外部裝置通信地(例如通過無線連接)耦接。例如,藍牙連接可耦接到車輛的計算機、或者無線耳塞的計算機。因此,當外部裝置經由數據連接212耦接到移動裝置時,可確定外部裝置連接,并且可生成對應的裝置連接事件信號。
2、用戶交互事件
用戶交互輸入裝置206可被用于檢測用戶交互事件。用戶交互事件可在用戶與裝置交互時發生。在一些實施例中,用戶可經由用戶交互輸入裝置206之一直接激活所顯示的用戶接口。在其它實施例中,用戶接口可能未被顯示,但是用戶仍可訪問,例如經由用戶搖動該裝置或者提供一些其它類型的手勢。此外,交互可能不包括用戶接口,例如當狀態引擎使用來自裝置的傳感器的值時。
用戶接口的任何合適的裝置組件可用作用戶交互輸入裝置206。合適的用戶交互輸入裝置的示例是按鈕214(例如,主按鈕或者電源按鈕)、觸摸屏216和加速度器218。例如,移動裝置的按鈕214(諸如,主按鈕、電源按鈕、音量按鈕等)可以是用戶交互輸入裝置204。另外,諸如靜音開關的開關可以是用戶交互輸入裝置204。當用戶與裝置交互時,可確定用戶已經提供用戶輸入,并且對應的用戶交互事件可被生成。這樣的事件可依賴于裝置的當前狀態,例如裝置在早上(或者其它的長期未激活時段)第一次開機或者被激活時。這樣的信息還可在確定事件是否是觸發事件時被使用。
觸摸屏216可允許用戶經由顯示屏幕提供用戶輸入。例如,用戶可將他或她的手指滑過顯示器以生成用戶輸入信號。當用戶執行該動作時,對應的用戶交互事件可被檢測到。
加速度器218或者其它運動傳感器可以是(例如,使用陀螺儀等)檢測移動裝置的諸如搖動和傾斜的運動的無源組件。移動裝置的這樣的運動可被事件管理器230檢測到,該事件管理器230可確定運動是特定類型的。事件管理器230可生成在裝置的給定狀態對應于特定類型的用戶輸入事件的事件信號232。裝置的狀態可由狀態引擎確定,進一步的細節可從標題為“Activity Detection”的美國專利公布第2012/0310587號以及標題為“Determining Exit From A Vehicle”的美國專利公布第2015/0050923號中找到,這兩個美國專利公布的公開的全部內容通過引用被并入此。
一個示例是用戶正在跑步,加速度器可感測到搖動,并且生成要被提供給事件管理器230的信號。事件管理器230可分析加速度器信號以確定事件類型。一旦事件類型被確定,則時間管理器230可生成對應于該事件類型的事件信號232。移動裝置可被以指示用戶正在跑步的方式來移動。因此,此特定用戶交互可被識別為跑步事件。事件管理器230可然后生成并發生指示跑步事件已經被檢測到的事件信號232。
3、位置事件
位置輸入裝置208可被用于生成位置事件。任何合適的定位系統可被用于生成位置事件。例如,全球定位系統(GPS)可被用于生成位置事件。位置事件可以是與特定地理位置對應的事件。例如,如果移動裝置到達特定位置,則GPS組件可生成與位置事件對應的輸入信號。典型地,移動裝置可每天移動到數十甚至數百個位置,這些位置中的許多位置可能不會重要到被認為是位置事件。因此,不是每個檢測到的位置將是位置事件。在實施例中,位置事件可以是比其它位置更頻繁的位置。例如,如果其在一段時間中頻繁地出現至少閾值次數(例如6個月到1年的跨度中5次),則事件可是位置事件。因此,重要的位置可與不重要的位置分離,并且被確定為是位置事件。
B.確定觸發事件
如在圖2中進一步示出的,輸入裝置202可輸出檢測的事件222,例如作為任何對應事件的結果。檢測的事件可包括關于哪個輸入裝置正發送用于檢測的事件222的信號的信息,特定事件的子類型(例如,哪種耳機或者哪種數據連接)。這樣的信息可被用于確定檢測的事件222是否是觸發事件,并且可被傳遞到后面的模塊以用于確定對于建議的應用將使用哪種預測模型或者將執行什么動作。
檢測的事件222可由事件管理器230接收。事件管理器230可接收來自輸入裝置202的信號,并且確定哪種類型的事件被檢測到。依賴于事件的類型,事件管理器230可輸出信號(例如,事件信號232)至不同的引擎。不同的引擎可以訂閱事件管理器230以接收對于它們的功能重要的特定的事件信號232。例如,觸發事件引擎224可同意接收響應于來自輸入裝置202的檢測的事件222而生成的事件信號232。事件信號232可對應于從檢測的事件222確定的事件的類型。
觸發事件引擎224可被配置為確定所檢測的事件222是否是觸發事件。為了進行此確定,觸發事件引擎224可參考指定觸發事件數據庫226,該數據庫可耦接到觸發事件引擎224。指定觸發事件數據庫226可包括被指定為觸發事件的預定事件的列表。
觸發事件引擎224可將接收的檢測的事件222與預定事件列表相比較,并且如果檢測的事件222與指定觸發事件數據庫226中列出的預定事件相匹配,則輸出觸發事件228。預定事件的列表的示例可包括以下中的任一個:(1)將耳機插入耳機插孔,(2)經由藍牙連接與外部裝置連接,(3)在經過了一段時間之后(例如,在早晨醒來時)按下按鈕,(4)感測到裝置的某種類型的移動,(5)到達某一位置。對于(5),指定觸發事件數據庫226可包括某一位置的規定。
如文中所描述的,本發明的技術的一個方面是收集并使用可從各種源得到的數據以向用戶建議應用。本公開構想在一些情況中,此被收集的數據可包括個人信息數據,該個人信息數據唯一地標識或者可被用于聯系或者定位特定人。這樣的個人信息數據可包括基于位置的數據、家庭地址、或者任何其它標識信息。
本公開認識到,在本技術中,這樣的個人信息數據的使用可對于用戶有利地被使用。例如,個人信息數據可用于建議用戶非常感興趣的應用。因此,這樣的個人信息數據的使用使得能夠對發送的內容進行計算控制。此外,本公開還可構想到對于用戶有益的個人信息數據的其它使用。
本公開進一步構想到,負責這樣的個人信息數據的收集、分析、公開、傳遞、存儲或者其它使用的實體將遵從良好制定的隱私策略和/或隱私實踐。特別地,這樣的實體應該實現并且一貫地使用通常被認為滿足甚至超出維護個人信息數據隱私和安全的行業或政府需求的隱私策略和實踐。例如,來自用戶的個人信息應對于該實體的合法和合理使用被收集,而不應在這些合法使用之外被共享或銷售。此外,這樣的收集僅應在接收到用戶的知情同意之后才能進行。另外,這樣的實體將采取任何必需的步驟來保護和保衛這樣的個人信息數據的訪問,并且確保其他對于個人信息數據的訪問遵從它們的隱私策略和過程。此外,這樣的實體本身可經受第三方的評估以確認它們遵從廣泛接受的隱私策略和實踐。
盡管前文所述內容,但是本公開還構想了如下這樣的實施例,其中用戶選擇性地阻止對個人信息數據的使用或訪問。即,本公開構想了硬件和/或軟件元件可被提供以防止或者阻止對于這樣的個人信息數據的訪問。例如,用戶可選擇不對于作為目標的內容輸送服務提供位置信息。在還另一示例中,用戶可選擇不提供精確的位置信息,而允許傳遞位置區域信息。
III.建議應用確定
一旦檢測到觸發事件,則可基于觸發事件來識別應用。在一些實施例中,應用的識別不是預先編程的行為。相反,應用的識別可以是動態行為,其可根據額外的信息而改變。例如,建議應用的識別可基于上下文信息和/或歷史信息、以及還基于其它信息被確定。
A.基于觸發事件確定應用的系統
圖3示出了根據本發明的實施例的用于基于觸發事件和上下文信息識別應用和對應的動作命令的預測系統300的簡化框圖。預測系統300駐留在識別應用的裝置中。預測系統300可包括硬件和軟件組件。
預測系統300包括用于識別建議的應用的預測引擎302。預測引擎302可接收觸發事件,諸如圖2中討論的觸發事件228。預測引擎302可使用從觸發事件228收集的信息,來識別建議的應用304。如圖所示,除了觸發事件228之外,預測引擎302還可接收上下文數據306。預測引擎302可使用從觸發事件228以及上下文信息306收集的信息來識別建議的應用304。預測引擎302還可確定要被執行的動作,例如用戶接口如何以及何時被提供給用戶以與建議的應用進行交互。
在一些實施例中,建議的應用304可以是移動裝置的固態驅動器上存在的任何應用。預測引擎302因此可具有在檢測到觸發事件時建議任何應用的能力。作為替代,在一些實施例中,預測引擎302可具有在檢測到觸發事件時建議少于全部的應用的能力。例如,用戶可選擇預測引擎302不可訪問的一些應用。因此,當觸發事件被檢測到時,預測引擎302將不能建議那些應用。
1、上下文信息
上下文信息可被從上下文數據306收集。在實施例中,上下文信息可在任何時間被接收到。例如,上下文信息可在觸發事件228被檢測到之前和/或之后被接收到。另外,上下文信息可在觸發事件228的檢測期間被接收到。上下文信息可指定對于某一上下文的裝置的一個或多個特性。上下文可以是在觸發事件228被檢測到時裝置的周圍環境(上下文類型)。例如,上下文信息可以是觸發事件228被檢測到時的一天中的時間。在另一示例中,上下文信息可以是在觸發事件228被檢測到時的裝置的某一位置。在還另一示例中,上下文信息可以是觸發事件228被檢測到時的一年中的哪一天。另外,上下文信息可以是從日歷收集的數據。例如,當前時間和事件時間之間的時間量(例如,天數或小時數)。這樣的上下文信息可提供關于裝置的上下文的更有意義的信息,使得預測引擎302可準確地建議在該上下文中可能被用戶使用的應用。因此,與不利用上下文信息相比,利用上下文信息的預測引擎302可更準確地向用戶建議應用。
上下文數據306可被上下文源308生成。上下文源308可以是提供與移動裝置的當前狀況有關的數據的移動裝置的組件。例如,上下文源308可以是硬件裝置和/或軟件代碼,其作為內部數字時鐘310、GPS裝置312和日歷314操作,以便分別提供與一天中的時間、裝置的位置以及一年中的哪一天有關的信息。其它上下文源可被使用。
為預測引擎302收集上下文數據306可被以功率高效的方式執行。例如,連續地輪詢GPS 312來確定裝置的位置可能是非常功率密集的,這樣會降低電池壽命。為了避免電池壽命降低,預測引擎302可通過從除GPS 312之外的源請求裝置的位置來確定裝置的位置。位置信息的另一源可以是最近已經輪詢GPS 312以獲得裝置位置的應用。例如,如果應用A是最近的已經輪詢GPS 312以獲得裝置位置應用,則預測引擎302可從應用A請求和接收位置數據,而不是單獨地輪詢GPS 312。
2、歷史信息
除了上下文源308之外,在一些實施例中,歷史事件數據庫316還可被預測引擎302利用。歷史事件數據庫316可包括在觸發事件被檢測到之后用戶與移動裝置之間的先前交互的歷史信息。
歷史事件數據庫316可保持在某一觸發事件之后應用被打開的次數的記錄。例如,數據庫316可保持指示在耳機插入耳機插孔之后10次中有8次用戶打開應用A的記錄。因此,預測引擎302可接收此信息作為歷史數據318來確定在一組耳機插入耳機插孔時應用A是否應被對于用戶被識別。
歷史事件數據庫316還可保持在觸發事件被檢測到時在不同的上下文中應用被打開的次數的記錄。例如,數據庫316可保持如下記錄,該記錄指示當用戶在家時在耳機插入耳機插孔之后10次中有9次用戶打開應用A,而當用戶在健身房時10次中有1次用戶打開應用A.因此,預測引擎302可接收此信息作為歷史數據318,并且確定當在家中、而不是在健身房中,耳機插入耳機插孔時應用A應被識別。應理解,盡管這里討論的示例涉及位置,如“家”或“健身房”,但是代表“家”或“健身房”的上下文數據306可以是為數字坐標的形式。本領域技術人員理解,作為位置的替代,與一天中的時間以及一年中的哪一天有關的信息可被以相似的方式利用以識別其它應用。
歷史事件數據庫316還可保持用戶有多頻繁地以及在何種情況下決定不運行所識別的應用的記錄。例如,數據庫316可保持如下記錄,即該記錄指示當在家中用戶將耳機插入裝置時應用B被建議給用戶時,10次中有2次用戶不選擇應用B。因此,預測引擎302可接收此信息作為歷史數據318以調整當用戶在家中將耳機插入裝置時建議應用B的概率。
在一些實施例中,當觸發事件被檢測到時,上下文信息306和/或歷史信息(文中進一步討論)可能不可用或者受到限制。在這樣的情況中,當觸發事件被檢測到時,默認應用可被建議。默認應用可以是通常與觸發事件的類型相關聯的一種應用。例如,如果一組耳機被插入耳機插孔,則可建議音樂應用。作為替代,當與汽車進行藍牙連接時,可建議地圖應用。一旦獲得更多的歷史信息,則可提供建議的應用,而不是默認應用。
B.多預測模型
由于不同的觸發事件可能導致不同的建議應用,實施例可對于不同的觸發事件使用不同的預測模型。這樣,預測模型可被細化以對于特定的觸發事件提供更準確的建議。
圖4更詳細地示出了根據本發明的實施例的預測引擎302。預測引擎302可以是存儲在存儲裝置上的程序代碼。在實施例中,預測引擎302包括一個或多個預測模型。例如,預測引擎302可包括預測模型1到N。每個預測模型可以是被具體設計以對于特定觸發事件228識別應用的一段代碼和/或數據。例如,預測模型1可被具體設計以對于一組耳機插入耳機插孔的觸發事件識別應用。預測模型2可被涉及以對于連接藍牙裝置的觸發事件識別應用。
預測模型3可被設計以對于在長時間段之后用戶與裝置的用戶接口進行交互(例如,在用戶早晨醒來時第一次與移動裝置進行交互時)的觸發事件識別應用。其它預測模型可被設計以對于與某一模式的檢測運動(例如,當用戶與移動裝置一起跑步時)、到達特定位置、以及選擇特定應用(例如,選擇與汽車的計算機通信的應用)相關聯的觸發事件,識別應用。依賴于觸發事件228的數量,任何數量的預測模型可被包含在預測引擎302中。
如圖所示,預測模型1到N中的每個可耦接到上下文源和歷史事件數據庫以接收上下文數據306和歷史數據318。因此,根據文中所討論的實施例,每個預測模型可利用上下文數據306和歷史數據318來識別建議應用304。
返回圖3,預測引擎302可將建議應用304發送到專家中心模塊320。在實施例中,事件管理器320可以是管理在裝置上(例如在鎖定屏幕上)顯示什么、搜索屏幕何時打開或者其它屏幕的一段代碼。例如,專家中心320可調整什么信息被顯示給用戶,例如建議應用、建議聯系或者其它信息。專家中心320還可確定何時將這樣的信息提供給用戶。
IV.用戶接口
如果事件管理器320確定是適宜的時間將建議的應用輸出給用戶,則事件管理器320可將應用322輸出到用戶接口324。在實施例中,輸出應用322可對應于建議的應用304。用戶接口324可將輸出應用322傳遞給用戶,并且請求用戶關于輸出應用322的響應。
在實施例中,用戶接口324可以是用戶可與其進行交互的裝置組件的組合。例如,用戶接口324可以是能夠向用戶輸出信息和/或允許用戶向裝置輸入信號的裝置組件的組合。
A.顯示器
用戶接口324可以被顯示在裝置的顯示器上。顯示器可對于觸摸是靈敏的,從而可通過與顯示器的物理交互而生成輸入信號。在這樣的實施例中,顯示器可包括疊置在圖像顯示層上的觸敏層,以檢測用戶對于顯示器的觸摸。因此,顯示器可以是可向用戶輸出信息和輸入來自用戶的信息的用戶接口324的一部分。作為示例,顯示器可示出建議的應用的圖像,并且當用戶輕擊顯示面板的對應位置時輸入信號以運行該應用。
現代裝置具有防止裝置的未被授權的使用的安全措施。這樣的裝置在用戶可訪問裝置上存儲的所有應用之前可需要用戶解鎖裝置。裝置可根據裝置安全狀態限制所有應用的可訪問性。例如,在裝置允許訪問所有其應用之前,裝置可能需要用戶解鎖裝置。解鎖后的裝置可具有示出主屏幕的顯示器。主屏幕可顯示和/或提供對于裝置的所有應用的訪問。但是,鎖定的裝置可具有示出鎖定屏幕的顯示器。顯示器的一些區域可被解鎖裝置的提示占據。因此,由于提高的裝置安全狀態以及受限的顯示空間,鎖定屏幕可允許與比主屏幕較少的應用交互。例如,鎖定屏幕可僅允許訪問比裝置的所有應用少的應用,諸如一個到三個應用。在一些實施例中,文中關于圖3討論的建議的應用304可以顯示在鎖定屏幕上。
B.其它輸入和輸出裝置組件
盡管顯示器可能是能夠向用戶輸出信息以及輸入來自用戶的信息的用戶接口324的一部分,但是,用戶接口324的其它部分并不因此受限。例如,在文中的實施例中還可構想可輸入來自用戶的信息的其它裝置組件。作為示例,按鈕和開關可以是用戶接口324的一部分。按鈕可以是當用戶在按鈕上施加壓力時生成輸入的裝置組件。開關可以是當用戶使桿翻轉到另一位置時生成輸入的裝置組件。因此,根據文中論述的實施例,按鈕和/或開關可被用戶致動以運行建議的應用304。
在文中的實施例中還可構想可輸出來自用戶的信息的裝置組件。作為示例,揚聲器或觸覺裝置可以是向用戶輸出信息的用戶接口的一部分。揚聲器可輸出音頻通知以指示被識別的應用已被建議。觸覺裝置可輸出觸覺通知以指示被識別的應用已被建議。應理解,這樣的裝置僅是實施例,其它實施例并不局限于這樣的裝置。
C.交互層級
用戶接口324可需要不同的交互層級以便用戶運行輸出應用322。各種層級可對應于用戶將運行建議的應用304的概率程度。例如,如果預測引擎302確定建議的應用304被用戶運行的概率高于閾值概率,則用戶接口324可輸出提示,允許用戶通過跳過中間步驟更快地運行該應用。
作為示例,如果預測引擎302確定用戶運行建議的音樂應用的概率大于高閾值概率,則建議的音樂應用可被自動運行,并且用戶接口324因此顯示用于該音樂應用的控件,例如播放、暫停以及快進/快退。因此,用戶無需執行點擊運行音樂應用的中間步驟。
作為替代,如果預測引擎302確定用戶運行音樂應用的概率小于該高閾值概率但是仍高于低閾值概率,則音樂應用可被顯示為圖標。低閾值概率可高于基準閾值概率。基準閾值概率可建立對應應用將被建議的最小概率。因此,用戶必須執行額外的點擊圖標以運行該建議的音樂應用的步驟。但是,點擊次數仍可少于在不向用戶建議應用時所需要的點擊次數。在實施例中,閾值概率可根據應用類型改變。在各種實施例中,高閾值概率可在75%到100%之間,低閾值概率可在50%到75%之間,而基準閾值可在25%到50%之間。在特定實施例中,高閾值概率為75%,低閾值概率為50%,而基準概率為25%。
在實施例中,越高的概率可導致更加積極主動的應用建議。例如,如果應用具有約90%的高概率,則預測引擎302可在裝置的鎖定屏幕上提供圖標以允許用戶通過一次點擊該圖標來訪問該應用。如果應用具有約95%的甚至更高的概率,則預測引擎302甚至可為用戶自動運行所建議的應用,而無需用戶進行任何點擊。在這樣的情況中,預測引擎302可不僅輸出建議的應用,而且還輸出該應用特定的命令,諸如在音樂應用中播放所選擇的音樂的命令,或者在地圖應用中開始特定路線的引導的命令。
根據本發明的實施例。預測引擎302可確定需要哪種層級的交互,然后將該信息輸出至事件管理器320。事件管理器320然后可將此信息發送至用戶接口324以輸出給用戶。
在實施例中,用戶接口324可在顯示屏幕上向用戶顯示通知。通知可通過例如推送通知被發送。通知可以是視覺通知,包括向用戶告知建議的應用的圖片和/或文字。通知可向用戶建議應用以便用戶有空時選擇和運行。當被選擇時,應用可運行。在一些實施例中,對于更加積極主動的預測,通知還可包括建議的應用中的建議的動作。即,通知可將建議的應用以及建議的應用中的建議的動作告知用戶。因而,用戶可被給予運行建議的應用或者執行建議的應用中的建議的動作的選項。作為示例,通知可告知用戶建議的應用是音樂應用,建議的動作是在音樂應用中播放特定歌曲。用戶可指示他或她將通過點擊示出建議的歌曲的圖標來播放歌曲。作為替代,用戶可指示他或她將通過在屏幕上滑動該通知來運行該應用以播放另一首歌曲。
不同于在一個通知中將建議的應用和建議的動作輸出給用戶接口324,預測引擎302可在一個通知中向用戶接口324輸出兩個建議的動作。例如,預測引擎302可輸出播放第一首歌曲的建議動作,和播放第二首歌曲的第二建議動作。用戶可通過點擊通知中的相應圖標來選擇要播放哪首歌曲。在實施例中,建議的動作可基于不同的準則被確定。例如,一個建議的動作可能是不管上下文信息如何都播放被最近播放的歌曲,而另一個建議的動作可能是播放在相同或者相似的上下文信息下最后播放的歌曲。作為示例,對于如下情況,即用戶進入他或她的汽車并且觸發事件使得預測引擎302建議與播放某一歌曲有關的兩個動作,歌曲A可以是在家中最后播放的歌曲,歌曲B可以是當用戶在汽車中時最后播放的歌曲。當用戶選擇要被播放的歌曲時,歌曲可從開頭繼續播放,或者從上次停止的地方(例如,在歌曲中部)繼續播放。
為了預測引擎302能夠建議動作,預測引擎302可訪問存儲關于裝置的活動狀態的信息的存儲裝置。裝置的活動狀態可表示在選擇建議的應用之后執行的動作。例如,音樂應用的活動狀態可以是播放某一歌曲。活動狀態可跟蹤何時歌曲被最后停止。在實施例中,圖3的歷史數據庫316可記錄與裝置的活動狀態有關的歷史數據。因此,預測引擎302可建議要由建議的應用運行的動作。
V.確定建議應用的方法
圖5是示出根據本發明的實施例的基于觸發事件識別應用的方法500的流程圖。方法500可完全或者部分地由該裝置執行。作為各種示例,該裝置可以是電話、平板電腦、膝上型電腦、或者文中已經討論的其它移動裝置。
在塊502,裝置(例如,移動裝置)檢測事件。例如,一組耳機可插入裝置的耳機插孔。作為另一示例,無線耳機可經由藍牙連接耦接到裝置。圖2中的輸入裝置202可被用于檢測事件。事件可以是移動裝置與諸如外部裝置或用戶的外部實體交互的任何動作。
在塊504,裝置確定所檢測的事件是否是觸發事件。為了確定所檢測的事件是否是觸發事件,所檢測的事件可與預定事件列表(例如,圖2中的指定觸發事件數據庫226中的事件列表)相比較。如果所檢測的事件匹配預定事件列表中的一個事件,則所檢測的事件可被確定為觸發事件。
在塊506,裝置選擇預測模型,例如圖4中的預測模型1到N之一。所選擇的預測模型可依賴于觸發事件。例如,當觸發事件涉及與外部裝置建立藍牙連接時,可選擇為藍牙連接設計的預測模型。作為另一示例,當觸發事件涉及將一組耳機插入耳機插孔時,可選擇為耳機連接設計的預測模型。
在塊508,裝置接收上下文信息。上下文信息可被從多個源(例如,圖3中的上下文源308)接收。在實施例中,上下文信息可涉及裝置的周圍狀況。例如,上下文信息可涉及一天中的時間、一年中的哪一天、或者裝置的位置。另外,裝置也可接收歷史信息。歷史信息可涉及存儲于數據庫(例如,歷史事件數據庫316)中的裝置與用戶之間的交互的歷史。
在塊510,裝置可識別至少具有被用戶訪問的閾值概率的一個或多個應用。如文中已經提及的,可存在多個閾值。在一些實施例中,閾值概率可以是基準閾值概率、低閾值概率或者高閾值概率。例如,一個或多個應用均具有大于該閾值概率的概率。在另一示例中,一個或多個應用可具有大于該閾值概率的組合概率。該一個或多個應用可以是具有頂部概率的應用,并且可針對各種標準被選擇(例如,所有都具有大于閾值的概率,因為許多應用需要超過閾值但是受限于最大數,等等)。在一些實施例中,具有低于基準閾值概率的概率的應用可被忽略。
用戶訪問的概率可通過預測模型被確定。預測模型可通過利用上下文信息以及歷史信息來確定概率。在實施例中,所識別的應用是文中相對于圖3和4論述的應用。
在一些實施例中,如果應用具有相等的概率,則它們可被忽略,即不被識別。在這些狀況下,裝置可能需要生成額外的歷史信息來合適地識別該一個或多個應用。隨著收集越多的歷史信息,裝置變得更準確地識別正確的應用,例如在給定上下文中希望被用戶訪問的應用。在其它實施例中,兩個應用都可被提供,例如如果它們的組合概率足夠高,這在兩個應用具有最高的兩個概率的情況下會發生。
在塊512,裝置可向用戶提供用戶接口。例如,裝置可經由接口向用戶顯示被識別的應用,用戶可與該接口進行交互以指示用戶是否想要訪問被識別的應用。例如,用戶接口可包括觸敏顯示器,該觸敏顯示器向用戶示出被識別的應用中的一個或多個,并且允許用戶通過與觸敏顯示器交互而訪問被識別的應用中的該一個或多個。
在一些實施例中,用戶接口可在鎖定屏幕中被提供,或者在主屏幕中被提供。主屏幕可以是在解鎖狀態下按壓主按鈕之后而顯示的屏幕。鎖定屏幕可以是在長時間的不活動之后按壓主按鈕以喚醒裝置之后顯示的屏幕。在實施例中,鎖定屏幕具有比主屏幕少的可用于顯示應用的顯示空間,因為鎖定屏幕的一部分被保留用于裝置解鎖。在一些實施例中,用戶接口可與已經運行的應用相關聯。作為示例,用戶接口可以是具有與運行的音樂應用相關聯的音樂控件的音樂播放器接口,如圖6所示。
圖6示出了與已經運行的應用相關聯的裝置602的示例性用戶接口600。用戶接口600可以是音樂應用的用戶接口,但是文中還可想到不同應用的其它用戶接口。用戶接口600可由觸屏顯示器604提供。觸屏顯示器604可顯示音頻控件608、音量控件610、歌曲標題612、和/或專輯封面614。音頻控件608可提供用于快進、倒回、播放和暫停歌曲的用戶接口。音量控件610允許用戶調整輸出聲音的音量。歌曲標題612和專輯封面614可顯示關于正在播放的歌曲的信息。在實施例中,當用戶接口600由觸屏顯示器604顯示時,裝置的602的背光可被照亮。背光的照亮允許用戶看到運行的應用,并且注意到裝置602運行建議的應用。通過自動運行音樂應用并且向用戶提供用戶接口600,裝置602可通過允許用戶訪問他或她希望的應用而無需點擊一個或多個圖標,提高了用戶體驗。
用戶接口600的部分可在一些情況下被隱藏。例如,如果裝置602的專家中心(例如,圖3中的專家中心320)判定另一應用的優先級高于所建議的應用,專輯封面614可被隱藏,并且另一應用可作為替代被顯示。另一應用可被顯示為顯示器604上的用于運行該另一應用的可訪問圖標。在其它實施例中,另一應用可被顯示為通知,當用戶點擊該通知時允許訪問另一應用的圖標。在這樣的情況中,通知將替代專輯封面614被顯示。在實施例中,如果用戶接口被顯示在鎖定屏幕上,則通知可也可被顯示在鎖定屏幕上。因此,可使得用戶注意到并且有機會運行被認為具有更高優先級的應用。
VI.運行應用的時間限制
在實施例中,如果所識別的應用在一段時間內未被訪問,則裝置可去除用戶接口,就好像起初沒有提供用戶接口一樣。如果用戶在一段時間內不訪問該應用,則認為用戶對于訪問該應用不感興趣。因此,用戶接口被去除,使得用戶不能訪問所識別的應用,并且用戶不會分心。
圖7A和7B是示出根據實施例的用于去除用戶接口的方法的流程圖。具體而言,圖7A是示出了在經過了一段時間之后去除用戶接口的方法700的流程圖。圖7B是在閾值時間段內觸發事件已經被去除之后去除用戶接口的方法703的流程圖。方法700和703可完全或者部分地由裝置執行。
參照圖7A,方法700通過在塊701向用戶提供用戶接口開始。塊701可如文中參照圖5論述的塊512處提及的那樣執行。
在塊702,裝置確定自用戶接口被首次提供給用戶以來是否已經經過了閾值時間段。用戶接口可在鎖定屏幕或者主屏幕中被提供給用戶。在實施例中,閾值時間段表示在將用戶接口提供給用戶之后馬上開始的預定時間段,其中用戶沒有與裝置交互。
閾值時間段可依賴于觸發事件的類型而改變。例如,如果觸發事件是一種涉及直接用戶交互的事件(例如,預期導致事件的用戶的認知行為),則閾值時間段可相對短,例如15到30秒。這樣的觸發事件的例子包括將一組耳機插入耳機插孔。另一個示例包括通過在長時間段之后按壓按鈕來喚醒裝置。閾值時段可相對短,因為可假定用戶正與電話直接交互,并且可立即注意到輸出的被識別的應用。由于用戶立即注意到被識別的應用,因此被識別的應用未被訪問的短時間段的過去表明用戶不打算訪問被識別的應用。
作為替代,如果觸發事件是一種不涉及直接用戶交互的事件,則閾值時段可比用于涉及直接用戶交互的觸發事件的閾值時段長。在實施例中,用于不涉及直接用戶交互的觸發事件的閾值時段可相對長,例如15到30分鐘。一個這樣的示例包括到達位置。當裝置到達特定位置時,假定用戶在旅行并且沒有關注裝置。用戶可能不會馬上注意到被輸出的被識別的應用。因此,在用戶檢查裝置并且注意到被識別的應用之前,會經過較長的時間。
在塊704,如果經過了閾值時間段,則用戶接口可被去除,從而用戶可能根本不會認識到被建議了應用。但是,如果閾值段還沒有經過,則在塊706,裝置確定用戶是否想要訪問該應用。用戶可經由用戶接口以任何形式的用戶輸入來指示他或她想要訪問應用,例如通過與觸敏屏交互、按下按鈕、翻轉開關或者使用生物識別裝置。
如果確定用戶還沒有指示他或她想要訪問應用,則裝置可在塊701繼續向用戶提供用戶接口。但是,如果裝置接收到用戶想要訪問應用的指示,則在塊708,裝置可運行該應用。因此,裝置可通過提供到所希望的應用的快捷方式來節省用戶的時間,從而增強用戶體驗。
在一些實施例中,用戶接口可在閾值時間的持續期之前被去除。如圖7B所示,在塊710,裝置確定觸發事件是否已經被去除,例如是否已經檢測到與觸發事件相反的事件。例如,如果觸發事件是將一組耳機插入耳機插孔,則觸發事件的去除是從耳機插孔拔出該組耳機。在另一示例中,如果觸發事件是建立藍牙連接,則觸發事件的去除是斷開藍牙連接。觸發事件的去除可被裝置解釋為指的是用戶不打算訪問建議的應用。因此,如果觸發事件被去除,則用戶接口可在塊704被去除,例如應用可被清除,并且用于該應用的任何用戶接口可被隱藏。
VII.訓練例程
由于在移動裝置的使用期間累積了歷史信息,預測模型(例如,圖4中討論的預測模型1到N)可在考慮到新歷史信息的情況下被定期訓練(即,更新)。在訓練之后,預測模型1到N可根據用戶和移動裝置之間的最新交互模式更準確地建議應用和動作。當大量的歷史信息已被記錄時,訓練預測模型1到N可最有效。因此,訓練可被以足夠長的時間間隔進行,以允許移動裝置檢測與用戶的大量交互。但是,訓練之間等待過長時間會妨礙預測引擎的適應性。因此,訓練之前的合適的時間段可在15到20小時之間,比如18小時。
訓練預測模型1到N會花費時間,并且可能干擾與移動裝置的使用。因此,訓練可在用戶最不可能使用裝置時發生。一種預測用戶將不使用裝置的方式是在裝置不被使用時(例如當沒有按鈕按下時以及當裝置不移動時)等待一段時間。這可指的是用戶處于用戶將在不久的將來的一段時間內不與電話交互的狀態,例如用戶睡覺時。對于等待時間段可使用任何合適的持續時間,例如1到3個小時。在特定實施例中,等待時間段為2個小時。
在兩個小時結束時,預測模型1到N可被更新。但是,如果在兩個小時結束之前用戶與移動裝置交互(例如,按下按鈕或者移動裝置),這兩個小時的時間段倒計時會重新開始。如果在達到不活動兩個小時之前時間段總是重新開始,則移動裝置可在絕對時間段之后強制訓練預測模型1到N。在實施例中,絕對時間段可被確定為如下的閾值時間段,在該閾值時間段用戶的手機友好性由于過期的預測模型而開始衰退。絕對時間段可在10到15小時之間,或者在特定實施例中為12小時。因此,訓練之間的最大時間量可以在28小時(18+10小時)到33小時(18+15小時)之間。在特定實施例中,最大時間量為30小時(18+12小時)。
VIII.示例
圖8是示例性裝置800的框圖,該裝置可以是移動裝置。裝置800大體上包括計算機可讀介質802、處理系統804、輸入/輸出(I/O)子系統806、無線電路808以及音頻電路810,音頻電路810包括揚聲器850和麥克風852。這些組件可以由一個或多個通信總線或信號線803耦合。裝置800可以是任何便攜式電子裝置,包括手持計算機、平板計算機、移動電話、膝上型計算機、平板裝置、媒體播放器、個人數字助理(PDA)、密鑰環、汽車鑰匙、接入卡、多功能裝置、便攜式游戲裝置、汽車顯示單元或包括這些物品中的兩個或更多個的組合的類似裝置。
應當顯而易見的是,圖7中所示的架構僅僅是裝置800的架構的一個例子,裝置800可以具有比所示的組件更多或更少的組件、或組件的不同配置。圖7中所示的各種組件可以用硬件、軟件或硬件和軟件的組合(包括一個或多個信號處理和/或應用特定集成電路)來實現。
無線電路808用于通過無線鏈路或網絡將信息發送到一個或多個其他裝置的常規電路并且接收信息,所述常規電路諸如天線系統、RF收發器、一個或多個放大器、調諧器、一個或多個振蕩器、數字信號處理器、CODEC芯片組、存儲器等。無線電路808可以使用各種協議,例如,如本文描述的協議。
無線電路808經由外設接口816耦合到處理系統804。接口816可以包括用于建立并且保持外設和處理系統804之間的通信的常規組件。無線電路808(例如,在言語識別或語音命令應用中)接收的語音和數據信息經由外設接口816被發送到一個或多個處理器818。一個或多個處理器818可配置為處理用于存儲在介質802上的一個或多個應用程序834的各種數據格式。
外設接口816將裝置的輸入和輸出外設耦合到處理器818和計算機可讀介質802。一個或多個處理器818經由控制器820與計算機可讀介質802進行通信。計算機可讀介質802可以是可以存儲供一個或多個處理器818使用的代碼和/或數據的任何裝置或介質。介質802可以包括存儲器層次體系,包括高速緩存、主存儲器和二級存儲器。
裝置800還包括用于給各種硬件組件供電的電源系統842。電源系統842可以包括電源管理系統、一個或多個電源(例如,電池、交流(AC))、再充電系統、電源故障檢測電路、電源轉換器或逆變器、電力狀態指示器(例如,發光二極管(LED))、以及典型地與移動裝置中的電力的產生、管理和分配相關聯的任何其他的組件。
在一些實施例中,裝置800包括照相機844。在一些實施例中,裝置800包括傳感器846。傳感器可以包括加速度計、指南針、陀螺儀、壓力傳感器、音頻傳感器、光傳感器、氣壓表等。傳感器846可以用于感測地點方面,諸如地點的聽覺或光簽名。
在一些實施例中,裝置800可以包括GPS接收器,有時被稱為GPS單元848。移動裝置可以使用衛星導航系統(諸如全球定位系統(GPS))來獲得位置信息、時序信息、海拔高度或其他導航信息。在操作期間,GPS單元可以從繞地球的軌道運行的GPS衛星接收信號。GPS單元對這些信號進行分析以做出渡越時間和距離估計。GPS單元可以確定移動裝置的當前位置(當前地點)。基于這些估計,移動裝置可以確定定位方位(location fix)、海拔高度和/或當前速度。定位方位可以是地理坐標,諸如緯度和經度信息。
一個或多個處理器818運行存儲在介質802中的各種軟件組件以執行用于裝置800的各種功能。在一些實施例中,軟件組件包括操作系統822、通信模塊(或指令集)824、定位模塊(或指令集)826、音頻回放應用選擇模塊828、以及其他應用(或指令集)834(諸如汽車定位器app和導航app)。
操作系統822可以是任何合適的操作系統,包括iOS、Mac OS、Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS或嵌入式操作系統(諸如VxWorks)。操作系統可以包括各種過程、指令集、軟件組件和/或用于控制和管理一般系統任務(例如,存儲器管理、存儲裝置控制、電源管理等)的驅動器,并且有助于各種硬件和軟件組件之間的通信。
通信模塊824有助于與其他裝置通過一個或多個外部端口836或者經由無線電路808的通信,并且包括用于處理從無線電路808和/或外部端口836接收的數據的各種軟件組件。外部端口836(例如,USB、FireWire、Lightning連接器、60腳連接器等)適于直接地或者通過網絡(例如,互聯網、無線LAN等)間接地耦合到其他裝置。
定位/運動模塊826可以幫助確定裝置800的當前位置(例如,坐標或其他地理地點標識符)和運動。現代的定位系統包括基于衛星的定位系統(諸如全球定位系統(GPS))、基于“小區ID”的蜂窩網絡定位、以及基于Wi-Fi網絡的Wi-Fi定位技術。GPS還依賴于多個衛星的可見性來確定位置估計,該位置估計在室內或者在“城市峽谷”中可能是不可見的(或者具有微弱的信號)。在一些實施例中,定位/運動模塊826從GPS單元848接收數據,并且對信號進行分析以確定移動裝置的當前位置。在一些實施例中,定位/運動模塊826可以使用Wi-Fi或蜂窩定位技術來確定當前地點。例如,可以使用附近的小區站點和/或Wi-Fi接入點的知曉、還有它們的地點的知曉來估計移動裝置的地點。標識Wi-Fi或蜂窩發送器的信息在無線電路808處被接收,并且被傳遞給定位/運動模塊826。在一些實施例中,定位模塊接收一個或多個發送器ID。在一些實施例中,可以將發送器ID序列與將發送器ID映射或關聯到對應發送器的位置坐標的參考數據庫(例如,小區ID數據庫、Wi-Fi參考數據庫)進行比較,并且基于對應發送器的位置坐標來計算裝置800的估計位置坐標。不管使用的特定定位技術如何,定位/運動模塊826接收從其可以導出定位方位的信息,對該信息進行解譯,并且返回地點信息,諸如地理坐標、緯度/經度或其他定位方位數據。
觸發事件模塊828可包括例如文中參照圖2描述的各種子模塊或系統。此外,預測模塊830可包括如文中參照圖3描述的各種子模塊或系統。
移動裝置上的一個或多個應用834可包括安裝在裝置800上的任何應用,包括但不限于瀏覽器、地址本、聯系人列表、電子郵件、即時信息、文字處理、鍵盤仿真、窗口小部件、啟用JAVA的應用、加密、數字權限管理、語音識別、語音復制、音樂播放器(其回放存儲在一個或多個文件(諸如MP3或AAC文件)中的記錄的音樂)等。
可以存在其他模塊或指令集(未示出),諸如圖形模塊、時間模塊等。例如,圖形模塊可以包括用于在顯示器表面上渲染、動畫繪制和顯示圖形對象(包括但不限于文本、網頁、圖標、數字圖像、動畫等)的各種常規的軟件組件。在另一個例子中,定時器模塊可以是軟件定時器。定時器模塊也可以用硬件實現。時間模塊可以維護用于任何數量的事件的各種定時器。
I/O子系統806可以耦合到顯示系統(未示出),顯示系統可以是觸敏(即,觸摸屏)顯示器。顯示器在GUI中向用戶顯示視覺輸出。視覺輸出可以包括文本、圖形、視頻以及它們的任何組合。視覺輸出中的一些或全部可以對應于用戶接口對象。顯示器可以使用LED(發光二極管)、LCD(液晶顯示器)技術或LPD(發光聚合物顯示器)技術,但是在其他實施例中可以使用其他顯示技術。
在一些實施例中,I/O子系統806可以包括顯示器和用戶輸入裝置,諸如鍵盤、鼠標和/或跟蹤板。在一些實施例中,I/O子系統806可以包括觸敏顯示器。觸敏顯示器也可以基于觸覺和/或觸感接觸從用戶接受輸入。在一些實施例中,觸敏顯示器形成接受用戶輸入的觸敏表面。觸敏顯示器/表面(連同任何相關聯的模塊和/或介質802中的指令集)在觸敏顯示器上的接觸(以及接觸的任何移動或釋放)發生時檢測該接觸并且將檢測到的接觸轉換為與顯示在觸摸屏幕上的用戶接口對象(諸如一個或多個軟鍵)的交互。在一些實施例中,觸敏顯示器和用戶之間的接觸點對應于用戶的一個或多個手指。用戶可以使用任何合適的對象或附加物(諸如觸針、筆、手指頭等)來與觸敏顯示器進行接觸。觸敏顯示器表面可以使用任何合適的觸摸敏感性技術(包括電容式、電阻式、紅外和表面聲波技術、以及其他接近傳感器陣列或用于確定與觸摸敏感顯示器的一個或多個接觸點的其他元件)來檢測接觸及其任何移動或釋放。
此外,I/O子系統可以耦合到一個或多個其他的物理控制裝置(未示出),諸如按鈕、按鍵、開關、波動按鈕、轉盤、滑動開關、操縱桿、LED等,這些物理控制裝置用于控制或執行各種功能,諸如電源控制、揚聲器音量控制、鈴聲響度、鍵盤輸入、滾動、保持、菜單、屏幕鎖、清除和結束通信等。在一些實施例中,除了觸摸屏之外,裝置800還可以包括用于啟動或停用特定功能的觸控板(未示出)。在一些實施例中,觸控板是裝置的與觸摸屏不同的不顯示視覺輸出的觸敏區域。觸控板可以是與觸敏顯示器分離的觸敏表面或者由觸敏顯示器形成的觸敏表面的延伸部分。
在一些實施例中,本文描述的操作中的一些或全部可以使用在用戶的裝置上執行的應用來執行。電路、邏輯模塊、處理器和/或其他組件可以被配置為執行本文描述的各種操作。本領域技術人員將意識到,根據實現,這樣的配置可以通過特定組件的設計、設置、互連和/或編程來實現,并且再次根據實現,配置的組件可以或者不可以針對不同的操作重新配置。例如,可編程處理器可以通過提供合適的可執行代碼來配置;專用邏輯電路可以用適當連接邏輯門和其他電路元件來配置;等等。
本申請中描述的軟件組件或功能中的任何一個可以被實現為將被處理器執行的軟件代碼,其中,該軟件代碼可以為任何合適的計算機語言,諸如,舉例來說,Java、C、C++、C#、Objective-C、Swift、或使用常規的或面向對象的技術的腳本語言(諸如Perl或Python)。軟件代碼可以被作為一系列指令或命令存儲在計算機可讀介質上以供存儲和/或傳輸。合適的非暫時性計算機可讀介質可以包括隨機存取存儲器(RAM)、只讀存儲器(ROM)、磁性介質(諸如硬盤驅動器或軟盤)、或光學介質(諸如緊湊盤(CD)或DVD(數字多功能盤))、閃存等。計算機可讀介質可以是這樣的存儲或傳輸裝置的任何組合。
合并有本發明的各種特征的計算機程序可被編碼在各種計算機可讀存儲介質上;合適的介質包括磁盤或磁帶、諸如壓縮盤(CD)或DVD(數字通用盤)的光學存儲介質、閃存等。通過程序代碼比恩編碼的計算機可讀存儲介質可被兼容裝置封裝,或者與其它裝置分離地提供。另外,程序代碼可經由有線光學和/或遵從各種協議的無線網絡(包括因特網)被編碼和傳輸,從而允許分配,例如經由因特網下載被分配。任何這樣的計算機可讀介質可駐留在單個計算機產品(例如,固態驅動器、硬盤驅動器、CD或者整個計算機系統)上或內,并且可存在于系統或網絡中的不同計算機產品上或內。計算機系統可包括監視器、打印機或者用于將文中提及的結果中的任一個提供給用戶的其它合適的顯示器。
雖然已經參照具體實施例描述了本發明,但是應理解,本發明預期覆蓋以下權利要求的范圍內的所有變型和等同。