|
||||
當今觸屏智能手機越來越流行,用戶在觸屏輸入中也有了按鍵易錯、觸感較差等諸多困擾,不少企業都在探索如何在觸屏手機上提高輸入體驗。最近,QQ手機輸入法就使用了一種滑動輸入技術,力圖改善用戶在觸屏手機上的輸入體驗。其基本操作方法是用手指(或筆)在觸摸屏上的虛擬鍵盤通過滑動來選擇字母, 其滑動順序為要輸入的單詞(拼音組合)的先後順序,手指抬起時代表輸入完畢。
例如用戶輸入friend,則可以下面兩種方式輸入:
1、在虛擬鍵盤中,按照如下順序滑動f-r-i-e-n-d. 如下圖所示,「f」為滑動的起始點,「d」為滑動的結束點(滑動的位置不需要非常精確,只需要大致走向正確就可以):(圖1)
2、依次點擊f-r-i-e-n-d,在點擊輸入各個字母的時候可以不用非常准確的輸入,只要能在想輸入的字母周圍擊中就可以,從而不必再擔心全鍵盤按鈕太小不容易點中的問題啦。
簡單介紹完滑動輸入的操作方法後,大家一定想知道滑動輸入技術上是如何實現的呢?下面就詳細介紹下滑動輸入的實現算法。
滑動輸入的核心算法思想就是把用戶輸入的滑動軌跡提取一定特征,然後跟詞庫中的單詞軌跡進行比對識別,最後輸出候選識別結果。下面我們看看滑動輸入滑動算法框架流程圖 (如圖2所示),大致分為三個處理模塊:(圖2)
第一,生成特征和模板;
第二:計算相似度;
第三:融合詞頻和相似度結果,返回最優列表。
接下來,我們從上面的算法流程來逐一介紹滑動輸入實現技術。
1. 滑動軌跡的數據表示
滑動軌跡數據是一個等時間間隔的數據流,其具體采樣頻率隨手機觸摸屏的參數差異而不同,一般來說都在50-200Hz之間。每一個時間點上包含三維數據:(x,y,sw)。其中x, y分別是當前軌跡點的橫坐標和縱坐標,而sw則為一個反映壓力的二值信號,用來標識當前手指(手寫筆)處在落下或是抬起的狀態。
2. 滑動軌跡數據的預處理
采集得到的原始滑動軌跡數據要進行預處理,使得數據更適於提取特征並具有可比性。QQ手寫輸入法中主要的預處理環節包括:重采樣、大小歸一化、點距均一化、平滑濾波(表1),得到預處理後的軌跡序列:。N為預處理後的軌跡點數:
3. 特征和匹配模版生成
1) 對詞庫中的單詞生成詞庫特征和匹配模板。為一個二維坐標點,具體做法如下:(圖3)
例如紅線為單詞『dog』在軟鍵盤全鍵盤上的滑動軌跡,灰線為用戶的實際滑動軌跡。根據我們紅線所示的軌跡,我們采樣生成詞庫中單詞的特征,即為圖3中綠點的集合,中特征點的距離間隔相同,建立模板。