〔実施形態1〕
以下、本発明の実施の形態について、図1〜図4に基づいて説明すれば、以下の通りである。図1は、本発明の実施形態1に係る命令実行システム1の構成を示すブロック図である。
(命令実行システム1の構成)
命令実行システム1は、図1に示すように、ロボット10(外部機器)及びサーバ20を備えている。ロボット10は、命令実行装置100、音声入力部110、発話部135、通信部145、及び顔画像撮像部150を備えている。命令実行装置100は、音声取得部115、音声分離部120、命令優先度付与部125、発話制御部130、及び命令実行部140を備えている。
命令実行装置100は、話者による命令を実行することができる。命令実行装置100は、話者からの発話音声の特徴点である発話音声特徴点、及び話者からの命令の内容の特徴点である命令内容特徴点の少なくとも1つのレベルに応じた得点を各命令に付与する。発話音声特徴点とは、後述する話者の音声の音量の差分、話者の音声による音の高さの差分、及び話者の音声の抑揚の少なくとも1つである。また、命令内容特徴点とは、後述する特定のキーワード及び同じ意味の命令の数の少なくとも1つである。
ロボット10は、会話をすることができるロボットである。また、ロボット10は、家電機器等の電子機器を遠隔操作するロボットであり、複数の話者から音声命令を受け取ったとき、どの命令を実行するかを判定し、その結果を話者に提示する。
音声入力部110には、複数の話者それぞれが発話した命令の発話音声が入力される。音声入力部110は、発話音声の音声データを音声取得部115に供給する。音声入力部110は、例えば、複数の話者が発話した音声を入力するための、少なくとも2つ以上のマイクから構成されるマイクアレイである。マイクは、全方位からの音声を入力することができるように、ロボット10の頭部に複数設けられている。例えば、マイクは、ロボット10の頭部の全周囲に設けられていてもよい。
音声取得部115は、音声入力部110から供給された発話音声の音声データを取得する。音声取得部115は、取得したアナログの発話音声をデジタルの音声データに変換し、この音声データを音声分離部120に供給する。
音声分離部120は、音声取得部115から供給された発話音声の音声データを、話者ごとの発話音声の音声データに分離する。具体的には、音声分離部120は、音声取得部115から供給された音声データの音声の指向性を検出し、方向が異なる音声を異なる話者の発話音声として分離する。音声データを分離する方法は、前述した特許文献1にも記載されている。
命令優先度付与部125は、音量差分算出部125a、高低差分算出部125b、抑揚算出部125c、命令認識部125d、キーワードカウント部125e、命令カウント部125f、記憶部125g、得点付与部125h、及び優先度付与部125iを備えている。
音量差分算出部125a、高低差分算出部125b、及び抑揚算出部125cは、音声分離部120により分離された音声データと、サーバ20のデータベース部220に格納されている平常時の話者の音声データとを参照する。平常時の話者の音声データとは、データベース部220に予め記録されている、声の大きさ及び声の高さの情報(複数人数分の情報)である。ロボット10を使用する話者は、使用開始時の初期設定を行うために、予め平常時の音声(特定の語句を含む定型文など)をロボット10に発話する。ロボット10は初期設定として、入力された音声から、声の大きさ及び声の高さの情報(複数人数分の情報)を認識し、それらの情報をサーバ20のデータベース部220に記憶する。
音量差分算出部125aは、話者ごとに、音声分離部120により分離された音声データの音量の大きさと、平常時の話者の音声データの音量の大きさとの差分を算出する。音量の大きさとは、音声データの開始から終了までの間の音量の大きさの平均値である。
高低差分算出部125bは、話者ごとに、音声分離部120により分離された音声データの音の高さと、平常時の話者の音声データの音の高さとの差分を算出する。音の高さとは、音声データの開始から終了までの間の音の高さの平均値である。
抑揚算出部125cは、話者ごとに、音声分離部120により分離された音声データの抑揚を算出する。具体的には、抑揚算出部125cは、音声分離部120により分離された音声データにおいて、下記の(1)〜(5)の処理を行う。
(1)抑揚算出部125cは、1つの音声データの開始から終了までの間を、所定の時間閾値ごとに複数の区間に分割する。(2)抑揚算出部125cは、区間ごとに、声の音量の最大値と最小値との差分を算出し、その差分が所定の音量差分閾値より大きい区間の数をカウントする。(3)抑揚算出部125cは、区間ごとに、声の高さの最大値と最小値との差分を算出し、その差分が所定の高低差分閾値より大きい区間の数をカウントする。(4)抑揚算出部125cは、区間ごとに、単語数をカウントし、隣接する区間の単語数の差分が速度差分閾値より大きいか否かを判定する。抑揚算出部125cは、単語数の差分が速度差分閾値より大きい、隣接する区間の境界の数をカウントする。(5)抑揚算出部125cは、音声分離部120により分離された音声データ、及び平常時の話者の音声データにおいて、上記の(2)〜(4)の処理にてカウントされた数を合計する。
このように、抑揚算出部125cは、話者ごとに、声の抑揚をカウントされた各種の値によって数値化する。声の抑揚とは、声の大小、声の高低、及び発話のスピードの変化の大きさである。
命令認識部125dは、音声分離部120により分離された音声データから、話者ごとの命令の内容を認識する。
キーワードカウント部125eは、命令認識部125dが認識した命令の内容に、特定のキーワードが含まれているか否かを判定する。命令の内容に特定のキーワードが含まれている場合、キーワードカウント部125eは、特定のキーワードの数をカウントする。特定のキーワードには、例えば、「お願い」、「やって」、「してよ」、「ロボットの愛称」、及び「他者の命令を否定する言葉」などが挙げられる。
命令カウント部125fは、所定時間内において、命令認識部125dが認識した命令の内容に含まれている同じ意味の命令の数(同じ命令の繰り返しの回数)をカウントする。
記憶部125gは、複数の話者S1〜Snが発話したそれぞれの命令COM1〜命令COMnについての発話音声特徴点及び命令内容特徴点を、話者S1〜話者Sn即ち命令COM1〜命令COMnごとに管理する。例えば、話者が3人である場合、記憶部125gは、3人の話者の発話音声特徴点及び命令内容特徴点を話者S1〜話者S3ごとに管理する。記憶部125gは、命令COM1〜命令COMnの発話音声特徴点(音量差分、高低差分、及び抑揚)及び命令内容特徴点(キーワードカウント及び命令カウント)の情報を格納している。音量差分の情報は、音量差分算出部125aが算出した音量の差分の算出結果である。高低差分の情報は、高低差分算出部125bが算出した音の高さの差分の算出結果である。抑揚の情報は、抑揚算出部125cにより、前述した(1)〜(5)の処理にて算出されたカウント数の情報である。キーワードカウントの情報は、キーワードカウント部125eがカウントした特定のキーワードの数の情報である。命令カウントの情報は、命令カウント部125fがカウントした同じ意味の命令の数の情報である。
記憶部125gは、優先度記憶部126を備えている。優先度記憶部126は、優先度付与部125iが付与した、命令COM1〜命令COMnの優先度の情報を、命令認識部125dによって認識された、命令COM1〜命令COMnのデータと対応付けて格納している。
得点付与部125hは、記憶部125gに格納されている、命令COM1〜命令COMnの音量差分、高低差分、抑揚、キーワードカウント、及び命令カウントの情報により、命令COM1〜命令COMnに得点を付与する。
優先度付与部125iは、得点付与部125hにより付与された得点を、命令COM1〜命令COMnごとに合計する。優先度付与部125iは、得点の合計に基づいて、命令COM1〜命令COMnごとに優先度を付与する。この優先度は、話者がどれくらい困っているか、話者がどれくらい逼迫しているかを示すものである。優先度付与部125iは、得点の合計が多いほど高い優先度を付与する。
発話制御部130は発話部135を制御して、発話部135に音声を出力させる。また、発話制御部130は、優先度記憶部126を参照して、最も高い優先度が付与された命令の内容を、発話部135に発話させる。発話部135は、発話制御部130により制御されることで、ロボット10の外部に音声を出力する。
命令実行部140は、発話制御部130から命令実行コマンドを受け取ると、通信部145を介して、操作対象機器30に命令実行コマンドを供給する。
通信部145は、ロボット10がサーバ20及び操作対象機器30と通信するためのものであり、サーバ20のサーバ通信部210(受信部、送信部)及び操作対象機器30と通信を行う。
顔画像撮像部150は、話者の撮影を行うカメラである。顔画像認識部155は、顔画像撮像部150が撮影した画像により、話者の顔画像を認識する。判定部160は、顔画像認識部155が認識した、話者の顔画像の解析を行うことで、話者の推定年齢及び性別を判定する。
サーバ20は、サーバ通信部210及びデータベース部220を備えている。サーバ20は、ロボット10から受信した、複数の話者情報を格納する。
サーバ通信部210は、サーバ20がロボット10と通信を行うためのものであり、ロボット10の通信部145と通信を行う。
データベース部220は、ロボット10が認識した話者情報を格納している。話者情報とは、例えば、声の大きさ、声の高さ、推定年齢、及び性別などである。データベース部220には、複数の話者において、これらの情報が格納されている。
操作対象機器30は、家電機器等の電子機器であり、例えば、エアコンなどが挙げられる。
(命令実行システム1による処理の手順)
次に、命令実行システム1による処理の手順(命令実行方法)を図2〜図4に基づいて説明する。図2は、命令実行システム1による処理の手順を示すフローチャートである。図3は、命令実行システム1による命令の優先度を付与する処理の手順を示すフローチャートである。図4は、命令実行システム1による処理の具体例の概要を示す図である。図4の(a)は、複数の話者がロボット10に対して発話する様子を示した図であり、図4の(b)は、ロボット10が実行の内容を発話する様子を示した図である。
まず、複数の話者がロボット10に対して同時に音声命令を出すと、音声取得部115は、音声入力部110から供給された発話音声を取得する(S110:音声取得工程)。音声取得部115は、取得した発話音声を音声データに変換し、その音声データを音声分離部120に供給する。
音声分離部120は、音声取得部115から供給された音声データに基づいて、話者ごとの音声になるように、音声を分離する(S115)。例えば、図4の(a)に示すような具体例を考える。図4では、操作対象機器30がエアコンである場合を示している。話者S1〜話者S3は、ロボット10に対して同時に音声命令(それぞれ内容は異なる)を出す。話者S1は「26度の冷房がいいかなあ。」と発話し、話者S2は「除湿にして。湿度は50%で。」と発話し、話者S3は「お願い!絶対冷房にして!24度!お願い!絶対冷房にして!24度!」と発話する。音声分離部120には、話者S1〜話者S3の音声が混ざった状態で、音声データが供給される。音声分離部120は、話者S1〜S3の混ざった状態の音声を、話者S1の音声、話者S2の音声、及び話者S3の音声に分離する。音声分離部120は、分離した音声を、音量差分算出部125a、高低差分算出部125b、及び抑揚算出部125cに供給する。
音量差分算出部125aは、音声分離部120から供給された音声と、データベース部220から平常時の話者の音声の音量を参照して、音声の音量の差分を算出する(S120)。具体的には、音量差分算出部125aは、通信部145及びサーバ通信部210を介して、データベース部220に格納されている、平常時の話者の音声の音量を参照する。音量差分算出部125aは、音声分離部120から供給された音声の音量と、データベース部220から参照した平常時の話者の音声の音量(標準値)との差分(第1差分)を算出する。
また、発話した話者が、データベース部220に記録されていない話者である場合を考える。この場合、音量差分算出部125aは、データベース部220に記録されている、複数の話者による音声の音量を参照し、その音量の平均を算出する。その後、音量差分算出部125aは、音声分離部120から供給された音声の音量と、その平均との差分を算出する。
音量差分算出部125aは、ロボット10に発話した複数の話者による音声に対して差分の算出を行う。音量差分算出部125aは、算出した音量の差分のデータを記憶部125gに書き込む。記憶部125gは、音量差分算出部125aが算出した音量の差分のデータを、命令COM1〜命令COMnの音量差分として格納する。
また、高低差分算出部125bは、音声分離部120から供給された音声と、データベース部220から平常時の話者の音声の音の高さを参照して、音声の高低の差分を算出する(S125)。具体的には、高低差分算出部125bは、通信部145及びサーバ通信部210を介して、データベース部220に格納されている、平常時の話者の音声の音の高さを参照する。高低差分算出部125bは、音声分離部120から供給された音声の音の高さと、データベース部220から参照した平常時の話者の音声の音の高さ(標準値)との差分(第2差分)を算出する。
また、発話した話者が、データベース部220に記録されていない話者である場合を考える。この場合、高低差分算出部125bは、データベース部220に記録されている、複数の話者による音声の音の高さを参照し、その高さの平均を算出する。その後、高低差分算出部125bは、音声分離部120から供給された音声の音量と、その平均との差分を算出する。
高低差分算出部125bは、ロボット10に発話した複数の話者による音声に対して差分の算出を行う。高低差分算出部125bは、算出した音の高さの差分のデータを記憶部125gに書き込む。記憶部125gは、高低差分算出部125bが算出した声の高さの差分のデータを、命令COM1〜命令COMnの高低差分として格納する。
さらに、抑揚算出部125cは、音声分離部120から供給された音声から、音声の抑揚を算出する(S130)。具体的に以下に説明する。抑揚算出部125cは、前述した(1)〜(5)の処理にて算出したカウント数を記憶部125gに書き込む。抑揚算出部125cは、複数の話者による音声に対して音声の抑揚の算出を行う。記憶部125gは、抑揚算出部125cが算出した音声の抑揚のデータを、命令COM1〜命令COMnの抑揚として格納する。
一方、命令認識部125dは、音声分離部120から供給された音声に基づいて、話者の命令内容を認識する(S135)。命令認識部125dは、認識した、話者の命令内容の情報を、キーワードカウント部125e及び命令カウント部125fに供給する。
また、キーワードカウント部125eは、特定のキーワードの数をカウントする(S140)。具体的には、キーワードカウント部125eは、命令認識部125dが認識した命令の内容に、特定のキーワードが含まれているか否かを判定する。命令の内容に特定のキーワードが含まれている場合、キーワードカウント部125eは、複数の話者による音声に対して特定のキーワードの数のカウントを行う。キーワードカウント部125eは、カウントしたカウント数のデータを記憶部125gに書き込む。記憶部125gは、キーワードカウント部125eがカウントしたカウント数のデータを、命令COM1〜命令COMnのキーワードカウントとして格納する。
さらに、命令カウント部125fは、同じ意味の命令の数をカウントする(S145)。具体的には、命令カウント部125fは、所定時間内において、命令認識部125dが認識した命令の内容に含まれている同じ意味の命令の数(同じ命令の繰り返しの回数)をカウントする。命令カウント部125fは、複数の話者による音声に対して同じ意味の命令の数のカウントを行う。命令カウント部125fは、カウントした同じ意味の命令の数のデータを記憶部125gに書き込む。記憶部125gは、命令カウント部125fがカウントした同じ意味の命令の数のデータを、命令COM1〜命令COMnの命令カウントとして格納する。
次に、命令優先度付与部125は、命令の優先度を付与する(S150)。命令優先度付与部125は、音声の音量の差分、音声の高低の差分、音声の抑揚、特定のキーワードの数、及び同じ意味の命令の数に基づいて、各命令に優先度を付与する。命令優先度付与処理の詳細については後述する。命令優先度付与処理の最後では、優先度付与部125iは、命令COM1〜命令COMnの優先度の情報を優先度記憶部126に格納する。
各命令の優先度の情報が優先度記憶部126に格納されると、発話部135は、最も優先度が高い命令を発話する(S155)。具体的には、各命令の優先度の情報が優先度記憶部126に格納されると、発話制御部130は、優先度記憶部126に格納されている、各命令の優先度の情報を参照する。発話制御部130は、その優先度の情報から最も優先度が高い命令を判断し、発話部135に最も優先度が高い命令を発話させる。例えば、図4の(b)に示すように、話者S3の命令の優先度は最も高いため、ロボット10が音声命令をそのまま発話する場合、ロボット10は「『お願い!絶対冷房にして!24度!』を実行するよ。」と発話する。ロボット10がリモコン操作に関する言葉のみを発話する場合、「エアコンの温度を24度にするよ。」と発話する。
発話部135が、最も優先度が高い命令を発話した後、発話制御部130は、発話した命令に対して了承するか否かの返答を話者に求める(S160)。具体的には、発話制御部130は、発話部135に最も優先度が高い命令を発話させた後、発話させた命令に対して了承するか否かの返答を求める内容を、発話部135に発話させる。このとき、ロボット10の周囲にいる話者は、音声命令の了承、音声命令のキャンセル、及び次点の音声命令の読み上げのいずれかを回答する。ロボット10は、話者からの返答内容を判定する。
話者が、ロボット10が発話した命令に対して回答を行ったとき、命令認識部125dは、話者から命令が了承されたか否かを判定する(S165)。具体的には、話者からの発話内容が音声入力部110、音声取得部115、及び音声分離部120を介して、命令認識部125dに供給される。話者からの発話内容が命令の了承であれば、命令認識部125dは、発話制御部130に、命令実行部140に命令実行コマンドを供給するように指示する。発話制御部130は、命令認識部125dからその指示を受けると、命令実行部140に命令実行コマンドを供給する。
話者からの発話内容が命令の了承でなければ、命令認識部125dは、次点の命令の読み上げを指示されたか否かを判定する(S170)。具体的には、話者からの発話内容が、次点の命令の読み上げであれば、命令認識部125dは、発話制御部130に、次点の優先度の命令を発話するように指示する。発話制御部130は、命令認識部125dからその指示を受けると、優先度記憶部126から次点の優先度の情報を参照し、次点の優先度の命令を発話するように発話部135に指示する。話者からの発話内容が、命令のキャンセルであれば、ロボット10は処理を中止する。
発話部135は、発話制御部130から次点の優先度の命令を発話するように指示を受けると、次点の優先度の命令を発話する(S175)。発話部135が次点の優先度の命令を発話した後、S160の処理に移る。
S165の処理の後、命令実行部140は、命令認識部125dから命令実行コマンドを受け取り、通信部145を介して操作対象機器30に命令実行コマンドを送信する(S180:命令実行工程)。通信部145は、操作対象機器30に対してIR(IR:Infrared Ray)信号を送信する。
(命令優先度付与処理の手順)
S150の命令優先度付与処理について、図3に基づいて以下に詳細に説明する。S150の処理は、詳細には、図3に示すS150a〜S150gの処理である。
得点付与部125hは、音声の音量の差分を参照して得点を付与する(S150a)。具体的には、得点付与部125hは、記憶部125gに格納されている、命令COM1〜命令COMnの音量差分を参照して、命令COM1〜命令COMnに得点を付与する。得点付与部125hは、その差分が大きいほど多くの得点を付与する。つまり、得点付与部125hは、その差分のレベルに応じた得点を付与する。得点付与部125hは、記憶部125gから、音量差分算出部125aが算出した音量差分の算出結果を参照する。得点付与部125hは、命令COM1〜命令COMnの得点の情報を、優先度付与部125iに供給する。
得点付与部125hは、音声の高低の差分を参照して得点を付与する(S150b)。具体的には、得点付与部125hは、記憶部125gに格納されている、命令COM1〜命令COMnの高低差分を参照して、命令COM1〜命令COMnに得点を付与する。得点付与部125hは、その差分が大きいほど多くの得点を付与する。つまり、得点付与部125hは、その差分のレベルに応じた得点を付与する。得点付与部125hは、記憶部125gから、高低差分算出部125bが算出した音量差分の算出結果を参照する。得点付与部125hは、命令COM1〜命令COMnの得点の情報を、優先度付与部125iに供給する。
得点付与部125hは、音声の抑揚を参照して得点を付与する(S150c)。具体的には、得点付与部125hは、記憶部125gに格納されている、命令COM1〜命令COMnの抑揚を参照して、命令COM1〜命令COMnに得点を付与する。得点付与部125hは、その抑揚が大きいほど多くの得点を付与する。つまり、得点付与部125hは、その抑揚のレベルに応じた得点を付与する。得点付与部125hは、記憶部125gから、抑揚算出部125cが算出した抑揚の算出結果を参照する。得点付与部125hは、命令COM1〜命令COMnの得点の情報を、優先度付与部125iに供給する。
得点付与部125hは、命令に含まれている特定のキーワードの数を参照して得点を付与する(S150d)。具体的には、得点付与部125hは、記憶部125gに格納されている、命令COM1〜命令COMnのキーワードカウントを参照して、命令COM1〜命令COMnの命令に得点を付与する。得点付与部125hは、そのカウント数が多いほど多くの得点を付与する。つまり、得点付与部125hは、そのカウント数のレベルに応じた得点を付与する。例えば、図4の(a)に示すように、話者S3の発話内容には、前述した特定のキーワード「お願い」が含まれているため、話者S3の命令には、加点される。話者S1及び話者S2の発話内容には、前述した特定のキーワードが含まれていないため、話者S1及び話者S2の命令には加点されない。得点付与部125hは、記憶部125gから、キーワードカウント部125eがカウントしたキーワードカウントのカウント結果を参照する。得点付与部125hは、命令COM1〜命令COMnの得点の情報を、優先度付与部125iに供給する。
得点付与部125hは、命令に含まれている同じ意味の命令の数を参照して得点を付与する(S150e)。具体的には、得点付与部125hは、記憶部125gに格納されている、命令COM1〜命令COMnの命令カウントを参照して、命令COM1〜命令COMnの命令に得点を付与する。得点付与部125hは、そのカウント数が多いほど多くの得点を付与する。つまり、得点付与部125hは、そのカウント数のレベルに応じた得点を付与する。例えば、図4の(a)に示すように、話者S3の発話内容には、同じ意味の命令「お願い」、「絶対冷房にして」、及び「24度」が含まれているため、話者S3の命令には、加点される。話者S1及び話者S2の発話内容には、同じ意味の命令が含まれていないため、話者S1及び話者S2の命令には加点されない。得点付与部125hは、記憶部125gから、命令カウント部125fがカウントした命令カウントのカウント結果を参照する。得点付与部125hは、命令COM1〜命令COMnの得点の情報を、優先度付与部125iに供給する。
優先度付与部125iは、得点付与部125hから供給された、音量差分、高低差分、抑揚、キーワードカウント、及び命令カウントに応じた得点の合計値を算出し、各命令に合計得点を付与する(S150f:得点付与工程)。つまり、優先度付与部125iは、命令COM1〜命令COMnごとに得点を合計し、命令COM1〜命令COMnそれぞれに合計得点を付与する。
優先度付与部125iは、各命令の合計得点の情報に基づいて、話者の命令ごとに優先度を付与する(S150g:優先度付与工程)。優先度付与部125iは、合計得点の高い順に定めた優先度を付与する。ここで、図4に示すように、話者S3の命令は、話者S1及び話者S2の命令と比べて、得点の合計が多いとする。優先度付与部125iは、最も得点の合計が多い話者S3の命令の優先度を最も高くする。優先度付与部125iは、命令COM1〜命令COMnの優先度の情報を優先度記憶部126に格納する。
以上により、命令実行装置100は、複数の話者が発話した命令の発話音声を取得し、命令ごとに得点の合計値を算出して優先度を付与し、最も高い優先度が付与された命令を実行する。これにより、命令実行装置100は、複数の話者が発話した命令を認識し、複数の話者それぞれからの命令の優先度を判定することにより、最も優先度の高い命令を実行することができる。
また、命令実行装置100は、声の大きさの標準値に対する第1差分、声の高さの標準値に対する第2差分、及び声の抑揚の少なくとも1つのレベルに応じた得点を各命令に付与する。また、命令実行装置100は、特定のキーワード及び同じ意味の命令の数の少なくとも1つのレベルに応じた得点を各命令に付与する。これにより、命令実行装置100は、複数の話者からの命令の優先度を詳細に判定することができる。
〔実施形態2〕
本発明の他の実施形態について、図2に基づいて説明すれば、以下の通りである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
前述した、S120の処理において、音量差分算出部125aが音量の平均を算出する前に、顔画像撮像部150は、話者を撮影する。顔画像撮像部150は、撮影した話者の画像を、顔画像認識部155に供給する。顔画像認識部155は、顔画像撮像部150から供給された話者の画像に基づいて話者の顔画像を認識する。顔画像認識部155は、認識した話者の顔画像を判定部160に供給する。
判定部160は、顔画像認識部155から供給された話者の顔画像に基づいて、話者の推定年齢及び性別を判定する。判定部160は、判定した話者の推定年齢及び性別の情報を、通信部145及びサーバ通信部210を介して、データベース部220に格納する。
前述したように、音量差分算出部125aは、データベース部220に記録されている、複数の話者の音声の音量を参照し、その音量の平均を算出する。このとき、音量差分算出部125aは、通信部145及びサーバ通信部210を介してデータベース部220を参照することで、判定部160によりデータベース部220に格納された、話者の推定年齢及び性別の情報を認識する。音量差分算出部125aは、データベース部220に格納されている複数の話者情報の中から、判定部160により判定された話者の推定年齢及び性別に限定して、話者の音声の音量の平均を算出する。つまり、音量差分算出部125aは、複数の話者情報の中から、ロボット10に発話した話者の推定年齢及び性別と同一である話者の音声の音量の平均を算出する。
また、前述したように、高低差分算出部125bは、複数の話者の音声の音の高さを参照し、その高さの平均を算出する。このとき、高低差分算出部125bは、通信部145及びサーバ通信部210を介してデータベース部220を参照することで、判定部160によりデータベース部220に格納された、話者の推定年齢及び性別の情報を認識する。高低差分算出部125bは、データベース部220に格納されている複数の話者情報の中から、判定部160により判定された話者の推定年齢及び性別に限定して、話者による音声の音の高さの平均を算出する。つまり、高低差分算出部125bは、複数の話者情報の中から、ロボット10に発話した話者の推定年齢及び性別と同一である話者による音声の音の高さの平均を算出する。
以上により、命令実行装置100は、複数の話者それぞれの性別及び年齢を判定し、判定した性別及び年齢に限定して、予め記録された複数の話者情報から声の大きさ及び声の高さの少なくとも1つの平均を算出する。そして、命令実行装置100はこれらの平均を、声の大きさの標準値及び声の高さの標準値とする。これにより、声の大きさの標準値及び声の高さの標準値が、判定部によって判定された複数の話者それぞれの性別及び年齢に限定して算出されるため、より詳細に算出されたものになる。
〔実施形態3〕
本発明の他の実施形態について、図5に基づいて説明すれば、以下の通りである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。図5は、本発明の実施形態2に係る命令実行システム2の構成を示すブロック図である。
(命令実行システム2の構成)
命令実行システム2は、図5に示すように、ロボット11及びサーバ21を備えている。
ロボット11は、ロボット10と比べて、命令優先度付与部125を備えていない点が異なる。また、サーバ21は、サーバ20と比べて、命令優先度付与部230を備えている点が異なる。つまり、命令実行システム1では、ロボット10が命令優先度付与部125を備えているのに対し、命令実行システム2では、サーバ21が命令優先度付与部230を備えている。
命令優先度付与部230は、音量差分算出部230a、高低差分算出部230b、抑揚算出部230c、命令認識部230d、キーワードカウント部230e、命令カウント部230f、記憶部230g、得点付与部230h(サーバ得点付与部)、及び優先度付与部230i(サーバ優先度付与部)を備えている。
音量差分算出部230a、高低差分算出部230b、抑揚算出部230c、命令認識部230d、キーワードカウント部230e、命令カウント部230f、記憶部230g、得点付与部230h、及び優先度付与部230iはそれぞれ、音量差分算出部125a、高低差分算出部125b、抑揚算出部125c、命令認識部125d、キーワードカウント部125e、命令カウント部125f、記憶部125g、得点付与部125h、及び優先度付与部125iと同一である。
(命令実行システム2による処理の手順)
命令実行システム2は、命令実行システム1と比べて、S110及びS115の処理は同一である。また、S120〜S180の処理について、命令実行システム2による処理の手順は、図2及び図3のフローチャート図で示されている手順と同様であるが、データのやり取りにおいて一部が異なっている。よって、ここでは、命令実行システム2による処理の手順について、図2及び図3に基づいて、S120以降の処理を説明する。
S115の処理の後、音声分離部120は分離した音声を、通信部145及びサーバ通信部210を介して、音量差分算出部230a、高低差分算出部230b、及び抑揚算出部230cに供給する。
音量差分算出部230aは、音声分離部120から供給された音声と、データベース部220から平常時の話者の音声の音量を参照して、音声の音量の差分を算出する(S120)。具体的には、音量差分算出部230aは、データベース部220から平常時の話者の音声の音量を参照する。音量差分算出部230aが音量の差分を算出する処理は、音量差分算出部125aが行う処理と同様である。音量差分算出部230aは、算出した音量の差分のデータを記憶部230gに格納する。記憶部230gは、音量差分算出部230aが算出した音量の差分のデータを、命令COM1〜命令COMnの音量差分として格納する。
また、高低差分算出部230bは、音声分離部120から供給された音声と、データベース部220から平常時の話者の音声の高さを参照して、音声の高低の差分を算出する(S125)。具体的には、高低差分算出部230bは、データベース部220から平常時の話者の音声の高さを参照する。高低差分算出部230bが音声の高低の差分を算出する処理は、高低差分算出部125bが行う処理と同様である。高低差分算出部230bは、算出した音の高さの差分のデータを記憶部230gに格納する。記憶部230gは、高低差分算出部230bが算出した音の高さの差分のデータを、命令COM1〜命令COMnの高低差分として格納する。
さらに、抑揚算出部230cは、音声分離部120から供給された音声から、音声の抑揚を算出する(S130)。抑揚算出部230cが音声の抑揚を算出する処理は、抑揚算出部125cが行う処理と同様である。抑揚算出部230cは、算出した音声の抑揚のデータを記憶部230gに格納する。記憶部230gは、抑揚算出部230cが算出した音声の抑揚のデータを、命令COM1〜命令COMnの抑揚として格納する。
一方、命令認識部230dは、音声分離部120から供給された音声に基づいて、話者の命令内容を認識する(S135)。命令認識部230dは、認識した、話者の命令内容の情報を、キーワードカウント部230e、命令カウント部230fに供給する。
また、キーワードカウント部230eは、特定のキーワードの数をカウントする(S140)。キーワードカウント部230eがカウントを行う処理は、キーワードカウント部125eが行う処理と同様である。キーワードカウント部230eは、カウントしたカウント数のデータを記憶部230gに格納する。記憶部230gは、キーワードカウント部230eがカウントしたカウント数のデータを、命令COM1〜命令COMnのキーワードカウントとして格納する。
さらに、命令カウント部230fは、同じ意味の命令の数をカウントする(S145)。命令カウント部230fがカウントを行う処理は、命令カウント部125fが行う処理と同様である。命令カウント部230fは、カウントした同じ意味の命令の数のデータを記憶部230gに格納する。記憶部230gは、命令カウント部230fがカウントした同じ意味の命令の数のデータを、命令COM1〜命令COMnの命令カウントとして格納する。
次に、命令優先度付与部230は、命令の優先度を付与する(S150)。命令優先度付与部230が命令の優先度を付与する処理は、命令優先度付与部125が行う処理と同様である。このため、命令優先度付与部230が行うS150a〜S150gの処理は、命令優先度付与部125が行う処理と同様である。
S150gの処理の後、各命令の優先度の情報が優先度記憶部231に格納されると、発話部135は、最も優先度が高い命令を発話する(S155)。具体的には、各命令の優先度の情報が優先度記憶部231に格納されると、発話制御部130は、通信部145及びサーバ通信部210を介して優先度記憶部231に格納されている、各命令の優先度の情報を参照する。発話制御部130は、その優先度の情報から最も優先度が高い命令を判断し、発話部135に最も優先度が高い命令を発話させる。
発話部135が、最も優先度が高い命令を発話した後、発話制御部130は、発話した命令に対して了承するか否かの返答を話者に求める(S160)。このとき、発話制御部130が行う処理は、命令実行システム1が行う処理と同様である。この処理が行われた後、ロボット11の周囲にいる話者は、音声命令の了承、音声命令のキャンセル、及び次点の音声命令の読み上げのいずれかを回答する。ロボット11は、話者からの返答内容を判定する。
話者が、ロボット11が発話した命令に対して回答を行ったとき、命令認識部230dは、話者から命令が了承されたか否かを判定する(S165)。具体的には、話者からの発話内容が音声入力部110、音声取得部115、音声分離部120、通信部145、及びサーバ通信部210を介して、命令認識部230dに供給される。話者からの発話内容が命令の了承であれば、命令認識部230dは、通信部145及びサーバ通信部210を介して、発話制御部130に、命令実行部140に命令実行コマンドを供給するように指示する。発話制御部130は、命令認識部230dからその指示を受けると、命令実行部140に命令実行コマンドを供給する。
話者からの発話内容が命令の了承でなければ、命令認識部230dは、次点の命令の読み上げを指示されたか否かを判定する(S170)。具体的には、話者からの発話内容が、次点の命令の読み上げであれば、命令認識部230dは、通信部145及びサーバ通信部210を介して、発話制御部130に、次点の優先度の命令を発話するように指示する。発話制御部130は、命令認識部230dからその指示を受けると、通信部145及びサーバ通信部210を介して、優先度記憶部231から次点の優先度の情報を参照する。その後、発話制御部130は、次点の優先度の命令を発話するように発話部135に指示する。話者からの発話内容が、命令のキャンセルであれば、ロボット11は処理を中止する。
発話部135は、発話制御部130から次点の優先度の命令を発話するように指示を受けると、次点の優先度の命令を発話する(S175)。発話部135が次点の優先度の命令を発話した後、S160の処理に移る。
S165の処理の後、命令実行部140は、命令認識部230dから命令実行コマンドを受け取り、通信部145を介して操作対象機器30に命令実行コマンドを送信する(S180)。通信部145は、操作対象機器30に対してIR信号を送信する。
以上により、サーバ21が、ロボット11から取得した、発話音声の音声データを受信し、受信した音声データに対して命令の優先度を付与し、優先度の情報をロボット11に送信する。これにより、ロボット11に優先度を付与する構成を設けなくてもよいため、ロボット11の処理負担を軽減することができる。
〔ソフトウェアによる実現例〕
命令実行装置100の制御ブロック(特に音声取得部115、命令優先度付与部125、命令実行部140、顔画像認識部155、及び判定部160)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよく、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、命令実行装置100は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
また、命令実行装置100がソフトウェアによって実現される場合、図6に示すように、ロボット10は、ハードウェア要素として、音声入力部110、発話部135、通信部145、顔画像撮像部150、及び制御部100aを備える。そして、命令実行装置100のソフトウェア要素は、CPU等である制御部100aにおいてプログラムが実行されることにより実現される。すなわち、図6の制御部100aに含まれる音声取得部115等の機能ブロックはソフトウェア要素として実現される。
〔まとめ〕
本発明の態様1に係る命令実行装置(100)は、複数の話者それぞれが発話した命令の発話音声を取得する音声取得部(115)と、前記音声取得部によって取得された前記発話音声の音声データから、前記発話音声の特徴点である発話音声特徴点、及び前記命令の内容の特徴点である命令内容特徴点の少なくとも1つのレベルに応じた得点を各命令に付与する得点付与部(125h)と、前記得点の合計値を前記命令ごとに算出し、前記合計値の高い順に定めた優先度を各命令に付与する優先度付与部(125i)と、最も高い前記優先度が付与された命令を実行する命令実行部(140)と、を備える。
上記の構成によれば、命令実行装置は、複数の話者が発話した命令の発話音声を取得し、命令ごとに得点の合計値を算出して優先度を付与し、最も高い優先度が付与された命令を実行する。これにより、命令実行装置は、複数の話者が発話した命令を認識し、複数の話者それぞれからの命令の優先度を判定することにより、最も優先度の高い命令を実行することができる。例えば、命令実行装置は、複数の話者それぞれからの命令の優先度を判定することにより、最も逼迫の度合いの高い命令を実行することができる。
本発明の態様2に係る命令実行装置(100)は、上記態様1において、前記発話音声特徴点及び前記命令内容特徴点から、最も高い前記優先度が付与された命令を実行する。前記発話音声特徴点は、声の大きさの標準値に対する第1差分、声の高さの標準値に対する第2差分、及び声の抑揚の少なくとも1つであり、複数の前記命令内容特徴点は、特定のキーワード、及び同じ意味の命令の数の少なくとも1つであってもよい。
上記の構成によれば、命令実行装置は、声の大きさの標準値に対する第1差分、声の高さの標準値に対する第2差分、及び声の抑揚の少なくとも1つのレベルに応じた得点を各命令に付与する。また、命令実行装置は、特定のキーワード及び同じ意味の命令の数の少なくとも1つのレベルに応じた得点を各命令に付与する。これにより、命令実行装置は、複数の話者からの命令の優先度を詳細に判定することができる。
本発明の態様3に係る命令実行装置(100)は、上記態様2において、複数の前記話者の顔画像を認識する顔画像認識部(155)と、前記顔画像認識部によって認識された複数の前記話者の顔画像により複数の前記話者それぞれの年齢及び性別を判定する判定部(160)と、をさらに備え、前記得点付与部(125h)は、前記判定部によって判定された複数の前記話者それぞれの性別及び年齢に限定して、予め記録された複数の話者情報から声の大きさ及び声の高さの少なくとも1つの平均を算出し、前記平均を前記標準値としてもよい。
上記の構成によれば、命令実行装置は、複数の話者それぞれの性別及び年齢を判定し、判定した性別及び年齢に限定して、予め記録された複数の話者情報から声の大きさ及び声の高さの少なくとも1つの平均を算出する。そして、命令実行装置はこれらの平均を、声の大きさの標準値及び声の高さの標準値とする。これにより、声の大きさの標準値及び声の高さの標準値が、判定部によって判定された複数の話者それぞれの性別及び年齢に限定して算出されるため、より詳細に算出されたものになる。
本発明の態様4に係るサーバ(21)は、外部機器(ロボット11)によって取得された、複数の話者それぞれが発話した命令の発話音声の音声データを受信する受信部(サーバ通信部210)と、前記音声データから、前記発話音声の特徴点である発話音声特徴点、及び前記命令の内容の特徴点である命令内容特徴点の少なくとも1つのレベルに応じた得点を各命令に付与するサーバ得点付与部(得点付与部230h)と、各命令の前記得点の合計値を算出し、前記合計値の高い順に定めた優先度を各命令に付与するサーバ優先度付与部(優先度付与部230i)と、前記サーバ優先度付与部によって付与された前記優先度を前記外部機器に送信する送信部(サーバ通信部210)と、を備える。
上記の構成によれば、サーバが、外部機器から取得した、発話音声の音声データを受信し、受信した音声データに対して命令の優先度を付与し、優先度の情報を外部機器に送信する。これにより、外部機器に優先度を付与する構成を設けなくてもよいため、外部機器の処理負担を軽減することができる。
本発明の態様5に係る命令実行システム(1)は、上記態様3において、前記命令実行装置(100)を有する外部機器(ロボット10)と、前記外部機器から受信した、複数の前記話者情報を格納するサーバ(20)と、を備えてもよい。
本発明の態様6に係る命令実行方法は、話者が発話した命令を実行する命令実行装置における命令実行方法であって、複数の話者それぞれが発話した命令の発話音声を取得する音声取得工程と、前記音声取得工程によって取得された前記発話音声の音声データから、前記発話音声の特徴点である発話音声特徴点、及び前記命令の内容の特徴点である命令内容特徴点の少なくとも1つのレベルに応じた得点を各命令に付与する得点付与工程と、前記得点の合計値を前記命令ごとに算出し、前記合計値の高い順に定めた優先度を各命令に付与する優先度付与工程と、最も高い前記優先度が付与された命令を実行する命令実行工程と、を備える。
本発明の各態様に係る命令実行装置は、コンピュータによって実現してもよく、この場合には、コンピュータを前記命令実行装置が備える各部(ソフトウェア要素)として動作させることにより前記命令実行装置をコンピュータにて実現させる命令実行装置の命令実行プログラム、及びそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。さらに、各実施形態にそれぞれ開示された技術的手段を組み合わせることにより、新しい技術的特徴を形成することができる。