米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 楽器;音響 -> 沖電気工業株式会社

発明の名称 テキスト音声合成装置
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2002−268665(P2002−268665A)
公開日 平成14年9月20日(2002.9.20)
出願番号 特願2001−69588(P2001−69588)
出願日 平成13年3月13日(2001.3.13)
代理人 【識別番号】100089093
【弁理士】
【氏名又は名称】大西 健治
【テーマコード(参考)】
5B009
5D045
【Fターム(参考)】
5B009 QA14 RD00 VA02 VC02 
5D045 AA07
発明者 佐々木 寛
要約 目的


構成
特許請求の範囲
【請求項1】 日本語テキストデータを解析するためのテキスト解析部と、テキスト解析の結果、顔文字に相当すると判定される部分文字列に顔文字としての読みを付与する顔文字読み付与部と、前記テキスト解析部の解析結果をもとに合成音声を出力する音声合成部からなるテキスト音声合成装置において、前記顔文字読み付与部を、輪郭記号表を用いて、当該記号が顔文字を構成する記号であるか否かを判定する顔文字判定部と、顔文字と判定された顔文字列に対して、特徴記号表を用いて、顔文字に使用されている特徴記号を抽出し、各特徴記号に対応づけられた読み番号を付与する特徴抽出部と、抽出された読み番号に割当てられた読みを出力する読み選択部、とから構成し、顔文字に特徴的な記号の出現数に応じて、当該顔文字列に読みを付与するようにしたことを特徴とするテキスト音声合成装置。
【請求項2】 日本語テキストデータを解析するためのテキスト解析部と、テキスト解析の結果、顔文字に相当すると判定される部分文字列に顔文字としての読みを付与する顔文字読み付与部と、前記テキスト解析部の解析結果をもとに合成音声を出力する音声合成部からなるテキスト音声合成装置において、前記顔文字読み付与部を、輪郭記号表を用いて、当該記号が顔文字を構成する記号であるか否かを判定する顔文字判定部と、顔文字と判定された文字列に対して、特徴記号表を用いて、顔文字に使用されている特徴記号を抽出し、該特徴記号の出現回数を表す頻度ベクトルを抽出する特徴抽出部と、抽出された頻度ベクトルと最も類似している代表ベクトルを選択し、その読みを出力する読み選択部、とから構成すると共に、前記特徴記号表を、特徴記号と特徴記号の属するグループ番号で構成し、前記特徴抽出部を、顔文字内部の特徴記号の頻度を計数し頻度ベクトルを作成する頻度ベクトル計算部と、該頻度ベクトルを正規化する正規化処理部から構成することにより、特徴記号の出現数をもとに、顔文字列をベクトル化し、予め用意された代表ベクトル表と比較することで、当該顔文字列に読みを付与するようにしたことを特徴とするテキスト音声合成装置。
【請求項3】 日本語テキストデータを解析するためのテキスト解析部と、テキスト解析の結果、顔文字に相当すると判定される部分文字列に顔文字としての読みを付与する顔文字読み付与部と、前記テキスト解析部の解析結果をもとに合成音声を出力する音声合成部からなるテキスト音声合成装置において、前記顔文字読み付与部を、輪郭記号表を用いて、当該記号が顔文字を構成する記号であるか否かを判定する顔文字判定部と、顔文字と判定された文字列に対して、特徴記号表を用いて、顔文字に使用されている特徴記号を抽出し、該特徴記号の出現回数を表す頻度ベクトルを抽出する特徴抽部と、抽出された頻度ベクトルと最も類似している代表ベクトルを選択し、その読みを出力する読み選択部、とから構成すると共に、前記特徴記号表を、形状特徴の類似性を基準にして並べておき、前記特徴抽出部を、顔文字内部の特徴記号の頻度を計数して頻度ベクトルを抽出する頻度ベクトル計算部と、ボケ処理を行なうためのフィルタ部と、頻度ベクトルを正規化する正規化処理部とから構成することにより、特徴記号の出現数をもとに、顔文字列をベクトル化し、予め用意しておいた代表ベクトル表と比較することにより、当該顔文字列に読みを付与するようにしたことを特徴とするテキスト音声合成装置。
発明の詳細な説明
【0001】
【発明の属する技術分野】この発明は電子メールやネットワークニュース記事など情報交換のためのテキストを合成音声で読上げるテキスト音声合成装置に関するものである。
【0002】
【従来の技術】近年、インターネットの急速な利用者拡大に伴い、それにアクセスするためのパソコン、あるいは、携帯電話、PDA、ページャ(ポケットベル(登録商標))などの携帯型情報端末が、企業、家庭、あるいは学校などに急激な勢いで普及している。その理由の一つとして、電子メールやインターネットニュース等のメッセージ交換システムがある。さらに、最近では、これらのメッセージ(例えば、電子メール)を音声に変換して電話に転送したり、あるいは端末上で音声に変換して読上げたり、あるいは電子メールの着信の通知を宛先利用者が所有するページャに出力したり、ファクシミリからのイメージ情報をマルチメディア電子メールとして送信するような、種々のメッセージシステムや情報端末を統合した新たな形のメッセージ交換システムが登場し始めており、これら電子メール等のメッセージと音声合成とを中心としたサービスが、さらなる利用者拡大に拍車をかけている。
【0003】このメッセージ交換システムのうちの重要な機能は、電子メールやネットワークニュースの電話などに対する読上げ機能である。しかし、これら電子メールやネットワークニュースは、受取り手が目で読むことが前提として書かれており、このため音声に変換できない情報も含んでいる場合が多々ある。例えば、電子メールやネットーワークニュース記事には、書き手の微妙な感情や文面のニュアンスを伝えるために、顔文字(絵文字、アスキーアート、グリフとも呼ばれる)を用いることがある。
【0004】例えば、図28(c)は、顔文字の入った文面の一例を示したものであり、図の291は単純であるが顔文字が入った典型的な電子メールの文面である。図中、292は、括弧と記号^とドット.で作った「笑い」を意味する顔文字である。
【0005】従来、テキスト音声変換システムにおいて、このような記号列を読上げようとすれば、そのまま1文字づつ読上げてしまい、送り手の思いが、受取り手に伝わらないという問題があった。
【0006】顔文字をテキスト音声変換可能にするための従来技術として、文献:特開平11−305987がある。この文献においては、「顔文字」を「絵文字」と表現しているが、以下、顔文字としてこの文献に記載された技術について説明する。図28(a)〜図28(c)は、この文献に記載された従来技術の説明図である。
【0007】以下、上記文献に記載された従来技術の技術について、説明する。図28(a)は、テキスト音声変換装置の全体構成を示しており、281はテキスト音声変換装置、282は装置外部からテキストの入力を受けつけるテキスト入力装置である。287は入力されるテキストである。283は顔文字抽出装置であり、入力テキスト287中にある顔文字を検索する。さらに、284は、顔文字読み変換装置であり、検索された顔文字を顔文字読み表285に従って読みに「置換」する。286は音声合成装置であり、顔文字読み変換装置284により置換が行なわれた入力テキスト287から、合成音声に変換する装置である。
【0008】図28(b)は、顔文字読み表285の内容を表した模式図を示している。顔文字読み表285は、顔文字を表す「表記文字列」と、それを音声化した場合の「読み」を一組にした形式になっている。
【0009】図28(c)は、入力テキスト291、および、顔文字読み変換がなされた後のテキスト294を表した例を示している。292、293は顔文字、295、296はその読みである。
【0010】以下、従来技術の動作について説明する。まず、テキスト入力装置282にテキストデータが入力される。すると、顔文字抽出装置283は、顔文字読み表285に登録されている顔文字データを参照して、顔文字を検索する。この例では、292と293の2種の顔文字が検索される。次に、顔文字読み変換装置284が、該検索結果である顔文字該当箇所を、顔文字読み表285に従い置換した上で、テキスト294を出力する。最後に、音声合成装置286は、前記置換されたテキストデータ294を、合成音声に変換する。以上の処理により、従来音声化されなかったり、1文字ずつ記号名等で音声化されていた顔文字部分を、合成音声で読上げることができる。
【0011】以上説明したように上記文献に記載された従来技術は、・ 顔文字を登録するためのテーブル・ 顔文字をテキストデータから検索・抽出・置換するための装置を具備することで、顔文字部分を音声合成できる読みに置換することが特徴である。
【0012】
【発明が解決しようとする課題】しかしながら、従来の方法では、以下のような問題点がある。
(1)顔文字の登録はリソースを圧迫する。即ち、従来技術により、読上げようとする顔文字を登録しようとすれば、テーブルサイズ(メモリ使用量)の増加と検索処理にかかる負担が増大する。この場合、携帯情報端末のような、リソースが限られた環境においては、生産コストの増加にも直結する。
(2)顔文字は未来永劫に増え続ける。即ち、顔文字は、ユーザが独自に創作するものであり、未来永劫にわたって、その種類は増え続けていく。従来技術によれば、増え続ける顔文字に対応するためには、その都度、顔文字テーブルに登録する以外に、読上げる手段はない。登録できるリソース量には必ず限界があるため、根本的な解決手段には至っていない。
【0013】この発明は、上述の問題点を解決し、限られたリソース環境において、メモリサイズの増加を最低限に抑えながら、かつ、未知の顔文字に対しても、1文字ずつ記号読みすることなく、読上げることの可能なテキスト音声合成装置を提供することを目的とする。
【0014】
【課題を解決するための手段】そのために、本発明のテキスト音声合成装置においては、日本語テキストデータを解析するためのテキスト解析部と、テキスト解析の結果、顔文字に相当すると判定される部分文字列に顔文字としての読みを付与する顔文字読み付与部と、前記テキスト解析部の解析結果をもとに合成音声を出力する音声合成部からなるテキスト音声合成装置において、顔文字読み付与部を、輪郭記号表を用いて、当該記号が顔文字を構成する記号であるか否かを判定する顔文字判定部と、顔文字と判定された顔文字列に対して、特徴記号表を用いて、顔文字に使用されている特徴記号を抽出し、各特徴記号に対応づけられた読み番号を付与する特徴抽出部と、抽出された読み番号に割当てられた読みを出力する読み選択部とから構成し、顔文字に特徴的な記号の出現数に応じて、当該顔文字列に読みを付与するようにしたことを特徴とする。
【0015】また、本発明のテキスト音声合成装置においては、顔文字読み付与部を、輪郭記号表を用いて、当該記号が顔文字を構成する記号であるか否かを判定する顔文字判定部と、顔文字と判定された文字列に対して、特徴記号表を用いて、顔文字に使用されている特徴記号を抽出し、該特徴記号の出現回数を表す頻度ベクトルを抽出する特徴抽出部と、抽出された頻度ベクトルと最も類似している代表ベクトルを選択し、その読みを出力する読み選択部、とから構成すると共に、特徴記号表を、特徴記号と特徴記号の属するグループ番号で構成し、特徴抽出部を、顔文字内部の特徴記号の頻度を計数し頻度ベクトルを作成する頻度ベクトル計算部と、該頻度ベクトルを正規化する正規化処理部から構成することにより、特徴記号の出現数をもとに、顔文字列をベクトル化し、予め用意された代表ベクトル表と比較することで、当該顔文字列に読みを付与するようにしたことを特徴とする。
【0016】更に、本発明のテキスト音声合成装置においては、顔文字読み付与部を、輪郭記号表を用いて、当該記号が顔文字を構成する記号であるか否かを判定する顔文字判定部と、顔文字と判定された文字列に対して、特徴記号表を用いて、顔文字に使用されている特徴記号を抽出し、この特徴記号の出現回数を表す頻度ベクトルを抽出する特徴抽部と、抽出された頻度ベクトルと最も類似している代表ベクトルを選択し、その読みを出力する読み選択部、とから構成すると共に、特徴記号表を、形状特徴の類似性を基準にして並べておき、特徴抽出部を、顔文字内部の特徴記号の頻度を計数して頻度ベクトルを抽出する頻度ベクトル計算部と、ボケ処理を行なうためのフィルタ部と、頻度ベクトルを正規化する正規化処理部とから構成することにより、特徴記号の出現数をもとに、顔文字列をベクトル化し、予め用意しておいた代表ベクトル表と比較することにより、当該顔文字列に読みを付与するようにしたことを特徴とする。
【0017】
【発明の実施の形態】以下、図面を参照してこの発明のテキスト音声合成装置の実施の形態につき説明する。尚、各図面はこの発明が理解出来る程度に概略的に示してあるにすぎない。
【0018】[第1の実施の形態]
(構成)図1は、本発明に係るテキスト音声合成装置の全体のブロック図であり、テキストデータ(14)を日本語解析するためのテキスト解析部(11)と、テキスト解析部の出力結果をもとに、合成音声(15)を出力するための音声合成部(13)、及び、テキスト解析部において、辞書未登録語であると判明したテキストデータを受取り、顔文字であるか否かを判定し、顔文字としての読みを付与するための顔文字読み付与部(12)を設けている。
【0019】顔文字読み付与部は、図2に示すように、テキストデータ(24)を受取り、このデータを格納するためのテキストバッファ(31)と、格納されたデータが顔文字の条件を満たしているかどうかを、輪郭記号表(25)を用いて判定し、輪郭位置データ(26)を抽出し、その位置を出力する顔文字判定部(21)と、抽出された輪郭位置データと、入力テキストデータから、特徴記号表(27)を用いて、顔文字に使用されている記号を抽出し、対応づけられた読み番号(28)を出力する特徴抽出部(22)と、抽出された読み番号を受取り、番号に割当てられた読み(30)を、読み表(29)から取得して出力するための読み選択部(23)から構成される。
【0020】図3は輪郭記号表の一例を示しており、輪郭記号表には、右輪郭記号と左輪郭記号が夫々登録される。
【0021】図4は特徴記号表の一例を示しており、この記号表には10種類の顔文字の目に相当する箇所に使用されることの多い記号ばかりを表の左側に登録している。表の右側には、その記号が両目に使われた場合の読みに対応したユニークな番号(読み番号)が登録されている。例えば、42の^が両目に使われる場合、「笑い」「にこやかな感情」等を意味する顔文字であるので、読み番号1が割当て割れている。このように、顔文字パタン一式を格納せず、特徴記号だけを登録するようにしたこと、また、読み文字列を特徴記号表から分離して読み表という別テーブルにすることで、従来技術よりもテーブルサイズを抑えることができる。
【0022】図5は読み表の一例を示しており、読み表は、読み番号と、読みから構成される。(実際の実装時には読み番号は、テーブルのオフセット値でしかない)。例えば、読み番号1は、(にこにこ)という読み(52)に対応する。
【0023】(動作)第1の実施の形態における動作を説明する。先ず、テキスト音声合成装置全体の動作を説明する。テキスト解析部(11)は、入力テキストデータ(14)から中間言語(一般的には、カタカナ文字と若干の合成パラメータからなる)を出力するために、形態素解析と構文解析を行なう。この形態素解析処理において、日本語辞書、文法規則を利用して、単語を切出し、さらに、該単語の読み・アクセント等の単語情報を付加する。顔文字がテキストデータ中に含まれている場合、本来辞書に登録されていないために、読みを付与する必要が生じる。この時、顔文字読み付与部(12)へ問題の箇所が出力される。
【0024】このテキストデータの一例を図8に示す。図中「今晩の宴会は、とても楽しみでーーす。」の部分については、解析が終了したことを意味している。81で示した部分は単語が見つからず、記号として1文字ずつ読上げる以外に方法がない箇所を示している。
【0025】以下、第1の実施形態における顔文字読み付与部の動作を図2を参照して説明する。先ず、顔文字判定部の処理について説明する。顔文字判定部(21)は、テキスト解析部(11)から、テキストデータ(24)が送られてくると、輪郭記号表(25)を用いて、輪郭記号を抽出し、顔文字であるかどうかを判定する。
【0026】この判定は、以下のように行う。
(判定条件1)予め登録しておいた輪郭記号で挟まれた文字列であること。
(判定条件2)輪郭記号間の文字数がK文字以下であること(K=5)。
【0027】判定の結果、顔文字と判定した場合は、抽出した輪郭記号の位置(開始、終了位置)と、入力データ(24)を特徴抽出部(22)に送る。
【0028】顔文字判定部(21)の具体的な処理を、図6のフローを参照して説明する。
(1)図中Sから開始し、E1もしくはE2で終わるように処理が進行する。
(2)走査ポインタpを入力テキストの左端にセットする(S1)。
(3)走査ポインタpが、データの右端まで到達したかを判定する(S2)。
(4)(S2)の判定結果が、YESであればステップ(16)の処理に進み、NOであれば(5)の処理に進む。
(5)走査ポインタpの指示す文字が、「左輪郭記号として登録されているか」を判定する。登録されていれば、顔文字の可能性があると見て、ステップ(6)の処理に進み、登録されてない場合は、走査ポインタpを1文字分進めて、(3)へ戻る(S3,S4)。
(6)文字数カウンタcntを0に初期化する(S5)。
(7)現在の走査ポインタの位置を、左輪郭文字バッファpsに格納する(S6)。
(8)走査ポインタpをL(例えばL=2)文字進める。このL=2という値は、顔文字の最小構成として、輪郭内部が2文字の場合を想定して設定した値である(S7)。
(9)走査ポインタpを1文字分進める(S8)。
(10)文字数カウンタcntを1加算する(S9)。
(11)走査ポインタpがテキスト末尾に到達したか判定する。到達していれば、ステップ(16)の処理に進み、到達してなければ、(12)の処理に進む(S10)。
(12)文字数カウンタcntが閾値K以下かどうかを判定する。K以下の場合は、ステップ(13)の処理に進み、Kを超える場合は、(16)に進む。この処理は、あまり長い文字数から構成される顔文字は、あり得ないことに基づく顔文字判定条件である。尚、この場合のKの値は、経験的にK=5とした(S11)。
(13)走査ポインタpが右輪郭記号表にあるかどうか判定する。右輪郭記号と判定された場合はステップ(14)へ進みそうでない場合は、(9)の処理に戻り、輪郭記号の抽出を繰返す(S12)。
(14)現在の走査ポインタpの値を、右輪郭記号バッファpeに格納する(S13)。
(15)E1に達すれば、テキストデータ(24)と共に、輪郭位置データ(26)として前記抽出した輪郭記号psとpeを、特徴抽出部(22)に送る。
(16)E2に達すれば、顔文字の条件を満足しなかった場合であり、読みの付与を行なわずに、テキスト解析部(11)へ結果を送る(S14)。
【0029】特徴抽出部(22)は、顔文字判定部(21)で得られた輪郭位置データ(26)を入力して、テキストバッファ(31)に格納されているデータの輪郭記号に挟まれた範囲を走査し、特徴記号表(27)を用いて解析し、読み番号(28)を決定する。この時の解析に用いる特徴記号表(27)の一例を、図4に示している。
【0030】次に、特徴記号表(27)を用いて、目に使用されている記号を抽出する方法について説明する。基本的な処理の流れは、輪郭記号内を、左から順番に1文字ずつ走査していき、特徴記号表に登録されている記号の出現回数をカウントし、出現回数が2個の記号を目であると判定し、その記号に割当てられた読み番号を、読み選択部(23)に送る。例えば、「(T_T)」という顔文字では、記号Tが2回使用されているので、記号Tを目記号と判定するという具合である。ただ、両目に同じ記号が使用されるケースばかりとは考えられず、以下のようなケースが容易に想定される。
・ 複数の目記号が2回使用される場合・ 両方の目記号が異なる場合前者の場合、例えば、図9に示すような「(*^O^*)」の場合がある。この場合、出現した記号の中で、より中央に位置する記号を目と判定する。この理由は、作り手が送り手に顔文字であると認識させるために、その顔文字の構成パタンを、中央から輪郭に向かって順に、「鼻あるいは口」→「目」→「頬」→「輪郭」に並べていること多いためである。
【0031】前者の場合、例えば、「(^o―)」がある。この場合、どちらかの記号を選択する必要があるが、どちらを選択しても、おそらく大差がないとの経験的理由から、本実施の形態においては、最初に出現した目記号を目と判定することにしている。
【0032】以下、特徴抽出部の処理の流れを図7を用いて示す。
(1)Sの位置から開始し、Eで終了するように処理が進行する。
(2)読み番号Nを0に初期化する(S21)。
(3)走査ポインタpをpsにセットする(S22)。
(4)走査ポインタpがpeに到達したか否かを判定し、到達した場合は、顔文字内部の検査が終了したとみなして、ステップ(10)へ進み、到達していない場合は、顔文字内部の検査途中であるとみなして(5)へ進む(S23)。
(5)走査ポインタpの指示する文字が、特徴記号表(27)にあるか否かを判定し、ある場合は、特徴記号を抽出したとみなして、ステップ(7)へ進み、特徴記号表にない場合は(6)へ進む(S24)。
(6)走査ポインタを1文字分進めて、ステップ(4)へ進む(S25)。
(7)読み番号Nは初期値(=0)のままか否かを判定し、YESの場合は、抽出された特徴記号に対応する読み番号を、読み表(29)から取得し、読み番号バッファNに最初に出現した記号として格納しておく(S27)。NOの場合は(8)へ進む。
(8)抽出された特徴記号に対応する出現回数を1だけ加算する(S28)。
(9)抽出された特徴記号に対応する出現回数が2回に達した場合は、読み番号バッファNに、抽出された特徴記号に対応づけられた読み番号を格納し(S30)、ステップ(10)へ進む。達していない場合は、(6)へ戻り、顔文字内部の走査を継続する。
(10)読み番号バッファNに格納された値を、特徴抽出部の最終決定として、読み選択部(23)へ送る。
【0033】図10に示した表(101)は、図9に示した顔文字を処理した時の処理ステップがEに到達したときの出現回数テーブルの例を示した表である。図中102は記号「^」が2回出現したことを示している。図中103が示す記号「*」の出現回数が「1」である理由について説明する。前述したように、複数の特徴記号が2度使用されている場合、より中央にある記号を目の特徴記号と判定するという方針である。これを実現する場合、走査範囲psからpeの間にある全特徴記号をカウントした上で、判定する方法もあるが、「どちらの記号(この場合は、「*」と「^」)が、より中央よりにあるか?」を判定するための処理が必要になる。しかし、psから1文字ずつ文字走査を行なうならば、中央に存在する記号は、必ず「先に」、出現回数が「2」になる。このことを利用した手順が前記フローである。以上の理由により、図10の103の回数が「1」になっている。
【0034】尚、使用頻度が2回の目記号が複数個現れたり、両目の記号が異なる場合、前述のように、本実施形態においては、前者のケースでは、先に2回出現した目記号、後者のケースでは、最も左にある目記号の読み番号を選択したが、目記号に優先順位をつけておき、その優先順位を用いて、選択する方法もある。
【0035】読み選択部(23)は、特徴抽出部(22)から出力された読み番号(28)とテキストデータ(24)を入力し、読み表(29)を利用して、読み番号から読み文字列を取出して、取出した読み文字列(30)をテキスト解析部(11)に出力する。
【0036】読み表(29)の一例を図5に示す。読み番号が左側に、また、該読み番号に割当てられた読み文字列が右側に表示されており、例えば、読み番号1が、前記特徴抽出部から送られてきた場合、読み文字列である(にこにこ)(52)を出力する。
【0037】上述のように、第1の実施の形態によれば、下記のような効果が期待できる。
(1)最小限の登録だけで、顔文字箇所に読みを付与できるので、わざわざ登録することなくとも、顔文字を上手く読上げることができる。また、今後新たに作られるであろう顔文字に対しても、読上げることができる。
(2)読み表と、特徴記号表とを分離することで、テーブルサイズを小さくすることができる。
【0038】[第2の実施の形態]
(構成)第2の実施の形態においては、全体構成は第1の実施の形態と同じであるが、顔文字読み付与部(12)の内部構成が異なっている。
【0039】図11に第2の実施の形態に於ける顔文字読み付与部の構成図を示す。この実施形態における顔文字読み付与部は、テキストデータ(119)を受取り、輪郭記号表(114)を用いて、輪郭位置データ(120)を抽出する顔文字判定部(111)と、輪郭位置データと特徴記号表(115)を用いて、頻度ベクトルを作成する特徴抽出部(112)と、頻度ベクトルとベクトル表(116)に登録されている各代表ベクトルとを比較し、最も類似度の高い代表ベクトルを選択し、この代表ベクトルに対応する読み(121)を出力する読み選択部(113)と前記テキストデータを格納するためのテキストバッファ(117)と前記頻度ベクトルを格納するための頻度ベクトルバッファ(118)とから構成される。
【0040】図12に示すように、特徴抽出部(112)は、輪郭記号の範囲のテキストバッファ(117)内に格納されているテキストデータを走査し、特徴記号表(115)に登録されている記号について、その出現回数を数えて頻度ベクトル化し、頻度ベクトルバッファ(118)に格納する頻度ベクトル計算部(122)と、現在走査中の文字が、前記特徴記号表(115)に登録されているかどうかを検索するための特徴記号検索部(124)と、頻度ベクトルを正規化するための正規化処理部(123)から構成される。
【0041】上記各処理ブロックで使用される表の構成について説明する。本実施の形態において使用する表は、輪郭記号表(114)と特徴記号表(115)とベクトル表(116)の3種類である。
【0042】図13に輪郭記号表の一例(131)を示す。輪郭記号表には、右輪郭記号と左輪郭記号が夫々登録される。
【0043】図14に特徴記号表の一例(141)を示す。特徴記号表には、顔文字列に使用される記号を登録しておく。この特徴記号表は、1レコードが、特徴記号とその特徴記号が属するグループ番号(複数個可能とする)から構成され、登録記号の個数分だけのレコードが登録されている。
【0044】特徴記号が属するグループについて説明する。グループとは、同じ意味合いで使用される特徴記号の集合である。例えば、図中142は、「笑い」を意味する記号のグループを示している。また、図中143は、「失敗」と「怒り」を意味する顔文字に使用されることが多いため、二つのグループに属している。尚、使用した記号表のグループは、その形状を元に経験的に定めたものである。
【0045】図15にベクトル表の概念図を示す。ベクトル表は、あらかじめ大量の顔文字データから自動的に作成した代表ベクトルから構成されており、各登録ベクトルには、該登録ベクトルの特徴記号の頻度分布に応じた読みが付与されている。図中151、153は、それぞれある1つの顔文字の意味合いを示した代表ベクトルである。例えば、151の代表ベクトルは152の読み(まいった)という「失敗」を意味するカテゴリの代表ベクトルである。また、153の代表ベクトルは、154の読み(にこにこ)という「笑い」を意味するカテゴリの代表ベクトルである。
【0046】ベクトル表の作成方法について説明する。ベクトル表は、予め用意しておく必要があり、前述したように、複数の代表ベクトルから構成されている。よって、この代表ベクトルを作成し、次いで、作成した代表ベクトルを1つのテーブルに登録すればよい。以下では、代表ベクトルの作成方法について説明する。代表ベクトルは、既存のアルゴリズムを使用して容易に作成することが可能である。本実施形態においては、LBGアルゴリズムを用いている。以下の説明でステップ(3)以降がLBGアルゴリズムに相当する。なお、顔文字の文字列長が短いため、頻度ベクトルをそのまま使用しただけでは、ベクトル間の類似度が現れにくい。そのため、ステップ(2)において、同一グループに属するすべての特徴記号の出現回数を操作するという工夫を加えている。
(1)大量の顔文字データを収集する(2)各顔文字データに使用されている文字を、前記特徴記号表(115)を用いて、頻度ベクトルに変換する。具体的には、以下の手順に従う。
(2−1)特徴記号表(115)に登録されている記号が、輪郭記号内部に存在すれば、その記号の出現回数を頻度ベクトルにセットする。ただし、出現回数をセットする際には、当該記号だけでなく、その記号が属するグループ内の全記号も出現したとみなして、出現回数を頻度ベクトルにセットする。例えば、「∩」が入力顔文字中に存在した場合、特徴記号表(141)によれば、この記号がグループ1に属するので、「∩」の出現回数を増やすだけなく、同グループ1に属している「∩」 以外の全記号「^⌒へ」の出現回数を増加させる。
(2−2)求められた頻度ベクトルを正規化する。これは、顔文字の文字数により生じる頻度ベクトルの大きさのバラツキを抑える目的で、頻度ベクトルバッファに作成されたベクトルの最大要素値で、各要素値を除算する事により行う。
(3)抽出された頻度ベクトルをLBGアルゴリズムに入力し、代表ベクトルを出力させる。以下、LBGアルゴリズムの処理手順にしたがって、代表ベクトルが作成される流れを簡単に説明する。
(3―1)必要とする代表ベクトル数と、制御パラメータを設定する。
(3―2)初期セントロイドC1を、前記入力頻度ベクトルから作成する。具体的には、初期セントロイドC1は、全頻度ベクトルの平均値である。
(3−3)セントロイドを2倍に増加する(セントロイドの分割処理)。具体的には、現在のセントロイドCk(ここで、kは、1から現在のセントロイド数nまでの整数値を取る)に対して、乱数ベクトルr(ベクトル次元数は、セントロイドCkと同数)と、制御パラメータS(スカラー量)を用いて、2つのセントロイドCkとCk+nを作成する。例えば、現在のセントロイド数が2個あった場合、セントロイドC1をもとに新しいセントロイドC1とC3を作成し、セントロイドC2をもとに新しいセントロイドC2とC4を作成することになる。
(3−4)(3−3)によって、倍増したセントロイドを、分類上、最適な状態に配置する(セントロイドの更新処理)。具体的には、前記入力頻度ベクトルを、現在のセントロイドで(2)で作成した頻度ベクトルをベクトル量子化し、その際の量子化誤差Eiが予め設定した閾値Eよりも小さくなるまで、セントロイドを繰り返し修正する。
(3−5)(3−1)で設定した最終代表ベクトル数Nに、現在のセントロイド数が達していれば処理を終了する。N未満であれば、(3−3)の処理に戻る。
(4)これまでの処理で作成された代表ベクトルに対して、読みを付与する。具体的には、以下の手順に従う。
(4−1)前記(2)で作成したすべての頻度ベクトルを、(3)で得られた代表ベクトルで分類する。
(4−2)全代表ベクトルについて、その代表ベクトルの受け持つカテゴリに、分類された特徴ベクトルの中で、最も代表ベクトルに類似する特徴ベクトルの読みを、このカテゴリを受け持つ代表ベクトルの読みとする。
【0047】(動作)テキスト解析部〜顔文字読み付与部までの処理は、第1の実施形態と同様の処理であるので説明を省略する。
【0048】顔文字判定部の動作を説明する。図13に示した輪郭記号表(131)を用いて、文字を左端から走査していき、輪郭位置を抽出する。ただし、輪郭記号間の文字数に上限を設けておき、一般的に使用されている顔文字の長さの文字列だけを、顔文字とみなすことにする。(具体的な処理手順は、第1の実施の形態と同様である。)
【0049】顔文字判定処理結果の一例を図16に示す。図16においては、左輪郭記号の位置ps(163)と右輪郭記号の位置pe(164)が抽出されているのが判る。尚、このテキストデータは、テキストバッファ(117)に格納され、ps=左輪郭記号のアドレス情報とpe=左輪郭記号のアドレス情報が特徴抽出部(112)に送られる。
【0050】特徴抽出部(112)の動作を説明する。特徴抽出部では、以下の手順に従って、頻度ベクトルを作成して、読み選択部(113)へ送る。尚、ベクトル表の作成方法で説明したように、顔文字の文字列長の短さによる問題を解決するために、下記のステップ(1)において、同一グループに属するすべての特徴記号の出現回数を操作するという工夫を加えている。
(1)顔文字部から出力された輪郭記号位置データと入力顔文字データ中の記号の頻度を計算する。具体的には、以下のようになる。
(1−1)走査ポインタpを前記輪郭抽出部で抽出された左輪郭記号位置psに合わせる。
(1−2)走査ポインタpが前記輪郭抽出部で抽出された右輪郭記号位置peに到達するまで、以下のステップを繰返す。
(1−3)走査ポインタpの指示する文字が、特徴記号表にあるか検索する。検索の結果、登録されていれば、この特徴記号と同じグループに属する全ての特徴記号の出現回数を1だけ増加する。
(1−4)走査ポインタpを1文字分だけ右へ進め、ステップ(1−2)へ戻る。
【0051】この処理ステップ(1)で作成される頻度ベクトルの例を図17に示す。これは、図16の顔文字列から作成された頻度ベクトルを示している。
【0052】(2)前記ステップ(1)の処理で作成された頻度ベクトルを正規化する。正規化処理を施す理由は前述した通りである。具体的には、頻度ベクトルバッファに格納された最高頻度で、各要素を除算することにより行う。この処理ステップ(2)で作成される頻度ベクトルは、図17と同じ形状で、最大値が1となる。
(3)正規化された頻度ベクトルは、頻度ベクトルバッファ(118)に格納されているので、この先頭アドレスを、読み選択部(113)へ送る。
【0053】読み選択部(113)の動作を説明する。読み選択部では、以下の手順に従って、前記特徴抽出部で作成された頻度ベクトルから、読みを取得する。
(1)以下の処理で、入力頻度ベクトルに最も類似した代表ベクトルを求める。
(1−1)カウンタkを1に初期化する。
(1−2)カウンタkが代表ベクトル数Mに到達するまで、以下を繰返す。
(1−3)ベクトル表(116)に登録されている、第k番目の代表ベクトルと、前記特徴抽出部から出力された頻度ベクトルとの誤差Ekを計算する。誤差Ekの計算方法は、以下の式に従って求める。

