以下、図1〜図8を参照して本発明の実施形態を説明する。
本実施形態は、手書きにより文字を入力すると共に、手書き入力された文字を表示する入力表示領域を備えた端末装置として携帯電話機に適用した場合を例示したもので、図1は、この携帯電話機の基本的な構成要素を示したブロック図である。
携帯電話機は、例えば、2つの筐体を折り畳み自在に取り付けた折り畳みタイプで、この携帯電話機には、通話機能、タッチスクリーン機能、文字認識機能、アドレス帳機能、電子辞書機能などが備えられている。
タッチスクリーン機能は、タッチキー操作によって文字入力、コマンド入力などを行ったり、文字を手書き入力したりする入力機能であり、文字認識機能は、タッチスクリーン機能によって手書き入力された文字を認識して文字コードに変換する機能である。アドレス帳機能は、通信相手に関する情報(アドレス帳データ)を記憶管理する機能で、キー操作によって入力された文字コード、あるいは手書き入力されて変換された文字コードに基づいてアドレス帳を検索し、該当するアドレス帳データを表示させたり、キー操作あるいは手書き入力された新規なアドレス帳データをアドレス帳に登録したりする機能である。電子辞書機能は、国語辞書、英語辞書など、各種の辞書を有し、キー操作によって入力された文字コード、あるいは手書き入力されて変換された文字コードに基づいて電子辞書を検索し、該当する辞書内容を表示させる機能である。
制御部1は、二次電池を備えた電源部2からの電力供給によって動作し、記憶部3内の各種のプログラムに応じてこの携帯電話機の全体動作を制御するもので、この制御部1にはCPU(中央演算処理装置)やメモリなどが設けられている。記憶部3は、ROM、RAMなどの内部メモリで、プログラム領域とデータ領域とを有し、このプログラム領域には、後述する図5〜図8に示す動作手順に応じて本実施形態を実現するためのプログラムが格納されている。また、記憶部3のデータ領域には、フラグ情報、カウンタ情報、タイマ情報など、この携帯電話機の動作に必要な各種の情報が一時記憶されているほか、アドレス帳F1、電子辞書F2などが設けられている。なお、記憶部3としては、例えば、SDカード、ICカードなど、着脱自在な可搬型メモリ(記録メディア)を含む構成、あるいは図示しない所定の外部サーバ上にあってもよい。
操作部4は、十字キー(決定キーやカーソルキー)、数値キー、文字キーなど、各種の押し釦式のキーを備え、ダイヤル入力、文字入力、コマンド入力などを行うもので、制御部1は、操作部4からの操作信号に応じた処理として、例えば、発信処理、電子メール作成処理など、各種の処理を行う。なお、タッチスクリーン上に文字キー(タッチキー)が配設されている場合には、操作部4上の文字キー(押し釦式のキー)を省略し、逆に、操作部4上の文字キー(押し釦式のキー)が配設されている場合には、タッチスクリーン上の文字キー(タッチキー)を省略するようにしてもよい。
通信部5は、無線部、ベースバンド部、多重分離部などを備え、例えば、通話機能、電子メール機能、インターネット接続機能の動作時に最寄りの基地局との間でデータの送受信を行うもので、通話機能の動作時にはベースバンド部の受信側から信号を取り込んで受信ベースバンド信号に復調したのち、電話部6から音声出力させ、また、入力音声データを電話部6から取り込み、送信ベースバンド信号に符号化したのち、ベースバンド部の送信側に与えてアンテナATから発信出力させる。RTC(リアルタイムクロックモジュール)7は、時計部を構成するもので、制御部1は、RTC7から現在日時(計時情報)を取得する。
表示部8は、例えば、高精細液晶を使用し、アイコン、文字データ、待受画像などを表示するもので、この表示部8の表面には透明なタッチ操作部9が重ね合わせて配設されている。このように表示部8の表面に透明なタッチ操作部9を積層配設することによってタッチスクリーン10が構成される。タッチ操作部9は、人体接触を検出する静電容量型のタッチパネルで、このタッチ操作部9に文字が手書き入力されると、タッチ操作部9に手書き入力された手書きパターンに追従して表示部8には、その筆跡パターンが表示される。なお、表示部8の画面全体をタッチスクリーン10とする場合に限らず、その一部分をタッチスクリーン10としてもよい。
このタッチスクリーン10は、文字手書き用の入力表示領域11として利用されている。この手書き用の入力表示領域11は、タッチスクリーン10の一部として、例えば、右下角部付近に設けられたもので、その全体は正方形を成している。この手書き用の入力表示領域11に漢字を手書き入力する際には、その構成要素毎に順次手書き入力するようにしている。ここで、図2は、1文字分の漢字がその構成要素毎に順次手書き入力された場合の入力表示例を示した図で、図示のように、漢字を構成する偏冠旁などの部首(共通部分)と、その他の残り部分とに分けて手書き入力したり、その他の残り部分を更に2分割して手書き入力したりするようにしている。
すなわち、図2については、後で詳述するが、例えば、図2(1)に示すように、漢字の「芸」を手書き入力する場合には、その部首とその他の部分に分けることによって、2つの漢字構成要素を順次手書き入力するようにしている。また、図2(2)に示すように、漢字の「藤」を手書き入力する場合には、その部首とその他の部分を更に2分割することによって、3つの構成要素(草冠、月、その他)を順次手書き入力するようにしている。このように漢字構成要素毎に順次手書き入力するようにしているが、その際、手書き用の入力表示領域11に応じた大きさで漢字構成要素を手書き入力するようにしている。すなわち、入力表示領域11の全体をできるだけ有効に使用して漢字構成要素を入力表示領域11の大きさ一杯に手書き入力するようにしている。
加速度センサ12は、携帯電話機が手に持たれた状態において、どの方向に振られたかに応じて加わる振動状態を検出するもので、例えば、3軸タイプの加速度センサ(3軸方向振動センサ)によって構成されている。この場合、加速度センサ12は、携帯電話機の振り操作に応じた加速度(振動)の大きさとして、互いに直交する3軸方向(X・Y・Z方向)の加速度成分を検出するようにしているが、この3軸方向の各加速度成分の中から、例えば、2次元座標系においてX方向(左右方向)、Y方向(上下方向)の加速度成分を携帯電話機の向きに応じて選択して、振動波形信号として出力するようにしている。その際、この加速度センサ12から出力される振動波形信号は増幅されてノイズ成分が除去されたものとなる。
この加速度センサ12の検出結果(振動状態)に基づいて制御部1は、携帯電話機が振られた方向を解析し、X方向(左右方向)に振られたのかを調べたり、Y方向(上下方向)に振られたのかを調べたり、後述する特殊な振り方が行われたかを調べたりするが、その際、携帯電話機がどの方向に振られたかに応じて手書き用の入力表示領域11に入力されている漢字構成要素の大きさやその配置位置を制御するようにしている。すなわち、制御部1は、入力表示領域11に手書き入力された漢字構成要素を携帯電話機の振り操作に応じて所定サイズに縮小して移動表示させるようにしているが、縮小した漢字構成要素をその振り方向に移動することによって入力表示領域11内に片寄らせて配置表示させるようにしている。
ここで、図2(1)は、「芸」の手書き入力表示例を示した図で、図中、“入力”、“振る”、“入力”、“放置”は、ユーザの行為を示している。すなわち、「芸の」の構成要素の「部首」を手書き入力して上に振った後、残りの構成要素を手書き入力して所定時間(例えば、1.5秒間)手書き入力されずに放置された場合を示している。この“放置”に続く“認識”は、この所定時間の放置によって1文字分の入力が終了したものとして、手書き入力された各構成要素の形態とその組み合わせを認識して文字コードに変換した文字認識結果を示している。同様に、図2(2)は、「藤」の手書き入力表示例を示し、「藤」の部首を手書き入力して上に振り、残りの漢字構成要素を2つに分けてその一方の構成要素「月」を手書き入力して左に振った後、最後の漢字構成要素を手書き入力してから所定時間(例えば、1.5秒間)手書き入力されずに放置された場合を示し、この“放置”に続く“認識”は、その文字認識結果を示している。
図2(1)において、入力表示領域11に漢字の「芸」の部首(草冠)が手書き入力された後、携帯電話機が上に振られた場合には、入力表示領域11の全体サイズを振られた方向(上下方向)に2等分した分割サイズ(1/2サイズ)となるように漢字構成要素(草冠)を縮小して振られた方向(上方向)に移動する。このように所定サイズに縮小された部首は、入力表示領域11内において上方向に片寄って配置表示される。その結果、入力表示領域11の上半分の領域に今回入力された漢字構成要素が配置されるため、その下半分の領域は空き領域となる。このように手書き入力された漢字構成要素を所定の大きさに縮小することによって入力表示領域11には空き領域が確保される。
この空き領域は、残りの漢字構成要素が配置表示される領域として確保されたもので、図2(1)の場合には、部首(草冠)以外の残りの漢字構成要素が手書き入力された後、所定時間(例えば、1.5秒)が経過するまで手書き入力されずに放置されると、この漢字構成要素を空き領域に応じた大きさに縮小して当該空き領域内に配置表示させる。このようにして1文字分の漢字を構成する全ての構成要素が順次手書き入力されて入力表示領域11内に割り当て配置されると、制御部1は、この手書き文字に基づいて文字認識を行って漢字コードに変換するようにしている。この場合、各構成要素とその位置関係などを特定しながら文字認識を行う。図中、破線で示した漢字構成要素は、今回新たに手書き入力された漢字構成要素の表示状態を示している。実線で示した漢字構成要素は、既入力の漢字構成要素(縮小移動されて配置表示された漢字構成要素)の表示状態を示している。制御部1は、入力表示領域11内において、新たに手書き入力された漢字構成要素と既入力の漢字構成要素とを識別可能に表示させるようにしている(以下、同様)。
また、図2(2)に示すように、入力表示領域11に漢字の「藤」の部首が手書き入力された後、携帯電話機が上に振られたときには、上述の場合と同様に、入力表示領域11の全体サイズを振られた方向(上下方向)に2等分した分割サイズ(1/2サイズ)となるように漢字構成要素(草冠)を縮小して振られた方向(上方向)に移動表示させる。次に、漢字構成要素の「月」の部分が入力表示領域11に応じた大きさで手書き入力された後、携帯電話機が左に振られたときには、入力表示領域11の下半分に確保されている空き領域を振られた方向(左右方向)に2等分した分割サイズ(1/2サイズ)となるように漢字構成要素(月)を縮小して振られた方向(左方向)に移動表示させる。
これによって入力表示領域11の下半分を2等分した左の領域に漢字構成要素(月)が配置表示されるため、その右の領域は空き領域となる。そして、最後の残りの漢字構成要素が手書き入力された後、所定時間(例えば、1.5秒)が経過するまで手書き入力されずに放置されると、1文字分の手書き入力が完了したものとして、最後に手書き入力された漢字構成要素を空き領域(上述の右の領域)に応じた大きさに縮小して当該空き領域内に配置表示させる。なお、図2(3)〜(9)については後述する。
図3及び図4は、携帯電話機の振り方と入力表示領域11の空き領域との関係を示した図である。
図中、黒塗部分は、空き領域を示し、白抜き部分は、既入力の漢字構成要素を縮小配置される既入力領域を示している。図3(1)において、入力表示領域11の全体が空き領域の場合に、入力表示領域11に漢字構成要素が手書き入力された後、上に振られると、入力表示領域11の全体サイズを振られた方向(上下方向)に2等分することによって、その上半分の領域が既入力領域となり、下半分の領域が空き領域となる。
このように入力表示領域11の全体を2等分した状態において、入力表示領域11に漢字構成要素が手書き入力された後、再度、上に振られると、入力表示領域11の全体サイズを振られた方向(上下方向)に3等分することによって、その上及び中の領域が既入力領域となり、その下の領域が空き領域となる。また、この2等分した状態において、左に振られると、下半分の空き領域を振られた方向(左右方向)に2等分して、その左の領域が既入力領域となり、右の領域が空き領域となる。逆に、右に振られると、下半分の空き領域を振られた方向(左右方向)に2等分することによって、その右側の領域が既入力領域となり、左側の領域が空き領域となる。
図3(2)において、入力表示領域11の全体が空き領域の場合に、下に振られると、入力表示領域11の全体サイズを振られた方向(上下方向)に2等分することによって、その下半分の領域が既入力領域となり、上半分の領域が空き領域となる。この状態において再度、下方向に振られると、入力表示領域11の全体サイズを振られた方向(上下方向)に3等分することによって、その下及び中の領域が既入力領域となり、その上の領域が空き領域となる。また、この2等分した状態において、左に振られると、上半分の空き領域を振られた方向(左右方向)に2等分することによって、その左の領域が既入力領域となり、右の領域が空き領域となる。逆に、右に振られると、上半分の空き領域を振られた方向(左右方向)に2等分することによって、その右の領域が既入力領域となり、左の領域が空き領域となる。
図3(3)において、入力表示領域11の全体が空き領域の場合に、左に振られると、入力表示領域11の全体サイズを振られた方向(左右方向)に2等分することによって、その左半分の領域が既入力領域となり、右半分の領域が空き領域となる。この状態において再度、左に振られると、入力表示領域11の全体サイズを振られた方向(左右方向)に3等分することによって、その左及び中の領域が既入力領域となり、その右の領域が空き領域となる。また、この2等分した状態において、上に振られると、右の空き領域を振られた方向(上下方向)に2等分することによって、その上の領域が既入力領域となり、下の領域が空き領域となる。逆に、下に振られると、右半分の空き領域を振られた方向(上下方向)に2等分することによって、その下の領域が既入力領域となり、上の領域が空き領域となる。
図3(4)において、入力表示領域11の全体が空き領域の場合に、右に振られると、入力表示領域11の全体サイズを振られた方向(左右方向)に2等分することによって、その右半分の領域が既入力領域となり、左半分の領域が空き領域となる。この状態において再度、右に振られると、入力表示領域11の全体サイズを振られた方向(左右方向)に3等分することによって、その右及び中の領域が既入力領域となり、その左の領域が空き領域となる。また、この2等分した状態において、上に振られると、左の空き領域を振られた方向(上下方向)に2等分することによって、その上の領域が既入力領域となり、下の領域が空き領域となる。逆に、下に振られると、右半分の空き領域が振られた方向(上下方向)に2等分されて、その下の領域が既入力領域となり、上の領域が空き領域となる。
図4は、図3(1)〜(4)に示した振り方以外の特殊な振り方を示した図である。
図4(1)は、携帯電話機を下に振ってから右に振った場合、つまり、L字型に振った場合を示している。このような特殊な振り方が行われると、入力表示領域11の全体を田の字型に4等分した状態において、その左側の上下の領域と右下の領域、つまり、L字型の領域が既入力領域となり、その他の領域(右上の領域)が空き領域となる。また、図4(2)は、携帯電話機を左に振ってから下に振った場合、つまり、逆L字型に振った場合を示している。このような特殊な振り方が行われると、入力表示領域11の全体を田の字型に4等分した状態において、その左側の上下の領域と右上の領域、つまり、逆L字型の領域が既入力領域となり、その他の領域(右下の領域)が空き領域となる。
図4(3)は、携帯電話機を上に振ってから右に振った後、更に続けて下に振った場合、つまり、下向きコ字型に振った場合を示している。このような特殊な振り方が行われると、入力表示領域11において下向きコ字型の領域が既入力領域となり、その他の領域が空き領域となる。図4(4)は、携帯電話機を左に振ってから下に振った後、更に続けて右に振ってから上に振った場合、つまり、四角型に振った場合を示している。このような特殊な振り方が行われると、入力表示領域11においてその中心部分の四角形が空き領域となり、その他の領域(四角の枠型領域)が既入力領域となる。
次に、この実施形態における携帯電話機の動作概念を図5〜図8に示すフローチャートを参照して説明する。ここで、これらのフローチャートに記述されている各機能は、読み取り可能なプログラムコードの形態で格納されており、このプログラムコードにしたがった動作が逐次実行される。また、ネットワークなど伝送媒体を介して伝送されてきた上述のプログラムコードに従った動作を逐次実行することもできる。すなわち、記録媒体のほかに、伝送媒体を介して外部供給されたプログラム/データを利用して本実施形態特有の動作を実行することもできる。
図5〜図8は、電源投入に応じて実行開始される携帯電話機の動作(本実施形態の特徴的な動作)を説明するためのフローチャートである。
先ず、制御部1は、電源投入操作に応じて所定のメモリをクリアするなどの初期設定を行った後、何らかの操作や着信などの待ち受け状態となる(図5のステップA1)。この状態において、アドレス帳機能を起動させるアドレス帳操作が行われたかを調べたり(ステップA2)、電子辞書機能を起動させる電子辞書操作が行われたかを調べたり(図6のステップA20)、その他の操作が行われたかを調べたり(ステップA36)、電話の着信有無を調べたりする(ステップA38)。いま、その他の操作が行われたときには(ステップA36でYES)、その操作に応じた処理として、例えば、発信処理などを行う(ステップA37)。また、電話着信を検出したときには(ステップA38でYES)、通話処理を行う(ステップA39)。その後、図5のステップA2に戻る。
アドレス帳機能の起動を指示するアドレス帳操作が行われたときには(図5のステップA2でYES)、次のステップA3に移り、新規なアドレス帳データを追加登録するための文字列を入力する操作が行われたり、任意のアドレス帳データを検索するための検索文字列を入力したりする文字入力操作が行われたかを調べ(ステップA3)、文字入力操作が行われたときには(ステップA3でYES)、その操作は手書き入力操作であるかを調べる(ステップA4)。いま、操作部4上の文字キー(押し釦式のキー)、あるいはタッチスクリーン10上の文字キー(タッチキー)が操作されたときには(ステップA4でNO)、そのキー操作に対応する文字コードを入力する処理を実行する(ステップA10)。そして、この入力文字を表示する処理を行った後(ステップA7)、この入力文字を入力バッファ(図示省略)に格納する(ステップA8)。以下、ユーザ操作によって入力終了が指示されるまで(ステップA9)、上述したステップA4に戻り、文字キーが操作される毎に上述の動作を繰り返す(ステップA4、A10、A7、A8、)。
ここで、入力終了が指示されると(ステップA9でYES)、上述のステップA3に戻る。これによって、文字入力操作が行われたかを調べたり(ステップA3)、アドレス帳F1への登録を指示するデータ登録操作が行われたかを調べたり(ステップA11)、アドレス帳F1の検索を指示するデータ検索操作が行われたかを調べたり(ステップA13)、アドレス帳機能の終了を指示するアドレス帳終了操作が行われたかを調べたり(ステップA16)、その他のアドレス帳操作が行われたかを調べたりする(ステップA18)。いま、データ登録操作が行われたときには(ステップA11でYES)、入力バッファに格納されている文字コード列(この場合、キー操作によって入力された文字コード列)を読み出して、アドレス帳データに変換した後、アドレス帳F1に登録する処理を行う(ステップA12)。その後、上述のステップA3に戻る。
データ検索操作が行われたときには(ステップA13でYES)、入力バッファに格納されている文字コード列(この場合、キー操作によって入力された文字コード列)を検索キーとして読み出してアドレス帳F1を検索して(ステップA14)、該当するレコード(アドレス帳データ)を読み出して表示させる(ステップA15)。その後、上述のステップA3に戻る。また、その他のアドレス帳操作が行われたときには(ステップA18でNO)、その操作に応じた処理として、例えば、アドレス帳F1の内容を編集する処理などを行う(ステップA19)。アドレス帳終了操作が行われたときには(ステップA16でYES)、文字入力バッファやアドレス帳表示を消去するなどのアドレス帳終了処理を行った後(ステップA17)、上述のステップA3に戻る。
一方、文字入力操作が入力表示領域11での手書き入力操作であれば(ステップA4でYES)、1文字分の手書き文字を入力処理する手書き入力処理を実行した後(ステップA5)、1文字分の手書き文字を文字コードに変換する文字認識処理を行う(ステップA6)。そして、文字認識の結果を入力文字として入力表示領域11に表示させた後(ステップA7)、文字入力バッファに格納する(ステップA8)。以下、ユーザ操作によって入力終了が指示されるまで(ステップA9)、上述したステップA4に戻り、手書き入力が行われる毎に上述の動作を繰り返す(ステップA4〜A9)。
他方、電子辞書機能の起動を指示する電子辞書操作が行われたときには(図6のステップA20でYES)、次のステップA21に移り、任意の電子辞書を検索するための検索文字列を入力する文字入力操作が行われたかを調べ、文字入力操作が行われたときには(ステップA21でYES)、その操作は手書き入力操作であるかを調べる(ステップA22)。いま、操作部4上の文字キー(押し釦式のキー)、あるいはタッチスクリーン10上の文字キー(タッチキー)が操作されたときには(ステップA22でNO)、キー操作に対応する文字コードを入力する処理を実行する(ステップA28)。そして、この入力文字を表示する処理を行った後(ステップA25)、この入力文字を入力バッファに格納する(ステップA26)。以下、ユーザ操作によって入力終了が指示されるまで(ステップA27)、上述したステップA22に戻り、文字キーが操作される毎に上述の動作を繰り返す(ステップA22、A28、A25、A26)。
ここで、入力終了が指示されると(ステップA27でYES)、上述のステップA21に戻る。これによって、文字入力操作を調べたり(ステップA21)、電子辞書F2の検索を指示するデータ検索操作が行われたかを調べたり(ステップA29)、電子辞書機能の終了を指示する電子辞書終了操作が行われたかを調べたり(ステップA32)、その他の電子辞書操作が行われたかを調べたりする(ステップA34)。いま、データ検索操作が行われたときには(ステップA29でYES)、入力バッファに格納されている文字コード列(この場合、キー操作によって入力された文字コード列)を検索キーとして読み出して電子辞書F2を検索して(ステップA30)、該当するレコード(検索データ)を読み出して表示させる(ステップA31)。その後、上述のステップA21に戻る。また、その他の電子辞書操作が行われたときには(ステップA34でNO)、その操作に応じた処理として、電子辞書F2のしおり機能を起動するなどの処理を行う(ステップA35)。電子辞書終了操作が行われたときには(ステップA32でYES)、文字入力バッファや検索データ表示を消去するなどの電子辞書終了処理を行った後(ステップA33)、図5のステップA2に戻る。
一方、文字入力操作が入力表示領域11上での手書き入力操作であれば(ステップA22でYES)、1文字分の手書き文字を入力処理する手書き入力処理を実行した後(ステップA23)、1文字分の手書き文字を文字コードに変換する文字認識処理を行う(ステップA24)。そして、文字認識の結果を入力文字として入力表示領域11に表示させた後(ステップA25)、文字入力バッファに格納する(ステップA26)。以下、ユーザ操作によって入力終了が指示されるまで(ステップA27)、上述したステップA22に戻り、手書き入力が行われる毎に上述の動作を繰り返す(ステップA22〜A27)。
図7は、1文字分の手書き文字を入力処理する手書き入力処理(図5のステップA5、図6のステップA23)を詳述するためのフローチャートである。
先ず、制御部1は、手書き用の入力表示領域11への人体接触を検出すると(図7のステップB1)、1文字分の手書きが開始されたものとして、手書き入力された筆跡パターン(漢字構成要素)を取得して一時記憶させると共に(ステップB2)、この筆跡パターン(漢字構成要素)を入力表示領域11に表示(破線表示)させる(ステップB3)。
この手書き入力中において、一つの漢字構成要素の手書き入力が終了したかを調べる(ステップB4)。例えば、部首の人偏を指で手書きする際に、最初の一画目を入力してから指を一瞬(例えば、1秒未満)の間、入力表示領域11から離されたとしても続いて次の二画目を手書きされたときには、一画目と二画目とを含めて一つの漢字構成要素として認識するようにしているが、指が離れている時間が1秒以上であれば、一つの漢字構成要素の手書き入力が終了したものと判断するようにしている。
いま、一つの漢字構成要素の手書き入力が終了したときには(ステップB4でYES)、次のステップB5に移り、一つの漢字構成要素が手書き入力されてから所定時間(例えば、1.5秒)の経過を検出するためのタイマ、つまり、1文字分の手書き入力の終了を検出するための入力終了タイマ(図示省略)のカンウト動作を開始させる。そして、加速度センサ12からの検出結果に基づいて携帯電話機が振られたかを調べたり(ステップB6)、上述の入力終了タイマがタイムアウトになったかを調べたりする(ステップB11)。
ここで、携帯電話機を振る操作が行われたときには(ステップB6でYES)、今回入力した漢字構成要素の縮小移動が指示されたものとして、次のステップB7に移り、その振り操作は予め決められている有効な振り方であるかを調べる。すなわち、図3に示したような上下左右のいずれかの方向に振られたのか、図4に示したような特殊な振り方で振られたのかを調べ、その他の振り方で有効な振り方でなければ(ステップB7でNO)、その振り操作を無効とするためにステップB6に戻るが、有効な振り方であれば(ステップB7でYES)、1文字分の手書き入力中に方向別に振られた回数を計数するための方向別回数カウンタ(図示省略)に「1」を加算することによってその値を更新する(ステップB8)。
この方向別回数カウンタは、携帯電話機の有効な振り方(上下左右の4つの方向)に対応して一つずつ設けられたもので、1文字分の手書き入力中にどの方向に何回振られたかを計数する。このように方向別回数カウンタの値を更新した後、次のステップB9では、入力表示領域11の空き領域の大きさを検出する。この場合、最初の書き始めの時点では、入力表示領域11の全体サイズを空き領域として検出する。そして、今回手書き入力された漢字構成要素を所定の大きさに縮小すると共に、この縮小した漢字構成要素を振られた方向に移動することによって入力表示領域11内に片寄らせて配置表示させる縮小処理の実行に移る(ステップB10)。
図8は、縮小処理(図7のステップB10)を詳述するためのフローチャートである。以下、図8のフローチャートを図2(1)〜(9)を参照して具体例に説明する。
先ず、制御部1は、携帯電話機の振り操作は、上下左右のいずれかの方向であるかを調べ(図8のステップC1)、上下左右のいずれかの方向に振られたときには(ステップC1でYES)、上述した各方向別回数カウンタを参照し、他の方向、つまり、今回振られた方向以外の各方向に対応付けられている回数カウンタの値は、それぞれ初期値“0”であるかを調べる(ステップC2)。
いま、図2(1)に示すように最初に、漢字の「芸」の部首(草冠)が手書き入力された場合、他の方向の各回数カウンタは、それぞれ初期値“0”のままとなっているので、次のステップC3に移って、振られた方向の回数カウンタの値は“1”であるかを調べるが、この場合、振られた方向(上方向)に対応付けられている回数カウンタの値は“1”であるから(ステップC3でYES)、今回新たに手書き入力された漢字構成要素(草冠)を縮小する処理を行う(ステップC4)。この際、入力表示領域11の全体サイズを振られた方向(上下方向)に2等分した分割サイズ(1/2サイズ)となるように漢字構成要素(草冠)を縮小する。そして、この漢字構成要素(草冠)を振られた方向(上方向)に移動することによって上方向に片寄らせて配置表示させた後(ステップC5)、図7のフローに戻る。この場合、入力表示領域11の上半分の領域に今回入力された漢字構成要素(草冠)が配置されるため、その下半分の領域は空き領域となる。
次に、部首(草冠)以外の残りの漢字構成要素が手書き入力された後、所定時間(例えば、1.5秒)が経過するまで手書き入力されずに放置されると、1文字分の入力終了タイマがタイムアップとなるため(図7のステップB11でYES)、次のステップB12に移り、入力表示領域11の空き領域を検出するが、この場合、入力表示領域11の下半分を空き領域として検出する。そして、今回入力された漢字構成要素を、この空き領域に応じた大きさに縮小(空き領域一杯に縮小)した後(ステップB13)、この空き領域内に当該漢字構成要素を配置表示させる(ステップB14)。そして、各方向別の回数カウンタを全てクリアしてその初期値にリセットした後(ステップB15)、図5あるいは図6のフローに戻る。この場合、制御部1は、入力表示領域11内に配置表示されている各漢字構成要素に基づいて文字認識処理を行ってその認識結果を入力表示領域11の全体に表示させる。
図2(2)に示すように、入力表示領域11に漢字の「藤」の部首(草冠)が手書き入力された後、携帯電話機が上に振られたときには、上述の場合と同様に、入力表示領域11の全体サイズを振られた方向(上下方向)に2等分した分割サイズ(1/2サイズ)となるように漢字構成要素(草冠)を縮小して振られた方向(上方向)に移動表示させる(図8のステップC1〜C5)。次に、漢字構成要素の「月」の部分が入力表示領域11に応じた大きさで手書き入力された後、携帯電話機が左に振られたときには、図8のステップC1からステップC2に移行して、他の方向の各回数カウンタはそれぞれ初期値“0”であるかを調べる。
ここで、上方向の回数カウンタの値は、前回の漢字構成要素の入力で“1”となっているので(ステップC2でNO)、更に、次のステップC12に移行し、今回振られた方向(左右方向)に対して直交する方向(上下方向)の回数カウンタの値は“1”であるかを調べる。ここで、今回振られた方向に直交する方向の回数カウンタの値が“1”より大きい場合や他の有効な方向の回数カウンタの値が“0”より大きいときには(ステップC12でNO)、今回の手書き入力を無効な操作とするための処理を実行した後(ステップC15)、図7のフローに戻る。なお、この無効な操作とする処理は、今回新たに手書き入力された漢字構成要素を無効とするための処理で、図7のステップB2で一時記憶させた今回入力の漢字構成要素を消去すると共に、ステップB3で入力表示領域11内に破線表示させた今回入力の漢字構成要素を消去する(以下、同様)。
いま、今回振られた方向に直交する方向の回数カウンタの値は、“1”であるから(ステップC12でYES)、今回の漢字構成要素を縮小するが(ステップC13)、この場合、入力表示領域11の下半分に確保されている空き領域を振られた方向(左右方向)に2等分した分割サイズ(1/2サイズ)となるように漢字構成要素(月)を縮小する。この漢字構成要素(月)を振られた方向(左方向)に移動することによって左方向に片寄らせて配置表示させた後(ステップC14)、図7のフローに戻る。
そして、最後の残りの漢字構成要素が手書き入力された後、所定時間(例えば、1.5秒)が経過するまで手書き入力されずに放置されると、入力終了タイマがタイムアップとなるため(図7のステップB11でYES)、次のステップB12に移り、入力表示領域11の空き領域を検出するが、この場合、入力表示領域11の下半分を左右方向に2等分した右側の領域を空き領域として検出する。そして、今回入力された漢字構成要素をこの空き領域に応じた大きさに縮小(空き領域一杯に縮小)した後(ステップB13)、この空き領域内に当該漢字構成要素を配置表示させる(ステップB14)。そして、各方向別の回数カウンタを全てクリアしてその初期値にリセットした後(ステップB15)、図5あるいは図6のフローに戻り、制御部1は、入力表示領域11内に配置表示された各漢字構成要素に基づいて文字認識処理を行い、その認識結果を入力表示領域11の全体に表示させる。
図2(3)に示すように「薫」を手書き入力する場合には、先ず、一つの漢字構成要素(草冠)が手書き入力された後、携帯電話機が上に振られると、上述の場合と同様に、上方向の回数カウンタの値を“1”に更新した後(図7のステップB8)、縮小処理に移り(ステップB10)、漢字構成要素(草冠)を1/2サイズに縮小して上方向に移動表示させる(図8のステップC1〜C5)。更に、次の漢字構成要素(重)が手書き入力された後、携帯電話機が上に振られると、上方向の回数カウンタの値を“2”に更新した後(図7のステップB8)、縮小処理に移るが(ステップB10)、この場合、他の振られた回数は全て“0”で(ステップC2でYES)、振られた方向の回数カウンタの値は“1”ではないので(ステップC3でNO)、次のステップC6に移り、振られた方向の回数カウンタの値は“2”であるかを調べる。
ここで、振られた方向の回数カウンタの値が“2”を超えていれば(ステップC6でNO)、今回の手書き入力を無効な操作とした後(ステップC11)、図7のフローに戻るが、いま、上方向の回数カウンタの値は“2”であるから(ステップC6でYES)、入力表示領域11の全体サイズを振られた方向(上下方向)に3等分した分割サイズ(1/3サイズ)となるように既入力の漢字構成要素(草冠)を縮小する(ステップC7)。そして、この漢字構成要素(草冠)を振られた方向の1/3領域(上の領域)に移動して配置表示させる(ステップC8)。次に、今回入力の漢字構成要素(新規の漢字構成要素)を1/3サイズとなるように縮小した後(ステップC9)、この漢字構成要素(重)を振られた方向の空き領域(中の1/3領域)に移動して配置表示させる(ステップC10)。
そして、残りの漢字構成要素(部首の列火)が入力表示領域11に応じた大きさで手書き入力された後、所定時間(例えば、1.5秒)が経過するまで手書き入力されずに放置されると、入力終了タイマがタイムアップとなるため(図7のステップB11でYES)、次のステップB12に移り、入力表示領域11の空き領域として下の1/3領域を検出する。そして、今回入力された漢字構成要素(部首の列火)をこの空き領域に応じた大きさに縮小(空き領域一杯に縮小)した後(ステップB13)、この空き領域内に当該漢字構成要素を配置表示させる(ステップB14)。そして、回数カウンタをリセットした後(ステップB15)、図5あるいは図6のフローに戻り、文字認識結果を入力表示領域11の全体に表示させる。
図2(4)に示すように「徘」を手書き入力する場合には、上述した図2(1)の場合と基本的に同様である。すなわち、図2(1)の場合には、上方向への振りを1回行った場合を示したが、図2(4)の場合には、左方向の振りを1回行った場合で、その他は、基本的に同様である。先ず、一つの漢字構成要素(部首の行人偏)が手書き入力された後、携帯電話機が左に振られると、入力表示領域11の全体サイズを振られた方向(左右方向)に2等分した分割サイズ(1/2サイズ)となるように漢字構成要素(行人偏)を縮小する(図8のステップC4)。そして、この漢字構成要素を振られた方向(左方向)に移動することによって左方向に片寄らせて配置表示させた後(ステップC5)、図7のフローに戻る。この場合、入力表示領域11の左半分の領域に今回入力された漢字構成要素が配置されるため、その右半分の領域は空き領域となる。
次に、部首以外の残りの漢字構成要素が手書き入力された後、所定時間(例えば、1.5秒)が経過するまで手書き入力されずに放置されると、入力終了タイマがタイムアップとなるため(図7のステップB11でYES)、次のステップB12に移り、入力表示領域11の右半分を空き領域として検出する。そして、今回入力された漢字構成要素をこの空き領域に応じた大きさに縮小(空き領域一杯に縮小)した後(ステップB13)、この空き領域内に当該漢字構成要素を配置表示させる(ステップB14)。そして、回数カウンタをリセットした後(ステップB15)、図5あるいは図6のフローに戻り、文字認識結果を入力表示領域11の全体に表示させる。
図2(5)に示すように「衝」を手書き入力する場合には、上述した図2(3)の場合と基本的に同様である。すなわち、図2(3)の場合には、上方向への振りを2回行った場合を示したが、図2(5)の場合には、左方向の振りを2回行った場合で、その他は、基本的に同様である。先ず、一つの漢字構成要素(部首の行人偏)が手書き入力された後、左に振られると、漢字構成要素(行人偏)を振り方向に1/2サイズに縮小して左方向に移動表示させる(図8のステップC1〜C5)。更に、次の漢字構成要素(重)が手書き入力された後、携帯電話機が左方向に振られると、既入力の漢字構成要素(行人偏)を縮小して振られた方向の1/3領域(左の領域)に移動して配置表示させる(ステップC7、C8)。
次に、今回入力の漢字構成要素(重)を1/3サイズとなるように縮小した後(ステップC9)、この漢字構成要素(重)を振られた方向の空き領域(中の1/3領域)に移動して配置表示させる(ステップC10)。そして、残りの漢字構成要素が手書き入力された後、所定時間(例えば、1.5秒)が経過するまで手書き入力されずに放置されると、入力終了タイマがタイムアップとなるため(図7のステップB11でYES)、次のステップB12に移り、入力表示領域11の空き領域として右の1/3領域を検出し、空き領域内に当該漢字構成要素を配置表示させる。そして、回数カウンタをリセットした後(ステップB15)、図5あるいは図6のフローに戻り、文字認識結果を入力表示領域11の全体に表示させる。
図2(6)〜(9)は、特殊な振り方を行う場合で、図2(6)に示すように「超」を手書き入力する場合には、その部首(そうにょう)が手書きされた後、図4(1)に示すように下に振られてから右に振られると(L字型に振られると)、有効な振り方であるとして(図7のステップB7でYES)、下方向の回数カウンタと右方向の回数カウンタの値をそれぞれ
1”に更新する(ステップB8)。この場合、上下左右以外の有効な振り方であるから(図8のステップC1でNO)、他の振られた回数は“0”であるかを調べ(ステップC16)、いま、下方向及び右方向の回数カウンタ以外の値が“0”でなければ(ステップC16でNO)、今回の手書き入力を無効な操作とする処理を実行した後(ステップC19)、図7のフローに戻る。
いま、他の振られた回数は“0”であるから(ステップC16でYES)、今回入力された漢字構成要素(新規な漢字構成要素)を所定のサイズと方向に縮小する(ステップC17)。すなわち、入力表示領域11の全体を田の字型に4等分した状態において、その左側の上下の領域と右側の下の領域、つまり、L字型の領域の大きさとなるように漢字構成要素(走)を縮小する。そして、この漢字構成要素(走)がL字型の領域内に収まるように配置表示させた後(ステップC18)、図7のフローに戻る。そして、残りの漢字構成要素(召)が手書き入力された後、所定時間(例えば、1.5秒)が経過するまで手書き入力されずに放置されると(図7のステップB11でYES)、入力表示領域11の右上の領域を空き領域として検出し(ステップB12)、今回入力された漢字構成要素をこの空き領域に応じた大きさに縮小(空き領域一杯に縮小)した後(ステップB13)、この空き領域内に当該漢字構成要素を配置表示させる(ステップB14)。
図2(7)は、「疲」を手書き入力する場合を示し、その部首(やまいだれ)が手書きされた後、図4(2)に示すように左に振られてから下に振られると(逆L字型に振られると)、有効な振り方であるとして検出されるので(図7のステップB7でYES)、図8のステップC1、C16〜C18の実行に移る。この場合、漢字構成要素(やまいだれ)は逆L字型の領域内に収まるように縮小配置される。そして、残りの漢字構成要素(皮)を手書き入力した後の放置によって入力表示領域11の右下の空き領域内に漢字構成要素(皮)が配置表示される。
その他、図2(8)は、「閲」を手書き入力する場合を示し、その部首(門)が手書きされた後、図4(3)に示すように上に振ってから右に振った後、更に続けて下に振られると(下向きコ字型に振られると)、有効な振り方であるとして検出されるので(図7のステップB7でYES)、図8のステップC1、C16〜C18の実行に移る。この場合、部首(門)は、下向きコ字型の領域内に収まるように縮小配置される。そして、残りの漢字構成要素を手書き入力した後の放置によって入力表示領域11のその他の空き領域内にその漢字構成要素が配置表示される。
図2(9)は、「圏」を手書き入力する場合を示し、その部首(口)が手書きされた後、図4(4)に示すように四角型に振られると、有効な振り方であるとして検出されるので(図7のステップB7でYES)、図8のステップC1、C16〜C18の実行に移る。この場合、部首(口)は、四角の枠型領域に収まるように縮小配置される。そして、残りの漢字構成要素(巻)を手書き入力した後の放置によって入力表示領域11の中心部分(四角形の空き領域)にその漢字構成要素が配置表示される。
以上のように、実施形態において制御部1は、手書き用の入力表示領域11に漢字をその構成要素毎に順次手書き入力する場合に、入力表示領域11に手書き入力された漢字構成要素を縮小して移動することが指示された際に、入力表示領域11に手書き入力された漢字構成要素を所定の大きさに縮小すると共に、縮小した漢字構成要素を指示された方向に移動することによって入力表示領域内11に片寄らせて配置表示させるようにしたので、漢字を手書き入力する場合に、入力表示領域11が小さかったり、複雑な構成の漢字を入力したりする場合でも容易にその漢字を手書き入力することができ、操作性や効率性を大幅に向上させることが可能となる。
縮小移動が指示されなければ、入力表示領域11に手書き入力された漢字構成要素を1文字分の手書き入力が終了したものとして、入力表示領域11の空き領域内に縮小して配置表示させるようにしたので、手書き入力終了の操作をいちいち行わなくとも、自動的に1文字分の手書き入力を終了させることができる。
手書き入力された漢字構成要素を縮小移動させることによって入力表示領域11内に空き領域が確保されている状態において、次の漢字構成要素が入力表示領域11に応じた大きさで手書き入力された場合に、縮小移動が指示されなければ、1文字分の手書き入力が終了したものとして、当該漢字構成要素を空き領域の大きさに縮小して当該空き領域内に移動表示させるようにしたので、どんなに複雑な構成の漢字であっても、その全ての構成要素を入力表示領域11内に収めることができる。
今回新たに手書き入力された漢字構成要素を縮小移動してから所定時間の経過を検出するまでの間、縮小移動が指示されなければ、1文字分の手書き入力が終了したものとして、今回新たに手書き入力された漢字構成要素を空き領域の大きさに縮小して当該空き領域内に移動表示させるようにしたので、特別な操作を行うことなく、1文字分の手書き入力の終了を検出して1文字分の全ての構成要素を入力表示領域11内に収めることができる。
手書き入力された漢字構成要素を縮小移動させることによって入力表示領域11内に空き領域が確保されている状態において、次の漢字構成要素が入力表示領域11に応じた大きさで手書き入力された場合に、縮小移動が指示されると、今回縮小移動が指示された方向が前回までに指示された縮小移動の方向と一致することを条件に、入力表示領域11内に既に配置表示されている漢字構成要素を更に縮小して指示された方向に移動するほか、今回新たに手書き入力された漢字構成要素を所定の大きさに縮小して指示された方向に移動することによって、既に配置表示されている漢字構成要素を含めて今回新たに手書き入力された漢字構成要素を入力表示領域11内に片寄らせて配置表示させるようにしたので、例えば、「薫」を手書き入力する場合には、入力表示領域11の全体サイズを振られた方向(上下方向)に3等分した大きさとなるように、また、「衝」を手書き入力する場合には、左右方向に3等分した大きさとなるように各漢字構成要素を縮小移動して配置表示させることができるので、同一方向への2回の指示で各漢字構成要素を適正な位置に配置することが可能となる。
手書き入力された漢字構成要素を縮小移動させることによって入力表示領域11内に空き領域が確保されている状態において、次の漢字構成要素が入力表示領域11に応じた大きさで手書き入力された場合に、縮小移動が指示されると、入力表示領域11に手書き入力された漢字構成要素を空き領域よりも小さなサイズに縮小すると共に、縮小した漢字構成要素を指示された方向に移動することによって当該空き領域11内に片寄らせて配置表示させるようにしたので、例えば、「藤」の最初の漢字構成要素(草冠)を手書き入力して上への縮小移動を指示することによって下半分が空き領域の状態で、次の漢字構成要素(月)を手書き入力して左への縮小指示を行うと、下半分の空き領域が2等分されてその左半分の空き領域に漢字構成要素(月)が配置表示されることができるので、直交する方向への2回の指示で各漢字構成要素を適正な位置に配置することが可能となる。
所定の方向以外の方向が指示された際に、少なくともその指示操作を無効にするようにしたので、入力表示領域11内に間違って漢字構成要素が配置されることを防ぐことができる。
漢字の各構成要素の全てが手書き入力された際に、この手書き入力された漢字を認識して文字コードに変換するようにしたので、小さな入力表示領域11に複雑な構成の漢字が収まった状態で文字認識を行っても適切に文字認識することができ、認識率を向上させることが可能となる。
加速度センサ12によって検出された携帯電話機の振られた方向を漢字構成要素の移動方向として指示するようにしたので、携帯電話機を振るだけで漢字構成要素の移動方向を指示することができると共に、振る方向と移動方向との一致によって直感的で分かり易い操作が可能となる。
入力表示領域11内に漢字構成要素を手書き入力中において、手書き入力している漢字構成要素と入力表示領域11内に既に配置表示されている既入力の漢字構成要素とを識別可能に表示させるようにしたので、両方が重なり合って表示されていても誤認混同を防ぐことができる。
なお、上述した実施形態においては、携帯電話機を振った方向に漢字構成要素を移動するようにしたが、更に、携帯電話機を振った強さや携帯電話機を振った量に応じて漢字構成要素を縮小する大きさを段階的に変更するようにしてもよい。
また、1文字分の漢字の手書き入力が終了した後に認識処理を開始するようにしているが、手書き入力終了前の空き領域のある状態で入力済みの漢字構成要素から認識による候補漢字を表示するようにしてもよい。
上述した実施形態においては、手書き入力した漢字構成要素の移動方向を指示する手段として、携帯電話機の振りとその方向を加速度センサ12によって検出するようしたが、上下左右のカーソルキー、マウス、トラックボールなどのポインティングデバイスを使用して漢字構成要素の移動方向を指示するようにしてもよい。
また、タッチパネルの操作で、手書き用入力表示部の領域外から領域内へ構成要素を移動させたい方向へ押すようなスライド操作であってもよい。
上述した実施形態においては、「薫」のように上下3つの構成要素に分けて入力する場合に、入力表示領域11の全体を上下方向に3等分して各構成要素を縮小配置するようにしたが、例えば、3等した各領域のうち、上の領域と下の領域が小さく、中の領域が大きくなるように分割するようにしてもよい。同様に、「衝」のように左右3つの構成要素に分けて入力する場合に、入力表示領域11の全体を左右方向に3等分して各構成要素を縮小配置するようにしたが、例えば、3等した各領域のうち、左の領域と右の領域を小さく、中の領域を大きく分割するようにしてもよく、入力表示領域11を等分に分けなくてもよい。
上述した実施形態においては、漢字構成要素を手書き入力した後にその縮小移動を指示するようにしたが、入力表示領域11の全体を漢字の形態に応じて複数の領域に分割してから各漢字構成要素を順次手書き入力するようにしてもよい。この場合、複数の分割領域に各漢字構成要素を割り当て配置するようにしてもよい。
また、上述した実施形態において、図8のステップC11、C15、C19での無効な操作とする処理は、今回新たに手書き入力された漢字構成要素を無効とするための処理で、図7のステップB2で一時記憶させた今回入力の漢字構成要素を消去すると共に、ステップB3で入力表示領域11内に破線表示させた今回入力の漢字構成要素を消去するようにしたが、今回入力の漢字構成要素を無効とせず、今回の振り操作のみを無効とするようにしてもよい。
上述した実施形態においては、アドレス帳に新規データを追加登録したり、アドレス帳や電子辞書のデータを検索したりする場合に、手書き入力するようにしたが、これに限らず、文章を手書き入力する場合であってもよい。
上述した実施形態においては、折り畳みタイプの携帯電話機に適用したが、ストレートタイプ、スライドタイプ、スピントップタイプなど任意の筐体構造であってもよく、また、スタイルとして、クローズスタイル、オープンスタイルを例示したが、筐体構造に応じた任意のスタイルであってもよい。また、上述した実施形態においては、端末装置として携帯電話機を例示したが、これに限らず、例えば、パーソナルコンピュータ、PDA、デジタルカメラ、音楽プレイヤー、それらの複合機など、任意の端末装置であってもよい。
なお、上述した実施形態において示した“装置”や“機”とは、機能別に複数の筐体に分離されていてもよく、単一の筐体に限らない。また、上述したフローチャートに記述した各ステップは、時系列的な処理に限らず、複数のステップを並列的に処理したり、別個独立して処理したりするようにしてもよい。