透過 ML Kit 的數位墨水辨識 API,您可以辨識手寫文字、將數百種語言的手勢分類,也可以將草圖分類。數位墨水辨識 API 採用與 Gboard、Google 翻譯和 Quick, Draw! 遊戲相同的技術,能夠辨識手寫功能。
數位墨水辨識提供以下功能:
- 不必再用虛擬鍵盤打字,直接在畫面上書寫。如此一來,使用者就能繪製鍵盤上沒有的字元,例如 改成 大寫、大寫 或 BR 表示拉丁字母鍵盤。
- 使用手勢執行基本文字作業 (瀏覽、編輯、選取等)。
- 辨識手繪形狀和表情符號。
數位墨水辨識功能支援使用者在螢幕上畫的筆跡。如需讀取相機拍攝的圖片中的文字,請使用 Text Recognition API。
數位墨水辨識功能可完全離線運作,且支援 Android 和 iOS 裝置。
主要功能
- 將手寫文字轉換為萬國碼 (Unicode) 字元序列
- 在裝置上以近乎即時的方式執行
- 使用者的手寫內容會留在裝置上,辨識作業會在沒有網路連線的情況下執行
- 支援超過 300 種語言和 25 種以上的書寫系統。請參閱支援的語言完整清單
- 透過
-x-gesture
擴充功能支援這些語言的手勢分類
- 透過
- 辨識表情符號和基本形狀
- 視需要動態下載語言套件,藉此減少裝置端儲存空間
辨識工具接受 Ink
物件做為輸入。Ink
是一種向量表示法,呈現使用者在畫面上所寫的內容:一串「筆劃」,每筆都是一個座標清單,其中包含稱為「接觸點」的時間資訊。使用者將觸控筆或手指朝下時,筆觸便會開始,並在使用者舉起時結束。Ink
會傳遞至辨識器,辨識器會傳回一或多個可能的辨識結果,且信賴水準為信賴水準。
範例
英文手寫
左下方圖片顯示使用者在畫面上繪製的內容。右方的圖片是對應的 Ink
物件。其中包含的筆劃有紅色圓點,代表每個筆劃的觸控點。
有四種筆劃。Ink
物件中的前兩個筆劃如下所示:
墨水 | ||
---|---|---|
筆劃 1 | x
|
392、391、389、287... |
y
|
52、60、76、97... | |
t
|
0、37、56、75... | |
筆劃 2 | x
|
497、494、493、490... |
y
|
167、165、165、165... | |
t
|
694、742、751、770... | |
... |
將這個 Ink
傳送給英文語言的辨識器時,系統會傳回多個可能的轉錄內容,其中包含五或六個字元。按照可信度排序:
RecognitionResult | |
---|---|
辨識候選者 #1 | 手 W |
辨識候選者 #2 | 手德 |
辨識候選者 #3 | Hardw |
辨識候選者 #4 | 手魯 |
辨識候選者 #5 | 手我們 |
手勢
手勢分類器會將墨水筆劃分成下列九種手勢類別的其中一種。
arch:above arch:below |
|
caret:above caret:below |
|
circle |
|
scribble |
|
strike |
|
verticalbar |
|
writing |
表情符號素描
左下方圖片顯示使用者在畫面上繪製的內容。右方的圖片是對應的 Ink
物件。其中包含的筆劃有紅色圓點,代表每個筆劃的觸控點。
Ink
物件包含六筆筆劃,
墨水 | ||
---|---|---|
筆劃 1 | x
|
269、266、262、255... |
y
|
40、40、40、41... | |
t
|
0、36、56、75... | |
筆劃 2 | x
|
179、182、183、185... |
y
|
157、158、159、160... | |
t
|
2475、2522、2531、2541 ... | |
... |
將這個 Ink
傳送給表情符號辨識工具時,您會收到多個可能的轉錄內容,由可信度降低排序:
RecognitionResult | |
---|---|
辨識候選者 #1 | 😂? (U+1f62d) |
辨識候選者 #2 | ❗ (U+1f605) |
辨識候選者 #3 | 😹? (U+1f639) |
辨識候選者 #4 | 好啊 (U+1f604) |
辨識候選者 #5 | Stand (U+1f606) |