(57)【特許請求の範囲】
【請求項１】
人間の所定の属性を示す属性値に対応付けられた言語モデルであって、前記属性値で示される属性を持つ１または複数の人間が発声する音声または記す文字において出現する語彙と、その出現頻度とを表すデータを含むエントリを複数有する言語モデルが、複数の属性値それぞれについて集められてなる言語モデル群をクラスタリングするクラスタリングシステムであって、
前記言語モデル群に含まれる語彙の和集合を表す和集合データを生成し、前記和集合データを用いて、前記語彙の和集合と各語彙の出現頻度とを含む和集合言語モデルを、前記言語モデル群に含まれる言語モデルそれぞれについて作成することにより、和集合言語モデル群を作成する和集合言語モデル作成部と、
前記和集合言語モデル群を分類したクラスタごとに平均を求め、その平均と和集合言語モデルとの距離を基に前記和集合言語モデル群を新しいクラスタに分類する処理を繰り返すことにより、前記和集合言語モデル群を複数のクラスタに分類し、各クラスタに含まれる１または複数の前記和集合言語モデル群を表すクラスタデータを生成するクラスタリング部とを備え、
前記和集合言語モデル作成部は、それぞれの言語モデルについて和集合言語モデルを作成する際に、前記和集合データに含まれる語彙のうち当該言語モデルに含まれている語彙については、当該言語モデルにおける当該語彙の出現頻度を、当該語彙と対応付けて和集合言語モデルのエントリとして記録し、前記和集合データに含まれる語彙のうち当該言語モデルに含まれていない語彙については、出現頻度が０であることを示すデータを当該語彙に対応付けて和集合言語モデルのエントリとして記録することで、同じ数のエントリを有する前記和集合言語モデル群を言語モデルごとに作成し、
前記クラスタリング部は、前記同じエントリ数を有する、言語モデルごとに作成された和集合言語モデル群に対して、前記クラスタリングを行う、クラスタリングシステム。
【請求項２】
前記クラスタリング部は、前記クラスタデータで表される各クラスタに対応するクラスタリング後言語モデルを、各クラスタに含まれる和集合言語モデルを基にさらに生成する、請求項１に記載のクラスタリングシステム。
【請求項３】
前記和集合言語モデルまたは前記クラスタリング後言語モデルに含まれるエントリのうち、前記出現頻度が予め決められた閾値に満たない場合エントリを削除するエントリを削除するエントリ削除部をさらに備える、請求項２に記載のクラスタリングシステム。
【請求項４】
前記和集合言語モデルまたは前記クラスタリング後言語モデルに含まれるエントリのうち、出現頻度が高い順に上位Ｎ個のエントリを残し、残りのエントリを削除するエントリ削除部をさらに備える、請求項２に記載のクラスタリングシステム。
【請求項５】
人間の所定の属性を示す属性値に対応付けられた音響モデルであって、前記属性値で示される属性を持つ人間の音声に含まれる音響と、その出現頻度とを表すデータを含むエントリを複数有する音響モデルが複数の属性値それぞれについて、集められてなる音響モデル群において、それぞれの音響モデルを、同じの属性値についての前記和集合言語モデルに対応付けて属性値ごとの連結モデルとして記録する連結記録部をさらに備え、
前記クラスタリング部は、前記連結記録部によって属性値ごとに記録された連結モデル群に対してクラスタリングを行って、前記連結モデル群を複数のクラスタに分類し、各クラスタを表すクラスタデータを生成する、請求項１に記載のクラスタリングシステム。
【請求項６】
前記連結記録部は、前記音響モデルのエントリに含まれる出現頻度を表すデータと、和集合言語モデルのエントリに含まれる出現頻度を表すデータとの少なくとも１つに重み係数を掛ける重み付け部をさらに備え、
当該重み付け部により重み係数が掛けられた出現頻度を表すデータを含むエントリを含む前記音響モデルまたは前記和集合言語モデルが、属性値ごとに和集合言語モデルまたは音響モデルと対応付けられて前記連結モデルとして記録される、請求項５に記載のクラスタリングシステム。
【請求項７】
請求項１に記載のクラスタリングシステムで生成されたクラスタデータと作成された和集合言語モデルを用いて、人間の属性を推定する属性推定システムであって、
前記人間の言語情報を入力する入力部と、
前記入力部で入力された言語情報のスコアを、前記和集合言語モデルを用いて前記クラスタデータが表すクラスタごとに計算するスコア計算部と、
前記クラスタごとのスコアに基づいて、人間の属性を示すデータを生成することにより属性を推定する属性推定部とを備える属性推定システム。
【請求項８】
請求項５に記載のクラスタリングシステムで生成されたクラスタデータと作成された和集合言語モデルを用いて、人間の属性を推定する属性推定システムであって、
人間の音声を表すデータを入力する入力部と、
前記入力部で入力された音声の言語スコアを、前記和集合言語モデルを用いて前記クラスタデータが表すクラスタごとに計算する言語スコア計算部と、
前記入力部で入力された音声の音響スコアを、前記クラスタデータが表すクラスタごとに計算する音響スコア計算部と、
前記クラスタごとの音響スコアおよび前記クラスタごとの言語スコアに基づいて、前記人間の属性を示すデータを生成することで、属性を推定する属性推定部とを備える属性推定システム。
【請求項９】
人間の所定の属性を示す属性値に対応付けられた言語モデルであって、その属性値で示される属性を持つ１または複数の人間が発生する音声または記す文字において出現する語彙と、その出現頻度とを表すデータを含むエントリを複数有する言語モデルが複数の属性値について集められてなる言語モデル群を、コンピュータを用いてクラスタリングするクラスタリング方法であって、
前記コンピュータが備える和集合言語モデル作成部が、前記言語モデル群に含まれる語彙の和集合を表す和集合データを生成し、前記和集合データを用いて、前記語彙の和集合と各語彙の出現頻度と含む和集合言語モデルを、前記言語モデル群に含まれる言語モデルそれぞれについて作成することにより、和集合言語モデル群を作成する和集合作成工程と、
前記コンピュータが備えるクラスタリング部が、前記和集合言語モデル群を分類したクラスタごとに平均を求め、その平均と和集合言語モデルとの距離を基に前記和集合言語モデル群を新しいクラスタに分類する処理を繰り返すことにより、前記和集合言語モデル群を複数のクラスタに分類し、各クラスタに含まれる１または複数の前記和集合言語モデル群を表すクラスタデータを生成する工程とを備え、
前記和集合作成工程において、前記和集合言語モデル作成部は、それぞれの言語モデルについて和集合言語モデルを作成する際に、前記和集合データに含まれる語彙のうち当該言語モデルに含まれている語彙については、当該言語モデルにおける当該語彙の出現頻度を、当該語彙と対応付けて和集合言語モデルのエントリとして記録し、前記和集合データに含まれる語彙のうち当該言語モデルに含まれていない語彙については、出現頻度が０であることを示すデータを当該語彙に対応付けて和集合言語モデルのエントリとして記録することで、同じ数のエントリを有する前記和集合言語モデルを言語モデルごとに作成し、
前記クラスタリング部は、前記同じ数のエントリを有する、言語モデルごとに作成された和集合言語モデル群を、前記クラスタに分類する、クラスタリング方法。
【請求項１０】
人間の所定の属性を示す属性値に対応付けられた言語モデルであって、前記属性値で示される属性を持つ１または複数の人間が発生する音声または記す文字において出現する語彙と、その出現頻度とを表すデータを含むエントリを複数有する言語モデルが、複数の属性値それぞれにについて集められてなる言語モデル群をクラスタリングする処理をコンピュータに実行させるクラスタリングプログラムであって、
前記言語モデル群に含まれる語彙の和集合を表す和集合データを生成し、前記和集合データを用いて、前記語彙の和集合と各語彙の出現頻度とを含む和集合言語モデルを、前記言語モデル群に含まれる言語モデルそれぞれについて作成することにより、和集合言語モデル群を作成する和集合言語モデル作成処理と、
前記和集合言語モデル群分類したクラスタごとに平均を求め、その平均と和集合言語モデルとの距離を基に前記和集合言語モデル群を新しいクラスタに分類する処理を繰り返すことにより、前記和集合言語モデル群を複数のクラスタに分類し、各クラスタに含まれる１または複数の前記和集合言語モデル群を表すクラスタデータを生成するクラスタリング処理とをコンピュータに実行させ、
前記和集合言語モデル作成処理においては、それぞれの言語モデルについて和集合言語モデルを作成する際に、前記和集合データに含まれる語彙のうち当該言語モデルに含まれている語彙については、当該言語モデルにおける当該語彙の出現頻度を、当該語彙と対応付けて和集合言語モデルのエントリとして記録し、前記和集合データに含まれる語彙のうち当該言語モデルに含まれていない語彙については、出現頻度が０であることを示すデータを当該語彙に対応付けて和集合言語モデルのエントリとして記録することで、同じ数のエントリを有する前記前記和集合言語モデルを言語モデルごとに作成する処理をコンピュータに実行させ、
前記クラスタリング処理では、前記同じ数のエントリを有する、言語モデルごとに作成された和集合言語モデル群を、前記クラスタに分類する処理をコンピュータに実行させる、クラスタリングプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、言語モデルをクラスタリングするクラスタリングシステム、クラスタリング方法、クラスタリングプログラムおよびクラスタリングシステムを用いた属性推定システムに関する。
【背景技術】
【０００２】
従来、音響モデルを用いて、属性推定や音声認識を行うシステムが知られている。図３４は、従来の属性推定装置におけるデータの流れを示す図である。図３４に示す属性推定装置９０１は、話者の属性として例えば、年齢層を推定するための装置である。属性推定装置９０１は、話者が発声した入力音声を入力し、予め記録された複数の年齢層についての音響モデルを用いて、その話者の年齢層を推定し、推定結果を出力する。図３４に示す例では、０〜１０才、１１才〜２０才・・・６１才〜７０才、７１才以上の年齢区分それぞれにおいて発生される音声に含まれる音響を集めた音響モデルが作成されている。従来、人間がこのような年齢区分を決めて音響モデルを作成していた。
【０００３】
人間が定める年齢区分では、例えば、声変わりの時期や、大人の声が老人のしわがれた声に変化する時期や、若者言葉が大人の言葉に変化する時期や、大人の言葉が老人の言葉に変化する時期などを音響モデルの年齢区分に反映させるのが困難であった。このように、音響モデルの属性の区分を人間が適当に定めることは、属性推定装置の性能向上の妨げとなっていた。
【０００４】
属性の区分を的確にとらえる為には、大量の話者のデータで構成されたモデルをクラスタリングすることが好ましい。従来、大量の話者の音声データで構成された音響モデルをクラスタリングする技術が開発されてきた。例えば、複数の話者の音声波形データからそれぞれの話者の声道形状の特徴量を推定し、この特徴量に基づいて話者をクラスタリングするクラスリング装置が提案されている（例えば、特許文献１参照）。また、話者の音声データから得られる声道長の情報と、発声の仕方や癖による影響の補正情報とに基づいて、話者の特徴量を抽出し、この特徴量を用いて話者をクラスタリングする方法も提案されている。（例えば、特許文献２参照）。このようなクラスタリングにより、音響モデルの属性の区分が的確に設定され、クラスタリングされた音響モデルが得られる。
【０００５】
図３５は、言語モデルとクラスタリングされた音響モデルを用いて属性推定を行う従来の属性推定装置におけるデータの流れを示す図である。音響モデル群は、話者の年齢によってクラスタリングされており、音響モデル１、音響モデル２・・・音響モデルｎはクラスタ別に記録された音響モデルである。属性推定装置９０２は、話者が発声した入力音声を入力し、複数の年齢層にクラスタリングされた音響モデル群と、言語モデルとを用いて、その話者の年齢層を推定し、推定結果を出力する。図３５に示す属性推定装置９０２は、音響モデルとして年齢別のクラスタにクラスタリングされたものを用いているが、言語モデルは全ての年齢区分に対して同じものを用いている。
【０００６】
そのため、属性推定装置９０２では、年齢別の声の違いは識別できても、年齢別の言葉の違いは識別できないことになる。日本語について具体的な例をあげると、若者なら「僕は元気です。」という所を、お年寄りは「わしは元気じゃ。」と異なる話し方をする可能性がある。
【０００７】
また、英語について具体的な例を挙げると、お年寄りは、"Ｎａｔｕｒｅ  ｃａｌｌｓ"という表現を使う可能性があるが、若者は、このような表現を使わず、"Ｉ  ｈａｖｅ  ｔｏ  ｇｏ  ｔｏ  ｂａｔｈｒｏｏｍ"という表現を使う。
【０００８】
このような言語情報を考慮に入れた属性推定を可能にするには、複数の話者が発生する音声または記す文字において出現する語彙を集めた言語モデルをクラスタリングすることが必要である。
【特許文献１】特開平１１−１７５０９０号公報
【特許文献２】特開２００２−１８２６８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来、音声データに基づいて話者をクラスタリングする方法は開発されていたが、言語モデルに基づいて話者をクラスタリングする方法は確立されていない。すなわち、言語モデルをクラスタリングする方法は開発されていない。言語モデルのクラスタリングが難しかったのは、異なる言語モデルには異なる語彙が含まれるので、異なる複数の言語モデルをクラスタリングする際に、同じベクトルとして単純には処理できないためである。
【００１０】
簡単な例をあげると、日本語の一人称を表す単語として、「ぼく」「わし」「わたし」「おれ」等複数の単語が存在する。複数の一人称のうちどの単語がよく使われるかは、年齢、性別によって異なる。一般的に、７０才男性は一人称として「わし」をよく使うが、２０才男性は一人称として「ぼく」をよく使う。そのため、７０才男性の言語モデルには「わし」という単語が含まれるが、２０才男性の言語モデルには「わし」という単語は含まれず、代わりに「僕」という単語が含まれることになる。
【００１１】
また、英語について簡単な例をあげると、７０才男声の言語モデルには“Ｎａｔｕｒｅ  ｃａｌｌｓ”という語句が含まれるが、２０才男声の言語モデルには“Ｎａｔｕｒｅ  ｃａｌｌｓ”という語句は含まれず、代わりに“ｔｏ  ｂａｔｈｒｏｏｍ”という語句が含まれる等の例が挙げられる。
【００１２】
上記課題に鑑み、本発明は、複数の話者が発生する音声または記す文字に出現する語彙を集めた言語モデルをクラスタリングすることができるクラスタリングシステム、クラスタリング方法、クラスタリングプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明にかかるクラスタリングシステムは、人間の所定の属性を示す属性値に対応付けられた言語モデルであって、前記属性値で示される属性を持つ１または複数の人間が発声する音声または記す文字において出現する語彙と、その出現頻度とを表すデータを含むエントリを複数有する言語モデルが、複数の属性値それぞれについて集められてなる言語モデル群をクラスタリングするクラスタリングシステムであって、前記言語モデル群に含まれる語彙の和集合を表す和集合データを生成し、前記和集合データを用いて、前記語彙の和集合と各語彙の出現頻度とを含む和集合言語モデルを、前記言語モデル群に含まれる言語モデルそれぞれについて作成することにより、和集合言語モデル群を作成する和集合言語モデル作成部と、前記和集合言語モデル群に対して所定の方法に基づきクラスタリングを行って、前記和集合言語モデル群を複数のクラスタに分類し、各クラスタに含まれる１または複数の前記和集合言語モデル群を表すクラスタデータを生成するクラスタリング部とを備え、前記和集合言語モデル作成部は、ある言語モデルについて和集合言語モデルを作成する際に、前記和集合データに含まれる語彙のうち当該言語モデルに含まれている語彙については、当該言語モデルにおける当該語彙の出現頻度を、当該語彙と対応付けて和集合言語モデルのエントリに記録し、前記和集合データに含まれる語彙のうち当該言語モデルに含まれていない語彙については、出現頻度が０であることを示すデータを当該語彙に対応付けて和集合言語モデルのエントリに記録する。
【００１４】
和集合言語モデル作成部は、ある言語モデルについて和集合言語モデルを作成する場合、和集合データに含まれる語彙のうち、その言語モデルに含まれている語彙については、基となる言語モデルのその語彙の出現頻度を、その語彙と対応付けて和集合言語モデルのエントリに記録する。さらに、和集合言語モデル作成部は、和集合データに含まれる語彙のうちその言語モデルに含まれていない語彙については、出現頻度が０であることを示すデータを当該語彙に対応付けて和集合言語モデルに記録する。これにより、和集合言語モデルに含まれるエントリ数は、前記和集合の数となる。そのため、各言語モデルに対応して作成される和集合言語モデル群に含まれる和集合言語モデルのエントリ数はすべて同じになる。すなわち、和集合言語モデル作成部は、同じ数のエントリを有する複数の和集合言語モデルを言語モデルごとに作成することができる。
【００１５】
これにより、クラスタリング部は、同じ数のエントリを有する複数の和集合言語モデルに対してクラスタリング処理を行うことになる。その結果、クラスタリング部は、複数の和集合言語モデルを同じベクトルとしてクラスタリング処理することができる。和集合言語モデルは言語モデルごとに作成されているので、複数の和集合言語モデルをクラスタリング処理することは、すなわち、対応する複数の言語モデルをクラスタリングすることになる。これにより、言語モデル群に含まれる複数の言語モデルそれぞれが有するエントリの数が異なる場合であっても、言語モデル群のクラスタリングが可能になる。その結果、複数の言語モデル群のクラスタリングが可能になる。
【００１６】
本発明にかかるクラスタリングシステムにおいて、前記クラスタリング部は、前記クラスタデータで表される各クラスタに対応するクラスタリング後言語モデルを、各クラスタに含まれる和集合言語モデルを基にさらに生成することが好ましい。
【００１７】
クラスタリング部は、各クラスタに対応するクラスタリング後言語モデルを生成するので、各クラスタを代表する言語モデルがクラスタリング後言語モデルとして生成される。
【００１８】
本発明にかかるクラスタリングシステムは、前記和集合言語モデルまたは前記クラスタリング後言語モデルに含まれるエントリのうち、前記出現頻度が予め決められた閾値に満たないエントリを削除するエントリ削除部をさらに備えることが好ましい。
【００１９】
エントリ削除部は、出現頻度が低く、登録しておいてもあまり意味のないエントリを削除することができる。これにより、エントリ削除部は、和集合言語モデルまたはクラスタリング後言語モデルのエントリ数を減らして、データサイズを小さくすることができる。
【００２０】
本発明にかかるクラスタリングシステムは、前記和集合言語モデルまたは前記クラスタリング後言語モデルに含まれるエントリのうち、出現頻度が高い順に上位Ｎ個のエントリを残し、残りのエントリを削除するエントリ削除部をさらに備えることが好ましい。
【００２１】
これにより、エントリ削除部は、出現頻度が低いエントリを削除することができる。すなわち、エントリ数を一定数（N個）以内に抑えることができる。その結果、エントリ削除部は、和集合言語モデルまたはクラスタリング後言語モデルのエントリ数を減らして、データサイズを小さくすることができる。
【００２２】
本発明にかかるクラスタリングシステムは、人間の所定の属性を示す属性値に対応付けられた音響モデルであって、前記属性値で示される属性を持つ人間の音声に含まれる音響と、その出現頻度とを表すデータを含むエントリを複数有する音響モデルが複数の属性値それぞれについて、集められてなる音響モデル群において、それぞれの音響モデルを、同じの属性値についての前記和集合言語モデルに対応付けて属性値ごとの連結モデルとして記録する連結記録部をさらに備え、前記クラスタリング部は、前記連結記録部によって属性値ごとに記録された連結モデル群に対してクラスタリングを行って、前記連結モデル群を複数のクラスタに分類し、各クラスタを表すクラスタデータを生成することが好ましい。
【００２３】
連結記録部は、ある属性値の音響モデルとその属性値の和集合言語モデルとを対応付けて記録するので、その属性値の連結モデルには、その属性値についての音響モデルと和集合言語モデルが含まれる。このような連結モデルが属性値ごとに複数記録される。クラスタリング部は、この複数の連結モデルに対してクラスタリングを行うので、言語および音声の両方を加味したクラスタリングがなされる。その結果、精度の高いクラスタリングが可能となる。
【００２４】
本発明にかかるクラスタリングシステムにおいて、前記連結記録部は、前記音響モデルのエントリに含まれる出現頻度を表すデータと、和集合言語モデルのエントリに含まれる出現頻度を表すデータとの少なくとも１つに重み係数を掛けて、音響モデルにおける出現頻度の散布度と和集合言語モデルにおける出現頻度の散布度との少なくとも１つを調整する重み付け部をさらに備えることが好ましい。
【００２５】
音響モデルにおける出現頻度の散布度と和集合言語モデルにおける出現頻度の散布度とが異なる場合であっても、上述のように重み付け部によって両者の散布度を調整することができる。
【００２６】
本発明にかかる属性推定システムは、本発明にかかるクラスタリングシステムで生成されたクラスタデータと作成された和集合言語モデルを用いて、人間の属性を推定する属性推定システムであって、前記人間の言語情報を入力する入力部と、前記入力部で入力された言語情報のスコアを、前記和集合言語モデルを用いて前記クラスタデータが表すクラスタごとに計算するスコア計算部と、前記クラスタごとのスコアに基づいて、人間の属性を示すデータを生成することにより属性を推定する属性推定部とを備える。
【００２７】
スコア計算部は、属性値ごとの言語モデルをクラスタリングすることによって得られた各クラスタについて、入力された語彙のスコアを計算し、属性推定部は、このスコアに基づいて属性を推定するので、言語情報を考慮に入れた属性別の特徴を高精度で識別することができる。
【００２８】
本発明にかかる属性推定システムは、クラスタリングシステムで生成されたクラスタデータと作成された和集合言語モデルを用いて、人間の属性を推定する属性推定システムであって、人間の音声を表すデータを入力する入力部と、前記入力部で入力された音声の言語スコアを、前記和集合言語モデルを用いて前記クラスタデータが表すクラスタごとに計算する言語スコア計算部と、前記入力部で入力された音声の音響スコアを、前記クラスタデータが表すクラスタごとに計算する音響スコア計算部と、前記クラスタごとの音響スコアおよび前記クラスタごとの言語スコアに基づいて、前記人間の属性を示すデータを生成することで、属性を推定する属性推定部とを備える。
【００２９】
本発明にかかるクラスタリング方法は、人間の所定の属性を示す属性値に対応付けられた言語モデルであって、その属性値で示される属性を持つ１または複数の人間が発生する音声または記す文字において出現する語彙と、その出現頻度とを表すデータを含むエントリを複数有する言語モデルが複数の属性値について集められてなる言語モデル群を、コンピュータを用いてクラスタリングするクラスタリング方法であって、前記コンピュータが備える和集合言語モデル作成部が、前記言語モデル群に含まれる語彙の和集合を表す和集合データを生成し、前記和集合データを用いて、前記語彙の和集合と各語彙の出現頻度と含む和集合言語モデルを、前記言語モデル群に含まれる言語モデルそれぞれについて作成することにより、和集合言語モデル群を作成する和集合作成工程と、前記コンピュータが備えるクラスタリング部が、前記和集合言語モデル群に対して所定の方法に基づきクラスタリングを行って、前記和集合言語モデル群を複数のクラスタに分類し、各クラスタに含まれる１または複数の前記和集合言語モデル群を表すクラスタデータを生成する工程とを備え、前記和集合作成工程において、前記和集合言語モデル作成部は、ある言語モデルについて和集合言語モデルを作成する際に、前記和集合データに含まれる語彙のうち当該言語モデルに含まれている語彙については、当該言語モデルにおける当該語彙の出現頻度を、当該語彙と対応付けて和集合言語モデルのエントリに記録し、前記和集合データに含まれる語彙のうち当該言語モデルに含まれていない語彙については、出現頻度が０であることを示すデータを当該語彙に対応付けて和集合言語モデルのエントリに記録する。
【００３０】
人間の所定の属性を示す属性値に対応付けられた言語モデルであって、前記属性値で示される属性を持つ１または複数の人間が発生する音声または記す文字において出現する語彙と、その出現頻度とを表すデータを含むエントリを複数有する言語モデルが、複数の属性値それぞれにについて集められてなる言語モデル群をクラスタリングする処理をコンピュータに実行させるクラスタリングプログラムであって、前記言語モデル群に含まれる語彙の和集合を表す和集合データを生成し、前記和集合データを用いて、前記語彙の和集合と各語彙の出現頻度とを含む和集合言語モデルを、前記言語モデル群に含まれる言語モデルそれぞれについて作成することにより、和集合言語モデル群を作成する和集合言語モデル作成処理と、前記和集合言語モデル群に対して所定の方法に基づきクラスタリングを行って、前記和集合言語モデル群を複数のクラスタに分類し、各クラスタに含まれる１または複数の前記和集合言語モデル群を表すクラスタデータを生成するクラスタリング処理とをコンピュータに実行させ、前記和集合言語モデル作成処理においては、ある言語モデルについて和集合言語モデルを作成する際に、前記和集合データに含まれる語彙のうち当該言語モデルに含まれている語彙については、当該言語モデルにおける当該語彙の出現頻度を、当該語彙と対応付けて和集合言語モデルのエントリに記録し、前記和集合データに含まれる語彙のうち当該言語モデルに含まれていない語彙については、出現頻度が０であることを示すデータを当該語彙に対応付けて和集合言語モデルのエントリに記録する処理をコンピュータに実行させる。
【発明の効果】
【００３１】
本発明によれば、複数の話者が発生する音声または記す文字に出現する語彙を集めた言語モデルををクラスタリングすることができるクラスタリングシステム、クラスタリング方法、クラスタリングプログラムを提供することができる。
【発明を実施するための最良の形態】
【００３２】
（実施の形態１）
図１は、本実施形態にかかるクラスタリングシステムおよび属性推定システムの構成を示す機能ブロック図である。図１に示す属性推定システム２は、入力部２１、スコア計算部２２、属性推定部２３を含み、クラスタリング後言語モデル群記録部１０３に接続されている。クラスタリングシステム１は、クラスタリング部１４、エントリ削除部１３、和集合言語モデル作成部１５を含み、クラスタリング前言語モデル群記録部１０６およびクラスタリング後言語モデル群記録部１０３に接続されている。
【００３３】
属性推定システム２およびクラスタリングシステム１は、パーソナルコンピュータ、サーバ、ワークステーション等のコンピュータにプログラムをインストールすることにより実現される。すなわち、入力部２１、スコア計算部２２、属性推定部２３、クラスタリング部１４、エントリ削除部１３、和集合言語モデル作成部１５の機能は、コンピュータのＣＰＵが所定のプログラムを実行することにより実現される。したがって、入力部２１、スコア計算部２２、属性推定部２３、クラスタリング部１４、エントリ削除部１３、和集合言語モデル作成部１５の機能をコンピュータで実現するためのプログラムまたはそれを記録した記録媒体も本発明の一実施態様である。
【００３４】
また、クラスタリング前言語モデル群記録部１０６およびクラスタリング後言語モデル群記録部１０３は、コンピュータの内蔵記憶装置またはこのコンピュータからアクセス可能な記憶装置によって具現化される。なお、属性推定システム２およびクラスタリングシステム１は、１台のコンピュータで構成することもできるし、複数のコンピュータで構成することもできる。
【００３５】
（クラスタリングシステムの構成）
クラスタリング前言語モデル群記録部１０６には、複数の言語モデルが記録されている。各言語モデルは、それぞれ人間の属性を示す属性値に対応付けられている。すなわち、言語モデルは、人間の属性を示す属性値ごとに設けられている。各言語モデルは、その言語モデルに対応付けられた属性値の属性を持つ人間が発生する音声または記す言語において出現する語彙と、その語彙の出現頻度とを表すデータを含むエントリを複数有する。
【００３６】
人間の属性は、例えば、人間の性質、体質、習慣、習性、帰属する組織、社会的地位等である。属性値は、人間の属性をデータで表したものである。属性を示す属性値の具体例としては、年齢、性別、職業、役職、年収、居住地域、勤務地、学校、勤務先、趣味または家族構成を表すデータまたはそのようなデータの組み合わせが挙げられる。
【００３７】
クラスタリングシステム１は、クラスタリング前言語モデル群記録部１０６に記録された言語モデル群に対してクラスタリング処理を行い、言語モデル間の類似度に基づいて言語モデル群を複数の部分集合に分類する。各部分集合はクラスタと呼ばれる。クラスタリングシステム１は、各クラスタに対応する言語モデルを生成し、それらをクラスタリング後言語モデルとしてクラスタリング後言語モデル群記録部１０３に記録する。
【００３８】
ここで、言語モデルをクラスタリングする処理の概要について具体例を挙げて説明する。図２は、言語モデルのクラスタリングの概要を説明するための図である。図２には、クラスタリング前言語モデル群ＢＣの例と、クラスタリング後言語モデル群ＡＣの例が示されている。図２に示すクラスタリング前言語モデル群ＢＣは、１才ずつの年齢区分で作成された言語モデルの集合である。
【００３９】
例えば、５才の言語モデルは、１人以上の５才の人間が発した語彙または記した語彙を大量に記録したデータである。５才の言語モデルは、言語モデルに含まれる語彙を発した人間の属性（この例では年齢）が「５才」であることを示す属性値と対にして記録される。このように、各言語モデルには、属性を示す属性値が対応付けられて記録される。
【００４０】
また、それぞれの言語モデルは、例えば、語彙と、その語彙の出現頻度とを含むエントリの集合で構成される。なお、エントリは、言語モデルにおけるデータの単位である。本実施形態においては、１つのエントリには、語彙と、その語彙の出現頻度が含まれているが、１つのエントリに含まれるデータは、上記の語彙と出現頻度に限られない。
【００４１】
言語モデルの基となるデータを収集する方法としては、例えば、人間の自然な発声を大量に録音して書き起こしたり、新聞記事、雑誌等の文献やテープ、ビデオ、ＣＤ、ＤＶＤ等の記録媒体からコーパスを集めたり、メールやチャットなどの文章を集めたりするなど様々な方法がある。
【００４２】
クラスタリングシステム１は、１才おきの区分で作成された言語モデルの集合（クラスタリング前言語モデル群）を、含まれる語彙の分布の言語モデル間における類似度を計算し、それに基づいて複数の自動的に部分集合（クラスタ）に分類する。そして、それぞれの部分集合（クラスタ）に対応する言語モデルがクラスタリング後言語モデルとして生成される。後述する公知のクラスタリング方法を用いて、上記のクラスタリング前言語モデル群を部分集合（クラスタ）に分割する際には、後述するクラスタリング方法が用いられる。これにより、クラスタリング後言語モデル群ＡＣが作成される。図２に示すクラスタリング後言語モデル群ＡＣは、一例として、５〜８才、９〜１２才、・・・７６才以上の年齢区分で作成されたクラスタリング後言語モデルが含まれている。すなわち、クラスタリングによって、１才おきの区分で作成された言語モデルの集合は、５〜８才、９〜１２才、・・・７６才の各クラスタに分類されている。
【００４３】
クラスタリング後言語モデルは、それぞれの対応する属性を示す属性値と対にして記録される。例えば、５〜８才の年齢区分のクラスタリング後言語モデルには、年齢が「５〜８才」であることを示す属性値が対応付けられて記録される。
【００４４】
言語モデルの集合を計算により自動的にクラスタリングすることにより、人間が適当に属性区分を定めた場合に比べて、より適切な統計的根拠のある属性区分が得られる。すなわち、図２に示す例では、クラスタリングシステム１は、大量の言語データを含むクラスタリング前言語モデル群ＢＣを基にして、年齢によって変化する言語の傾向を的確にとらえた年齢区分で分類されたクラスタリング後言語モデル群ＡＣを作成することができる。このような、クラスタリング後言語モデル群ＡＣは、属性推定システム２で、入力言語情報から年齢を推定する処理に有効に用いられる。
【００４５】
なお、ここでは、各言語モデルに対応付けられる属性値が年齢を示すデータである場合、すなわち、年齢別に記録された言語モデルをクラスタリングする例を説明した。しかし、各言語モデルに対応付けられる属性値は年齢を示すデータに限られない。年齢の他にも、例えば、性別、職業、役職、年収、居住地域、趣味または家族構成またはこれらの組み合わせを示すデータを、各言語モデルに対応付けられる属性値とすることができる。
【００４６】
例えば、都道府県単位の言語モデルを用意することで、出身地推定を行うことができる。また、例えば、国、州、都道府県等ごとに記録されたクラスタリング前言語モデルを用意して、それをクラスタリングすることにより言語または方言別の言語モデルを作成することも可能である。また、十分なデータが集められるのなら、市町村単位のモデルをクラスタリング前言語モデル群としてもよい。
【００４７】
以上がクラスタリング処理の概要である。次に、クラスタリングシステム１の各機能ブロックについて説明する。
【００４８】
クラスタリングシステム１において、和集合言語モデル作成部１５は、クラスタリング前言語モデル群に含まれる語彙の和集合を表す和集合データを作成し、和集合データを用いて和集合言語モデルを作成する。和集合言語モデル作成部１５は、和集合データとクラスタリング前言語モデル群に含まれるそれぞれ言語モデルとを比較する。ぞれぞれの言語モデルにおいて和集合データ含まれる語彙に対応する語彙がある場合は、その語彙と言語モデルの出現頻度を、その言語モデルの和集合言語モデルのエントリに出力し、対応する語彙がない場合は、その語彙と出現頻度として０を和集合言語モデルのエントリに出力する。これにより、クライスタリング前言語モデルに含まれる各言語モデルに対応する和集合言語モデルが作成される。すなわち、複数の属性値に対応する和集合言語モデルが作成される。
【００４９】
クラスタリング部１４は、和集合言語モデル作成部１５で作成された和集合言語モデル群に対してクラスタリングを行う。その結果、和集合言語モデル群は属性に応じた複数のクラスタに分類され、各クラスタを表すクラスタデータが生成される。
【００５０】
クラスタデータは、各クラスタに含まれる和集合言語モデルを特定するためのデータである。例えば、各クラスタに含まれる言語モデル、和集合言語モデルまたは人間の属性等を示すデータがクラスタデータに含まれる。
【００５１】
クラスタリング部１４は、前記クラスタリングデータと和集合言語モデル群に基づいて、各クラスタに対応するクラスタリング後言語モデルを生成する。生成された複数のクラスタリング後言語モデルは、クラスタリング後言語モデル群として、クラスタリング後言語モデル群記録部１０３に記録される。
【００５２】
エントリ削除部１３は、クラスタリング後言語モデル群に含まれる言語モデルのエントリのうち、出現頻度が低いエントリを削除する。例えば、出現頻度が予めきめられた閾値に満たないエントリや、出現頻度が高い上位Ｎ個以外のエントリを削除する。その結果、クラスタリング後言語モデル群記録部１０３に記録されたデータのサイズを小さくすることができる。ただし、エントリ削除部１３は、単純に出現頻度が低いエントリを削除するのではなく、言語モデルを特徴づけるようなエントリは残すようにしてもよい。例えば、エントリ削除部１３は、特定の言語モデルにしか出現しないようなエントリは、出現頻度が前記閾値に満たない場合であっても削除せずに残すようにしてもよい。
【００５３】
（属性推定システムの構成）
次に、図１に示す属性推定システム２の構成について説明する。属性推定システム２は、人間の言語情報を入力し、その人間の属性を示す情報を出力するシステムである。属性推定システム２は、例えば、音声対話アプリケーション等の上位プログラムからある人間の発した言語情報を受け取って、その人間の属性を推定し、属性を示すデータを上位プログラムへ返す機能を有する。また、属性推定システム２は、クラスタリングシステム１で生成されたクラスタリング後言語モデルを用いて人間の属性を推定する処理を行う。
【００５４】
属性推定システム２において、入力部２１は言語情報を入力する。入力部２１で入力される言語情報は、例えば、属性推定の対象となる人間の語彙を表すテキストデータ、人間が入力した一つ、または、複数の文章を表わすテキストデータ等である。入力部２１は、例えば、マイクロフォン等で入力された話者の音声が、音声認識システム等でテキストデータに変換されたものを言語情報として読み込んでもよいし、キーボード、テンキーまたはタブレット等の入力デバイスを介して話者が入力した文字をテキストデータとしたものを言語情報として読み込んでもよい。
【００５５】
スコア計算部２２は、クラスタリング後言語モデル群記録部１０３に記録された各クラスタに対応するクラスタリング後言語モデルそれぞれについて、入力部２１で入力された言語情報が示す語彙の出現頻度を示すスコア（尤度）を計算する。これにより、クラスタごとのスコアが計算される。スコアは、例えば、各クラスタリング後言語モデルに含まれる語彙と、入力された言語情報が示す語彙とを比較することで、言語モデルごとに計算される。
【００５６】
属性推定部２３は、スコア計算部２２が計算したクラスタごとのスコアに基づいて、人間の属性を示すデータを生成する。属性推定部２３は、例えば、クラスタリング後の言語モデルのうち、最もスコアが高い言語モデルに対応する属性を人間の属性とすることができる。人間の属性を示すデータは、上位プログラムに返される。また、属性を示すデータは、例えば、ディスプレイ、プリンタ、スピーカ等の出力装置により出力されてもよい。
【００５７】
（クラスタリングシステム１の動作例）
次に、クラスタリングシステム１の動作の例を説明する。図３は、クラスタリングシステム１が、言語モデルをクラスタリングする処理の例を示すフローチャートである。
【００５８】
まず、和集合言語モデル作成部１５が、クラスタリング前言語モデル群記録部１０６に記録された複数の言語モデルについて、それぞれ和集合言語モデルを作成する（Ｏｐ１、Ｏｐ２：Ｎｏ）。
【００５９】
ここで、１つの言語モデルについて和集合言語モデルを作成する処理について説明する。まず、和集合言語モデル作成部１５は、クラスタリング前言語モデル群記録部１０６に格納されている言語モデルに含まれる語彙の和集合を表す和集合データを生成する。和集合データに含まれる語彙のうち、前記言語モデルに含まれる語彙については、その語彙と、言語モデルが表すその語彙の出現頻度を対応付けて和集合言語モデルのエントリとして記録し、前記言語モデルに含まれない語彙については、出現頻度が０であることを示すデータをその語彙に対応付けて和集合モデルのエントリに記録する。これにより前記言語モデルについての和集合言語モデルが作成される。
和集合言語モデル作成処理の具体例は後述する。
【００６０】
和集合言語モデルの作成が終了すると（Ｏｐ２：Ｙｅｓ）、複数の言語モデルについて作成された和集合言語モデルに対して、クラスタリング部１４が所定の方法に基づいてクラスタリングを行う（Ｏｐ３）。クラスタリングにより、和集合言語モデルは、自動的に複数のクラスタに分類され、各クラスタを表すクラスタデータが生成される。前記所定の方法として、公知のクラスタリングアルゴリズムを用いることができる。
【００６１】
クラスタリング処理に用いられるクラスタリングアルゴリズムとして、例えば、Ｋ−ミーンズ・クラスタリングが有名である。Ｋ−ミーンズ・クラスタリングについては、例えば、（上坂良吉則、尾関和彦著「パターン認識と学習のアルゴリズム」、文一総合出版、１９９０年５月１０日、ｐ．１０９−１１９）に記載されている。なお、本書ではＬＢＧアルゴリズムと記載してあるのが、Ｋ−ミーンズ・クラスタリングのアルゴリズムとほぼ同等である。
【００６２】
ここで、Ｋ−ミーンズ・クラスタリングを用いて和集合言語モデル群をクラスタリングする処理の例を説明する。まず、クラスタリング部１４は、和集合言語モデル群を、所定数のクラスタに分類する。クラスタリング部１４は、それぞれのクラスタに含まれる和集合言語モデルの重心（例えば、平均）を求める。クラスタリング部１４は、和集合言語モデル群のそれぞれの和集合言語モデルとそれぞれのクラスタの平均との類似度（例えば、距離）を計算し、それぞれの和集合言語モデルが最も近い平均と同じクラスタに属するように、和集合言語モデル群が所定数のクラスタに再度分類される。このように、クラスタごとに平均を求めて、その平均を基に所定数の新しいクラスタに分類する処理を、クラスタが変化しなくなるまで繰り返す。これにより、同じクラスタに属する和集合言語モデル同士の類似度の差はなるべく小さくなり、異なるクラスタに属する和集合言モデル間の類似度の差はなるべく大きくなるように自動的に和集合言語モデル群がクラスタリングされる。
【００６３】
このようなアルゴリズムでは、分類対象となるモデル群に対して、モデル間の距離や重心（平均）を求める演算が必要である。前述した和集合言語モデルを作成することで、このような演算ができるようになる。モデル間の距離や重心（平均）を求める演算の例は後述する。
【００６４】
クラスタリング部１４は、クラスタデータとクラスタデータが示す各クラスタに含まれる和集合言語モデルに基づいて、各クラスタに対応する言語モデル（クラスタリング後言語モデル）を生成する。クラスタリング後言語モデルは、クラスタリング後言語モデル群記録部１０３に記録される。
【００６５】
クラスタリング部１４は、例えば、クラスタに含まれる複数の和集合言語モデルの平均モデルを求め、その平均モデルをクラスタリング後言語モデルとすることができる。ここで、複数の和集合言語モデルの平均モデルには、和集合言語モデルに含まれる各語彙と、各語彙の平均出現頻度とが記録されている。ある１つの語彙の平均出現頻度は、前記クラスタに含まれる複数の和集合言語モデルにおけるその語彙の出現頻度の平均とすることができる。和集合言語モデルの平均モデルを求める処理の例は後述する。
【００６６】
クラスタリング後言語モデルの具体例は、図２に示した通りである。図２に示した例では、５才〜７８才まで１才きざみの属性（年齢）ごとに設けられたクラスタリング前言語モデル群ＢＣが、５〜８才のクラスタ、９〜１２才のクラスタ・・・、７６才以上のクラスタのようにクラスタリングされる。それぞれのクラスタについて、クラスタリング後言語モデルが生成される。すなわち、５〜８才の言語モデル、２２〜２４才の言語モデル、・・・、７６才以上の言語モデルが生成される。また、別の例においては、日本国内の都道府県ごとに設けられたクラスタリング前言語モデル群が、例えば、東京・神奈川の言語モデルを含むクラスタ、大阪・兵庫の言語モデルを含むクラスタ、・・・等のように幾つかのまとまりにクラスタリングされる。
【００６７】
また、別の例として、アメリカ合衆国内の州ごとに設けられたクラスタリング前言語モデル群が、例えば、テキサス・ニューメキシコ・オクラホマの言語モデルを含むクラスタ、ニューヨーク・ペンシルバニア・ニュージャージーの言語モデルを含むクラスタ、カリフォルニア・オレゴン・ワシントンの言語モデルを含むクラスタ・・・等のように幾つかのまとまりにクラスタリングされる。
【００６８】
上記のクラスタリング処理（Ｏｐ３）で生成されたクラスタリング後言語モデルに対して、エントリ削除部１３は、所定の判定基準により、クラスタリング後言語モデルに含まれるエントリの一部を削除する（Ｏｐ４）。エントリ削除部１３は、クラスタリング後言語モデルに含まれるエントリのうち出現頻度の低いエントリを削除する。このエントリ削除は、全てのクラスタリング後言語モデルについて、すなわち全てのクラスタについて行われる（Ｏｐ５）。
【００６９】
エントリ削除処理の例として、出現頻度が予め設定した閾値に満たないエントリを削除する処理と、出現頻度が高い上位のエントリだけ残して、残りのエントリを削除する処理とが挙げられる。これらの処理の具体例を図４、図５に示す。
【００７０】
図４は、エントリ削除部１３が、ある１つのクラスタリング後言語モデルに含まれるエントリのうち、予め設定した閾値に満たない出現頻度のエントリを削除する処理の例を示すフローチャートである。まず、エントリ削除部１３は、クラスタリング言語モデルに含まれるエントリ数を取得する（Ｏｐ４１０）。エントリ削除部１３は、クラスタリング後言語モデルのＩ番目のエントリを示す変数Ｉを「１」に初期化する（Ｏｐ４１１）。エントリ削除部１３は、変数Ｉがクラスタリング後言語モデルのエントリ数より小さいか否かを判断し（Ｏｐ４１２）、変数Ｉがエントリ数より小さければ（Ｏｐ４１２でＹｅｓ）、Ｏｐ４１３の処理を行い、変数Ｉがエントリ数より大きいかまたは同じであれば（Ｏｐ４１２でＮｏ）、そのクラスタリング後言語モデルに対する処理を終了する。
【００７１】
Ｏｐ４１２において、エントリ削除部１３は、クラスタリング後言語モデルのＩ番目のエントリに記録された出現頻度（＝出現頻度［Ｉ］）が閾値より小さいか否かを判断し（Ｏｐ４１３）、出現頻度［Ｉ］が閾値より小さい場合（Ｏｐ４１３でＹｅｓ）にのみ、前記Ｉ番目のエントリ（エントリ［Ｉ］）を削除する（Ｏｐ４１４）。その後、エントリ削除部１３は、変数Ｉに１を加えて（Ｏｐ４１５）、Ｏｐ４１２の処理を繰り返す。
【００７２】
Ｏｐ４１３で用いられる閾値は、例えば、クラスタリングシステム１が備える記録装置等に予め記録される。閾値は、設計者により決定されるか、あるいは、クラスタリング後言語モデルのサイズ、出現頻度の分布等に基づいて計算により求められてもよい。
【００７３】
このように図４に示した処理により、エントリ削除部１３は、１つのクラスタリング後言語モデルに含まれる全てのエントリについて、出現頻度（例えば、確率等で表される）が閾値より小さいか否か判断し、閾値より小さい場合にはそのエントリを削除することができる。図４に示した処理は、クラスタリング後言語モデル群記録部１０３に記録された言語モデル全てについて行なわれる。
【００７４】
図５は、エントリ削除部１３が、ある１つのクラスタリング後言語モデルについて、出現頻度が高い上位のエントリだけ残して、残りのエントリを削除する処理の例を示すフローチャートである。まず、エントリ削除部１３は、クラスタリング後言語モデルのエントリ数を取得する（Ｏｐ４２０）。エントリ削除部１３は、そのクラスタリング言語モデルに含まれるエントリを出現頻度が高い順にソートする（Ｏｐ４２１）。次に、エントリ削除部１３は、変数Ｉを「Ｎ＋１」に初期化する（Ｏｐ４２２）。ここでＮは、残すエントリ数を示す値であり、クラスタリングシステム１が備える記録装置等に予め記録される数値である。すなわち、Ｏｐ４２１でソートされたエントリのうち、Ｎ＋１番目以降のエントリが削除の対象となる。
【００７５】
エントリ削除部１３は、例えば、クラスタリング後言語モデル群全体のデータサイズの許容最大量が決まっている場合に、クラスタリング後言語モデルが前記許容最大量を超えないようにするためのＮの値を計算により求めてもよい。これにより、クラスタリング後言語モデル群全体のデータサイズの許容量を考慮して出現頻度の低いエントリを削除することができる。
【００７６】
エントリ削除部１３は、変数Ｉがクラスタリング後言語モデルのエントリ数より小さいか否かを判断し（Ｏｐ４２３）、変数Ｉがエントリ数より小さければ（Ｏｐ４２３でＹｅｓ）、Ｏｐ４２４の処理を行い、変数Ｉがエントリ数より大きいかまたは同じであれば（Ｏｐ４２３でＮｏ）、そのクラスタリング後言語モデルに対する処理を終了する。
【００７７】
Ｏｐ４２４において、エントリ削除部１３は、クラスタリング後言語モデルのＩ番目のエントリ（エントリ［Ｉ］）を削除する（Ｏｐ４２４）。その後、エントリ削除部１３は、変数Ｉに１を加えて（Ｏｐ４２５）、Ｏｐ４１３の処理を繰り返す。
【００７８】
このように図５に示した処理により、エントリ削除部１３は、１つのクラスタリング後言語モデルに含まれる全てのエントリについて、出現頻度の高い上位Ｎ個のエントリを残し、残りを削除することができる。図５に示した処理は、クラスタリング後言語モデル群記録部１０３に記録された言語モデル全てについて行なわれる。以上がエントリ削除処理の具体例である。
【００７９】
エントリ削除処理（Ｏｐ５）により、クラスタリング後言語モデルのデータサイズが調整される。そして、以上の図３に示したＯｐ１〜Ｏｐ５の処理により、クラスタリング前言語モデルがクラスタリングされ、適切なデータサイズのクラスタリング後言語モデルが記録される。クラスタリング後言語モデルは、後述する属性推定システムで人間の属性を推定する処理に用いられる。
【００８０】
（和集合言語モデル作成の具体例（日本語の場合））
ここで、和集合言語モデルの具体例を、図６を参照して説明する。図６は、クラスタリング前言語モデルと、和集合エントリと、和集合言語モデルのデータ構造の一例を示す図である。図６では、クラスタリング前言語モデルの例として、５才の話者の言語モデル３１、２２才の話者の言語モデル３２、７６才の話者の言語モデル３３（以下、それぞれ言語モデル３１、言語モデル３２、言語モデル３３と称する）が示されている。各言語モデル３１、３２、３３には、話者の属性すなわち、「５才」、「２２才」、「７６才」を示すデータがそれぞれ対応付けられて記録されている。なお、ここでは説明を簡単にするために、５才、２２才、７６才の３つの言語モデルをクラスタリング前言語モデルとして例示しているが、クラスタリング前言語モデルはこれら３つだけではなく、例えば、１才から７６才まで１才きざみで、それぞれの年齢ごとに設けられた言語モデルとすることができる。
【００８１】
図６に示す例では、言語モデル３１、３２、３３は、それぞれの話者において出現する語彙とその出現頻度を表す確率とを一組のエントリとして、複数のエントリで構成されている。例えば、５才の話者の言語モデル３１には、５才の話者において出現する語彙として「僕」、「元気」、「でちゅ」の３つの語彙が含まれており、それぞれ語彙に出現する確率を示すデータが対応付けられている。
【００８２】
ここで、３つの言語モデル３１、３２、３３に含まれる語彙の和集合は、「私」、「僕」、「わし」、「は」、「元気」、「です」、「じゃ」、「でちゅ」の８つの語彙である。この和集合をエントリとしたデータが和集合エントリ４９である。このように、クラスタリング前言語モデル群に現れる語彙を全て集めてエントリとしたデータが和集合エントリである。和集合言語モデル作成部１５は、３つの言語モデル３１、３２、３３それぞれについて、この和集合エントリ４９を持つ和集合言語モデルを作成する。
【００８３】
なお、本例では、言語モデル３１、３２、３３に含まれる語彙の和集合の全てを和集合エントリとしているが、語彙の和集合の一部を和集合エントリとしてもよい。例えば、前記和集合の８つの語彙のうちの一部である「僕」、「わし」、「は」、「元気」、「でちゅ」をそれぞれエントリとしたデータを和集合エントリとすることもできる。このように和集合の一部の語彙を和集合エントリに含ませる場合、語彙の出現頻度に基づいて和集合エントリに含ませる語彙を決定することができる。例えば、出現頻度が他の語彙と比べて相対的に低い語彙を和集合エントリから除くようにしてもよい。
【００８４】
図６に、作成された和集合言語モデルの例として、５才の話者の和集合言語モデル５１、２２才の話者の和集合言語モデル５２、７６才の話者の和集合言語モデル５１が示されている。和集合言語モデル５１、５２、５３にも、属性（５才、２２才、７６才）を示すデータが対応付けられて記録される。例えば、５才の話者の言語モデル３１について和集合言語モデル５１を作成する場合について説明する。５才の話者の言語モデル３１は、「僕」、「元気」、「でちゅ」の３つの語彙についてエントリを持つので、これらの語彙の確率“０．５”“０．２”“０．３”は和集合言語モデル５１の対応する語彙のエントリの確率として記録される。残りの語彙「私」、「わし」、「は」、「です」、「じゃ」については、言語モデル３１には含まれていない語彙なので確率“０”がそれぞれの語彙に対応付けられて和集合言語モデル５１のエントリとして記録される。
【００８５】
また、２２才の話者の言語モデル３２は、「私」、「は」、「元気」、「です」の４つの語彙を含むので、これらの語彙の確率“０．３”“０．５”“０．１”“０．１”は和集合言語モデル５２の対応する語彙のエントリに記録される。残りの４つのエントリ「僕」、「わし」、「じゃ」、「でちゅ」は言語モデル３２には含まれない語彙のエントリなので確率“０”が対応付けられて和集合エントリ５２に記録される。７６才の言語モデル３３は「わし」、「は」、「元気」、「じゃ」の４つの語彙を含むので、これらの語彙の確率“０．３”“０．５”“０．１”“０．１”は、和集合言語モデル５３の対応する語彙のエントリに記録される。「私」、「僕」、「です」、「でちゅ」の語彙のエントリは、言語モデル３３に含まれないので確率“０”が記録される。
【００８６】
なお、図６に示した例では、クラスタリング前言語モデル群に含まれる各言語モデル３１、３２、３３は１文のみから学習したエントリを持つように見えるが、これは例を分かりやすくするためのものである。実際の言語モデルはさらに大量の文章から確率を学習するもので、エントリの数は数万のオーダーにのぼることが多い。
【００８７】
また、図６に示した言語モデルはユニグラムであるが、言語モデルはこれに限られず、例えば、バイグラム、トライグラム等であってもよい。バイグラムやトライグラムでは、単語の出現する順番の出現頻度も表されることになる。例えば、「私」「元気」「です」と「元気」「です」「私」のように、同じ単語でも出現する順番が異なる場合、それぞれの順番についての出現頻度が言語モデルで表される。
【００８８】
また、図６に示した例では、言語モデル中の出現頻度を示すデータが確率である例を示したが、確率の代わりに、例えば、確率を対数で表した値等を、出現頻度を示すデータとして言語モデルに記録してもよい。
【００８９】
上記のようにして作成された複数の和集合言語モデルのエントリ数は全て同じである。すなわち、複数の和集合言語モデルは同じ次元のベクトルで表される。そのため、クラスタリング処理において、複数の和集合言語モデル間の距離を求めたり、平均を求めたりする演算を行うことが可能になる。従来、言語モデルのクラスタリングが難しかったのは、異なる言語モデルでは異なる語彙のエントリが含まれるので、同じ次元のベクトルとして単純には処理できないためであった。
【００９０】
具体的には、クラスタリング前言語モデル群において、ある言語モデルには含まれるが、別の言語モデルには含まれない語彙が存在する。これらの言語モデル間は、同じ次元のベクトルとして扱うことができない。そのため、言語モデル間の距離や平均を求める演算ができなかった。
【００９１】
このような場合に、和集合言語モデル作成部１５は、言語モデル群に含まれる語彙の和集合を含む和集合言語モデルを、言語モデルそれぞれについて作成する。それぞれの和集合モデルにおいて元々の言語モデルに含まれていない語彙については出現頻度が０であることを示すデータを対応付けて記録する。これにより、クラスタリング前言語モデル群を、同じ次元のベクトルを持つ和集合言語モデル群に変換することができる。そのため、例えば、言語モデル間の距離や平均を求める演算等のようなクラスタリングに必要な演算ができるようになる。
【００９２】
（和集合言語モデル作成の具体例（英語の場合））
ここで、英語の和集合言語モデルの具体例を、図７を参照して説明する。図７は、クラスタリング前言語モデルと、和集合エントリと、和集合言語モデルのデータ構造の一例を示す図である。図７では、クラスタリング前言語モデルの例として、５才の話者の言語モデル３１ｅ、２２才の話者の言語モデル３２ｅ、７６才の話者の言語モデル３３ｅ（以下、それぞれ言語モデル３１ｅ、言語モデル３２ｅ、言語モデル３３ｅと称する）が示されている。各言語モデル３１ｅ、３２ｅ、３３ｅには、話者の属性すなわち、「５才」、「２２才」、「７６才」を示すデータがそれぞれ対応付けられて記録されている。なお、ここでは説明を簡単にするために、５才、２２才、７６才の３つの言語モデルをクラスタリング前言語モデルとして例示しているが、クラスタリング前言語モデルはこれら３つだけではなく、例えば、１才から７６才まで１才きざみで、それぞれの年齢ごとに設けられた言語モデルとすることができる。
【００９３】
図７に示す例では、言語モデル３１ｅ、３２ｅ、３３ｅは、それぞれの話者において出現する語彙とその出現頻度を表す確率とを一組のエントリとして、複数のエントリで構成されている。例えば、５才の話者の言語モデル３１ｅには、５才の話者において出現する語彙として“Ｉ”、“ｈａｖｅ  ｔｏ”、“ｐｅｅ”の３つの語彙が含まれており、それぞれ語彙に出現する確率を示すデータが対応付けられている。
【００９４】
ここで、３つの言語モデル３１ｅ、３２ｅ、３３ｅに含まれる語彙の和集合は、“Ｉ”、“ｈａｖｅ  ｔｏ”、“ｐｅｅ”、“ｇｏ  ｔｏ”、“ｂａｔｈｒｏｏｍ”、“ｎａｔｕｒｅ”、“ｃａｌｌｓ”の７つの語彙である。この和集合をエントリとしたデータが和集合エントリ４９である。このように、クラスタリング前言語モデル群に現れる語彙を全て集めてエントリとしたデータが和集合エントリである。和集合言語モデル作成部１５は、３つの言語モデル３１ｅ、３２ｅ、３３ｅそれぞれについて、この和集合エントリ４９を持つ和集合言語モデルを作成する。
【００９５】
なお、本例では、言語モデル３１ｅ、３２ｅ、３３ｅに含まれる語彙の和集合の全てを和集合エントリとしているが、語彙の和集合の一部を和集合エントリとしてもよい。例えば、前記和集合の７つの語彙のうちの一部である“Ｉ”、“ｇｏ  ｔｏ”、“ｂａｔｈｒｏｏｍ”、“ｎａｔｕｒｅ”、“ｃａｌｌｓ”をそれぞれエントリとしたデータを和集合エントリとすることもできる。このように和集合の一部の語彙を和集合エントリに含ませる場合、語彙の出現頻度に基づいて和集合エントリに含ませる語彙を決定することができる。例えば、出現頻度が他の語彙と比べて相対的に低い語彙を和集合エントリから除くようにしてもよい。
【００９６】
図７に、作成された和集合言語モデルの例として、５才の話者の和集合言語モデル５１ｅ、２２才の話者の和集合言語モデル５２ｅ、７６才の話者の和集合言語モデル５１ｅが示されている。和集合言語モデル５１ｅ、５２ｅ、５３ｅにも、属性（５才、２２才、７６才）を示すデータが対応付けられて記録される。例えば、５才の話者の言語モデル３１ｅについて和集合言語モデル５１ｅを作成する場合について説明する。５才の話者の言語モデル３１ｅは、“Ｉ”、“ｈａｖｅ  ｔｏ”、“ｐｅｅ”の３つの語彙についてエントリを持つので、これらの語彙の確率“０．５”“０．２”“０．３”は和集合言語モデル５１ｅの対応する語彙のエントリの確率として記録される。残りの語彙“ｇｏ  ｔｏ”、“ｂａｔｈｒｏｏｍ”、“ｎａｔｕｒｅ”、“ｃａｌｌｓ”については、言語モデル３１ｅには含まれていない語彙なので確率“０”がそれぞれの語彙に対応付けられて和集合言語モデル５１ｅのエントリとして記録される。
【００９７】
また、２２才の話者の言語モデル３２ｅは、“Ｉ”、“ｈａｖｅ  ｔｏ”、 “ｇｏ  ｔｏ”、“ｂａｔｈｒｏｏｍ”の４つの語彙を含むので、これらの語彙の確率“０．３”“０．５”“０．１”“０．１”は和集合言語モデル５２ｅの対応する語彙のエントリに記録される。残りの３つのエントリ “ｐｅｅ”、 “ｎａｔｕｒｅ”、“ｃａｌｌｓ”は言語モデル３２ｅには含まれない語彙のエントリなので確率“０”が対応付けられて和集合エントリ５２ｅに記録される。７６才の言語モデル３３ｅは“Ｉ”、“ｈａｖｅ  ｔｏ”、 “ｇｏ  ｔｏ”、“ｂａｔｈｒｏｏｍ”、“ｎａｔｕｒｅ”、“ｃａｌｌｓ”の６つの語彙を含むので、これらの語彙の確率“０．２”“０．４”“０．１”“０．１” “０．１”“０．１”は、和集合言語モデル５３ｅの対応する語彙のエントリに記録される。“ｐｅｅ”の語彙のエントリは、言語モデル３３ｅに含まれないので確率“０”が記録される。  （言語モデル間の距離および平均を求める演算の例）
ここで、言語モデル間の距離を求める演算および平均を求める演算の例を説明する。言語モデル間の距離および平均は、図３のクラスタリング（Ｏｐ３）において演算されて使用される。
【００９８】
クラスタリングで用いられる言語モデル間の距離の例として、ユークリッド距離の２乗が挙げられる。例えば、ある言語モデルＭｘに含まれる各語彙の確率を成分に持つベクトルＸ（Ｘ1、Ｘ2、Ｘ3、・・・Ｘn-1、Ｘn）と、別の言語モデルＭｙに含まれる各語彙の確率を成分に持つベクトルＹ（Ｙ1、Ｙ2、Ｙ3、・・・Ｙn-1、Ｙn）とにおいて、ベクトルＸとベクトルＹとのユークリッド距離の２乗は、下記（数１）のようになる。なお、下記（数１）において、ＸｉはベクトルＸのｉ番目の成分、ＹｉはベクトルＹのｉ番目の成分を表す。
【００９９】
【数１】
0004745094.tif 000002
【０１００】
ここでは、一例として、図４に示す５才の話者の和集合言語モデル５１と、２２才の話者の和集合言語モデル５２との距離を求める演算を説明する。まず、最初のエントリである「私」の確率に注目する。和集合言語モデル５１の「私」の確率は“０”、和集合言語モデル５２の「私」の確率は“０．３”なので、それらの差の２乗は、下記のようになる。
【０１０１】
（０−０．３）2＝０．３2＝０．０９
【０１０２】
次に２番目のエントリである「僕」に着目すると、和集合言語モデル５１の「僕」の確率は“０．５”、和集合言語モデル５２の「僕」の確率は“０”である。これらの差の２乗には、下記のようになる。
【０１０３】
（０．５−０）2＝０．５2＝０．２５
【０１０４】
このようにして、和集合言語モデル５１のエントリの確率と、和集合言語モデル５２の対応するエントリの確率との差の２乗を、和集合言語モデル５１に含まれる全てのエントリについて求められる。求められた差の２乗を足し合わせた値がユークリッド距離の２乗となる。その値は、本例では０．７になる。すなわち、上記（数１）において、Ｘｉが和集合言語モデル５１におけるｉ番目のエントリの確率であり、Ｙｉが和集合言語モデル５２におけるｉ番目のエントリの確率である場合に、和集合言語モデル５１と和集合言語モデル５２との間の距離が上記（数１）により求められる。
【０１０５】
次に、言語モデル間の平均を求める処理の例を説明する。ここでは、各エントリに対して、言語モデル間での算術平均を取ることにより、言語モデルの平均を求める処理を説明する。図８は、複数の言語モデルの平均を求める演算の例を説明するための図である。図８に示す例では、具体例として、図４に示した和集合言語モデル５１、５２、５３の平均を求める過程の計算が示されている。
【０１０６】
まず、最初のエントリである「私」の確率に着目すると、和集合言語モデル５１の「私」の確率は“０”、和集合言語モデル５２の「私」の確率は“０．３”、和集合言語モデル５３の「私」の確率は“０”となっているので、これらの和をとって和集合言語モデルの個数である３で割ると以下のようになる。
【０１０７】
（０＋０．３＋０）／３＝０．１
【０１０８】
これにより、和集合言語モデル５１、５２、５３における「私」の確率の平均が“０．１”と求められる。次に２番目のエントリである「僕」に着目する。和集合言語モデル５１の「僕」の確率は“０．５”、和集合言語モデル５２の「僕」の確率は“０”、和集合言語モデル５３の「僕」の確率は“０”なので、これらの平均は以下のように“０．１６７”となる。
【０１０９】
（０．５＋０＋０）／３＝１．１６７
【０１１０】
このようにして、全てのエントリに対して平均を求めることで、平均モデルができる。図８の表５４に、それぞれのエントリに対して平均を求める計算の例を示す。また、和集合言語モデル５１、５２、５３の平均を示す言語モデルが図８に示す平均モデル５５である。すなわち、平均モデル５５は、５才、２２才、７６才の話者における平均の和集合言語モデルである。  以上のような、言語モデル間の距離または平均を求める演算は、クラスタリング部１４が、和集合言語モデル群をクラスタリングして、複数のクラスタに分類する処理（図３のＯｐ３）で用いられる。また、クラスタリング部１４は、クラスタに含まれる和集合言語モデルの平均の言語モデルを生成し、この平均の言語モデルをクラスタに対応するクラスタリング後言語モデルとすることができる。
【０１１１】
また、言語モデル間の平均を求める処理の他の例として、各言語モデルにおける語彙の出現回数を考慮した重み付き平均を求める方法を説明する。各言語モデルに含まれるある１つの語彙の出現回数は、言語モデルごとに異なっている。例えば、図８に示す和集合言語モデル５２の語彙「元気」の確率は「０．１」であり、和集合言語モデル５３の語彙「元気」の確率も「０．１」である。このように、確率は同じ「０．１」であっても、出現回数は異なる可能性がある。例えば、和集合言語モデル５２の「元気」の出現回数は１００回で、和集合言語モデル５２に含まれる語彙の出現回数の和が１０００回である場合、「元気」の確率は「１００／１０００＝０．１」になるとする。一方で、和集合言語モデル５３の「元気」の出現回数は１０回しかないが、和集合言語モデル５３に含まれる語彙の出現回数の和が１００回であるために、「元気」の確率もまた「１０／１００＝０．１」になる場合がありうる。このような場合、出現回数も考慮して言語モデル間の平均を求めることで、より正確な平均を求めることができる。
【０１１２】
出現回数を考慮した平均を求める際には、各言語モデルに出現回数を示すデータが対応付けられて予め記録されている必要がある。一例として、言語モデルに含まれる語彙の出現回数の和が、言語モデルに対応付けられて記録されている場合について説明する。例えば、図８において、和集合言語モデル５１に含まれる語彙の出現回数の和として「１０」が、和集合言語モデル５２に含まれる語彙の出現回数の和として「２０」が、和集合言語モデル５３に含まれる語彙の出現回数の和として「３０」が、それぞれ記録されているとする。語彙「元気」について出現回数を考慮して、これら３つの和集合言語モデル５１、５２、５３の平均を求める場合、例えば、下記式のように重み付き平均を計算することができる。
【０１１３】
（０．２×１０＋０．１×２０＋０．１×３０）／（１０＋２０＋３０）＝０．１４
【０１１４】
このようにして、それぞれの出現回数を求めて、全体の出現回数で割ることにより、言語モデルごとに異なる出現回数を考慮して平均の確率を求めることができる。このような方法は、クラスタリング部１４が、クラスタそれぞれに含まれる和集合言語モデルの平均の言語モデルを生成することにより、クラスタリング後言語モデルを生成する際に好ましく用いられる。
【０１１５】
（属性推定システムの動作例）
次に、属性推定システム２の動作の例を説明する。図９は、属性推定システム２が、話者の属性を推定する処理の例を示すフローチャートである。まず、入力部２１が、言語情報を入力する（Ｏｐ１１）。言語情報は、例えば、人間が発した語彙を表すテキストデータとして入力される。
【０１１６】
言語情報が入力されると、スコア計算部２２は、入力された言語情報とクラスタリング後言語モデルとを比較することによってスコアを計算する（Ｏｐ１２）。スコアは、クラスタリングシステム１でクラスタリングされた全てのクラスタについて、それぞれ計算される（Ｏｐ１３）。クラスタリング後言語モデルは、各クラスタについて記録されているので、各クラスタリング後言語モデルについてスコアを計算することで、各クラスタについてスコアが計算される。属性推定部２３は、各クラスタについてのスコアを用いて、入力された言語情報属性を推定する（Ｏｐ１４）。
【０１１７】
（属性推定処理の具体例（日本語の場合））
ここで、属性推定処理の具体例を、図１０を用いて説明する。図１０には、クラスタリングシステム１で生成されたクラスタリング後言語モデルの例として、５〜８才の言語モデル６１、２２才〜２４才の言語モデル６２、７６才以上の話者の言語モデル６３が示されている。ここでは、入力言語情報として「僕、元気です」という文がテキストデータで入力された場合に、５〜８才の人間の言語モデル６１と２２〜２４才の人間の言語モデル６２と７６才以上の話者の言語モデル６３それぞれについてスコア計算部２２がスコアを計算する例について説明する。
【０１１８】
「僕、元気です」という文は「僕」、「元気」、「です」の３つの語彙からなる。５〜８才の話者の言語モデル６１では「僕」の確率は“０．３”、「元気」の確率は“０．２”、「です」の確率は“０”となっている。スコアはこれらの確率の積となり、５〜８才の話者の言語モデル６１から計算した確率は“０．０”となる。２２〜２４才の話者の言語モデル６２では、「僕」の確率は“０．１”、「元気」の確率は“０．１”、「です」の確率は“０．１”となっているので、スコアはそれらの積である“０．００１”となる。７６才以上の話者の言語モデル６３では、「僕」の確率は“０．１”、「元気」の確率は“０．１”、「です」の確率は“０．０５”となっているため、スコアは“０．０００５”となる。なお、ここでは説明を簡略化するためにクラスタリング後言語モデルは３つである場合について説明したが、実際には全ての年齢をカバーするようにクラスタリング後言語モデル群を作成しておくのが望ましい。
【０１１９】
属性推定部２３は、言語モデル６１、６２、６３のうち最もスコアの良い言語モデルの属性を、推定した属性として出力する。図１０の例において、５〜８才の話者の言語モデル６１のスコアが“０．０”、２２〜２４才の話者の言語モデル６２のスコアが“０．００１”、７６才以上の話者の言語モデル６３のスコアが“０．０００５”なので、最もスコアが良い言語モデルは２２〜２４才の話者の言語モデル６２ということになる。従って、属性推定部２３は「２２〜２４才」を示すデータを属性情報として出力することとなる。
【０１２０】
なお、この例では、年齢推定を取り上げたが、出身地推定などの場合も同様に行うことができる。また、スコアの計算方法、属性推定方法は、上記具体例に限られない。
【０１２１】
また、出力される属性情報が「２２〜２４才」という属性を示すデータである場合を例示したが、属性推定システム２で出力されるデータはこれに限られない。例えば、属性推定部２３は、各クラスタリング後言語モデルのスコアを、それぞれクラスタリング後言語モデルに対応する属性と共に出力してもよい。
【０１２２】
以上のような属性推定システム２の処理により、入力された言語情報の話者の属性を、クラスタリングシステム１によってクラスタリングされた言語モデルに基づいて推定することが可能になる。すなわち、クラスタリング前言語モデル群がクラスタリングシステム１で自動的にクラスタリングされることにより、人間が適当に属性区分を定めた場合に比べて、より適切な統計的根拠のある属性区分が得られる。その結果として、より精度の高い属性推定システム２を構築することができる。
【０１２３】
（属性推定処理の具体例（英語の場合））
ここで、入力言語情報が英語の場合についての属性推定処理の具体例を、図１１を用いて説明する。図１１には、クラスタリングシステム１で生成されたクラスタリング後言語モデルの例として、５〜８才の言語モデル６１ｅ、２２才〜２４才の言語モデル６２ｅ、７６才以上の話者の言語モデル６３ｅが示されている。ここでは、入力言語情報として“Ｉ  ｈａｖｅ  ｔｏ  ｐｅｅ．”という文がテキストデータで入力された場合に、５〜８才の人間の言語モデル６１ｅと２２〜２４才の人間の言語モデル６２ｅと７６才以上の話者の言語モデル６３ｅそれぞれについてスコア計算部２２がスコアを計算する例について説明する。
【０１２４】
“Ｉ  ｈａｖｅ  ｔｏ  ｐｅｅ．”という文は“Ｉ”、“ｈａｖｅ  ｔｏ”、“ｐｅｅ．”の３つの語彙からなる。５〜８才の話者の言語モデル６１ｅでは“Ｉ”の確率は“０．３”、“ｈａｖｅ  ｔｏ”の確率は“０．２”、“ｐｅｅ”の確率は“０．４”となっている。スコアはこれらの確率の積となり、５〜８才の話者の言語モデル６１ｅから計算した確率は“０．０２４”となる。２２〜２４才の話者の言語モデル６２ｅでは、“Ｉ”の確率は“０．４”、“ｈａｖｅ  ｔｏ”の確率は“０．３”、“ｐｅｅ”の確率は“０”となっているので、スコアはそれらの積である“０”となる。７６才以上の話者の言語モデル６３ｅでは、“Ｉ”の確率は“０．４”、“ｈａｖｅ  ｔｏ”の確率は“０．２”、“ｐｅｅ”の確率は“０”となっているため、スコアは“０”となる。なお、ここでは説明を簡略化するためにクラスタリング後言語モデルは３つである場合について説明したが、実際には全ての年齢をカバーするようにクラスタリング後言語モデル群を作成しておくのが望ましい。
【０１２５】
属性推定部２３は、言語モデル６１ｅ、６２ｅ、６３ｅのうち最もスコアの良い言語モデルの属性を、推定した属性として出力する。図１１の例において、５〜８才の話者の言語モデル６１ｅのスコアが“０．０２４”、２２〜２４才の話者の言語モデル６２ｅのスコアが“０”、７６才以上の話者の言語モデル６３ｅのスコアが“０”なので、最もスコアが良い言語モデルは５〜８才の話者の言語モデル６１ｅということになる。従って、属性推定部２３は「５〜８才」を示すデータを属性情報として出力することとなる。  （実施の形態２）
図１２は、本実施形態におけるクラスタリングシステム１０および属性推定システム２０の構成を示す機能ブロック図である。図１２において、図１と同じ部分には、同じ番号を付し、詳細な説明を省略する。
【０１２６】
クラスタリングシステム１０のクラスタリング部１４ａは、クラスタリング処理の結果生成されるクラスタデータをクラスタデータ記録部１０５へ記録する。クラスタデータは、実施の形態１のクラスタデータと同様、各クラスタに含まれる言語モデルまたは和集合言語モデルを特定するためのデータであり、例えば、各クラスタに含まれる話者、話者の属性、言語モデルまたは和集合言語モデル等を示すデータである。
【０１２７】
属性推定システム２のスコア計算部２２ａは、クラスタデータ記録部１０５に記録されたクラスタデータと、クラスタリング前言語モデル群記録部１０６図１２に記録されたクラスタリング前言語モデルとを参照して、クラスタデータが示す各クラスタのスコアを計算する。スコア計算部２２ａは、例えば、あるクラスタについて入力した言語情報のスコアを計算する場合、まず、クラスタデータからそのクラスタに含まれる言語モデルを示す情報を取得する。その情報に基づいて、そのクラスタに含まれる言語モデルのデータを、クラスタリング前言語モデル群記録部１０６から取得し、入力された言語情報と比較することで、スコアを計算する。
【０１２８】
図１３（ａ）にクラスタデータ記録部１０５に記録されるクラスタデータの例を示す。図１３（ａ）に示すクラスタデータは、各クラスタの属性と、各クラスタに含まれる言語モデルとが対応付けられて記録されたデータである。図１３（ｂ）にクラスタリング前言語モデル群記録部１０６に記録されたクラスタリング前言語モデル群の例を示す。図１３（ｂ）に示すクラスタリング前言語モデル群は、５才〜７８才まで、１才ずつの年齢区分で作成された言語モデルの集合である。
【０１２９】
図１３（ａ）、（ｂ）に示す例において、スコア計算部２２ａが、入力言語情報に含まれる「僕」という語彙のスコアを、５〜７才のクラスタについて求める場合について説明する。スコア計算部２２ａは、図１３（ａ）に示すクラスタデータを参照して、５〜７才の属性を持つクラスタに含まれる言語モデルを表す情報を得る。ここでは、５才の言語モデル、６才の言語モデルおよび７才の言語モデルが、５〜７才のクラスタに含まれる言語モデルであることがクラスタデータに示されている（図１３（ａ）参照）。スコア計算部２２ａは、これらのクラスタリング前言語モデル群のうち、５才の言語モデル３１ａ、６才の言語モデル３１ｂ、７才の言語モデル３１ｃの「僕」の確率“０．５”、“０．５”、“０．５”を取得し、これらの平均を計算する。この平均がスコアの計算に用いられる。以降のスコアの計算は実施の形態１に示した方法でできる。
【０１３０】
本実施形態のように、クラスタリング部１４が、クラスタリング後言語モデルを生成せずにクラスタデータのみを記録することで、記録されるデータの量を削減することができる。その結果、記録媒体の容量が節約される。
【０１３１】
（実施の形態３）
図１４は、本実施形態におけるクラスタリングシステム１００および属性推定システム２００の構成を示す機能ブロック図である。図１４において、図１と同じ部分には、同じ番号を付し、詳細な説明を省略する。
【０１３２】
（クラスタリングシステム１００の構成）
クラスタリングシステム１００は、クラスタリング前の言語モデルおよび音響モデルをクラスタリングし、クラスタリング後言語モデルおよびクラスタリング後音響モデルを生成する。そのため、クラスタリングシステム１００は、クラスタリング前言語モデル群記録部１０６、クラスタリング前音響モデル群記録部１０７、クラスタリング後言語モデル群記録部１０３およびクラスタリング後音響モデル群記録部１０９にアクセス可能な構成となっている。また、クラスタリングシステム１００は、和集合言語モデル作成部１５、連結記録部１６、クラスタリング部１４ｂ、重み除去部１８、分割部１９を備える。
【０１３３】
クラスタリング前音響モデル群記録部１０７には、複数の属性それぞれに対応する音響モデルを含む音響モデル群が記録されている。すなわち、各音響モデルは、属性を示すデータと対応付けられて記録されている。各音響モデルは、対応する属性を持つ人間の音声に含まれる音響と、その音響の出現頻度とを表すデータを含むエントリを複数有する。
【０１３４】
連結記録部１６は、和集合言語モデル作成部１５が作成した和集合言語モデルと、対応するクラスタリング前音響モデル群記録部に記録されたクラスタリング前音響モデルとを連結し、連結モデルとして連結モデル記録部１０８に記録する。連結記録部１６は、ある属性値の音響モデルと、同じの属性値の和集合言語モデルとを対応付けて属性値ごとに連結モデルを記録する。また、連結記録部１６は、重み付け部１７を備えている。
【０１３５】
重み付け部１７は、音響モデルのエントリに含まれる出現頻度を表すデータと、和集合言語モデルのエントリに含まれる出現頻度を表すデータとの少なくとも１つに重み係数を掛けて、音響モデルにおける出現頻度の散布度（ばらつき）と和集合言語モデルにおける出現頻度の散布度とを近づける。
【０１３６】
クラスタリング部１４ｂは、連結記録部１６によって連結モデル記録部１０８に記録された連結モデル群に対してクラスタリングを行う。クラスタリング部１４ｂは、連結モデル群を複数のクラスタに分類し、各クラスタを表すクラスタデータを生成する。クラスタリング部１４ｂは、クラスタデータが表す各クラスタに対応するクラスタリング後連結モデルを生成する。
【０１３７】
重み除去部１８は、クラスタリング後連結モデルのエントリであって、重み付け部１７で重みが付けられたエントリに対して、重みを除去する処理を行う。重み除去部１８は、例えば、あるエントリにおいて、重み付け部１７によって重み係数が掛けられた出現頻度を、その重み係数で割ることによりそのエントリの重みを除去する。
【０１３８】
分割部１９は、クラスタリング後連結モデルをクラスタリング後言語モデルと、クラスタリング後音響モデルに分割する。クラスタリング後言語モデルは、クラスタリング後言語モデル群記録部１０３に、クラスタリング後音響モデルは、クラスタリング後音響モデル群記録部１０９に記録される。
【０１３９】
（クラスタリングシステム１００の動作例）
ここで、クラスタリングシステム１００の動作例を説明する。図１５は、クラスタリングシステム１００が、言語モデルおよび音響モデルをクラスタリングする処理の例を示すフローチャートである。
【０１４０】
まず、和集合言語モデル作成部１５が、クラスタリング前言語モデル群記録部１０６に記録された複数の言語モデルについて、それぞれ和集合言語モデルを作成する（Ｏｐ２１）。和集合言語モデルの作成処理は、実施の形態１で述べた処理と同様である。
【０１４１】
次に、連結記録部１６が和集合言語モデルと、クラスタリング前音響モデル群記録部１０７に記録されたクラスタリング前音響モデルとを連結する（Ｏｐ２２）。具体的には、連結記録部１６は、ある属性値の和集合言語モデルと、その属性値と同じ属性値のクラスタリング前音響モデルとを対応づけて連結モデル記録部１０８に記録する。つまり同じ属性値の和集合言語モデルとクラスタリング前音響モデルとを対応付けて連結モデルとして記録する。これにより、クラスタリング部１４ｂは、クラスタリング処理において、１つの連結モデルを、その連結モデルに含まれる各エントリの値を成分とする一つのベクトルとして扱うことができるようになる。
【０１４２】
なお、クラスタリング前音響モデル群記録部１０７には、クラスタリング前言語モデル群記録部１０６の言語モデルと同じ属性値の音響モデル群が記録されていることが好ましい。例えば、クラスタリング前言語モデル群記録部１０６に２２才の和集合言語モデルが記録されている場合は、音響モデル群にも２２才の音響モデルが記録されていることが好ましい。
【０１４３】
重み付け部１７は、連結される和集合言語モデルのエントリに含まれる出現頻度とクラスタリング前音響モデルに含まれる値の少なくとも一方に重み係数を掛ける（Ｏｐ２３）。これにより、重み付け部１７は、クラスタリング前音響モデルにおける出現頻度の散布度と和集合言語モデルにおける出現頻度の散布度とを近づける。重み係数は、予め決められた値であってもよいし、音響モデルおよび和集合言語モデルの出現頻度の散布度から計算により求めた値であってもよい。また、音響モデルおよび和集合言語モデルの属性値によって異なる値であってよいし、すべての属性値の音響モデルまたは和集合言語モデルについて同じ値であってもよい。
【０１４４】
音響モデルおよび和集合言語モデルの出現頻度の散布度（ばらつき）から計算により重み係数を求めるのであれば、重み係数は属性値毎に異なる値となる場合が多い。また、全てのモデルから自動的に重み係数を計算すれば、重みは全ての属性値に対して同じとなる場合が多くなる。
【０１４５】
重み係数は人間が適当に決めた値でもよい。この場合、重み係数にクラスタリングの際に言語モデルと音響モデルのどちらを重視するかという意味も含ませることができる。言語モデルの重み係数を大きくすれば言語モデルの重要度が増し、音響モデルの重み係数を大きくすれば音響モデルの重要度が増すことになる。このような場合は、全ての属性値に対して同じ重み係数を用いた方が同じ基準でクラスタリングすることができる。
【０１４６】
なお、図１５においては、連結処理（Ｏｐ２２）の後に重み付け処理（Ｏｐ２３）を行う態様としているが、重み付け処理（Ｏｐ２３）の後に連結処理（Ｏｐ２２）を行ってもよい。
【０１４７】
ここで、図１６を用いて連結処理（Ｏｐ２２）および重み付け処理（Ｏｐ２３）の具体例を説明する。図１６は、クラスタリング前音響モデル、和集合言語モデルおよび連結モデルの具体例を示す図である。図１６に示すクラスタリング前音響モデル７１（以下、音響モデル７１と称する）は、２２才の話者の音響モデルである。音響モデル７１は、第１次元からｎ次元までの平均と第１次元からｎ次元までの分散の値を音素ごとに記録したものである。和集合言語モデル５２（以下、言語モデル５２と称する）は、２２才の話者の和集合言語モデルである。言語モデル５２は、実施の形態１（図６）で例示した言語モデル５２と同じである。
【０１４８】
２２才の話者の連結モデル８１（以下、連結モデル８１と称する）は、音響モデル７１と言語モデル５２が、連結記録部１６によって連結されて記録されたデータの例である。また、連結モデル８１は、重み付け部１７が音響モデルの値に重み係数“０．１”を掛けたデータと、言語モデル５２の確率に重み係数“１．０”を掛けたデータとが対応付けられて記録されたデータである。
【０１４９】
図１６に示す例では、言語モデルにおいて語彙の出現頻度を示す値は確率なので、０と１の間の数に分布するが、音響モデルにおける値の分布の範囲は０と１の間に収まらない。すなわち、言語モデルと音響モデルとでは、値の分布範囲が異なる。そこで、重み付け部１７は、音響モデルの値には“０．１”という重み係数を掛け、言語モデルの確率には“１．０”という重み係数を掛けて、これらの値の分布範囲を近づける。ここで、重み付け部１７は、例えば、音響モデル７１における値の分布範囲（例えば、最大値と最小値）と、言語モデルにおける確率の分布範囲とを比較して、両者の分布範囲を近づけるような重み係数を計算することができる。また、分布範囲に限らず、例えば、音響モデル７１における値および言語モデル５２における確率の平均、分散、標準偏差等を用いて重み係数を計算することもできる。
【０１５０】
連結モデル８１のような連結モデルが、属性（本例では、年齢）ごとに生成される。図１６に示した例は、属性（年齢）が２２才の話者のモデルについてのみであるが、同様にして１才ごとの各年齢について連結モデルを生成することができる。
【０１５１】
このようにして、重み付け部１７は、和集合言語モデル群に含まれる言語モデルとクラスタリング前音響モデル群に含まれる音響モデルそれぞれの値に重み係数を掛ける。そして、連結記録部１６は、互いに対応する言語モデルと音響モデルとをベクトルとして連結する。なお、図１６に示した例では説明を分かりやすくするため音響モデルの内容を簡略化して書いてあるが、実際はもっと複雑である場合が多い。以上が、連結処理（Ｏｐ２２）および重み付け処理（Ｏｐ２３）の具体例である。
【０１５２】
図１５に示す連結処理（Ｏｐ２２）および重み付け処理（Ｏｐ２３）によって、連結モデルが連結モデル記録部１０８に記録されると、クラスタリング部１４ｂが、連結モデルに対してクラスタリング処理を行う（Ｏｐ２４）。クラスタリング処理は、実施の形態１のクラスタリング処理と同様である。クラスタリングによって、連結モデル記録部１０８に記録された複数の連結モデルは、複数のクラスタに分類され、各クラスタについてクラスタリング後連結モデルが生成される。
【０１５３】
クラスタリング後連結モデルに対して、重み除去部１８は、重み付け部１７で掛けられた重み係数で連結モデルに含まれる値を割って、重み除去する（Ｏｐ２５）。また、分割部１９は、クラスタリング後連結モデルを、クラスタリング後和集合言語モデルとクラスタリング後音響モデルとに分割する（Ｏｐ２６）。クラスタリング後連結モデルは、和集合言語モデルと音響モデルとが対応付けられたデータであるので、分割部１９は、和集合言語モデルと音響モデルに分割することができる。クラスタリング後和集合言語モデルは、クラスタリング後言語モデル群記録部１０３に、クラスタリング後音響モデルは、クラスタリング後音響モデル群記録部１０９にそれぞれ記録される。
【０１５４】
ここで、図１７を用いて重み除去処理（Ｏｐ２５）および分割処理（Ｏｐ２６）の具体例を説明する。図１７は、クラスタリング後連結モデルと、それを分割して生成されるクラスタリング後音響モデルおよびクラスタリング後言語モデルの具体例を示す図である。図１７に示すクラスタリング後連結モデル８３（以下、連結モデル８３と称する）は、９〜１２才の話者の連結モデルである。クラスタリング後音響モデル９１（以下、音響モデル９１と称する）は、連結モデル８３が分割され、重み除去処理されることにより生成された音響モデルである。クラスタリング後言語モデル１０１（以下、言語モデル１０１と称する）は、連結モデル８３が分割されることにより生成された言語モデルである。
【０１５５】
図１７に示す例では、重み除去部１８は、連結モデル８３に含まれる音響モデルに相当するエントリの値を“０．１”で割っている。これは、重み付け部１７において、連結モデル８３の基になる連結モデルが生成されるときに、音響モデルに“０．１”という重み係数を掛けた場合の例である。すなわち、連結モデル８３の基となった音響モデルには“０．１”という重み係数が掛けてあるので、重み除去部１８は、連結モデル８３に含まれる音響モデルに相当するエントリ８３ａの値を“０．１”で割って重みを掛ける前の状態に戻す。分割部１９は、連結モデル８３の音響モデルに相当するエントリ８３ａの部分と、連結モデル８３の言語モデルに相当するエントリ８３ｂの部分とを、それぞれ異なる別個のデータとする。すなわち、連結モデル８３を音響モデル９１および言語モデル１０１に分割する。以上が、重み除去処理（Ｏｐ２５）および分割処理（Ｏｐ２６）の具体例である。
【０１５６】
図１５においては、重み除去処理（Ｏｐ２５）の後に分割処理（Ｏｐ２６）を行う態様としているが、分割処理（Ｏｐ２６）の後に重み除去処理（Ｏｐ２５）を行ってもよい。また、クラスタリング後言語モデル群記録部１０３に対して、実施の形態１と同様にエントリ削除処理（図３のＯｐ４、Ｏｐ５）を行ってもよい。
【０１５７】
以上がクラスタリングシステム１００の動作例である。図１５に示した処理によって記録されたクラスタリング後音響モデルおよびクラスタリング後言語モデルは、後述する属性推定システム２００の処理で用いられる。
【０１５８】
本実施形態におけるクラスタリングシステム１００は、音響モデル群と言語モデル群を連動してクラスタリングすることができる。音響モデル群と言語モデル群を別々にクラスタリングしてしまうと、音響モデル群と言語モデル群で異なるクラスタができてしまい、両方のモデルを用いて属性推定を行うことができなくなる可能性がある。本実施形態によれば、音響モデル群と言語モデル群を同時にクラスタリングできるため、両モデル群で同じクラスタができることが保障される。また、同時にクラスタリングを行う際に、言語モデルと音響モデルのどちらを重視してクラスタリングするかを、重みによって調整することができる。
【０１５９】
（属性推定システム２００の構成）
次に、図１４に示す属性推定システム２００の構成について説明する。属性推定システム２００は、話者の発した音声情報を入力し、その話者の属性に関する情報を出力するシステムである。属性推定システム２００は、例えば、音声対話アプリケーション等の上位プログラムから話者の発した言語情報を受け取って、その話者の属性を推定し、属性を示すデータを上位プログラムへ返す機能を有する。また、属性推定システム２００は、クラスタリングシステム１００で生成されたクラスタリング後言語モデルおよびクラスタリング後音響モデルを用いて話者の属性を推定する処理を行う。
【０１６０】
属性推定システム２００において、入力部２１ｂは音声データを入力する。スコア計算部２２ｂは、クラスタリング後言語モデル群記録部１０３に記録された言語モデルと、クラスタリング後音響モデル群記録部１０９に記録された音響モデルに基づいて、入力部２１ｂで入力された音声データの出現頻度を示すスコア（尤度）をクラスタごとに計算する。スコア計算部２２ｂの詳細な構成については後述する。
【０１６１】
属性推定部２３ｂは、スコア計算部２２ｂがクラスタごとに計算したスコアに基づいて、話者の属性を示すデータを生成する。属性推定部２３ｂは、例えば、最もスコアが高いクラスタに対応する属性を話者の属性とすることができる。
【０１６２】
（スコア計算部２２ｂの構成の詳細）
図１８は、スコア計算部２２ｂの構成を示す機能ブロック図である。図１８に示すスコア計算部２２ｂは、ディクテーション（任意語彙音声聞き取り）システムの機能を有している。ディテーションシステムは、各属性値の音響モデルおよび言語モデルに対応する入力音声のスコアをディクテーションのアルゴリズムを用いて計算する。
【０１６３】
候補文作成部４７は、クラスタリング後言語モデル群記録部１０９に記録された任意のクラスタについてのクラスタリング後言語モデルに含まれる語彙を用いて複数の候補文を作成する。音素列作成部４５は、候補文作成部４７が作成した複数の候補文それぞれに対応する音素列を作成する。
【０１６４】
特徴抽出部４１は、音声データを入力して、音声データが表す音声の特徴量を示すデータを生成する。音響スコア計算部４２は、特徴抽出部４１が生成した特徴量を示すデータと、クラスタリング後音響モデル群記録部１０３に記録された前記クラスタについてのクラスタリング後音響モデルとを用いて、音素列作成部４５が作成した候補文の音素列それぞれについて、入力された音声データが表す音声の音響スコアを計算する。
【０１６５】
言語スコア計算部４６は、前記クラスタについてのクラスタリング後言語モデルを用いて、候補文作成部４７が作成した複数の候補文それぞれについて言語スコアを計算する。統合スコア計算部４３は、音響スコア計算部４２が計算した音響スコアと、言語スコア計算部４６が計算した言語スコアとを統合した統合スコアを、候補文ごとに計算する。最良スコア計算部４４は、候補文ごとに計算された統合スコアのうち最もよいスコアを、前記クラスタに対応する属性のスコアとして出力する。
【０１６６】
（属性推定システム２００の動作例）
次に、属性推定システム２００の動作の例を説明する。図１９は、属性推定システム２００が、話者の属性を推定する処理の例を示すフローチャートである。まず、入力部２１ｂが、音声データを入力する（Ｏｐ３１）。音声データは、例えば、話者が発した１つの文をデータ化したものである。
【０１６７】
音声データが入力されると、スコア計算部２２ｂは、入力された音声データと、ある１つのクラスタについてのクラスタリング後言語モデルおよびクラスタリング後音響モデルとを用いて、そのクラスタについてのスコアを計算する（Ｏｐ３２）。スコア計算の詳細な処理は後述する。スコアは、クラスタリングシステム１でクラスタリングされた全てのクラスタについて、それぞれ計算される（Ｏｐ３３）。クラスタリング後言語モデルおよびクラスタリング後音響モデルは、各クラスタについて記録されているので、各クラスタリング後言語モデルについての言語スコアと、対応するクラスタリング後音響モデルについての音響スコアとを計算し、統合することで、各クラスタについてスコアが計算される。
【０１６８】
例えば、クラスタリング後音響モデルおよびクラスタリング後言語モデルが、５〜８才の話者のクラスタ、９〜１２才の話者のクラスタ、７６才以上の話者のクラスタ、の３つのクラスタについて記録されている場合、スコア計算部２２ｂは、５〜８才の話者のクラスタについてのスコア、９〜１２才の話者のクラスタについてのスコア、７６才以上の話者のクラスタについてのスコア、と３つのスコアを計算する。これは、クラスタリング後音響モデルおよびクラスタリング後言語モデルが、年齢に対応するクラスタについて記録されている場合の例であるが、クラスタに対応する属性は年齢に限られない。例えば、国、州、都道府県、市町村等の地域が各クラスタに対応する属性であってもよい。
【０１６９】
属性推定部２３ｂは、各クラスタについてのスコアを用いて、入力された音声データを発した話者の属性を推定する（Ｏｐ３４）。属性推定部２３ｂは、例えば、スコア計算部２２ｂが計算したクラスタごとのスコアのうち、最もスコアの高いクラスタに対応する属性を、推定結果として出力することができる。また、例えば、各クラスタのスコアと属性とを対応付けたデータを出力することもできる。
【０１７０】
例えば、上記例の、５〜８才の話者のクラスタ、９〜１２才の話者のクラスタ、７６才以上の話者のクラスタのうち、９〜１２才の話者のクラスタのスコアが最も高い場合は、推定結果を「９〜１２才」とすることができる。
【０１７１】
（スコア計算の例（入力音声が日本語の場合））
ここで、スコア計算部２２ｂがスコアを計算する処理の具体例を説明する。図２０は、スコア計算部２２ｂがある１つのクラスタについてのスコアを計算する処理の流れを示すフローチャートである。
【０１７２】
まず、特徴抽出部４１は、音声データを入力して、音声データが表す音声の特徴量を示すデータを生成する。（Ｏｐ２２０１）。図２１は、特徴抽出部４１の入出力データの例を示す図である。特徴抽出部４１は、入力された音声データを時間軸に沿って幾つかのフレームに分割し、各フレームに対して特徴量を計算する。計算された特徴量は、例えば、特徴量データ１１１のようなデータで表される。特徴量データ１１１において、１つのフレームの特徴量はｎ次元のベクトルで表される。特徴量データ１１１は、第１次元から第ｎ次元までのｎ個の値を各フレームについて持つ。特徴量の例としては、スペクトルやケプストラムなどが挙げられる。
【０１７３】
次に、候補文作成部４７が、あるクラスタについてのクラスタリング後言語モデルに含まれる語彙を用いて複数の候補文を作成する（Ｏｐ２２０２）。図２２は、候補文作成部４７の入出力データの例を示す図である。図２２に示す例では、候補文作成部４７は、９〜１２才のクラスタについてのクラスタリング後言語モデル１０１（以下、言語モデル１０１と称する）を入力して、言語モデル１０１に含まれる語彙から生成されうる全ての文を候補として出力する。候補文データ１２１は、言語モデル１０１の語彙に基づいて生成された候補文を示すデータである。
【０１７４】
候補文が作成されると、音素列作成部４５は、候補文作成部４７が作成した複数の候補文それぞれに対応する音素列を作成する（Ｏｐ２２０３）。図２３は、音素列作成部４５の入出力データの例を示す図である。音素列作成部４５は候補文データ１２１が表す複数の候補文を、音素に分解する。音素は、例えば、子音、母音等のように音声の最小単位である。後述する音響スコア計算処理では、この音素を単位として用いて行われるため、音素列作成部４５が必要となる。音素列データ１３１は、候補文データ１２１の候補文に基づいて生成された音素列を示すデータである。
【０１７５】
言語スコア計算部４６は、候補文作成部４７で作成された候補文の基になったクラスタリング後言語モデルを用いて、候補文作成部４７が作成した複数の候補文それぞれについて言語スコアを計算する（Ｏｐ２２０４）。図２４は、言語スコア計算部４６の入出力データの例を示す図である。図２４に示す例では、言語スコア計算部４６は、９〜１２才の言語モデル１０１に含まれる各語彙の確率を用いて、各候補文の言語スコアを計算する。例えば、候補文が「私は、元気でちゅ。」という文の場合、この文に含まれる語彙「私」の確率は“０．１”、「は」の確率は“０．１”、「元気」の確率は“０．２”、「でちゅ」の確率は“０．２”である。これらを掛け合わせると、“０．０００４”というスコアが得られる。図２４に示す言語スコアデータ１４１は、各候補文について求められた言語スコアを含むデータである。なお、図２４に示す言語スコアデータ１４１には、分かりやすくするため、スコアを求める式が含まれているが、実際のデータには、式は含まれず言語スコアの値だけが記録される。
【０１７６】
音響スコア計算部４２は、特徴抽出部４１が生成した特徴量を示すデータと、クラスタリング後音響モデルとを用いて、音素列作成部４５が作成した候補文の音素列それぞれについて、入力された音声データが表す音声の音響スコアを計算する（Ｏｐ２２０５）。この際、音響スコア計算部４２が用いるクラスタリング後音響モデルは、言語スコア計算の基となったクラスタリング後言語モデルと同じクラスタのクラスタリング後音響モデルである。
【０１７７】
図２５は、音響スコア計算部４２の入出力データの例を示す図である。図２５に示す例では、音響スコア計算部４２は、図２１に例示した特徴量データ１１１と、９〜１２才のクラスタについてのクラスタリング後音響モデル９１（以下、音響モデル９１と称する）とを用いて、音素列データ１３１が表す各候補文の音響スコアを計算する。なお、音素列データ１３１は、図２３で示した例において、音素列作成部４５が作成した音素列データ１３１である。
【０１７８】
音響スコア計算部４２は、まず、各候補文の音素列を参照して、特徴量データ１１１が表すフレームと音素の対応を求める。なぜこれが必要かというと、一つの音素が一つのフレームに対応しているとは限らないからである。図２５の中央部にフレームと音素の対応関係を表す対応データ１５１の例を示す。この対応データ１５１は、「w A t A sH I  ・・・」という音素列とフレームの対応関係を示すデータである。特徴量データ１１１の第１フレームと第２フレームが最初の“w”に対応しており、第３フレームから第５フレームが次の“A”に対応している。
【０１７９】
次に、音響スコア計算部４２は、特徴量データ１１１に含まれる第１フレーム〜第ｎフレームまでの、各フレームについて音響スコアを求める。各フレームの音響スコアは、例えば、多次元正規分布によって計算される。本例では説明を簡単にするために、共分散行列が対角成分のみである場合について説明する。この場合、多次元正規分布の確率密度は例えば、下記（数２）で計算される。
【０１８０】
【数２】
0004745094.tif 000003
【０１８１】
上記（数２）で、Ｘｉは特徴量の第ｉ次元を表わし、μｉ、Ｖｉはそれぞれ音響モデルの平均の第ｉ次元と分散の第ｉ次元を表わす。具体的に第１フレームの音響スコアを計算の例を説明する。まずｅｘｐ（指数関数）の中について見ると、特徴量データ１１１において第１フレームの第１次元が“２．３”なので、Ｘ１＝２．３となる。フレームと音素の対応関係を示す対応データ１５１を見ると、第１フレームは音素“ｗ”なので、音響モデル９１の“ｗ”を参照する。音響モデル９１において“ｗ”の第１次元の平均と分散は、それぞれ“２．１”、“０．４”となっているので、μ１=２．１、Ｖｉ=０．４となる。従って、第１次元（ｉ＝１の場合）のｅｘｐ（指数関数）の中のΣの中における値は以下のようになる。
【０１８２】
−（２．３−２．１）2／０．４
【０１８３】
第２次元（ｉ＝２の場合）は、特徴量の第１フレームの第２次元が“−７．６”なのでＸ２＝−７．６となる。音響モデル９１の“ｗ”の第２次元の平均と分散は、それぞれ“−８．０”、“７．３”なので、μ２=−８．０、Ｖ２＝７．３となる。従って、第２次元の計算は以下のようになる。
【０１８４】
−（−７．６−（−８．０））2／７．３
【０１８５】
このようにして、音響スコア計算部４２は、第１フレームの第ｎ次元までの計算を行った後、これらの値を全て足してｅｘｐ（指数関数）をとる。上記（数２）において√(ΠＶｉ)  の部分は“ｗ”の分散の第１次元から第ｎ次元までを掛け合わせて√をとったものである。（数２）に示すように、ｅｘｐをとった値を√(ΠＶｉ)で割ると第１フレームの音響スコアとなる。
【０１８６】
第２フレームの音響スコアも同様に計算できる。フレームと音素の対応関係の例１５１を参照すると第２フレームの音素も“ｗ”なので、平均と分散の値は音響モデル９１の“ｗ”の値が計算に用いられる。特徴量データ１１１の値は、第１フレームとは異なる値となるので、第２フレームの音響スコアの値も、第１フレームの音響スコアの値とは異なるものとなる。
【０１８７】
このようにして、音響スコア計算部４２は、各フレームの音響スコアを求め、各フレームの音響スコアを全て掛け合わせたものを、その候補文の音響スコアとする。同様にして、音響スコア計算部４２は、全ての候補文の音響スコアを計算する。図２５に示す９〜１２才音響スコアデータ１６１が、各候補文について求められた音響スコアを含むデータの例である。
【０１８８】
なお、上記例ではフレームと音素の対応関係をまず求めて、それから各フレームの音響スコアを求める例を説明したが、実際には文全体の音響スコアが最もよくなるような対応関係を動的に求めていくアルゴリズムが必要となる場合が多い。このアルゴリズムが、Ｖｉｔｅｒｂｉアルゴリズムと呼ばれるアルゴリズムである。（中川聖一著「確率モデルによる音声認識」、社団法人電子情報通信学会、１９８８年７月１日発行、ｐ４４―４６）にＶｉｔｅｒｂｉアルゴリズムについて詳細な記載がある。以上が、音響スコア計算（図２０のＯｐ２２０５）の例である。
【０１８９】
音響スコアが計算されると、統合スコア計算部４３は、音響スコア計算部４２が計算した音響スコアと、言語スコア計算部４６が計算した言語スコアとを統合した統合スコアを、候補文ごとに計算する（Ｏｐ２２０６）。図２６は、統合スコア計算部４３の入出力データの例を示す図である。図２６に示す例において、統合スコア計算部４３は、９〜１２才の音響スコアデータ１６１と、９〜１２才の言語スコアデータ１４１とに基づいて、各候補文について、統合スコアを計算し、９〜１２才統合スコアデータ１７１として出力している。各候補文の統合スコアは、各候補文の音響スコアと言語スコアとを掛け合わせた値である。例えば、「私は、元気でちゅ」という候補文について見ると、音響スコア１６１が示す音響スコアは“０．０００５”で、言語スコア１４１が示す言語スコアは“０．０００４”である。統合スコア計算部４３は、これらの音響スコアと言語スコアを掛けた値すなわち、０．０００５×０．０００４＝０．００００００２を統合スコアとして算出する。他の候補文について計算された統合スコアの例を統合スコアデータ１７１に示す。なお、図２６に示す統合スコアデータ１７１には、分かりやすくするため、統合スコアを求める式が含まれているが、実際のデータには、式は含まれず統合スコアの値だけが記録される。
【０１９０】
統合スコアが計算されると、最良スコア計算部４４は、候補文ごとに計算された統合スコアのうち最も高いスコアを、前記クラスタに対応する属性のスコアとして出力する（Ｏｐ２２０７）。図２７は、最良スコア計算部４４の入出力データの例を示す図である。図２７に示す例では、最良スコア計算部４４は、９〜１２才統合スコアデータ１７１から、最も高いスコア“０．００００３２”を、「９〜１２才」のスコアとして出力する。
【０１９１】
これで、図２０に示す処理が終了する。これにより、１つのクラスタについてスコアが計算される。図２０に示した処理が、クラスタリングシステム１００のクラスタリングによって分類された各クラスタについて行われることで、クラスタごとのスコアが計算される。
【０１９２】
なお、スコアを計算する処理は、図２０で説明した上記例に限られない。また、図２０におけるＯｐ２２０１〜Ｏｐ２２０７の各処理の実行順序は、図２０に示す順序に限らない。例えば、図２０においては、言語スコア計算（Ｏｐ２２０３）と音響スコア計算（Ｏｐ２２０５）とが直列的に実行される態様となっているが、言語スコア計算（Ｏｐ２２０３）と音響スコア計算（Ｏｐ２２０５）とは並列的に実行されてもよい。また、特徴抽出処理（Ｏｐ２２０１）は、音響スコア計算（Ｏｐ２２０５）の前に実行されるのであれば、候補文作成（Ｏｐ２２０２）および音素列作成（Ｏｐ２２０４）と並列的に実行されてもよい。
【０１９３】
（スコア計算の例（入力音声が英語の場合））
ここで、スコア計算部２２ｂがスコアを計算する処理の具体例を説明する。図２０は、スコア計算部２２ｂがある１つのクラスタについてのスコアを計算する処理の流れを示すフローチャートである。
【０１９４】
まず、特徴抽出部４１は、音声データを入力して、音声データが表す音声の特徴量を示すデータを生成する。（Ｏｐ２２０１）。図２１は、特徴抽出部４１の入出力データの例を示す図である。特徴抽出部４１は、入力された音声データを時間軸に沿って幾つかのフレームに分割し、各フレームに対して特徴量を計算する。計算された特徴量は、例えば、特徴量データ１１１のようなデータで表される。特徴量データ１１１において、１つのフレームの特徴量はｎ次元のベクトルで表される。特徴量データ１１１は、第１次元から第ｎ次元までのｎ個の値を各フレームについて持つ。特徴量の例としては、スペクトルやケプストラムなどが挙げられる。
【０１９５】
次に、候補文作成部４７が、あるクラスタについてのクラスタリング後言語モデルに含まれる語彙を用いて複数の候補文を作成する（Ｏｐ２２０２）。図２８は、候補文作成部４７の入出力データの例を示す図である。図２８に示す例では、候補文作成部４７は、９〜１２才のクラスタについてのクラスタリング後言語モデル１０１ｅ（以下、言語モデル１０１ｅと称する）を入力して、言語モデル１０１ｅに含まれる語彙から生成されうる全ての文を候補として出力する。候補文データ１２１ｅは、言語モデル１０１ｅの語彙に基づいて生成された候補文を示すデータである。
【０１９６】
候補文が作成されると、音素列作成部４５は、候補文作成部４７が作成した複数の候補文それぞれに対応する音素列を作成する（Ｏｐ２２０３）。図２９は、音素列作成部４５の入出力データの例を示す図である。音素列作成部４５は候補文データ１２１ｅが表す複数の候補文を、音素に分解する。音素は、例えば、子音、母音等のように音声の最小単位である。後述する音響スコア計算処理では、この音素を単位として用いて行われるため、音素列作成部４５が必要となる。音素列データ１３１ｅは、候補文データ１２１ｅの候補文に基づいて生成された音素列を示すデータである。
【０１９７】
言語スコア計算部４６は、候補文作成部４７で作成された候補文の基になったクラスタリング後言語モデルを用いて、候補文作成部４７が作成した複数の候補文それぞれについて言語スコアを計算する（Ｏｐ２２０４）。図３０は、言語スコア計算部４６の入出力データの例を示す図である。図３０に示す例では、言語スコア計算部４６は、９〜１２才の言語モデル１０１ｅに含まれる各語彙の確率を用いて、各候補文の言語スコアを計算する。例えば、候補文が“Ｉ  ｈａｖｅ  ｔｏ  ｇｏ  ｔｏ  ｂａｔｈｒｏｏｍ”という文の場合、この文に含まれる語彙“Ｉ”の確率は“０．３”、“ｈａｖｅ  ｔｏ”の確率は“０．２”、“ｇｏ  ｔｏ”の確率は“０．２５” 、“ｂａｔｈｒｏｏｍ”の確率は“０．２”である。これらを掛け合わせると、“０．００３”というスコアが得られる。図３０に示す言語スコアデータ１４１ｅは、各候補文について求められた言語スコアを含むデータである。なお、図３０に示す言語スコアデータ１４１ｅには、分かりやすくするため、スコアを求める式が含まれているが、実際のデータには、式は含まれず言語スコアの値だけが記録される。
【０１９８】
音響スコア計算部４２は、特徴抽出部４１が生成した特徴量を示すデータと、クラスタリング後音響モデルとを用いて、音素列作成部４５が作成した候補文の音素列それぞれについて、入力された音声データが表す音声の音響スコアを計算する（Ｏｐ２２０５）。この際、音響スコア計算部４２が用いるクラスタリング後音響モデルは、言語スコア計算の基となったクラスタリング後言語モデルと同じクラスタのクラスタリング後音響モデルである。
【０１９９】
図３１は、音響スコア計算部４２の入出力データの例を示す図である。図３１に示す例では、音響スコア計算部４２は、図２１に例示した特徴量データ１１１と、９〜１２才のクラスタについてのクラスタリング後音響モデル９１ｅ（以下、音響モデル９１ｅと称する）とを用いて、音素列データ１３１ｅが表す各候補文の音響スコアを計算する。なお、音素列データ１３１ｅは、図２９で示した例において、音素列作成部４５が作成した音素列データ１３１ｅである。
【０２００】
音響スコア計算部４２は、まず、各候補文の音素列を参照して、特徴量データ１１１が表すフレームと音素の対応を求める。なぜこれが必要かというと、一つの音素が一つのフレームに対応しているとは限らないからである。図３１の中央部にフレームと音素の対応関係を表す対応データ１５１ｅの例を示す。この対応データ１５１ｅは、「ａｙｈｈａｅ  ・・・」という音素列とフレームの対応関係を示すデータである。特徴量データ１１１の第１フレームから第３フレームまでが最初の“ａｙ”に対応しており、第４フレームから第５フレームが次の“ｈｈ”に対応している。
【０２０１】
次に、音響スコア計算部４２は、特徴量データ１１１に含まれる第１フレーム〜第ｎフレームまでの、各フレームについて音響スコアを求める。各フレームの音響スコアは、例えば、多次元正規分布によって計算される。本例では説明を簡単にするために、共分散行列が対角成分のみである場合について説明する。この場合、多次元正規分布の確率密度は例えば、下記（数２）で計算される。
【０２０２】
【数２】
0004745094.tif 000004
【０２０３】
上記（数２）で、Ｘｉは特徴量の第ｉ次元を表わし、μｉ、Ｖｉはそれぞれ音響モデルの平均の第ｉ次元と分散の第ｉ次元を表わす。具体的に第１フレームの音響スコアを計算の例を説明する。まずｅｘｐ（指数関数）の中について見ると、特徴量データ１１１において第１フレームの第１次元が“２．３”なので、Ｘ１＝２．３となる。フレームと音素の対応関係を示す対応データ１５１ｅを見ると、第１フレームは音素“ａｙ”なので、音響モデル９１ｅの“ａｙ”を参照する。音響モデル９１ｅにおいて“ａｙ”の第１次元の平均と分散は、それぞれ“２．１”、“０．４”となっているので、μ１=２．１、Ｖｉ=０．４となる。従って、第１次元（ｉ＝１の場合）のｅｘｐ（指数関数）の中のΣの中における値は以下のようになる。
【０２０４】
−（２．３−２．１）2／０．４
【０２０５】
第２次元（ｉ＝２の場合）は、特徴量の第１フレームの第２次元が“−７．６”なのでＸ２＝−７．６となる。音響モデル９１ｅの“ａｙ”の第２次元の平均と分散は、それぞれ“−８．０”、“７．３”なので、μ２=−８．０、Ｖ２＝７．３となる。従って、第２次元の計算は以下のようになる。
【０２０６】
−（−７．６−（−８．０））2／７．３
【０２０７】
このようにして、音響スコア計算部４２は、第１フレームの第ｎ次元までの計算を行った後、これらの値を全て足してｅｘｐ（指数関数）をとる。上記（数２）において√(ΠＶｉ)  の部分は“ｗ”の分散の第１次元から第ｎ次元までを掛け合わせて√をとったものである。（数２）に示すように、ｅｘｐをとった値を√(ΠＶｉ)で割ると第１フレームの音響スコアとなる。
【０２０８】
第２フレームの音響スコアも同様に計算できる。フレームと音素の対応関係の例１５１ｅを参照すると第２フレームの音素も“ａｙ”なので、平均と分散の値は音響モデル９１ｅの“ａｙ”の値が計算に用いられる。特徴量データ１１１の値は、第１フレームとは異なる値となるので、第２フレームの音響スコアの値も、第１フレームの音響スコアの値とは異なるものとなる。
【０２０９】
このようにして、音響スコア計算部４２は、各フレームの音響スコアを求め、各フレームの音響スコアを全て掛け合わせたものを、その候補文の音響スコアとする。同様にして、音響スコア計算部４２は、全ての候補文の音響スコアを計算する。図３１に示す９〜１２才音響スコアデータ１６１ｅが、各候補文について求められた音響スコアを含むデータの例である。
【０２１０】
なお、上記例ではフレームと音素の対応関係をまず求めて、それから各フレームの音響スコアを求める例を説明したが、実際には文全体の音響スコアが最もよくなるような対応関係を動的に求めていくアルゴリズムが必要となる場合が多い。このアルゴリズムが、Ｖｉｔｅｒｂｉアルゴリズムと呼ばれるアルゴリズムである。（中川聖一著「確率モデルによる音声認識」、社団法人電子情報通信学会、１９８８年７月１日発行、ｐ４４―４６）にＶｉｔｅｒｂｉアルゴリズムについて詳細な記載がある。以上が、音響スコア計算（図２０のＯｐ２２０５）の例である。
【０２１１】
音響スコアが計算されると、統合スコア計算部４３は、音響スコア計算部４２が計算した音響スコアと、言語スコア計算部４６が計算した言語スコアとを統合した統合スコアを、候補文ごとに計算する（Ｏｐ２２０６）。図３２は、統合スコア計算部４３の入出力データの例を示す図である。図３２に示す例において、統合スコア計算部４３は、９〜１２才の音響スコアデータ１６１ｅと、９〜１２才の言語スコアデータ１４１ｅとに基づいて、各候補文について、統合スコアを計算し、９〜１２才統合スコアデータ１７１ｅとして出力している。各候補文の統合スコアは、各候補文の音響スコアと言語スコアとを掛け合わせた値である。例えば、“Ｉ  ｈａｖｅ  ｔｏ  ｐｅｅ”という候補文について見ると、音響スコア１６１ｅが示す音響スコアは“０．００１”で、言語スコア１４１ｅが示す言語スコアは“０．００１２”である。統合スコア計算部４３は、これらの音響スコアと言語スコアを掛けた値すなわち、０．００１×０．００１２＝０．０００００１２を統合スコアとして算出する。他の候補文について計算された統合スコアの例を統合スコアデータ１７１ｅに示す。なお、図３２に示す統合スコアデータ１７１ｅには、分かりやすくするため、統合スコアを求める式が含まれているが、実際のデータには、式は含まれず統合スコアの値だけが記録される。
【０２１２】
統合スコアが計算されると、最良スコア計算部４４は、候補文ごとに計算された統合スコアのうち最も高いスコアを、前記クラスタに対応する属性のスコアとして出力する（Ｏｐ２２０７）。図３３は、最良スコア計算部４４の入出力データの例を示す図である。図３３に示す例では、最良スコア計算部４４は、９〜１２才統合スコアデータ１７１ｅから、最も高いスコア“０．００００１２”を、「９〜１２才」のスコアとして出力する。
【０２１３】
これで、図２０に示す処理が終了する。これにより、１つのクラスタについてスコアが計算される。図２０に示した処理が、クラスタリングシステム１００のクラスタリングによって分類された各クラスタについて行われることで、クラスタごとのスコアが計算される。
【産業上の利用可能性】
【０２１４】
本発明は、言語モデルをクラスタリングすることができるクラスタリングシステムおよびそれを利用して、話者が発した言語からその話者の年齢、出身地等の属性を推定する属性推定システムとして有用である。
【図面の簡単な説明】
【０２１５】
【図１】実施の形態１にかかるクラスタリングシステムおよび属性推定システムの構成を示す機能ブロック図
【図２】言語モデルのクラスタリングの概要を説明するための図
【図３】言語モデルをクラスタリングする処理の例を示すフローチャート
【図４】エントリ削除を行う処理を示すフローチャート
【図５】エントリ削除を行う処理の別の例を示すフローチャート
【図６】クラスタリング前言語モデルと、和集合エントリと、和集合言語モデルのデータ構造の一例を示す図
【図７】クラスタリング前言語モデルと、和集合エントリと、和集合言語モデルのデータ構造の一例を示す図
【図８】複数の言語モデルの平均を求める演算の例を説明するための図
【図９】話者の属性を推定する処理の例を示すフローチャート
【図１０】属性推定処理の具体例を説明するための図
【図１１】属性推定処理の具体例を説明するための図
【図１２】実施の形態２におけるクラスタリングシステムおよび属性推定システムの構成を示す機能ブロック図
【図１３】（ａ）はクラスタデータの例を示す図である。（ｂ）は、クラスタリング前言語モデル群の例を示す図である。
【図１４】実施の形態３におけるクラスタリングシステムおよび属性推定システムの構成を示す機能ブロック図
【図１５】言語モデルおよび音響モデルをクラスタリングする処理を示すフローチャート
【図１６】クラスタリング前音響モデル、和集合言語モデルおよび連結モデルの具体例を示す図
【図１７】クラスタリング後連結モデル、クラスタリング後音響モデルおよびクラスタリング後言語モデルの具体例を示す図
【図１８】スコア計算部の構成を示す機能ブロック図
【図１９】話者の属性を推定する処理の例を示すフローチャート
【図２０】ある１つのクラスタについてのスコアを計算する処理を示すフローチャート
【図２１】特徴抽出部の入出力データの例を示す図
【図２２】候補文作成部の入出力データの例を示す図
【図２３】音素列作成部の入出力データの例を示す図
【図２４】言語スコア計算部の入出力データの例を示す図
【図２５】音響スコア計算部の入出力データの例を示す図
【図２６】統合スコア計算部の入出力データの例を示す図
【図２７】最良スコア計算部の入出力データの例を示す図
【図２８】候補文作成部の入出力データの例を示す図
【図２９】音素列作成部の入出力データの例を示す図
【図３０】言語スコア計算部の入出力データの例を示す図
【図３１】音響スコア計算部の入出力データの例を示す図
【図３２】統合スコア計算部の入出力データの例を示す図
【図３３】最良スコア計算部の入出力データの例を示す図
【図３４】従来の属性推定装置におけるデータの流れを示す図
【図３５】言語モデルと音響モデルを用いた属性推定装置におけるデータの流れを示す図
【符号の説明】
【０２１６】
１、１０、１００      クラスタリングシステム
２、２０、２００      属性推定システム
１３    エントリ削除部
１４    クラスタリング部
１５    和集合言語モデル作成部
１６    連結記録部
１７    重み付け部
１８    重み除去部
１９    分割部
２１    入力部
２２    スコア計算部
２３    属性推定部
３１    ５才の話者の言語モデル
３２    ２２才の話者の言語モデル
３３    ７６才の話者の言語モデル
５１    ５才の話者の和集合言語モデル
５２    ２２才の話者の和集合言語モデル
５３    ７６才の話者の和集合言語モデル
５４    平均の計算を示す表
５５    平均の和集合言語モデル
６１    ５〜８才の話者の言語モデル
６２    ２２〜２４才の話者の言語モデル
６３    ７６才以上の話者の言語モデル
７１    ２２才の話者の音響モデル
８１    ２２才の話者の連結モデル
９１    音響モデル
１０１  クラスタリング後言語モデル
１０３  クラスタリング後言語モデル群記録部
１０５  クラスタデータ記録部
１０６  クラスタリング前言語モデル群記録部
１０７  クラスタリング前音響モデル群記録部
１０８  連結モデル記録部
１０９  クラスタリング後音響モデル群記録部
１１１  特徴量データ
１２１  候補文データ
１３１  音素列データ
１４１  言語スコアデータ
１６１  音響スコアデータ
１７１  統合スコアデータ
９０１、９０２  属性推定装置
【図１】
0004745094.tif 000005
【図２】
0004745094.tif 000006
【図３】
0004745094.tif 000007
【図４】
0004745094.tif 000008
【図５】
0004745094.tif 000009
【図６】
0004745094.tif 000010
【図７】
0004745094.tif 000011
【図８】
0004745094.tif 000012
【図９】
0004745094.tif 000013
【図１０】
0004745094.tif 000014
【図１１】
0004745094.tif 000015
【図１２】
0004745094.tif 000016
【図１３】
0004745094.tif 000017
【図１４】
0004745094.tif 000018
【図１５】
0004745094.tif 000019
【図１６】
0004745094.tif 000020
【図１７】
0004745094.tif 000021
【図１８】
0004745094.tif 000022
【図１９】
0004745094.tif 000023
【図２０】
0004745094.tif 000024
【図２１】
0004745094.tif 000025
【図２２】
0004745094.tif 000026
【図２３】
0004745094.tif 000027
【図２４】
0004745094.tif 000028
【図２５】
0004745094.tif 000029
【図２６】
0004745094.tif 000030
【図２７】
0004745094.tif 000031
【図２８】
0004745094.tif 000032
【図２９】
0004745094.tif 000033
【図３０】
0004745094.tif 000034
【図３１】
0004745094.tif 000035
【図３２】
0004745094.tif 000036
【図３３】
0004745094.tif 000037
【図３４】
0004745094.tif 000038
【図３５】
0004745094.tif 000039