以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず第1の実施の形態について説明する。
図1は、第1の実施の形態に係る情報処理装置の一例を示す図である。図1の例では情報処理装置10が、周囲の音声と対象人物の画像とを用いて、対象人物の呼び名を推定する。情報処理装置10は、呼び名推定方法の処理手順が記述されたプログラムを実行することにより、呼び名推定処理を実施することができる。
情報処理装置10には、マイク1が接続されている。マイク1は、情報処理装置10の周囲の音声を収集する。
情報処理装置10は記憶部11と処理部12とを有する。記憶部11は、例えば情報処理装置10が有するメモリ、またはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサ、または演算回路である。
記憶部11は、呼び名データ11aを記憶する。呼び名データ11aには、人物の呼び名の候補である複数の呼び名候補が含まれる。一例として呼び名データ11aには、「ゆうき」、「ゆう」および「カレーライス」が、複数の呼び名候補として登録されている。
処理部12は、呼び名候補の収集と対象人物の呼び名推定とを行う。呼び名候補の収集では、処理部12は、マイク1で取得した音声データ2を解析して得られた複数の名詞を複数の呼び名候補として記憶部11に格納する。例えば処理部12は、マイク1で取得した音声データ2をディクテーション処理によってテキストに変換する。処理部12は、変換したテキストを、形態素解析によって1以上の単語に分解する。処理部12は、テキストを分解して得られた1以上の単語のうち、名詞である単語を呼び名候補として記憶部11に格納する。
対象人物の呼び名推定では、まず処理部12は、対象人物の顔を写した画像3に基づいて、対象人物の生年を推定する。画像3は、情報処理装置10に接続されたカメラによって対象人物が撮影されたものであってもよいし、他の情報処理装置や記憶媒体から取得されてもよい。例えば処理部12は、顔を入力として推定年齢を出力する、学習済みのニューラルネットワークを用いて対象人物の年齢を推定する。そして処理部12は、画像3の撮影年から、推定した対象人物の年齢を引いた年を対象人物の推定生年とする。一例として、画像3から推定された対象人物の推定生年は「2007」年であるものとする。
次に処理部12は、複数の人名それぞれについての、対象人物の推定生年を含む所定期間内に生まれた人に名付けられた人名の頻度に応じた指標値を含む名前データ4を参照する。名前データ4は、記憶部11に記憶されていてもよいし他の情報処理装置や記憶媒体に記憶されていてもよい。
名前データ4は、人名と生年との組に対応付けられ、対応する生年に生まれた人に、対応する人名が名付けられた頻度に応じた複数の指標値を有する。例えば、複数の人名それぞれの指標値は、所定期間内の年ごとに、各年に生まれた人に名付けられた頻度に応じて複数の人名を順位付けすることで得られた、複数の人名それぞれの年ごとの順位を示すランクである。また例えば、複数の人名それぞれの指標値は、複数の人名それぞれの、所定期間内の年ごとに各年に生まれた人に名付けられた頻度(度数)である。
例えば指標値がランクであり、名前データ4で生年「2007」と人名「ゆうと」とに対応する指標値が「1」であった場合、「ゆうと」は、「2007」年に生まれた人に名付けられた人名のうち、名付けられた頻度が「1」番目に高い人名であることを示す。以下では一例として処理部12は、名前データ4のうち、生年「2007」に対応する人名を複数の人名として参照する。
そして処理部12は、複数の呼び名候補それぞれに対応する人名の指標値に基づいて、複数の呼び名候補の中から対象人物の呼び名を推定する。ここで複数の呼び名候補それぞれに対応する人名の指標値は、人名と生年との組と指標値との対応関係に従い決定される、複数の呼び名候補それぞれに対応する人名と、対象人物の生年との組に対応する指標値である。例えば処理部12は、複数の人名から、複数の呼び名候補それぞれに対応する1以上の人名を検索する。ここで処理部12は、複数の呼び名候補それぞれに対応する1以上の人名として、複数の呼び名候補それぞれを先頭に含む1以上の人名を検索してもよい。
処理部12は、複数の呼び名候補それぞれについて、検索された1以上の人名それぞれの指標値に基づいて、対象人物の呼び名であるか否かの評価値を算出する。例えば指標値がランクの場合、処理部12は、複数の呼び名候補のうちの一呼び名候補について、検索された1以上の人名それぞれのランクの所定期間内の年ごとの最小値を、各年の仮ランクとして選択する。そして処理部12は、仮ランクの平均値である平均ランクを一呼び名候補の評価値とする。また例えば指標値が度数の場合、処理部12は、複数の呼び名候補のうちの一呼び名候補について、検索された1以上の人名それぞれの度数の最大値、平均値、中央値などを、一呼び名候補の評価値とする。処理部12は、複数の呼び名候補それぞれの評価値に基づいて、対象人物の呼び名を推定する。
一例として処理部12は、呼び名データ11aに登録された呼び名候補それぞれの評価値を算出し、対象人物の呼び名を推定する。処理部12は、呼び名候補「ゆうき」を先頭に含む人名を複数の人名から検索する。すると「2007」年について、ランクが「2」である人名「ゆうき」が検索される。処理部12は、呼び名候補「ゆうき」の「2007」年の仮ランクを「2」とする。なおこの例では、所定期間を「2007」年のみとしているため、処理部12は呼び名候補「ゆうき」の評価値(平均ランク)も「2」とする。
また処理部12は、「ゆう」を先頭に含む人名を複数の人名から検索する。すると「2007」年について、ランクが「1」である人名「ゆうと」およびランクが「2」である人名「ゆうき」が検索される。処理部12は、呼び名候補「ゆう」の「2007」年の仮ランクを、検索された人名の指標値の最小値である「1」とする。処理部12は、呼び名候補「ゆうき」の評価値(平均ランク)も「1」とする。
また処理部12は、「カレーライス」を先頭に含む人名を複数の人名から検索する。このとき、「カレーライス」を先頭に含む人名は複数の人名に含まれていないため、処理部12は、呼び名候補「カレーライス」の評価値を「INF」とする。
そして処理部12は、呼び名候補「ゆうき」、「ゆう」および「カレーライス」のうち、評価値が最も小さい呼び名候補「ゆう」を対象人物の呼び名と推定する。なお、処理部12は、評価値を基に、呼び名である可能性が高い複数の呼び名候補の中から、対象人物に呼び名を選択させてもよい。例えば処理部12は、呼び名候補「ゆう」および呼び名候補「ゆうと」を対象人物に提示し、対象人物に呼び名として適切な呼び名候補を選択させてもよい。
このような情報処理装置10によれば、複数の呼び名候補それぞれに対応する人名が、対象人物の推定生年に応じて名前データ4から検索され、検索された1以上の人名に対応した指標値を基に対象人物の呼び名が推定される。これにより、複数の呼び名候補のうち、対象人物の推定生年に生まれた人の名前である可能性が高い人名に対応する呼び名が対象人物の呼び名として推定される。また情報処理装置10は、推定された呼び名を画像3と対応付けて対話システムに登録することもできる。その結果、対象人物の呼び名が対話システムに簡便に登録される。
なお呼び名データ11aは、記憶部11に記憶されていなくてもよく、他の情報処理装置に記憶されていてもよい。その場合、例えば処理部12は、マイク1で取得した音声データ2を、他の情報処理装置に送信してもよい。そして他の情報処理装置は、音声データ2を解析し、得られた複数の名詞を複数の呼び名候補として記憶してもよい。また例えば、処理部12は、マイク1で取得した音声データ2を解析し、得られた複数の名詞を他の情報処理装置に送信してもよい。そして他の情報処理装置は、受信した複数の名詞を複数の呼び名候補として記憶してもよい。
ここで、ある人物の呼び名は、当該人物の名前の省略形であることがある。そこで情報処理装置10は、複数の呼び名候補それぞれに対応する人名として、複数の呼び名候補それぞれを先頭に含む1以上の人名を名前データ4から検索する。これにより、ある呼び名候補に対応する人名として、省略すると当該呼び名候補となる人名が検索される。
また、ある呼び名候補に対して、検索された1以上の人名それぞれに応じた年ごとの仮評価値が選択され、仮評価値の平均値が当該呼び名候補の評価値となる。これにより、ある呼び名候補に対応する人名が複数検索された場合でも、当該呼び名候補が対象人物の呼び名であるか否かの度合いの評価ができる。
また処理部12は、対象人物の推定生年に加え、対象人物の推定性別を基に対象人物の呼び名を推定してもよい。この場合、名前データ4に登録された複数の人名それぞれは性別と対応付けられる。処理部12は、画像3に基づいて、対象人物の性別を推定する。そして処理部12は、複数の人名のうち推定した性別に対応する人名の中から、複数の呼び名候補それぞれに対応する1以上の人名を検索する。これにより、呼び名候補に対応する人名の検索精度が向上する。
また、ある人物の呼び名は、当該人物の名前に基づいた愛称であることがある。そこで情報処理装置10は、愛称に対応する人名を名前データ4から検索できるようにしてもよい。この場合、名前データ4には、複数の人名のいずれかに対応付けられた複数の愛称が含まれる。処理部12は、複数の愛称から、複数の呼び名候補それぞれに対応する愛称を検索する。上記の検索された1以上の人名には、検索された愛称に対応する人名が含まれる。これにより、ある呼び名候補に対応する人名として、当該呼び名候補が愛称として用いられる人名が検索される。
また愛称には、愛称特有の接尾語を含むものもある。例えば日本人名では、人名や人名の省略形に「くん」や「ちゃん」などの接尾語を付加したものが愛称となることがある。このとき、人名や人名の省略形にいずれの接尾語を付加したものも愛称となり得る。そこで、名前データ4に含まれる複数の愛称の接尾語は、所定の文字列に置き換えられてもよい。この場合処理部12は、複数の呼び名候補の接尾語を所定の文字列に置き換え、複数の呼び名候補それぞれに対応する愛称を検索する。これにより、呼び名候補が接尾語が付加された愛称である場合でも、付加される接尾語によらず当該呼び名候補が愛称として用いられる人名が検索される。
また人物の呼び名は、一定期間の会話で頻繁に使用される可能性が高い。そこで、情報処理装置10は、呼び名データ11aに登録された呼び名候補のうち、使用頻度の少ない呼び名候補を除外して、対象人物の呼び名推定を行ってもよい。この場合、記憶部11に記憶されている複数の呼び名候補それぞれは、複数の呼び名候補それぞれの検出回数に対応付けられる。処理部12は、複数の呼び名候補のうち、対応する検出回数が閾値以上の呼び名候補を対象人物の呼び名の推定に用いる。これにより、人物の呼び名でない可能性の高い呼び名候補についての検索処理が行われなくなる。その結果、呼び名推定が効率的に行われる。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、対話ロボットがユーザの呼び名候補を提示するものである。
図2は、第2の実施の形態のシステム構成例を示す図である。対話ロボット100は、ユーザ21の家庭で使用される家庭用ロボットである。対話ロボット100は、ユーザ21の家庭での会話音声を収集し、記憶する。また対話ロボット100には、人物の顔と呼び名とが対応付けて登録される。ここで人物の呼び名は、当該人物を呼ぶときに使われる名称である。人物の呼び名は、当該人物の人名の場合もあるし、当該人物の人名以外(例えば、愛称)の場合もある。
対話ロボット100は、登録された人物の顔を検出すると、検出した顔に対応付けられた呼び名で当該人物に呼びかける。また対話ロボット100は、登録されていない人物の顔を検出すると、収集した会話音声と検出した顔とに基づいて、当該人物の呼び名を推定する。対話ロボット100は、ネットワーク20を介してデータベースサーバ200に接続されている。データベースサーバ200は、複数の人名の情報を示す名前データを記憶するサーバコンピュータである。なお、第2の実施の形態では、人の名前である「人名」を単に「名前」ということがある。対話ロボット100は、データベースサーバ200の名前データを用いて呼び名推定を行う。
図3は、対話ロボットのハードウェアの一例を示す図である。対話ロボット100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス112を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、対話ロボット100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス112に接続されている周辺機器としては、ストレージ装置103、ディスプレイ装置104、タッチパネル105、機器接続インタフェース106、カメラ107、無線通信部108および音声入出力部109がある。
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
ディスプレイ装置104は、プロセッサ101からの命令に従って、画像を表示する。ディスプレイ装置104としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
タッチパネル105は、ディスプレイ装置104の画面の前面に配置されており、画面上の押された位置を検知して、その位置を示す信号をプロセッサ101に送信する。
機器接続インタフェース106は、対話ロボット100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース106には、メモリカード31を接続することができる。メモリカード31は、機器接続インタフェース106との通信機能を搭載した、カード型の記録媒体である。
カメラ107は、対話ロボット100に搭載された撮像装置である。カメラ107は、プロセッサ101からの命令に従って、カメラ107のレンズを向けた先の光景の静止画または動画のデータを生成し、メモリ102に格納する。
無線通信部108は、無線通信によるネットワークインタフェースである。無線通信部108は、ネットワーク20に接続されている。無線通信部108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
音声入出力部109には、マイク110とスピーカ111とが接続されている。音声入出力部109は、マイク110から入力された音声信号をディジタル信号に変換して、プロセッサ101に送信する。また音声入出力部109は、プロセッサ101から音声データを受信すると、音声データに従った音声信号を生成し、スピーカ111から音声出力を行う。
対話ロボット100は、以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置10も、図3に示した対話ロボット100と同様のハードウェアにより実現することができる。
対話ロボット100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。対話ロボット100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、対話ロボット100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また対話ロボット100に実行させるプログラムを、メモリカード31などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
図4は、データベースサーバのハードウェアの一構成例を示す図である。データベースサーバ200は、プロセッサ201によって装置全体が制御されている。プロセッサ201には、バス209を介してメモリ202と複数の周辺機器が接続されている。プロセッサ201は、マルチプロセッサであってもよい。プロセッサ201は、例えばCPU、MPU、またはDSPである。プロセッサ201がプログラムを実行することで実現する機能の少なくとも一部を、ASIC、PLDなどの電子回路で実現してもよい。
メモリ202は、データベースサーバ200の主記憶装置として使用される。メモリ202には、プロセッサ201に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ202には、プロセッサ201による処理に利用する各種データが格納される。メモリ202としては、例えばRAMなどの揮発性の半導体記憶装置が使用される。
バス209に接続されている周辺機器としては、ストレージ装置203、グラフィック処理装置204、入力インタフェース205、光学ドライブ装置206、機器接続インタフェース207およびネットワークインタフェース208がある。
ストレージ装置203は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置203は、コンピュータの補助記憶装置として使用される。ストレージ装置203には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置203としては、例えばHDDやSSDを使用することができる。
グラフィック処理装置204には、モニタ41が接続されている。グラフィック処理装置204は、プロセッサ201からの命令に従って、画像をモニタ41の画面に表示させる。モニタ41としては、有機ELを用いた表示装置や液晶表示装置などがある。
入力インタフェース205には、キーボード42とマウス43とが接続されている。入力インタフェース205は、キーボード42やマウス43から送られてくる信号をプロセッサ201に送信する。なお、マウス43は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置206は、レーザ光などを利用して、光ディスク44に記録されたデータの読み取りを行う。光ディスク44は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク44には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース207は、データベースサーバ200に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース207には、メモリ装置45やメモリリーダライタ46を接続することができる。メモリ装置45は、機器接続インタフェース207との通信機能を搭載した記録媒体である。メモリリーダライタ46は、メモリカード47へのデータの書き込み、またはメモリカード47からのデータの読み出しを行う装置である。メモリカード47は、カード型の記録媒体である。
ネットワークインタフェース208は、ネットワーク20に接続されている。ネットワークインタフェース208は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
データベースサーバ200は、以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。
データベースサーバ200は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。データベースサーバ200に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、データベースサーバ200に実行させるプログラムをストレージ装置203に格納しておくことができる。プロセッサ201は、ストレージ装置203内のプログラムの少なくとも一部をメモリ202にロードし、プログラムを実行する。またデータベースサーバ200に実行させるプログラムを、光ディスク44、メモリ装置45、メモリカード47などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ201からの制御により、ストレージ装置203にインストールされた後、実行可能となる。またプロセッサ201が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
次に、対話ロボット100の正面からの外観を説明する。
図5は、対話ロボットの外観の一例を示す図である。対話ロボット100は、例えば頭部100a、胴体100b、腕100c,100d、足100e,100fを有する。
対話ロボット100の頭部100aの正面には、ディスプレイ装置104、タッチパネル105、カメラ107およびスピーカ111が設置されている。ディスプレイ装置104は、例えば頭部100aの中央に設置されている。タッチパネル105は、ディスプレイ装置104の画面の前面に配置される。例えば対話ロボット100は、選択肢を示す複数のボタンをディスプレイ装置104に表示させる。表示されたボタンのいずれかにユーザ21が指で触れると、対話ロボット100は、タッチパネル105によって、ユーザ21の選択したボタンを認識する。このように対話ロボット100は、ディスプレイ装置104による表示と、タッチパネル105によるユーザ21の選択の取得とによって、ユーザ21とコミュニケーションを取ることができる。
カメラ107およびスピーカ111は、例えばディスプレイ装置104の上側に設置されている。対話ロボット100は、カメラ107によって、正面にいる人物の顔を検出する。対話ロボット100は、スピーカ111によって、正面にいる人物に対して音声信号を出力する。例えば対話ロボット100は、カメラ107によって検出した人物の顔が呼び名と対応付けて記憶されている場合、スピーカ111から検出した人物の呼び名を示す音声信号を出力する。
また、対話ロボット100の頭部100aの上部には、マイク110が設置されている。対話ロボット100は、マイク110によって、周囲の音声を取得する。また対話ロボット100は、マイク110によって、正面にいる人物の発話を取得する。例えば対話ロボット100は、正面にいるユーザ21の発話を取得すると、取得した発話に対する応答を示す音声を、スピーカ111によって出力する。このように対話ロボット100は、ユーザ21と音声を通じてコミュニケーションを取ることができる。
なお以下では、対話ロボット100がユーザ21の呼び名を推定する場合について説明する。
次に、対話ロボット100の機能について詳細に説明する。
図6は、呼び名推定のための各装置の機能を示すブロック図である。対話ロボット100は、記憶部120、音声取得部130、呼び名候補検出部140、顔画像取得部150、生年推定部160、性別推定部170、平均ランク算出部180および呼び名提示部190を有する。
記憶部120は、呼び名候補情報121、接尾語情報122および登録ユーザ情報123を記憶する。呼び名候補情報121は、複数の呼び名候補に関する情報である。接尾語情報122は、愛称に使用される接尾語の情報である。登録ユーザ情報123は、顔と呼び名が対応付けて登録されているユーザの情報である。
音声取得部130は、マイク110によって周囲の音声信号を取得する。呼び名候補検出部140は、音声取得部130が取得した音声信号に含まれる呼び名候補を呼び名候補情報121に登録する。例えば呼び名候補検出部140は、音声取得部130が取得した音声信号をテキストに変換する。呼び名候補検出部140は、変換したテキストを形態素解析によって単語群に分解する。そして呼び名候補検出部140は、単語群に含まれる名詞を呼び名候補情報121に登録する。
顔画像取得部150は、ユーザ21の顔を写した画像を取得する。例えば顔画像取得部150は、カメラ107によってユーザ21の顔を撮影する。また例えば、ユーザ21の顔を写した画像のデータを記録媒体から取得してもよい。顔画像取得部150は、取得したユーザ21の顔から特徴量を抽出する。
生年推定部160は、顔画像取得部150が抽出した特徴量を基にユーザ21の生年を推定する。例えば生年推定部160は、人物の顔の特徴量を入力として当該人物の年齢を出力する、学習済みのニューラルネットワークを用いて、顔画像取得部150が抽出した特徴量を基にユーザ21の年齢を推定する。そして生年推定部160は、顔画像取得部150が取得した顔画像の撮影年から、ユーザ21の推定年齢を引いたものをユーザ21の生年と推定する。
性別推定部170は、顔画像取得部150が抽出した特徴量を基にユーザ21の性別を推定する。例えば性別推定部170は、人物の顔の特徴量を入力として当該人物の性別を出力する、学習済みのニューラルネットワークを用いて、顔画像取得部150が抽出した特徴量を基にユーザ21の性別を推定する。
平均ランク算出部180は、データベースサーバ200が記憶する名前データ212に登録された名前に対応するランクを基に、呼び名候補情報121に登録された複数の呼び名候補それぞれの、平均ランクを算出する。ここで、ランクは第1の実施の形態に示した指標値の一例である。また、平均ランクは、第1の実施の形態に示した評価値の一例である。
名前データ212には、生年と性別とランクと愛称とに対応付けられた複数の名前が登録されている。名前に対応するランクは、当該名前が名付けられた頻度の、対応する生年、性別ごとの順位を示す。愛称は、対応する名前に対して用いられる愛称である。
例えば平均ランク算出部180は、名前データ212のユーザ21の推定生年と推定性別とに対応する名前から、複数の呼び名候補それぞれに対応する名前を検索する。ここで平均ランク算出部180は、呼び名候補に対応する名前として、当該呼び名候補を先頭に含む名前を検索する。また平均ランク算出部180は、呼び名候補に対応する名前として、当該呼び名候補と一致する愛称に対応する名前を検索する。そして平均ランク算出部180は、呼び名候補それぞれについて、検索された名前に対応付けられたランクに基づいて平均ランクを算出する。
呼び名提示部190は、平均ランク算出部180によって算出された平均ランクに基づいて、ユーザ21の呼び名を推定し、推定した呼び名(推定呼び名)を表示する。例えば呼び名提示部190は、平均ランクの値が小さい順に所定個の呼び名候補をユーザ21の呼び名と推定する。そして呼び名提示部190は、推定呼び名をディスプレイ装置104に表示させる。
データベースサーバ200は、記憶部210および名前データ変換部220を有する。
記憶部210は、ランキングデータ211および名前データ212を記憶する。ランキングデータ211は、生年と性別ごとの名前のランクを示す統計情報である。名前データ変換部220は、ランキングデータ211に、各名前に対応する愛称を付加し、名前データ212を生成する。
なお、図6に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図6に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
次に、対話ロボット100の保持する情報について具体的に説明する。
図7は、呼び名候補を収集する方法の一例を示す図である。以下では、呼び名候補検出部140が、音声取得部130によって取得された日本語での会話を示す音声から、呼び名候補を抽出する一例を示す。
音声取得部130は、マイク110によって周囲から音声信号32を取得する。呼び名候補検出部140は、ディクテーション処理によって、音声信号32をテキスト33に変換する。一例としてテキスト33には、「ゆうき、今日の晩御飯は何がいい」、「カレーライス」というテキストが含まれる。
呼び名候補検出部140は、形態素解析によってテキスト33を単語群34に分割する。例えば呼び名候補検出部140は、「ゆうき、今日の晩御飯は何がいい」というテキストを、名詞「ゆうき」、名詞「今日」、助詞「の」、名詞「晩御飯」、助詞「は」、代名詞「何」、助詞「が」、形容詞「いい」に分割する。また呼び名候補検出部140は、「カレーライス」というテキストを、名詞「カレーライス」に分割する。
呼び名候補検出部140は、単語群34に含まれる名詞から名詞群35を抽出する。例えば呼び名候補検出部140は、「ゆうき、今日の晩御飯は何がいい」、「カレーライス」というテキストから分割された単語のうち、「ゆうき」、「今日」、「晩御飯」、「カレーライス」を名詞群35として抽出する。呼び名候補検出部140は、名詞群35を呼び名候補情報121に登録する。
図8は、呼び名候補情報の一例を示す図である。呼び名候補情報121には、ID(IDentifier)、呼び名候補および検出数の欄が設けられている。
IDは、呼び名候補の識別番号である。呼び名候補は、呼び名候補検出部140によって抽出された名詞である。検出数は、呼び名候補が検出された回数である。
呼び名候補情報121は、呼び名候補検出部140が名詞を抽出するたびに更新される。例えば呼び名候補検出部140は、呼び名候補情報121に登録されていない名詞を抽出すると、呼び名候補情報121に新たなレコードを登録する。また呼び名候補検出部140は、呼び名候補情報121に登録されている名詞を抽出すると、呼び名候補情報121の、抽出された名詞に対応する検出数を1増加させる。
図9は、接尾語情報の一例を示す図である。接尾語情報122には、IDおよび接尾語の欄が設けられている。IDは、接尾語の識別番号である。接尾語は、愛称に用いられる接尾語である。例えば対話ロボット100が、日本人の呼び名を推定する場合、接尾語情報122には、「くん」、「ちゃん」、「さん」、「はん」などの日本人の愛称に用いられる接尾語が登録される。
図10は、登録ユーザ情報の一例を示す図である。登録ユーザ情報123には、ID、特徴量および呼び名の欄が設けられている。IDは、登録されたユーザの識別番号である。特徴量は、ユーザの顔画像から抽出される特徴量である。呼び名は、ユーザの呼び名である。
登録ユーザ情報123は、例えば対話ロボット100が人物の呼び名を呼ぶために用いられる。例えば対話ロボット100は、カメラ107によって人物の顔を検出すると、検出した人物の顔画像から特徴量を抽出する。対話ロボット100は、抽出した特徴量との距離が閾値未満の特徴量を、登録ユーザ情報123から検索する。対話ロボット100は、検索された特徴量に対応する呼び名を示す音声信号をスピーカ111から出力する。なお登録ユーザ情報123に、抽出した特徴量との距離が閾値未満の特徴量が登録されていない場合(すなわち、検出した人物が登録されたユーザでない場合)、呼び名提示部190は、検出した人物の呼び名を推定し、推定呼び名を提示する。
次に、データベースサーバ200が保持する名前データ212について説明する。まず名前の生年、性別ごとのランキングデータについて説明する。そしてランキングデータに名前に対応する愛称の情報を付加した、名前データ212について説明する。
図11は、ランキングデータの一例を示す図である。ランキングデータ211ランキングデータ211は、生年、性別ごとの名前のランキングを示す情報である。ランキングデータ211には、生年、性別、名前およびランクの欄が設けられている。生年の欄には、生年が設定される。性別の欄には、性別が設定される。名前の欄には、名前が設定される。ランクの欄には、名前の、生年、性別ごとの名付けられた頻度に応じた指標値として、頻度の順位が設定される。
例えばランキングデータ211には、生年が「2007」、性別が「男」、名前が「ゆうと」、ランクが「1」のレコードが登録されている。これは、「2007」年に生まれた「男」性に名付けられた名前のうち、「ゆうと」という名前が「1」番目に多いことを示す。また例えばランキングデータ211には、生年が「2007」、性別が「女」、名前が「ゆい」、ランクが「1」のレコードが登録されている。これは、「2007」年に生まれた「女」性に名付けられた名前のうち、「ゆい」という名前が「1」番目に多いことを示す。
ランキングデータ211は、1つの生年と性別の組について、例えば50個の名前が登録される。なおランキングデータ211には、生年または性別の欄が異なり、名前の欄が同一のレコードが登録されていてもよい。例えばランキングデータ211には、生年が「2007」、性別が「男」、名前が「ゆうと」、ランクが「1」のレコードと生年が「2008」、性別が「男」、名前が「ゆうと」、ランクが「1」のレコードとが登録されていてもよい。
図12は、名前データの一例を示す図である。名前データ212には、生年、性別、名前、ランク、愛称A、愛称Bおよび愛称Cの欄が設けられている。名前データ212の生年、性別、名前およびランクの欄は、ランキングデータ211と同様である。
愛称A、愛称Bおよび愛称Cの欄には、対応する名前の人物に対する呼び名として使用される愛称が設定される。愛称Aの欄には、名前の完全形に接尾語を付加した愛称が設定される。愛称Bの欄には、名前の省略形(例えば、名前の先頭2文字)に接尾語を付加した愛称が設定される。愛称Cの欄には、名前によく使用されるその他の愛称が設定される。例えば愛称Cの欄には、ユーザ調査などによって名前に対してよく使われるとされた愛称が、名前データ212の作成者によって入力される。愛称Cの欄には、複数の愛称が設定されていてもよい。
例えば名前データ212の名前が「ゆうと」のレコードには愛称Aの欄に「ゆうと[Suf]」が設定される。これは、名前「ゆうと」の完全形に接尾語を示す文字列「[Suf]」を付加したものである。また名前データ212の名前が「ゆうと」のレコードには愛称Bの欄に「ゆう[Suf]」が設定される。これは、名前「ゆうと」の先頭2文字「ゆう」に接尾語を示す文字列「[Suf]」を付加したものである。また名前データ212の名前が「ゆうと」のレコードには愛称Cの欄に「ゆっ[Suf]」が設定される。これは、ユーザ調査などによって、名前「ゆうと」に対してよく使われるとされた愛称「ゆっくん」の接尾語「くん」が文字列「[Suf]」に置換されたものである。
次に平均ランクの算出方法を説明する。
図13は、平均ランクの算出方法の例である。平均ランク算出部180は、名前データ212の、ユーザ21の推定生年と推定性別に応じた範囲から、呼び名候補に対応する名前を検索し、検索された名前のランクに応じて、当該呼び名候補の平均ランクを算出する。
一例として平均ランク算出部180は、検索範囲が生年「2007」〜「2008」、性別「男」であるレコードの集合である場合の、呼び名候補「ゆうき」および「ゆうくん」の平均ランクを以下のように算出する。
平均ランク算出部180は、呼び名候補「ゆうき」を先頭に含む名前が設定されたレコードを、名前データ212から検索する。すると検索結果36に示すレコードが検索される。検索結果36には、生年「2007」、名前「ゆうき」、ランク「2」のレコードと、生年「2008」、名前「ゆうき」、ランク「3」のレコードとが含まれる。なお、図13の例では、名前データ212のレコードの性別、愛称A、愛称Bおよび愛称Cの欄は省略されている。
平均ランク算出部180は、呼び名候補「ゆうき」の生年「2007」に対する仮ランクとして、検索結果36に含まれる生年「2007」のレコードのランクのうち、最小値である「2」を選択する。また平均ランク算出部180は、呼び名候補「ゆうき」の生年「2008」に対する仮ランクとして、検索結果36に含まれる生年「2008」のレコードのランクのうち、最小値である「3」を選択する。そして平均ランク算出部180は、呼び名候補「ゆうき」の平均ランクを呼び名候補「ゆうき」の仮ランクの平均値とする。つまり呼び名候補「ゆうき」の平均ランクは、(2+3)/2=2.5と算出される。
平均ランク算出部180は、呼び名候補「ゆうくん」の平均ランクを算出する場合、接尾語「くん」を文字列「[Suf]」に置き換えて、対応する愛称を名前データ212から検索する。平均ランク算出部180は、文字列「ゆう[Suf]」と一致する愛称が愛称A、愛称Bまたは愛称Cに設定されたレコードを、名前データ212から検索する。すると検索結果37に示すレコードが検索される。検索結果37には、生年「2007」、名前「ゆうと」、ランク「1」のレコードと、生年「2007」、名前「ゆうき」、ランク「2」のレコードとが含まれる。また検索結果37には、生年「2008」、名前「ゆうと」、ランク「1」のレコードと生年「2008」、名前「ゆうき」、ランク「3」のレコードとが含まれる。
平均ランク算出部180は、呼び名候補「ゆうくん」の生年「2007」に対する仮ランクとして、検索結果37に含まれる生年「2007」のレコードのランクのうち、最小値である「1」を選択する。また平均ランク算出部180は、呼び名候補「ゆうくん」の生年「2008」に対する仮ランクとして、検索結果37に含まれる生年「2008」のレコードのランクのうち、最小値である「1」を選択する。そして平均ランク算出部180は、呼び名候補「ゆうくん」の平均ランクを、呼び名候補「ゆうくん」の仮ランクの平均値とする。つまり呼び名候補「ゆうくん」の平均ランクは、(1+1)/2=1と算出される。
また、平均ランク算出部180は、名前データ212の検索範囲から、対応する名前や愛称が検索されなかった、「さくらちゃん」などの呼び名候補の平均ランクを「INF」に設定する。平均ランクが「INF」に設定された呼び名候補は、ユーザ21の呼び名として推定されない。
次に、データベースサーバ200におけるランキングデータ211から名前データ212への変換処理の手順を、フローチャートを参照して説明する。
図14は、名前データ変換の手順の一例を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
[ステップS101]名前データ変換部220は、ランキングデータ211の全てのレコードに愛称A、愛称Bおよび愛称Cの欄を結合し、名前データ212とする。
[ステップS102]名前データ変換部220は、名前データ212の全てのレコードを選択したか否かを判定する。名前データ変換部220は、名前データ212の全てのレコードを選択済みである場合、処理を終了する。また名前データ変換部220は、選択していない名前データ212のレコードが残っている場合、処理をステップS103に進める。
[ステップS103]名前データ変換部220は、名前データ212の未選択のレコードを1つ選択する。
[ステップS104]名前データ変換部220は、ステップS103で選択したレコード(選択レコード)の名前の欄に設定された名前に、文字列「[Suf]」を結合したものを、選択レコードの愛称Aに設定する。
[ステップS105]名前データ変換部220は、選択レコードの名前の欄に設定された名前の先頭2文字に、文字列「[Suf]」を結合したものを、選択レコードの愛称Bに設定する。
[ステップS106]名前データ変換部220は、作成者によって入力された愛称を選択レコードの愛称Cに設定する。そして名前データ変換部220は、処理をステップS102に進める。
このように、ランキングデータ211が名前データ212に変換される。
次に、対話ロボット100における呼び名候補登録の手順を、フローチャートを参照して説明する。
図15は、呼び名候補登録の手順の一例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
[ステップS201]音声取得部130は、音声信号32を取得する。
[ステップS202]呼び名候補検出部140は、音声信号32をディクテーション処理によってテキスト33に変換する。
[ステップS203]呼び名候補検出部140は、テキスト33を形態素解析し、単語群34に分解する。
[ステップS204]呼び名候補検出部140は、単語群34から全ての名詞を選択したか否かを判定する。呼び名候補検出部140は、単語群34の全ての名詞が選択済みである場合、処理を終了する。また呼び名候補検出部140は、選択していない名詞が単語群34に残っている場合、処理をステップS205に進める。
[ステップS205]呼び名候補検出部140は、単語群34から未選択の名詞を1つ選択する。
[ステップS206]呼び名候補検出部140は、ステップS205で選択した名詞は呼び名候補情報121に登録済みであるか否かを判定する。呼び名候補検出部140は、ステップS205で選択した名詞が呼び名候補情報121に登録済みである場合、処理をステップS207に進める。また呼び名候補検出部140は、ステップS205で選択した名詞が呼び名候補情報121に登録されていない場合、処理をステップS208に進める。
[ステップS207]呼び名候補検出部140は、呼び名候補情報121の、ステップS205で選択した名詞に対応するレコードの検出数に、1を加算する。そして呼び名候補検出部140は、処理をステップS204に進める。
[ステップS208]呼び名候補検出部140は、ステップS205で選択した名詞を呼び名候補情報121に登録する。例えば呼び名候補検出部140は、IDの欄が使用されていないID、呼び名候補の欄がステップS205で選択した名詞、検出数の欄が「1」のレコードを呼び名候補情報121に追加する。そして呼び名候補検出部140は、処理をステップS204に進める。
このように、対話ロボット100の周囲の音声から呼び名候補が抽出される。
次に、対話ロボット100における呼び名推定の手順を、フローチャートを参照して説明する。
図16は、呼び名推定の手順の一例を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。
[ステップS211]顔画像取得部150は、ユーザ21の顔画像を検出する。顔画像取得部150は、検出した顔画像から特徴量を抽出する。
[ステップS212]顔画像取得部150は、ステップS211で抽出した特徴量が登録ユーザ情報123に登録済みであるか否かを判定する。例えば顔画像取得部150は、登録ユーザ情報123に、ステップS211で抽出した特徴量との距離が閾値未満である特徴量が登録されていれば、ステップS211で抽出した特徴量は登録ユーザ情報123に登録済みであると判定する。顔画像取得部150は、ステップS211で抽出した特徴量が登録ユーザ情報123に登録済みである場合、処理を終了する。また顔画像取得部150は、ステップS211で抽出した特徴量が登録ユーザ情報123に登録済みでない場合、処理をステップS213に進める。
[ステップS213]生年推定部160は、ステップS211で抽出した特徴量からユーザ21の生年を推定する。例えば生年推定部160は、人物の顔の特徴量を入力として当該人物の年齢を出力する、学習済みのニューラルネットワークを用いて、ステップS211で抽出した特徴量からユーザ21の年齢を推定する。
[ステップS214]生年推定部160は、ステップS213で推定したユーザ21の推定年齢とステップS211で取得した顔画像の撮影年から、ユーザ21の推定生年を算出する。例えば生年推定部160は、ステップS211で取得した顔画像の撮影年から、ステップS213で推定したユーザ21の推定年齢を引いたものをユーザ21の推定生年と算出する。
[ステップS215]性別推定部170は、ステップS211で抽出した特徴量からユーザ21の性別を推定する。例えば性別推定部170は、人物の顔の特徴量を入力として当該人物の性別を出力する、学習済みのニューラルネットワークを用いて、ステップS211で抽出した特徴量からユーザ21の性別を推定する。
[ステップS216]平均ランク算出部180は、呼び名候補情報121に登録された全呼び名候補を処理したか否かを判定する。平均ランク算出部180は、呼び名候補情報121に登録された全呼び名候補が処理済みである場合、処理をステップS224に進める。また平均ランク算出部180は、処理していない呼び名候補が呼び名候補情報121に残っている場合、処理をステップS217に進める。
[ステップS217]平均ランク算出部180は、呼び名候補情報121から未選択の呼び名候補を1つ選択する。
[ステップS218]平均ランク算出部180は、ステップS217で選択した呼び名候補の検出数が閾値以上であるか否かを判定する。平均ランク算出部180は、検出数が閾値以上である場合、処理をステップS219に進める。また平均ランク算出部180は、検出数が閾値未満である場合、処理をステップS216に進める。
[ステップS219]平均ランク算出部180は、ステップS217で選択した呼び名候補に接尾語があるか否かを判定する。例えば平均ランク算出部180は、接尾語情報122に登録されたいずれかの接尾語が、ステップS217で選択した呼び名候補の末尾に含まれている場合、ステップS217で選択した呼び名候補に接尾語があると判定する。平均ランク算出部180は、ステップS217で選択した呼び名候補に接尾語がある場合、処理をステップS220に進める。また平均ランク算出部180は、ステップS217で選択した呼び名候補に接尾語がない場合、処理をステップS221に進める。
[ステップS220]平均ランク算出部180は、ステップS217で選択した呼び名候補の接尾語を文字列「[Suf]」に置き換える。
[ステップS221]平均ランク算出部180は、ステップS217で選択した呼び名候補を先頭に含む名前を、ユーザ21の推定生年と推定性別とに対応する範囲で名前データ212から検索する。例えば平均ランク算出部180は、生年の欄がユーザ21の推定生年の前後2年以内に設定され、性別の欄がユーザ21の推定性別に設定されている、名前データ212のレコードを検索対象とする。そして平均ランク算出部180は、ステップS217で選択した呼び名候補を先頭に含む名前が、名前の欄に設定されているレコードを、検索対象のレコードの中から検索する。
[ステップS222]平均ランク算出部180は、ステップS217で選択した呼び名候補と一致する愛称を、ユーザ21の推定生年と推定性別とに対応する範囲で名前データ212から検索する。例えば平均ランク算出部180は、生年の欄がユーザ21の推定生年の前後2年以内に設定され、性別の欄がユーザ21の推定性別に設定されている、名前データ212のレコードを検索対象とする。そして平均ランク算出部180は、ステップS217で選択した呼び名候補と一致する愛称が、愛称A、愛称Bまたは愛称Cの欄に設定されているレコードを、検索対象のレコードの中から検索する。
[ステップS223]平均ランク算出部180は、ステップS221およびステップS222で検索された名前データ212のレコードを基に、ステップS217で選択した呼び名候補について平均ランクを算出する。平均ランク算出の詳細については後述する(図17参照)。そして平均ランク算出部180は、処理をステップS216に進める。
[ステップS224]呼び名提示部190は、ステップS223で平均ランクを算出した複数の呼び名候補それぞれの平均ランクを基に、ユーザ21の推定呼び名を決定し、提示する。推定呼び名提示の詳細については後述する(図18参照)。
このようにして、複数の呼び名候補それぞれの平均ランクが算出され、平均ランクを基に推定呼び名の提示が行われる。このとき、検出数が閾値未満の呼び名候補は、平均ランク算出の対象とならない。これは、人物の呼び名は一定期間の会話で頻繁に使用されることから、検出数の少ない呼び名候補は、人物の呼び名の可能性が低いものと判定できるからである。これにより、呼び名推定が効率的に行われる。
また、複数の呼び名候補それぞれの平均ランクは、複数の呼び名候補それぞれについて名前データ212から検索された名前や愛称を基に算出される。ここである呼び名候補について、当該呼び名候補を先頭に含む名前が名前データ212から検索される。これにより、ある呼び名候補が名前の省略形である場合、省略形に対する原形の名前が検索される。またある呼び名候補について、当該呼び名候補と一致する愛称が名前データ212から検索される。これにより、ある呼び名候補に対して、当該呼び名候補を愛称として用いる名前が検索される。
なお名前データ212に含まれる複数の愛称の接尾語は、所定の文字列に置き換えられている。接尾語を含む呼び名候補について、名前データ212から愛称を検索する場合、呼び名候補に含まれる接尾語は所定の文字列に置き換えられる。これにより、ある呼び名候補が接尾語が付加された愛称である場合、付加される接尾語によらず当該呼び名候補が愛称として用いられる名前が検索される。
図17は、平均ランク算出の手順の一例を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
[ステップS231]平均ランク算出部180は、検索結果が存在する年の数を示す変数aをa=0に設定する。
[ステップS232]平均ランク算出部180は、検索対象とした年を全て処理したか否かを判定する。平均ランク算出部180は、対象の年が全て処理済みである場合、処理をステップS239に進める。また平均ランク算出部180は、処理していない年が残っている場合、処理をステップS233に進める。
[ステップS233]平均ランク算出部180は、未処理の年を1つ選択する。平均ランク算出部180は、選択した年の検索結果を取得する。例えば平均ランク算出部180は、検索結果のレコードのうち、生年の欄が選択した年に設定されているレコードを取得する。
[ステップS234]平均ランク算出部180は、ステップS233で取得した検索結果が0件であるか否かを判定する。平均ランク算出部180は、取得した検索結果が0件である場合、処理をステップS232に進める。また平均ランク算出部180は、取得した検索結果が0件でない場合、処理をステップS235に進める。
[ステップS235]平均ランク算出部180は、ステップS233で取得した検索結果が2件以上であるか否かを判定する。平均ランク算出部180は、取得した検索結果が2件以上である場合、処理をステップS237に進める。また平均ランク算出部180は、取得した検索結果が2件未満である場合、処理をステップS236に進める。
[ステップS236]平均ランク算出部180は、ステップS233で取得した検索結果のランクをステップS233で選択した年の仮ランクに設定する。そして平均ランク算出部180は、処理をステップS238に進める。
[ステップS237]平均ランク算出部180は、ステップS233で取得した検索結果のランクのうち、最上位のランクをステップS233で選択した年の仮ランクに設定する。
[ステップS238]平均ランク算出部180は、検索結果が存在する年の数を示す変数aの値を1だけ増加させ(a=a+1)、処理をステップS232に進める。
[ステップS239]平均ランク算出部180は、検索結果が存在する年の数を示す変数aが0である(a=0)か否かを判定する。平均ランク算出部180は、a=0である場合、処理をステップS241に進める。また平均ランク算出部180は、a≠0である場合、処理をステップS240に進める。
[ステップS240]平均ランク算出部180は、各年の仮ランクの合計をaで割った値を平均ランクとして算出する。そして平均ランク算出部180は、処理を終了する。
[ステップS241]平均ランク算出部180は、a=0である場合、平均ランクを「INF」に設定する。
このようにして、複数の呼び名候補それぞれについて検索された1以上の名前に応じて、複数の呼び名候補それぞれの平均ランクが算出される。平均ランクは、検索対象の各年における仮ランクの平均値である。ここで、ある年の仮ランクは、呼び名候補について検索された名前の当該年のランクのうち、最上位のものである。つまりある呼び名候補のある年の仮ランクの値が小さいほど、当該年に生まれた人に当該呼び名候補に対応する名前が名付けられた頻度が高いことが示される。よって、仮ランクが検索対象の期間で平均された平均ランクの値が小さいほど、検索対象の期間に生まれた人に呼び名候補に対応する名前が名付けられた頻度が高いことが示される。このように、複数の呼び名候補それぞれがユーザ21の呼び名であるか否かの度合いが、平均ランクによって評価される。
図18は、推定呼び名提示の手順の一例を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。
[ステップS251]呼び名提示部190は、平均ランク算出部180から平均ランクが算出された呼び名候補と、各呼び名候補の平均ランクの算出結果とを取得する。
[ステップS252]呼び名提示部190は、ステップS251で取得した呼び名候補のうち、平均ランクが「INF」以外の呼び名候補を平均ランクが小さい順にソートする。
[ステップS253]呼び名提示部190は、ステップS252でソートされた呼び名候補のうち、上位から所定個(例えば、3個)の呼び名候補をユーザ21の推定呼び名に決定する。
[ステップS254]呼び名提示部190は、ステップS253で決定されたユーザ21の推定呼び名をディスプレイ装置104に表示させる。
このようにして、複数の呼び名候補のうち、ユーザ21の呼び名である可能性の高いものが所定個表示される。
図19は、推定呼び名提示の表示例を示す図である。呼び名提示部190は、以下のような表示画面をディスプレイ装置104に表示させる。
表示画面には、例えば「あなたの呼び名は?」などの、ユーザ21に呼び名の選択を促す文言が含まれる。また表示画面には、ユーザ21の呼び名として推定された3個の呼び名候補を示すボタンが含まれる。ユーザ21は、呼び名候補を示すボタンのいずれかをタッチパネル105によって選択することができる。呼び名提示部190は、選択された呼び名をユーザ21の顔画像の特徴量と対応付けて登録ユーザ情報123に登録する。このように、簡便な操作でユーザ21の呼び名が対話ロボット100に登録される。
なお表示画面には、呼び名候補を示すボタン以外のボタンが含まれていてもよい。例えば、適切な呼び名候補が表示されていない場合に、他の呼び名を登録するための「その他」ボタンが表示画面に含まれていてもよい。ユーザ21がタッチパネル105によって「その他」ボタンを選択すると、例えば対話ロボット100は平均ランクの上位3個に含まれなかった他の呼び名候補を示すボタンを表示してもよい。また例えば、呼び名登録を中止するための「登録をやめる」ボタンが表示画面に含まれていてもよい。
なお上記の例では、推定されたユーザ21の呼び名として、所定個の呼び名候補が表示されていた。しかし、ある呼び名候補が推定されたユーザ21の呼び名である可能性が高い場合、当該呼び名候補のみを表示してもよい。例えば、平均ランクの値が小さい順にソートされた複数の呼び名候補の、最上位の呼び名候補の平均ランクと2番目の呼び名候補の平均ランクとの差が閾値以上であれば、最上位の呼び名候補のみが表示されてもよい。
ここで閾値は、例えばランキングデータ211に登録された名前それぞれの年ごとの発生度数を基に決定される。例えばランキングデータ211の生年ごとに、名前の発生度数がランク「1」の5%未満となる最上位のランクが選択され、選択されたランクの平均値が閾値に決定される。
図20は、推定呼び名提示の他の手順の一例を示すフローチャートである。
[ステップS261]呼び名提示部190は、平均ランクが算出された呼び名候補と、各呼び名候補の平均ランクとを取得する。
[ステップS262]呼び名提示部190は、ステップS261で取得した呼び名候補のうち、平均ランクが「INF」以外の呼び名候補を平均ランクが小さい順にソートする。
[ステップS263]呼び名提示部190は、ステップS262でソートされた呼び名候補のうち、最上位の呼び名候補の平均ランクと2番目の呼び名候補の平均ランクとの差を算出する。
[ステップS264]呼び名提示部190は、ステップS263で算出された差が閾値より大きいか否かを判定する。呼び名提示部190は、ステップS263で算出された差が閾値より大きい場合、処理をステップS265に進める。また呼び名提示部190は、ステップS263で算出された差が閾値以下の場合、処理をステップS266に進める。
[ステップS265]呼び名提示部190は、ステップS262でソートされた呼び名候補のうち、最上位の呼び名候補をユーザ21の推定呼び名に決定する。そして呼び名提示部190は、処理をステップS267に進める。
[ステップS266]呼び名提示部190は、ステップS262でソートされた呼び名候補のうち、上位から所定個(例えば、3個)の呼び名候補をユーザ21の推定呼び名に決定する。
[ステップS267]呼び名提示部190は、ステップS255またはステップS266で決定された呼び名候補をディスプレイ装置104に表示させる。
このようにして、最上位の呼び名候補の平均ランクと2番目の呼び名候補の平均ランクとの差が閾値以上の場合、複数の呼び名候補のうち、ユーザ21の呼び名である可能性の高いものが1個表示される。
図21は、推定呼び名提示の他の表示例を示す図である。最上位の呼び名候補の平均ランクと2番目の呼び名候補の平均ランクとの差が閾値以上の場合、呼び名提示部190は、以下のような表示画面をディスプレイ装置104に表示させる。
表示画面には、ユーザ21の呼び名として推定された、平均ランクが最上位の呼び名候補が含まれる。例えば平均ランクが最上位の呼び名候補が「ゆうくん」であるとする。この場合、表示画面には「あなたの呼び名はゆうくんですか?」などの、平均ランクが最上位の呼び名候補がユーザ21の呼び名であるかを確認する文言が含まれる。
また表示画面には、平均ランクが最上位の呼び名候補がユーザ21の呼び名であるか否かを確認するためのボタン(例えば「はい」ボタンおよび「いいえ」ボタン)が含まれる。ユーザ21がタッチパネル105によって「はい」ボタンを選択すると、呼び名提示部190は、平均ランクが最上位の呼び名候補をユーザ21の顔画像の特徴量と対応付けて登録ユーザ情報123に登録する。ユーザ21がタッチパネル105によって「いいえ」ボタンを選択すると、例えば対話ロボット100は、平均ランクの最上位の呼び名候補以外の他の呼び名候補を示すボタンを表示してもよい。このように、簡便な操作でユーザ21の呼び名が対話ロボット100に登録される。
また上記の例では、対話ロボット100は、ユーザ21の名前が日本人名で、日本語の会話から呼び名を推定していた。しかし対話ロボット100は、ユーザ21の名前が日本人名以外でもよいし、日本語以外の言語での会話から呼び名を推定してもよい。
図22は、名前データの他の一例を示す図である。名前データ212aは、名前の生年、性別ごとの米国人についてのランキングデータを基に生成された名前データである。
名前データ212aには、名前データ212と同様の、生年、性別、名前、ランクおよび愛称Cの欄が設けられている。名前データ212aは、名前データ212が有していた愛称Aおよび愛称Bの欄を有しなくてもよい。これは、日本人の呼び名とは異なり、米国人の呼び名には接尾語が含まれることは少ないからである。
英語の会話から米国人の呼び名を推定する処理も、米国人についての名前データ212aを用いることで、日本人に対する呼び名推定と同様に実現される。
〔その他の実施の形態〕
第2の実施の形態では、家庭用ロボットである対話ロボット100によって呼び名推定処理が行われていたが、家庭用PCによって呼び名推定処理が行われてもよい。この場合、例えば図4に示したハードウェアに加え、カメラとマイクとスピーカとを備えた家庭用PCが、プログラムを実行することによって第2の実施の形態と同様の呼び名推定処理を行う。
また第2の実施の形態では、名前データ212がデータベースサーバ200に記憶されていたが、対話ロボット100の記憶部120に名前データ212が記憶されていてもよい。第2の実施の形態では、呼び名候補情報121、接尾語情報122、登録ユーザ情報123が、記憶部120に記憶されていたが、データベースサーバ200に記憶されていてもよい。
また第2の実施の形態では、名前の、生年、性別ごとの名付けられた頻度の順位であるランクが各名前の指標値として用いられ、平均ランクが各呼び名候補の評価値として用いられていたが、他の指標値や評価値が用いられてもよい。例えば各名前の指標値として名前の、生年、性別ごとの名付けられた頻度が用いられてもよい。この場合の各呼び名候補の評価値として、各呼び名候補に対して検索された名前に対応する頻度の合計値、平均値、中央値などが用いられてもよい。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。