(57)【特許請求の範囲】
【請求項１】
対象人物の顔を写した画像に基づいて、前記対象人物の生年を推定し、複数の人名それぞれについての、前記生年を含む所定期間内に生まれた人に名付けられた人名の頻度に応じた指標値を含む名前データを参照し、前記複数の人名のうち、マイクで取得した音声データを解析して得られた複数の名詞が人物の呼び名の候補として記憶された複数の呼び名候補それぞれに対応する人名の前記指標値に基づいて、前記複数の呼び名候補の中から前記対象人物の呼び名を推定する処理部、
を有する情報処理装置。
【請求項２】
前記処理部は、前記複数の人名から、前記複数の呼び名候補それぞれに対応する１以上の人名を検索し、前記複数の呼び名候補それぞれについて、前記検索された１以上の人名それぞれの前記指標値に基づいて、前記対象人物の呼び名であるか否かの評価値を算出し、前記複数の呼び名候補それぞれの前記評価値に基づいて、前記対象人物の呼び名を推定する、
請求項１記載の情報処理装置。
【請求項３】
前記複数の人名それぞれについての前記指標値は、前記所定期間内の年ごとに、各年に生まれた人に名付けられた頻度に応じて前記複数の人名を順位付けすることで得られた、前記複数の人名それぞれの年ごとの順位を示すランクであり、
前記処理部は、前記複数の呼び名候補のうちの一呼び名候補について、前記検索された１以上の人名それぞれの前記ランクの前記所定期間内の年ごとの最小値を、各年の仮ランクとして選択し、前記仮ランクの平均値である平均ランクを前記一呼び名候補の前記評価値とする、
請求項２記載の情報処理装置。
【請求項４】
前記複数の人名それぞれは性別と対応付けられ、
前記処理部は、前記画像に基づいて、前記対象人物の性別を推定し、前記複数の人名のうち前記推定した性別に対応する人名の中から、前記複数の呼び名候補それぞれに対応する１以上の人名を検索する、
請求項２または３記載の情報処理装置。
【請求項５】
前記処理部は、前記複数の呼び名候補それぞれに対応する１以上の人名として、前記複数の呼び名候補それぞれを先頭に含む１以上の人名を検索する、
請求項２ないし４のいずれかに記載の情報処理装置。
【請求項６】
前記名前データには、前記複数の人名のいずれかに対応付けられた複数の愛称が含まれ、
前記処理部は、前記複数の愛称から、前記複数の呼び名候補それぞれに対応する愛称を検索し、
前記検索された１以上の人名には、前記検索された愛称に対応する人名が含まれる、
請求項２ないし５のいずれかに記載の情報処理装置。
【請求項７】
前記複数の愛称の接尾語は、所定の文字列に置き換えられており、
前記処理部は、前記複数の呼び名候補の接尾語を前記所定の文字列に置き換え、前記複数の呼び名候補それぞれに対応する愛称を検索する、
請求項６記載の情報処理装置。
【請求項８】
前記複数の呼び名候補それぞれは、前記複数の呼び名候補それぞれの検出回数に対応付けられ、
前記処理部は、前記複数の呼び名候補のうち、対応する前記検出回数が閾値以上の呼び名候補を前記対象人物の呼び名の推定に用いる、
請求項１ないし７のいずれかに記載の情報処理装置。
【請求項９】
コンピュータに、
対象人物の顔を写した画像に基づいて、前記対象人物の生年を推定し、
複数の人名それぞれについての、前記生年を含む所定期間内に生まれた人に名付けられた人名の頻度に応じた指標値を含む名前データを参照し、
前記複数の人名のうち、マイクで取得した音声データを解析して得られた複数の名詞が人物の呼び名の候補として記憶された複数の呼び名候補それぞれに対応する人名の前記指標値に基づいて、前記複数の呼び名候補の中から前記対象人物の呼び名を推定する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラムおよびデータ構造に関する。
【背景技術】
【０００２】
近年、ユーザの言葉に応答して、ユーザと対話する対話システムが普及している。例えば、ユーザが行いたい作業を対話システムに伝えると、対話システムは作業に対応するソフトウェアを起動する。対話システムは、例えば家庭用ＰＣ（Personal Computer）や、家庭用ロボットに組み込まれる。
【０００３】
対話システムの中には、対話相手の名前を呼んでコミュニケーションを行うものもある。例えば対話システムには、家族の呼び名と顔が対応付けて登録され、対話システムは登録された顔を検出すると、対応する呼び名を呼ぶ。これにより対話システムは、ユーザと円滑にコミュニケーションを取る。
【０００４】
対話システムに関する技術としては、例えば対話相手に応じた対話／サービスの提供を可能とするロボットが提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１６０４７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
対話システムに呼び名を登録する方法としては、例えば、呼び名を示す文字列をタッチパネルや音声によって入力する方法がある。しかし、タッチパネルによる文字列の入力には時間がかかる。また、呼び名を音声入力する場合、対話システムが文字列を誤認識すると、ユーザは音声入力をやり直すことになる。このように、呼び名を示す文字列を対話システムに入力する作業は、ユーザにとって煩わしいものとなる。
【０００７】
１つの側面では、本件は、簡便に呼び名を登録することを目的とする。
【課題を解決するための手段】
【０００８】
１つの案では、以下に示す処理部を有する情報処理装置が提供される。
処理部は、対象人物の顔を写した画像に基づいて、対象人物の生年を推定し、複数の人名それぞれについての、生年を含む所定期間内に生まれた人に名付けられた人名の頻度に応じた指標値を含む名前データを参照し、複数の人名のうち、マイクで取得した音声データを解析して得られた複数の名詞が人物の呼び名の候補として記憶された複数の呼び名候補それぞれに対応する人名の指標値に基づいて、複数の呼び名候補の中から対象人物の呼び名を推定する。
【発明の効果】
【０００９】
１態様によれば、簡便に呼び名を登録できるようになる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態に係る情報処理装置の一例を示す図である。
【図２】第２の実施の形態のシステム構成例を示す図である。
【図３】対話ロボットのハードウェアの一例を示す図である。
【図４】データベースサーバのハードウェアの一構成例を示す図である。
【図５】対話ロボットの外観の一例を示す図である。
【図６】呼び名推定のための各装置の機能を示すブロック図である。
【図７】呼び名候補を収集する方法の一例を示す図である。
【図８】呼び名候補情報の一例を示す図である。
【図９】接尾語情報の一例を示す図である。
【図１０】登録ユーザ情報の一例を示す図である。
【図１１】ランキングデータの一例を示す図である。
【図１２】名前データの一例を示す図である。
【図１３】平均ランクの算出方法の例である。
【図１４】名前データ変換の手順の一例を示すフローチャートである。
【図１５】呼び名候補登録の手順の一例を示すフローチャートである。
【図１６】呼び名推定の手順の一例を示すフローチャートである。
【図１７】平均ランク算出の手順の一例を示すフローチャートである。
【図１８】推定呼び名提示の手順の一例を示すフローチャートである。
【図１９】推定呼び名提示の表示例を示す図である。
【図２０】推定呼び名提示の他の手順の一例を示すフローチャートである。
【図２１】推定呼び名提示の他の表示例を示す図である。
【図２２】名前データの他の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
まず第１の実施の形態について説明する。
【００１２】
図１は、第１の実施の形態に係る情報処理装置の一例を示す図である。図１の例では情報処理装置１０が、周囲の音声と対象人物の画像とを用いて、対象人物の呼び名を推定する。情報処理装置１０は、呼び名推定方法の処理手順が記述されたプログラムを実行することにより、呼び名推定処理を実施することができる。
【００１３】
情報処理装置１０には、マイク１が接続されている。マイク１は、情報処理装置１０の周囲の音声を収集する。
情報処理装置１０は記憶部１１と処理部１２とを有する。記憶部１１は、例えば情報処理装置１０が有するメモリ、またはストレージ装置である。処理部１２は、例えば情報処理装置１０が有するプロセッサ、または演算回路である。
【００１４】
記憶部１１は、呼び名データ１１ａを記憶する。呼び名データ１１ａには、人物の呼び名の候補である複数の呼び名候補が含まれる。一例として呼び名データ１１ａには、「ゆうき」、「ゆう」および「カレーライス」が、複数の呼び名候補として登録されている。
【００１５】
処理部１２は、呼び名候補の収集と対象人物の呼び名推定とを行う。呼び名候補の収集では、処理部１２は、マイク１で取得した音声データ２を解析して得られた複数の名詞を複数の呼び名候補として記憶部１１に格納する。例えば処理部１２は、マイク１で取得した音声データ２をディクテーション処理によってテキストに変換する。処理部１２は、変換したテキストを、形態素解析によって１以上の単語に分解する。処理部１２は、テキストを分解して得られた１以上の単語のうち、名詞である単語を呼び名候補として記憶部１１に格納する。
【００１６】
対象人物の呼び名推定では、まず処理部１２は、対象人物の顔を写した画像３に基づいて、対象人物の生年を推定する。画像３は、情報処理装置１０に接続されたカメラによって対象人物が撮影されたものであってもよいし、他の情報処理装置や記憶媒体から取得されてもよい。例えば処理部１２は、顔を入力として推定年齢を出力する、学習済みのニューラルネットワークを用いて対象人物の年齢を推定する。そして処理部１２は、画像３の撮影年から、推定した対象人物の年齢を引いた年を対象人物の推定生年とする。一例として、画像３から推定された対象人物の推定生年は「２００７」年であるものとする。
【００１７】
次に処理部１２は、複数の人名それぞれについての、対象人物の推定生年を含む所定期間内に生まれた人に名付けられた人名の頻度に応じた指標値を含む名前データ４を参照する。名前データ４は、記憶部１１に記憶されていてもよいし他の情報処理装置や記憶媒体に記憶されていてもよい。
【００１８】
名前データ４は、人名と生年との組に対応付けられ、対応する生年に生まれた人に、対応する人名が名付けられた頻度に応じた複数の指標値を有する。例えば、複数の人名それぞれの指標値は、所定期間内の年ごとに、各年に生まれた人に名付けられた頻度に応じて複数の人名を順位付けすることで得られた、複数の人名それぞれの年ごとの順位を示すランクである。また例えば、複数の人名それぞれの指標値は、複数の人名それぞれの、所定期間内の年ごとに各年に生まれた人に名付けられた頻度（度数）である。
【００１９】
例えば指標値がランクであり、名前データ４で生年「２００７」と人名「ゆうと」とに対応する指標値が「１」であった場合、「ゆうと」は、「２００７」年に生まれた人に名付けられた人名のうち、名付けられた頻度が「１」番目に高い人名であることを示す。以下では一例として処理部１２は、名前データ４のうち、生年「２００７」に対応する人名を複数の人名として参照する。
【００２０】
そして処理部１２は、複数の呼び名候補それぞれに対応する人名の指標値に基づいて、複数の呼び名候補の中から対象人物の呼び名を推定する。ここで複数の呼び名候補それぞれに対応する人名の指標値は、人名と生年との組と指標値との対応関係に従い決定される、複数の呼び名候補それぞれに対応する人名と、対象人物の生年との組に対応する指標値である。例えば処理部１２は、複数の人名から、複数の呼び名候補それぞれに対応する１以上の人名を検索する。ここで処理部１２は、複数の呼び名候補それぞれに対応する１以上の人名として、複数の呼び名候補それぞれを先頭に含む１以上の人名を検索してもよい。
【００２１】
処理部１２は、複数の呼び名候補それぞれについて、検索された１以上の人名それぞれの指標値に基づいて、対象人物の呼び名であるか否かの評価値を算出する。例えば指標値がランクの場合、処理部１２は、複数の呼び名候補のうちの一呼び名候補について、検索された１以上の人名それぞれのランクの所定期間内の年ごとの最小値を、各年の仮ランクとして選択する。そして処理部１２は、仮ランクの平均値である平均ランクを一呼び名候補の評価値とする。また例えば指標値が度数の場合、処理部１２は、複数の呼び名候補のうちの一呼び名候補について、検索された１以上の人名それぞれの度数の最大値、平均値、中央値などを、一呼び名候補の評価値とする。処理部１２は、複数の呼び名候補それぞれの評価値に基づいて、対象人物の呼び名を推定する。
【００２２】
一例として処理部１２は、呼び名データ１１ａに登録された呼び名候補それぞれの評価値を算出し、対象人物の呼び名を推定する。処理部１２は、呼び名候補「ゆうき」を先頭に含む人名を複数の人名から検索する。すると「２００７」年について、ランクが「２」である人名「ゆうき」が検索される。処理部１２は、呼び名候補「ゆうき」の「２００７」年の仮ランクを「２」とする。なおこの例では、所定期間を「２００７」年のみとしているため、処理部１２は呼び名候補「ゆうき」の評価値（平均ランク）も「２」とする。
【００２３】
また処理部１２は、「ゆう」を先頭に含む人名を複数の人名から検索する。すると「２００７」年について、ランクが「１」である人名「ゆうと」およびランクが「２」である人名「ゆうき」が検索される。処理部１２は、呼び名候補「ゆう」の「２００７」年の仮ランクを、検索された人名の指標値の最小値である「１」とする。処理部１２は、呼び名候補「ゆうき」の評価値（平均ランク）も「１」とする。
【００２４】
また処理部１２は、「カレーライス」を先頭に含む人名を複数の人名から検索する。このとき、「カレーライス」を先頭に含む人名は複数の人名に含まれていないため、処理部１２は、呼び名候補「カレーライス」の評価値を「ＩＮＦ」とする。
【００２５】
そして処理部１２は、呼び名候補「ゆうき」、「ゆう」および「カレーライス」のうち、評価値が最も小さい呼び名候補「ゆう」を対象人物の呼び名と推定する。なお、処理部１２は、評価値を基に、呼び名である可能性が高い複数の呼び名候補の中から、対象人物に呼び名を選択させてもよい。例えば処理部１２は、呼び名候補「ゆう」および呼び名候補「ゆうと」を対象人物に提示し、対象人物に呼び名として適切な呼び名候補を選択させてもよい。
【００２６】
このような情報処理装置１０によれば、複数の呼び名候補それぞれに対応する人名が、対象人物の推定生年に応じて名前データ４から検索され、検索された１以上の人名に対応した指標値を基に対象人物の呼び名が推定される。これにより、複数の呼び名候補のうち、対象人物の推定生年に生まれた人の名前である可能性が高い人名に対応する呼び名が対象人物の呼び名として推定される。また情報処理装置１０は、推定された呼び名を画像３と対応付けて対話システムに登録することもできる。その結果、対象人物の呼び名が対話システムに簡便に登録される。
【００２７】
なお呼び名データ１１ａは、記憶部１１に記憶されていなくてもよく、他の情報処理装置に記憶されていてもよい。その場合、例えば処理部１２は、マイク１で取得した音声データ２を、他の情報処理装置に送信してもよい。そして他の情報処理装置は、音声データ２を解析し、得られた複数の名詞を複数の呼び名候補として記憶してもよい。また例えば、処理部１２は、マイク１で取得した音声データ２を解析し、得られた複数の名詞を他の情報処理装置に送信してもよい。そして他の情報処理装置は、受信した複数の名詞を複数の呼び名候補として記憶してもよい。
【００２８】
ここで、ある人物の呼び名は、当該人物の名前の省略形であることがある。そこで情報処理装置１０は、複数の呼び名候補それぞれに対応する人名として、複数の呼び名候補それぞれを先頭に含む１以上の人名を名前データ４から検索する。これにより、ある呼び名候補に対応する人名として、省略すると当該呼び名候補となる人名が検索される。
【００２９】
また、ある呼び名候補に対して、検索された１以上の人名それぞれに応じた年ごとの仮評価値が選択され、仮評価値の平均値が当該呼び名候補の評価値となる。これにより、ある呼び名候補に対応する人名が複数検索された場合でも、当該呼び名候補が対象人物の呼び名であるか否かの度合いの評価ができる。
【００３０】
また処理部１２は、対象人物の推定生年に加え、対象人物の推定性別を基に対象人物の呼び名を推定してもよい。この場合、名前データ４に登録された複数の人名それぞれは性別と対応付けられる。処理部１２は、画像３に基づいて、対象人物の性別を推定する。そして処理部１２は、複数の人名のうち推定した性別に対応する人名の中から、複数の呼び名候補それぞれに対応する１以上の人名を検索する。これにより、呼び名候補に対応する人名の検索精度が向上する。
【００３１】
また、ある人物の呼び名は、当該人物の名前に基づいた愛称であることがある。そこで情報処理装置１０は、愛称に対応する人名を名前データ４から検索できるようにしてもよい。この場合、名前データ４には、複数の人名のいずれかに対応付けられた複数の愛称が含まれる。処理部１２は、複数の愛称から、複数の呼び名候補それぞれに対応する愛称を検索する。上記の検索された１以上の人名には、検索された愛称に対応する人名が含まれる。これにより、ある呼び名候補に対応する人名として、当該呼び名候補が愛称として用いられる人名が検索される。
【００３２】
また愛称には、愛称特有の接尾語を含むものもある。例えば日本人名では、人名や人名の省略形に「くん」や「ちゃん」などの接尾語を付加したものが愛称となることがある。このとき、人名や人名の省略形にいずれの接尾語を付加したものも愛称となり得る。そこで、名前データ４に含まれる複数の愛称の接尾語は、所定の文字列に置き換えられてもよい。この場合処理部１２は、複数の呼び名候補の接尾語を所定の文字列に置き換え、複数の呼び名候補それぞれに対応する愛称を検索する。これにより、呼び名候補が接尾語が付加された愛称である場合でも、付加される接尾語によらず当該呼び名候補が愛称として用いられる人名が検索される。
【００３３】
また人物の呼び名は、一定期間の会話で頻繁に使用される可能性が高い。そこで、情報処理装置１０は、呼び名データ１１ａに登録された呼び名候補のうち、使用頻度の少ない呼び名候補を除外して、対象人物の呼び名推定を行ってもよい。この場合、記憶部１１に記憶されている複数の呼び名候補それぞれは、複数の呼び名候補それぞれの検出回数に対応付けられる。処理部１２は、複数の呼び名候補のうち、対応する検出回数が閾値以上の呼び名候補を対象人物の呼び名の推定に用いる。これにより、人物の呼び名でない可能性の高い呼び名候補についての検索処理が行われなくなる。その結果、呼び名推定が効率的に行われる。
【００３４】
〔第２の実施の形態〕
次に第２の実施の形態について説明する。第２の実施の形態は、対話ロボットがユーザの呼び名候補を提示するものである。
【００３５】
図２は、第２の実施の形態のシステム構成例を示す図である。対話ロボット１００は、ユーザ２１の家庭で使用される家庭用ロボットである。対話ロボット１００は、ユーザ２１の家庭での会話音声を収集し、記憶する。また対話ロボット１００には、人物の顔と呼び名とが対応付けて登録される。ここで人物の呼び名は、当該人物を呼ぶときに使われる名称である。人物の呼び名は、当該人物の人名の場合もあるし、当該人物の人名以外（例えば、愛称）の場合もある。
【００３６】
対話ロボット１００は、登録された人物の顔を検出すると、検出した顔に対応付けられた呼び名で当該人物に呼びかける。また対話ロボット１００は、登録されていない人物の顔を検出すると、収集した会話音声と検出した顔とに基づいて、当該人物の呼び名を推定する。対話ロボット１００は、ネットワーク２０を介してデータベースサーバ２００に接続されている。データベースサーバ２００は、複数の人名の情報を示す名前データを記憶するサーバコンピュータである。なお、第２の実施の形態では、人の名前である「人名」を単に「名前」ということがある。対話ロボット１００は、データベースサーバ２００の名前データを用いて呼び名推定を行う。
【００３７】
図３は、対話ロボットのハードウェアの一例を示す図である。対話ロボット１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１１２を介してメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、またはＤＳＰ（Digital Signal Processor）である。プロセッサ１０１がプログラムを実行することで実現する機能の少なくとも一部を、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【００３８】
メモリ１０２は、対話ロボット１００の主記憶装置として使用される。メモリ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０２には、プロセッサ１０１による処理に利用する各種データが格納される。メモリ１０２としては、例えばＲＡＭ（Random Access Memory）などの揮発性の半導体記憶装置が使用される。
【００３９】
バス１１２に接続されている周辺機器としては、ストレージ装置１０３、ディスプレイ装置１０４、タッチパネル１０５、機器接続インタフェース１０６、カメラ１０７、無線通信部１０８および音声入出力部１０９がある。
【００４０】
ストレージ装置１０３は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置１０３は、コンピュータの補助記憶装置として使用される。ストレージ装置１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置１０３としては、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）を使用することができる。
【００４１】
ディスプレイ装置１０４は、プロセッサ１０１からの命令に従って、画像を表示する。ディスプレイ装置１０４としては、有機ＥＬ（Electro Luminescence）を用いた表示装置や液晶表示装置などがある。
【００４２】
タッチパネル１０５は、ディスプレイ装置１０４の画面の前面に配置されており、画面上の押された位置を検知して、その位置を示す信号をプロセッサ１０１に送信する。
機器接続インタフェース１０６は、対話ロボット１００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０６には、メモリカード３１を接続することができる。メモリカード３１は、機器接続インタフェース１０６との通信機能を搭載した、カード型の記録媒体である。
【００４３】
カメラ１０７は、対話ロボット１００に搭載された撮像装置である。カメラ１０７は、プロセッサ１０１からの命令に従って、カメラ１０７のレンズを向けた先の光景の静止画または動画のデータを生成し、メモリ１０２に格納する。
【００４４】
無線通信部１０８は、無線通信によるネットワークインタフェースである。無線通信部１０８は、ネットワーク２０に接続されている。無線通信部１０８は、ネットワーク２０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００４５】
音声入出力部１０９には、マイク１１０とスピーカ１１１とが接続されている。音声入出力部１０９は、マイク１１０から入力された音声信号をディジタル信号に変換して、プロセッサ１０１に送信する。また音声入出力部１０９は、プロセッサ１０１から音声データを受信すると、音声データに従った音声信号を生成し、スピーカ１１１から音声出力を行う。
【００４６】
対話ロボット１００は、以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、第１の実施の形態に示した情報処理装置１０も、図３に示した対話ロボット１００と同様のハードウェアにより実現することができる。
【００４７】
対話ロボット１００は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。対話ロボット１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、対話ロボット１００に実行させるプログラムをストレージ装置１０３に格納しておくことができる。プロセッサ１０１は、ストレージ装置１０３内のプログラムの少なくとも一部をメモリ１０２にロードし、プログラムを実行する。また対話ロボット１００に実行させるプログラムを、メモリカード３１などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１からの制御により、ストレージ装置１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００４８】
図４は、データベースサーバのハードウェアの一構成例を示す図である。データベースサーバ２００は、プロセッサ２０１によって装置全体が制御されている。プロセッサ２０１には、バス２０９を介してメモリ２０２と複数の周辺機器が接続されている。プロセッサ２０１は、マルチプロセッサであってもよい。プロセッサ２０１は、例えばＣＰＵ、ＭＰＵ、またはＤＳＰである。プロセッサ２０１がプログラムを実行することで実現する機能の少なくとも一部を、ＡＳＩＣ、ＰＬＤなどの電子回路で実現してもよい。
【００４９】
メモリ２０２は、データベースサーバ２００の主記憶装置として使用される。メモリ２０２には、プロセッサ２０１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ２０２には、プロセッサ２０１による処理に利用する各種データが格納される。メモリ２０２としては、例えばＲＡＭなどの揮発性の半導体記憶装置が使用される。
【００５０】
バス２０９に接続されている周辺機器としては、ストレージ装置２０３、グラフィック処理装置２０４、入力インタフェース２０５、光学ドライブ装置２０６、機器接続インタフェース２０７およびネットワークインタフェース２０８がある。
【００５１】
ストレージ装置２０３は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置２０３は、コンピュータの補助記憶装置として使用される。ストレージ装置２０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置２０３としては、例えばＨＤＤやＳＳＤを使用することができる。
【００５２】
グラフィック処理装置２０４には、モニタ４１が接続されている。グラフィック処理装置２０４は、プロセッサ２０１からの命令に従って、画像をモニタ４１の画面に表示させる。モニタ４１としては、有機ＥＬを用いた表示装置や液晶表示装置などがある。
【００５３】
入力インタフェース２０５には、キーボード４２とマウス４３とが接続されている。入力インタフェース２０５は、キーボード４２やマウス４３から送られてくる信号をプロセッサ２０１に送信する。なお、マウス４３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００５４】
光学ドライブ装置２０６は、レーザ光などを利用して、光ディスク４４に記録されたデータの読み取りを行う。光ディスク４４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク４４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００５５】
機器接続インタフェース２０７は、データベースサーバ２００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース２０７には、メモリ装置４５やメモリリーダライタ４６を接続することができる。メモリ装置４５は、機器接続インタフェース２０７との通信機能を搭載した記録媒体である。メモリリーダライタ４６は、メモリカード４７へのデータの書き込み、またはメモリカード４７からのデータの読み出しを行う装置である。メモリカード４７は、カード型の記録媒体である。
【００５６】
ネットワークインタフェース２０８は、ネットワーク２０に接続されている。ネットワークインタフェース２０８は、ネットワーク２０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
データベースサーバ２００は、以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。
【００５７】
データベースサーバ２００は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。データベースサーバ２００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、データベースサーバ２００に実行させるプログラムをストレージ装置２０３に格納しておくことができる。プロセッサ２０１は、ストレージ装置２０３内のプログラムの少なくとも一部をメモリ２０２にロードし、プログラムを実行する。またデータベースサーバ２００に実行させるプログラムを、光ディスク４４、メモリ装置４５、メモリカード４７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ２０１からの制御により、ストレージ装置２０３にインストールされた後、実行可能となる。またプロセッサ２０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００５８】
次に、対話ロボット１００の正面からの外観を説明する。
図５は、対話ロボットの外観の一例を示す図である。対話ロボット１００は、例えば頭部１００ａ、胴体１００ｂ、腕１００ｃ，１００ｄ、足１００ｅ，１００ｆを有する。
【００５９】
対話ロボット１００の頭部１００ａの正面には、ディスプレイ装置１０４、タッチパネル１０５、カメラ１０７およびスピーカ１１１が設置されている。ディスプレイ装置１０４は、例えば頭部１００ａの中央に設置されている。タッチパネル１０５は、ディスプレイ装置１０４の画面の前面に配置される。例えば対話ロボット１００は、選択肢を示す複数のボタンをディスプレイ装置１０４に表示させる。表示されたボタンのいずれかにユーザ２１が指で触れると、対話ロボット１００は、タッチパネル１０５によって、ユーザ２１の選択したボタンを認識する。このように対話ロボット１００は、ディスプレイ装置１０４による表示と、タッチパネル１０５によるユーザ２１の選択の取得とによって、ユーザ２１とコミュニケーションを取ることができる。
【００６０】
カメラ１０７およびスピーカ１１１は、例えばディスプレイ装置１０４の上側に設置されている。対話ロボット１００は、カメラ１０７によって、正面にいる人物の顔を検出する。対話ロボット１００は、スピーカ１１１によって、正面にいる人物に対して音声信号を出力する。例えば対話ロボット１００は、カメラ１０７によって検出した人物の顔が呼び名と対応付けて記憶されている場合、スピーカ１１１から検出した人物の呼び名を示す音声信号を出力する。
【００６１】
また、対話ロボット１００の頭部１００ａの上部には、マイク１１０が設置されている。対話ロボット１００は、マイク１１０によって、周囲の音声を取得する。また対話ロボット１００は、マイク１１０によって、正面にいる人物の発話を取得する。例えば対話ロボット１００は、正面にいるユーザ２１の発話を取得すると、取得した発話に対する応答を示す音声を、スピーカ１１１によって出力する。このように対話ロボット１００は、ユーザ２１と音声を通じてコミュニケーションを取ることができる。
【００６２】
なお以下では、対話ロボット１００がユーザ２１の呼び名を推定する場合について説明する。
次に、対話ロボット１００の機能について詳細に説明する。
【００６３】
図６は、呼び名推定のための各装置の機能を示すブロック図である。対話ロボット１００は、記憶部１２０、音声取得部１３０、呼び名候補検出部１４０、顔画像取得部１５０、生年推定部１６０、性別推定部１７０、平均ランク算出部１８０および呼び名提示部１９０を有する。
【００６４】
記憶部１２０は、呼び名候補情報１２１、接尾語情報１２２および登録ユーザ情報１２３を記憶する。呼び名候補情報１２１は、複数の呼び名候補に関する情報である。接尾語情報１２２は、愛称に使用される接尾語の情報である。登録ユーザ情報１２３は、顔と呼び名が対応付けて登録されているユーザの情報である。
【００６５】
音声取得部１３０は、マイク１１０によって周囲の音声信号を取得する。呼び名候補検出部１４０は、音声取得部１３０が取得した音声信号に含まれる呼び名候補を呼び名候補情報１２１に登録する。例えば呼び名候補検出部１４０は、音声取得部１３０が取得した音声信号をテキストに変換する。呼び名候補検出部１４０は、変換したテキストを形態素解析によって単語群に分解する。そして呼び名候補検出部１４０は、単語群に含まれる名詞を呼び名候補情報１２１に登録する。
【００６６】
顔画像取得部１５０は、ユーザ２１の顔を写した画像を取得する。例えば顔画像取得部１５０は、カメラ１０７によってユーザ２１の顔を撮影する。また例えば、ユーザ２１の顔を写した画像のデータを記録媒体から取得してもよい。顔画像取得部１５０は、取得したユーザ２１の顔から特徴量を抽出する。
【００６７】
生年推定部１６０は、顔画像取得部１５０が抽出した特徴量を基にユーザ２１の生年を推定する。例えば生年推定部１６０は、人物の顔の特徴量を入力として当該人物の年齢を出力する、学習済みのニューラルネットワークを用いて、顔画像取得部１５０が抽出した特徴量を基にユーザ２１の年齢を推定する。そして生年推定部１６０は、顔画像取得部１５０が取得した顔画像の撮影年から、ユーザ２１の推定年齢を引いたものをユーザ２１の生年と推定する。
【００６８】
性別推定部１７０は、顔画像取得部１５０が抽出した特徴量を基にユーザ２１の性別を推定する。例えば性別推定部１７０は、人物の顔の特徴量を入力として当該人物の性別を出力する、学習済みのニューラルネットワークを用いて、顔画像取得部１５０が抽出した特徴量を基にユーザ２１の性別を推定する。
【００６９】
平均ランク算出部１８０は、データベースサーバ２００が記憶する名前データ２１２に登録された名前に対応するランクを基に、呼び名候補情報１２１に登録された複数の呼び名候補それぞれの、平均ランクを算出する。ここで、ランクは第１の実施の形態に示した指標値の一例である。また、平均ランクは、第１の実施の形態に示した評価値の一例である。
【００７０】
名前データ２１２には、生年と性別とランクと愛称とに対応付けられた複数の名前が登録されている。名前に対応するランクは、当該名前が名付けられた頻度の、対応する生年、性別ごとの順位を示す。愛称は、対応する名前に対して用いられる愛称である。
【００７１】
例えば平均ランク算出部１８０は、名前データ２１２のユーザ２１の推定生年と推定性別とに対応する名前から、複数の呼び名候補それぞれに対応する名前を検索する。ここで平均ランク算出部１８０は、呼び名候補に対応する名前として、当該呼び名候補を先頭に含む名前を検索する。また平均ランク算出部１８０は、呼び名候補に対応する名前として、当該呼び名候補と一致する愛称に対応する名前を検索する。そして平均ランク算出部１８０は、呼び名候補それぞれについて、検索された名前に対応付けられたランクに基づいて平均ランクを算出する。
【００７２】
呼び名提示部１９０は、平均ランク算出部１８０によって算出された平均ランクに基づいて、ユーザ２１の呼び名を推定し、推定した呼び名（推定呼び名）を表示する。例えば呼び名提示部１９０は、平均ランクの値が小さい順に所定個の呼び名候補をユーザ２１の呼び名と推定する。そして呼び名提示部１９０は、推定呼び名をディスプレイ装置１０４に表示させる。
【００７３】
データベースサーバ２００は、記憶部２１０および名前データ変換部２２０を有する。
記憶部２１０は、ランキングデータ２１１および名前データ２１２を記憶する。ランキングデータ２１１は、生年と性別ごとの名前のランクを示す統計情報である。名前データ変換部２２０は、ランキングデータ２１１に、各名前に対応する愛称を付加し、名前データ２１２を生成する。
【００７４】
なお、図６に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図６に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【００７５】
次に、対話ロボット１００の保持する情報について具体的に説明する。
図７は、呼び名候補を収集する方法の一例を示す図である。以下では、呼び名候補検出部１４０が、音声取得部１３０によって取得された日本語での会話を示す音声から、呼び名候補を抽出する一例を示す。
【００７６】
音声取得部１３０は、マイク１１０によって周囲から音声信号３２を取得する。呼び名候補検出部１４０は、ディクテーション処理によって、音声信号３２をテキスト３３に変換する。一例としてテキスト３３には、「ゆうき、今日の晩御飯は何がいい」、「カレーライス」というテキストが含まれる。
【００７７】
呼び名候補検出部１４０は、形態素解析によってテキスト３３を単語群３４に分割する。例えば呼び名候補検出部１４０は、「ゆうき、今日の晩御飯は何がいい」というテキストを、名詞「ゆうき」、名詞「今日」、助詞「の」、名詞「晩御飯」、助詞「は」、代名詞「何」、助詞「が」、形容詞「いい」に分割する。また呼び名候補検出部１４０は、「カレーライス」というテキストを、名詞「カレーライス」に分割する。
【００７８】
呼び名候補検出部１４０は、単語群３４に含まれる名詞から名詞群３５を抽出する。例えば呼び名候補検出部１４０は、「ゆうき、今日の晩御飯は何がいい」、「カレーライス」というテキストから分割された単語のうち、「ゆうき」、「今日」、「晩御飯」、「カレーライス」を名詞群３５として抽出する。呼び名候補検出部１４０は、名詞群３５を呼び名候補情報１２１に登録する。
【００７９】
図８は、呼び名候補情報の一例を示す図である。呼び名候補情報１２１には、ＩＤ（IDentifier）、呼び名候補および検出数の欄が設けられている。
ＩＤは、呼び名候補の識別番号である。呼び名候補は、呼び名候補検出部１４０によって抽出された名詞である。検出数は、呼び名候補が検出された回数である。
【００８０】
呼び名候補情報１２１は、呼び名候補検出部１４０が名詞を抽出するたびに更新される。例えば呼び名候補検出部１４０は、呼び名候補情報１２１に登録されていない名詞を抽出すると、呼び名候補情報１２１に新たなレコードを登録する。また呼び名候補検出部１４０は、呼び名候補情報１２１に登録されている名詞を抽出すると、呼び名候補情報１２１の、抽出された名詞に対応する検出数を１増加させる。
【００８１】
図９は、接尾語情報の一例を示す図である。接尾語情報１２２には、ＩＤおよび接尾語の欄が設けられている。ＩＤは、接尾語の識別番号である。接尾語は、愛称に用いられる接尾語である。例えば対話ロボット１００が、日本人の呼び名を推定する場合、接尾語情報１２２には、「くん」、「ちゃん」、「さん」、「はん」などの日本人の愛称に用いられる接尾語が登録される。
【００８２】
図１０は、登録ユーザ情報の一例を示す図である。登録ユーザ情報１２３には、ＩＤ、特徴量および呼び名の欄が設けられている。ＩＤは、登録されたユーザの識別番号である。特徴量は、ユーザの顔画像から抽出される特徴量である。呼び名は、ユーザの呼び名である。
【００８３】
登録ユーザ情報１２３は、例えば対話ロボット１００が人物の呼び名を呼ぶために用いられる。例えば対話ロボット１００は、カメラ１０７によって人物の顔を検出すると、検出した人物の顔画像から特徴量を抽出する。対話ロボット１００は、抽出した特徴量との距離が閾値未満の特徴量を、登録ユーザ情報１２３から検索する。対話ロボット１００は、検索された特徴量に対応する呼び名を示す音声信号をスピーカ１１１から出力する。なお登録ユーザ情報１２３に、抽出した特徴量との距離が閾値未満の特徴量が登録されていない場合（すなわち、検出した人物が登録されたユーザでない場合）、呼び名提示部１９０は、検出した人物の呼び名を推定し、推定呼び名を提示する。
【００８４】
次に、データベースサーバ２００が保持する名前データ２１２について説明する。まず名前の生年、性別ごとのランキングデータについて説明する。そしてランキングデータに名前に対応する愛称の情報を付加した、名前データ２１２について説明する。
【００８５】
図１１は、ランキングデータの一例を示す図である。ランキングデータ２１１ランキングデータ２１１は、生年、性別ごとの名前のランキングを示す情報である。ランキングデータ２１１には、生年、性別、名前およびランクの欄が設けられている。生年の欄には、生年が設定される。性別の欄には、性別が設定される。名前の欄には、名前が設定される。ランクの欄には、名前の、生年、性別ごとの名付けられた頻度に応じた指標値として、頻度の順位が設定される。
【００８６】
例えばランキングデータ２１１には、生年が「２００７」、性別が「男」、名前が「ゆうと」、ランクが「１」のレコードが登録されている。これは、「２００７」年に生まれた「男」性に名付けられた名前のうち、「ゆうと」という名前が「１」番目に多いことを示す。また例えばランキングデータ２１１には、生年が「２００７」、性別が「女」、名前が「ゆい」、ランクが「１」のレコードが登録されている。これは、「２００７」年に生まれた「女」性に名付けられた名前のうち、「ゆい」という名前が「１」番目に多いことを示す。
【００８７】
ランキングデータ２１１は、１つの生年と性別の組について、例えば５０個の名前が登録される。なおランキングデータ２１１には、生年または性別の欄が異なり、名前の欄が同一のレコードが登録されていてもよい。例えばランキングデータ２１１には、生年が「２００７」、性別が「男」、名前が「ゆうと」、ランクが「１」のレコードと生年が「２００８」、性別が「男」、名前が「ゆうと」、ランクが「１」のレコードとが登録されていてもよい。
【００８８】
図１２は、名前データの一例を示す図である。名前データ２１２には、生年、性別、名前、ランク、愛称Ａ、愛称Ｂおよび愛称Ｃの欄が設けられている。名前データ２１２の生年、性別、名前およびランクの欄は、ランキングデータ２１１と同様である。
【００８９】
愛称Ａ、愛称Ｂおよび愛称Ｃの欄には、対応する名前の人物に対する呼び名として使用される愛称が設定される。愛称Ａの欄には、名前の完全形に接尾語を付加した愛称が設定される。愛称Ｂの欄には、名前の省略形（例えば、名前の先頭２文字）に接尾語を付加した愛称が設定される。愛称Ｃの欄には、名前によく使用されるその他の愛称が設定される。例えば愛称Ｃの欄には、ユーザ調査などによって名前に対してよく使われるとされた愛称が、名前データ２１２の作成者によって入力される。愛称Ｃの欄には、複数の愛称が設定されていてもよい。
【００９０】
例えば名前データ２１２の名前が「ゆうと」のレコードには愛称Ａの欄に「ゆうと［Ｓｕｆ］」が設定される。これは、名前「ゆうと」の完全形に接尾語を示す文字列「［Ｓｕｆ］」を付加したものである。また名前データ２１２の名前が「ゆうと」のレコードには愛称Ｂの欄に「ゆう［Ｓｕｆ］」が設定される。これは、名前「ゆうと」の先頭２文字「ゆう」に接尾語を示す文字列「［Ｓｕｆ］」を付加したものである。また名前データ２１２の名前が「ゆうと」のレコードには愛称Ｃの欄に「ゆっ［Ｓｕｆ］」が設定される。これは、ユーザ調査などによって、名前「ゆうと」に対してよく使われるとされた愛称「ゆっくん」の接尾語「くん」が文字列「［Ｓｕｆ］」に置換されたものである。
【００９１】
次に平均ランクの算出方法を説明する。
図１３は、平均ランクの算出方法の例である。平均ランク算出部１８０は、名前データ２１２の、ユーザ２１の推定生年と推定性別に応じた範囲から、呼び名候補に対応する名前を検索し、検索された名前のランクに応じて、当該呼び名候補の平均ランクを算出する。
【００９２】
一例として平均ランク算出部１８０は、検索範囲が生年「２００７」〜「２００８」、性別「男」であるレコードの集合である場合の、呼び名候補「ゆうき」および「ゆうくん」の平均ランクを以下のように算出する。
【００９３】
平均ランク算出部１８０は、呼び名候補「ゆうき」を先頭に含む名前が設定されたレコードを、名前データ２１２から検索する。すると検索結果３６に示すレコードが検索される。検索結果３６には、生年「２００７」、名前「ゆうき」、ランク「２」のレコードと、生年「２００８」、名前「ゆうき」、ランク「３」のレコードとが含まれる。なお、図１３の例では、名前データ２１２のレコードの性別、愛称Ａ、愛称Ｂおよび愛称Ｃの欄は省略されている。
【００９４】
平均ランク算出部１８０は、呼び名候補「ゆうき」の生年「２００７」に対する仮ランクとして、検索結果３６に含まれる生年「２００７」のレコードのランクのうち、最小値である「２」を選択する。また平均ランク算出部１８０は、呼び名候補「ゆうき」の生年「２００８」に対する仮ランクとして、検索結果３６に含まれる生年「２００８」のレコードのランクのうち、最小値である「３」を選択する。そして平均ランク算出部１８０は、呼び名候補「ゆうき」の平均ランクを呼び名候補「ゆうき」の仮ランクの平均値とする。つまり呼び名候補「ゆうき」の平均ランクは、（２＋３）／２＝２．５と算出される。
【００９５】
平均ランク算出部１８０は、呼び名候補「ゆうくん」の平均ランクを算出する場合、接尾語「くん」を文字列「［Ｓｕｆ］」に置き換えて、対応する愛称を名前データ２１２から検索する。平均ランク算出部１８０は、文字列「ゆう［Ｓｕｆ］」と一致する愛称が愛称Ａ、愛称Ｂまたは愛称Ｃに設定されたレコードを、名前データ２１２から検索する。すると検索結果３７に示すレコードが検索される。検索結果３７には、生年「２００７」、名前「ゆうと」、ランク「１」のレコードと、生年「２００７」、名前「ゆうき」、ランク「２」のレコードとが含まれる。また検索結果３７には、生年「２００８」、名前「ゆうと」、ランク「１」のレコードと生年「２００８」、名前「ゆうき」、ランク「３」のレコードとが含まれる。
【００９６】
平均ランク算出部１８０は、呼び名候補「ゆうくん」の生年「２００７」に対する仮ランクとして、検索結果３７に含まれる生年「２００７」のレコードのランクのうち、最小値である「１」を選択する。また平均ランク算出部１８０は、呼び名候補「ゆうくん」の生年「２００８」に対する仮ランクとして、検索結果３７に含まれる生年「２００８」のレコードのランクのうち、最小値である「１」を選択する。そして平均ランク算出部１８０は、呼び名候補「ゆうくん」の平均ランクを、呼び名候補「ゆうくん」の仮ランクの平均値とする。つまり呼び名候補「ゆうくん」の平均ランクは、（１＋１）／２＝１と算出される。
【００９７】
また、平均ランク算出部１８０は、名前データ２１２の検索範囲から、対応する名前や愛称が検索されなかった、「さくらちゃん」などの呼び名候補の平均ランクを「ＩＮＦ」に設定する。平均ランクが「ＩＮＦ」に設定された呼び名候補は、ユーザ２１の呼び名として推定されない。
【００９８】
次に、データベースサーバ２００におけるランキングデータ２１１から名前データ２１２への変換処理の手順を、フローチャートを参照して説明する。
図１４は、名前データ変換の手順の一例を示すフローチャートである。以下、図１４に示す処理をステップ番号に沿って説明する。
【００９９】
［ステップＳ１０１］名前データ変換部２２０は、ランキングデータ２１１の全てのレコードに愛称Ａ、愛称Ｂおよび愛称Ｃの欄を結合し、名前データ２１２とする。
［ステップＳ１０２］名前データ変換部２２０は、名前データ２１２の全てのレコードを選択したか否かを判定する。名前データ変換部２２０は、名前データ２１２の全てのレコードを選択済みである場合、処理を終了する。また名前データ変換部２２０は、選択していない名前データ２１２のレコードが残っている場合、処理をステップＳ１０３に進める。
【０１００】
［ステップＳ１０３］名前データ変換部２２０は、名前データ２１２の未選択のレコードを１つ選択する。
［ステップＳ１０４］名前データ変換部２２０は、ステップＳ１０３で選択したレコード（選択レコード）の名前の欄に設定された名前に、文字列「［Ｓｕｆ］」を結合したものを、選択レコードの愛称Ａに設定する。
【０１０１】
［ステップＳ１０５］名前データ変換部２２０は、選択レコードの名前の欄に設定された名前の先頭２文字に、文字列「［Ｓｕｆ］」を結合したものを、選択レコードの愛称Ｂに設定する。
【０１０２】
［ステップＳ１０６］名前データ変換部２２０は、作成者によって入力された愛称を選択レコードの愛称Ｃに設定する。そして名前データ変換部２２０は、処理をステップＳ１０２に進める。
【０１０３】
このように、ランキングデータ２１１が名前データ２１２に変換される。
次に、対話ロボット１００における呼び名候補登録の手順を、フローチャートを参照して説明する。
【０１０４】
図１５は、呼び名候補登録の手順の一例を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
［ステップＳ２０１］音声取得部１３０は、音声信号３２を取得する。
【０１０５】
［ステップＳ２０２］呼び名候補検出部１４０は、音声信号３２をディクテーション処理によってテキスト３３に変換する。
［ステップＳ２０３］呼び名候補検出部１４０は、テキスト３３を形態素解析し、単語群３４に分解する。
【０１０６】
［ステップＳ２０４］呼び名候補検出部１４０は、単語群３４から全ての名詞を選択したか否かを判定する。呼び名候補検出部１４０は、単語群３４の全ての名詞が選択済みである場合、処理を終了する。また呼び名候補検出部１４０は、選択していない名詞が単語群３４に残っている場合、処理をステップＳ２０５に進める。
【０１０７】
［ステップＳ２０５］呼び名候補検出部１４０は、単語群３４から未選択の名詞を１つ選択する。
［ステップＳ２０６］呼び名候補検出部１４０は、ステップＳ２０５で選択した名詞は呼び名候補情報１２１に登録済みであるか否かを判定する。呼び名候補検出部１４０は、ステップＳ２０５で選択した名詞が呼び名候補情報１２１に登録済みである場合、処理をステップＳ２０７に進める。また呼び名候補検出部１４０は、ステップＳ２０５で選択した名詞が呼び名候補情報１２１に登録されていない場合、処理をステップＳ２０８に進める。
【０１０８】
［ステップＳ２０７］呼び名候補検出部１４０は、呼び名候補情報１２１の、ステップＳ２０５で選択した名詞に対応するレコードの検出数に、１を加算する。そして呼び名候補検出部１４０は、処理をステップＳ２０４に進める。
【０１０９】
［ステップＳ２０８］呼び名候補検出部１４０は、ステップＳ２０５で選択した名詞を呼び名候補情報１２１に登録する。例えば呼び名候補検出部１４０は、ＩＤの欄が使用されていないＩＤ、呼び名候補の欄がステップＳ２０５で選択した名詞、検出数の欄が「１」のレコードを呼び名候補情報１２１に追加する。そして呼び名候補検出部１４０は、処理をステップＳ２０４に進める。
【０１１０】
このように、対話ロボット１００の周囲の音声から呼び名候補が抽出される。
次に、対話ロボット１００における呼び名推定の手順を、フローチャートを参照して説明する。
【０１１１】
図１６は、呼び名推定の手順の一例を示すフローチャートである。以下、図１６に示す処理をステップ番号に沿って説明する。
［ステップＳ２１１］顔画像取得部１５０は、ユーザ２１の顔画像を検出する。顔画像取得部１５０は、検出した顔画像から特徴量を抽出する。
【０１１２】
［ステップＳ２１２］顔画像取得部１５０は、ステップＳ２１１で抽出した特徴量が登録ユーザ情報１２３に登録済みであるか否かを判定する。例えば顔画像取得部１５０は、登録ユーザ情報１２３に、ステップＳ２１１で抽出した特徴量との距離が閾値未満である特徴量が登録されていれば、ステップＳ２１１で抽出した特徴量は登録ユーザ情報１２３に登録済みであると判定する。顔画像取得部１５０は、ステップＳ２１１で抽出した特徴量が登録ユーザ情報１２３に登録済みである場合、処理を終了する。また顔画像取得部１５０は、ステップＳ２１１で抽出した特徴量が登録ユーザ情報１２３に登録済みでない場合、処理をステップＳ２１３に進める。
【０１１３】
［ステップＳ２１３］生年推定部１６０は、ステップＳ２１１で抽出した特徴量からユーザ２１の生年を推定する。例えば生年推定部１６０は、人物の顔の特徴量を入力として当該人物の年齢を出力する、学習済みのニューラルネットワークを用いて、ステップＳ２１１で抽出した特徴量からユーザ２１の年齢を推定する。
【０１１４】
［ステップＳ２１４］生年推定部１６０は、ステップＳ２１３で推定したユーザ２１の推定年齢とステップＳ２１１で取得した顔画像の撮影年から、ユーザ２１の推定生年を算出する。例えば生年推定部１６０は、ステップＳ２１１で取得した顔画像の撮影年から、ステップＳ２１３で推定したユーザ２１の推定年齢を引いたものをユーザ２１の推定生年と算出する。
【０１１５】
［ステップＳ２１５］性別推定部１７０は、ステップＳ２１１で抽出した特徴量からユーザ２１の性別を推定する。例えば性別推定部１７０は、人物の顔の特徴量を入力として当該人物の性別を出力する、学習済みのニューラルネットワークを用いて、ステップＳ２１１で抽出した特徴量からユーザ２１の性別を推定する。
【０１１６】
［ステップＳ２１６］平均ランク算出部１８０は、呼び名候補情報１２１に登録された全呼び名候補を処理したか否かを判定する。平均ランク算出部１８０は、呼び名候補情報１２１に登録された全呼び名候補が処理済みである場合、処理をステップＳ２２４に進める。また平均ランク算出部１８０は、処理していない呼び名候補が呼び名候補情報１２１に残っている場合、処理をステップＳ２１７に進める。
【０１１７】
［ステップＳ２１７］平均ランク算出部１８０は、呼び名候補情報１２１から未選択の呼び名候補を１つ選択する。
［ステップＳ２１８］平均ランク算出部１８０は、ステップＳ２１７で選択した呼び名候補の検出数が閾値以上であるか否かを判定する。平均ランク算出部１８０は、検出数が閾値以上である場合、処理をステップＳ２１９に進める。また平均ランク算出部１８０は、検出数が閾値未満である場合、処理をステップＳ２１６に進める。
【０１１８】
［ステップＳ２１９］平均ランク算出部１８０は、ステップＳ２１７で選択した呼び名候補に接尾語があるか否かを判定する。例えば平均ランク算出部１８０は、接尾語情報１２２に登録されたいずれかの接尾語が、ステップＳ２１７で選択した呼び名候補の末尾に含まれている場合、ステップＳ２１７で選択した呼び名候補に接尾語があると判定する。平均ランク算出部１８０は、ステップＳ２１７で選択した呼び名候補に接尾語がある場合、処理をステップＳ２２０に進める。また平均ランク算出部１８０は、ステップＳ２１７で選択した呼び名候補に接尾語がない場合、処理をステップＳ２２１に進める。
【０１１９】
［ステップＳ２２０］平均ランク算出部１８０は、ステップＳ２１７で選択した呼び名候補の接尾語を文字列「［Ｓｕｆ］」に置き換える。
［ステップＳ２２１］平均ランク算出部１８０は、ステップＳ２１７で選択した呼び名候補を先頭に含む名前を、ユーザ２１の推定生年と推定性別とに対応する範囲で名前データ２１２から検索する。例えば平均ランク算出部１８０は、生年の欄がユーザ２１の推定生年の前後２年以内に設定され、性別の欄がユーザ２１の推定性別に設定されている、名前データ２１２のレコードを検索対象とする。そして平均ランク算出部１８０は、ステップＳ２１７で選択した呼び名候補を先頭に含む名前が、名前の欄に設定されているレコードを、検索対象のレコードの中から検索する。
【０１２０】
［ステップＳ２２２］平均ランク算出部１８０は、ステップＳ２１７で選択した呼び名候補と一致する愛称を、ユーザ２１の推定生年と推定性別とに対応する範囲で名前データ２１２から検索する。例えば平均ランク算出部１８０は、生年の欄がユーザ２１の推定生年の前後２年以内に設定され、性別の欄がユーザ２１の推定性別に設定されている、名前データ２１２のレコードを検索対象とする。そして平均ランク算出部１８０は、ステップＳ２１７で選択した呼び名候補と一致する愛称が、愛称Ａ、愛称Ｂまたは愛称Ｃの欄に設定されているレコードを、検索対象のレコードの中から検索する。
【０１２１】
［ステップＳ２２３］平均ランク算出部１８０は、ステップＳ２２１およびステップＳ２２２で検索された名前データ２１２のレコードを基に、ステップＳ２１７で選択した呼び名候補について平均ランクを算出する。平均ランク算出の詳細については後述する（図１７参照）。そして平均ランク算出部１８０は、処理をステップＳ２１６に進める。
【０１２２】
［ステップＳ２２４］呼び名提示部１９０は、ステップＳ２２３で平均ランクを算出した複数の呼び名候補それぞれの平均ランクを基に、ユーザ２１の推定呼び名を決定し、提示する。推定呼び名提示の詳細については後述する（図１８参照）。
【０１２３】
このようにして、複数の呼び名候補それぞれの平均ランクが算出され、平均ランクを基に推定呼び名の提示が行われる。このとき、検出数が閾値未満の呼び名候補は、平均ランク算出の対象とならない。これは、人物の呼び名は一定期間の会話で頻繁に使用されることから、検出数の少ない呼び名候補は、人物の呼び名の可能性が低いものと判定できるからである。これにより、呼び名推定が効率的に行われる。
【０１２４】
また、複数の呼び名候補それぞれの平均ランクは、複数の呼び名候補それぞれについて名前データ２１２から検索された名前や愛称を基に算出される。ここである呼び名候補について、当該呼び名候補を先頭に含む名前が名前データ２１２から検索される。これにより、ある呼び名候補が名前の省略形である場合、省略形に対する原形の名前が検索される。またある呼び名候補について、当該呼び名候補と一致する愛称が名前データ２１２から検索される。これにより、ある呼び名候補に対して、当該呼び名候補を愛称として用いる名前が検索される。
【０１２５】
なお名前データ２１２に含まれる複数の愛称の接尾語は、所定の文字列に置き換えられている。接尾語を含む呼び名候補について、名前データ２１２から愛称を検索する場合、呼び名候補に含まれる接尾語は所定の文字列に置き換えられる。これにより、ある呼び名候補が接尾語が付加された愛称である場合、付加される接尾語によらず当該呼び名候補が愛称として用いられる名前が検索される。
【０１２６】
図１７は、平均ランク算出の手順の一例を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
［ステップＳ２３１］平均ランク算出部１８０は、検索結果が存在する年の数を示す変数ａをａ＝０に設定する。
【０１２７】
［ステップＳ２３２］平均ランク算出部１８０は、検索対象とした年を全て処理したか否かを判定する。平均ランク算出部１８０は、対象の年が全て処理済みである場合、処理をステップＳ２３９に進める。また平均ランク算出部１８０は、処理していない年が残っている場合、処理をステップＳ２３３に進める。
【０１２８】
［ステップＳ２３３］平均ランク算出部１８０は、未処理の年を１つ選択する。平均ランク算出部１８０は、選択した年の検索結果を取得する。例えば平均ランク算出部１８０は、検索結果のレコードのうち、生年の欄が選択した年に設定されているレコードを取得する。
【０１２９】
［ステップＳ２３４］平均ランク算出部１８０は、ステップＳ２３３で取得した検索結果が０件であるか否かを判定する。平均ランク算出部１８０は、取得した検索結果が０件である場合、処理をステップＳ２３２に進める。また平均ランク算出部１８０は、取得した検索結果が０件でない場合、処理をステップＳ２３５に進める。
【０１３０】
［ステップＳ２３５］平均ランク算出部１８０は、ステップＳ２３３で取得した検索結果が２件以上であるか否かを判定する。平均ランク算出部１８０は、取得した検索結果が２件以上である場合、処理をステップＳ２３７に進める。また平均ランク算出部１８０は、取得した検索結果が２件未満である場合、処理をステップＳ２３６に進める。
【０１３１】
［ステップＳ２３６］平均ランク算出部１８０は、ステップＳ２３３で取得した検索結果のランクをステップＳ２３３で選択した年の仮ランクに設定する。そして平均ランク算出部１８０は、処理をステップＳ２３８に進める。
【０１３２】
［ステップＳ２３７］平均ランク算出部１８０は、ステップＳ２３３で取得した検索結果のランクのうち、最上位のランクをステップＳ２３３で選択した年の仮ランクに設定する。
【０１３３】
［ステップＳ２３８］平均ランク算出部１８０は、検索結果が存在する年の数を示す変数ａの値を１だけ増加させ（ａ＝ａ＋１）、処理をステップＳ２３２に進める。
［ステップＳ２３９］平均ランク算出部１８０は、検索結果が存在する年の数を示す変数ａが０である（ａ＝０）か否かを判定する。平均ランク算出部１８０は、ａ＝０である場合、処理をステップＳ２４１に進める。また平均ランク算出部１８０は、ａ≠０である場合、処理をステップＳ２４０に進める。
【０１３４】
［ステップＳ２４０］平均ランク算出部１８０は、各年の仮ランクの合計をａで割った値を平均ランクとして算出する。そして平均ランク算出部１８０は、処理を終了する。
［ステップＳ２４１］平均ランク算出部１８０は、ａ＝０である場合、平均ランクを「ＩＮＦ」に設定する。
【０１３５】
このようにして、複数の呼び名候補それぞれについて検索された１以上の名前に応じて、複数の呼び名候補それぞれの平均ランクが算出される。平均ランクは、検索対象の各年における仮ランクの平均値である。ここで、ある年の仮ランクは、呼び名候補について検索された名前の当該年のランクのうち、最上位のものである。つまりある呼び名候補のある年の仮ランクの値が小さいほど、当該年に生まれた人に当該呼び名候補に対応する名前が名付けられた頻度が高いことが示される。よって、仮ランクが検索対象の期間で平均された平均ランクの値が小さいほど、検索対象の期間に生まれた人に呼び名候補に対応する名前が名付けられた頻度が高いことが示される。このように、複数の呼び名候補それぞれがユーザ２１の呼び名であるか否かの度合いが、平均ランクによって評価される。
【０１３６】
図１８は、推定呼び名提示の手順の一例を示すフローチャートである。以下、図１８に示す処理をステップ番号に沿って説明する。
［ステップＳ２５１］呼び名提示部１９０は、平均ランク算出部１８０から平均ランクが算出された呼び名候補と、各呼び名候補の平均ランクの算出結果とを取得する。
【０１３７】
［ステップＳ２５２］呼び名提示部１９０は、ステップＳ２５１で取得した呼び名候補のうち、平均ランクが「ＩＮＦ」以外の呼び名候補を平均ランクが小さい順にソートする。
【０１３８】
［ステップＳ２５３］呼び名提示部１９０は、ステップＳ２５２でソートされた呼び名候補のうち、上位から所定個（例えば、３個）の呼び名候補をユーザ２１の推定呼び名に決定する。
【０１３９】
［ステップＳ２５４］呼び名提示部１９０は、ステップＳ２５３で決定されたユーザ２１の推定呼び名をディスプレイ装置１０４に表示させる。
このようにして、複数の呼び名候補のうち、ユーザ２１の呼び名である可能性の高いものが所定個表示される。
【０１４０】
図１９は、推定呼び名提示の表示例を示す図である。呼び名提示部１９０は、以下のような表示画面をディスプレイ装置１０４に表示させる。
表示画面には、例えば「あなたの呼び名は？」などの、ユーザ２１に呼び名の選択を促す文言が含まれる。また表示画面には、ユーザ２１の呼び名として推定された３個の呼び名候補を示すボタンが含まれる。ユーザ２１は、呼び名候補を示すボタンのいずれかをタッチパネル１０５によって選択することができる。呼び名提示部１９０は、選択された呼び名をユーザ２１の顔画像の特徴量と対応付けて登録ユーザ情報１２３に登録する。このように、簡便な操作でユーザ２１の呼び名が対話ロボット１００に登録される。
【０１４１】
なお表示画面には、呼び名候補を示すボタン以外のボタンが含まれていてもよい。例えば、適切な呼び名候補が表示されていない場合に、他の呼び名を登録するための「その他」ボタンが表示画面に含まれていてもよい。ユーザ２１がタッチパネル１０５によって「その他」ボタンを選択すると、例えば対話ロボット１００は平均ランクの上位３個に含まれなかった他の呼び名候補を示すボタンを表示してもよい。また例えば、呼び名登録を中止するための「登録をやめる」ボタンが表示画面に含まれていてもよい。
【０１４２】
なお上記の例では、推定されたユーザ２１の呼び名として、所定個の呼び名候補が表示されていた。しかし、ある呼び名候補が推定されたユーザ２１の呼び名である可能性が高い場合、当該呼び名候補のみを表示してもよい。例えば、平均ランクの値が小さい順にソートされた複数の呼び名候補の、最上位の呼び名候補の平均ランクと２番目の呼び名候補の平均ランクとの差が閾値以上であれば、最上位の呼び名候補のみが表示されてもよい。
【０１４３】
ここで閾値は、例えばランキングデータ２１１に登録された名前それぞれの年ごとの発生度数を基に決定される。例えばランキングデータ２１１の生年ごとに、名前の発生度数がランク「１」の５％未満となる最上位のランクが選択され、選択されたランクの平均値が閾値に決定される。
【０１４４】
図２０は、推定呼び名提示の他の手順の一例を示すフローチャートである。
［ステップＳ２６１］呼び名提示部１９０は、平均ランクが算出された呼び名候補と、各呼び名候補の平均ランクとを取得する。
【０１４５】
［ステップＳ２６２］呼び名提示部１９０は、ステップＳ２６１で取得した呼び名候補のうち、平均ランクが「ＩＮＦ」以外の呼び名候補を平均ランクが小さい順にソートする。
【０１４６】
［ステップＳ２６３］呼び名提示部１９０は、ステップＳ２６２でソートされた呼び名候補のうち、最上位の呼び名候補の平均ランクと２番目の呼び名候補の平均ランクとの差を算出する。
【０１４７】
［ステップＳ２６４］呼び名提示部１９０は、ステップＳ２６３で算出された差が閾値より大きいか否かを判定する。呼び名提示部１９０は、ステップＳ２６３で算出された差が閾値より大きい場合、処理をステップＳ２６５に進める。また呼び名提示部１９０は、ステップＳ２６３で算出された差が閾値以下の場合、処理をステップＳ２６６に進める。
【０１４８】
［ステップＳ２６５］呼び名提示部１９０は、ステップＳ２６２でソートされた呼び名候補のうち、最上位の呼び名候補をユーザ２１の推定呼び名に決定する。そして呼び名提示部１９０は、処理をステップＳ２６７に進める。
【０１４９】
［ステップＳ２６６］呼び名提示部１９０は、ステップＳ２６２でソートされた呼び名候補のうち、上位から所定個（例えば、３個）の呼び名候補をユーザ２１の推定呼び名に決定する。
【０１５０】
［ステップＳ２６７］呼び名提示部１９０は、ステップＳ２５５またはステップＳ２６６で決定された呼び名候補をディスプレイ装置１０４に表示させる。
このようにして、最上位の呼び名候補の平均ランクと２番目の呼び名候補の平均ランクとの差が閾値以上の場合、複数の呼び名候補のうち、ユーザ２１の呼び名である可能性の高いものが１個表示される。
【０１５１】
図２１は、推定呼び名提示の他の表示例を示す図である。最上位の呼び名候補の平均ランクと２番目の呼び名候補の平均ランクとの差が閾値以上の場合、呼び名提示部１９０は、以下のような表示画面をディスプレイ装置１０４に表示させる。
【０１５２】
表示画面には、ユーザ２１の呼び名として推定された、平均ランクが最上位の呼び名候補が含まれる。例えば平均ランクが最上位の呼び名候補が「ゆうくん」であるとする。この場合、表示画面には「あなたの呼び名はゆうくんですか？」などの、平均ランクが最上位の呼び名候補がユーザ２１の呼び名であるかを確認する文言が含まれる。
【０１５３】
また表示画面には、平均ランクが最上位の呼び名候補がユーザ２１の呼び名であるか否かを確認するためのボタン（例えば「はい」ボタンおよび「いいえ」ボタン）が含まれる。ユーザ２１がタッチパネル１０５によって「はい」ボタンを選択すると、呼び名提示部１９０は、平均ランクが最上位の呼び名候補をユーザ２１の顔画像の特徴量と対応付けて登録ユーザ情報１２３に登録する。ユーザ２１がタッチパネル１０５によって「いいえ」ボタンを選択すると、例えば対話ロボット１００は、平均ランクの最上位の呼び名候補以外の他の呼び名候補を示すボタンを表示してもよい。このように、簡便な操作でユーザ２１の呼び名が対話ロボット１００に登録される。
【０１５４】
また上記の例では、対話ロボット１００は、ユーザ２１の名前が日本人名で、日本語の会話から呼び名を推定していた。しかし対話ロボット１００は、ユーザ２１の名前が日本人名以外でもよいし、日本語以外の言語での会話から呼び名を推定してもよい。
【０１５５】
図２２は、名前データの他の一例を示す図である。名前データ２１２ａは、名前の生年、性別ごとの米国人についてのランキングデータを基に生成された名前データである。
名前データ２１２ａには、名前データ２１２と同様の、生年、性別、名前、ランクおよび愛称Ｃの欄が設けられている。名前データ２１２ａは、名前データ２１２が有していた愛称Ａおよび愛称Ｂの欄を有しなくてもよい。これは、日本人の呼び名とは異なり、米国人の呼び名には接尾語が含まれることは少ないからである。
【０１５６】
英語の会話から米国人の呼び名を推定する処理も、米国人についての名前データ２１２ａを用いることで、日本人に対する呼び名推定と同様に実現される。
〔その他の実施の形態〕
第２の実施の形態では、家庭用ロボットである対話ロボット１００によって呼び名推定処理が行われていたが、家庭用ＰＣによって呼び名推定処理が行われてもよい。この場合、例えば図４に示したハードウェアに加え、カメラとマイクとスピーカとを備えた家庭用ＰＣが、プログラムを実行することによって第２の実施の形態と同様の呼び名推定処理を行う。
【０１５７】
また第２の実施の形態では、名前データ２１２がデータベースサーバ２００に記憶されていたが、対話ロボット１００の記憶部１２０に名前データ２１２が記憶されていてもよい。第２の実施の形態では、呼び名候補情報１２１、接尾語情報１２２、登録ユーザ情報１２３が、記憶部１２０に記憶されていたが、データベースサーバ２００に記憶されていてもよい。
【０１５８】
また第２の実施の形態では、名前の、生年、性別ごとの名付けられた頻度の順位であるランクが各名前の指標値として用いられ、平均ランクが各呼び名候補の評価値として用いられていたが、他の指標値や評価値が用いられてもよい。例えば各名前の指標値として名前の、生年、性別ごとの名付けられた頻度が用いられてもよい。この場合の各呼び名候補の評価値として、各呼び名候補に対して検索された名前に対応する頻度の合計値、平均値、中央値などが用いられてもよい。
【０１５９】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１６０】
１  マイク
２  音声データ
３  画像
４  名前データ
１０  情報処理装置
１１  記憶部
１１ａ  呼び名データ
１２  処理部
【要約】
【課題】簡便に呼び名を登録できるようにする。
【解決手段】情報処理装置１０は、対象人物の顔を写した画像３に基づいて、対象人物の生年を推定する。次に情報処理装置１０は、複数の人名それぞれについての、生年を含む所定期間内に生まれた人に名付けられた人名の頻度に応じた指標値を含む名前データ４を参照する。次に情報処理装置１０は、複数の人名のうち、マイク１で取得した音声データ２を解析して得られた複数の名詞が人物の呼び名の候補として記憶された複数の呼び名候補それぞれに対応する人名の指標値を参照する。そして情報処理装置１０は、指標値に基づいて、複数の呼び名候補の中から対象人物の呼び名を推定する。
【選択図】図１【図１】
0006829406.tif 000002
【図２】
0006829406.tif 000003
【図３】
0006829406.tif 000004
【図４】
0006829406.tif 000005
【図５】
0006829406.tif 000006
【図６】
0006829406.tif 000007
【図７】
0006829406.tif 000008
【図８】
0006829406.tif 000009
【図９】
0006829406.tif 000010
【図１０】
0006829406.tif 000011
【図１１】
0006829406.tif 000012
【図１２】
0006829406.tif 000013
【図１３】
0006829406.tif 000014
【図１４】
0006829406.tif 000015
【図１５】
0006829406.tif 000016
【図１６】
0006829406.tif 000017
【図１７】
0006829406.tif 000018
【図１８】
0006829406.tif 000019
【図１９】
0006829406.tif 000020
【図２０】
0006829406.tif 000021
【図２１】
0006829406.tif 000022
【図２２】
0006829406.tif 000023