手書き文字認識 (iHTR)
I. 概要
iHandify 手書き文字認識(iHTR: iHandify Handwriting Text Recognition)サービスは、手書きのテキストを機械可読テキストへ変換するためのREST API群です。現在、以下の言語に対応しています。
- 日本語 (ja)
- 英語 (en)
- ベトナム語 (vi)
各言語は、書体の特性、筆記方向、およびストロークパターンに最適化された専用の機械学習モデルによって処理されます。
II. API入力
本サービスは、異なる処理パイプラインと出力特性を持つ、2種類の入力形式をサポートしています。
1. デジタルインク入力
デジタルインク手書き文字認識は、ペン対応デバイスから取得された時系列の筆跡データ(ストロークデータ)を対象とします。
特徴
- 筆記の時系列順序とストロークの形状を保持
- 詳細な構造解析が可能
- 文字単位およびストローク単位のメタデータをサポート
主な利用例
- スタイラスペンによるノート作成アプリ
- インタラクティブ・ホワイトボード
- 教育および手書きトレーニングシステム
2. 画像入力
手書き文字画像認識は、スキャン画像や写真などの静的なラスタ画像を対象とします。
特徴
- ラスタ画像に対する単一推論処理
- 時系列情報やストローク順序は含まれない
- バッチ処理や文書デジタル化に適している
主な利用例
- 手書きノートや帳票のスキャン
- 写真による手書き入力の取得
- 既存の紙文書アーカイブ
III. API出力
どちらの入力形式でも、信頼度スコア付きの認識候補が1つ以上返されます。
ただし、デジタルインク入力では、画像入力では得られない追加の構造情報が出力されます。
機能比較表
| 機能 | デジタルインク入力 | 画像入力 |
|---|---|---|
| 認識候補 | 対応 | 対応 |
| 信頼度スコア | 対応 | 対応 |
| 行分割 | 対応 | 対応(viでは未対応) |
| 単語分割 | 対応 | 未対応 |
| 文字分割 | 対応(viでは未対応) | 未対応 |
| 空間位置情報 | 完全対応(各単位の領域) | 制限あり |
| ストローク-文字対応 | 対応 | 未対応 |
| ストローク順序・時間解析 | 対応 | 未対応 |
IV. 注意事項
設計上の考慮点
開発者は、利用可能なデータ形式および必要な出力の詳細度に応じて入力形式を選択してください。
- デジタルインク認識は、構造的な正確性と時間的情報を重視し、文字単位の信頼度や手書き評価、インタラクティブ補正など高度な機能を提供します。
- 画像認識は、シンプルさと互換性を重視しており、静的・オフライン用途に適しています。
言語別ドキュメント
各対応言語には追加設定や固有仕様があります。詳細については各言語のドキュメントをご参照ください:
- 対応文字セット
- モデル固有の制約
- リクエスト/レスポンス仕様
- サンプルデータ
V. APIの利用方法
iHTRサービスは、日本語・英語・ベトナム語に対応しており、今後さらに対応言語を拡張予定です。
その他の言語対応をご希望の場合は、お問い合わせください。
本サービスは画像入力とデジタルインク入力の両方に対応しています。詳細は対応するドキュメントをご参照ください。
APIにアクセスするには、有効な Scoped Public APIキー が必要です。Scoped Public APIキーは、サブスクリプションページで確認できる Secret APIキー を使用して生成できます。各 Scoped Public APIキーは、サブスクリプションプランに基づいて特定のAPIへのアクセス権を付与します。 APIキーの生成および使用方法の詳細については、認証のドキュメントをご参照ください。
1. リクエスト
https://api.ihandify.com/v1/ihtr/recognize/{type}/{language}
エンドポイントでは、入力データの種類および言語を指定するためにパスパラメータの指定が必要です。以下にリクエストパラメータの概要を示します。
| パラメータ | 説明 | 任意 | 値 | 初期値 | 備考 |
|---|---|---|---|---|---|
| type | 入力データの種類を指定します。 | ink image |
エンドポイントURLの一部として指定する必要があります。 | ||
| language | 入力テキストの言語を指定します。 | jp en vi |
エンドポイントURLの一部として指定する必要があります。 無効な値を指定した場合、400エラーが返されます。 |
||
| input | 処理対象となる入力データです。 | 詳細は デジタルインク形式 または 画像形式 を参照してください。 | エンドポイントURLで指定した type と一致する形式である必要があります。 | ||
| order | 認識時にストローク順序を考慮するかどうかを指定します。 | ✓ | true false |
true(ink の場合) | type = image の場合、このパラメータは無視されます。 type = ink の場合、false を指定すると入力データは画像として処理されます。 * 一般的にインク認識はストローク順序に依存しますが、画像認識は依存しません。ストローク順序が不規則な場合や遅延ストロークが含まれる場合は、order = false の使用を検討してください。 |
| targetFilters | 認識対象となる文字集合を定義するフィルターIDのリストです。 | ✓ | 利用可能な値については フィルタ を参照してください。 | [0] | |
| targetCharacters | 認識対象に追加するカスタム文字を指定します。 | ✓ | targetCharacters および targetFilters のいずれでも対象文字が指定されていない場合、結果は空になります。 | ||
| documentType | 入力データの文書タイプを指定します。 | ✓ | paragraph sentence word character |
sentence | サポートされるタイプは言語によって異なります: jp: paragraph, sentence, character en: すべて vi: paragraph, sentence, word |
| textDirection | 入力データの書字方向を指定します。 | ✓ | auto hor ver |
hor | auto および ver は日本語(jp)のみサポートされます。 |
| candidateNum | 返却される候補テキスト数を指定します。 | ✓ | 正の整数 | 1 | 値を大きくすると処理時間が増加する場合があります。上位候補の信頼度が十分に高い場合、指定数より少ない候補が返されることがあります。 |
| lmWeight | 言語モデル統合時の重みを指定します。 | ✓ | [0, +∞) | 0 | 最終結果に対する言語モデルの影響度を制御します。0の場合、言語モデルは無効化されます。値を大きくするほど、より一般的または確率的に高い言語シーケンスが優先されます。 |
リクエストサンプル
以下に、両方の入力形式に対応したcurlによるリクエスト例を示します。
Note: サンプルで使用されているAPIキーはデモ用です。実際にリクエストを送信する際は、ご自身のAPIキーに置き換えてください。
デジタルインク入力
curl -X POST https://api.ihandify.com/v1/ihtr/recognize/ink/jp \
-H "x-api-key: spk_cde88bc3267e3378677404121856330a4feb345c7712e04587cbaa2d9769583a" \
-F "input=[[[543,172],[544,172],[548,172],[557,171],[568,170],[581,167],[593,163],[607,159],[619,156],[630,152],[633,151],[636,149],[637,148],[638,148],[638,146],[638,146]],[[547,200],[548,200],[567,199],[586,196],[602,194],[611,192],[619,191],[627,190],[630,189],[631,189],[632,188],[633,188],[635,187],[635,187],[635,187]],[[533,216],[532,216],[533,216],[548,216],[567,216],[582,214],[592,214],[600,214],[605,214],[610,214],[613,214],[616,213],[619,213],[622,212],[625,212],[625,212]],[[582,166],[582,167],[582,170],[582,178],[582,195],[582,202],[582,220],[582,231],[582,241],[582,252],[580,261],[579,269],[576,278],[573,287],[571,296],[568,305],[566,309],[563,313],[562,313],[561,313],[560,313],[559,313],[558,313],[558,313]],[[701,150],[705,150],[713,149],[729,147],[743,145],[753,143],[760,143],[762,143],[763,143],[764,143],[764,144],[764,147],[764,148],[764,151],[764,157],[764,161],[764,167],[762,173],[760,179],[759,185],[757,191],[756,192],[756,192],[756,192]],[[693,170],[695,169],[709,168],[725,166],[746,164],[764,162],[777,162],[786,162],[790,162],[792,162],[794,162],[796,162],[796,162]],[[697,192],[699,192],[709,192],[723,192],[733,190],[739,188],[746,188],[752,188],[757,188],[762,188],[763,188],[763,188]],[[696,219],[698,219],[701,219],[703,219],[710,219],[714,219],[721,219],[731,219],[737,219],[740,219],[741,219],[741,219]],[[724,132],[724,134],[724,138],[724,146],[721,162],[717,182],[715,192],[715,200],[715,207],[714,214],[713,220],[713,223],[713,226],[713,229],[713,232],[713,233],[713,234],[713,234]],[[678,245],[679,245],[691,245],[705,242],[718,241],[736,240],[752,238],[767,237],[782,237],[794,237],[798,236],[798,236]],[[701,260],[701,262],[701,264],[701,267],[701,273],[701,280],[701,287],[700,293],[699,295],[699,294],[699,294]],[[702,262],[702,261],[705,260],[709,259],[714,259],[719,258],[722,258],[730,258],[736,258],[741,256],[744,255],[749,255],[752,255],[757,255],[761,255],[767,255],[769,255],[771,255],[772,255],[772,256],[772,258],[767,265],[764,269],[763,274],[761,279],[759,282],[757,286],[756,289],[756,291],[755,292],[754,296],[754,296]],[[701,276],[702,276],[705,276],[713,276],[723,276],[732,273],[738,272],[742,272],[747,272],[750,272],[756,272],[762,272],[766,272],[769,272],[770,272],[770,272]],[[689,292],[690,292],[693,292],[700,292],[705,292],[712,292],[718,292],[727,292],[732,292],[740,292],[747,292],[751,292],[755,292],[758,292],[762,292],[764,293],[765,293],[765,293]],[[824,166],[825,165],[827,164],[835,162],[841,159],[850,158],[854,156],[858,156],[861,154],[864,153],[866,152],[867,152],[869,152],[869,152]],[[840,196],[842,196],[845,196],[853,196],[862,196],[870,195],[875,193],[880,192],[882,191],[883,190],[886,188],[887,187],[888,187],[889,185],[889,184],[889,182],[889,182]],[[839,138],[839,140],[839,147],[842,161],[847,175],[853,192],[862,208],[872,224],[879,239],[887,250],[892,256],[895,258],[899,260],[900,260],[900,260]],[[839,240],[839,246],[841,251],[844,256],[848,261],[859,268],[870,275],[880,279],[890,280],[898,280],[901,280],[903,280],[903,278],[903,276],[903,276]]]" \
-F "targetFilters=[1,2]" \
-F "targetCharacters=き書手" \
-F "documentType=sentence" \
-F "textDirection=hor" \
-F "candidateNum=2" \
-F "lmWeight=3.5"
画像入力
curl -X POST https://api.ihandify.com/v1/ihtr/recognize/image/jp \
-H "x-api-key: spk_cde88bc3267e3378677404121856330a4feb345c7712e04587cbaa2d9769583a" \
-F "input=@jp_input.png" \
-F "targetFilters=[1,2]" \
-F "targetCharacters=き書手" \
-F "documentType=sentence" \
-F "textDirection=hor" \
-F "candidateNum=2" \
-F "lmWeight=3.5"
特化型エンドポイント (Specialized Endpoints)
当社では、認識リクエストを処理するために、複数の特化型APIエンドポイントを提供しています。標準のエンドポイントが高度なカスタマイズを可能にするインターフェースであるのに対し、特化型エンドポイントは、詳細なドキュメントを読み込まなくても迅速に導入・運用を開始できるよう、あらかじめ最適化されたエントリーポイントを提供します。
特化型APIエンドポイントを利用することで、すべてのパラメータを明示的に指定することなく認識リクエストを送信できます。リクエストに含まれていないパラメータについては、システムが自動的に初期値を適用します。これにより、まずはシンプルな構成でスタートし、必要に応じて徐々に詳細なオプションを拡張していくことが可能です。
| エンドポイント | 説明 | type | language | input | order | targetFilters | targetCharacters | documentType | textDirection | candidateNum | lmWeight |
|---|---|---|---|---|---|---|---|---|---|---|---|
| /v1/ihtr/recognize/[ink|image]*/[jp|en|vi]*/line | インクデータまたは画像からテキスト行を認識 | ink|image* | [jp|en|vi]* | * | sentence | hor | |||||
| /v1/ihtr/recognize/ink-as-image/[jp|en|vi]*/line | インクデータを画像として処理し、テキスト行を認識 | ink | [jp|en|vi]* | * | false | sentence | hor | ||||
| /v1/ihtr/recognize/[ink|image]*/kanji | インクデータまたは画像から単一の漢字を認識 | ink|image* | jp | * | Kanji | character | hor | ||||
| /v1/ihtr/recognize/ink-as-image/kanji | インクデータを画像として処理し、単一の漢字を認識 | ink | jp | * | false | Kanji | character | hor | |||
| /v1/ihtr/recognize/[ink|image]*/hiragana | インクデータまたは画像から単一のひらがなを認識 | ink|image* | jp | * | Hiragana | character | hor | ||||
| /v1/ihtr/recognize/[ink|image]*/katakana | インクデータまたは画像から単一のカタカナを認識 | ink|image* | jp | * | Katakana | character | hor | ||||
| /v1/ihtr/recognize/[ink|image]*/alphabet | インクデータまたは画像から単一のアルファベット文字を認識 | ink|image* | en | * | Alphabet | character | hor |
* アスタリスク(*)が付いているパラメータは、特化型エンドポイントで必須です。
特化型エンドポイントで定義されているパラメータは、その値が優先されます。リクエスト内で競合する値が指定された場合、それらは無視されます。
例えば、/v1/ihtr/recognize/ink-as-image/jp/line エンドポイントでは、order パラメータは false に固定されています。
このエンドポイントに対して order=true を指定した場合、その値は無視され、入力は画像データとして処理されます。
特化型エンドポイントのリクエストサンプル
前述のリクエスト例は、入力方式に応じた特化型エンドポイントでも同様に使用できます。特化型エンドポイントでは、オプションのパラメータを省略し、必要最小限のデータのみでリクエストを送信することが可能です。
curl -X POST https://api.ihandify.com/v1/ihtr/recognize/ink/jp/line \
-H "x-api-key: spk_cde88bc3267e3378677404121856330a4feb345c7712e04587cbaa2d9769583a" \
-F "input=[[[543,172],[544,172],[548,172],[557,171],[568,170],[581,167],[593,163],[607,159],[619,156],[630,152],[633,151],[636,149],[637,148],[638,148],[638,146],[638,146]],[[547,200],[548,200],[567,199],[586,196],[602,194],[611,192],[619,191],[627,190],[630,189],[631,189],[632,188],[633,188],[635,187],[635,187],[635,187]],[[533,216],[532,216],[533,216],[548,216],[567,216],[582,214],[592,214],[600,214],[605,214],[610,214],[613,214],[616,213],[619,213],[622,212],[625,212],[625,212]],[[582,166],[582,167],[582,170],[582,178],[582,195],[582,202],[582,220],[582,231],[582,241],[582,252],[580,261],[579,269],[576,278],[573,287],[571,296],[568,305],[566,309],[563,313],[562,313],[561,313],[560,313],[559,313],[558,313],[558,313]],[[701,150],[705,150],[713,149],[729,147],[743,145],[753,143],[760,143],[762,143],[763,143],[764,143],[764,144],[764,147],[764,148],[764,151],[764,157],[764,161],[764,167],[762,173],[760,179],[759,185],[757,191],[756,192],[756,192],[756,192]],[[693,170],[695,169],[709,168],[725,166],[746,164],[764,162],[777,162],[786,162],[790,162],[792,162],[794,162],[796,162],[796,162]],[[697,192],[699,192],[709,192],[723,192],[733,190],[739,188],[746,188],[752,188],[757,188],[762,188],[763,188],[763,188]],[[696,219],[698,219],[701,219],[703,219],[710,219],[714,219],[721,219],[731,219],[737,219],[740,219],[741,219],[741,219]],[[724,132],[724,134],[724,138],[724,146],[721,162],[717,182],[715,192],[715,200],[715,207],[714,214],[713,220],[713,223],[713,226],[713,229],[713,232],[713,233],[713,234],[713,234]],[[678,245],[679,245],[691,245],[705,242],[718,241],[736,240],[752,238],[767,237],[782,237],[794,237],[798,236],[798,236]],[[701,260],[701,262],[701,264],[701,267],[701,273],[701,280],[701,287],[700,293],[699,295],[699,294],[699,294]],[[702,262],[702,261],[705,260],[709,259],[714,259],[719,258],[722,258],[730,258],[736,258],[741,256],[744,255],[749,255],[752,255],[757,255],[761,255],[767,255],[769,255],[771,255],[772,255],[772,256],[772,258],[767,265],[764,269],[763,274],[761,279],[759,282],[757,286],[756,289],[756,291],[755,292],[754,296],[754,296]],[[701,276],[702,276],[705,276],[713,276],[723,276],[732,273],[738,272],[742,272],[747,272],[750,272],[756,272],[762,272],[766,272],[769,272],[770,272],[770,272]],[[689,292],[690,292],[693,292],[700,292],[705,292],[712,292],[718,292],[727,292],[732,292],[740,292],[747,292],[751,292],[755,292],[758,292],[762,292],[764,293],[765,293],[765,293]],[[824,166],[825,165],[827,164],[835,162],[841,159],[850,158],[854,156],[858,156],[861,154],[864,153],[866,152],[867,152],[869,152],[869,152]],[[840,196],[842,196],[845,196],[853,196],[862,196],[870,195],[875,193],[880,192],[882,191],[883,190],[886,188],[887,187],[888,187],[889,185],[889,184],[889,182],[889,182]],[[839,138],[839,140],[839,147],[842,161],[847,175],[853,192],[862,208],[872,224],[879,239],[887,250],[892,256],[895,258],[899,260],[900,260],[900,260]],[[839,240],[839,246],[841,251],[844,256],[848,261],[859,268],[870,275],[880,279],[890,280],[898,280],[901,280],[903,280],[903,278],[903,276],[903,276]]]" \
-F "targetFilters=[1,2]" \
-F "targetCharacters=き書手" \
-F "candidateNum=2" \
-F "lmWeight=3.5"
このリクエストは、日本語のオンライン認識エンドポイントにデジタルインクデータを直接送信し、ストローク順序を保持したまま行認識を行います。
curl -X POST https://api.ihandify.com/v1/ihtr/recognize/image/jp/line \
-H "x-api-key: spk_cde88bc3267e3378677404121856330a4feb345c7712e04587cbaa2d9769583a" \
-F "input=@jp_input.png" \
-F "targetFilters=[1,2]" \
-F "targetCharacters=き書手" \
-F "candidateNum=2" \
-F "lmWeight=3.5"
このリクエストは、日本語OCRエンドポイントに画像ファイルを送信し、画像に対して行認識を行います。
構成ガイドライン
最適な認識精度を得るために、以下のガイドラインに従って構成することを推奨します。
アプリケーションに合わせた対象認識文字の設定 認識対象を「数字のみ」「英数字のみ」「日本語(ひらがな・カタカナ・漢字)を含む」など、必要最小限の文字セットに限定することで、認識精度の向上と誤認識(誤検知)の抑制が期待できます。 例えば、フォーム入力などで「電話番号」を認識する場合、文字セットを数字(0-9)と記号(-, +)に絞り込むことで、より確実な結果が得られます。
- 適切な documentType と textDirection を選択してください これらのパラメータ設定に誤りがあると、認識モデルがデータの構造を正しく解釈できず、不正確な結果や意味をなさない出力につながる恐れがあります。
- 適切な candidateNum を選択してください この値を小さく設定することで、処理時間を短縮できます。後処理の予定がなく、複数の候補が必要ない場合は、レスポンス速度を優先するために値を 1 に設定することを推奨します。
- 適切な lmWeight に調整してください 言語モデルを活用することで、判別が困難な手書き文字の曖昧さを解消できます。ただし、重みを大きくしすぎると、実際の入力内容よりも一般的な言語パターンが過度に優先され、結果として「入力通りの認識」ではなく「強制的な自動修正」が行われてしまう可能性があるため注意が必要です。
適切なリクエスト形式の選択 application/json と multipart/form-data の両方のリクエストに対応しています。ただし、画像データを送信する場合は、バイナリ画像データを用いた multipart/form-data の使用を強く推奨します。これにより、Base64エンコードされた画像と比較してペイロードサイズが削減され、処理性能が向上します。
2.レスポンス
type = imageの場合、レスポンスには認識されたテキスト候補とそれぞれの信頼度スコアが含まれます。利便性のため、最も高い順位の候補は独立したラベルフィールドとして別途提供されます。
type = inkの場合、入力データから追加の構造情報を抽出できるため、より詳細なメタデータを含む結果を返すことが可能です。
本サービスは、以下のサンプルに示すように JSON 形式でレスポンスを返します。
なお、サンプル内のコメント(# で示されるもの)は説明用であり、実際の API レスポンスには含まれません。
デジタルインク入力の文字認識のレスポンスサンプル
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"data": {
"result": {
"candidates": [{
"id": 0, # 候補ID
"label": "手書き", # 候補の認識結果(文字列)
"score": 1.0, # 候補のスコア
"subCandIds": [0], # 文書を構成する各行で使用される候補のID(この場合は、1行目の第1候補)
"subIds": [0] # 文書を構成する各行の行ID(この場合は1行のみ)
}
],
"chars": [{
"bounds": [10186, 5345, 13070, 8916], # 文字の領域 [left, top, right, bottom]
"candidates": [{
"id": 0, # 文字候補のID
"label": "手", # 文字候補の認識結果(文字)
"score": 1.0 # 文字候補のスコア。文字は最小単位のため下位コンポーネント (subIds, subCandIds) はなし
}
],
"endPointIndex": 21, # 文字の最後ストロークの終了ポイントID (連筆ストロークでのみ使用)
"id": 0, # 文字ID
"startPointIndex": 0, # 文字の最初ストロークの開始ポイントID (連筆ストロークでのみ使用)
"strokeIds": [0, 1, 2, 3] # 文字に属するストロークID
}, {
"bounds": [14288, 5768, 17224, 9631],
"candidates": [{
"id": 0,
"label": "書",
"score": 1.0
}
],
"endPointIndex": 15,
"id": 1,
"startPointIndex": 0,
"strokeIds": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
}, {
"bounds": [18336, 6509, 21511, 9075],
"candidates": [{
"id": 0,
"label": "き",
"score": 1.0
}
],
"endPointIndex": 17,
"id": 2,
"startPointIndex": 0,
"strokeIds": [14, 15, 16, 17]
}
],
"lines": [{
"baseline": [10004, 9259, 21417, 10121], # 入力のテキスト方向 [startX, startY, endX, endY]
"bounds": [10186, 5345, 21511, 9631], # 行の領域 [left, top, right, bottom]
"candidates": [{
"id": 0, # 行候補のID
"label": "手書き", # 行候補の認識結果 (文字列)
"score": 1.0, # 行候補のスコア
"subCandIds": [0, 0, 0], # 文書を構成する各文字で使用される候補のID(この場合、3つ行の第1候補で構成)
"subIds": [0, 1, 2] # 文書を構成する各文字の文字ID
}
],
"id": 0, # 行ID
"strokeIds": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17] # 行に属するストロークID
}
],
"text": "手書き" # 認識結果(最上位候補と同じ)
},
"requestId": "0HNKMM36SDFNG:00000001",
"date": "2026/10/04 03:25:24"
},
"code": 200,
"message": "Success",
"errors": []
}
画像入力の文字認識のレスポンスサンプル
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"data": {
"result": {
"candidates": [
{ "label": "手書き", "score": 0.96 }, # 候補の認識結果(文字列)とスコア
{ "label": "手書ま", "score": 0.26 }
],
"text": "手書き" # 認識結果(最上位候補と同じ)
},
"requestId": "0HNKMM36SDFNG:00000001",
"date": "2026/10/04 03:25:24"
},
"code": 200,
"message": "Success",
"errors": []
}
レスポンスコード
| コード | メッセージ | 説明 |
|---|---|---|
| 200 | Success | リクエストは正常に処理されました。 |
| 400 | Bad Request | リクエストの構文またはパラメータが不正です。 |
| 403 | Forbidden | APIキーが無効であるか、有効期限が切れています。 |
| 413 | Content Too Large | 入力データが現在のプランのサイズ制限を超えています。より大きなデータの処理が必要な場合は、お問い合わせの上、プランのアップグレードをご検討ください。 |
| 429 | Too Many Requests | APIキーに設定されたレートリミット(リクエスト回数制限)を超過しました。 |
| 500 | Internal Server Error | サーバー側で予期しないエラーが発生しました。調査が必要な場合は、カスタマーサポートまでご連絡ください。 |
VI. リファレンス
対応フィルタと文字
本サービスは、ひらがな、カタカナ、漢字、アルファベット、数字、およびその他の一般的に使用される記号を含む、1万文字以上に対応しています。
利便性のため、関連する文字は「フィルタ」と呼ばれる主要なカテゴリにグループ化されています。これらのフィルタを使用することで、認識対象となる文字セットを簡単に指定できます。
対応文字は選択された言語によって異なる場合があります。例えば、language が en に設定されている場合、漢字認識はサポートされません。
targetFilters または targetCharacters を通じて未対応の文字が指定された場合、それらは認識処理中に無視されます。
| ID | フィルタ名 | 文字 | 日本語対応 | 英語対応 | ベトナム語対応 |
|---|---|---|---|---|---|
| 0 | All* | ✓ | ✓ | ✓ | |
| 1 | Digit | 0-9 | ✓ | ✓ | ✓ |
| 2 | AlphabetCapital | A-Z | ✓ | ✓ | ✓ |
| 3 | AlphabetSmall | a-z | ✓ | ✓ | ✓ |
| 4 | Alphabet | AlphabetCapital,AlphabetSmall | ✓ | ✓ | ✓ |
| 5 | CommonSymbols | , ; . ? ! ' " ( ) [ ] : & $ £ + - * / % | ✓ | ✓ | ✓ |
| 6 | Hiragana | ゝゞーぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん | ✓ | ||
| 7 | Katakana | ヽヾーァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ | ✓ | ||
| 8 | KanjiJIS1 | 文字一覧はこちら | ✓ | ||
| 9 | KanjiJIS2 | 文字一覧はこちら | ✓ | ||
| 10 | KanjiJIS3 | 文字一覧はこちら | ✓ | ||
| 11 | KanjiJIS4 | 文字一覧はこちら | ✓ | ||
| 12 | KanjiOthers | 文字一覧はこちら | ✓ | ||
| 13 | Kanji | KanjiJIS1,KanjiJIS2,KanjiJIS3,KanjiJIS4,KanjiOthers | ✓ | ||
| 14 | NobasuonCapital | Â Î Û Ê Ô Ā Ī Ū Ē Ō | ✓ | ||
| 15 | NobasuonSmall | â î û ê ô ā ī ū ē ō | ✓ | ||
| 16 | LowerAccent | à á â ã ă ạ ả ấ ầ ẩ ẫ ậ ắ ằ ẳ ẵ ặ đ è é ê ẹ ẻ ẽ ế ề ể ễ ệ ì í ĩ ỉ ị ò ó ô õ ơ ọ ỏ ố ồ ổ ỗ ộ ớ ờ ở ỡ ợ ù ú ũ ư ụ ủ ứ ừ ử ữ ự ý ỳ ỵ ỷ ỹ | ✓ | ||
| 17 | UpperAccent | À Á Â Ã Ă Ạ Ả Ấ Ầ Ẩ Ẫ Ậ Ắ Ằ Ẳ Ẵ Ặ Đ È É Ê Ẹ Ẻ Ẽ Ế Ề Ể Ễ Ệ Ì Í Ĩ Ỉ Ị Ò Ó Ô Õ Ơ Ọ Ỏ Ố Ồ Ổ Ỗ Ộ Ớ Ờ Ở Ỡ Ợ Ù Ú Ũ Ư Ụ Ủ Ứ Ừ Ử Ữ Ự Ý Ỳ Ỵ Ỷ Ỹ | ✓ |
*All フィルタ:指定すると、サポートされているすべての文字を対象とします。
実運用では、対象となる文字セットはできるだけ限定することを推奨します。多くの文字は視覚的に類似しているため、認識範囲を絞ることでモデルが正しい解釈を行いやすくなり、曖昧さの低減につながります。また、対象文字数を減らすことで処理時間の短縮にも寄与します。
ただし、これは必須ではありません。All フィルタを使用して、選択した言語でサポートされているすべての文字を対象とすることも可能です。ほとんどの場合、パフォーマンスへの影響は最小限です。
なお、All フィルタを除き、他のフィルタは一般的に使用される文字カテゴリのみを対象としており、サポートされている全ての文字を網羅しているわけではありません。用途によっては、targetCharacters フィールドを使用して追加の文字を明示的に指定する必要があります。