<表示装置の動作の概略>
図1は、本実施形態の表示装置2がユーザーの属性に応じて手書きデータから変換された文字を表示する表示方法を説明する図である。図1ではユーザーが一例として「あいさつ」という文字列を手書きしようとした。
(1)表示装置2は、カメラで撮像したユーザーの顔やマイクで検出したユーザーの音声などからユーザーの属性を判定する。属性には、性別、年齢又は人種などがある。表示装置2は属性に応じて、文字列候補539の優先度、確定データ573の文字サイズ、又は、確定データ573の文字フォントの少なくとも1つを切り替える。図1(a)ではユーザーUの属性として小児であることが検出されている。
(2)例えばユーザーUが「あい」という手書きデータ504を手書きした。表示装置2は「あい」という文字に基づいて、「あい」の認識で得られた文字列候補539を表示するが、文字列候補539を表示する場合、ユーザーUの属性に応じて例えば文字列候補539の優先度を変更する。例えば、ユーザーUが小児であった場合、ひらがなの文字列候補539を優先して表示する。図1(a)では「あいさつ」が「挨拶」よりも上位に表示されている。
(3)ユーザーUが「あいさつ」を選択すると、「あいさつ」が確定データ573として、手書きデータ504の代わりに表示される。確定データ573は文字認識により文字に変換され確定したデータである。
(4)これに対し、図1(b)ではユーザーUの属性として高齢者であることが検出されている。
(5)例えばユーザーUが「あい」という手書きデータ504を手書きした。表示装置2は「あい」という文字に基づいて、「あい」の認識で得られた文字列候補539を表示するが、文字列候補539を表示する場合、ユーザーUの属性に応じて例えば文字列候補539の優先度を変更する。例えば、ユーザーUが高齢者であった場合、漢字の文字列候補539を優先して表示する。図1(b)では「挨拶」が「あいさつ」よりも上位に表示されている。つまり、表示装置2は、各年代のユーザーが使用する傾向が高い文字列候補の優先度を大きくして表示する。
(6)ユーザーUが「挨拶」を選択すると、「挨拶」が確定データ573として、手書きデータの代わりに表示される。
このように、本実施形態の表示装置2は、ユーザーの属性を検出して、文字列候補539の優先度を変更するので、ユーザーが意図する文字列候補539を表示しやすくなり、変換精度を向上できる。また、ユーザーの属性に応じて、文字サイズやフォントを変更できるため、ユーザーが見やすい確定データ573を表示できる。また、人種を属性とする場合、人種に応じた言語に変換して文字列候補539を表示できる。
<用語について>
表示装置2は、専用の表示装置でもよいし、PC、スマートフォン、又は、タブレット端末などの情報処理装置がアプリケーションソフトを実行することで表示装置2として使用されてもよい。
入力手段とはタッチパネルに手書きが可能な手段であればよい。例えば、ペン、人の指や手、棒状部材などがある。また、視線入力が可能でもよい。
ユーザーの属性とは、ユーザーが有する特徴又は性質である。本実施形態では、年代、性別、人種などを例に説明するが、身長、体重、目の色、などを属性としてもよいし、職業や宗教を属性としてもよい。
手書きされたデータとは、ディスプレイ上でユーザーが入力手段を連続的に移動させた座標点列を軌跡として表示したデータである。また、ユーザーがディスプレイに入力手段を押しつけてから連続的に移動させた後、ディスプレイから離すという一連の操作をストロークといい、ストロークにより手書きされたデータをストロークデータという。ストロークデータは1つ以上の座標点を有し、手書きデータは1つ以上のストロークデータを有する。
手書きされたデータには、手書きデータそのものだけでなく、手書きデータが文字認識して変換されたテキストデータ、「済」などの決まった文字やマークとして表示されるスタンプ、円や星などの図形、直線等、ユーザーの操作に基づいて表示されたデータも含まれてよい。
確定データとは文字認識によりテキストデータに変換済みの文字列である。正しい変換か否かは問わない。なお、文字には、数値、記号、アルファベットなども含まれる。
<装置の全体構成>
図2を用いて、本実施形態に係る表示装置2の全体構成を説明する。図2は、表示装置2の全体構成図を示した図である。図2(a)では、表示装置2の一例として、壁につり下げられた横長の電子黒板として使用される表示装置2を示している。
表示装置2は、タッチパネルに接触している入力手段の位置に基づいて手書きされた手書きデータを表示する装置である。ユーザーが手で書いたデータを入力できるので手書き入力装置とも呼ばれる。
図2(a)に示されているように、表示装置2の上部にはディスプレイ220が設置されている。ユーザーUは、ペン2500を用いて、ディスプレイ220に文字等を手書きする(入力、描画ともいう)することができる。
図2(b)は壁につり下げられた縦長の電子黒板として使用される表示装置2を示している。
図2(c)は机230に平置きされた表示装置2を示す。表示装置2は厚みが1cm程度なので、一般の机に平置きしても机の高さを調整する必要がない。また、容易に移動できる。
<ペンの外観の一例>
図3は、ペン2500の斜視図の一例を示す。図3は多機能なペン2500の一例を示す。電源を内蔵して表示装置2に命令を送信できるペン2500をアクティブペンという(電源を内蔵しないペンをパッシブペンという)。図3のペン2500は、物理的なスイッチがペン先に一つ、ペン尻に一つ、ペン側面に二つあり、ペン先が筆記用、ペン尻が消去用、ペン側面はユーザー機能割り当て用である。本実施形態のペン2500は不揮発性のメモリーを有しており、他のペンと重複しないペンIDを記憶している。
なお、スイッチ付きのペンであれば、ユーザーの表示装置2の操作手順を減らすことも可能である。スイッチ付きのペンとは主にアクティブペンを言うが、電磁誘導方式では電源を内蔵しないパッシブペンでもLC回路だけで電力を発生できるため、アクティブペンだけでなく電磁誘導方式のパッシブペンを含む。電磁誘導方式以外の光学方式、赤外線方式、及び、静電容量方式のスイッチのあるペンはアクティブペンである。
なお、ペン2500のハードウェア構成は、通信機能とマイコンを備えた一般的な制御方式と同様であるとする。ペン2500の座標の入力方式には、電磁誘導方式、アクティブ静電結合方式などがある。また、ペン2500は、筆圧検知、傾き検知、ホバー機能(ペンが触れる前にカーソルを表示)、などの機能を有していてよい。
<装置のハードウェア構成>
続いて、図4を用いて、表示装置2のハードウェア構成を説明する。表示装置2は図示するように情報処理装置又はコンピュータの構成を有している。図4は、表示装置2のハードウェア構成図の一例である。図4に示されているように、表示装置2は、CPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203、及び、SSD(Solid State Drive)204を備えている。
これらのうち、CPU201は、表示装置2全体の動作を制御する。ROM202は、CPU201やIPL(Initial Program Loader)等のCPU201の駆動に用いられるプログラムを記憶する。RAM203は、CPU201のワークエリアとして使用される。SSD204は、表示装置2用のプログラム等の各種データを記憶する。
また、表示装置2は、ディスプレーコントローラー213、タッチセンサーコントローラー215、タッチセンサー216、ディスプレイ220、電源スイッチ227、カメラ228、チルトセンサー217、シリアルインタフェース218、スピーカー219、マイク221、無線通信装置222、赤外線I/F223、電源制御回路224、ACアダプター225、及びバッテリー226を備えている。
ディスプレーコントローラー213は、出力画像をディスプレイ220等へ出力するために画面表示の制御及び管理を行う。タッチセンサー216は、ディスプレイ220上にペン2500やユーザーの手等(ペンやユーザーの手は入力手段となる)が接触したことを検知する。また、タッチセンサー216はペンIDを受信する。
タッチセンサーコントローラー215は、タッチセンサー216の処理を制御する。タッチセンサー216は、座標の入力及び座標の検出を行う。この座標の入力及び座標の検出する方法は、例えば、光学式の場合、ディスプレイ220の上側両端部に設置された2つ受発光装置が、ディスプレイ220に平行して複数の赤外線を放射し、ディスプレイ220の周囲に設けられた反射部材によって反射されて、受光素子が放射した光の光路と同一の光路上を戻って来る光を受光する方法である。タッチセンサー216は、物体によって遮断された2つの受発光装置が放射した赤外線の位置情報をタッチセンサーコントローラー215に出力し、タッチセンサーコントローラー215が、物体の接触位置である座標位置を特定する。また、タッチセンサーコントローラー215は通信ユニット215aを有しており、ペン2500と無線で通信することができる。例えば、Bluetooth(登録商標)などの規格で通信している場合は、市販されているペンを使用することができる。通信ユニット215aに予め1つ以上のペン2500を登録しておくと、ユーザーはペン2500を表示装置2と通信させる接続設定を行わなくても通信できる。
電源スイッチ227は、表示装置2の電源のON/OFFを切り換えるためのスイッチである。チルトセンサー217は、表示装置2の傾き角度を検出するセンサーである。主に、表示装置2が図2(a)、図2(b)、又は、図2(c)のいずれかの設置状態で使用されているかを検出するために使用され、設置状態に応じて文字等の太さを自動で変更することができる。
カメラ228は表示装置2の周囲を撮像する撮像装置である。本実施形態ではユーザーの顔画像や全身などを撮像する。服装、髪型、体型などが属性と関連する部分が撮像されるとよい。
シリアルインタフェース218はUSBなどの外部との通信インタフェースである。外部からの情報の入力などに使用される。スピーカー219は音声の出力に使用され、マイク221は音声の入力に使用される。無線通信装置222は、ユーザーが携帯する端末と通信し、例えばインターネットへの接続を中継する。無線通信装置222はWi-FiやBluetooth(登録商標)などで通信するが、通信規格は問われない。無線通信装置222はアクセスポイントを形成しており、ユーザーが入手したSSID(Service Set Identifier)とパスワードをユーザーが携帯する端末に設定すると、アクセスポイントに接続できる。
なお、無線通信装置222には2つのアクセスポイントが用意されているとよい。
a. アクセスポイント→インターネット
b. アクセスポイント→社内ネットワーク→インターネット
aのアクセスポイントは社外のユーザー用で、ユーザーは社内ネットワークにはアクセスできないが、インターネットを利用できる。bのアクセスポイントは社内のユーザー用であり、社内のユーザーは社内ネットワーク及びインターネットを利用できる。
赤外線I/F223は隣に配置された表示装置2を検出する。赤外線の直進性を利用して、隣に配置された表示装置2のみを検出できる。赤外線I/F223は各辺に1つずつ設けられることが好ましく、表示装置2のどの方向に他の表示装置2が配置されたのかを検出できる。これにより画面が広がり、隣の表示装置2に過去に手書きされた手書き情報(1つのディスプレイ220の広さを1ページとして別のページの手書き情報)等を表示できる。
電源制御回路224は表示装置2の電源であるACアダプター225とバッテリー226を制御する。ACアダプター225は商用電源が共有する交流を直流に変換する。
ディスプレイ220がいわゆる電子ペーパーの場合、画像の表示を維持するためにほとんど又は一切電力を消費しないので、バッテリー226による駆動も可能である。これにより、屋外など電源を接続しにくい場所でもデジタルサイネージなどの用途で表示装置2を使用することが可能になる。
更に、表示装置2は、バスライン210を備えている。バスライン210は、図4に示されているCPU201等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
なお、タッチセンサー216は、光学式に限らず、静電容量の変化を検知することにより接触位置を特定する静電容量方式のタッチパネル、対向する2つの抵抗膜の電圧変化によって接触位置を特定する抵抗膜方式のタッチパネル、接触物体が表示部に接触することによって生じる電磁誘導を検知して接触位置を特定する電磁誘導方式のタッチパネルなどの種々の検出手段を用いてもよい。タッチセンサー216は、ペン先のタッチの有無を検知するのに電子ペンが必要ない方式であってよい。この場合はタッチ操作をするのに指先やペン型の棒を使用できる。なお、ペン2500は、細長いペン型である必要はない。
<装置の機能について>
次に、図5を用いて、表示装置2が有する機能について説明する。図5は表示装置2が有する機能をブロック状に示す機能ブロック図の一例である。表示装置2は、手書き入力部21、表示部22、手書き入力表示制御部23、候補表示タイマー制御部24、手書き入力保存部25、手書き認識制御部26、手書き認識辞書部27、文字列変換制御部28、文字列変換辞書部29、予測変換制御部30、予測変換辞書部31、操作コマンド認識制御部32、操作コマンド定義部33、及び、属性検出部41を備えている。表示装置2が有する各機能は、図4に示されている各構成要素のいずれかが、SSD204からRAM203上に展開されたプログラムに従ったCPU201からの命令によって動作することで実現される機能又は手段である。
手書き入力部21はタッチセンサー216等により実現されており、ユーザーによる手書き入力を受け付ける。手書き入力部21はユーザーのペン入力d1をペン操作データd2(ペンアップ、ペンダウン、又はペン座標データ)に変換し、手書き入力表示制御部23に送信する。ペン座標データは離散値として定期的に送信され、離散値間の座標は補完計算される。
表示部22はディスプレイ220等により実現され、手書きされたデータや操作メニューを表示する。表示部22は手書き入力表示制御部23がビデオメモリーに書き込んだ描画データd3をディスプレイ220の特性に応じたデータに変換し、ディスプレイ220に送信する。
手書き入力表示制御部23は手書き入力と表示に関する全体的な制御を行う。手書き入力表示制御部23は手書き入力部21からのペン操作データd2を処理し、表示部22に送信することで表示させる。
候補表示タイマー制御部24は、選択可能候補の表示制御タイマーである。タイマーを開始又は停止して選択可能候補の表示を開始するタイミングと表示を消去するタイミングを生成する。候補表示タイマー制御部24は手書き入力表示制御部23からタイマー開始要求d4(タイマー停止要求の場合もある)を受信し、タイムアウトイベントd5を手書き入力表示制御部23に送信する。
手書き入力保存部25はユーザーデータ(手書きデータ/文字列データ)を保存しておくストレージの機能を有する。手書き入力保存部25は手書き入力表示制御部23からユーザーデータd6-1を受信し、手書き入力保存部25に保存し、手書き入力表示制御部23から取得要求d6-2を受け取って、手書き入力保存部25に保存されたユーザーデータd7を送信する。手書き入力保存部25は、確定データの位置情報d36を操作コマンド認識制御部32に送信する。
手書き認識制御部26はオンライン手書き認識を行う認識エンジンである。一般的なOCR(Optical Character Reader)とは異なり、ユーザーのペン操作と並行して文字(日本語だけでなく英語などの多国語)、数字、記号(%、$、&など)、図形(線、丸、三角など)等を認識していく。認識方法については様々なアルゴリズムが考案されているが、本実施形態では公知の技術を利用できるとして詳細を割愛する。
手書き認識制御部26はペン操作データd8-1を手書き入力表示制御部23から受信し、手書き認識を実行して手書き認識文字列候補を保持する。また、手書き認識制御部26は手書き認識辞書部27を使用して手書き認識文字列候補d12から変換した言語文字列候補を保持しておく。別途、取得要求d8-2を手書き入力表示制御部23から受信した場合、手書き認識制御部26は保持している手書き認識文字列候補及び言語文字列候補d9を手書き入力表示制御部23に送信する。
なお、手書き認識制御部26は言語ごとに用意されることが好ましい。例えば、日本語用、英語用、中国語用など、表示装置2を使用するユーザーの人種に応じて用意されるとよい。言語が異なれば認識モデル(手書き認識のロジック)も異なるためである。
手書き認識辞書部27は手書き認識の言語変換用の辞書データである。手書き認識辞書部27は手書き認識文字列候補d12を手書き認識制御部26から受信し、言語的に確からしい言語文字列候補d13に変換して手書き認識制御部26に送信する。例えば、日本語の場合は、平仮名を漢字や片仮名へ変換する。
手書き認識辞書部27も言語ごとに用意されることが好ましい。例えば、英語であればアルファベットを単語に変換する辞書が用意される。また、言語が日本語であっても、高齢者用と小児用では優先すべき言語文字列候補が異なるため、年代別に手書き認識辞書部27が用意されるとよい。同様の理由で男性用、女性用の手書き認識辞書部27が用意されるとよい。
文字列変換制御部28は変換文字列候補への変換を制御する。変換文字列とは手書き認識文字列又は言語文字列を含んで生成される可能性が高い文字列である。文字列変換制御部28は手書き認識文字列及び言語文字列候補d11を手書き認識制御部26から受信し、文字列変換辞書部29を使用して変換文字列候補に変換して保持しておく。別途、取得要求d14を手書き入力表示制御部23から受信した場合、保持している変換文字列候補d15を手書き入力表示制御部23に送信する。
文字列変換制御部28も言語ごとに用意されることが好ましい。例えば、英語であれば手書き認識文字列又は言語文字列(アルファベット)を含んで生成される可能性が高い単語に変換したり、スペルチェックを行って誤記を修正したり、文法的に間違っていることを指摘したりする単語に変換したりする。
文字列変換辞書部29は文字列変換用の辞書データである。文字列変換辞書部29は文字列変換制御部28から手書き認識文字列及び言語文字列候補d17を受信し、変換文字列候補d18を文字列変換制御部28に送信する。
文字列変換辞書部29も言語ごとに用意されることが好ましい。例えば、英語であればアルファベットを単語に変換する辞書が用意される。文法的な禁則などが用意される。言語が日本語であっても、高齢者と小児では優先される変換文字列候補が異なるため、年代別に文字列変換辞書部29が用意されるとよい。同様の理由で男性用、女性用の文字列変換辞書部29が用意されるとよい。
予測変換制御部30は手書き認識文字列及び言語文字列候補d10を手書き認識制御部26から受信し、変換文字列候補d16を文字列変換制御部28から受信し、それぞれについて予測変換辞書部31を使用して予測文字列候補に変換しておく。予測変換文字列とは手書き認識文字列、言語文字列又は変換文字列を含んで生成される可能性が高い文字列である。別途、取得要求d19を手書き入力表示制御部23から受信した場合、予測文字列候補d20を手書き入力表示制御部23に送信する。
予測変換制御部30も言語ごとに用意されることが好ましい。例えば、英語であればある単語をこの単語を含む熟語等に変換する。
予測変換辞書部31は予測変換用の辞書データである。予測変換辞書部31は手書き認識文字列及び言語文字列候補と変換文字列候補d21を予測変換制御部30から受信し、予測文字列候補d22を予測変換制御部30に送信する。
予測変換辞書部31も言語ごとに用意されることが好ましい。例えば、英語であれば単語を熟語等に変換する辞書が用意される。言語が日本語であっても、高齢者用と小児用では予測文字列候補が異なるため、年代別に予測変換辞書部31が用意されるとよい。同様の理由で男性用、女性用の予測変換辞書部31が用意されるとよい。
操作コマンド認識制御部32は手書き認識文字列及び言語文字列候補d30を手書き認識制御部26から受信し、変換文字列候補d28を文字列変換制御部28から受信し、予測文字列候補d29を予測変換制御部30から受信する。そして、それぞれについて操作コマンド変換要求d26を操作コマンド定義部33に送信し、操作コマンド定義部33から操作コマンドの候補d27を受信する。操作コマンド認識制御部32は操作コマンドの候補d27を保持しておく。
操作コマンド定義部33は操作コマンド変換要求d26が操作コマンド定義と部分一致している場合は操作コマンドの候補d27を操作コマンド認識制御部32に送信する。
また、操作コマンド認識制御部32はペン操作データd24-1を手書き入力表示制御部23から受信し、過去に入力され確定した確定データの位置情報取得要求d23を手書き入力保存部25に送信し、ペン操作データが指定している確定データを選択データ(位置情報を含む)として保持しおく。操作コマンド認識制御部32はペン操作データd24-1の位置と所定の基準を満たす選択データを特定する。別途、取得要求d24-2を手書き入力表示制御部23から受信した場合、保持している操作コマンドの候補と特定した選択データd25を手書き入力表示制御部23に送信する。
属性検出部41は、カメラ228が撮像した画像データからユーザーの属性を検出する。ユーザーを含む領域を切り取ってもよいし、画像データの全体を使用してもよい。例えば、予めCNN(Convolutional Neural Network)などで属性とユーザーの画像の対応を学習しておく。これにより、入力された画像データに対し、年代、性別、又は人種等の属性を出力できるので、属性検出部41はユーザーの属性を判定できる。なお、カメラ228でなくマイク221から入力される音声データからユーザーの属性を検出してもよい。例えば、音声データから抽出されるMFCC(Mel-Frequency Cepstral Coefficients。メル周波数ケプストラム係数)などの特徴ベクトルとユーザーの属性の対応をDNN(Deep Neural Network)で学習しておく。属性検出部41は属性情報d39を手書き入力表示制御部23に送信する。
<ユーザー認証について>
本実施形態ではユーザー認証の結果を用いた制御が行われるため、表示装置2がユーザー認証する機能を有することが好ましい。このため、図6を用いてユーザー認証に関する機能について説明する。
図6は、表示装置2が有するユーザー認証に関する機能をブロック状に示す図である。なお、図6ではユーザー認証部34(ユーザー認証手段)と関連する機能として手書き入力表示制御部23のみを示したが、ユーザーの認証結果は図5に示した各機能が利用できてよい。
認証情報取得部35はユーザーUから認証情報d31を取得する。認証情報d31はICカードのカード番号、ユーザーIDとパスワード、又は、指紋などの生体情報などでよい。ユーザー認証部34は認証情報d32を認証情報取得部35から取得して、認証情報d33をユーザー情報DB36で検索する。検索に適合するユーザーが存在する場合はユーザー情報d34をユーザー情報DB36から取得する。ユーザー情報はユーザーの属性を表す情報であればよく、例えば、ユーザー名、パスワード、ユーザーのコンピュータ名、部署、権限、などでよい。
ユーザー認証部34はユーザー情報d35を手書き入力表示制御部23に送信するので、手書き入力表示制御部23はユーザー情報を用いて操作コマンドを実行できるようになる。ユーザー情報を用いた操作コマンドに関しては図11にて説明される。
なお、認証機能は表示装置2が有する他、外部の認証サーバー等が有していてもよい。この場合、表示装置2は認証情報を認証サーバーに送信し、認証結果とユーザー情報を取得する。
<定義済み制御データについて>
次に、図7を用いて、表示装置2が各種の処理に使用する定義済み制御データについて説明する。図7は定義済み制御データの一例を示す。図7の例では制御項目ごとに制御データを示す。
選択可能候補表示タイマー401は、選択可能候補を表示するまでの時間を定義する。手書き中に選択可能候補を表示しないためである。図7では、ペンアップからTimerValue=500〔ms〕以内にペンダウンが発生しなければ選択可能候補が表示されることを意味している。選択可能候補表示タイマー401は候補表示タイマー制御部24が保持している。選択可能候補表示タイマー401は、後述する図20のステップS20において選択可能候補表示タイマー開始時に使用される。
選択可能候補消去タイマー402は表示した選択可能候補を消去するまでの時間を定義する。ユーザーが選択可能候補を選択しない場合に選択可能候補を消去するためである。図7では、選択可能候補の表示からTimerValue=5000〔ms〕以内に選択可能候補が選択されなければ選択可能候補表示が消去されることを意味している。選択可能候補消去タイマー402は候補表示タイマー制御部24が保持している。選択可能候補消去タイマー402は図22のステップS52において選択可能候補表示消去タイマー開始時に使用される。
手書きデータ近傍矩形領域403は手書きデータの近傍とみなす矩形領域を定義する。図7の例では、手書きデータ近傍矩形領域403は、手書きデータの矩形領域を水平方向に推定文字サイズの50%(Horizontal)拡大し、垂直方向に推定文字サイズの80%(Vertical)拡大した矩形領域となる。図7の例では推定文字サイズの割合(%指定)となっているが、単位を"mm"等とすれば固定長にすることも可能である。手書きデータ近傍矩形領域403は手書き入力保存部25が保持している。推定文字サイズ405は図19のステップS10において、手書きデータ近傍矩形領域とストローク矩形領域の重なり状況の判定で使用される。
推定書字方向/文字サイズ判定条件404は、書字方向と文字サイズの測定方向を判定するための定数を定義する。図7の例では、手書きデータ矩形領域の最初にストロークが追加された時刻と最後にストロークが追加された時刻の差分がMinTime=1000〔ms〕以上で、手書きデータ矩形領域の水平距離(幅)と垂直距離(高さ)の差分がMinDiff=10〔mm〕以上あり、水平距離が垂直距離より長い場合は、推定書字方向は「横書き」、推定文字サイズは垂直距離と判定することを意味する。水平距離が垂直距離より短い場合は、推定書字方向は「縦書き」、推定文字サイズは水平距離と判定することを意味する。以上の条件を満たさない場合は、推定書字方向は「横書き」(DefaultDir="Horizontal")、推定文字サイズは水平距離と垂直距離の長い方の距離と判定する。推定書字方向/文字サイズ判定条件404は手書き入力保存部25が保持している。推定書字方向/文字サイズ判定条件404は図21のステップS47における推定書字方向取得と、図23のステップS67における文字列データフォント取得で使用される。
推定文字サイズ405は文字等のサイズを推定するためのデータを定義する。図7の例では、推定書字方向/文字サイズ判定条件404で判定された推定文字サイズが、推定文字サイズ405の小さめ文字405a(以下、最小フォントサイズ、と呼ぶ)と大きめ文字405c(以下、最大フォントサイズ)と比較されることを意味する。推定文字サイズが最小フォントサイズより小さい場合、推定文字サイズは最小フォントサイズと判定される。推定文字サイズが最大フォントサイズより大きい場合、推定文字サイズは最大フォントサイズと判定される。それ以外は、中くらい文字405bの文字サイズと判定される。推定文字サイズ405は手書き入力保存部25が保持している。推定文字サイズ405は、図23のステップS67における文字列データフォント取得で使用される。
手書き入力保存部25は具体的には、推定書字方向/文字サイズ判定条件404で判定された推定文字サイズを推定文字サイズ405のFontSizeと比較して、最も近いサイズのフォントを使用する。例えば、推定文字サイズが25〔mm〕(小さめ文字のFontSize)以下の場合は「小さめ文字」、推定文字サイズが25mm超50mm(中くらい文字のFontSize)以下の場合は「中くらい文字」、推定文字サイズが100mm(大きめ文字のFontSize)超の場合は「大きめ文字」と判定する。「小さめ文字」405aは明朝体の25mmフォント(FontStyle="明朝体" FontSize="25mm")、「中くらい文字」405bは明朝体の50mmフォント(FontStyle="明朝体" FontSize="50mm")、「大きめ文字」405cはゴシック体の100mmフォント(FontStyle="ゴシック体" FontSize="100mm")を使用する。ユーザーの属性などに応じてもっとフォントのサイズ又はスタイルの種類を増やしたい場合は、推定文字サイズ405の種類を増やせばよい。
図7では、高齢者と小児のそれぞれに文字等のサイズを推定するためのデータが定義されている。高齢者でも小児でもない推定文字サイズ405は一般成人用のものである。こうすることで、高齢者が手書きしたデータはやや大きめの確定データ573で表示され、小児が手書きしたデータはやや小さめの確定データ573で表示される。また、高齢者及び小児が見やすいフォントが用意されている。小児、一般男性、高齢者のように3段階に分けるのでなく、10代、20代、30代…70代などのように分けてもよい。同様の定義が性別推定文字サイズ(男性と女性)408、人種推定文字サイズ(日本人と欧米人)409にも用意される。なお、性別推定文字サイズ408と人種推定文字サイズ409についても大中小の文字サイズが用意されてよい。また、人種に関しては中国人、日本人、白人、黒人などが設定されていてもよい。
跨ぎ線判定条件406は複数の確定データが選択されたか否かの判定に使用されるデータを定義する。手書きデータが単数のストロークであり、図7の例では、手書きデータの長辺の長さが100〔mm〕以上(MinLenLongSide="100mm")、かつ、短辺の長さが50〔mm〕以下(MaxLenShortSide="50mm")、かつ、手書きデータとの長辺方向と短辺方向の重なり率が80〔%〕以上(MinOverLapRate="80%")の確定データがあれば、複数の確定データが選択された(選択データ)と判定する。跨ぎ線判定条件406は操作コマンド認識制御部32が保持している。跨ぎ線判定条件406は図20のステップS38における選択データの判定の跨ぎ線判定で使用される。
囲み線判定条件407は、手書きデータが囲み線か否かの判定に使用されるデータを定義する。図7の例では、操作コマンド認識制御部32は手書きデータの長辺方向と短辺方向の重なり率が100%以上(MinOverLapRate="100%")の確定データを選択データと判定する。囲み線判定条件407は、操作コマンド認識制御部32が保持している。囲み線判定条件407は、図20のステップS38における選択データの囲み線判定で使用される。
なお、跨ぎ線判定条件406と囲み線判定条件407はどちらが優先して判定されてもよい。例えば、跨ぎ線判定条件406を緩やかにして(跨ぎ線を選択しやすくした場合)、囲み線判定条件407は厳密にした場合(囲み線のみを選択できるような値とした場合)、操作コマンド認識制御部32は囲み線判定条件407を優先して判定するのがよい。
<辞書データの一例>
図8~図10を用いて辞書データについて説明する。図8は手書き認識辞書部27の辞書データの一例であり、図9は文字列変換辞書部29の辞書データの一例であり、図10は予測変換辞書部31の辞書データの一例である。なお、これらの辞書データはそれぞれ図20のステップS21~S31で使用される。
本実施形態では、図8の手書き認識辞書部27の辞書データによる変換結果を言語文字列候補、図9の文字列変換辞書部29の辞書データによる変換結果を変換文字列候補、図10の予測変換辞書部31の辞書データによる変換結果を予測文字列候補と呼ぶ。各辞書データの「変換前」は辞書データを検索する文字列、「変換後」は検索する文字列に対応した変換後の文字列、「確率」はユーザーが選択する確率を表す。確率は過去にユーザーが各文字列を選択した結果から算出されている。したがって、ユーザーごとに確率が算出されてもよい。確率の計算方法として様々なアルゴリズムが考案されているが、適宜、適切な方法で計算するものとすればよく、詳細は割愛する。本実施形態では、推定書字方向から言語文字列候補を選択確率降順で表示することを特徴とする。
手書き認識辞書部27が属性ごとに用意される場合、言語文字列候補の選択確率が異なるため、同じ手書きデータに対し表示される言語文字列候補もユーザーの属性に応じて異ならせることができる。
図8の手書き認識辞書部27の辞書データでは、手書きされた「ぎ」は、確率0.55で「議」、確率0.4で「技」、手書きされた「ぎし」は、確率0.5で「技士」、確率0.45で「技師」に変換されることを示す。その他の「変換前」の文字列についても同様である。図8では「変換前」の文字列が手書きされた平仮名となっているが、平仮名以外を「変換前」に登録してもよい。
図9の文字列変換辞書部29の辞書データでは、文字列「議」は確率0.95で「議事録」に、文字列「技」は確率0.85で「技量試」に変換されることを示す。その他の「変換前」の文字列についても同様である。
文字列変換辞書部29が属性ごとに用意される場合、変換文字列候補の選択確率が異なるため、同じ手書きデータに対し表示される変換文字列候補もユーザーUの属性に応じて異ならせることができる。
図10の予測変換辞書部31の辞書データでは、文字列「議事録」は確率0.65で「議事録の送付先」に、文字列「技量試」は確率0.75で「技量試を決裁」に変換されることを示す。図10の例では変換前の文字列がすべて漢字になっているが、漢字以外を登録してもよい。
予測変換辞書部31が属性ごとに用意される場合、予測文字列候補の選択確率が異なるため、同じ手書きデータに対し表示される予測文字列候補もユーザーUに応じて異ならせることができる。
なお、辞書データに言語依存はなく、変換前と変換後にどのような文字列が登録されていてもよい。
<操作コマンド定義部が保持する操作コマンド定義データ>
次に、図11、図12を用いて操作コマンド認識制御部32が使用する操作コマンド定義データについて説明する。図11は、操作コマンド定義部33が保持する操作コマンド定義データ、及びシステム定義データの一例を示す。
図11(a)は操作コマンド定義データの一例を示す。図11(a)の操作コマンド定義データは、手書きデータにより選択された選択データがない場合の操作コマンド定義データ例であり、表示装置2を操作する全ての操作コマンドが対象となる。図11(a)の操作コマンドは操作コマンド名(Name)、文字列候補と部分一致する文字列(String)、実行する操作コマンド文字列(Command)を有する。操作コマンド文字列内の「%~%」は変数であり、図11(b)に示すようにシステム定義データと対応付けられている。つまり、「%~%」は図11(b)に示すシステム定義データで置き換えられる。
まず、操作コマンド定義データ701は、操作コマンド名が「議事録テンプレートを読み込む」、文字列候補と部分一致する文字列が「議事録」又は「テンプレート」、実行する操作コマンド文字列が「ReadFile https://%username%:%password%@server.com/template/minutes.pdf」であることを示す。この例では、実行する操作コマンド文字列に「%~%」のシステム定義データが含まれており「%username%」「%password%」はそれぞれシステム定義データ704、705で置き換えられることを示す。したがって、最終的に実行する操作コマンド文字列は「ReadFile https://taro.tokkyo:x2PDHTyS@server.com/template/minutes.pdf」という文字列となり、「https://taro.tokkyo:x2PDHTyS@server.com/template/minutes.pdf」というファイルを読み込む(ReadFile)ことを示す。
操作コマンド定義データ702は、操作コマンド名が「議事録フォルダーに保存する」、文字列候補と部分一致する文字列が「議事録」又は「保存」、実行する操作コマンド文字列が「WriteFile https://%username%:%password%@server.com/minutes/%machinename%_%yyyy-mm-dd%.pdf」であることを示す。操作コマンド定義データ701と同様に、操作コマンド文字列の「%username%」「%password%」「%machinename%」はそれぞれシステム定義データ704~706で置き換えられる。なお、「%yyyy-mm-dd%」は現在日で置き換えることを示す。例えば、現在日が2018年9月26日であれば「2018-09-26」で置き換えることを示す。最終的に実行する操作コマンドは「WriteFile https://taro.tokkyo:x2PDHTyS@server.com/minutes/%My-Machine_2018-09-26.pdf」となり、議事録を「https://taro.tokkyo:x2PDHTyS@server.com/minutes/%My-Machine_2018-09-26.pdf」というファイルに保存する(WriteFile)ことを示す。
操作コマンド定義データ703は、操作コマンド名が「印刷する」、文字列候補と部分一致する文字列が「印刷」又は「プリント」、実行する操作コマンド文字列が「PrintFile https://%username%:%password%@server.com/print/%machinename%-"%yyyy-mm-dd%.pdf」であることを示す。操作コマンド定義データ702と同様に操作コマンド文字列を置き換えると、最終的に実行する操作コマンドは「PrintFile https://taro.tokkyo:x2PDHTyS@server.com/print/%My-Machine_2018-09-26.pdf」となり、「https://taro.tokkyo:x2PDHTyS@server.com/print/%My-Machine_2018-09-26.pdf」というファイルを印刷する(PrintFile)ことを示す。つまり、ファイルがサーバーに送信される。ユーザーがプリンターをサーバーと通信させ、ファイルを指定するとプリンターが用紙にファイルの内容を印刷する。
このように、文字列候補から操作コマンド定義データ701~703を特定できるため、ユーザーが手書きすることで操作コマンドを表示させることができる。また、ユーザーの認証が成功した場合にはユーザー情報で操作コマンド定義データの「%username%」「%password%」等が置き換えられるので、ユーザーに対応付けてファイルの入出力が可能になる。
ユーザーの認証が行われない場合(認証が失敗したがユーザーが表示装置2を使用できる場合は認証失敗の場合も含む)、表示装置2は、予め設定されている表示装置2の「%username%」「%password%」等に置き換える。したがって、ユーザー認証なしでも表示装置2に対応付けてファイルの入出力が可能になる。
続いて、手書きデータがある場合の操作コマンド定義データ、つまり編集系及び修飾系の操作コマンド定義データについて説明する。図12は手書きデータにより選択された選択データがある場合の操作コマンド定義データの一例を示す。図12の操作コマンド定義データは、操作コマンド名(Name)、操作コマンドの候補のグループ名(Group)、実行する操作コマンド文字列(Command)を有する。
操作コマンド定義データ707は編集系(Group="Edit")の操作コマンドを定義しており、編集系の操作コマンド名「消去」「移動」「回転」「選択」の定義データ例である。つまり、選択データに対してこれらの操作コマンドが表示され、ユーザーが所望の操作コマンドを選択できる。
操作コマンド定義データ708は修飾系(Group="Decorate")の操作コマンドを定義しており、修飾系の操作コマンド名「太く」「細く」「大きく」「小さく」「下線」の定義データ例である。選択データに対してこれらの操作コマンドが表示され、ユーザーが所望の操作コマンドを選択できる。この他、色の操作コマンドが表示されてもよい。
したがって、ユーザーが選択データを手書きデータで選択することで、操作コマンド定義データ707、708が特定されるため、ユーザーが手書きすることで操作コマンドを表示させることができる。
<選択可能候補の表示例>
図13は操作ガイド500と操作ガイド500が表示する選択可能候補530の一例である。ユーザーが手書きデータ504を手書きすることで(選択可能候補表示タイマーのタイムアウトにより)、操作ガイド500が表示される。操作ガイド500は、操作ヘッダー520、操作コマンドの候補510、手書き認識文字列候補506、変換文字列候補507、予測文字列候補508、及び、手書きデータ矩形領域表示503を有している。選択可能候補530は、操作コマンドの候補510、手書き認識文字列候補506(言語文字列候補571がある場合はこれも含む)、変換文字列候補507、及び、予測文字列候補508である。また、操作コマンドの候補510を除く選択可能候補530を文字列候補539という。
操作ヘッダー520はボタン501、509、502、505を有する。ボタン501は予測変換のオンとオフの切り替え操作を受け付ける。図13の例ではユーザーが「予測」と表示されているボタン501を押下すると手書き入力部21がそれを受け付けて手書き入力表示制御部23にその旨を通知し、表示部22が「かな」というボタン501に表示を変更する。変更後は予測変換が行われず(変換文字列候補507、予測文字列候補508が表示されず)、操作コマンドの候補510、手書き認識文字列候補506、及び、言語文字列候補(カナ漢字変換された例えば議などの漢字)が表示される。
ボタン502は候補表示のページ操作をする。図13の例では候補表示ページは3ページあり、現在は1ページ目を表示している。ボタン505は操作ガイド500の消去を受け付ける。ユーザーがボタン505を押下すると手書き入力部21が受け付けて手書き入力表示制御部23にその旨を通知し、表示部22が手書きデータ以外の表示を消去する。ボタン509は一括表示消去を受け付ける。ユーザーがボタン509を押下すると手書き入力部21が受け付けて手書き入力表示制御部23にその旨を通知し、表示部22が手書きデータを含め、図13に示されているすべての表示を消去して、ユーザーが最初から手書きをしなおすことを可能にする。
図13において手書きデータ504はユーザーが手書きした「ぎ」という文字である。手書きデータ504を囲む手書きデータ矩形領域表示503が表示される。表示の手順は図17~図23のシーケンス図で説明する。図13の例では点線枠で手書きデータ矩形領域表示503が表示されている。
手書き認識文字列候補506、変換文字列候補507、予測文字列候補508にはそれぞれの文字列候補が確率降順で並んでいる。手書き認識文字列候補506の「ぎ」は認識結果の候補である。この例では正しく「ぎ」を認識している。
変換文字列候補507は言語文字列候補から変換された変換文字列候補である。この例の「技量試」とは「技術量産試作」の略名である。予測文字列候補508は手書き認識文字列、言語文字列候補又は変換文字列候補から変換された予測文字列候補である。この例では「技量試を決裁」と「議事録の送付先」が表示されている。
操作コマンドの候補510は図11(a)の操作コマンド定義データ701~703に基づいて選択された操作コマンドの候補である。図13の例では行頭文字の「》」511が操作コマンドの候補であることを示している。図13では手書きデータ504である「ぎ」が選択する選択データがなく、「ぎ」の文字列候補である「議事録」が、図11(a)の操作コマンド定義データ701,702と部分一致したため、操作コマンドの候補510として表示されている。
ユーザーが「議事録テンプレートを読み込む」を選択すると、操作コマンド定義データ701で定義された操作コマンドが実行され、「議事録フォルダーに保存する」を選択すると、操作コマンド定義データ702で定義された操作コマンドが実行される。このように操作コマンドの候補は、変換された文字列を含む操作コマンド定義データが見つかる場合に表示されるため、常に表示されるとは限らない。
図13に示すように、文字列候補と操作コマンドの候補が同時に(共に)表示されるため、ユーザーは自分が入力しようとした文字列候補と操作コマンドのどちらも任意に選択できる。
<選択データの指定例>
本実施形態の表示装置2は確定データをユーザーが手書きにより選択することで選択データを指定できる。選択データは編集又は修飾の対象となる。
図14は、選択データの指定例を説明する図の一例である。図14では、手書きデータ11は黒色実線、手書きデータ矩形領域12を灰色網掛け、確定データ13を黒線、選択データ矩形領域14を点線でそれぞれ表示している。なお、それぞれを区別する場合に小文字のアルファベットを符号に付加する。また、確定データを選択データと判定するための判定条件(所定の関係にあるか否か)として、図7に示した定義済み制御データの跨ぎ線判定条件406又は囲み線判定条件407を使用している。
図14(a)は横書きの2つの確定データ13a、13bをユーザーが跨ぎ線(手書きデータ11a)で指定した例である。この例では、手書きデータ矩形領域12aの短辺の長さH1と長辺の長さW1が跨ぎ線判定条件406の条件を満たしており、確定データ13a、13bとの重なり率が跨ぎ線判定条件406の条件を満たしているため、「議事録」と「ぎじ」の両方の確定データ13a、13bが選択データとして指定されている。
図14(b)は横書きの確定データ13cを囲み線(手書きデータ11b)で指定した例である。この例では、確定データ13cと手書きデータ矩形領域12cの重なり率が囲み線判定条件407の条件を満たしている「議事録」という確定データ13cだけが選択データとして指定されている。
図14(c)は縦書きの複数の確定データ13d、13eを跨ぎ線(手書きデータ11c)で指定した例である。この例では、図14(a)と同様に、手書きデータ矩形領域12dの短辺の長さH1と長辺の長さW1が跨ぎ線判定条件406の条件を満たしており、「議事録」と「ぎじ」という2つの確定データ13d、13eそれぞれとの重なり率が跨ぎ線判定条件406の条件を満たしているため、「議事録」と「ぎじ」の両方の確定データ13d、13eが選択データとして指定されている。
図14(d)は縦書きの確定データ13fを囲み線(手書きデータ11d)で指定した例である。この例では、図14(b)と同様に、「議事録」という確定データ13fだけが選択データとして指定されている。
<操作コマンドの候補の表示例>
図15は、図14に示した手書きデータがある場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す。図15(a)は編集系の操作コマンドの候補であり、図15(b)は修飾系の操作コマンドの候補である。また、図15(a)は図14(a)の手書きデータ11aで選択データが指定された例を示す。
図15(a)(b)に示すように、行頭文字「》」511に続いて表示された操作コマンドの候補がメインメニュー550である。メインメニュー550には最後に実行された操作コマンド名又は操作コマンド定義データで先頭の操作コマンド名が表示される。1行目の行頭文字「》」511aは編集系の操作コマンドの候補であり、2行目の行頭文字「》」511bは修飾系の操作コマンドの候補である。
行末の「〉」512はサブメニューがあることを示す(サブメニューボタンの一例)。1行目の「〉」512aは編集系の操作コマンドの候補のサブメニュー(最後に選択された)を表示させ、2行目の「〉」512bは修飾系の操作コマンドの候補の残りのサブメニューを表示させる。ユーザーが「〉」512を押下すると、その右側にサブメニュー560が表示される。サブメニュー560には操作コマンド定義データで定義されている全ての操作コマンドが表示される。図15(a)の表示例ではメインメニューが表示された時から1行目の「〉」512aに対応したサブメニュー560も表示されている。1行目の「〉」512aの押下により表示されてもよい。
ユーザーがペンでいずれかの操作コマンド名を押下すると、操作コマンド名に対応付けられた操作コマンド定義データのCommandを手書き入力表示制御部23が選択データに対して実行する。すなわち「消去」521が選択されると「Delete」、「移動」522が選択されると「Move」、「回転」523が選択されると「Rotate」、「選択」524が選択されると「Select」をそれぞれ実行する。
例えば、ユーザーが「消去」521をペンで押下すると「議事録」と「ぎじ」を消去でき、「移動」522,「回転」523、「選択」524を押すとバウンディングボックス(選択データの外接矩形)が表示され、「移動」522と「回転」523ではペンのドラッグ動作で移動又は回転でき、「選択」524ではその他のバウンディングボックスの操作を実行できる。
操作コマンドの候補以外の文字列候補である「一」541、「一、」542、「~」543、「→」544、「⇒」545は跨ぎ線(手書きデータ11a)の認識結果であり、ユーザーが操作コマンドでなく文字列を入力するつもりであった場合は文字列候補を選択できる。
図15(b)では2行目の「〉」512bの押下により、図15(b)のサブメニューが表示される。図15(b)の表示例も図15(a)と同様にメインメニュー550とサブメニュー560が表示されている。図12の操作コマンド定義データに基づいて、「太く」531が選択されると「Thick」、「細く」532が選択されると「Thin」、「大きく」533が選択されると「Large」、「小さく」534が選択されると「Small」、下線535が選択されると「Underline」を手書き入力表示制御部23が選択データに対してそれぞれ実行する。
なお、「太く」531が選択された場合にどのくらい太くするか、「細く」532が選択された場合にどのくらい細くするか、「大きく」533が選択された場合にどのくらい大きくするか、「小さく」534が選択された場合にどのくらい小さくするか、下線535が選択された場合の線種等は、固定値が別途定義されている。あるいは、図15(b)のサブメニューが選択されると別途、選択メニューが開かれユーザーが調整できるようになっているとなおよい。
ユーザーが「太く」531をペンで押下すると「議事録」と「ぎじ」という確定データ13a、13bを構成する線を手書き入力表示制御部23が太くする。「細く」532をペンで押下すると、「議事録」と「ぎじ」を構成する線を手書き入力表示制御部23が細くでき、「大きく」533をペンで押下すると手書き入力表示制御部23が大きくでき、「小さく」534をペンで押下すると手書き入力表示制御部23が小さくでき、「下線」535をペンで押下すると下線を手書き入力表示制御部23が追加できる。
図16は、図12に示した手書きデータがある場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す。図15(a)(b)との相違は、図16(a)(b)は図14(b)の手書きデータ11b(囲み線)で選択データが指定された例を示す。図15と図16を比較すると分かるように手書きデータが線か囲み線かによって表示される操作コマンドの候補に違いはない。手書き入力表示制御部23は選択データが指定されると操作コマンドの候補を表示部22に表示させるためである。しかし、手書きデータを認識して手書きデータに応じて表示する操作コマンドの候補を変更してもよい。この場合、認識された手書きデータ(一や○など)に図12のような操作コマンド定義データを対応付けておく。
図16において操作コマンドの候補以外の文字列候補である「○」551、「∞」552、「0」553、「00」554、「ロ」555は囲み線(手書きデータ11b)の認識結果であり、ユーザーが操作コマンドでなく文字列を入力するつもりであった場合は文字列候補を選択できる。
<動作手順>
以上の構成と図17~図23を用いて、表示装置2の動作について説明する。図17~図23は表示装置2が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である。図17の処理は、表示装置2が起動すると(アプリケーションが起動すると)スタートする。なお、図17~図23ではスペースの都合上、符号で図7の機能を示した。
S101:表示装置2の属性検出部41は、手書きデータの認識に関する処理とは非同期にユーザーの属性を検出している。例えば、カメラ228でユーザーが撮像されるたびにユーザーの属性を検出してもよいし、定期的に検出してもよい。また、手書きデータに関する処理と同期してペンダウンの時に検出してもよいし、ペンアップしてからペンダウンまでの時間が閾値以上の場合に検出してもよい。属性検出部41は検出した属性情報を手書き入力表示制御部23に送信する。
S102:手書き入力表示制御部23は新たな属性情報が検出されると、属性情報を手書き入力保存部25に送信する。手書き入力保存部25は図7で説明した推定文字サイズ405、性別推定文字サイズ408、及び、人種推定文字サイズ409を有しており、属性情報に応じて文字サイズやフォントを切り替える。また、人種に対応した文字を表示する。
S103:手書き入力表示制御部23は新たな属性情報が検出されると、属性情報を手書き認識制御部26に送信する。
S104:手書き認識制御部26は属性情報に応じて認識モデルを切り替える。例えば、英語と日本語の認識モデルを切り替える。また、手書き認識制御部26は属性情報に応じて手書き認識辞書部27に辞書の切り替えを要求する。例えば、英語用、日本語用、高齢者用、小児用、男性用、又は女性用の辞書に切り替える。
S105:手書き入力表示制御部23は新たな属性情報が検出されると、属性情報を文字列変換制御部28に送信する。
S106:文字列変換制御部28は属性情報に応じて文字列変換辞書部29に辞書の切り替えを要求する。例えば、英語用、日本語用、高齢者用、小児用、男性用、又は女性用の辞書に切り替える。
S107:手書き入力表示制御部23は新たな属性情報が検出されると、属性情報を予測変換制御部30に送信する。
S108:予測変換制御部30は属性情報に応じて予測変換辞書部31に辞書の切り替えを要求する。例えば、英語用、日本語用、高齢者用、小児用、男性用、又は女性用の辞書に切り替える。
S1:続いて、手書きデータの処理について説明する。手書き入力表示制御部23が手書きデータ開始を手書き入力保存部25に送信する。手書き入力保存部25は手書きデータ領域(手書きデータを保存するメモリー領域)を確保する。ユーザーがペンを手書き入力部21に接触させてから手書きデータ領域を確保してもよい。
S2:次にユーザーが手書き入力部21にペンを接触させる。手書き入力部21はペンダウンを検出して手書き入力表示制御部23に送信する。
S3:手書き入力表示制御部23は手書き入力保存部25にストローク開始を送信し、手書き入力保存部25はストローク領域を確保する。
S4:ユーザーがペンを手書き入力部21に接触させたまま移動させると、手書き入力部21はペン座標を手書き入力表示制御部23に送信する。
S6:手書き入力表示制御部23はペン座標補完表示データ(離散的なペン座標を補間したストロークデータ)を表示部22に送信する。表示部22はペン座標補完表示データを用いてペン座標を補間して線を表示する。
S7:手書き入力表示制御部23はペン座標とその受信時刻を手書き入力保存部25に送信する。手書き入力保存部25はペン座標をストロークに追加する。ユーザーがペンを動かしている間は、手書き入力部21は定期的に手書き入力表示制御部23へのペン座標の送信を繰り返すため、ステップS4~S7の処理がペンアップされるまで繰り返される。
S8:ユーザーが手書き入力部21からペンを離すと、手書き入力部21はペンアップを手書き入力表示制御部23に送信する。
S9:手書き入力表示制御部23は手書き入力保存部25にストローク終了を送信し、手書き入力保存部25はストロークのペン座標を確定させる。ストロークのペン座標の確定により以降はストロークにペン座標を追加できなくなる。
S10:次に、手書き入力表示制御部23は手書きデータ近傍矩形領域403に基づいて、手書きデータ近傍矩形領域とストローク矩形領域の重なり状況取得を手書き入力保存部25に送信する。手書き入力保存部25は重なり状況を計算して重なり状況を手書き入力表示制御部23に送信する。
続く、ステップS11~S17は、手書きデータ近傍矩形領域とストローク矩形領域が重なっていない場合に実行される。
S11:手書きデータ近傍矩形領域とストローク矩形領域が重なっていない場合、1つの手書きデータが確定するので、手書き入力表示制御部23は保持データクリアを手書き認識制御部26に送信する。
S12~14:手書き認識制御部26は保持データクリアをそれぞれ文字列変換制御部28、予測変換制御部30、操作コマンド認識制御部32に送信する。手書き認識制御部26、文字列変換制御部28、予測変換制御部30及び操作コマンド認識制御部32がこれまでに保持している文字列候補と操作コマンドの候補に係るデータをクリアする。なお、クリアの時点では最後に手書きされたストロークは手書きデータに追加されていない。
S15:手書き入力表示制御部23は手書きデータ終了を手書き入力保存部25に送信する。手書き入力保存部25は手書きデータを確定させる。手書きデータの確定とは1つの手書きデータが完成したこと(これ以上、ストロークが追加されないこと)をいう。
S16:手書き入力表示制御部23は手書きデータ開始を手書き入力保存部25に送信する。次の手書きデータの手書きの開始(ペンダウン)に備えて、手書き入力保存部25は新しい手書きデータ領域を確保する。
S17:次に手書き入力表示制御部23はステップS9で終了したストロークに関してストローク追加を手書き入力保存部25に送信する。ステップS11~S17が実行された場合、追加されるストロークは手書きデータの最初のストロークであり、手書き入力保存部25は開始中の手書きデータにストロークデータを追加する。ステップS11~S17が実行されてない場合、追加されるストロークはすでに手書き中の手書きデータに追加される。
S18:続いて手書き入力表示制御部23はストローク追加を手書き認識制御部26に送信する。手書き認識制御部26は文字列候補が格納されるストロークデータ保持領域(ストロークデータが一時的に格納される領域)にストロークデータを追加する。
S19:手書き認識制御部26はストロークデータに手書き認識を実行する。属性情報が通知されているので、例えば英語なら英語の認識モデルに基づいて手書き認識する。
S21:手書き認識制御部26はこの実行結果である手書き認識文字列候補を手書き認識辞書部27に送信する。手書き認識辞書部27は属性情報(言語、年代、性別)に対し確率が高い順に言語文字列候補を手書き認識制御部26に送信する。
S22:手書き認識制御部26は手書き認識文字列候補及び受信した言語文字列候補を文字列変換制御部28に送信する。
S23:文字列変換制御部28は手書き認識文字列候補及び言語文字列候補を文字列変換辞書部29に送信する。文字列変換辞書部29は属性情報(言語、年代、性別)に対し確率が高い順に変換文字列候補を文字列変換制御部28に送信する。
S24:文字列変換制御部28は受信した変換文字列候補を予測変換制御部30に送信する。
S25:予測変換制御部30は受信した変換文字列候補を予測変換辞書部31に送信する。予測変換辞書部31は属性情報(言語、年代、性別)に対し確率が高い順に予測文字列候補を予測変換制御部30に送信する。
S26:予測変換制御部30は受信した予測文字列候補を操作コマンド認識制御部32に送信する。
S27:操作コマンド認識制御部32は受信した予測文字列候補を操作コマンド定義部33に送信する。操作コマンド定義部33は操作コマンドの候補を操作コマンド認識制御部32に送信する。これにより、操作コマンド認識制御部32は予測文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
以降ステップS28~S35の操作コマンドの候補の送信まで同様に処理を行う。
S28:文字列変換制御部28は受信した変換文字列候補を操作コマンド認識制御部32に送信する。
S29:操作コマンド認識制御部32は受信した変換文字列候補を操作コマンド定義部33に送信する。操作コマンド定義部33は操作コマンドの候補を操作コマンド認識制御部32に送信する。これにより、操作コマンド認識制御部32は変換文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
S30:手書き認識制御部26は手書き認識文字列候補及び言語文字列候補を予測変換制御部30に送信する。
S31:予測変換制御部30は手書き認識文字列候補及び受信した言語文字列候補を予測変換辞書部31に送信する。予測変換辞書部31は属性情報(言語、年代、性別)に対し確率が高い順に予測文字列候補を予測変換制御部30に送信する。
S32:予測変換制御部30は受信した予測文字列候補を操作コマンド認識制御部32に送信する。
S33:操作コマンド認識制御部32は受信した予測文字列候補を操作コマンド定義部33に送信する。操作コマンド定義部33は操作コマンドの候補を操作コマンド認識制御部32に送信する。これにより、操作コマンド認識制御部32は予測文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
S34:手書き認識制御部26は手書き認識文字列候補及び受信した言語文字列候補を操作コマンド認識制御部32に送信する。
S35:操作コマンド認識制御部32は手書き認識文字列候補及び受信した言語文字列候補を操作コマンド定義部33に送信する。操作コマンド定義部33は操作コマンドの候補を操作コマンド認識制御部32に送信する。これにより、操作コマンド認識制御部32は言語文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
S36:次に手書き認識制御部26はストローク追加を操作コマンド認識制御部32に送信する。
S37:操作コマンド認識制御部32は確定データの位置情報取得を手書き入力保存部25に送信する。手書き入力保存部25は確定データの位置情報を操作コマンド認識制御部32に送信する。
S38:操作コマンド認識制御部32は選択データの判定のため、ステップS36のストローク追加で手書き認識制御部26から受信したストロークの位置情報と、手書き入力保存部25から受信した確定データの位置情報が所定の関係にあるか否かを跨ぎ線判定条件406及び囲み線判定条件407に基づいて判定し、選択されていると判定できる確定データを選択データとして保存しておく。また、この場合、選択データが特定されるので入出力系の操作コマンドの候補を操作コマンド定義部33から取得する。
また、手書き認識制御部26、文字列変換制御部28、予測変換制御部30、及び、操作コマンド認識制御部32はそれぞれ手書き認識文字列候補、言語文字列候補、変換文字列候補、予測文字列候補、操作コマンドの候補、及び、選択データに係るデータを後段のステップS43~S46で取得できるよう保持しておく。
S20:手書き入力表示制御部23はステップS18でストローク追加を手書き認識制御部26に送信した直後、選択可能候補表示タイマー開始を候補表示タイマー制御部24に送信する。候補表示タイマー制御部24はこのタイマーを開始する。
続く、ステップS39~S41は一定時間が経過する前に(タイマーがタイムアウトする前に)ペンダウンが発生した場合に実行される。
S39:タイマーがタイムアウトする前に、ユーザーが手書き入力部21にペンを接触させた場合、手書き入力部21はペンダウン(ステップS2と同じイベント)を手書き入力表示制御部23に送信する。
S40:手書き入力表示制御部23はストローク開始(ステップS3と同じ)を手書き入力保存部25に送信する。この後のシーケンスはステップS3以降と同じである。
S41:更に手書き入力表示制御部23は選択可能候補表示タイマー停止を候補表示タイマー制御部24に送信する。候補表示タイマー制御部24はタイマーを停止させる。ペンダウンが検出されたのでタイマーが不要になるからである。
ステップS42~S73は一定時間が経過する前に(タイマーがタイムアウトする前に)ペンダウンが発生しない場合に実行される。したがって、図13に示した操作ガイド500が表示される。
S42:選択可能候補表示タイマー開始中にユーザーが手書き入力部21にペンを接触させなかった場合、候補表示タイマー制御部24はタイムアウトを手書き入力表示制御部23に送信する。
S43:手書き入力表示制御部23は手書き認識文字列/言語文字列候補取得を手書き認識制御部26に送信する。手書き認識制御部26は現在保持している手書き認識文字列/言語文字列候補を手書き入力表示制御部23に送信する。
S44:手書き入力表示制御部23は変換文字列候補取得を文字列変換制御部28に送信する。文字列変換制御部28は現在保持している変換文字列候補を手書き入力表示制御部23に送信する。
S45:手書き入力表示制御部23は予測文字列候補取得を予測変換制御部30に送信する。予測変換制御部30は現在保持している予測文字列候補を手書き入力表示制御部23に送信する。
S46:手書き入力表示制御部23は操作コマンドの候補取得を操作コマンド認識制御部32に送信する。操作コマンド認識制御部32は現在保持している操作コマンドの候補と選択データを手書き入力表示制御部23に送信する。
S47:更に、手書き入力表示制御部23は推定書字方向取得を手書き入力保存部25に送信する。手書き入力保存部25は手書きデータ矩形領域のストローク追加時間と水平距離と垂直距離から判定して、推定書字方向を手書き入力表示制御部23に送信する。
S48:手書き入力表示制御部23はこれらの手書き認識文字列候補(図13では「ぎ」)、言語文字列候補(図13では表示がないが例えば「議」)、変換文字列候補(図13では「議事録」「技量試」)、予測文字列候補(図13では「技量試を決済」「議事録の送付先」)、操作コマンドの候補(図13では「議事録テンプレートを読み込む」「議事録フォルダーに保存する)、各選択確率、及び、推定書字方向から図13のような選択可能候補表示データを作成する。
S49:また、手書き入力表示制御部23は手書きデータと選択データの矩形領域表示データ(矩形枠)(図13では手書きデータ矩形領域表示503)を表示部22に送信することで表示させる。
S50:手書き入力表示制御部23は選択可能候補表示データの表示から一定時間後に操作ガイド500を消去するため選択可能候補表示消去タイマー開始を候補表示タイマー制御部24に送信する。候補表示タイマー制御部24はこのタイマーを開始する。
ステップS51~S55は、選択可能候補消去タイマー開始中に、ユーザーが表示部22に表示された選択可能候補表示を消去したか、手書きデータの変化が発生した場合(即ち手書きデータのストロークの追加、削除、移動、変形又は分割された場合)、又は、タイムアウトまでに候補が選択されなかった場合に実行される。
更に、ステップS51、S52は、候補表示が消去されるか、又は、手書きデータの変化が発生した場合に実行される。
S51:手書き入力部21は選択可能候補表示消去又は手書きデータの変化の発生を手書き入力表示制御部23に送信する。
S52:手書き入力表示制御部23は選択可能候補消去タイマー停止を送信する。候補表示タイマー制御部24はそのタイマーを停止する。一定時間内に手書きデータに対し操作があったためタイマーが不要になるからである。
S54:手書き入力表示制御部23は選択可能候補表示データ消去を表示部22に送信することで、表示を消去させる。
S55:手書き入力表示制御部23は手書きデータと選択データの矩形領域表示データ消去を表示部22に送信することで、表示を消去させる。したがって、操作コマンド候補が選択される以外の条件で、操作コマンド候補の表示を消去した場合、手書きデータはそのまま表示が維持される。
S53:一方、選択可能候補消去タイマー開始中に、選択可能候補表示消去又は手書きデータの変化が発生しなかった場合(ユーザーがペン操作をしなかった場合は)、候補表示タイマー制御部24はタイムアウトを手書き入力表示制御部23に送信する。
選択可能候補表示消去タイマーのタイムアウトの後も同様に、手書き入力表示制御部23はステップS54とS55を実行する。一定時間の経過で選択可能候補表示データ、手書きデータと選択データの矩形領域表示データを消去してよいためである。
選択可能候補消去タイマー開始中に、ユーザーが選択可能候補を選択した場合、ステップS56~S73が実行される。
S56:選択可能候補消去タイマー開始中に、ユーザーが選択可能候補を選択した場合、手書き入力部21は文字列候補又は操作コマンドの候補選択を手書き入力表示制御部23に送信する。
S57:手書き入力表示制御部23は選択可能候補表示消去タイマー停止を候補表示タイマー制御部24に送信する。候補表示タイマー制御部24はこのタイマーを停止する。
S58:次に手書き入力表示制御部23は保持データクリアを手書き認識制御部26に送信する。
S59:手書き認識制御部26は保持データクリアを文字列変換制御部28に送信する。
S60:手書き認識制御部26は保持データクリアを予測変換制御部30に送信する。
S61:手書き認識制御部26は保持データクリアを操作コマンド認識制御部32に送信する。
手書き認識制御部26、文字列変換制御部28、予測変換制御部30、及び、操作コマンド認識制御部32はこれまで保持していた文字列候補及び操作コマンドの候補に係るデータをクリアする。
S62:次に手書き入力表示制御部23は選択可能候補表示データ消去を表示部22に送信することで表示を消去させる。
S63:手書き入力表示制御部23は手書きデータと選択データの矩形領域表示データ消去を表示部22に送信することで表示を消去させる。
S64:手書き入力表示制御部23は手書きデータ表示データ消去及びステップS6で送信したペン座標補完表示データ消去を表示部22に送信することで表示を消去させる。文字列候補又は操作コマンドの候補が選択されたため、手書きデータ等が不要になるためである。
S65:手書き入力表示制御部23は手書きデータ削除を手書き入力保存部25に送信する。
文字列候補が選択された場合、ステップS66~S68が実行される。
S66:文字列候補が選択された場合、手書き入力表示制御部23は文字列データ追加を手書き入力保存部25に送信する。
S67:更に手書き入力表示制御部23は文字列データフォント取得を手書き入力保存部25に送信する。手書き入力保存部25は属性情報に応じて決定した手書きデータの文字サイズと定義済みフォントを選択して手書き入力表示制御部23に送信する。
S68:次に手書き入力表示制御部23は手書き入力保存部25から受信した文字サイズと定義済みフォントを使用して、文字列データ表示データを表示部22に送信させることで、属性情報に応じた文字サイズとフォントで、手書きデータと同じ位置に表示させる。
操作コマンドの候補が選択された場合、ステップS69~S72が実行される。更に、選択データがある場合はステップS69~S71が実行される。
S69:選択データへの操作コマンドの候補が選択された場合(選択データが存在する場合)は、手書き入力表示制御部23は選択データ表示データ消去を表示部22に送信することで表示を消去させる。いったん、元の選択データを消去するためである。
S70:次に、手書き入力表示制御部23は選択データへの操作コマンド実行を手書き入力保存部25に送信する。手書き入力保存部25は新しい選択データの表示データ(編集又は修飾後の表示データ)を手書き入力表示制御部23に送信する。
S71:次に手書き入力表示制御部23は選択データ表示データを表示部22に送信することで、操作コマンド実行後の選択データを再表示させる。
選択データがない場合(入出力系の操作コマンドが選択された場合)はステップS72が実行される。
S72:入出力系の操作コマンドが選択された場合、手書き入力表示制御部23はユーザーが選択した操作コマンドに対応する操作コマンド定義データの操作コマンド文字列(Command)を実行する。なお、ユーザー認証部34がユーザーの認証に成功した場合、手書き入力表示制御部23は認証に成功したユーザーに関する情報を操作コマンドの%~%に設定して実行する。
S73:次の手書きデータのために手書き入力表示制御部23は手書きデータ開始を手書き入力保存部25に送信する。手書き入力保存部25は手書きデータ領域を確保する。これ以降、ステップS2~S73の処理が繰り返される。
<属性に応じた文字の表示例>
以下では、ユーザーの属性により文字がどのように表示されるかを説明する。
図24は、ユーザーの属性に応じて文字がどのように表示されるかを説明する図である。
図24に示すように、高齢者の場合、高齢者用辞書により、高齢者がよく使う文字ほど高い優先度で文字列候補539を表示し、小児の場合、小児用辞書により、小児がよく使う又は理解できる文字ほど高い優先度で文字列候補539を表示する。男性の場合、男性用辞書により、男性がよく使う文字ほど高い優先度で文字列候補539を表示し、女性の場合、女性用辞書により、女性がよく使う文字ほど高い優先度で文字列候補539を表示する。日本人の場合、日本語辞書により手書きデータを日本語に変換でき、欧米人の場合、英語辞書により、手書きデータを英語に変換できる。
また、高齢者の場合、高齢者が見やすいゴシック体で確定データ573を表示し、小児の場合、一般的な明朝体で確定データ573を表示する。男性の場合、男性が使用する太い文字に近いゴシック体で確定データ573を表示し、女性の場合、女性が使用する細い文字に近い明朝体で確定データ573を表示する。日本人の場合、日本語で一般的な明朝体で確定データ573を表示し、欧米人の場合、英語のフォントで一般的なセンチュリーで確定データ573を表示する。
また、高齢者の場合、高齢者が見やすい大きな文字サイズで確定データ573を表示し、小児の場合、一般的な文字サイズで確定データ573を表示する。男性の場合、男性が使用する大きい文字サイズで確定データ573を表示し、女性の場合、女性が使用する小さい文字サイズで確定データ573を表示する。日本人の場合、漢字などを含む日本語が見やすいように一般的な文字サイズで確定データ573を表示し、欧米人の場合、アルファベットが美しく見える小さい文字サイズで確定データ573を表示する。
なお、図24の対応は一例にすぎない。また、図24のような対応テーブル(表)は、機械学習の学習効果によって生成されたものでもよい。また、ユーザーの属性となりうるキーワードと辞書、フォント、文字サイズとを機械学習にて分類付けすることで、対応テーブルを使用しなくてもよい。
ここで、機械学習とは、コンピュータに人のような学習能力を獲得させるための技術であり,コンピュータが,データ識別等の判定に必要なアルゴリズムを,事前に取り込まれる学習データから自律的に生成し,新たなデータについてこれを適用して予測を行う技術のことをいう。機械学習のための学習方法は、教師あり学習、教師なし学習、半教師学習、強化学習、深層学習のいずれかの方法でもよく、更に、これらの学習方法を組み合わせた学習方法でもよく、機械学習のための学習方法は問わない。
<<ユーザーの属性が高齢者と小児の場合>>
図25は、ユーザーの属性として高齢者と小児が検出された場合にフォントを変えて表示される確定データ573の一例を示す。図25(a)ではユーザーの属性として小児が検出され、図25(b)では高齢者が検出されている。高齢者は視力が衰える傾向にあるため、見やすいフォントで表示することが好ましい。そこで、図25(a)では小児用に明朝体で確定データ573を表示するが、図25(b)では高齢者用にゴシック体で確定データ573を表示する。こうすることで、ユーザーが高齢者でも見やすいフォントで確定データ573を表示できる。高齢者が見やすいフォントをゴシック体としたのは一例であって、適宜、フォントは設定できる。また、明朝体でなく小児用のフォントを設定してもよい。
図26はユーザーの属性として高齢者と小児が検出された場合に文字サイズを変えて表示される確定データ573の一例を示す。図26(a)では小児が検出され、図26(b)では高齢者が検出されている。高齢者は視力が衰える傾向にあるため、文字サイズが大きい方が見やすい。そこで、図26(a)に示すように小児の場合に通常の文字サイズで確定データ573を表示するが、図26(b)に示すよう高齢者の場合は大きめの文字サイズで確定データ573を表示する。こうすることで、ユーザーが高齢者の場合は見やすい文字サイズで確定データ573を表示できる。
図25、図26のような制御は、図7で説明した推定文字サイズ405を属性に応じて変更することで可能である。
なお、ユーザーの属性が高齢者と小児の場合に、文字列候補の優先度、文字サイズ、及び、文字フォントの2つ以上を組み合わせて変更してもよい。また、図25、図26では確定データ573のフォントと文字サイズを属性に応じて変更したが、文字列候補539のフォントと文字サイズを属性に応じて変更してもよい。
<<ユーザーの属性が性別の場合>>
図27は、ユーザーの属性として性別が検出された場合に優先度を変えて表示される文字列候補539の一例を示す。図27(a)ではユーザーの属性として女性が検出され、図27(b)では男性が検出されている。女性と男性では使用する用語の語彙が異なる傾向にあるため、手書き認識制御部26、手書き認識辞書部27、文字列変換制御部28、文字列変換辞書部29、予測変換制御部30、及び予測変換辞書部31は男性、女性にそれぞれ対応したものとなる。
例えば、女性のユーザーが「あい」を手書きすると、表示装置2は「愛」「あいさつ」「挨拶」「藍」「あい」の優先度で文字列候補539を表示する。男性のユーザーが「あい」を手書きすると、表示装置2は「挨拶」「あいさつ」「愛」「あい」「藍」の優先度で文字列候補539を表示する。つまり、各年代のユーザーが使用する傾向が高い文字列候補の優先度を大きくして表示する。
このように、表示装置2がユーザーの性別を検出することで性別に応じて異なる優先度で文字列候補539を表示できる。
なお、図27では女性と男性で優先度が異なっているが、女性と男性で文字が異なる場合がある。例えば、タイ語の場合、言葉の最後に、男性の場合「クラップ」、女性の場合「カー」を付けるため、性別に応じて「クラップ」又は「カー」を表示するとよい。このように、優先度を変えるだけでなく、性別に応じて適切な文字列候補539を表示してよい。
図28は、ユーザーの属性として性別が検出された場合にフォントを変えて表示される確定データ573の一例を示す。図28(a)では女性が検出され、図28(b)では男性が検出されている。男性は比較的太い文字を手書きする傾向があり、女性は比較的細い文字で手書きする傾向がある。
そこで、図28(a)に示すように女性の場合に明朝体で確定データ573を表示するが、図28(b)に示すように男性の場合にゴシック体で確定データ573を表示する。こうすることで、ユーザーが男性の場合は男性らしいフォントで、女性の場合は女性らしいフォントで確定データ573を表示できる。女性用のフォントを明朝体、男性用のフォントをゴシック体としたのは一例であって、適宜、フォントは設定できる。
図29はユーザーの属性として性別が検出された場合に文字サイズを変えて表示される確定データ573の一例を示す。図29(a)では女性が検出され、図29(b)では男性が検出されている。男性は比較的大きい文字を手書きする傾向があり、女性は比較的小さい文字で手書きする傾向がある。
そこで、図29(a)に示すように女性の場合に小さい文字サイズで確定データ573を表示するが、図29(b)に示すように男性の場合に大きい文字サイズで確定データ573を表示する。こうすることで、ユーザーが男性の場合は大きな文字で、女性の場合は小さい文字で確定データ573を表示できる。女性の文字サイズの方が小さいとしたのは一例であって、男性の文字サイズの方が小さくてもよい。
図28、図29のような制御は、図7で説明した性別推定文字サイズ408を属性に応じて変更することで可能である。
なお、ユーザーの属性が男性と女性の場合に、文字列候補の優先度、文字サイズ、及び、文字フォントの2つ以上を組み合わせて変更してもよい。また、図28、図29では確定データ573のフォントと文字サイズを属性に応じて変更したが、文字列候補539のフォントと文字サイズをユーザーの属性に応じて表示してもよい。
<<ユーザーの属性が欧米人の場合>>
図30はユーザーの属性として人種が検出された場合に表示される文字列候補539の一例を示す。人種が欧米人である場合、言語は例えば英語でよい。このため、手書き認識制御部26、手書き認識辞書部27、文字列変換制御部28、文字列変換辞書部29、予測変換制御部30、及び予測変換辞書部31は英語に対応したものとなる。
これにより、例えば、ユーザーが「pl(ぴーえる)」を手書きすると、表示装置2は「play」「place」「placard」「placenta」「play ground」など「pl」から始まる単語や熟語を表示する。ユーザーの人種を判定せずに、「pl」という手書きデータ504に対し、例えば日本語を認識しようとすると認識精度が低下するが、本実施例ではこのようにユーザーの属性として人種を判定し、人種に応じた言語で手書きデータを認識するので、ユーザーが意図する文字に変換できる。また、ユーザーは言語を指定するような操作も不要であるので操作性を向上できる。ただし、別途、ユーザーが手動で言語モードを入力できてよい。
なお、ユーザーの属性として人種が検出されているので、確定データ573は例えばセンチュリーで表示されており、文字サイズも日本語より小さくなっている。
<まとめ>
以上説明したように、本実施形態の表示装置2は、ユーザーの属性を検出して、文字列候補539の優先度を変更するので、ユーザーが意図する文字列候補539を表示しやすくなり、変換精度を向上できる。また、ユーザーの属性に応じて、文字サイズやフォントを変更できるため、ユーザーが見やすい確定データ573を表示できる。また、人種を属性とする場合、人種に応じた言語に変換して文字列候補539を表示できる。