Moto X 的 Google Now 全程待命喚醒功能是如何實現的?
這個功能對待機時長是否會產生影響,如果不會,他們是怎麼做到的?
據國外媒體報道,疑是加拿大無線運營商 Rogers 泄露的一段視頻顯示,谷歌即將推出的 Moto X 智能手機具有隨時接收語音命令的功能,無需用戶按下任何按鍵,就可以對用戶的語音命令做出回應。 via 視頻顯示 Moto X 具有隨時接收語音命令等新功能
xphone雖然沒發布,但是新droid已經可以回答這個問題了
事實證明大家大部分都猜錯了,moto自己研發了一顆SoC來解決這個問題,稱為
「Motorola X8 mobile computing system」
結合之前的傳聞像是一顆高通的msm8960t+一個自然語言識別核心+一個語義計算核心拼在一起==
不過具體性能參數和8960t頗有出入,很可能MOTO有更深度的定製,這值得期待
引用愛范兒的文章Moto 詳解 X8 移動計算系統X8 基於高通雙核 Snapdragon S4 Pro,處理器的框架被改過。Moto 優化了緩存和虛擬機,修改了文件系統。
其它 X8 系統內容包括 4 核圖形晶元、語境計算與自然語言處理核心。後兩枚晶元都不是 ARM 架構,Motorola 拒絕透露製造商信息。語境處理器控制手機感受器、顯示屏和觸摸交互,待機時顯示手機狀態和通知。自然語言處理器則主要負責聲頻內容,評估雜訊值與降噪。Motorola 這次沒有採用 Audience 的降噪技術。
「我們發明了行動電話,擁有多年的數字信號處理技術,這是 Motorola 獨有的技術。」
語境和自然語言處理器與處理器的整合可以延長電池壽命,提高性能。Moto 工程部高級副總裁 Iqbal Arshad 說,如果不使用這兩枚晶元,手機還需要兩塊電池。
這是moto官網的介紹
Motorola X8 Mobile Computing System
2 low-power cores—awaiting your next command 說明這兩顆專用核心始終處於待命狀態,從公布的數據來看並沒影響續航,這應該是某種技術上的突破
電池從3000漲到了3500,但是續航提升更大
把事情想的太簡單就低估了廠商哦~從語音這點看,驚喜還是有的
moto在droid上已經爆出了這麼多東西,不知道xphone還留有什麼殺招,期待吧:-)
我認為Moto X (我猜測Google Glass也類似)的這樣實時喚醒是很可行的。
從語音識別的原理來看,現在的語音識別,是一個聲音信號-&>音素-&>詞-&>句的多層轉化過程,需要耗費巨大的資源來存儲以及搜索各種聲音模型、語言模型等等,所以完全的自然語音識別很難做到手機本地,一般都在雲端。但如果只是識別一些特定的語句,比如用於喚醒的語句 「OK Glass」, 「Hello Moto」,這隻需要在內存中載入很少的模型,就可以達到高精度識別目的。一旦識別了喚醒語句,再開啟網路模塊收集之後的用戶說的話,再發送到Google伺服器做進一步的識別。這樣可以在保持低能耗的情況下做到隨時響應
題外話,在語音識別上本來就有類似的多級緩存搜索策略,聲音先會第一遍經過簡單的語音識別模型(lattice),搜索出個大概,然後再進行第二遍在更高級模型上的re-evaluation。
我特別贊同這功能,我覺得這才是語音識別應該有的樣子!Google官方真來做這個(@鄭紫陽 提到了iOS7也有!),那是再好不過了,體驗應該非第三方應用可比,這是用戶之福。
========== Update ===========
Google中真正實現「OK Google」的人告訴我,知道他們沒有用我YY的這樣的方法,而是另一種更簡單暴力,利用OK Google這個詞短數據多的特性專門定製的一套方法……因為不同於普通語音識別,這種always stand-by的系統,功耗永遠是需要首先考慮的東西!
對@jxitc所說的非常認同,一定是先通過內存中的模型來識別啟動命令,然後再啟動語音識別的。如果是我設計的話,系統可能會採用類似Audience earSmart eS325之類的晶元,通過DMA不經過CPU直接把聲音採樣並數字化錄入到內存,然後隔一段時間喚醒一下CPU去識別啟動命令(預設是 「Okay Moto Magic」!)。這種方式預計平均功耗在10毫瓦的級別,對於電池壽命影響不大。
如果不計成本的話也可以單獨放一個超低功耗CPU甚至ASIC專門做啟動命令的語音識別來延長電池使用時間。個人覺得這種可能性比較小。
不過目前看起來這個原理和Google Glass的使用模式是有比較大區別的,Google Glass需要歪一下頭或者輕拍下一觸摸板才會激活接收語音命令,包括開始接收"O.K., Glass."命令。參見Wikipedia說明:Google Glass
恰好我在5年前做過這個東西.
當時還是在windows mobile和windows ce上.
語音引擎用的nuance,cyberon和ifly.
引擎和上層的app明顯是分開的兩部分
語音的採集基本上是上層的app控制硬體然後傳到引擎
我們的做法是有一個常駐內存的service,設置一個關鍵詞以後,一直監聽mic.
耗電量其實增加也不大,大概10%左右.
等發布後會有大神拆解的~感覺用ASIC的可能性也不是沒有,期待啊~雖然圓圓的外殼不是很喜歡
怎麼著都會費電,要想省電最有效的還是從硬體上改進,使監聽電流盡量小,所以說,其實晶元神馬的才是高科技啊。。。
這跟高通的那款驍龍處理器有關,技術是底層處理器的硬體支持,Google再加入整合Google now實現的!
這個確實是高通的技術,有一個低功耗的晶元和MIC一起在後台待命,AP端是在休眠的。這個晶元可以做語音識別。 一旦收到對應的模式就會喚醒AP來處理。 最近在做的項目裡面在調試這個功能。
高通驍龍800晶元已經支持了此功能。
難點在語音識別軟體上,如果只做一個詞(同一個人),計算量不大,功耗也不會很大。肯定不是用AP來做的。
肯定有專門IC支持,可能是語音SOC,主頻比較低,所以工作電流應該很小,
工作是主控進入低功耗,IC一直監聽麥克風,解析到數據後,喚醒主控,然後主控再通過網路發送伺服器!
恩,基本同意@YuDan,不過我覺得每隔幾百毫秒就喚醒整顆CPU來計算匹配pattern的耗電量還是很高,現在的多核晶元可以設計一個運行在較低頻率的低功耗核,用以在待機時刻處理語音識別,類似於submicro,但是性能上又比submicro強大。
從軟體實現上來說應該只需要後台服務一直監聽麥克風輸入埠,再將語音信號進行分析是否是喚醒口令,符合再啟動聯網語音助手的功能。但始終監聽的話還是很耗電的,所以我覺得在硬體層面上應該有特殊的優化。@YuDan分析的方式很有可能。
高通800的功能,24小時後台待命,通過800的技術可以將耗電壓得很低。
推薦閱讀: