您可以透過 ML Kit 的數位墨水辨識 API,在數百種語言的數位介面上辨識手寫文字,並將手勢分類,還能將草圖分類。數位墨水辨識 API 使用的技術與 Gboard、Google 翻譯以及 Quick, Draw! 遊戲的手寫辨識技術相同。
數位墨水辨識功能可讓你:
- 在螢幕上輸入內容,無需在虛擬鍵盤上輸入內容。可讓使用者繪製鍵盤上無法使用的字元,例如 Ø、 Arial 或 son 的拉丁字母鍵盤。
- 使用手勢執行基本文字作業 (瀏覽、編輯、選取等)。
- 辨識手繪形狀和表情符號。
數位墨水辨識功能可處理使用者在畫面上繪製的筆劃。如果您需要讀取相機所拍攝圖片中的文字,請使用 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
傳送至英文語言的辨識器時,會傳回數個可能包含 5 或 6 個字元的語音轉錄內容。這些資料欄的建立順序是按照信賴度排序:
RecognitionResult | |
---|---|
辨識候選者 #1 | 手 |
辨識候選者 #2 | Handrw |
辨識候選者 #3 | 硬式 |
辨識候選者 #4 | Handu |
辨識候選者 #5 | Handwe |
手勢
手勢分類器會將墨筆分類為下列九種手勢類別之一。
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 | 曲線 (U+1f606) |