(57)【要約】【課題】姓名が結合して成る文字列の姓と名との区切りをより確実に判定することができる姓名解析方法を提供すること。【解決手段】本発明に係る姓名解析方法は、複数の姓データの集合を用いて予め取得した、各々の姓を構成する文字列の末尾の文字列毎の出現頻度を表す姓頻度データを用いる姓名解析方法であって、姓名が結合して成る姓名文字列をその先頭から順次２分割する工程（Ｓ１１００、Ｓ１４００、Ｓ１５００）と、前記姓頻度データを参照して、前記分割位置の前半の末尾の文字列と一致する文字列の出現頻度を、前記分割位置毎に順次取得する工程（Ｓ１２００）と、前記出現頻度が高い前記分割位置を、前記姓名文字列における姓と名との区切り位置であると判定する工程（Ｓ１６００）とを有する。【選択図】図１１
2010113678.tif 000002
【特許請求の範囲】
【請求項１】
複数の姓データの集合を用いて予め取得した、各々の姓を構成する文字列の末尾の文字列毎の出現頻度を表す姓頻度データを用いる姓名解析方法であって、
姓名が結合して成る姓名文字列をその先頭から順次２分割する工程と、
前記姓頻度データを参照して、前記分割位置の前半の末尾の文字列と一致する文字列の出現頻度を、前記分割位置毎に順次取得する工程と、
前記出現頻度が高い前記分割位置を、前記姓名文字列における姓と名との区切り位置であると判定する工程と、
を有する姓名解析方法。
【請求項２】
複数の名データの集合を用いて予め取得した、各々の名を構成する文字列の先頭の文字列毎の出現頻度を表す名頻度データを用いる姓名解析方法であって、
姓名が結合して成る姓名文字列をその先頭から順次２分割する工程と、
前記名頻度データを参照して、前記分割位置の後半の先頭の文字列と一致する文字列の出現頻度を、前記分割位置毎に順次取得する工程と、
前記出現頻度が高い前記分割位置を、前記姓名文字列における姓と名との区切り位置であると判定する工程と、
を有する姓名解析方法。
【請求項３】
複数の姓データの集合を用いて予め取得した、各々の姓を構成する文字列の末尾の文字列毎の出現頻度を表す姓頻度データと、複数の名データの集合を用いて予め取得した、各々の名を構成する文字列の先頭の文字列毎の出現頻度を表す名頻度データと、を用いる姓名解析方法であって、
姓名が結合して成る姓名文字列をその先頭から順次２分割する工程と、
前記姓頻度データを参照して、前記分割位置の前半の末尾の文字列と一致する文字列の出現頻度を、前記分割位置毎に順次取得する工程と、
前記名頻度データを参照して、前記分割位置の後半の先頭の文字列と一致する文字列の出現頻度を、前記分割位置毎に順次取得する工程と、
前記分割位置の前半の文字列に対して取得された前記出現頻度と、前記分割位置の前半の文字列に対して取得された前記出現頻度と、を乗じた値が高い前記分割位置を、前記姓名文字列における姓と名との区切り位置であると判定する工程と、
を有する姓名解析方法。
【請求項４】
前記姓名文字列は、読みを示す仮名文字列である、
請求項１記載の姓名解析方法。
【請求項５】
前記末尾の文字列および前記先頭の文字列は、仮名２文字である、
請求項３記載の姓名解析方法。
【請求項６】
前記分割位置の前半の文字数と一致する文字数の姓における出現頻度と、前記分割位置の後半の文字数と一致する文字数の名における出現頻度と、を取得する、
請求項４記載の姓名解析方法。
【請求項７】
前記複数の姓データの集合を用いて予め取得した、姓の読みの末尾毎の、姓の表記の末尾の文字列の出現頻度を表す表記頻度データを参照して、前記姓名文字列に対応する表記文字列における姓と名との区切り位置を判定する工程、を更に有する、
請求項４記載の姓名解析方法。
【請求項８】
複数の姓データの集合を用いて予め生成された、各々の姓を構成する文字列の末尾の文字列毎の出現頻度を表す姓頻度データと、複数の名データの集合を用いて予め取得した、各々の名を構成する文字列の先頭の文字列毎の出現頻度を表す名頻度データと、を取得する姓名頻度データ取得部と、
姓名が結合して成る姓名文字列をその先頭から順次２分割し、前記姓頻度データから取得される前記分割位置の前半の末尾の文字列と一致する文字列の出現頻度と、前記名頻度データから取得される前記分割位置の後半の先頭の文字列と一致する文字列の出現頻度とを乗じた値が高い位置で、前記姓名文字列を姓と名とに区切り、姓の辞書および名の辞書の少なくとも一方を生成する辞書生成部と、
を有する姓名解析装置。
【請求項９】
複数の姓データの集合を用いて予め生成された、各々の姓を構成する文字列の末尾の文字列毎の出現頻度を表す姓頻度データと、複数の名データの集合を用いて予め取得した、各々の名を構成する文字列の先頭の文字列毎の出現頻度を表す名頻度データと、を取得する姓名頻度データ取得部と、
姓名が結合して成る姓名文字列をその先頭から順次２分割し、前記姓頻度データから取得される前記分割位置の前半の末尾の文字列と一致する文字列の出現頻度と、前記名頻度データから取得される前記分割位置の後半の先頭の文字列と一致する文字列の出現頻度とを乗じた値が高い位置で、前記姓名文字列を姓と名とに区切り、姓の辞書および名の辞書の少なくとも一方を生成する辞書生成部と、
前記辞書生成部により生成された辞書を用いて音声認識処理を行う音声認識部と、
を有する音声認識装置。
【請求項１０】
請求項６記載の姓名解析方法で用いられる前記姓頻度データおよび前記名頻度データを生成する姓名頻度データ生成方法であって、
前記複数の姓データの集合から、各々の姓の読みを示す仮名文字列の文字数および末尾の文字列を取得する工程と、
取得した前記文字数および前記末尾の文字列が同一となる姓をカウントして、前記姓頻度データを生成する工程と、
前記複数の名データの集合から、各々の名の読みを示す仮名文字列の文字数および先頭の文字列を取得する工程と、
取得した前記文字数および前記先頭の文字列が同一となる名をカウントして、前記名頻度データを生成する工程と、
を有する姓名頻度データ生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、姓名の区切りの判定を行う姓名解析方法、姓名解析装置、および音声認識装置、並びに姓名解析方法で用いられるデータを生成する姓名頻度データ生成方法に関する。
【背景技術】
【０００２】
近年、携帯電話機における音声認識によるメール入力サービスなど、音声からテキスト文を作成する技術の普及が進んでいる。このような音声認識技術において例えば漢字を含むテキスト文を作成する場合、まず、ユーザが漢字の読みを発話し、次いで、音声認識装置が、漢字データと読みとを対応付けた音声辞書に基づいて、音声を文字列に変換し、更に文字列を漢字に変換する。
【０００３】
ところが、音声認識装置は、音声辞書に存在しない読みに対しては誤認識を行う可能性がある。特に、人名の姓および名については、特殊な読みや漢字の組み合わせが多いことから、全ての姓を完全に網羅した辞書や全ての名を完全に網羅した音声辞書を用意することは困難である。
【０００４】
そこで、具体的な人名が登録された姓名データベースを音声認識に利用することが考えられる。これにより、特殊な姓名に対する音声認識精度を向上させることができる。
【０００５】
ところが、姓名データベースには、姓名が区切られずに一体となって登録されている場合も多い。このような場合、姓と名とを個別に認識することができない。したがって、例えば、特殊な名のみを発話したときには、誤った認識結果となってしまうおそれがある。
【０００６】
そこで、姓名が結合している文字列を区切り、前半の文字列と後半の文字列との少なくとも一方が音声辞書に存在するとき、その区切りを姓と名との区切りであると判定する技術が、例えば特許文献１に記載されている。この技術によれば、姓名データベースに登録された姓名を姓と名とに分割し、これらを個別に認識することが可能となる。
【特許文献１】特開平１０−１７１７９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところが、特許文献１記載の技術では、姓と名のいずれも音声辞書に登録されていない場合には、姓と名とを区切ることができない。したがって、例えば、姓と名の両方が特殊な姓名については、区切りを判定することができず、それぞれに対する音声認識も行うことができない。
【０００８】
本発明は、かかる点に鑑みてなされたものであり、姓名が結合して成る文字列の姓と名との区切りをより確実に判定することができる姓名解析方法、姓名解析装置、音声認識装置、および姓名頻度データ生成方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の姓名解析方法は、複数の姓データの集合を用いて予め取得した、各々の姓を構成する文字列の末尾の文字列毎の出現頻度を表す姓頻度データを用いる姓名解析方法であって、姓名が結合して成る姓名文字列をその先頭から順次２分割する工程と、前記姓頻度データを参照して、前記分割位置の前半の末尾の文字列と一致する文字列の出現頻度を、前記分割位置毎に順次取得する工程と、前記出現頻度が高い前記分割位置を、前記姓名文字列における姓と名との区切り位置であると判定する工程とを有する。
【００１０】
本発明の姓名解析方法は、複数の名データの集合を用いて予め取得した、各々の名を構成する文字列の先頭の文字列毎の出現頻度を表す名頻度データを用いる姓名解析方法であって、姓名が結合して成る姓名文字列をその先頭から順次２分割する工程と、前記名頻度データを参照して、前記分割位置の後半の先頭の文字列と一致する文字列の出現頻度を、前記分割位置毎に順次取得する工程と、前記出現頻度が高い前記分割位置を、前記姓名文字列における姓と名との区切り位置であると判定する工程とを有する。
【００１１】
本発明の姓名解析方法は、複数の姓データの集合を用いて予め取得した、各々の姓を構成する文字列の末尾の文字列毎の出現頻度を表す姓頻度データと、複数の名データの集合を用いて予め取得した、各々の名を構成する文字列の先頭の文字列毎の出現頻度を表す名頻度データとを用いる姓名解析方法であって、姓名が結合して成る姓名文字列をその先頭から順次２分割する工程と、前記姓頻度データを参照して、前記分割位置の前半の末尾の文字列と一致する文字列の出現頻度を、前記分割位置毎に順次取得する工程と、前記名頻度データを参照して、前記分割位置の後半の先頭の文字列と一致する文字列の出現頻度を、前記分割位置毎に順次取得する工程と、前記分割位置の前半の文字列に対して取得された前記出現頻度と、前記分割位置の前半の文字列に対して取得された前記出現頻度と、を乗じた値が高い前記分割位置を、前記姓名文字列における姓と名との区切り位置であると判定する工程とを有する。
【００１２】
本発明の姓名解析装置は、複数の姓データの集合を用いて予め生成された、各々の姓を構成する文字列の末尾の文字列毎の出現頻度を表す姓頻度データと、複数の名データの集合を用いて予め取得した、各々の名を構成する文字列の先頭の文字列毎の出現頻度を表す名頻度データとを取得する姓名頻度データ取得部と、姓名が結合して成る姓名文字列をその先頭から順次２分割し、前記姓頻度データから取得される前記分割位置の前半の末尾の文字列と一致する文字列の出現頻度と、前記名頻度データから取得される前記分割位置の後半の先頭の文字列と一致する文字列の出現頻度とを乗じた値が高い位置で、前記姓名文字列を姓と名とに区切り、姓の辞書および名の辞書の少なくとも一方を生成する辞書生成部とを有する。
【００１３】
本発明の音声認識装置は、複数の姓データの集合を用いて予め生成された、各々の姓を構成する文字列の末尾の文字列毎の出現頻度を表す姓頻度データと、複数の名データの集合を用いて予め取得した、各々の名を構成する文字列の先頭の文字列毎の出現頻度を表す名頻度データとを取得する姓名頻度データ取得部と、姓名が結合して成る姓名文字列をその先頭から順次２分割し、前記姓頻度データから取得される前記分割位置の前半の末尾の文字列と一致する文字列の出現頻度と、前記名頻度データから取得される前記分割位置の後半の先頭の文字列と一致する文字列の出現頻度とを乗じた値が高い位置で、前記姓名文字列を姓と名とに区切り、姓の辞書および名の辞書の少なくとも一方を生成する辞書生成部と、前記辞書生成部により生成された辞書を用いて音声認識処理を行う音声認識部とを有する。
【００１４】
本発明の姓名頻度データ生成方法は、上記姓名解析方法で用いられる前記姓頻度データおよび前記名頻度データを生成する姓名頻度データ生成方法であって、前記複数の姓データの集合から、各々の姓の読みを示す仮名文字列の文字数および末尾の文字列を取得する工程と、取得した前記文字数および前記末尾の文字列が同一となる姓をカウントして、前記姓頻度データを生成する工程と、前記複数の名データの集合から、各々の名の読みを示す仮名文字列の文字数および先頭の文字列を取得する工程と、取得した前記文字数および前記先頭の文字列が同一となる名をカウントして、前記名頻度データを生成する工程とを有する。
【発明の効果】
【００１５】
本発明によれば、姓名が結合して成る文字列の姓と名との区切りをより確実に判定することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の一実施の形態について、図面を参照して詳細に説明する。
【００１７】
図１は、本発明の一実施の形態に係る姓名解析装置を用いた音声認識システムの構成を示すシステム構成図である。本実施の形態は、本発明を、音声認識を用いて携帯電話機でテキストデータを作成するシステムに適用した例である。
【００１８】
図１において、音声認識システム１００は、姓名データベース２００、姓名頻度データ生成装置３００、音声認識サーバ４００、および第１〜第Ｍの携帯電話機５００−１〜５００−Ｍを有する。これらの装置は、無線または有線により、インターネットなどの通信網７００に接続されている。第１〜第Ｍの携帯電話機５００−１〜５００−Ｍは、同一の構成を有するため、以下、適宜、携帯電話機５００としてまとめて説明を行う。
【００１９】
姓名データベース２００は、十分な数の日本人の姓名（以下「一般姓名」という）についての、姓の表記およびその表記の読みから成る姓データと、名の表記およびその表記の読みから成る名データとを格納する。ここで、表記とは、漢字もしくは仮名またはこれらの混合であり、読みとは、表記を読み上げる際の発話音声を仮名に置き換えたものである。
【００２０】
姓名頻度データ生成装置３００は、通信網７００を介して姓名データベース２００を参照し、姓頻度データ、名頻度データ、および表記頻度データを生成する。
【００２１】
姓頻度データは、姓頻度をリスト化したデータである。姓頻度は、ここでは、一般姓名における、姓の読みの末尾２文字（２発話の音声）の文字列ごとの出現頻度を表す値である。すなわち、姓頻度データからは、一般姓名において、どのような２文字が、姓の読みの末尾に多く用いられているかが分かる。
【００２２】
名頻度データは、名頻度をリスト化したデータである。名頻度は、ここでは、一般姓名における、名の読みの先頭２文字（２発話の音声）の文字列ごとの出現頻度を表す値である。すなわち、名頻度データからは、一般姓名において、どのような２文字が、名の読みの先頭に多く用いられているかが分かる。
【００２３】
また、表記頻度データは、表記頻度をリスト化したデータである。表記頻度は、ここでは、一般姓名における、姓の読みの末尾２文字ごとの、姓の表記の末尾１文字（漢字または仮名）の出現頻度を表す値である。すなわち、表記頻度データからは、一般姓名において、姓の読みの末尾２文字の種類ごとに、どのような表記が姓の末尾に多く用いられているかがわかる。
【００２４】
音声認識サーバ４００は、受信した音声特徴量の時系列データ（以下「特徴量データ」という）をテキストデータに変換する音声認識処理を行い、認識データを、基の特徴量データの送信元に返信する。認識データには、音声認識結果であるテキストデータと、テキストデータの文節を示す文節情報と、各文節の発話時刻に関する情報で時間情報とを含む。
【００２５】
携帯電話機５００は、携帯電話機能と、メール送受信機能と、電話帳データ利用機能と、音声認識サーバ４００を利用して音声入力によりメール本文の作成を行う音声入力機能とを有する。具体的には、携帯電話機５００は、入力音声の特徴量データから抽出した音声特徴量を、通信網７００を介して音声認識サーバ４００に送信し、音声認識結果を、通信網７００を介して音声認識サーバ４００から受信する。
【００２６】
また、携帯電話機５００は、姓名頻度データ生成装置３００から姓頻度データ、名頻度データ、および表記頻度データ（以下適宜「姓名頻度データ」と総称する）に基づいて、ユーザの知人の姓名全体の表記（以下「表記文字列」という）および読み（以下「姓名文字列」という）をリスト化した電話帳データから、ユーザ辞書を生成する。ユーザ辞書は、ユーザの知人の姓ごとおよび名ごとに、表記と読みとを対応付けたデータである。姓名頻度データは、姓名頻度データ生成装置３００によって作成されたものが予め携帯電話機５００に格納されていてもよいし、各種記録媒体または通信網７００を介しての姓名頻度データ生成装置３００側からの配布によって、取得されてもよい。
【００２７】
更に、携帯電話機５００は、読みや表記が特殊な姓や名を発話した際に発生する誤った音声認識結果を、ユーザ辞書を用いた音声認識処理によって補完する。
【００２８】
このような音声認識システム１００によれば、ユーザが特殊な姓または名の知人を有する場合に、電話帳データには表記および読みが姓名一体でしか登録されていなくても、姓と名とに分割して表記と読みとを対応付けたユーザ辞書を生成することができる。そして、このユーザ辞書を用いて、音声認識処理を補完することができる。これにより、ユーザは、知人の姓のみまたは名のみを発話した場合に、それが特殊な読みまたは表記であり、音声認識サーバ４００の音声辞書に登録されていないものであっても、正しい表記を、音声認識結果として得ることができる。
【００２９】
また、姓頻度と名頻度とに基づいて総合的に区切りの妥当性を判断することができるので、姓と名の個々についての判定精度を、２文字ずつのみの比較という判定精度まで落とすことが可能となる。また、姓頻度データおよび名頻度データを２文字についてのデータとすることができるため、特殊な姓および名を網羅した辞書を用意する場合に比べて、データサイズを大幅に低減することができるとともに、姓名の区切りを判断する時間を短縮することができる。すなわち、データ記憶容量に制限がある携帯電話機５００において、姓および名のそれぞれについての音声認識精度を向上させることが可能なユーザ辞書を短時間で作成し、かつ、これを利用することができる。
【００３０】
次に、各装置の構成について説明する。
【００３１】
図２は、姓名頻度データ生成装置３００の構成を示すブロック図である。姓名頻度データ生成装置３００は、装置通信部３１０、姓頻度データ生成部３２０、名頻度データ生成部３３０、表記頻度データ生成部３４０、姓名頻度データ格納部３５０、および姓名頻度データ送信部３６０を有する。
【００３２】
装置通信部３１０は、有線通信により通信網７００に接続する。
【００３３】
姓頻度データ生成部３２０は、姓名データベース２００に格納された姓データに基づいて、姓頻度データを生成し、生成した姓頻度データを、後述の姓名頻度データ格納部３５０に格納する。
【００３４】
名頻度データ生成部３３０は、姓名データベース２００に格納された名データに基づいて、名頻度データを生成し、生成した名頻度データを、後述の姓名頻度データ格納部３５０に格納する。
【００３５】
表記頻度データ生成部３４０は、姓名データベース２００に格納された姓データに基づいて、表記頻度データを生成し、生成した表記頻度データを、後述の姓名頻度データ格納部３５０に格納する。
【００３６】
姓名頻度データ格納部３５０は、生成された姓頻度データ、名頻度データ、および表記頻度データ（姓名頻度データ）を格納する。
【００３７】
姓名頻度データ送信部３６０は、装置通信部３１０を介して、定期的に、または携帯電話機５００からの要求を受けて、姓名頻度データ格納部３５０に格納された姓名頻度データを携帯電話機５００に送信する。
【００３８】
姓名頻度データ生成装置３００は、図示しないが、ＣＰＵ（central processing unit）、制御プログラムを格納したＨＤＤ（hard disc drive）およびＲＯＭ（read only memory）などの記憶媒体、ＲＡＭ（random access memory）などの作業用メモリなどを有する。ＣＰＵによる制御プログラムの実行により、上記した各部の機能は実現される。
【００３９】
このような姓名頻度データ生成装置３００によれば、姓名頻度データを生成し、携帯電話機５００に提供することができる。
【００４０】
図３は、音声認識サーバ４００の構成を示すブロック図である。
【００４１】
図３において、音声認識サーバ４００は、サーバ通信部４１０、音声辞書格納部４２０、およびサーバ音声認識部４３０を有する。
【００４２】
サーバ通信部４１０は、有線通信により通信網７００に接続する。
【００４３】
音声辞書格納部４２０は、音響モデル、単語辞書、言語モデルなど、音声特徴量に基づく音声認識処理に必要な音声辞書のデータを格納する。但し、音声認識サーバ４００は不特定のユーザに対する音声認識サービスの提供を目的とする装置であるため、音声辞書格納部４２０の音声辞書には、一般姓名に関する情報は含まれているが、特殊な姓および名に関する情報は含まれていない。使用頻度の非常に少ない姓および名を音声認識の対象に含めると、全体の認識精度の低下や処理速度の低下を招くからである。
【００４４】
サーバ音声認識部４３０は、サーバ通信部４１０を介して携帯電話機５００から受信した音声特徴量に対して、音声辞書格納部４２０の音声辞書を用いた音声認識処理を行う。そして、サーバ音声認識部４３０は、音声認識結果であるテキストデータを、サーバ通信部４１０を介して基の音声特徴量の送信元に送信する。
【００４５】
サーバ音声認識部４３０は、図示しないが、ＣＰＵ、制御プログラムを格納したＨＤＤおよびＲＯＭなどの記憶媒体、ＲＡＭなどの作業用メモリなどを有する。ＣＰＵによる制御プログラムの実行により、上記した各部の機能は実現される。
【００４６】
このような音声認識サーバ４００によれば、携帯電話機５００に対して、音声認識サービスを提供することができる。但し、そのサービスは、特殊な姓および名については、認識誤りを発生させる可能性を有する。
【００４７】
図４は、携帯電話機５００の構成を示すブロック図である。
【００４８】
図４において、携帯電話機５００は、制御部５１０、操作部５２０、端末通信部５３０、姓名頻度データ取得部５４０、姓名頻度データ記憶部５５０、電話帳データ格納部５６０、辞書生成部５７０、ユーザ辞書記憶部５８０、音声入力部５９０、音声特徴抽出部６００、端末音声認識部６１０、および表示部６２０を有する。
【００４９】
制御部５１０は、携帯電話機５００の各部の動作を制御する。
【００５０】
操作部５２０は、複数のキースイッチ（図示せず）を有し、ユーザから、電話帳データへの登録、姓名頻度データの取得、音声認識機能の使用、音声認識結果の編集、およびメールの送受信などのための操作を含む各種操作を受け付ける。
【００５１】
端末通信部５３０は、通信網７００に配置された無線基地局（図示せず）と無線通信を行うことにより、通信網７００に接続する。
【００５２】
姓名頻度データ取得部５４０は、定期的に、またはユーザ操作を受けて、端末通信部５３０を介して姓名頻度データ生成装置３００から姓名頻度データを取得し、取得した姓名頻度データを、姓名頻度データ記憶部５５０に記憶させる。
【００５３】
電話帳データ格納部５６０は、送受信メールに基づいて、またはユーザ操作を受けて登録された、ユーザの知人の姓名の表記文字列および姓名文字列を、電話帳データとして格納部する。但し、電話帳データにおいて、表記文字列と姓名文字列のいずれについても、姓と名との区切りが不明であるものとする。
【００５４】
辞書生成部５７０は、電話帳データ格納部５６０の電話帳データに登録された姓名文字列ごとに、その姓名文字列を先頭から順次２分割する。そして、辞書生成部５７０は、姓名頻度データ記憶部５５０の姓頻度データおよび名頻度データを参照し、前半文字列の姓頻度と後半文字列の名頻度とを乗じた値が最も高くなる分割位置を、その姓名文字列が姓と名とに分かれる位置であると判定する。また、辞書生成部５７０は、姓名頻度データ記憶部５５０の表記頻度データを参照し、姓の読みにおいて表記頻度が高い表記の１文字の直後を、表記文字列が姓と名とに分かれる位置であると判定する。そして、辞書生成部５７０は、区分した姓の読み（以下「姓文字列」という）および名の読み（以下「名文字列」という）と、区分した姓の表記と名の表記とに基づいて、ユーザ辞書を生成し、生成したユーザ辞書をユーザ辞書記憶部５８０に記憶させる。
【００５５】
ユーザ辞書記憶部５８０は、予め用意された音響モデルと、辞書生成部５７０により生成されたユーザ辞書とを記憶する。
【００５６】
音声入力部５９０は、マイクロフォン（図示せず）を有し、ユーザの発話音声を入力し、少なくともユーザ操作などにより音声認識を行うことが指定された期間、音声認識音声信号を音声特徴抽出部６００へ出力する。
【００５７】
音声特徴抽出部６００は、入力された音声信号を分析して特徴量を抽出し、特徴量データを端末通信部５３０を介して音声認識サーバ４００へ送信する。
【００５８】
端末音声認識部６１０は、読みや表記が特殊な姓や名を発話した際に発生する誤った音声認識サーバ４００の音声認識結果を、ユーザ辞書を用いた音声認識処理によって補完する。具体的には、端末音声認識部６１０は、音声認識結果のうち、姓または名に対応する部分について、基の特徴量データおよびユーザ辞書記憶部５８０のユーザ辞書を用いた音声認識処理を行い、その認識結果で、音声認識サーバ４００からの認識結果を修正する。
【００５９】
表示部６２０は、液晶ディスプレイ（図示せず）を有し、音声認識結果を含む各種情報を表示する。
【００６０】
携帯電話機５００は、図示しないが、ＣＰＵ、制御プログラムを格納したＲＯＭなどの記憶媒体、ＲＡＭなどの作業用メモリなどを有する。ＣＰＵによる制御プログラムの実行により、上記した各部の機能は実現される。
【００６１】
このような携帯電話機５００によれば、姓名頻度データを利用して電話帳データから姓と名とを分割したユーザ辞書を生成することができ、ユーザが知人の特殊な姓または名を発話した場合でも正しい音声認識結果を提供することができる。
【００６２】
以下、上記構成を有する音声認識システム１００の動作について説明する。
【００６３】
音声認識システム１００の動作は、姓名頻度データを生成する第１の段階、姓名頻度データに基づいてユーザ辞書を生成する第２の段階、およびユーザ辞書に基づいて音声認識を行う第３の段階、の３段階に大きく分かれる。
【００６４】
まず、姓名頻度データを生成する第１の段階の動作について説明する。
【００６５】
図５は、姓名データベース２００に格納された姓データの内容の一例を示す図である。図５に示すように、姓データ８１０は、一般姓名の姓の表記８１１と、その表記の一般的な読み８１２とを、対応付けて記述する。
【００６６】
また、同様に、姓名データベース２００は、一般姓名の名の表記とその一般的な読みとを対応付けて記述する名データを格納する。
【００６７】
図２に示す姓名頻度データ生成装置３００の姓頻度データ生成部３２０は、姓データ８１０から、姓の読み８１２の末尾２文字（図５における下線部分、以下適宜「末尾部分」という）と、読み８１２の文字数とを抽出する。
【００６８】
図６は、姓の読みの末尾部分および文字数の抽出結果の一例を示す図である。図６に示すように、抽出結果８２０は、一般姓名の姓の表記の種類ごとに得られた、姓の読みの末尾部分８２１と文字数８２２との組から構成される。以下、適宜、読みを変数Ｋａｎａで表し、文字数を変数Ｌｅｎｇｔｈで表す。
【００６９】
図２に示す姓頻度データ生成部３２０は、姓データからの抽出結果８２０に記述されたデータを、姓の読みの末尾部分８２１の種類ごとおよび読み８１２の文字数ごとに計数し、姓頻度データを生成する。
【００７０】
図７は、姓頻度データの内容の一例を示す図である。図７に示すように、姓頻度データ８３０は、姓の読みの末尾部分８３１、姓の読みの文字数８３２、および計数結果である姓頻度８３３の組から構成される。以下、適宜、姓頻度ならびに後述の名頻度および表記頻度を、変数Ｃｏｕｎｔでそれぞれ表す。
【００７１】
例えば、「マダ」という末尾部分８３１に対応して、「３」という文字数８３２と、「５」という姓頻度８３３が記述されている。これは、読みが３文字であって「マダ」で終わるような姓の表記が、姓名データベース２００の姓データ８１０には５種類存在する、ということを示す。また、「ヤマ」という末尾部分８３１に対応して、「２」という文字数８３２と、「１」という姓頻度８３３が記述されている。これは、読みが２文字であって「ヤマ」で終わるような姓の表記が、姓名データベース２００の姓データ８１０には１種類しか存在しない、ということを示す。また、これらは、読みが３文字で末尾部分が「マダ」の姓のほうが、読みが２文字で末尾部分が「ヤマ」の姓よりも頻度が高いということを示す。
【００７２】
図２に示す姓名頻度データ生成装置３００の名頻度データ生成部３３０は、姓頻度データ生成部３２０と同様に、名データから名の読みの先頭２文字（以下適宜「先頭部分」という）と読みの文字数とを抽出し、先頭部分の種類ごとおよび文字数ごとの計数を行って、名頻度データを生成する。
【００７３】
図８は、名頻度データの内容の一例を示す図である。図８に示すように、名頻度データ８４０は、名の読みの先頭部分８４１、名の読みの文字数８４２、および計数結果である名頻度８４３の組から構成される。
【００７４】
図２に示す姓名頻度データ生成装置３００の表記頻度データ生成部３４０は、姓データ８１０から、姓の表記８１１の末尾１文字（図５における下線部分）と、読み８１２の末尾部分（図５における下線部分）とを抽出する。
【００７５】
図９は、姓の表記の末尾１文字および読みの末尾部分の抽出結果の一例を示す図である。図９に示すように、抽出結果８５０は、一般姓名の姓の表記の種類ごとに得られた、表記の末尾１文字８５１と読みの末尾部分８５２との組から構成される。
【００７６】
図２に示す表記頻度データ生成部３４０は、姓データからの抽出結果８５０に記述されたデータを、姓の読みの末尾１文字８５１の種類ごとおよび読みの末尾部分８５２の種類ごとに計数し、表記頻度データを生成する。
【００７７】
図１０は、表記頻度データの内容の一例を示す図である。図１０に示すように、表記頻度データ８６０は、姓の読みの末尾部分８６１、姓の表記の末尾１文字８６２、および計数結果である表記頻度８６３の組から構成される。
【００７８】
例えば、「マダ」という末尾部分８６１に対応して、「田」という表記８６２と、「８４」という表記頻度８６３が記述されている。これは、表記が「田」で終わり読みが「マダ」で終わるような姓の表記が、姓名データベース２００の姓データ８１０には８４種類存在する、ということを示す。「マダ」という末尾部分８６１に対応して、他にも、「太」という表記８６２と、「１」という表記頻度８６３が記述されている。これは、表記が「太」で終わり読みが「マダ」で終わるような姓の表記が、姓名データベース２００の姓データ８１０には１種類しか存在しない、ということを示す。また、これらは、読みが「マダ」で終わる姓においては、「田」で終わる表記の頻度のほうが、「太」で終わる表記の頻度よりも高いということを示す。
【００７９】
このような第１の段階の動作により、姓名頻度データが生成される。生成された姓名頻度データは、姓名頻度データ生成装置３００の姓名頻度データ格納部３５０に格納され、姓名頻度データ送信部３６０によって、適宜、携帯電話機５００に送信される。
【００８０】
次に、姓名頻度データに基づいてユーザ辞書を生成する第２の段階の動作について説明する。
【００８１】
図４に示す携帯電話機５００の姓名頻度データ取得部５４０は、定期的に、またはユーザ操作を受けて、姓名頻度データ生成装置３００から姓名頻度データ（図７、図８、および図１０参照）を取得し、取得した姓名頻度データを、姓名頻度データ記憶部５５０に記憶させる。
【００８２】
携帯電話機５００は、姓名頻度データ記憶部５５０に姓名頻度データが格納されると、ユーザ操作を受けて、または自動的に、ユーザ辞書を生成するユーザ辞書生成処理を実行する。携帯電話機５００は、ユーザ辞書生成処理において、電話帳データに登録された姓名の表記および読みに対して、姓の部分と名の部分とに区切る処理を行う。
【００８３】
図１１は、携帯電話機５００によるユーザ辞書生成処理を示すフローチャートである。
【００８４】
まず、ステップＳ１１００において、携帯電話機５００の辞書生成部５７０は、電話帳データ格納部５６０の電話帳データから、姓名文字列を１つ選択し、選択した姓名文字列の文字数（以下「」）姓名文字数という）Ｌ１を取得する。そして、姓名文字列の先頭と末尾に、ダミーの文字として所定の記号（例えば黒丸記号）を追加して、文字列Ｋ１を生成する。そして、パラメータＮに初期値「１」を設定する。パラメータＮは、姓名文字列の何文字目を姓の末尾と仮定しているか、つまり、姓が何文字であると仮定しているかを示すとともに、文字列Ｋ１の何文字目を処理の基準位置としているか、を示す。
【００８５】
図１２は、携帯電話機５００の電話帳データ格納部５６０に格納される電話帳データの内容の一例を示す図である。
【００８６】
図１２に示すように、電話帳データ８７０は、ユーザの知人の姓名の表記８７１およびその読み８７２を対にして記述する。但し、いずれも、姓と名の区切りが不明な状態で記述されている。
【００８７】
ここでは、「山田太郎」という表記８７１と「ヤマダタロウ」という読み８７２を処理対象とする場合について説明する。この場合、姓名文字数Ｌ１は「６」、文字列Ｋ１は、「ヤマダタロウ」の前後に黒丸記号が追加された文字列となる。以下、この例における動作について、図１３を参照して説明を行う。図１３は、姓と名とを区切る処理の概要を示す図である。
【００８８】
そして、ステップＳ１２００において、辞書生成部５７０は、姓頻度データ（図７参照）を参照して、Ｌｅｎｇｔｈ（Ｎ）＝Ｎのデータのうち、姓名文字列Ｌ１のＮ文字目から２文字の部分に対応する姓頻度Ｃｏｕｎｔを、姓頻度ＳＣ（Ｎ）として取得する。但し、辞書生成部５７０は、該当する姓頻度Ｃｏｕｎｔが姓頻度データに存在しない場合には、姓頻度ＳＣ（Ｎ）＝０とする。
【００８９】
そして、ステップＳ１３００において、辞書生成部５７０は、名頻度データ（図８参照）を参照して、Ｌｅｎｇｔｈ（Ｎ）＝Ｌ１−Ｎのデータのうち、姓名文字列Ｌ１のＮ文字目から２文字の部分に対応する名頻度Ｃｏｕｎｔを、名頻度ＭＣ（Ｎ）として取得する。但し、辞書生成部５７０は、該当する名頻度Ｃｏｕｎｔが名頻度データに存在しない場合には、姓頻度ＭＣ（Ｎ）＝０とする。
【００９０】
ここでは、図１３（Ａ）に示すように、Ｌｅｎｇｔｈ（Ｎ）＝１であり、姓名文字列Ｌ１の１文字目から２文字の部分８８１に対応する姓頻度Ｃｏｕｎｔも、姓名文字列Ｌ１の３文字目から２文字の部分８８２に対応する名頻度Ｃｏｕｎｔも、存在しないものとする。この場合、姓頻度ＳＣ（１）＝０および名頻度ＭＣ（１）＝０が取得される。
【００９１】
そして、ステップＳ１４００において、辞書生成部５７０は、パラメータＮを１つ増大させる。図１３（Ａ）に示す、処理対象となる部分８８１、８８２は、パラメータＮの値が増大するにつれて、矢印８８３の方向へ順次移動する。
【００９２】
そして、ステップＳ１５００において、辞書生成部５７０は、パラメータＮが姓名文字数Ｌ１を超えたか否か、つまり、処理対象がなくなったか否かを判断する。辞書生成部５７０は、パラメータＮが姓名文字数Ｌ１をまだ超えていない場合には（Ｓ１５００：ＮＯ）、ステップＳ１２００へ戻る。
【００９３】
これにより、辞書生成部５７０は、処理対象となる部分８８１、８８２を１文字分ずつ移動させて、順次、姓頻度ＳＣ（Ｎ）および名頻度ＭＣ（Ｎ）の取得を行う（図１３（Ｂ）および図１３（Ｃ）参照）。その結果、姓と名との区切りの候補ごとに、姓頻度ＳＣ（Ｎ）と名頻度ＭＣ（Ｎ）との組が取得される。
【００９４】
そして、辞書生成部５７０は、パラメータＮが姓名文字数Ｌ１を超えた場合には（Ｓ１５００：ＹＥＳ）、ステップＳ１６００へ進む。
【００９５】
ステップＳ１６００において、辞書生成部５７０は、姓頻度ＳＣ（Ｎ）と名頻度ＭＣ（Ｎ）とを乗じた値が最も大きくなるパラメータＮの値を、姓文字数Ｃとして取得する。上記乗算値が最も大きくなるということは、姓頻度ＳＣ（Ｎ）と名頻度ＭＣ（Ｎ）との両方が高いということであり、Ｎ文字目とＮ＋１文字目との間が姓と名との区切りである可能性が高いということである。
【００９６】
ここでは、例えば、図１３（Ａ）〜図１３（Ｃ）に示すように、Ｎ＝３の乗算値ＳＣ（３）＊ＭＣ（３）＝４２が最大値となったとする。この場合、辞書生成部５７０は、姓文字数Ｃを「３」とする。
【００９７】
なお、ステップＳ１３００の後に、上記乗算値が所定の値を超える場合には、姓と名との区切り位置である可能性が十分に高いものとして、そのときのパラメータＮの値を姓文字数として採用し、そのままステップＳ１７００へ進むようにしてもよい。
【００９８】
そして、ステップＳ１７００において、辞書生成部５７０は、姓名文字列を、Ｃ文字目の直後で区切る。
【００９９】
ここでは、図１３（Ｄ）に示すように、辞書生成部５７０は、姓文字数Ｃ＝３に基づき、姓名文字列「ヤマダタロウ」に対し、３文字の姓「ヤマダ」と４文字目からの名「タロウ」との間にスペースを挿入する。
【０１００】
そして、ステップＳ１８００において、辞書生成部５７０は、表記頻度データ（図１０参照）を参照して、姓文字列の末尾に対応する表記のうち、姓名の表記文字列に存在する表記を取得する。具体的には、姓文字列の末尾に対応し、姓名の表記文字列に存在する表記のうち、表記頻度Ｃｏｕｎｔが最も高い値となる表記を取得する。
【０１０１】
ここでは、例えば、姓文字列「ヤマダ」の末尾「マダ」に対対応し、姓名の表記文字列「山田太郎」に存在する表記は、「田」と「太」であるが、「田」のほうが表記頻度Ｃｏｕｎｔは高い。したがって、辞書生成部５７０は、表記「田」を取得する。
【０１０２】
そして、ステップＳ１９００において、辞書生成部５７０は、表記文字列を、ステップＳ１８００で取得した表記の直後で区切る。
【０１０３】
ここでは、表記「田」を取得したため、辞書生成部５７０は、表記文字列「山田太郎」に対し、姓「山田」と「太郎」との間にスペースを挿入する。
【０１０４】
そして、ステップＳ２０００において、辞書生成部５７０は、姓と名とに区切った姓名文字列および表記文字列を、ユーザ辞書記憶部５８０のユーザ辞書に登録する。辞書生成部５７０は、後段の端末音声認識部６１０がスペースを検出して姓と名とを区別して扱う場合には、スペースを挿入した文字列で登録してもよいし、そうではない場合には、姓と名とを別の単語として独立して登録してもよい。
【０１０５】
図１４は、ユーザ辞書の内容の一例を示す図である。
【０１０６】
図１４に示すように、ユーザ辞書８９０は、ユーザの知人の姓および名のそれぞれについて、表記８９１およびその読み８９２を対にして記述する。このようなユーザ辞書８９０を用いれば、例えば、特殊な姓または名であっても、その姓のみから、または名のみから、対応する表記を特定することできる。
【０１０７】
そして、ステップＳ２１００において、辞書生成部５７０は、ユーザ辞書生成処理を終了するか否かを判断し、終了しない場合には（Ｓ２１００：ＮＯ）、ステップＳ１１００へ戻って未選択の姓名文字列を選択し、終了する場合には（Ｓ２１００：ＹＥＳ）、一連の処理を終了する。辞書生成部５７０は、例えば、ユーザ操作等により処理の終了を指示されたときや、電話帳データの全てに対する処理が終了したとき、ユーザ辞書生成処理を終了すると判断する。
【０１０８】
このような第２の段階の動作により、携帯電話機５００のユーザ辞書記憶部５８０には、ユーザ辞書が記憶される。
【０１０９】
次に、ユーザ辞書に基づいて音声認識を行う第３の段階の動作について説明する。
【０１１０】
図１５は、音声認識システム１００における音声認識処理の流れを示す模式図である。
【０１１１】
まず、携帯電話機５００の音声入力部５９０は、音声を入力し（Ｓ３１００）、音声信号を音声特徴抽出部６００に出力する（Ｓ３２００）。音声特徴抽出部６００は、音声信号から音声特徴量を抽出して特徴量データを生成し（Ｓ３３００）、生成した特徴量データを音声認識サーバ４００へ送信するとともに（Ｓ３４００）、端末内にも保持しておく（Ｓ３５００）。
【０１１２】
ここでは、「ニコノサンガアソビニキマシタ」という発話に対応する特徴量データが出力されたものとする。
【０１１３】
特徴量データを受信した音声認識サーバ４００のサーバ音声認識部４３０は、音声認識サーバ４００の音声辞書を用いて音声認識処理を行い（Ｓ３６００）、音声認識結果、文節情報、および時間情報を、携帯電話機５００に返信する（Ｓ３７００）。
【０１１４】
ここでは、図１５に示すように、「二個のさんが遊びに来ました。」という音声認識結果と、「二個の」の文節が再変換すべき文節（以下「処理対象文節」という。また、図中、処理対象文節に下線を施す。）であることを示す文節情報と、この文節の特徴量データでの位置を示す時間情報とが、返信されたものとする。処理対象文節は、例えば、音声認識結果の信頼度の低い文節、および文脈から姓または名に該当する可能性のある文節（「さん」や「君」等の文字列から推測）である。
【０１１５】
音声認識結果等を受信した携帯電話機５００の端末音声認識部６１０は、時間情報から、処理対象文節に対応する音声部分を、保存されていた特徴量データから切り出し（Ｓ３８００）、切り出した音声部分を音声認識処理の対象に設定する（Ｓ３９００）。そして端末音声認識部６１０は、ユーザ辞書を用いた音声認識処理を行う（Ｓ４０００）。
【０１１６】
ここでは、「二個の」の文節に対応して、「ニコノ」という発話に対応する音声部分が切り出される。携帯電話機５００の電話帳データに「近藤にこ乃：コンドウニコノ」が登録されており、これに対するユーザ辞書生成処理により、ユーザ辞書には「近藤：コンドウ」と、特殊な名である「にこ乃：ニコノ」とが登録されていたとする。この場合、端末音声認識部６１０は、音声処理により、「にこ乃」という音声認識結果を得る。
【０１１７】
端末音声認識部６１０は、音声認識結果を取得し（Ｓ４１００）、取得した音声認識結果に対する結果解析を行い（Ｓ４２００）、１つのテキストデータを採用する（Ｓ４３００）。そして、端末音声認識部６１０は、採用したテキストデータを、表示部６２０に表示させ、適宜、ユーザによる修正を受け付ける（Ｓ４４００）。
【０１１８】
ここでは、音声認識サーバ４００による誤った音声認識結果である「二個のさんが遊びに来ました。」が、「にこ乃さんが遊びに来ました。」という正しいテキストデータに修正される。
【０１１９】
このような第３の段階の動作により、音声認識サーバ４００の音声認識結果のうち、処理対象文節を、ユーザ辞書を用いた音声認識結果で置き換えることができる。これにより、読みや表記が特殊な姓や名を発話した場合でも、正しい音声認識結果を得ることができる。
【０１２０】
以上説明したように、本実施の形態によれば、姓名が結合して成る文字列の姓と名との区切りをより確実に判定することができる。
【０１２１】
なお、以上説明した実施の形態では、姓頻度および名頻度の抽出対象をそれぞれ２文字としたが、携帯電話機５００の処理能力や要求される精度に応じて、他の文字数を採用してもよい。但し、少なくともその文字数以上で生成された姓頻度データおよび名頻度データを用意する必要がある。
【０１２２】
また、姓頻度のみ、または、名頻度のみによって姓名の区切りを決定してもよい。この場合、処理負荷を軽減することができる。特に、姓は名に比べて特殊性が低いため、姓頻度のみとした場合でもある程度の精度を確保することができる。
【０１２３】
また、ユーザ辞書の作成に用いる姓名データは、電話帳データに登録されたものに限定されない。例えば、具体的な人名をデータベース化した姓名データベースに登録された姓名データに基づいて、ユーザ辞書を作成してもよい。
【０１２４】
また、分割の対象は、姓名に限定されるものではない。例えば、企業名、ドメイン名等、２つ以上の特殊な文字列が結合された複合文字列を含み得る各種文字列に対して、適用可能である。
【０１２５】
また、携帯電話機で生成されたユーザ辞書の内容を、音声認識サーバの音声辞書に登録するようにしてもよい。これにより、いずれかの携帯電話機の電話帳データから生成されたユーザ辞書の内容を、他の携帯電話機の音声認識にも用いることができる。
【０１２６】
また、音声入力端末とは別の装置で、姓名頻度データの生成や特徴量データ全体に対する音声認識を行う例について説明したが、音声入力端末内でこれらの処理を行うようにしてもよい。
【産業上の利用可能性】
【０１２７】
本発明に係る姓名解析方法、姓名解析装置、音声認識装置、および姓名頻度データ生成方法は、姓名が結合して成る文字列に対して、姓と名の両方が特殊な場合であってもその区切りを判定することができる姓名解析方法、姓名解析装置、音声認識装置、および姓名頻度データ生成方法として有用である。
【図面の簡単な説明】
【０１２８】
【図１】本発明の一実施の形態に係る姓名解析装置を用いた音声認識システムの構成を示すシステム構成図
【図２】本実施の形態における姓名頻度データ生成装置の構成を示すブロック図
【図３】本実施の形態における音声認識サーバの構成を示すブロック図
【図４】本実施の形態における携帯電話機の構成を示すブロック図
【図５】本実施の形態における姓データの内容の一例を示す図
【図６】本実施の形態における姓の読みの末尾部分および文字数の抽出結果の一例を示す図
【図７】本実施の形態における姓頻度データの内容の一例を示す図
【図８】本実施の形態における名頻度データの内容の一例を示す図
【図９】本実施の形態における姓の表記の末尾１文字および読みの末尾部分の抽出結果の一例を示す図
【図１０】本実施の形態における表記頻度データの内容の一例を示す図
【図１１】本実施の形態におけるユーザ辞書生成処理を示すフローチャート
【図１２】本実施の形態における電話帳データの内容の一例を示す図
【図１３】本実施の形態における姓と名とを区切る処理の概要を示す図
【図１４】本実施の形態におけるユーザ辞書の内容の一例を示す図
【図１５】本実施の形態における音声認識処理の流れを示す模式図
【符号の説明】
【０１２９】
１００  音声認識システム
２００  姓名データベース
３００  姓名頻度データ生成装置
３１０  装置通信部
３２０  姓頻度データ生成部
３３０  名頻度データ生成部
３４０  表記頻度データ生成部
３５０  姓名頻度データ格納部
３６０  姓名頻度データ送信部
４００  音声認識サーバ
４１０  サーバ通信部
４２０  音声辞書格納部
４３０  サーバ音声認識部
５００  携帯電話機
５１０  制御部
５２０  操作部
５３０  端末通信部
５４０  姓名頻度データ取得部
５５０  姓名頻度データ記憶部
５６０  電話帳データ格納部
５７０  辞書生成部
５８０  ユーザ辞書記憶部
５９０  音声入力部
６００  音声特徴抽出部
６１０  端末音声認識部
６２０  表示部
７００  通信網
【図１】
2010113678.tif 000003
【図２】
2010113678.tif 000004
【図３】
2010113678.tif 000005
【図４】
2010113678.tif 000006
【図５】
2010113678.tif 000007
【図６】
2010113678.tif 000008
【図７】
2010113678.tif 000009
【図８】
2010113678.tif 000010
【図９】
2010113678.tif 000011
【図１０】
2010113678.tif 000012
【図１１】
2010113678.tif 000013
【図１２】
2010113678.tif 000014
【図１３】
2010113678.tif 000015
【図１４】
2010113678.tif 000016
【図１５】
2010113678.tif 000017