(1−4)カウンタkをk+1にセットし、ステップ(1−2)へ戻る。
(2)ステップ(1)で選択された代表ベクトルに割当てられた読みを取得し、該読みを出力する。
【0054】図18は、図17に最も類似したと判定された代表ベクトルを示している。この代表ベクトルには、「怒り」や「失敗」を意味する記号群と「笑い」を意味する記号群の箇所に値が入っており、与える読みは(おいおい)となっている。
【0055】以上説明したように、第2の実施形態によれば、入力された顔文字データの特徴プリミティブの組合わせを、文字の出現回数を使ってベクトル化しておき、また、あらかじめ、大量の顔文字データをもとに、頻度ベクトルの標準的なベクトルを用意しておき、そして、この両者を比較することで、入力データから作成したベクトルと最も類似した代表ベクトルの読みを出力することができる。従って顔文字パタンを登録することなく、顔文字の読み付与を行なうことが可能となる。
【0056】[第3の実施の形態]
(構成)全体の装置構成は第1、第2の実施の形態と同じであるが、顔文字読み付与部の内部構成が異なっている。
【0057】本実施形態における顔文字読み付与部の構成を説明する。図19は、その構成図である。この実施形態における顔文字読み付与部は、テキストデータ(199)を受取り、輪郭記号表(194)を用いて、輪郭位置データ(200)を抽出する顔文字判定部(191)と、輪郭位置データを受取り、特徴記号表(195)を用いて、頻度ベクトルを作成する特徴抽出部(192)と、頻度ベクトルとベクトル表(196)に登録されている各代表ベクトルとを比較し、最も類似度の高い代表ベクトルを選択し、選択された代表ベクトルに対応する読み(201)を出力する読み選択部(193)と、テキストデータを格納するためのテキストバッファ(197)と、頻度ベクトルを格納するための頻度ベクトルバッファ(198)とから構成される。
【0058】特徴抽出部(192)は、輪郭記号の範囲のテキストバッファ内に格納されているテキストデータを走査し、特徴記号表にある記号について、その出現回数を頻度ベクトルバッファに格納するための頻度ベクトル計算部(202)と、テキストバッファに格納されている記号が、前記特徴記号表に登録されているかどうかを検索するための特徴記号検索部(205)と、頻度ベクトルバッファに格納されている頻度ベクトルにたいして、ボケ処理を行なうためのフィルタ部(203)と、頻度ベクトルを正規化するための正規化処理部(204)から構成される。
【0059】フィルタ部(203)では、以下の処理を行なう(本実施形態では、n=1としている)。

