專利名稱:復(fù)合姿勢-語音命令的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機系統(tǒng)的控制,尤其涉及使用結(jié)合了聲音(諸如 語音或拍手)和身體位置(諸如姿態(tài)或姿勢)兩者的復(fù)合命令的系統(tǒng)和方法。
背景技術(shù):
通常向計算機游戲和其他多媒體應(yīng)用的用戶提供用戶控制,用戶控制允許用戶完成基本功能(諸如瀏覽和選擇內(nèi)容)以及執(zhí)行更復(fù)雜的功能(諸如操縱游戲人物)。通常, 這些控制通過諸如鼠標、鍵盤、話筒、圖像源、音頻源、遙控器等輸入設(shè)備作為輸入被提供給控制器。遺憾的是,學(xué)習(xí)和使用此類控制命令可能是困難或麻煩的,由此造成了用戶與完全享受此類游戲、應(yīng)用及其特征之間的障礙。
發(fā)明內(nèi)容
公開了用于使用結(jié)合了聲音(諸如語音或拍手)和身體位置(諸如姿態(tài)或姿勢) 兩者的復(fù)合命令的系統(tǒng)和方法。多媒體對象被顯示在用戶界面上。用戶界面的控制器包括用于捕捉由用戶產(chǎn)生的任何聲音以及用戶的靜態(tài)和動態(tài)身體位置(包括姿態(tài)或姿勢)的捕捉設(shè)備。該控制器處理所捕捉的數(shù)據(jù)以識別身體位置命令和聲音命令。有利地,使用身體位置命令和聲音命令的組合允許用分布在不同的操作狀態(tài)級別上的較小命令集合來實現(xiàn)該系統(tǒng)。因此,處理身體位置命令和聲音命令的組合增強了識別軟件的可靠性和準確性。例如,捕捉設(shè)備可捕捉與身體位置移動有關(guān)的輸入并將該移動識別為所定義的姿勢。給定所捕捉的輸入,與識別出的姿勢相關(guān)聯(lián)的語音或聲音命令的有限集合可被標識并被加載到控制器中。在接收到聲音輸入時,基于所加載的聲音命令集合識別聲音輸入。最后,基于識別出的姿勢以及識別出的聲音命令的組合執(zhí)行動作。有利地,可在用戶界面上提供上下文菜單以幫助用戶列出可用的語音或聲音命令,且這些上下文菜單本質(zhì)上可以是分層的。例如,第一姿勢可導(dǎo)致使用第一語音庫。然而,一旦說出來自第一語音庫的語音命令,另一語音命令集合可變得可用,且第二語音庫可被加載到控制器中。以類似方式,可在適當時在上下文菜單中向用戶介紹不同級別的語音命令。捕捉設(shè)備可大致同時捕捉身體位置輸入和聲音輸入。在這種情形中,身體位置輸入可被用于提供用于驗證聲音命令的上下文,或者聲音命令可被用于提供用于驗證身體位置命令的上下文。此外,權(quán)重可被賦給識別出的命令以幫助提供用于決定身體位置輸入和 /或聲音輸入的正確解釋的上下文。提供本概述以便以簡化形式介紹將在以下的具體實施方式
中進一步描述的一些概念。對本文公開的設(shè)備和方法的性質(zhì)和優(yōu)點的進一步理解可通過參考完整說明書和附圖來實現(xiàn)。本發(fā)明內(nèi)容并非旨在標識所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。此外,所要求保護的主題不限于解決在本發(fā)明的任一部分中提及的任何或所有缺點的實現(xiàn)。
圖1 示出具有用于捕捉和跟蹤用戶身體位置和移動以及接收用戶聲音輸入的捕捉設(shè)備的示例性多媒體環(huán)境中的用戶。圖2是示出耦合到計算設(shè)備的捕捉設(shè)備的一個實施例的框圖。圖3是正被跟蹤的骨架的示意表示。圖4是示出用于處理從捕捉設(shè)備接收的數(shù)據(jù)的計算系統(tǒng)的一個實施例的框圖。圖5是示出用于處理從捕捉設(shè)備接收的數(shù)據(jù)的計算系統(tǒng)的另一個實施例的框圖。圖6是描述用于使用語音命令與計算系統(tǒng)進行用戶交互的過程的一個實施例的流程圖。圖7A是描述用于使用手勢和語音命令與計算系統(tǒng)進行用戶交互的過程的一個實施例的流程圖。圖7B是描述除了圖7A中所示的那些步驟以外的用于使用手勢和語音命令與計算系統(tǒng)進行用戶交互的其他步驟的流程圖。圖7C-7D是描述圖7A所示的過程中用于識別手勢的附加細節(jié)的流程圖。圖7E是描述圖7A所示的過程中用于識別語音命令的附加細節(jié)的流程圖。圖8A是描述用于使用手勢和語音命令與計算系統(tǒng)進行用戶交互的過程的替換實施例的流程圖。圖8B是描述根據(jù)圖8A將姿勢與語音命令相關(guān)的一種選項的流程圖。圖8C是描述根據(jù)圖8A將姿勢與語音命令相關(guān)的另一種選項的流程圖。圖8D是描述根據(jù)圖8A將姿勢與語音命令相關(guān)的另一種選項的流程圖。圖9A是描述用于使用手勢和語音命令與計算系統(tǒng)進行用戶交互的過程的替換實施例的流程圖。圖9B是描述用于使用手勢和語音命令與計算系統(tǒng)進行用戶交互的過程的替換實施例的流程圖。圖9C是描述用于使用特定的手勢和上下文語音命令與計算系統(tǒng)進行用戶交互的過程的一個實施例的流程圖。圖IOA是實現(xiàn)圖7A的流程圖的第一級用戶界面的圖示。圖IOB是實現(xiàn)圖7B的流程圖的第二級用戶界面的圖示。圖IOC是第三級用戶界面的圖示。
具體實施例方式用于多媒體娛樂系統(tǒng)的復(fù)合命令可結(jié)合聲音命令和身體位置命令兩者。多媒體對象被顯示在用戶界面上。用戶界面的控制器包括用于捕捉用戶的身體位置和任何移動、以及由用戶產(chǎn)生的任何聲音的捕捉設(shè)備。該控制器處理所捕捉的信息以識別預(yù)定義的聲音命令和身體位置命令,包括姿態(tài)、姿勢和語音命令。如本文中所使用的,術(shù)語“姿勢”旨在涵蓋所有身體位置命令,無論是由靜態(tài)姿態(tài)還是動態(tài)移動(諸如手勢)構(gòu)成。在一個實施例中,一旦姿勢被識別出,則隨后將與該姿勢有關(guān)的聲音或語音命令的集合加載到控制器中。這樣,可以向用戶提供聲音或語音命令的更加有限和精確的集合。 例如,用戶講話,控制器將該講話識別為語音命令。響應(yīng)于識別出的語音命令,執(zhí)行預(yù)定義的動作??稍诮缑嫔巷@示幫助菜單/消息,其示出操作狀態(tài)以及與所顯示的對象有關(guān)的可用聲音/語音命令。在另一 實施例中,第一語音命令被用于將后續(xù)語音命令的集合縮小為與第一語音命令相關(guān)聯(lián)的語音命令的較小子集。例如,當用戶說出第一語音命令時,可顯示向用戶指示能遵循第一語音命令的語音命令的集合的幫助消息或菜單。在接收和識別相關(guān)語音命令的整個集合時,可執(zhí)行必要的動作。替換地,姿勢和部分語音命令的組合可使用有幫助的上下文菜單引導(dǎo)用戶通過每一級命令。在另一實施例中,姿勢和語音命令實質(zhì)上是同時被接收的(或換言之在時間上重疊),且將兩種識別方案相關(guān),從而與識別相關(guān)聯(lián)的準確性和置信度得以提高。此外,對于應(yīng)用的每個增量部分,特定操作狀態(tài)的可用姿勢和語音命令的數(shù)量要小得多,由此簡化了對系統(tǒng)的使用以及處理方案兩者。圖1示出用戶18在拳擊視頻游戲中與多媒體娛樂系統(tǒng)10交互。有利地,系統(tǒng)10 被配置成捕捉、分析和跟蹤由用戶18在系統(tǒng)10的捕捉設(shè)備20的范圍內(nèi)作出的移動和聲音。這允許用戶使用語音命令、姿勢、或姿勢與語音命令的組合與系統(tǒng)10交互,如以下進一步描述的。系統(tǒng)10包括運行拳擊應(yīng)用的控制器12??刂破?2是計算系統(tǒng),諸如計算機、游戲系統(tǒng)、多媒體控制臺等。在一個實施例中,計算系統(tǒng)12包括硬件組件和/或軟件組件,從而計算系統(tǒng)12被用于執(zhí)行諸如游戲應(yīng)用或其他應(yīng)用等的應(yīng)用。在一個實施例中,計算系統(tǒng) 12包括執(zhí)行存儲在處理器可讀存儲設(shè)備上的用于執(zhí)行以下描述的過程的指令的處理器,如標準化處理器、專用處理器、微處理器等。例如,由捕捉設(shè)備20捕捉的移動和聲音被發(fā)送給控制器12進行處理,其中識別軟件將分析該移動和聲音以確定其在該應(yīng)用的上下文中的意義。
捕捉設(shè)備20可包括相機或成像設(shè)備23,其在視覺上監(jiān)視諸如用戶18的一個或多個用戶,從而可以捕捉、分析并跟蹤諸如用戶所執(zhí)行的姿態(tài)、姿勢和/或其他移動之類的身體位置和移動,來執(zhí)行應(yīng)用中的一個或多個動作或控制和/或動畫化化身或屏上人物。此夕卜,捕捉設(shè)備20可包括用于檢測用戶18發(fā)出的語音命令和其他聲音(諸如拍手)的話筒 30。捕捉設(shè)備的細節(jié)在2010年3月12日提交的題為“Bionic Motion(仿生學(xué)運動)”并通過整體引用合并于此的共同待審美國申請?zhí)?2/722,587中描述。系統(tǒng)10連接到視聽設(shè)備16,視聽設(shè)備16包括用于應(yīng)用圖形的顯示設(shè)備15 (諸如電視、監(jiān)視器、高清晰度電視(HDTV)、或其他顯示設(shè)備)和/或音頻回放設(shè)備(諸如揚聲器 14)。例如,控制器12可包括諸如圖形卡之類的視頻適配器和/或諸如聲卡之類的音頻適配器,這些適配器提供與在控制器12上運行的應(yīng)用相關(guān)聯(lián)的音頻和視頻信號。視聽設(shè)備16 從控制器12接收音頻和視頻信號并播放內(nèi)容。根據(jù)一個實施例,視聽設(shè)備16可經(jīng)由諸如 S-視頻電纜、同軸電纜、HDMI電纜、DVI電纜、VGA電纜、分量視頻電纜等標準連接被連接到控制器12,從而從控制器接收的視頻信號被顯示在顯示監(jiān)視器15上,而從控制器接收的音頻信號通過揚聲器14被回放。在圖1中描繪的拳擊游戲應(yīng)用中,控制器12還驅(qū)動視聽設(shè)備16為用戶18提供拳擊對手22的視覺表示。有利地,控制器12 還提供用戶18的視覺表示或化身24,且用戶通過他或她自己的移動來控制該化身。例如,用戶18可在物理空間中揮拳猛擊,這使得用戶化身24在游戲空間中揮拳猛擊。因此,根據(jù)一示例實施例,計算機系統(tǒng)12和捕捉設(shè)備20 識別并分析物理空間中用戶18的重拳從而使得該重拳可被解釋為對游戲空間中的用戶化身24的游戲控制和/或該重拳的運動可用于動畫化游戲空間中的用戶化身24。用戶18的其他移動也可被解釋為應(yīng)用中的其他控制或動作,和/或用于動畫化用戶化身,諸如上下快速擺動、閃避、滑步、封堵、用拳猛擊或揮動各種不同力量的重拳的控制。此外,某些移動可被解釋為可對應(yīng)于除控制用戶化身24之外的動作的控制。例如,在一實施例中,用戶可使用移動來結(jié)束、暫?;虮4嬗螒?、選擇級別、查看高分、與朋友交流等。根據(jù)其他實施例,用戶18可使用姿態(tài)或移動來從主用戶界面選擇游戲或其他應(yīng)用,諸如指向該對象。因此,在示例實施例中,用戶18的全范圍運動可以用任何合適的方式來獲得、使用和分析以與應(yīng)用進行交互、以及靜態(tài)定位(諸如指向姿勢)。根據(jù)其他示例實施例,跟蹤系統(tǒng)10還可用于將目標移動解釋為游戲領(lǐng)域之外的操作系統(tǒng)和/或應(yīng)用控制。例如,事實上操作系統(tǒng)和/或應(yīng)用的任何可控方面可由諸如用戶18等目標的移動來控制。圖2示出耦合到計算設(shè)備12的捕捉設(shè)備20的一個實施例。捕捉設(shè)備20被配置成捕捉音頻和視頻信息兩者,諸如由用戶18作出的姿態(tài)或移動、或者如用戶18發(fā)出的聲音命令之類的聲音。所捕捉的視頻具有包括深度圖像的深度信息,深度圖像可包括用任何合適的技術(shù),包括例如飛行時間、結(jié)構(gòu)化光、立體圖像、或其他已知方法獲得的深度值。根據(jù)一個實施例,捕捉設(shè)備20可將深度信息組織為“Z層”,即與從深度相機沿著其視線延伸的Z 軸正交的層。捕捉設(shè)備20包括相機組件23,諸如捕捉場景的深度圖像的深度相機。深度圖像包括所捕捉的場景的二維(2D)像素區(qū)域,其中2D像素區(qū)域中的每一像素可表示深度值,諸如所捕捉的場景中的物體距相機的以厘米、毫米等計的距離。如圖2的實施例中所示,相機組件23包括用于捕捉場景的深度圖像的紅外(IR) 光組件25、三維(3D)相機26、和RGB (視覺圖像)相機28。例如,在飛行時間分析中,捕捉設(shè)備20的IR光組件25可以將紅外光發(fā)射到場景上,然后,使用例如3D相機26和/或RGB 相機28來感測從場景中的一個或多個目標和對象的表面反向散射的光。某些實施例中,可使用脈沖式紅外光從而可以測量出射光脈沖和對應(yīng)的入射光脈沖之間的時間并將其用于確定從捕捉設(shè)備20到場景中目標或?qū)ο笊系奶囟ㄎ恢玫奈锢砭嚯x。此外,在其他示例實施例中,可比較出射光波的相位與入射光波的相位以確定相移。然后可以使用相移來確定從捕捉設(shè)備到目標或?qū)ο笊系奶囟ㄎ恢玫奈锢砭嚯x。根據(jù)另一示例實施例,可使用飛行時間分析通過經(jīng)由包括例如快門式光脈沖成像的各種技術(shù)分析反射光束隨時間的強度變化來間接地確定從捕捉設(shè)備20到目標或?qū)ο笊咸囟ㄎ恢玫奈锢砭嚯x。在另一示例實施例中,捕捉設(shè)備20可使用結(jié)構(gòu)化光來捕捉深度信息。在這樣的分析中,圖案化光(即,被顯示為諸如網(wǎng)格圖案、條紋圖案、或不同圖案等已知圖案的光)可經(jīng)由例如IR光組件25被投影到場景上。在撞擊到場景中一個或多個目標或?qū)ο蟮谋砻鏁r, 作為響應(yīng),圖案可變形。圖案的這種變形可由例如3-D相機26和/或RGB相機28 (和/或其他傳感器)來捕捉,然后可被分析以確定從捕捉設(shè)備到目標或?qū)ο笊系奶囟ㄎ恢玫奈锢砭嚯x。在一些實現(xiàn)中,IR光組件25與相機28和26分開,使得可以使用三角測量來確定距相機28和26的距離。在一些實現(xiàn)中,捕捉設(shè)備20將包括感測IR光的專用IR傳感器或具有IR濾波器的傳感器。根據(jù)另一實施例,捕捉設(shè)備20可包括兩個或更多物理上分開的相機,這些相機可從不同角度查看場景來獲得可被解析以生成深度信息的視覺立體數(shù)據(jù)。其他類型的深度圖像傳感器也可被用來創(chuàng)建深度圖像。更多細節(jié)可 參見以下美國專利申請,其皆通過整體引用合并于此2009年4月13 日提交的題為“Gesture Recognizer System Architecture (姿勢識別器系統(tǒng)架構(gòu))”的美國專利申請?zhí)?2/422,661 ;2010年3月12日提交的題為“Bionic Motion (仿生學(xué)運動)” 的美國專利申請?zhí)?2/722,587 ;2009年2月23日提交的題為“Standard Gestures(標準姿勢)”的美國專利申請?zhí)?2/391,150 ;以及2009年5月29日提交的題為“Gesture Tool (姿勢工具),,的美國專利申請?zhí)?2/474,655。捕捉設(shè)備20還包括話筒30。話筒30包括接收聲音并以公知方式將其轉(zhuǎn)換成電信號的變換器或傳感器。根據(jù)一個實施例,話筒30被用來減少系統(tǒng)10中的捕捉設(shè)備20和控制器12之間的反饋。此外,話筒30可用于接收包括由用戶18生成以用于選擇和控制應(yīng)用 (包括由控制器12執(zhí)行的游戲和其他應(yīng)用)的語音命令的聲音。捕捉設(shè)備20還包括存儲器組件34,存儲器組件34存儲由處理器32執(zhí)行的指令、 由3-D相機26和/或RGB相機28所捕捉的圖像或圖像幀、由話筒30捕捉的聲音信號、或任何其他合適的信息、圖像、聲音等等。根據(jù)一示例實施例,存儲器組件34可包括隨機存取存儲器(RAM)、只讀存儲器(ROM)、高速緩存、閃存、硬盤、或任何其他合適的存儲組件。如圖 2所示,在一個實施例中,存儲器組件34可以是與圖像捕捉組件23和處理器32進行通信的單獨的組件。根據(jù)另一實施例,存儲器組件34可被集成到處理器32和/或圖像捕捉組件 23中。如圖2所示,捕捉設(shè)備20可經(jīng)由通信鏈路36與控制器或計算系統(tǒng)12進行通信。 通信鏈路36可以是包括例如USB連接、火線連接、以太網(wǎng)電纜連接等的有線連接和/或例如無線802. lib、g、a或η連接等的無線連接。根據(jù)一個實施例,計算系統(tǒng)12可經(jīng)由通信鏈路36向捕捉設(shè)備20提供可用于確定何時捕捉例如場景的時鐘。另外,捕捉設(shè)備20將由例如3-D相機26和/或RGB相機28捕捉的深度信息和視覺(例如,RGB)圖像經(jīng)由通信鏈路36提供給計算系統(tǒng)12。在一個實施例中,深度圖像和視覺圖像以30幀每秒的速率傳送。 計算系統(tǒng)12然后可使用該模型、深度信息、以及所捕捉的圖像來例如控制諸如游戲或文字處理程序等的應(yīng)用和/或動畫化化身或屏上人物。圖2描繪了各種軟件模塊。例如,計算系統(tǒng)12包括深度圖像處理和骨架跟蹤模塊 50,該模塊使用深度圖像來跟蹤可由深度相機檢測的一個或多個人。深度圖像處理和骨架跟蹤模塊50向應(yīng)用196提供跟蹤信息,該應(yīng)用可以是視頻游戲、生產(chǎn)性應(yīng)用、通信應(yīng)用或其他軟件應(yīng)用等。音頻數(shù)據(jù)和視覺圖像數(shù)據(jù)也被提供給應(yīng)用52和深度圖像處理和骨架跟蹤模塊50。應(yīng)用52將跟蹤信息、視覺圖像數(shù)據(jù)提供給姿勢識別器引擎54以及將音頻數(shù)據(jù)提供給語音識別器引擎56。在另一實施例中,姿勢識別器引擎54從深度圖像處理和骨架跟蹤模塊50直接接收跟蹤信息,以及從捕捉設(shè)備20直接接收視覺圖像數(shù)據(jù),并且語音識別器引擎56從捕捉設(shè)備20直接接收音頻數(shù)據(jù)。姿勢識別器引擎54與過濾器60、62、64、……、66的集合相關(guān)聯(lián),每一過濾器具有關(guān)于可由捕捉設(shè)備20檢測的任何人或?qū)ο髨?zhí)行的姿勢、動作或狀況的信息。例如,來自捕捉設(shè)備20的數(shù)據(jù)可由過濾器60、62、64、……、66處理,以便標識一個用戶或一組用戶何時執(zhí)行了一個或多個姿勢或其他動作,諸如姿態(tài)或其他靜態(tài)身體位置。那些姿勢可與應(yīng)用52 的各種控制、對象或狀況相關(guān)聯(lián)。由此,計算環(huán)境12可借助過濾器使用姿勢識別器引擎54 來解釋移動。同樣,語音識別器引擎56與語音庫70、72、74、……、76的集合相關(guān)聯(lián),每一個語音庫具有關(guān)于與可用捕捉設(shè)備20檢測的用戶所執(zhí)行的特定姿勢相關(guān)聯(lián)的語音命令的信息。 例如,來自捕捉設(shè)備20的數(shù)據(jù)可由過濾器70、72、74、……、76處理,以便標識當一個用戶或一組用戶執(zhí)行了由系統(tǒng)10識別的特定姿勢時可用的語音命令或其他聲音命令的特定且有限的集合。姿勢和語音命令的組合可與應(yīng)用52的各種控制、對象或狀況相關(guān)聯(lián)。因此, 計算環(huán)境12可以借助過濾器使用姿勢識別器引擎54來解釋姿態(tài)或移動,并且可借助語音庫使用語音識別器引擎56來解釋聲音。圖2的捕捉設(shè)備20向計算系統(tǒng)12提供RGB圖像(或其他格式或色彩空間的視覺圖像)和深度圖像。深度圖像可以是多個觀測到的像素,其中每個觀測到的像素具有觀測到的深度值。例如,深度圖像可包括所捕捉的場景的二維(2-D)像素區(qū)域,其中2-D像素區(qū)域中的每一像素可具有深度值,如所捕捉的場景中的對象距捕捉設(shè)備的距離。系統(tǒng)將使用RGB圖像和深度圖像來跟蹤用戶的位置和/或移動。例如,系統(tǒng)將使用深度圖像來跟蹤人的骨架。可以使用許多方法通過使用深度圖像來跟蹤人的骨架。使用深度圖像跟蹤骨架的一個合適的示例在2009年10月21日提交的題為“Pose Tracking Pipeline (姿勢跟蹤流水線)”的美國專利申請?zhí)?2/603,437中提供,該申請通過整體引用合并于此?!?37申請中公開的過程包括獲取深度圖像,對數(shù)據(jù)進行降采樣,移除和/或平滑高變度噪聲數(shù)據(jù),標識并移除背景,以及將前景像素中的每一個分配給身體的不同部位。基于這些步驟,系統(tǒng)將使一模型擬合到該數(shù)據(jù)并創(chuàng)建骨架。該骨架將包括一組關(guān)節(jié)和這些關(guān)節(jié)之間的連接。圖3示出了具有15個關(guān)節(jié)(j0、jl、j2、j3、j4、j5、j6、j7、j8、j9、 jl0、jll、jl2、jl3*jl4)的示例骨架。這些關(guān)節(jié)中的每一個表示骨架中該骨架可以在χ、 y、z方向上樞轉(zhuǎn)的位置或身體上關(guān)注的位置。也可使用用于跟蹤的其他方法。合適的跟蹤技術(shù)也在以下美國專利申請中公開,所有這些申請通過整體引用結(jié)合于此2009年5月29 日提交的題為“Device for Identifying and Tracking Multiple Humans Over Time (用于隨時間標識并跟蹤多個人的設(shè)備)”的美國專利申請?zhí)?2/475,308 ;2010年1月29日提交的題為“Visual Based Identity Tracking(基于視覺的身份跟蹤)”的美國專利申請?zhí)?12/696,282 ;2009 年 12 月 18 日提交的題為“Motion Detection Using Depth Images(使用深度圖像的運動檢測”的美國專利申請?zhí)?2/641,788 ;以及2009年10月7日提交的題 為“Human Tracking System(人類跟蹤系統(tǒng))”的美國專利申請?zhí)?2/575,388。(圖2所描繪的計算系統(tǒng)12的)姿勢識別器引擎54包括多個過濾器60、62、 64、……、66來確定姿勢或動作。過濾器包括定義姿勢、動作或狀況的信息以及該姿勢、姿態(tài)、動作或狀況的參數(shù)或元數(shù)據(jù)。例如,包括一只手從身體背后到身體前方的運動的投擲可被實現(xiàn)為包括表示用戶的一只手從身體背后到身體前方的移動的信息的姿勢,該移動將由深度相機來捕捉。然后可為該姿勢設(shè)定參數(shù)。在姿勢是投擲的情況下,參數(shù)可以是該手必須達到的閾值速度、該手必須行進的距離(絕對的,或相對于用戶的整體大小)、以及識別器引擎對發(fā)生了該姿勢的置信評級。用于姿勢的這些參數(shù)可以隨著時間在各應(yīng)用之間、在單個應(yīng)用的各上下文之間、或在一個應(yīng)用的一個上下文內(nèi)變化。過濾器可以是模塊化的或是可互換的。在一個實施例中,過濾器具有多 個輸入 (這些輸入中的每一個具有一類型)以及多個輸出(這些輸出中的每一個具有一類型)。第一過濾器可用具有與第一過濾器相同數(shù)量和類型的輸入和輸出的第二過濾器來替換而不更改識別器引擎架構(gòu)的任何其他方面。例如,可以有用于駕駛的第一過濾器,該第一過濾器取骨架數(shù)據(jù)作為輸入并輸出與該過濾器相關(guān)聯(lián)的姿勢正在發(fā)生的置信度以及轉(zhuǎn)向角。在希望用第二駕駛過濾器來替換該第一駕駛過濾器的情況下——這可能是因為第二駕駛過濾器更高效且需要更少的處理資源——則可以通過簡單地用第二過濾器替換第一過濾器來這樣做,只要第二過濾器具有相同的輸入和輸出——骨架數(shù)據(jù)類型的一個輸入、以及置信度類型和角度類型的兩個輸出。過濾器不需要具有參數(shù)。例如,返回用戶的高度的“用戶高度”過濾器可能不允許任何可調(diào)節(jié)的參數(shù)。替換的“用戶高度”過濾器可具有可調(diào)節(jié)參數(shù),如在確定用戶的高度時是否考慮用戶的鞋、發(fā)型、頭飾以及體態(tài)。對過濾器的輸入可包括諸如關(guān)于用戶的關(guān)節(jié)位置的關(guān)節(jié)數(shù)據(jù)、在關(guān)節(jié)處相交的骨所形成的角度、來自場景的RGB色彩數(shù)據(jù)、以及用戶的某一方面的變化速率等內(nèi)容。來自過濾器的輸出可包括諸如正作出給定姿勢的置信度、作出姿勢運動的速度、以及作出姿勢運動的時間等內(nèi)容。姿勢識別器引擎54可具有向過濾器提供功能的基本識別器引擎。在一實施例中,姿勢識別器引擎54實現(xiàn)的功能包括跟蹤所識別的姿勢和其他輸入的隨時間輸入 (input-over-time)存檔、隱馬爾可夫模型實現(xiàn)(其中模型化系統(tǒng)被假定為馬爾可夫過程一其中當前狀態(tài)封裝了確定將來狀態(tài)所需的任何過去狀態(tài)信息,因此不必為此目的而維護任何其他過去狀態(tài)信息的過程——該過程具有未知參數(shù),并且隱藏參數(shù)是從可觀察數(shù)據(jù)來確定的)、以及求解姿勢識別的特定實例所需的其他功能。過濾器60、62、64、……、66在姿勢識別器引擎54之上加載并實現(xiàn),并且可利用姿勢識別器引擎54提供給所有過濾器60、62、64、……、66的服務(wù)。在一個實施例中,姿勢識別器引擎54接收數(shù)據(jù)來確定該數(shù)據(jù)是否滿足任何過濾器60、62、64、……、66的要求。由于這些所提供的諸如解析輸入等服務(wù)是由姿勢識別器引擎54 —次性提供而非由每一過濾器60、62、64、……、66提供的,因此這一服務(wù)在一段時間內(nèi)只需被處理一次而不是在該時間段對每一過濾器處理一次,因此減少了確定姿勢所需的處理。應(yīng)用52可使用隨姿勢識別器引擎54提供的過濾器60、62、64、……、66,或者它可提供其自己的、插入到姿勢識別器引擎54中的過濾器。在一實施例中,所有過濾器具有啟用該插入特性的通用接口。此外,所有過濾器可利用參數(shù),因此可使用以下單個姿勢工具來診斷并調(diào)節(jié)整個過濾器系統(tǒng)。關(guān)于姿勢識別器引擎54的更多信息參見2009年4月13日提交的美國專利申請 12/422, 661 "Gesture Recognizer System Architecture (姿勢識別器系統(tǒng)架構(gòu))”,該申請通過整體引用合并于此。關(guān)于識別姿勢的更多信息參見2009年2月23日提交的美國專利申請12/391,150 "Standard Gestures (標準姿勢)”;以及2009年5月29日提交的美國專利申請12/474,655 "Gesture Tool (姿勢工具)”,這兩個申請都通過整體引用結(jié)合于此。
圖4示出實現(xiàn)為多媒體控制臺100 (諸如游戲控制臺)的圖1中所示的控制器12 的一個實施例。多媒體控制臺100包括具有一級高速緩存102、二級高速緩存104和閃存 R0M(只讀存儲器)106的中央處理單元(CPU) 101。一級高速緩存102和二級高速緩存104 臨時存儲數(shù)據(jù)并因此減少存儲器訪問周期數(shù),由此改進處理速度和吞吐量。CPU 101可被提供為具有一個以上的核,以及由此的附加的一級和二級高速緩存102和104。閃存ROM 106 可存儲在多媒體控制臺100通電時在引導(dǎo)進程初始階段加載的可執(zhí)行代碼。圖形處理單元(GPU) 108和視頻編碼器/視頻編解碼器(編碼器/解碼器)114形成用于高速、高分辨率圖形處理的視頻處理流水線。數(shù)據(jù)經(jīng)由總線從圖形處理單元108輸送到視頻編碼器/視頻編解碼器114。視頻處理流水線將數(shù)據(jù)輸出到A/V (音頻/視頻)端口 140以傳輸?shù)诫娨暀C或其他顯示器。存儲器控制器110被連接到GPU 108以方便處理器訪問各種類型的存儲器112,例如但不局限于RAM(隨機存取存儲器)。多媒體控制臺100包括較佳地在模塊118上實現(xiàn)的I/O控制器120、系統(tǒng)管理控制器122、音頻處理單元123、網(wǎng)絡(luò)接口控制器124、第一 USB主控制器126、第二 USB控制器 128和前面板I/O子部件130。USB控制器126和128用作外設(shè)控制器142⑴-142 (2)、無線適配器148、和外置存儲器設(shè)備146 (例如閃存、外置⑶/DVD ROM驅(qū)動器、可移動介質(zhì)等) 的主機。網(wǎng)絡(luò)接口 124和/或無線適配器148提供對網(wǎng)絡(luò)(例如,因特網(wǎng)、家庭網(wǎng)絡(luò)等)的訪問并且可以是包括以太網(wǎng)卡、調(diào)制解調(diào)器、藍牙模塊、電纜調(diào)制解調(diào)器等的各種不同的有線和無線適配器組件中的任何一種。提供系統(tǒng)存儲器143來存儲在引導(dǎo)進程期間加載的應(yīng)用程序數(shù)據(jù)。提供介質(zhì)驅(qū)動器144,且其可包括DVD/⑶驅(qū)動器、藍光驅(qū)動器、硬盤驅(qū)動器、或其他可移動介質(zhì)驅(qū)動器等。 介質(zhì)驅(qū)動器144可位于多媒體控制臺100的內(nèi)部或外部。應(yīng)用數(shù)據(jù)可經(jīng)由介質(zhì)驅(qū)動器144 訪問,以由多媒體控制臺100執(zhí)行、回放等。介質(zhì)驅(qū)動器144經(jīng)由例如串行ATA總線或其他高速連接(例如IEEE 1394)等總線連接到I/O控制器120。系統(tǒng)管理控制器122提供涉及確保多媒體控制臺100的可用性的各種服務(wù)功能。 音頻處理單元123和音頻編解碼器132形成具有高保真度和立體聲處理的對應(yīng)的音頻處理流水線。音頻數(shù)據(jù)經(jīng)由通信鏈路在音頻處理單元123與音頻編解碼器132之間傳輸。音頻處理流水線將數(shù)據(jù)輸出到A/V端口 140以供外部音頻用戶或具有音頻能力的設(shè)備再現(xiàn)。前面板I/O子部件130支持暴露在多媒體控制臺100的外表面上的電源按鈕150 和彈出按鈕152以及任何LED(發(fā)光二極管)或其它指示器的功能。系統(tǒng)供電模塊136向多媒體控制臺100的組件供電。風(fēng)扇138冷卻多媒體控制臺100內(nèi)的電路。CPU 101、GPU 108、存儲器控制器110、和多媒體控制臺100內(nèi)的各個其它組件經(jīng)由一條或多條總線互連,包括串行和并行總線、存儲器總線、外圍總線、和使用各種總線架構(gòu)中任一種的處理器或局部總線。作為示例,這些架構(gòu)可以包括外圍部件互連(PCI)總線、 PCI-Express 總線等。當多媒體控制臺100通電時,應(yīng)用數(shù)據(jù)可從系統(tǒng)存儲器143加載到存儲器112和/ 或高速緩存102、104中并在CPU 101上執(zhí)行。應(yīng)用可呈現(xiàn)在導(dǎo)航到多媒體控制臺100上可用的不同媒體類型時提供一致的用戶體驗的圖形用戶界面。在操作中,介質(zhì)驅(qū)動器144中包含的應(yīng)用和/或其它媒體可從介質(zhì)驅(qū)動器144啟動或播放,以向多媒體控制臺100提供附加功能。多媒 體控制臺100可通過將該系統(tǒng)簡單地連接到電視或其它顯示器而作為獨立系統(tǒng)來操作。在該獨立模式中,多媒體控制臺100允許一個或多個用戶與該系統(tǒng)交互、看電影、或聽音樂。然而,隨著通過網(wǎng)絡(luò)接口 124或無線適配器148可用的寬帶連接的集成,多媒體控制臺100還可作為較大網(wǎng)絡(luò)社區(qū)中的參與者來操作。當多媒體控制臺100通電時,可以保留設(shè)定量的硬件資源以供多媒體控制臺操作系統(tǒng)作系統(tǒng)使用。這些資源可包括預(yù)留存儲器(例如,16MB)、CPU和GPU周期(例如,5% )、 網(wǎng)絡(luò)帶寬(例如,8kbs)等等。因為這些資源是在系統(tǒng)引導(dǎo)時保留的,所以所保留的資源從應(yīng)用的角度而言是不存在的。具體地,存儲器保留較佳地足夠大,以包含啟動內(nèi)核、并發(fā)系統(tǒng)應(yīng)用和驅(qū)動程序。 CPU保留較佳地為恒定,使得若所保留的CPU用量不被系統(tǒng)應(yīng)用使用,則空閑線程將消耗任何未使用的周期。對于GPU保留,通過使用GPU中斷來顯示由系統(tǒng)應(yīng)用程序生成的輕量消息(例如, 彈出窗口),以調(diào)度代碼來將彈出窗口呈現(xiàn)為覆蓋圖。覆蓋圖所需的存儲器量取決于覆蓋區(qū)域大小,并且覆蓋圖較佳地與屏幕分辨率成比例縮放。在并發(fā)系統(tǒng)應(yīng)用使用整個用戶界面的情況下,優(yōu)選使用獨立于應(yīng)用分辨率的分辨率。定標器可用于設(shè)置該分辨率,從而消除了對改變頻率并引起TV重新同步的需要。在多媒體控制臺100引導(dǎo)且系統(tǒng)資源被保留之后,就執(zhí)行并發(fā)系統(tǒng)應(yīng)用來提供系統(tǒng)功能。系統(tǒng)功能被封裝在一組在上述所保留的系統(tǒng)資源中執(zhí)行的系統(tǒng)應(yīng)用中。操作系統(tǒng)內(nèi)核標識是系統(tǒng)應(yīng)用線程而非游戲應(yīng)用線程的線程。系統(tǒng)應(yīng)用優(yōu)選地被調(diào)度為在預(yù)定時間并以預(yù)定間隔在CPU 101上運行,以便為應(yīng)用提供一致的系統(tǒng)資源視圖。調(diào)度是為了把由在控制臺上運行的游戲應(yīng)用所引起的高速緩存分裂最小化。當并發(fā)系統(tǒng)應(yīng)用需要音頻時,則由于時間敏感性而異步調(diào)度音頻處理給游戲應(yīng)用。多媒體控制臺應(yīng)用管理器(如下所述)在系統(tǒng)應(yīng)用活動時控制游戲應(yīng)用的音頻水平 (例如,靜音、衰減)。輸入設(shè)備(例如,控制器142(1)和142(2))由游戲應(yīng)用和系統(tǒng)應(yīng)用共享。輸入設(shè)備不是所保留的資源,但卻在系統(tǒng)應(yīng)用和游戲應(yīng)用之間切換以使其各自具有該設(shè)備的焦點。應(yīng)用管理器較佳地控制輸入流的切換,而無需知曉游戲應(yīng)用的知識,并且驅(qū)動程序維持有關(guān)焦點切換的狀態(tài)信息。例如,相機26、28和捕捉設(shè)備20可經(jīng)由USB控制器126或其他接口來定義控制臺100的附加輸入設(shè)備。圖5示出實現(xiàn)為計算系統(tǒng)220的控制器12的另一示例實施例。計算系統(tǒng)環(huán)境220 只是合適的計算系統(tǒng)的一個示例,并且不旨在對所公開的主題的使用范圍或功能提出任何限制。也不應(yīng)該將計算系統(tǒng)220解釋為對示例性操作系統(tǒng)220中示出的任一組件或其組合有任何依賴性或要求。在一些實施例中,各種所描繪的計算元件可包括被配置成實例化本公開的特定方面的電路。例如,本公開中使用的術(shù)語電路可包括被配置成通過固件或開關(guān)來執(zhí)行功能的專用硬件組件。在其他示例實施例中,術(shù)語“電路”可包括通過體現(xiàn)可操作以執(zhí)行功能的邏輯的軟件指令配置的通用處理單元、存儲器等等。在其中電路包括硬件和軟件的組合的示例實施例中,實施者可以編寫體現(xiàn)邏輯的源代碼,且源代碼可以被編譯為可以由通用處理單元處理的機器可讀代碼。由于所屬領(lǐng)域技術(shù)人員可以理解,現(xiàn)有技術(shù)已經(jīng)發(fā)展到在硬件、軟件或硬件/軟件的組合之間差別微小的程度,為實現(xiàn)特定功能而選擇硬件還是軟件是交由實施者處理的設(shè)計選擇。更具體而言,本領(lǐng)域技術(shù)人員可以理解,可以將軟件進程轉(zhuǎn)換成等效的硬件結(jié)構(gòu),也可以將硬件結(jié)構(gòu)本身轉(zhuǎn)換成等效的軟件進程。如此,選擇硬件實現(xiàn)還是軟件實現(xiàn)是一種設(shè)計選擇,并交由實施者處理計算系統(tǒng)220包括計算機241,計算機241通常包括各種計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是能由計算機241訪問的任何可用介質(zhì),而且包含易失性和非易失性介質(zhì)、 可移動和不可移動介質(zhì)。系統(tǒng)存儲器222包括易失性和/或非易失性存儲器形式的計算機存儲介質(zhì),如只讀存儲器(ROM) 223和隨機存取存儲器(RAM) 260?;据斎?輸出系統(tǒng) 224 (BIOS)包括如在啟動時幫助在計算機241內(nèi)的元件之間傳輸信息的基本例程,它通常儲存在ROM 223中。RAM 260通常包含處理單元259可以立即訪問和/或目前正在操作的數(shù)據(jù)和/或程序模塊。作為示例而非限制,圖5示出了當前駐留在RAM中的操作系統(tǒng)225、 應(yīng)用程序226,其他程序模塊227和程序數(shù)據(jù)228。計算機241還可以包括其他可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)。僅作為示例,圖5示出了對不可移動、非易失性磁介質(zhì)進行讀寫的硬盤驅(qū)動器238,對可移動、非易失性磁盤254進行讀寫的磁盤驅(qū)動器239,以及對例如CD ROM或其它光學(xué)介質(zhì)等可移動、非易失性光盤253進行讀寫的光盤驅(qū)動器240。可以在示例性操作環(huán)境中使用的其他可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū)動器238通常由例如接口 234等不可移動存儲器接口連接至系統(tǒng)總線221,而磁盤驅(qū)動器239和光盤驅(qū)動器240通常由例如接口 235等可移動存儲器接口連接至系統(tǒng)總線221。上文所討論的并且在圖5中所示出的驅(qū)動器以及它們的相關(guān)聯(lián)的計算機存儲介質(zhì)為計算機241提供了計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊及其他數(shù)據(jù)的存儲。例如,圖 5中,硬盤驅(qū)動器238被示為存儲操作系統(tǒng)258、應(yīng)用程序257、其它程序模塊256和程序數(shù)據(jù)255。注意,這些組件可以與操作系統(tǒng)225、應(yīng)用程序226、其他程序模塊227和程序數(shù)據(jù) 228相同,也可以與它們不同。此處給操作系統(tǒng)258、應(yīng)用程序257、其他程序模塊256以及程序數(shù)據(jù)255提供了不同的編號,以說明至少它們是不同的副本。用戶可以通過輸入設(shè)備, 例如鍵盤251和定點設(shè)備252通常被稱為鼠標、跟蹤球或觸摸墊——向計算機241輸入命令和信息。其他輸入設(shè)備(未示出)可以包括話筒、操縱桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀等等。這些和其他輸入設(shè)備通常通過耦合至系統(tǒng)總線的用戶輸入接口 236連接至處理單元259,但也可以由其他接口和總線結(jié)構(gòu),例如并行端口、游戲端口或通用串行總線(USB) 來連接。例如,包括相機26、28和話筒30在內(nèi)的捕捉設(shè)備20可定義經(jīng)由用戶輸入接口 236 連接的附加輸入設(shè)備。監(jiān)視器242或其他類型的顯示設(shè)備也通過接口,例如視頻接口 232, 連接至系統(tǒng)總線221。除監(jiān)視器之外,計算機還可以包括可以通過輸出外圍接口 233連接的諸如揚聲器244和打印機243之類的其他外圍輸出設(shè)備。捕捉設(shè)備20可經(jīng)由輸出外圍接口 233、網(wǎng)絡(luò)接口 237或其他接口連接到計算系統(tǒng)220。計算機241可以使用到一個或多個遠程計算機(如遠程計算機246)的邏輯連接在聯(lián)網(wǎng)環(huán)境中操作。遠程計算機246可以是個人計算機、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其他公共網(wǎng)絡(luò)節(jié)點,且通常包括上文參考計算機241所描述的許多或全部元件,雖然圖5中只示出了存儲器存儲設(shè)備247。圖中所示邏輯連接包括局域網(wǎng)(LAN)245和廣域網(wǎng) (WAN) 24 9,但也可以包括其它網(wǎng)絡(luò)。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍計算機網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的。當在LAN聯(lián)網(wǎng)環(huán)境中使用時,計算機241通過網(wǎng)絡(luò)接口或適配器237連接至LAN 245。當在WAN聯(lián)網(wǎng)環(huán)境中使用時,計算機241通常包括調(diào)制解調(diào)器250或用于通過例如因特網(wǎng)等WAN 249建立通信的其他手段。調(diào)制解調(diào)器250可以是內(nèi)置或外置的,它可以經(jīng)由用戶輸入接口 236或其他適當?shù)臋C制連接至系統(tǒng)總線221。在聯(lián)網(wǎng)環(huán)境中,相對于計算機 241所描述的程序模塊或其部分可被存儲在遠程存儲器存儲設(shè)備中。作為示例而非局限, 圖5示出應(yīng)用程序248駐留在存儲器設(shè)備247上。可以理解的是,所示的網(wǎng)絡(luò)連接是示例性的,并且可以使用在計算機之間建立通信鏈路的其他手段。圖4或5的系統(tǒng)中的任一個或不同計算系統(tǒng)可用于實現(xiàn)圖1-2中所示的控制器 12。如上所述,控制器12捕捉用戶的身體位置和/或移動和聲音,以及將這些輸入識別為身體命令和聲音命令,并采用這些識別出的身體命令和聲音命令來控制視頻游戲或其他應(yīng)用。例如,用戶的運動可用于控制視頻游戲中的化身和/或?qū)ο?,或者它們可與語音命令組合地用于相同目的。在某些實施例中,系統(tǒng)可同時跟蹤多個用戶,并允許多個用戶的運動和聲音控制應(yīng)用。在其他實施例中,用戶的運動可被識別為指向所顯示的項目的列表中的特定項目的手勢,且用戶的語音可被識別為對被指向的特定項目采取動作的語音命令。在另一實施例中,姿勢可以只不過是手的定位,從而在監(jiān)視器上建立光標位置。隨后,諸如語音命令等聲音輸入與光標位置組合地用于提供應(yīng)用內(nèi)的控制。例如,當光標位于顯示器上的對象(諸如某一電影)上時,“播放它”的語音命令將使該電影被播放。圖6是描述用于基于語音命令與用戶進行交互的過程300的一個實施例的簡化流程圖。最初,系統(tǒng)10被置于“被動聽”模式,準備好接收語音命令。用戶說出命令,并且在步驟304,系統(tǒng)確定該命令是否為識別出的完整短語語音命令,諸如“Xbox去往視頻庫”。若是,則系統(tǒng)立即在步驟306中執(zhí)行該命令,并返回步驟302的被動聽狀態(tài)。若所說的命令并未被識別為完整短語語音命令,則系統(tǒng)在步驟308確定所說的命令是否為部分短語語音命令。若是,則系統(tǒng)在步驟310以“主動聽”模式繼續(xù)聽進一步的語音命令。當在步驟314說出并識別出結(jié)束短語時,系統(tǒng)前進到步驟306中執(zhí)行該命令。若沒有說結(jié)束短語,則系統(tǒng)在步驟316檢查該部分短語是否為有效命令的一部分。若是,則系統(tǒng)返回步驟310的主動聽模式。若所說的命令并未被識別為部分短語語音命令,則在步驟 318的短暫超時之后,系統(tǒng)返回步驟302的被動聽模式。若用戶不熟悉該系統(tǒng)及其命令,則該用戶可能難以說出合適的命令。因此,有利地,系統(tǒng)還在顯示監(jiān)視器15上以用戶界面(“UI”)的形式向用戶提供幫助,其中在識別出部分命令并進入主動聽模式之后在步驟312中顯示該UI。該UI顯示可供與在步驟308中接收的識別出的部分命令一起使用的附加命令的集合。因此,用戶可根據(jù)個人知識說出命令,或等待UI列出可用選擇。圖7A是描述用于使用姿勢和語音命令與控制器12進行用戶交互的過程400的實施例的流程圖。在步驟410,由系統(tǒng)10在顯示監(jiān)視器15上顯示對象,諸如游戲、電影或其他多媒體內(nèi)容。在步驟412,捕捉設(shè)備20捕捉用戶移動,以及在步驟414,系統(tǒng)將該移動識別為所定義的命令姿勢,例如手勢。識別出該姿勢之后,在步驟416,系統(tǒng)選擇具有與該姿勢相對應(yīng)的語音命令的有限集合的語音庫(諸如圖2中所示的語音庫70、72……76)。對應(yīng)于識別出的姿勢的語音命令隨后在步驟418被加載到語音識別器引擎56中。在步驟419,在監(jiān)視器15上顯示上下文幫助菜單,其顯示可供與識別出的姿勢一起使用的語音命令。 在步驟420,捕捉設(shè)備20中的話筒30捕捉用戶所說的語音輸入。使用已加載到語音識別器引擎56中的語音庫,系統(tǒng)在步驟422中將該語音輸入識別為語音命令。在步驟 424,系統(tǒng)執(zhí)行與識別出的語音命令相關(guān)聯(lián)的動作。進一步的處理步驟可如圖7B中所示地執(zhí)行。例如,在步驟430(其在步驟424之后執(zhí)行),系統(tǒng)確定是否存在與步驟422中識別出的語音命令相對應(yīng)的另一級語音命令。若無,則過程返回步驟7A上的步驟410。若存在另一級語音命令,則在步驟432選擇用于下一級語音命令的語音庫,且在步驟434將這些語音命令加載到語音識別器引擎56中。在步驟 435,顯示上下文幫助菜單,其列出可與識別出的語音命令一起使用的可用語音命令。在步驟436,捕捉來自用戶的語音輸入。在步驟438處理和識別該語音輸入,并在步驟440執(zhí)行與識別出的語音輸入相關(guān)聯(lián)的動作。在步驟440之后,該過程返回步驟430以確定是否存在另一層次級別的語音命令。圖7C是描述用于接收運動數(shù)據(jù)并識別姿勢的過程的流程圖。圖7C中描繪的過程是圖7A的步驟412和414的一種示例實現(xiàn)。在步驟750感測/接收深度圖像并在步驟 452將其發(fā)送給控制器12。在步驟454,RGB相機28感測視覺圖像并在步驟456將該圖像發(fā)送給控制器12。在步驟458,來自相機26和28的圖像被用于更新運動跟蹤算法。接下來,在步驟460,將經(jīng)更新的運動跟蹤信息以及深度圖像和視覺圖像提供給姿勢識別器引擎 54。在步驟462,姿勢識別器引擎54處理該數(shù)據(jù),以及在步驟464,調(diào)用合適的過濾器。圖7D是描述用于標識姿勢的過程的流程圖。圖7D中描繪的過程是圖7B的步驟 462和464的一種示例實現(xiàn)。在步驟470,姿勢識別器引擎54從跟蹤模塊50接收骨架跟蹤數(shù)據(jù)。在步驟472,姿勢識別器引擎54從跟蹤模塊50接收先前骨架跟蹤數(shù)據(jù)。在步驟474, 使用該骨架跟蹤數(shù)據(jù)和合適的過濾器,引擎54嘗試識別該姿勢。若在步驟476識別出該姿勢,則在步驟478,該姿勢將被回報給應(yīng)用。若該姿勢未被識別出,則在步驟480,其不被報告給該應(yīng)用。圖7E是描述用于識別語音命令的過程的流程圖。圖7E中描繪的過程是圖7A的步驟422的一種示例實現(xiàn)。來自圖7A的步驟420重現(xiàn)在圖7E上,其中控制器12接收從話筒30捕捉的語音輸入并發(fā)起對所捕捉的語音輸入的處理。在步驟484,控制器12從該語音輸入生成關(guān)鍵詞文本串,隨后在步驟486,該文本串被解析成片斷。在步驟488,將每一片斷與在圖7A的步驟416中選擇的所選語音庫中的相關(guān)命令作比較。在步驟490,若該片斷與語音庫之間存在匹配,則該片斷被添加到語音命令幀,且該過程在步驟494檢查更多片斷。 若步驟490中不存在匹配,則該過程簡單地跳到步驟494以檢查更多片斷。若存在更多片斷,則在步驟496選擇下一片斷并在步驟488將其與語音庫作比較。當在步驟494不存在更多片斷時,該語音命令幀完成,且該語音命令已被標識。圖8A是描述用于基于身體位置命令和聲音命令與用戶進行交互的過程的替換實施例的流程圖。在圖8A中,實質(zhì)上同時接收身體位置命令和聲音命令,因此可將身體位置命令與聲音命令相關(guān)或反之,以增強與作出關(guān)于經(jīng)由身體位置和聲音輸入實際上接收到什么命令的確定相關(guān)聯(lián)的可靠性和置信度。在步驟502,在顯示監(jiān)視器15上顯示對象,諸如游戲、電影或其他多媒體內(nèi)容。在步驟504,捕捉設(shè)備20捕捉用戶的身體位置和/或移動,以及在步驟506,系統(tǒng)將該身體位置和/或移動識別為所定義的命令,例如手勢。實質(zhì)上在同時,在步驟508,捕捉設(shè)備20中的話筒30捕捉由用戶生成的聲音輸入。使用語音識別器引擎56的語音庫,系統(tǒng)在步驟510中將該聲音輸入識別為語音命令。在步驟512,系統(tǒng)通過使用該姿勢確認該語音命令、和/或使用該語音命令確認該姿勢來將該姿勢與該語音命令相關(guān)。更多細節(jié)在下圖8B-8D中提供。在另一示例中,姿勢可被解釋為拍手,且聲音輸入也可被解釋為拍手,在這種情形中,作為這兩個命令一致的結(jié)果,對該復(fù)合命令的解釋被給 予高置信度值。通過利用所捕捉的姿勢和聲音/語音命令兩者的解釋出的含義,系統(tǒng)對于該解釋出的含義是準確的具有增加的置信度值。在步驟514,系統(tǒng)執(zhí)行與識別出的姿勢和語音命令的組合相關(guān)聯(lián)的動作。圖8B是描述用于在圖8A的步驟512中將姿勢與語音命令相關(guān)的一種選項的流程圖。例如,在圖8A的步驟506中識別出姿勢之后,可在步驟550確定與識別出的姿勢相關(guān)聯(lián)的語音命令的集合。接下來,在步驟552確定在圖8A的步驟510中識別出的語音命令是否是與識別出的姿勢相關(guān)聯(lián)的語音命令之一。若是,則在步驟554,該語音命令已得到驗證。 若否,則在步驟556,嘗試將接收到的語音輸入和與識別出的姿勢相關(guān)聯(lián)的集合中的語音命令之一相匹配。若在步驟558中該嘗試導(dǎo)致成功匹配,則該語音命令在步驟554中得到驗證。若否,則該識別方案不成功且在步驟559錯誤地結(jié)束。圖8C是描述用于在圖8A的步驟512中將姿勢與語音命令相關(guān)的另一種選項的流程圖。例如,在圖8A的步驟510中識別出語音命令之后,可在步驟560確定與識別出的語音命令相關(guān)聯(lián)的姿勢的集合。接下來,步驟562確定在圖8A的步驟506中識別出的姿勢是否是與識別出的語音命令相關(guān)聯(lián)的姿勢之一。若是,則在步驟564,該姿勢已得到驗證。若否,則在步驟566,嘗試將接收到的運動輸入和與識別出的語音命令相關(guān)聯(lián)的集合中的姿勢之一相匹配。若在步驟568中該嘗試導(dǎo)致成功匹配,則該姿勢在步驟564中得到驗證。若否,則該識別方案不成功且在步驟569錯誤地結(jié)束。圖8D是描述用于在圖8A的步驟512中將姿勢與語音命令相關(guān)的另一種選項的流程圖。例如,在圖8A的步驟506中識別出姿勢并在步驟510中識別出語音命令(在此重復(fù))之后,在步驟570中向該姿勢賦權(quán)重,并在步驟571中向該語音命令賦權(quán)重。在一個實施例中,權(quán)重是基于數(shù)據(jù)的質(zhì)量和/或關(guān)于對識別出的姿勢或語音命令的確定的可靠性來賦予的。例如,若話筒感測的聲音有很多噪聲,則權(quán)重較低。若姿勢識別器引擎確信識別出的姿勢,則權(quán)重可以較高。在步驟572,確定哪個識別出的命令具有較高權(quán)重。若姿勢具有較高權(quán)重(因此具有較高置信度值),則在步驟573,確定與識別出的姿勢相關(guān)聯(lián)的語音命令的集合。在步驟 574,確定識別出的語音命令是否在與識別出的姿勢相關(guān)聯(lián)的語音命令的集合內(nèi)。若是,則在步驟575,該語音命令得到驗證。若否,則在步驟576,控制器12嘗試將語音輸入和與識別出的姿勢相關(guān)聯(lián)的語音命令的集合中的任何語音命令相匹配。若步驟577中存在匹配, 則該語音命令在步驟575中得到驗證,若不存在匹配,則該識別方案導(dǎo)致錯誤。若在步驟572中語音命令比姿勢具有更高權(quán)重,則在步驟577,確定與識別出的語音命令相關(guān)聯(lián)的姿勢的集合。在步驟578,確定識別出的姿勢是否在與識別出的語音命令相關(guān)聯(lián)的姿勢的集合內(nèi)。若是,則在步驟579,該姿勢得到驗證。若否,則在步驟580,控制器 12嘗試將運動輸入和與識別出的語音命令相關(guān)聯(lián)的姿勢的集合中的任何姿勢相匹配。若步驟581中存在匹配,則該姿勢在步驟579中得到驗證,若不存在匹配,則該識別方案導(dǎo)致錯誤。
圖9A是描述用于基于姿勢和語音命令與用戶進行交互的過程的另一個實施例的流程圖。圖9A類似于圖7A-7B的實施例,不同之處在于識別出的姿勢導(dǎo)致系統(tǒng)改變狀態(tài), 如以下進一步描述的。在步驟520,由系統(tǒng)10在顯示監(jiān)視器15上顯示游戲或其他對象。在步驟522,捕捉設(shè)備20捕捉用戶移動,以及在步驟524,系統(tǒng)將該移動識別為所定義的手勢。 在步驟526,系統(tǒng)基于識別出的姿勢改變狀態(tài)。例如,若用戶選擇電影,則系統(tǒng)將狀態(tài)改變?yōu)殡娪盎胤艩顟B(tài)。系統(tǒng)隨后在步驟528更新顯示器以顯示其他對象或特征,諸如對電影回放狀態(tài)的控制。系統(tǒng)隨后在步驟530選擇具有可用于該狀態(tài)且因此對應(yīng)于步驟416中的姿勢的語音命令的合適且有限的集合的語音庫(諸如圖2中所示的語音庫70、72……76),并將這些語音命令加載到語音識別器引擎56中。在步驟532,捕捉設(shè)備20中的話筒30捕捉來自用戶的語音輸入。在步驟534,系統(tǒng)基于語音命令識別器56中的處理而將該語音輸入識別為語音命令。在步驟536,系統(tǒng)執(zhí)行與識別出的姿勢和語音命令的組合相關(guān)聯(lián)的動作,并更新顯示器以反映當前狀態(tài)。在步驟538,系統(tǒng)確定是否存在與識別出的姿勢/語音命令組合相對應(yīng)的另一級語音命令。若否,則該過程返回步驟522,準備接收來自捕捉設(shè)備的進一步輸入。若存在另一級語音命令,則在步驟540選擇用于下一級語音命令的語音庫并將其加載到語音識別器引擎56中。該過程返回到步驟532,準備捕捉進一步的語音輸入。姿勢和語音命令的組合由此旨在提高與捕捉設(shè)備20所捕捉的數(shù)據(jù)相關(guān)聯(lián)的可靠性和置信度。例如,單個姿勢可與有限數(shù)量的命令一起使用以提供直觀且易于學(xué)習(xí)和使用的有效控制工具。用戶界面的一些示例將進一步示出與將姿勢和語音命令組合相關(guān)聯(lián)的優(yōu)點ο圖9B是描述用于基于姿勢和語音命令與用戶進行交互的過程的另一個實施例的流程圖。圖9B類似于圖9A,不同之處在于識別出的語音命令導(dǎo)致系統(tǒng)改變狀態(tài),如以下進一步描述的。在步驟620,由系統(tǒng)10在顯示監(jiān)視器15上顯示對象。在步驟622,捕捉設(shè)備20中的話筒30捕捉聲音,以及在步驟624,系統(tǒng)將該聲音識別為所定義的語音命令。在步驟626, 系統(tǒng)基于識別出的語音命令改變狀態(tài)。例如,若用戶說“播放”,則系統(tǒng)將狀態(tài)改變?yōu)殡娪盎胤艩顟B(tài)。系統(tǒng)隨后在步驟628更新顯示器以在顯示器上示出光標。系統(tǒng)隨后在步驟630選擇具有可用于該狀態(tài)的姿勢的合適且有限的集合的姿勢過濾器(諸如圖2中所示的過濾器 60,62……66),并將這些姿勢加載到姿勢識別器引擎56中。在步驟632,捕捉設(shè)備20中的相機23捕捉來自用戶的身體位置和姿勢輸入。在步驟634,系統(tǒng)基于姿勢識別器引擎54中的處理而將該身體位置輸入識別為預(yù)定義的姿勢。在步驟636,系統(tǒng)執(zhí)行與識別出的姿勢和語音命令的組合相關(guān)聯(lián)的動作,并更新顯示器以反映當前狀態(tài)。圖9C是描述使用特定的“掃動姿勢”與控制器12進行用戶交互的實施例的流程圖,即其中用戶在向外或圓周運動中掃動其手以指示對象的列表應(yīng)在運動中被設(shè)置,例如滾動通過對象的列表中的所有選擇。該實施例類似于圖7A中描述的實施例,不同之處在于構(gòu)想了特定姿勢。 在步驟640,由系統(tǒng)10在顯示監(jiān)視器15上顯示對象。在步驟642,捕捉設(shè)備20捕捉用戶移動,即以上描述的“掃動姿勢”,以及在步驟644,系統(tǒng)將該“掃動”移動識別為所定義的命令姿勢。識別出該姿勢之后,在步驟646,系統(tǒng)選擇具有與在步驟644中識別出的掃動姿勢相對應(yīng)的語音命令的有限集合的語音庫(諸如圖2中所示的語音庫70、72……76)。 隨后在步驟648將對應(yīng)于識別出的姿勢的語音命令加載到語音識別器引擎56中,以及在步驟650,在監(jiān)視器15上顯示上下文幫助菜單,其顯示可供與識別出的姿勢一起使用的語音命令。在步驟652,捕捉設(shè)備20中的話筒30捕捉由用戶生成的語音輸入。使用已加載到語音識別器引擎56中的語音庫,系統(tǒng)在步驟654中將該語音輸入識別為語音命令。在步驟656,系統(tǒng)隨后對該對象的列表或?qū)μ囟ǖ乃x對象執(zhí)行與識別出的語音命令相關(guān)聯(lián)的動作。圖IOA是作為圖7A的流程圖的過程的一部分實現(xiàn)的第一級用戶界面600的圖示。因此,根據(jù)步驟410在界面600中顯示多個對象602,諸如電影或視頻游戲,其中這些對象跨該界面的寬度分布。特寫的對象602a在該界面前面中心,且通過指向該對象(步驟 412)——這被識別為選擇步驟(步驟414)——而被選擇。用戶界面可包括包含該特寫的對象的高亮框604。根據(jù)步驟419,在界面600的左下角顯示有幫助的用戶語音命令菜單606, 且顯示系統(tǒng)的當前狀態(tài)的可用語音命令。例如,該菜單可包括詞“說”以向用戶表明該菜單中鄰近的詞可用于語音命令,且在此狀態(tài)中,可用語音命令為“去往”、“尋找”和“播放”。因此,用戶可“去往”另一操作狀態(tài)或模式,或者可能希望“尋找”或“播放”特定標題。在顯示畫面的頂部提供該系統(tǒng)的可用狀態(tài)或模式的列表608,且用戶可在這些選擇中滾動以例如通過指向運動來選擇一狀態(tài)。在圖IOA中,所選狀態(tài)為“聚光燈”,其可用于例如對新內(nèi)容進行特寫。可使用合適的姿勢和/或語音命令來選擇諸如“我的ΧΒ0Χ”或“游戲”或“視頻” 等其他選擇。例如,指向列表608并環(huán)形地揮手的運動可在步驟414中被識別為在該列表中滾動的命令。圖IOB是實現(xiàn)圖7B的流程圖的下一級用戶界面600a的圖示。例如,若你響應(yīng)于圖IOA中的菜單606的顯示而說“去往”,則當在圖7A的步驟422中識別出該命令時,該動作如在步驟424中被執(zhí)行,且若存在與當前狀態(tài)相關(guān)聯(lián)的另一級語音命令(圖7B中的步驟 430),則在步驟432選擇另一語音庫,且如步驟434中將語音命令的下一集合加載到識別器引擎56中。在步驟435,顯示畫面被更新以在菜單606a中顯示這些新選擇。因此,響應(yīng)于語音命令“去往”,幫助菜單被更新以列出下一組語音命令選擇,即用戶能去往的地方的列表。圖IOC是下一級用戶界面600c的圖示。例如,若用戶響應(yīng)于圖IOB中的菜單606a 的顯示而說了 “視頻市場”(或替換地,響應(yīng)于圖IOA中的菜單606的顯示而說了整個命令 “去往視頻市場”),則如步驟435中顯示新界面600c,其具有經(jīng)更新的下一級語音命令菜單 607和新狀態(tài)菜單609。該示例示出了可提供分層結(jié)構(gòu),從而可在該方案的每一級別加載語音命令的有限集合供識別。另外,在該實施例中,在該界面中以稍微不同的方式顯示對象 603,但可根據(jù)設(shè)計偏好以任何期望方式來顯示對象。在該實施例中,示出手指針605。在一些應(yīng)用中,控制器12可呈現(xiàn)手指針605以跟蹤用戶的手的移動。響應(yīng)于手指針605選擇對象603c——如在圖7A的步驟412和414中捕獲和識別出的,如步驟419中在對象603c周圍顯示上下文菜單,用相對于該對新昂貴的語音命令列出所有可用動作選擇。例如,在所示界面600c中,在所選對象603c周圍安排了 5個小按鈕610、611、612、613、614,列出可應(yīng)用于該對象的語音命令。在該狀態(tài)中,用戶可選擇說“發(fā)送”、“購買”、“租”、“預(yù)覽”或“評級”,且該動作將被應(yīng)用于所選對象603c。
—般而言,本公開相關(guān)領(lǐng)域的技術(shù)人員將認識到,以上描述的具體特 征或動作是說明性的而非限制性的。更確切而言,上述具體特征和動作是作為實現(xiàn)權(quán)利要求的示例形式公開的。因此,本發(fā)明的范圍由所附權(quán)利要求定義。
權(quán)利要求
1.一種用于使用語音命令的集合來控制計算系統(tǒng)的方法,包括 在顯示監(jiān)視器上顯示一個或多個對象(410);從傳感器接收身體位置數(shù)據(jù)(412);基于接收的身體位置數(shù)據(jù)識別與所述一個或多個對象有關(guān)的姿勢(414); 基于識別出的姿勢選取所述聲音命令的集合的子集(416),所述聲音命令的集合包括多個子集,每個子集與一個或多個姿勢以及相應(yīng)子集的聲音命令識別數(shù)據(jù)相關(guān)聯(lián); 加載所選取的聲音命令的子集的聲音命令識別數(shù)據(jù)(418); 從話筒接收聲音輸入(420);使用所加載的聲音命令識別數(shù)據(jù)從所述聲音輸入識別聲音命令(422);以及響應(yīng)于識別出的聲音命令執(zhí)行動作(424)。
2.如權(quán)利要求1所述的方法,其特征在于,還包括 顯示所選取的聲音命令的子集。
3.如權(quán)利要求2所述的方法,其特征在于,所述識別出的姿勢選擇所顯示的對象,且其中所選取的聲音命令的子集靠近所選擇的所顯示對象被顯示。
4.如權(quán)利要求1所述的方法,其特征在于,還包括在響應(yīng)于識別出的聲音命令執(zhí)行所述動作之后,加載所選取的聲音命令的子集的相關(guān)子集的附加聲音命令識別數(shù)據(jù); 接收進一步的聲音命令;使用所加載的附加聲音命令識別數(shù)據(jù)來識別所述進一步的聲音命令;以及響應(yīng)于識別出的進一步的聲音命令執(zhí)行動作。
5.如權(quán)利要求1所述的方法,其特征在于,還包括 基于識別出的姿勢改變所述計算系統(tǒng)的狀態(tài);以及提供與所述計算系統(tǒng)的改變后的狀態(tài)有關(guān)的聲音命令的分層子集。
6.如權(quán)利要求5所述的方法,其特征在于,每個識別出的姿勢對應(yīng)于所述計算系統(tǒng)的一不同狀態(tài),且其中所述計算系統(tǒng)的每個狀態(tài)的聲音命令識別數(shù)據(jù)定義聲音命令的一分層子集,且每個聲音命令的每個分層子集僅在所述識別出的姿勢要求時才被加載。
7.如權(quán)利要求1所述的方法,其特征在于,所述姿勢為所述聲音命令提供上下文或者所述聲音命令為所述姿勢提供上下文。
8.如權(quán)利要求1所述的方法,其特征在于,從所述聲音輸入識別聲音命令的步驟包括 向所述識別聲音命令的步驟賦予加權(quán)的置信度值;以及在識別出的姿勢與所述聲音命令一致時增大所述加權(quán)的置信度值。
9.如權(quán)利要求1所述的方法,其特征在于,所述姿勢增強所述聲音命令被正確識別的置信度,且所述聲音命令增強所述姿勢被正確識別的置信度。
10.一種具有用于執(zhí)行如權(quán)利要求1所述的方法的可執(zhí)行指令的有形計算機可讀介質(zhì)。
11.一種用于控制多媒體系統(tǒng)的接口系統(tǒng),包括 監(jiān)視器(15),用于顯示多媒體內(nèi)容;傳感器(23),用于捕捉用戶姿勢; 話筒(30),用于捕捉用戶聲音;以及計算機(12),所述計算機連接到所述傳感器(23)、所述話筒(30)和所述監(jiān)視器(15), 所述計算機驅(qū)動所述監(jiān)視器顯示一組對象(602),所述計算機從所述傳感器接收表示姿勢的圖像數(shù)據(jù),所述計算機將所述姿勢識別為從該組對象(602)中選擇第一對象(602a),所述計算機更新所述監(jiān)視器(15)以顯示第一上下文菜單(606),所述第一上下文菜單顯示能關(guān)于所述第一對象(602a)使用的聲音命令的子集,所述計算機從所述話筒(30)接收表示聲音命令的聲音數(shù)據(jù),所述計算機將所述聲音命令識別為來自所述聲音命令的子集,所述聲音命令指示關(guān)于所述第一對象(602a)的期望動作,所述計算機執(zhí)行所述期望動作。
12.如權(quán)利要求11所述的系統(tǒng),其特征在于所述聲音命令的子集被組織成一個或多個分層級別,其中每一個分層級別僅在處理姿勢需要時才被加載到所述計算機中。
13.如權(quán)利要求12所述的系統(tǒng),其特征在于僅在已識別出來自前一個分層級別的聲音命令且采取與所述聲音命令相關(guān)聯(lián)的期望動作之后才加載和顯示后續(xù)分層級別的聲音命令。
14.如權(quán)利要求11所述的系統(tǒng),其特征在于所述姿勢被所述計算機用于促進對所述聲音命令的識別,而所述聲音命令被所述計算機用于促進對所述姿勢的識別。
15.如權(quán)利要求11所述的系統(tǒng),其特征在于所述計算機在所述監(jiān)視器上顯示漸進用戶界面,其中所述用戶界面在所述計算機執(zhí)行所述期望動作之后被更新以包括聲音命令的相關(guān)子集。
全文摘要
本發(fā)明涉及復(fù)合姿勢-語音命令。一種多媒體娛樂系統(tǒng)將姿勢和語音命令組合以提供增強的控制方案。用戶的身體位置或運動可被識別為姿勢,且可被用于提供用于識別用戶生成的聲音(諸如語音輸入)的上下文。同樣,語音輸入可被識別為語音命令,且可被用于提供用于將身體位置或運動識別為姿勢的上下文。權(quán)重可被賦給這些輸入以促進處理。當姿勢被識別出時,加載與識別出的姿勢相關(guān)聯(lián)的語音命令的有限集合以供使用。此外,語音命令的附加集合可按分層方式被結(jié)構(gòu)化,以使得說出來自語音命令的一個集合的語音命令導(dǎo)致系統(tǒng)加載下一集合的語音命令。
文檔編號G06F3/01GK102306051SQ201110177728
公開日2012年1月4日 申請日期2011年6月17日 優(yōu)先權(quán)日2010年6月18日
發(fā)明者A·M·瓦賽爾, C·克萊因, J·S·弗萊克斯, T·M·蘇摩, V·拉爾科 申請人:微軟公司