(57)【要約】【課題】音声出力装置において、装置が認識した結果を表現豊かに音声出力することが困難である。【解決手段】描き始めから描き終わりまでの一連の筆跡を入力する入力部と、入力部により入力された筆跡の形状及び大きさを認識する認識部と、認識部により認識された筆跡を、当該筆跡を構成する線分の数及び当該筆跡の大きさごとにカテゴリに分類する分類部と、分類部により分類されたカテゴリに対応する擬音語又は擬態語を、予め記憶部に記憶された擬音語又は擬態語から選択する選択部と、選択部により選択された擬音語又は擬態語を音声として出力する出力部と、を備える。【選択図】  図１
2012018544.tif 000002
【特許請求の範囲】
【請求項１】
描き始めから描き終わりまでの一連の筆跡を入力する入力手段と、
前記入力手段により入力された筆跡の形状及び大きさを認識する認識手段と、
前記認識手段により認識された筆跡を、当該筆跡を構成する線分の数及び当該筆跡の大きさごとにカテゴリに分類する分類手段と、
前記分類手段により分類されたカテゴリに対応する擬音語又は擬態語を、予め記憶手段に記憶された擬音語又は擬態語から選択する選択手段と、
前記選択手段により選択された擬音語又は擬態語を音声として出力する出力手段と、
を備えることを特徴とする音声出力装置。
【請求項２】
前記出力手段による音声の出力中に、前記入力手段により前回の入力と同一の筆跡が入力されたと前記認識手段により認識された場合に、
前記選択手段は、前記記憶手段から簡略化した擬音語又は擬態語を選択することを特徴とする請求項１に記載の音声出力装置。
【請求項３】
前記認識手段により認識された筆跡の形状を表す第１の文言を前記記憶手段から取得する第１取得手段をさらに備え、
前記出力手段は、擬音語又は擬態語を音声として出力した後に、前記第１取得手段により取得された第１の文言を音声として出力することを特徴とする請求項１又は２に記載の音声出力装置。
【請求項４】
前記入力手段により前回の入力と同一の筆跡が入力されたと前記認識手段により認識された場合に、
前記第１取得手段は、筆跡の形状を表す簡略化した文言を取得することを特徴とする請求項３に記載の音声出力装置。
【請求項５】
前記第１取得手段が、筆跡の形状を表す簡略化した文言を取得した場合に、
前記出力手段は、前回の入力と同一の筆跡に対応する擬音語又は擬態語の音声として出力を行わないことを特徴とする請求項４に記載の音声出力装置。
【請求項６】
前記入力手段により入力された１又は２以上の筆跡を全体として１つの図形として識別するする識別手段と、
前記識別された図形が示す操作を実行するための第２の文言を前記記憶手段から取得する第２取得手段と、をさらに備え、
前記出力手段は、前記入力手段により入力された１又は２以上の筆跡に対応する擬音語又は擬態語と第１の文言とを音声として出力した後に、前記第２取得手段により取得された第２の文言を音声として出力することを特徴とする請求項３乃至５の何れか１項に記載の音声出力装置。
【請求項７】
前記入力手段により入力された１又は２以上の筆跡の全体に対応する、複数の図形候補の各々について尤度を算出する算出手段をさらに備え、
前記識別手段は、尤度が最大となる図形候補から１つの図形として識別することを特徴とする請求項６に記載の音声出力装置。
【請求項８】
前記識別手段により識別された図形の尤度が閾値より小さいか否かを判定する判定手段をさらに備え、
前記判定手段により、前記識別手段により識別された図形の尤度が閾値より小さいと判定された場合に、前記出力手段は、入力された図形に該当する図形が前記記憶手段に記憶されていないことを音声として出力することを特徴とする請求項７に記載の音声出力装置。
【請求項９】
前記識別手段により識別された図形の尤度が閾値より小さいか否かを判定する判定手段と、
前記識別手段により識別された図形に対応する処理を実行する実行手段と、をさらに備え、
前記判定手段により、前記識別手段により識別された図形の尤度が閾値以上であると判定された場合に、
前記実行手段は、前記識別手段により識別された図形に対応する処理を実行することを特徴とする請求項７に記載の音声出力装置。
【請求項１０】
前記識別手段により識別された図形の尤度が閾値より小さいか否かを判定する判定手段をさらに備え、
前記判定手段により、前記識別手段により識別された図形の尤度が閾値より小さいと判定された場合に、
前記出力手段は、前記識別手段により識別された図形の描き方を音声として出力することを特徴とすることを特徴とする請求項７に記載の音声出力装置。
【請求項１１】
入力手段が、描き始めから描き終わりまでの一連の筆跡を入力する入力工程と、
認識手段が、前記入力工程により入力された筆跡の形状及び大きさを認識する認識工程と、
分類手段が、前記認識工程により認識された筆跡を、当該筆跡を構成する線分の数及び当該筆跡の大きさごとにカテゴリに分類する分類工程と、
選択手段が、前記分類工程により分類されたカテゴリに対応する擬音語又は擬態語を、予め記憶工程で記憶された擬音語又は擬態語から選択する選択工程と、
出力手段が、前記選択工程により選択された擬音語又は擬態語を音声として出力する出力工程と、
を備えることを特徴とする音声出力方法。
【請求項１２】
請求項１１に記載の音声出力方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザの入力に合わせて音声を出力する音声出力装置、音声出力方法、及びプログラムに関する。
【背景技術】
【０００２】
ユーザの手書き入力に合わせて音声を出力する装置が知られている。特許文献１では、擬似音声を出力する装置が開示されている。これは、ペン入力の移動速度を算出し、移動速度に応じた擬似音声を出力するというものである。紙に何かを書いているような感触をユーザに与えるという効果がある。また、特許文献２では、文字の認識結果だけではなく単語の認識結果を合わせて音声出力する装置が開示されている。単語や文章としてまとまった入力感をユーザに与えるという効果がある。
【０００３】
また、文字や単語ではなく、擬音語を出力する装置が知られている。特許文献３では、入力された音量に応じた擬音語を文字として撮影画像と合成する装置が開示されている。音を視覚的にユーザに与えることが可能になるという効果がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−１９０４５０号公報
【特許文献２】特開２００２−２８８５８８号公報
【特許文献３】特開２００６−１０９３２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
文字やジェスチャを認識する機能と音声出力機能とを有する装置では、装置が認識した結果を音声出力する機能が有用である。さらにユーザの興味を引くためには、オノマトペ（擬音語や擬態語）などを用いることにより、出力される音声が、表現豊かであることが望ましい。
【０００６】
しかしながら、特許文献１に開示されている装置が出力する音声からは、装置の認識結果を確認し難い。また、特許文献２に開示されている装置が出力する音声は単調になる。特許文献３に開示されている装置には、手書き入力と擬音語を対応付ける方法が考慮されていない。つまり、従来は手書き入力された文字等を音声として出力する音声出力装置の認識結果を、表現豊かに音声出力することが困難であるという課題がある。
【０００７】
上記の課題に鑑み、本発明は、手書き入力された文字等の認識結果を表現豊かに音声出力することを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成する本発明に係る音声出力装置は、
描き始めから描き終わりまでの一連の筆跡を入力する入力手段と、
前記入力手段により入力された筆跡の形状及び大きさを認識する認識手段と、
前記認識手段により認識された筆跡を、当該筆跡を構成する線分の数及び当該筆跡の大きさごとにカテゴリに分類する分類手段と、
前記分類手段により分類されたカテゴリに対応する擬音語又は擬態語を、予め記憶手段に記憶された擬音語又は擬態語から選択する選択手段と、
前記選択手段により選択された擬音語又は擬態語を音声として出力する出力手段と、
を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、手書き入力された文字等の認識結果を表現豊かに音声出力することが可能になる。
【図面の簡単な説明】
【００１０】
【図１】（ａ）音声出力装置に係るハードウェア構成を示すブロック図、（ｂ）音声出力装置の機能構成を示すブロック図。
【図２】ストローク辞書１５２の例を示す図
【図３】（ａ）オノマトペ辞書１５３の例を示す図、（ｂ）オノマトペ辞書１５３の例を示す図。
【図４】ジェスチャ辞書１６１の例を示す図。
【図５】音声出力装置の処理手順を示すフローチャート。
【図６】音声出力装置の動作例を示す図。
【図７】ストロークの形状を認識するための処理手順を示すフローチャート。
【図８】（ａ）ストロークの頂点を説明する図、（ｂ）及び（ｃ）入力されたジェスチャの例を示す図。
【図９】ストローク文言を簡略化した他のストローク文言へ変更する処理手順を示すフローチャート。
【図１０】ジェスチャの正しい書き方を音声出力するための処理手順を示すフローチャート。
【発明を実施するための形態】
【００１１】
（第１実施形態）
図１（ａ）を参照して、本発明に係る音声出力装置のハードウェア構成について説明する。ＣＰＵ（中央処理装置）１０１は、システム制御部として装置全体の動作を制御する。ＲＯＭ１０２は、制御プログラムを格納する。具体的には、後述する処理を行うためのプログラムを格納している。ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアを提供し、各種データなどを格納するために用いられる。記憶装置１０４は、画像データなどを格納するために用いられる。具体的には、ＳＤカードやハードディスク（ＨＤＤ）などである。タッチパネル１０５は、指やペンなどによる入力を処理するために用いられる。スピーカ１０６は、音声を出力するために用いられる。
【００１２】
図１（ｂ）を参照して、音声出力装置の機能構成を示すブロック図について説明する。音声出力装置は、入力部１５１、ストローク辞書１５２、オノマトペ辞書１５３、ストローク処理部１５４、ストローク認識部１５５、ストローク分類部１５６、オノマトペ選択部１５７、音声出力部１５８を備える。また、ストローク保持部１５９、ストローク文言取得部１６０、ジェスチャ辞書１６１、ジェスチャ処理部１６２、ジェスチャ認識部１６３、ジェスチャ文言取得部１６４、ジェスチャ実行部１６５、ヘルプ部１６６を備える。
【００１３】
入力部１５１は、ユーザからの入力を受け付ける。ストローク辞書１５２は、音声出力装置が認識可能な、ユーザからの入力の情報であるストローク（筆跡）の情報を保持する。ストローク（筆跡）とは、ユーザがタッチパネル１０５に触れてから離れるまでの一連の動作である。オノマトペ辞書１５３は、ストロークを構成する線分の数を用いて、入力されたストロークの形状をカテゴリごとに分類して記録する。オノマトペとは、擬音語、擬態語を包括的に表す言葉である。ストローク処理部１５４は、ストロークに関する処理を統括する。ストローク認識部１５５は、ストローク処理部１５４から送られる入力座標の列から、ストロークの形状とタッチパネル等の入力領域におけるストロークの大きさを認識する。ストローク分類部１５６は、ストローク認識部１５５で認識された形状と大きさを用いて、入力されたストロークをカテゴリに分類する。オノマトペ選択部１５７は、分類されたカテゴリに対応するオノマトペをオノマトペ辞書１５３から選択する。音声出力部１５８は、送られてくるオノマトペ、後述のストローク文言（第１の文言）、後述のジェスチャ文言（第２の文言）、又は、その他の文言を音声出力する。
【００１４】
ストローク保持部１５９は、入力座標の列を保持する。第１取得手段として機能するストローク文言取得部１６０は、認識された形状に対応するストローク文言（第１の文言）を、ストローク辞書１５２から取得する。ジェスチャ辞書１６１は、１又は２以上のストロークから構成されるジェスチャの情報（図形）を保持する。ジェスチャ処理部１６２は、ジェスチャに関する処理（図形に対応する処理）を統括する。ジェスチャ認識部１６３は、ジェスチャ処理部１６２から送られる入力座標の列を用いて、ジェスチャ（図形）を認識する。第２取得手段として機能するジェスチャ文言取得部１６４は、ジェスチャ認識部１６３により認識されたジェスチャに対応するジェスチャ文言（第２の文言）を、ジェスチャ辞書１６１から取得する。ジェスチャ実行部１６５は、認識されたジェスチャに対応するコマンドを実行する。ヘルプ部１６６は、認識されたジェスチャの尤度が小さい場合にジェスチャの正しい書き方を取得する。
【００１５】
以下、上記各処理部における処理について具体的に説明する。入力部１５１は、タッチパネル１０５を備える。入力部１５１は、ユーザが指やペンなどでタッチパネル１０５に触れると、触れた位置の入力座標を検出し、ペンイベントを生成する。生成されるペンイベントは、ｐｅｎＤｏｗｎ、ｐｅｎＭｏｖｅ、ｐｅｎＵｐの３種類である。まず、ユーザの指がタッチパネル１０５に触れた場合、入力部１５１はｐｅｎＤｏｗｎを生成する。そして、指がタッチパネル１０５に触れたまま移動した場合、ｐｅｎＭｏｖｅを生成する。最後に、指がタッチパネル１０５から離れた場合、ｐｅｎＵｐを生成する。ペンイベントにおいて検出された入力座標は、後述のストローク保持部１５９により保持される。また、入力の際に指やペンの代わりにマウスを用いることも可能である。その場合、入力部１５１はタッチパネル１０５を備えなくても良い。
【００１６】
そして、ストローク処理部１５４は、入力部１５１により生成されるペンイベントを受け取り、ストロークの区切りを検出する。ユーザがタッチパネル１０５に触れてから離れるまでを１つのストロークと定義する。つまり、１つのストロークは、１つのｐｅｎＤｏｗｎで始まり、１または複数のｐｅｎＭｏｖｅが続き、１つのｐｅｎＵｐで終わるというイベント列である。ストローク処理部１５４は、ストロークの区切りを検出すると、各ペンイベントから入力座標を取り出し、入力座標の列をストローク認識部１５５へ送る。
【００１７】
図２を参照して、上記ストローク辞書１５２の例について説明する。ストローク辞書１５２は、装置が認識可能なストロークの情報を保持している。図２に示すストローク辞書１５２では、形状名、基準となるストローク、及び対応するストローク文言について７種類のストロークが登録されている。具体的には、横線２０１、縦線２０２、小なり２０３、右向き三角２０４、左向き三角２０５、四角２０６、上半円２０７の７種類である。
【００１８】
ストローク認識部１５５は、ストローク処理部１５４から送られる入力座標の列とストローク辞書１５２に登録された情報とから、ストロークの形状と大きさを認識する。まずストロークの大きさの認識方法について説明する。ストロークの形状の認識方法については後述する。
【００１９】
ストロークの大きさは以下の方法で認識される。最初に、入力座標の列に外接する矩形を求める。この矩形の幅がタッチパネルの幅の半分以上、又は矩形の高さがタッチパネルの高さの半分以上ある場合に、ストロークの大きさは「大」と認識される。逆に、矩形の幅と高さが共にタッチパネルの高さと幅の半分未満の場合に、ストロークの大きさは「小」と認識される。
【００２０】
ストローク分類部１５６は、ストローク認識部１５５により認識された形状と大きさを用いて、入力されたストロークをカテゴリに分類する。分類方法はオノマトペ辞書１５３に登録されている分類に従う。オノマトペ選択部１５７は、分類されたカテゴリに対応するオノマトペを、オノマトペ辞書１５３から選択する。選択したオノマトペは、音声出力部１５８へ送られる。
【００２１】
図３（ａ）を参照して、オノマトペ辞書１５３の例について説明する。図３（ａ）のオノマトペ辞書１５３は、図２のストローク辞書１５２に対応している。すなわち、図２のストローク辞書１５２に含まれる形状を全て含む。図３（ａ）のストロークの形状に含まれる「不明１」、「不明２」、「不明３」、「不明４」の形状については後述する。ユーザが入力したストロークに対する音声出力装置の認識結果を、ユーザがオノマトペから確認可能とするために、オノマトペ辞書１５３は以下の特徴を有する。
【００２２】
オノマトペ辞書１５３では、ストロークを構成する線分の数を用いて、形状がカテゴリに分類されている。図３（ａ）の例では、形状は４つのカテゴリに分類されている。それぞれのカテゴリは、ストロークを構成する線分の数が１つ、２つ、３つ、４つの形状を含む。「横線２０１」、「縦線２０２」、「上半円２０７」、及び「不明１」の形状が、線分の数が１つのカテゴリに含まれる。同様に、「小なり２０３」及び「不明２」が、線分の数が２つのカテゴリに含まれる。「右向き三角２０４」、「左向き三角２０５」、及び「不明３」が、線分の数が３つのカテゴリに含まれる。「四角２０６」、及び「不明４」が、線分の数が４つのカテゴリに含まれる。分類されたカテゴリごとに異なるオノマトペを割り当てる。このようにオノマトペを割り当てると以下の効果が得られる。ストロークを構成する線分の数はストロークの形状と密接な関係がある。そのため、認識されたストロークの形状がオノマトペから想像可能となる。よって、音声出力されるオノマトペをユーザが聞くことで、認識されたストロークの形状を確認することが可能となる。
【００２３】
また、オノマトペ辞書１５３では、ストロークの大きさをカテゴリに分類している。図３（ａ）の例では「大」と「小」の２つのカテゴリに分類している。このカテゴリごとに異なるオノマトペを割り当てる。このようにオノマトペを割り当てると以下の効果が得られる。認識されたストロークの大きさがオノマトペから想像可能になる。よって、音声出力されるオノマトペをユーザが聞くことで、認識されたストロークの大きさを確認することが可能となる。
【００２４】
上記説明では、ストロークの形状と大きさのそれぞれをカテゴリに分類しているが、形状のみをカテゴリに分類することも可能である。例えば、大きさを区別しないジェスチャを用いる場合、ストロークの大きさを認識する必要はない。ジェスチャについては後述する。
【００２５】
図３（ａ）に示す例を用いて、オノマトペの割り当て方法をより詳細に説明する。まず、形状を分類したカテゴリごとに、オノマトペを割り当てる方法について説明する。ストロークを構成する線分の数に合わせてオノマトペの拍数を増減する。拍数とは、オノマトペの基本となる拍（後述の「さ」又は「す」等）を連続する数である。例えば、ストロークの大きさが「小」の場合は次の通りである。基本の拍を「さ」とする。ストロークを構成する線分の数と同じだけ基本の拍を繰り返し、その後に拍「っ」を加え、オノマトペとする。ストロークを構成する線分の数が２の場合、「さ」を２回繰り返し「っ」を加えた「ささっ」をオノマトペとする。ただし、基本の拍の数とストロークを構成する線分の数を必ずしも同数にする必要はない。例えば、ストロークを構成する線分の数が５以上のストロークに、同一のオノマトペを割り当てることも可能である。オノマトペの基本の拍数を、ストロークを構成する線分の数と等しくすると、音声出力されるオノマトペからストロークの形状が容易に想像可能となる。
【００２６】
次に、大きさを分類したカテゴリごとに、オノマトペを割り当てる方法について説明する。ストロークの大きさに合わせて基本の拍を異なるものとする。例えば、大きさが「小」のストロークに対する基本の拍を「さ」とする。そして、大きさが「大」のストロークに対する基本の拍を「す」とする。これにより、認識されたストロークの大きさを容易に確認可能となる。また、基本の拍を繰り返した後に加える拍を異なるものとすると良い。例えば、大きさが「小」のストロークは１拍の「っ」を加える。そして、大きさが「大」のストロークは３拍の「ぅ〜っ」を加える。ストロークを構成する線分の数が２、かつ大きさが「大」の場合、「すすぅ〜っ」をオノマトペとする。大きさが「大」のストロークに対するオノマトペは、大きさが「小」のストロークに対するオノマトペよりも拍数が多くなる。ユーザは、音声出力するオノマトペからストロークの大きさを容易に想像可能となる。
【００２７】
ここではオノマトペとして擬音語を用いる例を説明した。擬音語の代わりに擬態語を用いることも可能である。例えば、形状に円弧を含むストロークと含まないストロークとでカテゴリを分類する。円弧を含むストロークに対するオノマトペを擬態語の「ふわっ」又は「ふわふわっ」とする。ここで「ふわっ」は大きさが「小」の場合で、「ふわふわっ」が大きさが「大」の場合である。円弧を含まないストロークに対しては、図３（ａ）と同じ擬音語を割り当てる。
【００２８】
以上説明したとおり、ストロークの形状や大きさに、擬音語や擬態語などオノマトペを割り当てることが可能である。割り当てたオノマトペからストロークの形状や大きさが容易に想像可能である。よって、ユーザは音声出力されるオノマトペを聞くことで、認識されたストロークの形状や大きさを確認することが可能となる。また、オノマトペを用いることで表現豊かな音声出力が可能となる。なお、図３（ｂ）は第２実施形態に係るオノマトペ辞書１５３の例を示す図であり、後述の第２実施形態において説明する。
【００２９】
ストローク保持部１５９は、ペンイベントから取り出した入力座標の列を保持する。ストローク文言取得部１６０は、認識された形状に対応するストローク文言を、ストローク辞書１５２から取得する。ストローク文言は、認識されたストロークの形状を説明する文言である。ここで、取得されたストローク文言に何らかの修正が加えられても良い。取得されたストローク文言は、音声出力部１５８へ送られる。
【００３０】
一方、ジェスチャ処理部１６２は、入力された複数のストロークに対して、ジェスチャの区切りを検出する。検出方法については後述する。１つのジェスチャは、１つ又は複数のストロークから構成される。
【００３１】
図４を参照して、ジェスチャ辞書１６１の例について説明する。例えば、「４枚表示」のジェスチャは「横線２０１」と「縦線２０２」の２つのストロークから構成される。また、「１枚表示」のジェスチャは「四角２０６」の１つのストロークから構成される。検出されたジェスチャ区切り同士の間に含まれる各ストロークに対応する入力座標の列を、ストローク保持部１５９から取り出す。取り出した入力座標の列はジェスチャ認識部１６３へ送られる。
【００３２】
図４に示すジェスチャ辞書１６１の例について補足する。「４枚表示」と「１枚表示」のジェスチャに含まれる点線の矩形は、タッチパネルの位置と大きさを表すガイドである。これらのジェスチャは、ガイドに合わせた位置及び大きさで入力する必要がある。なお、ガイドがないジェスチャは、タッチパネル上の任意の位置に小さく入力する。
【００３３】
ジェスチャ認識部１６３は、ジェスチャ処理部１６２から送られる入力座標の列を用いて、ジェスチャを認識する。ジェスチャの認識方法については後述する。ジェスチャ文言取得部１６４は、認識されたジェスチャに対応するジェスチャ文言を、ジェスチャ辞書１６１から取得する。ここで、取り出したジェスチャ文言に何らかの修正を加えることも可能である。取得されたジェスチャ文言は音声出力部１５８へ送られる。ジェスチャ実行部１６５は、認識されたジェスチャに対応するコマンドを実行する。ヘルプ部１６６は、認識されたジェスチャの尤度が閾値よりも小さい場合にジェスチャの正しい書き方を取得する。尤度の詳細については後述する。
【００３４】
音声出力部１５８は、送られてくるオノマトペ、ストローク文言、ジェスチャ文言、又はその他の文言を音声出力する。音声出力には様々な方法を用いることが可能である。例えば、音声合成を用いることが可能である。また、オノマトペなどに対応する音声を予め録音しておき、その録音した音声を再生しても良い。オノマトペに対しては、そのオノマトペから想像可能な効果音を予め録音しておくことも可能である。また、オノマトペなどに対応するＭＩＤＩデータを保持しておき、そのＭＩＤＩデータをシンセサイザー等を用いて演奏することも可能である。
【００３５】
以上が、各処理部の動作についての説明である。
【００３６】
次に、図５を参照して、本実施形態に係る音声出力装置の処理手順を示すフローチャートについて説明する。また、図６は本実施形態の手書き入力装置の動作例を示す図であり、図５のフローチャートの説明を補足するために用いる。
【００３７】
ステップＳ５０１において、ストローク処理部１５４は、ｐｅｎＤｏｗｎのペンイベントを受け取ったか否かを判定する。受け取った場合（ステップＳ５０１；ＹＥＳ）、ステップＳ５０２へ進む。受け取らなかった場合（ステップＳ５０１；ＮＯ）、ステップＳ５１３へ進む。
【００３８】
ステップＳ５０２において、ストローク処理部１５４は、受け取ったｐｅｎＤｏｗｎのペンイベントから入力座標を取り出す。ストローク文言取得部１６０は、取り出された入力座標のタッチパネル上での大まかな位置を判定し、この位置に対応する文言を取得する。例えば、タッチパネルの左端付近である場合、図６のＩＤ２に示されるように「ひだりのはしから〜」という文言を取得する。なお、タッチパネル上での大まかな位置のそれぞれに対して、対応する文言を予め保持しておくものとする。取得された文言は音声出力部１５８へ送られる。
【００３９】
ステップＳ５０３において、音声出力部１５８は、送られてきた文言を音声出力する。ｐｅｎＤｏｗｎのペンイベントはストロークの書き始めに生成される。ここでは、音声出力装置が認識したストロークの書き始めの位置を表す文言を、音声出力することになる。ユーザは出力された音声を聞くことにより、装置が認識した書き始めの位置を確認することができる。図６のＩＤ６の場合も同様である。
【００４０】
ステップＳ５０４において、ストローク処理部１５４は、ペンイベントから入力座標を取り出す。そして、取り出した入力座標はストローク保持部１５９で保持される。ステップＳ５０５において、ストローク処理部１５４は、ｐｅｎＭｏｖｅのペンイベントを受け取ったか否かを判定する。受け取った場合（ステップＳ５０５；ＹＥＳ）、ステップＳ５０４へ戻る。受け取らなかった場合（ステップＳ５０５；ＮＯ）、ステップＳ５０６へ進む。
【００４１】
ステップＳ５０６において、ストローク処理部１５４は、ｐｅｎＵｐのペンイベントを受け取ったか否かを判定する。受け取った場合（ステップＳ５０６；ＹＥＳ）、ステップＳ５０７へ進む。受け取らなかった場合（ステップＳ５０６；ＮＯ）、ステップＳ５０５へ戻る。ｐｅｎＵｐのペンイベントがストロークの区切りとなる。つまり、ステップＳ５０１からステップＳ５０６において受け取ったペンイベントの列が１つのストロークとなる。
【００４２】
ステップＳ５０７において、ストローク認識部１５５は、入力されたストロークの形状と大きさを認識する。ステップＳ５０８において、ストローク分類部１５６は、認識された形状と大きさを用いて、入力されたストロークをカテゴリに分類する。ステップＳ５０９において、オノマトペ選択部１５７は、分類されたカテゴリに対応するオノマトペをオノマトペ辞書１５３から選択する。選択されたオノマトペは音声出力部１５８へ送られる。なお、ストロークが連続して入力された場合に、簡略化したオノマトペを選択することも可能である。例えば、基本の拍の数を少なくしたものを簡略したオノマトペとする。
【００４３】
ステップＳ５１０において、ストローク文言取得部１６０は、ストローク辞書１５２から、認識したストロークの形状に対応するストローク文言を取得する。取得された文言は音声出力部１５８へ送られる。
【００４４】
ステップＳ５１１において、音声出力部１５８は、送られてきたオノマトペを音声出力する。図６のＩＤ４の場面に対応する。次に、音声出力部１５８は、送られてきたストローク文言を音声出力する。図４のＩＤ５の場面に対応する。ＩＤ５の場面は、ストローク文言取得部１６０が、取り出した文言に修正を加えた例である。オノマトペとストローク文言との間を違和感なくつなぐために、文言の先頭に助詞「と」を挿入している。ここでは、入力されたストロークに対して、装置が認識した結果が音声出力されることになる。「すぅ〜っ」と「と、よこぼ〜」のように、オノマトペとストローク文言は分けて音声出力部１５８へ送られる。「すぅ〜っと、よこぼ〜」のようにまとめて送られることはない。これは、後述する冗長な音声出力を避ける処理を容易にするためである。図６のＩＤ８の場面では、オノマトペとストローク文言とが共に出力されている。これは、分けて音声出力されたものを１つの場面にまとめたに過ぎない。
【００４５】
次に、ステップＳ５１２において、タイマによる計測を開始する。このタイマはジェスチャの区切りを検出するために利用される。
【００４６】
ステップＳ５１３において、ジェスチャ処理部１６２は、タイマによる計測の開始後一定時間が経過したか否かを判定する。一定時間が経過した場合（ステップＳ５１３；ＹＥＳ）、ステップＳ５１４へ進む。一定時間が経過していない場合（ステップＳ５１３；ＮＯ）、ステップＳ５０１へ進む。最後のストロークが入力された後、一定時間が経過した場合、ジェスチャの区切りと判定する。それまでに入力された１つ以上の複数のストロークをまとめて１つのジェスチャと判定する。
【００４７】
ステップＳ５１４において、タイマによる計測を停止する。ステップＳ５１５において、ジェスチャ認識部１６３は、入力されたジェスチャを認識する。ステップＳ５１６において、ジェスチャ文言取得部１６４は、ジェスチャ辞書１６１から、認識されたジェスチャに対応するコマンドを説明するジェスチャ文言を取得する。取得されたジェスチャ文言は音声出力部１５８へ送られる。
【００４８】
ステップＳ５１７において、音声出力部１５８は、送られてきたジェスチャ文言を音声出力する。このステップは図６のＩＤ９の場面に対応する。ここでは、入力されたジェスチャに対し、装置が認識した結果を音声出力することになる。入力された複数のストロークに関するオノマトペとストローク文言を音声出力した後に、ジェスチャ文言を音声出力することになる。
【００４９】
ステップＳ５１８において、ジェスチャ実行部１６５は、認識されたジェスチャに対応するコマンドを実行する。図６の例では、「４枚表示」のジェスチャが認識される。そのため、ＩＤ１０の場面において、画面の表示を４枚表示に変更するというコマンドを実行する。
【００５０】
以上の処理により、例えば図６に示すようなユーザのジェスチャ入力に合わせて、以下の音声が出力される。「ひだりのはしから〜。すぅ〜っとよこぼう〜。こんどはうえから〜。すぅ〜っとたてぼ〜。４まいひょうじ〜」。これは「４枚表示」のジェスチャの書き方を説明する音声になっている。ジェスチャの入力に合わせてその書き方が音声出力される。そのため、ユーザはジェスチャの書き方を何回も聞くことになり、書き方が記憶に定着しやすくなる。また、文言にメロディーを付けて音声出力すれば、絵描き歌の要領で楽しくジェスチャの書き方を覚えることが可能になる。
【００５１】
次に、図７のフローチャートを参照して、ステップＳ５０７における、ストロークの形状を認識する処理手順を詳細に説明する。ステップＳ７０１において、ストローク認識部１５５は、入力されたストロークに対応する入力座標の列と認識候補の基準のストロークとでマッチングを行い、それぞれの認識候補に対する尤度を求める。ストローク辞書１５２に含まれる形状が認識候補である。基準のストロークは、手本となるストロークの書き方を示すデータである。これはベクトルデータや座標データの形で保持する。
【００５２】
ステップＳ７０２において、ステップＳ７０１で求めた尤度の最大値が予め定めた閾値以上か否かを判定する。閾値以上の場合（ステップＳ７０２；ＹＥＳ）、ステップＳ７０６へ進む。一方、閾値より小さい場合（ステップＳ７０２；ＮＯ）、ステップＳ７０３へ進む。尤度の最大値が閾値より小さい場合は、入力されたストロークがストローク辞書１５２に登録されているストロークにマッチしなかったと判定する。つまり、尤度の最大値が閾値より小さいということは、ストロークの形状の認識に失敗したことを意味する。
【００５３】
ステップＳ７０３において、公知技術を用いて、入力されたストロークの頂点を求める。例えば、図８（ａ）に示すストロークの頂点は２箇所にある。ステップＳ７０４において、入力されたストロークを頂点の位置で線分に分割し、ストロークを構成する線分の数ｎを求める。ステップＳ７０５において、形状として「不明ｎ」を認識結果とする。ステップＳ７０６において、尤度が最大値となる認識候補を認識結果とする。
【００５４】
以上の処理により以下の効果がある。ストローク辞書１５２を用いた形状の認識に失敗した場合であっても、ストロークを構成する線分の数に応じた形状を結果とすることが可能である。また、オノマトペ辞書１５３は、図３（ａ）に示すように、ストロークを構成する線分の数を用いて形状をカテゴリに分類している。よって、入力されたストロークの形状の認識に失敗した場合であっても、成功した場合と一貫した基準で、オノマトペを選択して音声出力することが可能となる。
【００５５】
図９のフローチャートを参照して、図５のステップＳ５１１における、オノマトペとストローク文言を音声出力する処理手順を詳細に説明する。ステップＳ９０１において、ストローク認識部１５５は、今回入力されたストロークが、１つ前に（前回）入力されたストロークと等しいか否かを判定する。２つのストロークの形状と大きさが等しい場合、２つのストロークが等しいと判定する。等しい場合（ステップＳ９０１；ＹＥＳ）、ステップＳ９０２へ進む。等しくない場合（ステップＳ９０１；ＮＯ）、ステップＳ９０９へ進む。ステップＳ９０２において、音声出力部１５８は、１つ前（前回）のストロークに関するオノマトペを音声出力中であるか否かを判定する。音声出力中の場合（ステップＳ９０２；ＹＥＳ）、ステップＳ９０３へ進む。音声出力中でない、つまり音声出力が終了している場合（ステップＳ９０１；ＮＯ）、ステップＳ９０６へ進む。
【００５６】
ステップＳ９０３において、音声出力部１５８は、１つ前（前回）のストロークに関するストローク文言の音声出力をキャンセルする。また、ストローク文言取得部１６０は、１つ前（前回）のストロークの形状に対応する簡略化したストローク文言を取得し、音声出力部１５８へ送る。つまり、１つ前（前回）のストロークに関し、ステップＳ５１０で取得されたストローク文言を、簡略化したストローク文言へと変更し音声出力することになる。簡略化したストローク文言は予め保持しておく。例えば、形状の「縦線２０２」に対応する簡略化したストローク文言を「たて」とする。
【００５７】
ステップＳ９０４において、音声出力部１５８は、今回のストロークに関するオノマトペの音声出力をキャンセルする。ステップＳ９０５において、音声出力部１５８は、今回のストロークに関するストローク文言の音声出力をキャンセルする。また、ストローク文言取得部１６０は、今回のストロークの形状に対応する簡略化したストローク文言を取得し、音声出力部１５８へ送る。つまり、今回のストロークに関し、ステップＳ５１０で取得したストローク文言を簡略化したストローク文言へ変更し音声出力する。
【００５８】
ステップＳ９０６において、音声出力部１５８は、１つ前（前回）のストロークに関するストローク文言を音声出力中であるか否かを判定する。音声出力中である場合（ステップＳ９０６；ＹＥＳ）、ステップＳ９０７へ進む。音声出力中でない、つまり音声出力が終了している場合（ステップＳ９０６；ＮＯ）、ステップＳ９０９へ進む。ステップＳ９０７において、音声出力部１５８は、今回のストロークに関するオノマトペの音声出力をキャンセルする。ステップＳ９０８において、音声出力部１５８は、今回のストロークに関するストローク文言の音声出力をキャンセルする。また、ストローク文言取得部１６０は、繰り返しを表す文言を取得し、音声出力部へ送る。つまり、今回のストロークに関し、ステップＳ５１０で取得したストローク文言を繰り返しを表す文言へ変更して音声出力する。繰り返しを表す文言は予め保持しておく。例えば、「２つ〜」が繰り返しを表す文言である。
【００５９】
ステップＳ９０９において、今回のストロークに関するオノマトペとストローク文言を音声出力する。形状が「縦線２０２」であり、大きさが「小」のストロークを２回連続で入力すると、通常は「さっ、とたてぼ〜。さっ、とたてぼ〜」という音声を出力する。これはステップＳ９０９を通る処理に対応する。一方、同じストロークを２回、少しテンポよく入力すると、「さっ、とたてぼ〜。２つ〜」という音声を出力する。これはステップＳ９０８を通る処理に対応する。そして、同じストロークを２回、さらにテンポよく入力すると、「さっ、とたて、たて」という音声を出力する。これはステップＳ９０５を通る処理に対応する。図９に示す処理を行うことにより、冗長な音声出力を避けて、入力のテンポに合わせた音声出力が可能となる。オノマトペとストロークの形状に対応する文言とを分けて音声出力部１５８へ送るため、このような文言の変更処理が容易に実現できる。
【００６０】
上記において、１つ前（前回）のストロークと今回のストロークとの、２つの等しいストロークが連続して入力された場合について説明した。これは、２つ以上の等しいストロークが連続して入力された場合についても当てはまる。つまり、ストローク文言取得部１６０は、複数の等しいストロークが連続して入力された場合に、ストローク文言を簡略したストローク文言へ変更する。さらに、音声出力部１５８は、２つ目以降のストロークに関するオノマトペの音声出力をキャンセルする。
【００６１】
２つのストロークが連続して入力されたか否かは次のようにして判定される。１つ前（前回）のストロークに関するオノマトペ又はストローク文言を音声出力中に次のストロークが入力された場合に、ストロークが連続して入力されたと判定される。具体的には、ステップＳ９０２の処理と、ステップＳ９０６の処理とにより判定される。
【００６２】
これまでは複数の等しいストロークが連続して入力された場合について説明した。逆に、等しくないストロークが連続して入力された場合に適用することも可能である。具体的には、ステップＳ９０１の処理はスキップされる。そして、ステップＳ９０８の処理は、ステップＳ９０５の処理に置き換えられる。上記のように処理を行うことにより、等しくないストロークが連続して入力された場合にも、冗長な音声出力を避けて、入力のテンポに合わせた音声出力が可能となる。
【００６３】
次に、図１０のフローチャートを参照して、ステップＳ５１５〜ステップＳ５１８の処理手順をより詳細に説明する。認識されたジェスチャの尤度が閾値よりも小さい場合に、ジェスチャの正しい書き方をユーザに音声出力する機能が追加されている。尤度が小さいということは、ユーザの書き方に何か問題があるということである。正しい書き方を音声出力することにより、ユーザにこの問題を指摘することが可能となる。
【００６４】
図１０におけるステップＳ５１６〜ステップＳ５１８は、図５で説明した同名のステップと同じ処理である。図５のステップＳ５１４から、ステップＳ１００１へ進む。図４のジェスチャ辞書１６１を用いた場合について説明する。
【００６５】
ステップＳ１００１において、ジェスチャ認識部１６３は、入力されたジェスチャに対応する入力座標の列と認識候補の基準のジェスチャとでマッチングを行い、それぞれの認識候補に対し尤度を算出する。ジェスチャ辞書１６１に含まれるジェスチャが認識候補（図形候補）である。基準のジェスチャは、手本となるジェスチャの書き方を示すデータである。この基準のジェスチャはベクトルデータや座標データの形で保持する。そして、ジェスチャ認識部１６３は尤度が最大となる認識候補をジェスチャとして識別する。
【００６６】
ステップＳ１００２において、ジェスチャ認識部１６３は、認識されたジェスチャの尤度が予め定めた閾値以上であるか否かを判定する。閾値以上の場合（ステップＳ１００２；ＹＥＳ）、ステップＳ５１６へ進む。一方、閾値より小さい場合（ステップＳ１００２；ＮＯ）、ステップＳ１００３へ進む。ステップＳ１００３において、音声出力部１５８は、ジェスチャの書き方に問題があることを音声出力する。すなわち、記憶部に記憶されたジェスチャの図形に該当しない旨を音声出力する。例えば、音声出力部１５８は「ジェスチャの書き方に問題があります」のような文言を音声出力する。ステップＳ１００４において、音声出力部１５８は、入力されたストローク列と、認識されたジェスチャを構成する正しいストローク列とが等しいか否かを判定する。ここで、１又は２以上のストロークをストローク列と称する。それぞれのストローク列に含まれるストロークを１つずつ比較し、その形状と大きさがすべて等しい場合、ストローク列が等しいと判定される。ストローク列が等しい場合（ステップＳ１００４；ＹＥＳ）、ステップＳ１００６へ進む。等しくない場合（ステップＳ１００４；ＮＯ）、ステップＳ１００５へ進む。ジェスチャを構成する正しいストローク列は、ジェスチャ辞書１６１に予め定めておく。例えば、図４に示すように、「印刷設定（印刷モードへ遷移）」のジェスチャを構成するストローク列は、「形状：四角、大きさ：小」及び「形状：四角、大きさ：小」の２つのストロークとする。
【００６７】
入力されたストローク列は、ユーザの入力をストローク認識部１５５が認識した結果である。ユーザによる入力例を図８（ｂ）、図８（ｃ）に示す。図８（ｂ）の入力に対するストローク列は、「形状：四角、大きさ：小」及び「形状：四角、大きさ：小」のようになる。このストローク列は、「印刷設定（印刷モードへ遷移）」のジェスチャを構成する正しいストローク列と等しい。一方、図８（ｃ）の入力に対するストローク列は、「形状：丸、大きさ：小」及び「形状：四角、大きさ：小」のようになる。このストローク列は、「印刷設定（印刷モードへ遷移）」のジェスチャを構成する正しいストローク列と等しくない。
【００６８】
ステップＳ１００５において、音声出力部１５８は、認識されたジェスチャの通常の正しい書き方を取得して音声出力する。通常の正しい書き方は、ジェスチャを構成する各ストロークに関するオノマトペと、ストローク文言と、ジェスチャに関するジェスチャ文言とから構成される。この場合の音声出力は、ジェスチャを正しい書き方で入力した場合に、図５の処理手順に従って出力される音声と等しい。例えば、「印刷設定（印刷モードへ遷移）」のジェスチャの通常の正しい書き方は、「さっ、としかく〜。さっ、としかく〜。いんさつせってぇ〜」である。
【００６９】
ステップＳ１００６において、音声出力部１５８は、認識されたジェスチャの詳細な正しい書き方を取得して音声出力する。詳細な正しい書き方とは、通常の正しい書き方にストローク間の相対的な位置関係や大きさを示す文言を加えたものである。例えば、「印刷設定（印刷モードへ遷移）」のジェスチャの詳細な正しい書き方は、「さっ、としかく〜。そのしたに〜、よこながに〜。さっ、としかく〜。いんさつせってぇ〜」である。ここで「そのしたに〜、よこながに〜」の部分が、各ストローク間の相対的な位置関係や大きさを示す文言である。
【００７０】
具体的には、図８（ｂ）、図８（ｃ）の入力に対して、ジェスチャ認識部１６３は「印刷設定（印刷モードへ遷移）」のジェスチャを認識する。ただし、図８（ｂ）、図８（ｃ）のどちらの入力にも書き方に問題があるため、尤度が予め定めた閾値よりも小さくなる。よって、ステップＳ１００２からステップＳ１００３へ進む。
【００７１】
図８（ｂ）のストローク列は、「印刷設定（印刷モードへ遷移）」のジェスチャを構成する正しいストローク列と等しい。よって、ステップＳ１００８において、音声出力部１５８は詳細な正しい書き方を音声出力する。しかしながら、図８（ｂ）の入力は、個々のストロークは等しいが、２つ目のストロークの大きさに問題がある。２つ目のストロークは１つ目のストロークよりも横長である必要がある（図４参照）。この問題は、ストローク間の相対的な位置関係や大きさを加えた詳細な正しい書き方により解決することが可能である。なお、個々のストロークは正しいため、通常の正しい書き方では、問題を指摘できない。
【００７２】
図８（ｃ）のストローク列は、「印刷設定（印刷モードへ遷移）」のジェスチャを構成する正しいストローク列と等しくない。よって、ステップＳ１００５において、音声出力部１５８は通常の正しい書き方を音声出力する。図８（ｃ）の入力は、１つ目のストロークの形状に問題がある。この問題は、通常の正しい書き方により指摘が可能である。
【００７３】
一方、図８（ｂ）、図８（ｃ）の入力に対し、「印刷設定（印刷モードへ遷移）」のジェスチャに対応するコマンドを実行することも可能である。しかしながら、その場合、ユーザが間違った書き方を覚えてしまうという課題が生じる。認識されたジェスチャの尤度が小さい場合は、音声出力部１５８はユーザの書き方に問題があると判断し、コマンドを実行せずに、正しい書き方を音声出力する。これによりユーザが間違った書き方を覚えてしまうことは回避できる。
【００７４】
（第２実施形態）
本実施形態に係る音声出力装置は、ユーザの入力したジェスチャに対して、装置がどのように認識したかを音声出力する。また、ユーザの書き方に問題がある場合、ジェスチャの正しい書き方を音声で知らせることが可能である。よって、画面がなくても操作が可能である。例えば、タッチパネル付きの音楽プレイヤーに適用可能である。ユーザは指でタッチパネルにジェスチャを書いて操作する。装置はイヤホンなどを通してユーザに音声出力する。画面を見る必要がないため、音楽プレイヤーをポケットやカバンに入れたままで操作が可能となる。また、画面が必須ではないので、例えば視覚障害者用のユーザインタフェースとして適用が可能である。一般にアプリケーションは複数の画面を持つ。画面を見ずに操作を行う場合、現在どの画面にいるかを音声で確認できることが望ましい。
【００７５】
図３（ｂ）を参照して、オノマトペ辞書１５３の他の例について説明する。これは「プレビュー」、「スライドショー」、「印刷」の３画面を持つ画像ビューアの例である。画面ごとにオノマトペの基本となる拍は異なるものとする。これにより、装置が出力するオノマトペから、現在どの画面にいるかを確認することが可能となる。
【００７６】
また、本発明に係る音声出力装置は、２次元ジェスチャに限らず、空間（３次元）ジェスチャを用いることも可能である。この場合、タッチパネルの代わりに、手の位置などを検出するためのセンサーを用いる。例えばＬＥＤから光を照射し、手が反射した光がセンサーに届くまでの時間を計測し、位置を検出する構成にすれば良い。
【００７７】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2012018544.tif 000003
【図２】
2012018544.tif 000004
【図３】
2012018544.tif 000005
【図４】
2012018544.tif 000006
【図５】
2012018544.tif 000007
【図６】
2012018544.tif 000008
【図７】
2012018544.tif 000009
【図８】
2012018544.tif 000010
【図９】
2012018544.tif 000011
【図１０】
2012018544.tif 000012