(57)【要約】【課題】  様々な顔文字の含まれる文章から顔文字を認識し、顔文字が表現する意味を適切な言葉に置き換えることが可能なテキスト音声出力のための装置、方法、及びプログラムを提供する。【解決手段】  テキスト音声出力方法、及びそのプログラムに、入力されたテキストデータから顔文字を抽出する顔文字抽出部１３と、顔文字に基づく意味（感情等）、及びその強度（強弱）を判定する顔文字意味／強度判定部１４と、その顔文字の読みを導出する読み導出部１１と、入力されたテキストデータの顔文字部を顔文字に応じた読みに置換してテキストデータを出力する読み置換部１６とを少なくとも有する顔文字読み導出部１１を備える。【選択図】図２
2005284192.tif 000002
【特許請求の範囲】
【請求項１】
文字列の組み合わせからなる顔文字を含むテキストデータを音声として出力する処理をコンピュータに実行させるためのプログラムであって、
前記顔文字を構成する部品文字と該部品文字の前記顔文字に対する位置とを関連づけた顔文字部品辞書に基づいて、入力されたテキストデータから顔文字を抽出する顔文字抽出ステップと、
該顔文字抽出ステップで抽出された顔文字に対応する読みを導出する読み導出ステップと、
前記入力されたテキストデータにおける前記顔文字抽出ステップで抽出された顔文字を、前記読み導出ステップで導出された読みに置換する読み置換ステップと、
該読み置換ステップにて得られた置換後のテキストデータを音声に変換して出力する音声出力ステップと、
を有することを特徴とするテキスト音声出力プログラム。
【請求項２】
文字列の組み合わせからなる顔文字を含むテキストデータを音声として出力する処理をコンピュータに実行させるためのプログラムであって、
入力されたテキストデータから顔文字を抽出する顔文字抽出ステップと、
該顔文字抽出ステップによって抽出した前記顔文字の部品文字と該部品文字が表す意味とを関連づけた顔部品意味辞書に基づいて前記部品文字に対する意味を決定し、前記部品文字と該部品文字が表す意味の強度とを関連づけた顔部品強度辞書に基づいて前記部品文字の意味に対する強度を決定し、前記部品文字が表す意味と前記顔文字が表す意味とを関連づけた顔文字意味決定辞書に基づいて前記部品文字に対する意味から前記顔文字の意味を決定する顔文字意味強度判定ステップと、
該顔文字意味強度判定ステップによって決定された前記顔文字に対する意味と該意味の強度とに応じた感情を文字で表現する読み導出ステップと、
前記入力されたテキストデータにおける前記顔文字抽出ステップで抽出された顔文字を、前記読み導出ステップで導出された読みに置換する読み置換ステップと、
該読み置換ステップにて得られた置換後のテキストデータを音声に変換して出力する音声出力ステップと、
を有することを特徴とするテキスト音声出力プログラム。
【請求項３】
前記顔文字部品辞書は、少なくとも前記顔文字の目を表す部品文字を有し、前記顔文字抽出ステップでは前記目を表す部品文字に基づいて顔文字の輪郭を特定することを特徴とする請求項１に記載のテキスト音声出力プログラム。
【請求項４】
文字列の組み合わせからなる顔文字を含むテキストデータを音声として出力する処理をコンピュータに実行させるための方法であって、
前記顔文字を構成する部品文字と該部品文字の前記顔文字に対する位置とを関連づけた顔文字部品辞書に基づいて、入力されたテキストデータから顔文字を抽出する顔文字抽出ステップと、
該顔文字抽出ステップで抽出された顔文字に対応する読みを導出する読み導出ステップと、
前記入力されたテキストデータにおける前記顔文字抽出ステップで抽出された顔文字を、前記読み導出ステップで導出された読みに置換する読み置換ステップと、
該読み置換ステップにて得られた置換後のテキストデータを音声に変換して出力する音声出力ステップと、
を有することを特徴とするテキスト音声出力方法。
【請求項５】
文字列の組み合わせからなる顔文字を含むテキストデータを音声として出力する処理をコンピュータに実行させるための方法であって、
入力されたテキストデータから顔文字を抽出する顔文字抽出ステップと、
該顔文字抽出ステップによって抽出した前記顔文字の部品文字と該部品文字が表す意味とを関連づけた顔部品意味辞書に基づいて前記部品文字に対する意味を決定し、前記部品文字と該部品文字が表す意味の強度とを関連づけた顔部品強度辞書に基づいて前記部品文字の意味に対する強度を決定し、前記部品文字が表す意味と前記顔文字が表す意味とを関連づけた顔文字意味決定辞書に基づいて、前記部品文字に対する意味から前記顔文字の意味を決定する顔文字意味強度判定ステップと、
該顔文字意味強度判定ステップによって決定された前記顔文字に対する意味と該意味の強度とに応じた感情を文字で表現する読み導出ステップと、
前記入力されたテキストデータにおける前記顔文字抽出ステップで抽出された顔文字を、前記読み導出ステップで導出された読みに置換する読み置換ステップと、
該読み置換ステップにて得られた置換後のテキストデータを音声に変換して出力する音声出力ステップと、
を有することを特徴とするテキスト音声出力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子メール等のテキストデータから音声を出力するテキスト音声出力のための装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、インターネットが急速に普及したことによって電子メールや電子掲示板、チャット等の様々なコミュニケーション手段が用いられるようになってきている。
電子メール等に使用されるテキスト文章には、通常の文章を表すための文字列の他に、様々な文字列を組み合わせることによって人の感情等を表す顔文字も頻繁に使用され、文章を書いた人の意図を読み手に理解してもらう１つの手段に用いられている。
【０００３】
また、従来からある技術を用いて、電子メール等のテキスト文章を音声に出力するサービス等も提供され始めている。例えば、電子メール等のテキスト文章から顔文字を認識し、文章中の顔文字部分をその顔文字が表現する文字列に変換して音声出力するものである。
【０００４】
特許文献１には、あらかじめ用意された絵文字と絵文字に対応する読み（文字列）の表にしたがって、文章中の絵文字を文字列に置き換え、さらに合成音声に変換する方法について開示されている。また、特許文献２には、顔文字に使用される特徴記号を抽出し、その出現回数に応じて顔文字に読みを付与する方法について開示されている。
【特許文献１】特開平１１−３０５９８７号公報
【特許文献２】特開２００２−２６８６６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、顔文字は不特定多数の人によって自由に作成されるので、単語と異なり確定した語彙集等はなく、また常に新しいものが作成されるので、顔文字とその読みとの関係をあらかじめ知ることが難しい。
【０００６】
そのため、テキスト文章に含まれる顔文字を認識することが難しく、また、顔文字が表現する意味を適切な文字列に変換することが難しいという問題があった。
本発明は、上述した問題に鑑みてなされたものであり、その解決しようとする課題は、様々な文字の組み合わせパターンからなる顔文字の含まれる文章から顔文字を認識することを可能とし、顔文字が表現する意味を適切な言葉に置き換えることが可能なテキスト音声出力のための装置、方法、及びプログラムを提供することである。
【課題を解決するための手段】
【０００７】
請求項１に記載の発明は、文字列の組み合わせからなる顔文字を含むテキストデータを音声として出力する処理をコンピュータに実行させるためのプログラムであって、前記顔文字を構成する部品文字と該部品文字の前記顔文字に対する位置とを関連づけた顔文字部品辞書に基づいて、入力されたテキストデータから顔文字を抽出する顔文字抽出ステップと、該顔文字抽出ステップで抽出された顔文字に対応する読みを導出する読み導出ステップと、前記入力されたテキストデータにおける前記顔文字抽出ステップで抽出された顔文字を、前記読み導出ステップで導出された読みに置換する読み置換ステップと、該読み置換ステップにて得られた置換後のテキストデータを音声に変換して出力する音声出力ステップと、を有することを特徴とするテキスト音声出力プログラムである。
【０００８】
請求項１に記載の発明によると、前記顔文字部品辞書を参照して、前記顔文字を構成する部品文字に対応する位置を判別することによって、様々な部品文字によって表されている顔文字輪郭を特定することが可能となる効果を奏する。
【０００９】
請求項２に記載の発明は、文字列の組み合わせからなる顔文字を含むテキストデータを音声として出力する処理をコンピュータに実行させるためのプログラムであって、入力されたテキストデータから顔文字を抽出する顔文字抽出ステップと、該顔文字抽出ステップによって抽出した前記顔文字の部品文字と該部品文字が表す意味とを関連づけた顔部品意味辞書に基づいて前記部品文字に対する意味を決定し、前記部品文字と該部品文字が表す意味の強度とを関連づけた顔部品強度辞書に基づいて前記部品文字の意味に対する強度を決定し、前記部品文字が表す意味と前記顔文字が表す意味とを関連づけた顔文字意味決定辞書に基づいて前記部品文字に対する意味から前記顔文字の意味を決定する顔文字意味強度判定ステップと、該顔文字意味強度判定ステップによって決定された前記顔文字に対する意味と該意味の強度とに応じた感情を文字で表現する読み導出ステップと、前記入力されたテキストデータにおける前記顔文字抽出ステップで抽出された顔文字を、前記読み導出ステップで導出された読みに置換する読み置換ステップと、該読み置換ステップにて得られた置換後のテキストデータを音声に変換して出力する音声出力ステップと、を有することを特徴とするテキスト音声出力プログラムである。
【００１０】
請求項２に記載の発明によると、前記顔部品意味辞書に基づいて判別された部品文字が表す意味から、顔文字意味決定辞書に基づいて総合的に顔文字が表す意味を判別することによって、様々な部品文字によって構成された顔文字に対する適切な表現を判別することが可能となる。
【００１１】
さらに、前記顔文字意味決定辞書に基づいて判別された顔文字の意味と、前記顔部品強度辞書に基づいて判別された前記部品文字が表す意味の強度とから、前記顔文字の表すより適切な感情を判別することが可能となる。
【００１２】
請求項３に記載の発明は、前記顔文字部品辞書は、少なくとも前記顔文字の目を表す部品文字を有し、前記顔文字抽出ステップでは前記目を表す部品文字に基づいて顔文字の輪郭を特定することを特徴とする請求項１に記載のテキスト音声出力プログラムである。
【００１３】
請求項３に記載の発明によると、前記顔文字部品辞書における前記部品文字には、顔文字を構成する目の部分を表す文字を使用することによって、請求項１に記載の発明と同様の効果を奏する。
【００１４】
請求項４に記載の発明は、文字列の組み合わせからなる顔文字を含むテキストデータを音声として出力する処理をコンピュータに実行させるための方法であって、前記顔文字を構成する部品文字と該部品文字の前記顔文字に対する位置とを関連づけた顔文字部品辞書に基づいて、入力されたテキストデータから顔文字を抽出する顔文字抽出ステップと、該顔文字抽出ステップで抽出された顔文字に対応する読みを導出する読み導出ステップと、前記入力されたテキストデータにおける前記顔文字抽出ステップで抽出された顔文字を、前記読み導出ステップで導出された読みに置換する読み置換ステップと、該読み置換ステップにて得られた置換後のテキストデータを音声に変換して出力する音声出力ステップと、を有することを特徴とするテキスト音声出力方法である。
【００１５】
請求項５に記載の発明は、文字列の組み合わせからなる顔文字を含むテキストデータを音声として出力する処理をコンピュータに実行させるための方法であって、入力されたテキストデータから顔文字を抽出する顔文字抽出ステップと、該顔文字抽出ステップによって抽出した前記顔文字の部品文字と該部品文字が表す意味とを関連づけた顔部品意味辞書に基づいて前記部品文字に対する意味を決定し、前記部品文字と該部品文字が表す意味の強度とを関連づけた顔部品強度辞書に基づいて前記部品文字の意味に対する強度を決定し、前記部品文字が表す意味と前記顔文字が表す意味とを関連づけた顔文字意味決定辞書に基づいて、前記部品文字に対する意味から前記顔文字の意味を決定する顔文字意味強度判定ステップと、該顔文字意味強度判定ステップによって決定された前記顔文字に対する意味と該意味の強度とに応じた感情を文字で表現する読み導出ステップと、前記入力されたテキストデータにおける前記顔文字抽出ステップで抽出された顔文字を、前記読み導出ステップで導出された読みに置換する読み置換ステップと、該読み置換ステップにて得られた置換後のテキストデータを音声に変換して出力する音声出力ステップと、を有することを特徴とするテキスト音声出力方法である。
以上に記載した請求項４に記載の発明によっても請求項１と同様に、前記顔文字部品辞書を参照して、前記顔文字を構成する部品文字に対応する位置を判別することによって、様々な部品文字によって表されている顔文字輪郭を特定することが可能となる効果を奏する。また、請求項５に記載の発明によると請求項２に記載の発明と同様に、前記顔部品意味辞書に基づいて判別された部品文字が表す意味から、顔文字意味決定辞書に基づいて総合的に顔文字が表す意味を判別することによって、様々な部品文字によって構成された顔文字に対する適切な表現を判別することが可能となり、さらに、前記顔文字意味決定辞書に基づいて判別された顔文字の意味と、前記顔部品強度辞書に基づいて判別された前記部品文字が表す意味の強度とから、前記顔文字の表すより適切な感情を判別することが可能となる効果を奏する。
【発明の効果】
【００１６】
以上のように、本発明によると、様々な文字の組み合わせパターンからなる顔文字の含まれる文章から顔文字を認識することを可能とし、顔文字が表現する意味を適切な言葉に置き換えることが可能なテキスト音声出力のための装置、方法、及びプログラムを提供することが可能となる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施形態について図１から図１２に基づいて説明する。
図１は、本実施例に係る情報処理装置の構成例を示す図である。
同図は、周辺機器や各種ソフトウェアを実行する他に本実施例に係るテキスト音声出力を実現するためのプログラムを実行するＣＰＵ１と、プログラムを実行するために使用される揮発性のメモリ２（例えばＲＡＭ）と、外部からのデータ入力手段である入力装置３（例えばキーボードやマウス）と、データ等を表示するための出力装置４と、情報処理装置が動作するために必要なプログラムやデータの他に本実施例に係るプログラムを記録するための外部記録装置５と、メモリ２や外部記録装置５のデータを可搬記録媒体７（例えばフロッピイディスクやＭＯディスク、ＣＤ−ＲやＤＶＤ−Ｒなど）に出力したり可搬記録媒体７からプログラムやデータ等を読み出すための媒体駆動装置６と、ネットワーク９に接続するためのネットワーク接続装置８とを有し、これらの装置がバス１０に接続されて相互にデータの受け渡しが行える構成となっている。
【００１８】
図２は、本実施例に係るテキスト音声出力装置の構成例を示す図である。
同図（ａ）に示すテキスト音声出力装置は、入力されたテキストデータについて顔文字の読みを導出する顔文字読み導出部１１と、顔文字読み導出部１１から出力されたデータに基づいて音声を合成して出力する音声合成部１２とから成る。
【００１９】
ここで、音声合成部１２におけるテキストデータを音声に変換する処理は、一般的に知られた手法によって行なうことができる。例えば、「ディジタル音声処理（古井貞煕著、東海大学出版会、１９８５）等に開示されている手法によって実現可能である。
【００２０】
同図（ｂ）は、同図（ａ）に示した顔文字読み導出部１１のより詳細な構成例を示している。
同図（ｂ）に示す顔文字読み導出部１１は、入力されたテキストデータから顔文字を抽出する顔文字抽出部１３と、顔文字抽出部１３によって抽出された顔文字に基づく意味（感情等）、及びその強度（強弱）について判定する顔文字意味／強度判定部１４と、顔文字意味／強度判定部１４の判定結果に基づいてその顔文字の読みを導出する読み導出部１５と、入力されたテキストデータの顔文字部を、その顔文字に応じた読みに置換してテキストデータを出力する読み置換部１６とを少なくとも有する。
【００２１】
顔文字抽出部１３は、顔文字部品表１７に基づいて入力されたテキストデータの顔文字を特定し、特定した顔文字の文字列（顔文字列）を抽出する。顔文字列が抽出されると、顔文字意味／強度判定部１４は、顔部品意味表、口文字強度表、顔文字意味決定表１８に基づいて、抽出された顔文字列の意味（感情等）、及びその強度（強弱）について判定を行なう。
【００２２】
すなわち、顔部品意味表に基づいて顔文字が表す意味（感情等）を特定し、口文字強度表に基づいて顔文字が表す意味の強度（強弱）を特定し、顔部品意味表に基づく判定結果と口文字強度表に基づく判定結果とから顔文字意味決定表に基づいて顔文字の意味及び強度を総合的に判断する。
【００２３】
読み導出部１５は、顔文字が表す意味及び強度に応じた読みを、読み上げ表１９に基づいて決定する。そして、読み置換部１６において、入力されたテキストデータの顔文字部は、その顔文字に応じた読み（文字列）に置換されて音声合成部１２に出力されることとなる。
【００２４】
以上の説明において、同図（ａ）に示した顔文字読み導出部１１及び音声合成部１２は、図１に示した情報処理装置によって実現可能であるが、１つの情報処理装置上に構成されるものに限定されない。すなわち、顔文字読み導出部１１と音声合成部１２とはネットワーク等を介して接続される構成であってもよい。同様に、同図（ｂ）に示した顔文字抽出部１３、顔文字意味／強度判定部１４、読み導出部１５、及び読み置換部１６においても図１に示した１つの情報処理装置上に構成されるものに限定されない。顔文字抽出部１３と顔文字意味／強度判定部１４と読み導出部１５と読み置換部１６とが互いにネットワーク等の通信回線で接続された構成（例えばクライアント・サーバモデル等）によっても実現可能である。
【００２５】
本実施例に係るテキスト音声出力装置の各部の処理を説明する前に、テキストデータが入力されてから音声として出力されるまでのデータの流れについて簡単に説明する。
図３は、本実施例に係るテキスト音声変換装置とデータの流れを示す図である。
【００２６】
テキスト入力部２０に入力されるテキストデータは、電子メール等に記載されている文章である。この文章中には用件等を伝達するために使用している通常の文書（文字列）と、様々な文字列の組み合わせからなる顔文字と含まれている。このテキストデータは、テキスト入力部２０に入力されると顔文字を抽出する処理を行なう顔文字抽出部１３と、顔文字を読みに置換する処理を行なう読み置換部１６とに送られる。
【００２７】
顔文字抽出部１３に入力されたテキストデータからは、顔文字についての情報（後述の個別顔文字バッファ２１及び結合顔文字バッファ２２）が作成され、顔文字意味／強度判定部１４に送られる。顔文字意味／強度判定部１４では、顔文字情報に応じた意味（感情等）とその強度（強弱）が判定され、判定結果が顔文字情報に付加されて読み導出部１５に送られる。さらに、読み導出部１５に入力された顔文字情報は、顔文字意味／強度判定部１４で判定された情報を元に読みが導出され、その導出された結果が付加される。
【００２８】
読み置換部１６において、テキスト入力部２０に入力されたテキストデータに含まれる顔文字は、読み導出部１５から出力された顔文字情報に基づいて読みに変換されて音声合成部１２に出力されることとなる。
【００２９】
図４は、本実施例に係る顔文字抽出部１３、顔文字意味／強度判定部１４、及び読み導出部１５において使用する表の一例を示している。
同図（ａ）は、顔文字部品表の一例を示している。顔文字抽出部１３においてテキストデータから顔文字を抽出するために使用される。同図は、顔文字に使用される「左目」、「右目」、「顔の左側」、「顔の右側」、「顔の両側」の各部品に対応する文字を表にしたものである。例えば、同表にある「＾」が顔文字を構成する文字列にある場合には、「左目」又は「右目」の部品と判断する。同様に「（」が顔文字を構成する文字列にある場合には、「顔の左側」の部品と判断する。
【００３０】
同図（ｂ）は、顔部品意味表の一例を示している。顔文字意味／強度判定部１４において顔文字抽出部１３から抽出された顔文字から顔文字の意味（感情等）を判断するために使用される。同図は、「喜び目」、「喜び口」、「怒り目」、「怒り口」、「悲しみ目」を表す文字を表にしたものである。例えば、同表にある「＾」が顔文字を構成する文字列に含まれている場合には、その顔文字は喜びの意味（感情等）を表していると判断する。同様に、「；」が顔文字を構成する文字列に含まれている場合には、その顔文字は悲しみの意味（感情等）を表していると判断する。
【００３１】
同図（ｃ）は、口文字強度表の一例を示している。顔文字意味／強度判定部１４において顔文字抽出部１３から抽出された顔文字から顔文字の意味（感情等）の強度（強弱）を判断するために使用される。顔文字の意味の強度を「大」、「中」、「小」の３段階に分け、各意味の強度を表す口文字を表にしたものである。例えば、同表にある「Ｏ」は大きな口を表しているので意味の強度が「大」であると判断する。また、同様に、「．」は閉じている口を表しているので意味の強度が「小」であると判断する。
【００３２】
同図（ｄ）は、顔文字意味決定表の一例を示している。顔文字意味／強度判定部１４において、同図（ｂ）の判断結果から顔文字の意味（感情等）を決定するために使用される。同図は、顔文字を構成する「目」及び「口」の文字が表す感情と、それに対応する「意味」とを表にしたものである。例えば、顔文字「＾▽＾」は、同図（ｂ）から「喜び口」を表す文字と、「喜び目」を表す文字列とから構成されていることがわかるので、この顔文字の意味は「喜び」と判断する。また、顔文字「｀▽´」は、同図（ｂ）から「怒り目」を表す文字と、「喜び口」を表す文字とで構成されているが、この場合には口文字が表す意味を優先させて顔文字の意味は「喜び」と判断する。
【００３３】
ここで、同図（ｄ）に示した顔文字意味決定表はあらかじめ作成したものを使用してもよいし、顔部品の意味に対して重み付けをするなどして数値的に意味を決定するようにしても良い。例えば、顔文字「｀▽´」の場合では、同図（ｂ）から「怒り目」を表す文字の場合は３、「喜び口」を表す文字の場合は５とすると「喜び口」の方が重みが大なので、口文字が表す意味を優先させて顔文字の意味は「喜び」と判断するようにしてもよい。
【００３４】
同図（ｅ）は、読み上げ表の一例を示している。読み導出部１５において、同図（ｃ）及び同図（ｄ）の結果から顔文字に対応する読みを決定するために使用される。同表は、同図（ｃ）の判断結果である顔文字の意味の「強度」と、同図（ｄ）の判定結果である「意味」と、によって決まる「読み」を表にしたものである。例えば、顔文字「＾▽＾」の場合には、同図（ｃ）から意味の強度が「大」と判断され、同図（ｄ）から意味が「喜び」と判断されるので、読みは「わーい」となる。
【００３５】
なお、図４（ａ）から（ｅ）に示した表の要素（例えば同図（ａ）における「左目」に対応する文字）は、説明を簡単にするために要素数を小さくしたものであって同図に示した要素に限定されない。また、同図（ｃ）及び（ｅ）に示した本実施例に係る強度は３段階としたが、これに限定されない。例えば、５段階であってもよい。さらに、同図（ｄ）に示した意味（例えば、平静や喜び、怒り等）についても同図に示した言葉に限定するものではなく、必要に応じて適切な意味を与えればよい。同図（ｅ）の意味に対応する読み（例えば、意味が喜び、強度が大の場合の読み「わーい」等）についても、同図に示した表現に限定されるものではなく、必要に応じて適切な表現を与えればよい。
【００３６】
図５は、図２に示した本実施例に係る顔文字読み導出部１１における処理についての概要を示すフローチャートである。
顔文字読み導出部１１にテキストデータが入力されて顔文字読み導出処理が開始されると（ステップＳ５０１）、ＣＰＵは顔文字抽出部１３においてテキストデータに含まれる各顔文字を顔文字部品表に基づいて抽出し、例えばメモリ２上に領域を確保された個別顔文字バッファ２１（図６（ａ）を参照）に所定の情報とともに格納する。
【００３７】
テキストデータに含まれる顔文字が全て抽出されると、ステップＳ５０３において、ＣＰＵは個別顔文字バッファ２１に格納されている顔文字のうちテキストデータ内では連続して記載されていた顔文字を判別して結合し、所定の情報と共にメモリ２に領域が確保されている結合顔文字バッファ２２（図６（ｂ）を参照）に格納する。
【００３８】
顔文字意味／強度判定部１４において、ＣＰＵは個別顔文字バッファ２１に格納されている顔文字について、顔部品意味表、口文字強度表、及び顔文字意味決定表に基づいて意味及び強度を決定し、その結果を個別顔文字バッファ２１に追加する（ステップＳ５０４）。
【００３９】
読み導出部１５において、ＣＰＵは個別顔文字バッファ２１を参照して各顔文字の意味及び強度を読出し、読み上げ表に基づいて読みを決定し、その結果を個別顔文字バッファ２１に格納する（ステップＳ５０５）。
【００４０】
読み置換部１６において、ＣＰＵは個別顔文字バッファ２１から各顔文字に応じた読みを読み出してテキストデータの顔文字部分と置き換えて出力テキストを作成する（ステップＳ５０７）。
【００４１】
図６は、本実施例に係る顔文字読み導出部１１における顔文字読み導出処理で使用する個別顔文字バッファ及び結合顔文字バッファの構成例を示す図である。
同図（ａ）は、個別顔文字バッファ２１の構成例を示す図である。同図に示す個別顔文字バッファ２１は、テキストデータに含まれる顔文字に付す顔文字番号と、顔文字を構成する顔文字列と、顔文字がテキストデータの何文字目から記載されているかを示す開始文字位置と、顔文字がテキストデータの何文字目で終了するかを示す終了文字位置と、顔文字の意味と、顔文字の強度と、顔文字に応じた読みとによって構成されている。
【００４２】
同図（ｂ）は、結合顔文字バッファ２２の構成例を示す図である。同図に示す結合顔文字バッファ２２は、テキストデータに含まれる顔文字番号と、個別顔文字バッファ２１に格納されている顔文字を結合して作成した結合顔文字と、結合顔文字が個別顔文字バッファ２１における顔文字の何番目から結合を開始したものかを示す開始顔文字番号と、結合顔文字が個別顔文字バッファ２１における顔文字の何番目までを結合したものかを示す終了顔文字番号と、結合顔文字の読みとによって構成されている。
【００４３】
顔文字抽出部１３における処理は、（１）顔文字の両目の位置を特定する両目位置特定処理と、（２）顔文字領域の境界を特定する境界特定処理と、（３）個別の顔文字を特定した後に隣接した顔文字を結合する結合処理との３つの処理で構成される。
【００４４】
上記（１）から（３）の処理をそれぞれ図７から図９のフローチャートに示し、各図に基づいて顔文字抽出部１３での処理について説明する。
図７は、本実施例に係る顔文字抽出部１３での顔文字導出処理において、両目位置特定処理を示すフローチャートである。
【００４５】
顔文字抽出部１３にテキストデータが入力されると、ＣＰＵは両目位置特定処理を開始し（ステップＳ７０１）、本実施例に係る処理に必要な変数（例えば走査ポインタ用の変数ｐ、右又は左目候補文字用の変数Ｅｙｅ、非記号カウント用の変数ｎｏｔＳｉｇｎＣｎｔなど）のための領域をメモリ２上に確保する。
【００４６】
両目位置特定処理が開始されると、ＣＰＵは入力されたテキストデータの左端（テキストデータが格納されているメモリの先頭アドレス）に走査ポインタｐをセットする（ステップＳ７０２）。
【００４７】
次に、ＣＰＵは右目又は左目の候補文字を格納するＥｙｅをｎｕｌｌ文字で初期化し（ステップＳ７０３）、さらに非記号をカウントするための変数ｎｏｔＳｉｇｎＣｎｔを数値０で初期化する（ステップＳ７０４）。
【００４８】
ステップＳ７０２からＳ７０４での初期化処理が終了すると、ＣＰＵは走査ポインタｐがテキストデータの末尾であるかをチェックし（ステップＳ７０５）、走査ポインタｐがテキストデータの末尾である場合には処理を終了する（ステップＳ７０６）。
【００４９】
ステップＳ７０５において、ＣＰＵが走査ポインタｐはテキストデータの末尾でないと判断すると、ステップＳ７０７に処理を移行し、走査ポインタｐの示す文字が右目を表す文字であるかを判別する処理を行なう。
【００５０】
ステップＳ７０７において、ＣＰＵは、メモリ２上にあらかじめ展開された、図４（ａ）に示した顔文字部品表の「右目」に対応する文字について順次参照して変数Ｅｙｅにコピーし、走査ポインタｐが示す文字と比較する処理を行なう。走査ポインタｐの示す文字が、顔文字部品表の「右目」に対応する文字と一致しない場合には、ステップＳ７０８に処理を移行して走査ポインタｐをインクリメントし、走査ポインタｐが示す文字列の次の文字列が格納されているアドレスを指し示すようにする。
【００５１】
以上に説明したステップＳ７０５からステップＳ７０８を繰り返すことによってテキストデータに含まれた顔文字を構成する右目の文字を特定する。
ステップＳ７０７において、テキストデータに含まれた顔文字を構成する右目の文字が特定されると、ＣＰＵは現在の走査ポインタｐを一時記憶用の変数ｐｓにコピーし（ステップＳ７０９）、右又は左目候補文字用変数Ｅｙｅをｎｕｌｌ文字によって再度初期化し、走査ポインタｐをインクリメントして次の文字が格納されているアドレスを指し示すようにする（ステップＳ７１１）。
【００５２】
ステップＳ７１１の処理を行なった後に、ＣＰＵは走査ポインタｐがテキストデータの末尾を示しているかをチェックする（ステップＳ７１２）。走査ポインタｐがテキストデータの末尾を示している場合には処理を終了する（ステップＳ７１３）。
【００５３】
ステップＳ７１２において、走査ポインタｐがテキストデータの末尾を示していない場合には処理が続行され、ＣＰＵはステップＳ７１４に処理を移行する。そして、図４（ａ）に示した顔文字部品表の「左目」に対応する文字について順次参照して変数Ｅｙｅにコピーし、走査ポインタｐが示すアドレスに格納されている文字と比較する処理を行なう。ここで、走査ポインタｐが示す文字が左目である場合には、ＣＰＵはステップＳ７１５に処理を移行し、現在の走査ポインタｐを一時記憶用変数ｐｅにコピーする。
【００５４】
以上の処理によって、顔文字の両目の位置が特定され、各目の位置は各一時記憶用変数ｐｓ及び変数ｐｅに格納されたことになる。ＣＰＵは、Ｓ７１６に処理を移行し、顔文字の境界を特定する処理（図８を参照）を行なうこととなる。
【００５５】
ステップＳ７１４において、走査ポインタｐが示す文字が左目でない場合には、ＣＰＵはステップＳ７１７に処理を移行し、走査ポインタｐが示す文字と記号とを比較する。ここで、記号とは、顔文字を構成するために必要な文字であって、一部のかな、カタカナ、漢字、例えばかな文字の「へ」などは除いた、かな、カタカナ、漢字等以外の記号を表す文字のことである。例えば、顔文字に使用される「（」や「＾」などである。したがって、図４（ａ）から（ｃ）に示した表に使用されている文字と走査ポインタｐとを順次比較し、一致するものがなければ走査ポインタｐが示す文字は記号でないと判断することができる。あるいは、記号用のデータを別途用意しておいて順次走査ポインタｐが示す文字と比較してもよい。
【００５６】
ステップＳ７１７において、ＣＰＵは走査ポインタｐが示す文字が記号であると判断するとステップＳ７１１に処理を移行する。そして、以上に説明したステップＳ７１１からステップＳ７１７を繰り返すことによって顔文字の左目を特定する。
【００５７】
さらに、ステップＳ７１７において、ＣＰＵは走査ポインタｐが示す文字が記号でないと判断すると、ステップＳ７１８に処理を移行して非記号をカウントするための変数ｎｏｔＳｉｇｎＣｎｔをインクリメントする処理を行ない、変数ｎｏｔＳｉｇｎＣｎｔがＬ以上かを判別する（ステップＳ７１９）。
【００５８】
ここで、上述のＬは、顔文字を構成する両目の間に存在可能な記号以外の文字数を示している。したがって、ＣＰＵは変数ｎｏｔＳｉｇｎＣｎｔがＬ以上である場合には、変数ｐｓが示す位置の文字は右目ではないと判断して、処理をステップＳ７２０に移行する。ステップＳ７２０において、ＣＰＵは変数ｐｓが示す位置の次の文字のアドレスを走査ポインタｐに代入し、処理をステップＳ７０３に移行する。したがって、ＣＰＵは再度顔文字の右目を特定する処理から開始することとなる。
【００５９】
ステップＳ７１９において、変数ｎｏｔＳｉｇｎＣｎｔがＬ以上でない場合には、ＣＰＵは処理をステップＳ７１１に移行し、以上に説明したステップＳ７１１からステップＳ７１７を繰り返すことによって顔文字の左目を特定する。
【００６０】
以上に説明した図４（ａ）には、連想記憶配列（ハッシュ）を使用してもよい。この場合には、ステップＳ７０７で特定した右目を表す文字を連想記憶配列の「キー」として、右目を表す文字に対応する左目を表す文字を連想記憶配列の「値」とすればよい。したがって、図７に示したフローチャートのステップＳ７１０において、ＣＰＵがメモリ２上に展開された連想記憶配列から、ステップＳ７０７で特定した右目を表す文字に対応する左目を表す文字を取り出し、変数Ｅｙｅに代入し、ステップＳ７１４において走査ポインタｐが示す文字と変数Ｅｙｅに格納されている文字とを比較することとなる。
【００６１】
図７に示した目位置特定処理によって、顔文字抽出部１３に入力されたテキストデータに含まれる顔文字の目の位置が特定され、左目及び右目を表す文字の位置（アドレス）はそれぞれメモリ２上に確保された変数ｐｓ及び変数ｐｅに格納される。そして、図８に示す顔文字境界特定処理が開始されることとなる。
【００６２】
図８は、本実施例に係る顔文字抽出部１３での顔文字導出処理において、顔文字の境界を特定する処理を示すフローチャートである。
顔文字境界特定処理が開始されると（ステップＳ８０１）、ＣＰＵは、顔文字の右目の位置（アドレス）が格納されているメモリ２上の変数ｐｓを参照し、走査ポインタｐにコピーする（ステップＳ８０２）。
【００６３】
そして、変数ｐが示す文字が入力テキストの左端（入力テキストの先頭アドレス）かをチェックし（ステップＳ８０３）、入力テキストの左端である場合には、変数ｐが示す文字が顔文字の右側の輪郭と判断し、処理をステップＳ８０７に移行する。
【００６４】
ステップＳ８０３において、変数ｐが示す文字が入力テキストの左端でない場合には、ＣＰＵは処理をステップＳ８０４に移行して、現在走査ポインタｐが示している文字より１文字だけ入力テキストの先頭側の文字の位置（アドレス）を走査ポインタｐに格納する（走査ポインタｐを１文字戻す）処理を行なう。
【００６５】
そして、ＣＰＵは、図４（ａ）に示した顔文字部品表の「顔の右側」に対応する文字を順次参照し、走査ポインタｐが示す文字と比較する処理を行なう（ステップＳ８０５）。走査ポインタｐが示す文字が、同表に示した「顔の右側」に対応する文字と一致した場合には、ＣＰＵは走査ポインタｐが示す文字を顔文字の右側であると判断し、ステップＳ８０３の処理に移行してさらに右側に顔文字を構成する文字がないかをチェックする。
【００６６】
以上のステップＳ８０３からＳ８０５の処理を繰り返すことによって、顔文字を構成する最も右側の文字（顔文字の右側の境界文字）を特定することとなる。
ステップＳ８０５において、ＣＰＵは走査ポインタｐが示す文字が顔文字の右側部分でないと判断すると、ステップＳ８０６に処理を移行し、現在走査ポインタｐが示している文字より１文字だけ入力テキストの後尾側の文字の位置（アドレス）を走査ポインタｐに格納する（走査ポインタｐを１文字進める）処理を行なう。
【００６７】
ステップＳ８０７において、ＣＰＵは、顔文字の右側境界文字の位置情報（アドレス）が格納されている走査ポインタｐの値を一時記憶用変数ｐｓに退避する。そして、顔文字の左目の位置（アドレス）が格納されているメモリ２上の変数ｐｅを参照し、走査ポインタｐにコピーする（ステップＳ８０８）。
【００６８】
そして、変数ｐが示す文字が入力テキストの末尾（入力テキストの最後尾のアドレス）かをチェックし（ステップＳ８０９）、入力テキストの末尾である場合には、変数ｐが示す文字が顔文字の左側の輪郭と判断し、処理をステップＳ８１３に移行する。
【００６９】
ステップＳ８０９において、変数ｐが示す文字が入力テキストの末尾でない場合には、ＣＰＵは処理をステップＳ８１０に移行して、現在走査ポインタｐが示している文字より１文字だけ入力テキストの末尾の文字の位置（アドレス）を走査ポインタｐに格納する（走査ポインタｐを１文字進める）処理を行なう。
【００７０】
そして、ＣＰＵは、図４（ａ）に示した顔文字部品表の「顔の左側」に対応する文字を順次参照し、走査ポインタｐが示す文字と比較する処理を行なう（ステップＳ８１１）。
走査ポインタｐが示す文字が、同表に示した「顔の左側」に対応する文字と一致した場合には、ＣＰＵは走査ポインタｐが示す文字を顔文字の左側であると判断し、ステップＳ８０９の処理に移行してさらに左側に顔文字を構成する文字がないかをチェックする。
【００７１】
以上のステップＳ８０９からＳ８１１の処理を繰り返すことによって、顔文字を構成する最も左側の文字（顔文字の左側の境界文字）を特定することとなる。
ステップＳ８１１において、ＣＰＵは走査ポインタｐが示す文字が顔文字の左側部分でないと判断すると、ステップＳ８１２に処理を移行し、現在走査ポインタｐが示している文字より１文字だけ入力テキストの先頭側の文字の位置（アドレス）を走査ポインタｐに格納する（走査ポインタｐを１文字戻す）処理を行なう。
【００７２】
ステップＳ８１３において、ＣＰＵは、顔文字の左側境界文字の位置情報（アドレス）が格納されている走査ポインタｐの値を一時記憶用変数ｐｅに退避して、顔文字境界特定の処理が終了する（ステップＳ８１４）。
【００７３】
以上に説明した両目位置特定処理（図７）及び顔文字境界特定処理（図８）を、顔文字読み導出部１１に入力されたテキストデータの最後まで行なうことによって、テキストデータに含まれる個別の顔文字が全て抽出されることとなる。
【００７４】
なお、図７及び図８に示した処理によって抽出された顔文字の右側境界文字の位置情報（図８に示す変数ｐｓ：開始文字位置）及び左側境界文字の位置情報（図８に示す変数ｐｅ：終了文字位置）は、図６（ａ）に示した個別顔文字バッファ２１の開始文字位置及び終了文字位置にそれぞれ格納される。また、抽出された顔文字は、図６（ａ）に示した個別顔文字バッファ２１の顔文字列の領域に格納される。
【００７５】
以上に説明した処理によって、入力されたテキストデータに含まれる顔文字に関する情報が図６（ａ）に示した個別顔文字バッファ２１に格納される。そして、顔文字バッファ２１の格納されている情報に基づいて、隣接した顔文字を結合する処理（顔文字結合処理）が行なわれる。
【００７６】
図９は、本実施例に係る顔文字抽出部１３での顔文字導出処理において、隣接した顔文字を結合する処理を示すフローチャートである。
ＣＰＵは、顔文字結合処理に必要な変数領域（例えば、顔文字数ｎｆｍ、注目顔文字番号ｉ、結合顔文字開始位置ｐｓｊ等）をメモリ上に確保した後、顔文字結合処理を開始し（ステップＳ９０１）、メモリ２上に展開されている個別顔文字バッファ２１の顔文字番号の領域を参照して、顔文字の総数（顔文字数）を保持する変数ｎｆｍに顔文字の総数をコピーする（ステップＳ９０２）。
【００７７】
ステップＳ９０３において、ＣＰＵは変数ｎｆｍと定数１とを比較し、変数ｎｆｍが１以上でない場合には顔文字が存在しないと判断して処理を終了する（ステップＳ９０４）。
【００７８】
ステップＳ９０３において、変数ｎｆｍが１以上であると場合には、ＣＰＵはステップＳ９０５に処理を移行する。ステップＳ９０５において、ＣＰＵは、図６（ａ）に示した個別顔文字バッファ２１における顔文字番号のうち、現在処理対象の顔文字番号（注目顔文字番号）を示す変数ｉを１に初期化する。
【００７９】
ここで、以下の説明では、図６（ａ）に示した個別顔文字バッファ２１におけるｉ番目（顔文字番号がｉ）の顔文字の開始文字位置を表す変数をｐｓ［ｉ］、終了文字位置を表す変数をｐｅ［ｉ］と表し、同図（ｂ）に示した結合顔文字バッファ２２におけるｊ番目（顔文字番号がｊ）の顔文字開始文字位置を示す変数をｐｓｓ［ｊ］、終了文字位置を示す変数をｐｅｅ［ｊ］として説明を行なう。
【００８０】
ステップＳ９０６において、ＣＰＵは、結合対象の顔文字の開始位置を示す変数ｐｓｊを変数ｐｓｓ［ｊ］にセットする。
そして、変数ｉと変数ｎｆｍとを比較し、変数ｉが変数ｎｆｍより小くない場合には、個別顔文字バッファ２１に格納されている全ての顔文字について処理を終了したと判断し、ステップＳ９１０に処理を移行する。
【００８１】
ステップＳ９０７において、変数ｉが変数ｎｆｍより小さい場合には、ＣＰＵの処理はステップＳ９０８に移行し、個別顔文字バッファ２１に格納されている顔文字と顔文字との距離を比較する。すなわち、ｉ番目の顔文字の終了位置を示す変数ｐｅ［ｉ］とｉ＋１番目の顔文字の開始位置を示す変数ｐｓ［ｉ＋１］との差の値と、結合する顔文字間の距離を示す変数Ｄの値とを比較する。
【００８２】
ＣＰＵは、変数ｐｅ［ｉ］と変数ｐｓ［ｉ＋１］との差が、変数Ｄより大きい場合には、隣り合ったｉ番目の顔文字とｉ＋１番目の顔文字とは独立した顔文字と判断し、結合する顔文字の終了位置（結合顔文字終了位置）を示す変数ｐｅｊに変数ｐｅ［ｉ］の値をコピーして、処理をステップＳ９１０に移行する。
【００８３】
ステップＳ９０８において、ＣＰＵは、変数ｐｅ［ｉ］と変数ｐｓ［ｉ＋１］との差が変数Ｄ以下の場合には、隣り合ったｉ番目の顔文字とｉ＋１番目の顔文字とが１つの顔文字であると判断し、処理をステップＳ９０９に移行する。
【００８４】
ステップＳ９０９において、ＣＰＵは、変数ｉをインクリメントして処理をステップＳ９０７に移行する。
以上に説明したように、ステップＳ９０７からＳ９０９の処理を繰り返すことによって、１つの顔文字として結合する顔文字の範囲を検索することとなる。
【００８５】
ステップＳ９１０において、ＣＰＵは変数ｐｅｅ［ｊ］に結合顔文字終了位置ｐｅｊをコピーし、処理を終了する（ステップＳ９１１）。
以上に説明した顔文字結合処理が、個別顔文字バッファ２１に格納された全ての顔文字情報について行なわれる。
【００８６】
以上に説明したように、顔文字抽出部１３では顔文字の目を表す文字に基づいて顔文字の位置を特定した後に、顔文字の輪郭を識別することによって、様々な文字の組み合わせパターンからなる顔文字が含まれる文章であっても、顔文字を認識することが可能となる。
【００８７】
図７から図９に示した顔文字抽出部１３による処理によって、入力されたテキストデータから顔文字が抽出されると、ＣＰＵは、顔文字意味／強度判定処理を開始する。
図１０は、本実施例に係る顔文字意味／強度判定処理を示すフローチャートである。
【００８８】
顔文字意味／強度判定処理を開始すると（ステップＳ１００１）、ＣＰＵは初期化処理を開始する。
ステップＳ１００２において、ＣＰＵは、図６（ａ）に示した個別顔文字バッファ２１を参照し、顔文字列が格納されているアドレスを走査ポインタｐにセットする（顔文字の右端に走査ポインタｐをセットする）。
【００８９】
さらに、ステップＳ１００３〜Ｓ１００４において、ＣＰＵは、顔文字を構成する目が表す意味（図４（ｂ）に示した意味）を格納する変数である目意味フラグｆＥｙｅをｎｏ＿ｅｙｅにセットし（ステップＳ１００３）、口が表す意味（図４（ｂ）に示した意味）を格納する変数である口意味フラグｆＭｏｕｔｈをｎｏ＿ｍｏｕｔｈにセットする（ステップＳ１００４）。
【００９０】
さらに、ステップＳ１００５において、顔文字が構成する口が表す意味の強度（図４（ｃ）に示した強度）を格納するための変数である口意味強度フラグｆＳｔｒｅｎｇｔｈをｎｏ＿ｓｔｒｅｎｇｔｈにセットし、顔文字の意味（図４（ｄ）に示した意味）を格納するための変数である顔文字意味フラグｆＭｅａｎをｎｏ＿ｍｅａｎにセットする。
【００９１】
ここで、上述のｎｏ＿ｅｙｅ、ｎｏ＿ｍｏｕｔｈ、ｎｏ＿ｓｔｒｅｎｇｔｈ、ｎｏ＿ｍｅａｎは、該当するデータが存在しないことを示すための値又は文字列である。したがって、例えば、−１やｎｕｌｌ文字等を使用すればよい。
【００９２】
以上に説明したステップＳ１００２からＳ１００６の処理によって初期化処理が終了すると、ＣＰＵはステップＳ１００７に処理を移行する。
ステップＳ１００７において、ＣＰＵは、走査ポインタｐが示す文字が顔文字の末尾であるかをチェックし、走査ポインタｐが示す文字が顔文字の末尾である場合にはステップＳ１０１５に処理を移行する。
【００９３】
また、走査ポインタｐが示す文字が顔文字の末尾でない場合には、ＣＰＵはステップＳ１００８に処理を移行する。ステップＳ１００８において、ＣＰＵは、図４（ｂ）に示した顔部品意味表の目文字を順次参照し、走査ポインタｐが示す文字と比較する。そして、走査ポインタｐが示す文字と顔部品意味表の目文字とが一致した場合には、ＣＰＵはステップＳ１００９に処理を移行し、該当する意味を顔部品意味表から参照し、目意味フラグｆＥｙｅにセットする。
【００９４】
同様に、ステップＳ１０１０において、ＣＰＵは、図４（ｂ）に示した顔部品意味表の口文字を順次参照し、走査ポインタｐが示す文字と比較する。そして、走査ポインタｐが示す文字と顔部品意味表の口文字とが一致した場合には、ＣＰＵはステップＳ１０１１に処理を移行し、該当する意味を顔部品意味表から参照し、口意味フラグｆＭｏｕｔｈにセットする。
【００９５】
また、ステップＳ１０１２において、ＣＰＵは、図４（ｃ）に示した口文字強度表の口文字を順次参照し、走査ポインタｐが示す文字と比較する。そして、走査ポインタｐが示す文字と口文字強度表の口文字とが一致した場合には、ＣＰＵはステップＳ１０１３に処理を移行し、該当する強度を口文字強度表から参照し、口文字強度フラグｆＳｔｒｅｎｇｔｈにセットする。
【００９６】
ステップＳ１００８、Ｓ１０１０及びＳ１０１２のいずれの条件にも該当しない場合、又は、ステップＳ１００９、Ｓ１０１１及びＳ１０１３のいずれかの処理が実施されると、ＣＰＵはステップＳ１０１４に処理を移行し、走査ポインタｐを１文字分進め（顔文字を構成する次の文字が格納されているアドレスをセットし）、ステップＳ１００７に処理を移行する。
【００９７】
以上に説明したステップＳ１００７からステップＳ１００４を繰り返すことによって、顔文字の意味及び強度を示す変数（目意味フラグｆＥｙｅ、口意味フラグｆＭｏｕｔｈ、及び口意味強度フラグｆＳｔｒｅｎｇｔｈ）が決定され、ステップＳ１０１５に処理が移行する。
【００９８】
ステップＳ１０１５において、ＣＰＵは、図４（ｄ）に示した顔文字意味決定表を参照し、変数ｆＥｙｅ及び変数ｆＭｏｕｔｈが示す意味に対応する顔文字の意味を取りだし、顔文字意味フラグｆＭｅａｎにセットして処理を終了する（ステップＳ１０１６、ステップＳ１０１７）。
【００９９】
以上に説明した処理によって、顔文字を顔文字が表す意味（感情等）に応じた適切な言葉で表現することが可能となる。
以上に説明した顔文字意味／強度判定部１４の処理によって、各顔文字の意味及び強度が確定すると、読み導出部１５によって各顔文字に応じた読みが決定される。
【０１００】
図１１は、本実施例に係る読み導出部１５における読み導出処理を示すフローチャートである。
読み導出処理が開始されると（ステップＳ１１０１）、ＣＰＵはステップＳ１１０２からＳ１１０６に示すループ処理によって、個別顔文字バッファ２１に格納されているそれぞれの顔文字に応じた読みを決定する。
【０１０１】
ステップＳ１１０３において、ＣＰＵは、個別顔文字バッファ２１を参照し、意味及び強度を読み出す。そして、図４（ｅ）に示した読み上げ表を参照し、個別顔文字バッファ２１から読み出した意味及び強度に対応する読み上げ文字列を得て、変数ｙｏｍｉに格納する（ステップＳ１１０４）。さらに、ＣＰＵは図６（ａ）に示した個別顔文字バッファ２１の読みを格納する領域に変数ｙｏｍｉに格納した読み上げ文字列を格納する（ステップＳ１１０５）。
【０１０２】
以上に説明したステップＳ１１０３からステップＳ１１０５の処理を、個別顔文字バッファ２１に格納されている全ての顔文字に対して行なう。
以上の処理によって、個別顔文字バッファ２１に格納されているそれぞれの顔文字に応じた読みが決定されると、ＣＰＵはステップＳ１１０８からＳ１１１２に示すフープ処理によって、結合顔文字バッファ２２に格納されているそれぞれの顔文字に応じた読みを決定（結合）する。
【０１０３】
ステップＳ１１０７において、ＣＰＵは結合顔文字バッファ２２に格納された顔文字に対応する読みを格納する変数である読み上げ文ｙｏｍｉａｇｅをｎｕｌｌ文字で初期化する。
【０１０４】
ステップＳ１１０９において、ＣＰＵは、結合顔文字バッファ２２に格納されている開始顔文字番号及び終了顔文字番号を参照し、個別顔文字バッファ２１に格納されている該当する顔文字の読みを、該当する開始顔文字番号から終了顔文字番号まで順次参照し（ステップＳ１１１０）、変数ｙｏｍｉａｇｅに追加（結合）していく（ステップＳ１１１１）。
【０１０５】
ＣＰＵは、以上に説明したステップＳ１１０９からステップＳ１１１１の処理を、結合顔文字バッファ２２に格納された全ての結合顔文字に対して行なうことによって、結合顔文字バッファ２２に格納されている結合顔文字に応じた読みを確定することとなる。
【０１０６】
以上に説明したように、テキストデータに近接して記載された複数の顔文字（互いに関連した複数の顔文字）がある場合には、それら複数の顔文字を１つの顔文字として認識することが可能となり、さらに、その顔文字が表現する意味を適切な言葉に置き換えることが可能となる。
【０１０７】
図１２は、図６に示した個別顔文字バッファ２１及び結合顔文字バッファ２２に対して図１０に示した顔文字意味／強度判定処理及び図１１に示した読み導出処理を行なった後の個別顔文字バッファ２１及び結合顔文字バッファ２２を示している。
【０１０８】
例えば、顔文字抽出部１３にテキストデータ「（＊＾＾）人（￣−￣）人（＾＾＊）楽しいな〜。」が入力されると、ＣＰＵは、図７から９に示した顔文字抽出処理によって、メモリ２上に展開されている個別顔文字バッファ２１の各領域に顔文字番号、顔文字列（例えば、「（＊＾＾）」等）、開始文字位置、及び終了文字位置を格納し、結合顔文字バッファ２２の各領域に顔文字番号、結合顔文字（例えば、「（＊＾＾）人（￣−￣）人（＾＾＊）」）、開始顔文字番号、及び終了顔文字番号を格納する。
【０１０９】
次に、ＣＰＵは、顔文字意味／強度判定部１４において図１０に示した顔文字意味／強度判定処理を行ない、個別顔文字バッファ２１に格納されているそのぞれの顔文字に応じた意味（例えば、「喜」等）及び強度（例えば、「小」等））を格納する。
【０１１０】
さらに、ＣＰＵは、読み導出部１５において、図１１に示した読み導出処理を行ない、まず個別顔文字バッファ２１に格納されているそれぞれの顔文字に応じた読み（例えば、「うふふ」等）を格納し、個別顔文字バッファ２１に基づいて結合顔文字バッファ２２に格納されているそれぞれの結合顔文字に対する読み（例えば、「うふふ、うふふ、うふふ」等）を格納する。
【０１１１】
（付記１）  文字列の組み合わせからなる顔文字を含むテキストデータを音声として出力する処理をコンピュータに実行させるためのプログラムであって、
前記顔文字を構成する部品文字と該部品文字の前記顔文字に対する位置とを関連づけた顔文字部品辞書に基づいて、入力されたテキストデータから顔文字を抽出する顔文字抽出ステップと、
該顔文字抽出ステップで抽出された顔文字に対応する読みを導出する読み導出ステップと、
前記入力されたテキストデータにおける前記顔文字抽出ステップで抽出された顔文字を、前記読み導出ステップで導出された読みに置換する読み置換ステップと、
該読み置換ステップにて得られた置換後のテキストデータを音声に変換して出力する音声出力ステップと、
を有することを特徴とするテキスト音声出力プログラム。
【０１１２】
（付記２）  文字列の組み合わせからなる顔文字を含むテキストデータを音声として出力する処理をコンピュータに実行させるためのプログラムであって、
入力されたテキストデータから顔文字を抽出する顔文字抽出ステップと、
該顔文字抽出ステップによって抽出した前記顔文字の部品文字と該部品文字が表す意味とを関連づけた顔部品意味辞書に基づいて前記部品文字に対する意味を決定し、前記部品文字と該部品文字が表す意味の強度とを関連づけた顔部品強度辞書に基づいて前記部品文字の意味に対する強度を決定し、前記部品文字が表す意味と前記顔文字が表す意味とを関連づけた顔文字意味決定辞書に基づいて前記部品文字に対する意味から前記顔文字の意味を決定する顔文字意味強度判定ステップと、
該顔文字意味強度判定ステップによって決定された前記顔文字に対する意味と該意味の強度とに応じた感情を文字で表現する読み導出ステップと、
前記入力されたテキストデータにおける前記顔文字抽出ステップで抽出された顔文字を、前記読み導出ステップで導出された読みに置換する読み置換ステップと、
該読み置換ステップにて得られた置換後のテキストデータを音声に変換して出力する音声出力ステップと、
を有することを特徴とするテキスト音声出力プログラム。
【０１１３】
（付記３）  前記顔文字部品辞書は、少なくとも前記顔文字の目を表す部品文字を有し、前記顔文字抽出ステップでは前記目を表す部品文字に基づいて顔文字の輪郭を特定することを特徴とする付記１に記載のテキスト音声出力プログラム。
【０１１４】
（付記４）  前記顔部品強度辞書は、少なくとも前記顔文字の口を表す部品文字を有し、前記強度は、口を表す部品文字と該部品文字が表す意味の強度とを関連づけた顔部品強度辞書に基づいて特定することを特徴とする付記２に記載のテキスト音声出力プログラム。
【０１１５】
（付記５）  文字列の組み合わせからなる顔文字を含むテキストデータを音声として出力する処理をコンピュータに実行させるための方法であって、
前記顔文字を構成する部品文字と該部品文字の前記顔文字に対する位置とを関連づけた顔文字部品辞書に基づいて、入力されたテキストデータから顔文字を抽出する顔文字抽出ステップと、
該顔文字抽出ステップで抽出された顔文字に対応する読みを導出する読み導出ステップと、
前記入力されたテキストデータにおける前記顔文字抽出ステップで抽出された顔文字を、前記読み導出ステップで導出された読みに置換する読み置換ステップと、
該読み置換ステップにて得られた置換後のテキストデータを音声に変換して出力する音声出力ステップと、
を有することを特徴とするテキスト音声出力方法。
【０１１６】
（付記６）  文字列の組み合わせからなる顔文字を含むテキストデータを音声として出力する処理をコンピュータに実行させるための方法であって、
入力されたテキストデータから顔文字を抽出する顔文字抽出ステップと、
該顔文字抽出ステップによって抽出した前記顔文字の部品文字と該部品文字が表す意味とを関連づけた顔部品意味辞書に基づいて前記部品文字に対する意味を決定し、前記部品文字と該部品文字が表す意味の強度とを関連づけた顔部品強度辞書に基づいて前記部品文字の意味に対する強度を決定し、前記部品文字が表す意味と前記顔文字が表す意味とを関連づけた顔文字意味決定辞書に基づいて、前記部品文字に対する意味から前記顔文字の意味を決定する顔文字意味強度判定ステップと、
該顔文字意味強度判定ステップによって決定された前記顔文字に対する意味と該意味の強度とに応じた感情を文字で表現する読み導出ステップと、
前記入力されたテキストデータにおける前記顔文字抽出ステップで抽出された顔文字を、前記読み導出ステップで導出された読みに置換する読み置換ステップと、
該読み置換ステップにて得られた置換後のテキストデータを音声に変換して出力する音声出力ステップと、
を有することを特徴とするテキスト音声出力方法。
【０１１７】
（付記７）  文字列の組み合わせからなる顔文字を含むテキストデータを音声として出力する処理をコンピュータに実行させるためのプログラムを格納したコンピュータ読取り可能な記憶媒体であって、
前記顔文字を構成する部品文字と該部品文字の前記顔文字に対する位置とを関連づけた顔文字部品辞書に基づいて、入力されたテキストデータから顔文字を抽出する顔文字抽出ステップと、
該顔文字抽出ステップで抽出された顔文字に対応する読みを導出する読み導出ステップと、前記入力されたテキストデータにおける前記顔文字抽出ステップで抽出された顔文字を、前記読み導出ステップで導出された読みに置換する読み置換ステップと、
該読み置換ステップにて得られた置換後のテキストデータを音声に変換して出力する音声出力ステップと、
を有することを特徴とするテキスト音声出力プログラムを格納したコンピュータに読取り可能な記録媒体。
【０１１８】
（付記８）  文字列の組み合わせからなる顔文字を含むテキストデータを音声として出力する処理をコンピュータに実行させるためのプログラムを格納したコンピュータ読取り可能な記憶媒体であって、
入力されたテキストデータから顔文字を抽出する顔文字抽出ステップと、
該顔文字抽出ステップによって抽出した前記顔文字の部品文字と該部品文字が表す意味とを関連づけた顔部品意味辞書に基づいて前記部品文字に対する意味を決定し、前記部品文字と該部品文字が表す意味の強度とを関連づけた顔部品強度辞書に基づいて前記部品文字の意味に対する強度を決定し、前記部品文字が表す意味と前記顔文字が表す意味とを関連づけた顔文字意味決定辞書に基づいて、前記部品文字に対する意味から前記顔文字の意味を決定する顔文字意味強度判定ステップと、
該顔文字意味強度判定ステップによって決定された前記顔文字に対する意味と該意味の強度とに応じた感情を文字で表現する読み導出ステップと、
前記入力されたテキストデータにおける前記顔文字抽出ステップで抽出された顔文字を、前記読み導出ステップで導出された読みに置換する読み置換ステップと、
該読み置換ステップにて得られた置換後のテキストデータを音声に変換して出力する音声出力ステップと、
を有することを特徴とするテキスト音声出力プログラムを格納したコンピュータに読取り可能な記録媒体。
【０１１９】
（付記９）  文字列の組み合わせからなる顔文字を含むテキストデータを音声として出力するテキスト音声出力装置において、
前記顔文字を構成する部品文字と該部品文字の前記顔文字に対する位置とを関連づけた顔文字部品辞書と、
該顔文字部品辞書に基づいて、入力されたテキストデータから顔文字を抽出する顔文字抽出部と、
該顔文字抽出部で抽出された顔文字に対応する読みを導出する読み導出部と、
前記入力されたテキストデータにおける前記顔文字抽出部で抽出された顔文字を、前記読み導出部で導出された読みに置換する読み置換部と、
該読み置換部にて得られた置換後のテキストデータを音声に変換して出力する音声出力部と、
を有することを特徴とするテキスト音声出力のための装置。
【０１２０】
（付記１０）  文字列の組み合わせからなる顔文字を含むテキストデータを音声として出力するテキスト音声出力装置において、
入力されたテキストデータから顔文字を抽出する顔文字抽出部と、
該顔文字抽出部によって抽出した前記顔文字の部品文字と該部品文字が表す意味とを関連づけた顔部品意味辞書と、
前記部品文字と該部品文字が表す意味の強度とを関連づけた顔部品強度辞書と、
前記部品文字が表す意味と前記顔文字が表す意味とを関連づけた顔文字意味決定辞書と、
前記顔部品意味辞書に基づいて前記部品文字に対する意味を決定し、前記顔部品強度辞書に基づいて前記部品文字の意味に対する強度を決定し、前記顔文字意味決定辞書に基づいて前記部品文字に対する意味から前記顔文字の意味を決定する顔文字意味強度判定部と、
該顔文字意味強度判定部によって決定された前記顔文字に対する意味と該意味の強度とに応じた感情を文字で表現する読み導出部と、
前記入力されたテキストデータにおける前記顔文字抽出部で抽出された顔文字を、前記読み導出部で導出された読みに置換する読み置換部と、
該読み置換部にて得られた置換後のテキストデータを音声に変換して出力する音声出力部と、
を有することを特徴とするテキスト音声出力のための装置。
【図面の簡単な説明】
【０１２１】
【図１】本実施例に係る情報処理装置の構成例を示す図である。
【図２】本実施例に係るテキスト音声出力装置の構成例を示す図である。
【図３】本実施例に係るテキスト音声変換装置とデータの流れを示す図である。
【図４】本実施例に係る顔文字抽出部、顔文字意味／強度判定部、及び読み導出部において使用する表の一例を示す図である。
【図５】本実施例に係る顔文字読み導出部における処理についての概要を示すフローチャートである。
【図６】本実施例に係る顔文字読み導出処理で使用する個別顔文字バッファ及び結合顔文字バッファの構成例を示す図である。
【図７】本実施例に係る顔文字導出処理の両目位置特定処理を示すフローチャートである。
【図８】本実施例に係る顔文字導出処理の顔文字の境界を特定する処理を示すフローチャートである。
【図９】本実施例に係る顔文字導出処理の隣接した顔文字を結合するする処理を示すフローチャートである。
【図１０】本実施例に係る顔文字意味／強度判定処理を示すフローチャートである。
【図１１】本実施例に係る読み導出処理を示すフローチャートである。
【図１２】本実施例に係る顔文字意味／強度判定処理及び読み導出処理を行なった後の個別顔文字バッファ及び結合顔文字バッファを示す図である。
【符号の説明】
【０１２２】
１      ＣＰＵ
２      メモリ
３      入力装置
４      出力装置
５      外部記憶装置
６      媒体駆動装置
７      可搬記憶媒体
８      ネットワーク接続装置
９      ネットワーク
１０      バス
１１      顔文字読み導出部
１２      音声合成部
１３      顔文字抽出部
１４      顔文字意味／強度判定部
１５      読み導出部
１６      読み置換部
１７      顔文字部品表
１８      顔部品意味表、口文字強度表、顔文字意味決定表
１９      読み上げ表
２０      テキスト入力部
２１      個別顔文字バッファ
２２      結合顔文字バッファ
【図１】
2005284192.tif 000003
【図２】
2005284192.tif 000004
【図３】
2005284192.tif 000005
【図４】
2005284192.tif 000006
【図５】
2005284192.tif 000007
【図６】
2005284192.tif 000008
【図７】
2005284192.tif 000009
【図８】
2005284192.tif 000010
【図９】
2005284192.tif 000011
【図１０】
2005284192.tif 000012
【図１１】
2005284192.tif 000013
【図１２】
2005284192.tif 000014