但し、Yiはフィルタ前の頻度ベクトルの第i要素の値であり、Yi’はフィルタ後の第i要素の値、nはフィルタの窓サイズを示す変数である。
【0060】上記各処理ブロックで使用される表の構成について説明する。本実施形態において使用する表は、輪郭記号表(194)と特徴記号表(195)とベクトル表(196)の3種類である。
【0061】図21に輪郭記号表の一例(211)を示す。輪郭記号表には、右輪郭記号と左輪郭記号が夫々登録される。
【0062】図22に特徴記号表の一例(221)を示す。特徴記号表には、顔文字列に使用される記号を登録しておく。この特徴記号表は、記号形状が類似しているもの同士、あるいは、使用される意味が類似したもの同士が近くに並ぶように配置し、さらに、顔文字に使用される可能性のある記号はなるべく多く登録した方が、今後増え続ける顔文字に対応する上で都合がよい。尚、図22に示す記号表は、経験的に作成したものである。
【0063】図23にベクトル表の一例を示す。ベクトル表には、あらかじめ大量の顔文字データから作成したベクトルを複数個登録しておき、各登録ベクトルには、登録ベクトルの特徴記号の頻度分布に応じた読みを付与しておく。
【0064】ベクトル表の作成方法について説明する。前述したように、ベクトル表は、複数の代表ベクトルから構成されており、この代表ベクトルは、既存のアルゴリズムを使用して容易に作成することが可能である。本実施形態においては、LBGアルゴリズムを用いた。なお、前述したように、顔文字の文字列長が短いため、頻度ベクトルをそのまま使用しただけでは、ベクトル間の類似度が現れにくい。そのため、第2の実施の形態におけるベクトル表の作成方法と同様に、ステップ(2)において、近隣の要素値を含めた特徴記号の出現回数を操作するという工夫を加えている。
【0065】(1)大量の顔文字データを収集する。
(2)各顔文字データに使用されている文字を、特徴記号表(195)を用いて、頻度ベクトルに変換する。尚、顔文字の文字数の短さによるベクトルデータの情報量不足を補う目的で、ボケ処理用のフィルタ部(203)で、ベクトルデータを加工した後、最大頻度による正規化処理を行なう。尚、ボケ処理用のフィルタは、前記式(2)に従ってベクトル値を更新する。この処理により、近隣に並んでいる類似形状の特徴記号の出現回数が大きくなる。
(3)抽出された頻度ベクトルをLBGアルゴリズムに入力し、代表ベクトルを出力させる。以下、LBGアルゴリズムの処理手順にしたがって、代表ベクトルが作成される流れを簡単に説明する。
(3―1)必要とする代表ベクトル数と、制御パラメータを設定する。
(3―2)初期セントロイドC1を、前記入力頻度ベクトルから作成する。具体的には、初期セントロイドC1は、全頻度ベクトルの平均値である。
(3−3)セントロイドを2倍に増加する(セントロイドの分割処理)。具体的には、現在のセントロイドCk(ここで、kは、1から現在のセントロイド数nまでの整数値を取る)に対して、乱数ベクトルr(ベクトル次元数は、セントロイドCkと同数)と、制御パラメータS(スカラー量)を用いて、2つのセントロイドCkとCk+nを作成する。例えば、現在のセントロイド数が2個あった場合、セントロイドC1をもとに新しいセントロイドC1とC3を作成し、セントロイドC2をもとに新しいセントロイドC2とC4を作成することになる。
(3−4)上記ステップ(3−3)によって、倍増したセントロイドを、分類上、最適な状態に配置する(セントロイドの更新処理)。具体的には、前記入力頻度ベクトルを、現在のセントロイドをベクトル量子化し、その際の量子化誤差Eiが予め設定した閾値Eよりも小さくなるまで、セントロイドを繰り返し修正する。
(3−5)ステップ(3−1)で設定した最終代表ベクトル数Nに、現在のセントロイド数が達していれば処理を終了する。N未満であれば、ステップ(3−3)に戻る。
(4)上記までのステップで、作成された代表ベクトルに対して、読みを付与する。具体的には、以下の手順に従う。
(4−1)前記入力顔文字データから作成されたすべての頻度ベクトルを、ステップ(3)で得られた代表ベクトルで分類する。
(4−2)全代表ベクトルについて、その代表ベクトルの受け持つカテゴリに、分類された特徴ベクトルの中で、最も代表ベクトルに類似する特徴ベクトルの読みを、このカテゴリを受け持つ代表ベクトルの読みとする。
【0066】(動作)テキスト解析部〜顔文字読み付与部までの動作は、第1の実施形態における動作と同様であるので、説明を省略する。
【0067】顔文字判定部の動作を説明する。図21の輪郭記号表(211)用いて、文字を左端から走査していき、輪郭位置を抽出する。ただし、輪郭記号間の文字数に上限を設けておき、一般的に使用されている顔文字の長さの文字列だけを、顔文字とみなすことにする。顔文字判定処理結果の一例を図24に示す。図24においては、左輪郭記号の位置ps(242)と右輪郭記号の位置pe(243)が抽出されているのが判る。このpsとpeが特徴抽出部に送られる。
【0068】特徴抽出部の動作を説明する。特徴抽出部は、以下の手順に従って、頻度ベクトルを作成して、読み選択部へ送る。
(1)輪郭抽出部から出力された輪郭記号位置データと入力顔文字データ中の記号の頻度を計算する。具体的には、以下のようになる。
(1−1)走査ポインタpを前記輪郭抽出部で抽出された左輪郭記号位置psに合わせる。
(1−2)走査ポインタpが前記輪郭抽出部で抽出された右輪郭記号位置peに到達するまで、以下のステップを繰返す。
(1−3)走査ポインタpの指示する文字が、特徴記号表にあるか検索する。検索の結果、登録されていれば、該特徴記号の出現回数を+1する。
(1−4)走査ポインタpを1文字分だけ右へ進め、ステップ(1−2)へ戻る。
【0069】図25に図24をもとに作成して得られた頻度ベクトルの例を示す。記号「∩」が2回、記号「メ」が1回現れているのが判る。
【0070】(2)前記ステップ(1)の処理で作成された頻度ベクトルに対して、フィルタ処理を施した後、最大出現値で正規化する。これは、顔文字の文字列長が短いため、頻度ベクトルを、そのまま使用しただけでは、ベクトル間の類似度が現れにくい。そこで、予め類似形状の記号同士が近くに並ぶように配置しておき、さらに、任意の1つの記号が出現した場合には、このフィルタ処理により、周辺の記号も出現数を増加させるので、ベクトル間の類似性を高めることができる。図26は、図25にあるベクトルにボケ処理を施し、さらに正規化処理を行なった結果である。ボケ処理を加えることで、記号∩だけでなく、同じ意味で使われることの多い記号「^⌒」にも値が現れていることがわかる。
(3)正規化された特徴ベクトルを、読み選択部(193)へ送る。
【0071】読み選択部(193)の動作を説明する。読み選択部では、以下の手順に従って、前記特徴抽出部で作成された頻度ベクトルから、読みを取得する。
(1)以下の処理で、入力頻度ベクトルに最も類似した代表ベクトルを求める。
(1−1)カウンタkを1に初期化する。
(1−2)カウンタkが代表ベクトル数Mに到達するまで、以下を繰返す。
(1−3)ベクトル表(196)に登録されている、第k番目の代表ベクトルと、特徴抽出部から出力された頻度ベクトルとの誤差Ekを前記式(1)に従って計算する。
(1−4)カウンタkをk+1にセットし、ステップ(1−2)へ戻る。
(2)ステップ(1)で選択された代表ベクトルに割当てられた読みを取得し、出力する。
【0072】以上説明したように、第3の実施形態によれば、入力された顔文字データの特徴プリミティブの組合わせを、文字の出現回数を使ってベクトル化しておき、また、あらかじめ、大量の顔文字データをもとに、頻度ベクトルの標準的なベクトルのテーブルを作成しておき、そして、この両者を比較することで、入力データから作成したベクトルと最も類似した代表ベクトルの読みを出力することができる。従って、顔文字パタンを登録することなく、特徴プリミティブの組合わせを考慮した、顔文字の読み付与を行なうことが可能となる。
【0073】さらに、本実施形態に於ける処理は単純なフィルタ処理を用いるだけなので、処理速度が向上し実装効率を向上させることができる。
【0074】
【発明の効果】以上詳細に説明したように、請求項1に係る発明によれば、日本語テキストデータを解析するためのテキスト解析部と、テキスト解析の結果、顔文字に相当すると判定される部分文字列に顔文字としての読みを付与する顔文字読み付与部と、前記テキスト解析部の解析結果をもとに合成音声を出力する音声合成部からなるテキスト音声合成装置において、前記顔文字読み付与部を、輪郭記号表を用いて、当該記号が顔文字を構成する記号であるか否かを判定する顔文字判定部と、顔文字と判定された顔文字列に対して、特徴記号表を用いて、顔文字に使用されている特徴記号を抽出し、各特徴記号に対応づけられた読み番号を付与する特徴抽出部と、抽出された読み番号に割当てられた読みを出力する読み選択部、とから構成し、顔文字に特徴的な記号の出現数に応じて、当該顔文字列に読みを付与するように構成したので、最小限の登録だけで、顔文字に読みを付与でき、わざわざ登録しなくても顔文字を上手く読上げることができる。また、今後新たに作られるであろう顔文字に対しても、読上げることができる。更には、読み表と特徴記号表とを分離することで、テーブルサイズを小さくすることができる。
【0075】また、請求項2に係る発明によれば、日本語テキストデータを解析するためのテキスト解析部と、テキスト解析の結果、顔文字に相当すると判定される部分文字列に顔文字としての読みを付与する顔文字読み付与部と、前記テキスト解析部の解析結果をもとに合成音声を出力する音声合成部からなるテキスト音声合成装置において、前記顔文字読み付与部を、輪郭記号表を用いて、当該記号が顔文字を構成する記号であるか否かを判定する顔文字判定部と、顔文字と判定された文字列に対して、特徴記号表を用いて、顔文字に使用されている特徴記号を抽出し、該特徴記号の出現回数を表す頻度ベクトルを抽出する特徴抽出部と、抽出された頻度ベクトルと最も類似している代表ベクトルを選択し、その読みを出力する読み選択部、とから構成すると共に、前記特徴記号表を、特徴記号と特徴記号の属するグループ番号で構成し、前記特徴抽出部を、顔文字内部の特徴記号の頻度を計数し頻度ベクトルを作成する頻度ベクトル計算部と、該頻度ベクトルを正規化する正規化処理部から構成することにより、特徴記号の出現数をもとに、顔文字列をベクトル化し、予め用意された代表ベクトル表と比較することで、当該顔文字列に読みを付与するように構成したので、顔文字パタンを登録することなく、顔文字の読み付与を行なうことが可能となる。
【0076】更に、請求項3に係る発明によれば、日本語テキストデータを解析するためのテキスト解析部と、テキスト解析の結果、顔文字に相当すると判定される部分文字列に顔文字としての読みを付与する顔文字読み付与部と、前記テキスト解析部の解析結果をもとに合成音声を出力する音声合成部からなるテキスト音声合成装置において、前記顔文字読み付与部を、輪郭記号表を用いて、当該記号が顔文字を構成する記号であるか否かを判定する顔文字判定部と、顔文字と判定された文字列に対して、特徴記号表を用いて、顔文字に使用されている特徴記号を抽出し、該特徴記号の出現回数を表す頻度ベクトルを抽出する特徴抽部と、抽出された頻度ベクトルと最も類似している代表ベクトルを選択し、その読みを出力する読み選択部、とから構成すると共に、前記特徴記号表を、形状特徴の類似性を基準にして並べておき、前記特徴抽出部を、顔文字内部の特徴記号の頻度を計数して頻度ベクトルを抽出する頻度ベクトル計算部と、ボケ処理を行なうためのフィルタ部と、頻度ベクトルを正規化する正規化処理部とから構成することにより、特徴記号の出現数をもとに、顔文字列をベクトル化し、予め用意しておいた代表ベクトル表と比較することにより、当該顔文字列に読みを付与するように構成したので、顔文字パタンを登録することなく、顔文字の読み付与を行なうことが可能となり、さらに単純なフィルタ処理を用いているので、処理速度を向上させることができる。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013