以下、図面を参照しながら本発明の実施形態について説明する。
(第1実施形態)
図1は、第1実施形態に係る音声操作システム10の構成を示す図である。図2は、第1実施形態に係るキーワード検出装置22の外観の一例を示す図である。
音声操作システム10は、操作対象装置20と、キーワード検出装置22と、閾値生成装置24とを備える。
操作対象装置20は、例えば、家庭用電化機器または電子機器等のユーザの操作に応じて動作する機器である。第1実施形態においては、操作対象装置20は、エアーコンディショナである。操作対象装置20は、キーワード検出装置22から操作信号を受信し、受信した操作信号に応じた動作をする。
キーワード検出装置22は、ユーザにより発話された音声を収音する。キーワード検出装置22は、収音した音声に予め設定されたキーワードが含まれているか否かを判定する。そして、キーワード検出装置22は、収音した音声に予め設定されたキーワードが含まれている場合に、操作対象装置20に操作信号を送信して、操作対象装置20にキーワードに対応する動作をさせる。例えば、キーワード検出装置22は、赤外線または電波等により操作対象装置20に操作信号を送信する。キーワード検出装置22は、操作対象装置20に組み込まれ、有線回線を介して、操作対象装置20に操作信号を送信してもよい。
キーワード検出装置22は、一例として、図1および図2に示すように、マイクロフォン32と、キーワード検出部34と、通信部36とを有する。
マイクロフォン32は、周囲の音声を収音してアナログの音声信号に変換する。
キーワード検出部34は、マイクロフォン32から音声信号を受け取る。キーワード検出部34は、予め複数のキーワードが設定されている。キーワード検出部34は、所定時間間隔であるフレーム毎に、複数のキーワードのそれぞれについて、キーワードスコアを算出する。キーワードスコアは、音声信号に含まれる音声と、予め設定されたキーワードとの類似度を表す。
キーワード検出部34は、複数のキーワードのそれぞれについて、予め閾値が設定されている。キーワード検出部34は、複数のキーワードのそれぞれについて、フレーム毎に、算出したキーワードスコアと閾値との比較結果に基づき、音声信号に対応するキーワードが含まれているか否かを検出する。例えば、キーワード検出部34は、キーワードスコアが閾値より大きい場合、音声信号に対応するキーワードが含まれていると検出する。キーワード検出部34は、音声信号に複数のキーワードのうちの何れかのキーワードが含まれていることを検出した場合、含まれているキーワードに対応する操作を指示する操作信号を出力する。キーワード検出部34は、例えばプロセッシング回路およびメモリ等を含む情報処理回路により実現される。
通信部36は、キーワード検出部34により音声信号にキーワードが含まれていることが検出された場合、検出したキーワードに対応する操作信号を操作対象装置20に送信する。
閾値生成装置24は、キーワード検出装置22によるキーワードの検出動作に先立って、複数のキーワードのそれぞれに対応する閾値を生成する。閾値生成装置24は、生成した複数のキーワードのそれぞれの閾値をキーワード検出装置22に設定する。例えば、閾値生成装置24は、生成した閾値をキーワード検出装置22の内部の不揮発性メモリに記憶させる。
閾値生成装置24は、例えばプロセッシング回路およびメモリ等を含む情報処理装置がプログラムを実行することにより実現される。閾値生成装置24は、キーワード検出装置22と一体的に設けられてもよい。また、閾値生成装置24は、キーワード検出部34と共通のプロセッシング回路およびメモリ等により実現されてもよい。
図3は、ユーザによりキーワードが発話された場合の操作対象装置20の動作の一例を示す図である。
キーワード検出装置22は、予め設定されている複数のキーワードのそれぞれに対して、識別情報であるキーワードIDが割り当てられている。キーワード検出装置22は、音声信号に複数のキーワードのうちの何れかが含まれていることを検出した場合、検出したキーワードに割り当てられたキーワードIDを含む操作信号を操作対象装置20に送信する。操作対象装置20は、キーワードIDと、動作内容とを対応づけるテーブル等を記憶する。操作対象装置20は、操作信号を受信した場合、キーワードIDに対応付けられた内容の動作を実行する。
キーワード検出装置22は、キーワードIDが“1”のキーワードとして“だんぼー”が設定されている。キーワード検出装置22は、ユーザにより“だんぼー”というキーワード音声が発話された場合、操作対象装置20に暖房運転を開始させる。
また、キーワード検出装置22は、キーワードIDが“2”のキーワードとして“れーぼー”が設定されている。キーワード検出装置22は、ユーザにより“れーぼー”というキーワード音声が発話された場合、操作対象装置20に冷房運転を開始させる。
また、キーワード検出装置22は、キーワードIDが“3”のキーワードとして“でんげんおふ”が設定されている。キーワード検出装置22は、ユーザにより“でんげんおふ”というキーワード音声が発話された場合、操作対象装置20に運転を停止させる。
また、キーワード検出装置22は、キーワードIDが“4”のキーワードとして“あつい”が設定されている。キーワード検出装置22は、ユーザにより“あつい”というキーワード音声が発話された場合、操作対象装置20に設定温度を1度下げさせる。
また、キーワード検出装置22は、キーワードIDが“5”のキーワードとして“さむい”が設定されている。キーワード検出装置22は、ユーザにより“さむい”というキーワード音声が発話された場合、操作対象装置20に設定温度を1度上げさせる。
図4は、第1実施形態に係るキーワード検出部34の構成を示す図である。キーワード検出部34は、AD変換部40と、特徴量生成部42と、キーワードモデル記憶部44と、キーワードスコア算出部46と、閾値記憶部48と、判定部50とを備える。
AD変換部40は、マイクロフォン32から出力された音声信号をサンプリングして、デジタルの音声信号に変換する。例えば、AD変換部40は、サンプリング周波数が16kHzの16ビットPCMのデジタルの音声信号に変換する。
特徴量生成部42は、デジタルの音声信号を受け取り、フレーム毎に、音声信号に含まれる音声の特徴を表す特徴ベクトルを生成する。例えば、特徴量生成部42は、時間ドメインのデジタルの音声信号に対してフレーム長が160サンプル、窓長が512サンプルの短時間フーリエ変換を行う。これにより、特徴量生成部42は、時間ドメインのデジタルの音声信号を、周波数ドメインの音声信号に変換することができる。そして、特徴量生成部42は、周波数ドメインの音声信号に基づき、フレーム毎に特徴ベクトルを生成する。例えば、特徴量生成部42は、40次元のメルフィルタバンク特徴ベクトルを生成する。
キーワードモデル記憶部44は、複数のキーワードのそれぞれ毎に、特徴ベクトルからキーワードスコアを算出するためのスコア算出モデルを記憶する。第1実施形態において、スコア算出モデルは、ニューラルネットワーク、および、ビタビアルゴリズム等を用いた有向グラフの探索アルゴリズムにより実現される。キーワードモデル記憶部44は、複数のキーワードのそれぞれ毎に、スコア算出モデルとしてニューラルネットワークのパラメータおよび有向グラフ等を記憶する。
キーワードスコア算出部46は、フレーム毎に、複数のキーワードのそれぞれについて、キーワードモデル記憶部44に記憶された対応するスコア算出モデルを用いて、キーワードスコアを算出する。第1実施形態において、キーワードスコアは、音声とキーワードとが類似する程、大きな値となる。
閾値記憶部48は、複数のキーワードのそれぞれについて、閾値を記憶する。閾値記憶部48は、キーワードの検出動作に先立って、複数のキーワードのそれぞれについての閾値を閾値生成装置24から受け取って、記憶する。
判定部50は、フレーム毎に、キーワードスコア算出部46から、複数のキーワードのそれぞれのキーワードスコアを受け取る。判定部50は、フレーム毎に、複数のキーワードのそれぞれについて、受け取ったキーワードスコアと閾値記憶部48に記憶された対応する閾値との比較結果に基づき、音声信号に対応するキーワードが含まれているか否かを検出する。例えば、判定部50は、受け取ったキーワードスコアが対応する閾値より大きい場合、音声信号に対応するキーワードが含まれていると判定する。そして、判定部50は、判定結果を通信部36に与える。
図5は、第1実施形態に係るキーワード検出部34に設定される閾値の一例を示す図である。図6は、キーワード検出部34により検出されるキーワードスコアの一例を示す図である。図7は、図6に示すキーワードスコアが算出された場合のキーワード検出部34による検出結果の一例を示す図である。
キーワード検出部34は、複数のキーワードのそれぞれについて閾値が設定される。第1実施形態において、キーワード検出部34は、図3に示したキーワードIDが“1”から“5”のキーワードのそれぞれについて、図5に示すような閾値が設定される。
tは、フレームを表す整数であり、フレーム毎に所定値から1ずつ増加する。Si(t)は、キーワードIDがiのキーワードについての、フレームがtにおけるキーワードスコアを表す。
キーワード検出部34は、フレーム毎に、複数のキーワードのそれぞれについて、キーワードスコアを算出する。第1実施形態においては、キーワード検出部34は、キーワードIDが“1”から“5”までのそれぞれのキーワードについて、フレーム毎にキーワードスコアを算出する。そして、キーワード検出部34は、算出したキーワードスコアが設定された閾値より大きくなったフレームにおいて、キーワードスコアが閾値より大きくなったキーワードを識別するキーワードIDを検出結果として出力する。
図5~図7の例において、キーワード検出部34は、t=130のフレームからt=140のフレームまでのそれぞれにおいて、キーワードスコアを算出している。キーワード検出部34は、キーワードIDが“3”の“でんげんおふ”というキーワードについて、t=136のフレームにおいて、キーワードスコアが極大の451となっている。キーワードIDが“3”のキーワードの閾値は、339であることから、キーワード検出部34は、t=136のフレームにおいて、“でんげんおふ”というキーワードが音声信号に含まれていると判断する。そして、図7に示すように、キーワード検出部34は、検出結果として、t=136のフレームにおいて、“でんげんおふ”というキーワードのキーワードIDである3を出力している。なお、第1実施形態において、キーワード検出部34は、何れのキーワードもキーワードスコアが閾値より大きくなっていない場合、検出結果として0を出力する。
図8は、キーワードスコア算出部46の構成を示す図である。キーワードスコア算出部46は、ニューラルネットワーク部52と、探索部54とを含む。キーワードスコア算出部46は、複数のキーワードのそれぞれについて、ニューラルネットワーク部52および探索部54により、スコア算出モデルに従ったスコア算出処理を実行する。
キーワードは、音声の微小要素の時間遷移を表す有向グラフにより表される。第1実施形態において、有向グラフは、音節列を表す。有向グラフにより表される音節列に含まれる各音節は、3つの状態を表すleft-to-rightの隠れマルコフモデルでモデル化されている。キーワードの音節数をn(1以上の整数)とした場合、キーワードを表す有向グラフは、N個の状態{y1,y2,…,yN}と、N個の状態のそれぞれの自己遷移と、前段状態から後段状態への状態間遷移とを含む。Nは、3×nである。例えば、3音節の“あつい”というキーワードは、9個の状態を含む有向グラフにより表される。
ニューラルネットワーク部52は、フレーム毎に、特徴量生成部42から、特徴ベクトルを取得する。ニューラルネットワーク部52は、フレーム毎に、特徴ベクトルに基づき、キーワードを表す有向グラフに含まれる複数の状態のそれぞれについて、音声が対応する状態となる尤度を表す尤度スコアを算出する。
ここで、t番目のフレームにおいて特徴ベクトル(xt)が取得された場合における、有向グラフに含まれるq番目の状態(yq)の尤度スコアを、score(xt,yq)と表す。ニューラルネットワーク部52は、複数のキーワードのそれぞれについて、フレーム毎に、有向グラフに含まれるN個の状態{y1,y2,…,yN}のそれぞれの尤度スコアを算出する。
ニューラルネットワーク部52は、フレーム毎に、ニューラルネットワークに従った演算を実行する。ニューラルネットワークは、一例として、全結合ネットワークである。ニューラルネットワークは、4層の隠れ層を含む。各層は、256個のノードを含む。ニューラルネットワークは、活性化関数として、例えば、Sigmoid関数が適用される。ニューラルネットワークの出力層は、例えば、全音節に対応する個数のノードと、無音に対応するノードとを含む。ニューラルネットワークの出力層は、活性化関数として、Softmax関数が適用される。ニューラルネットワークは、各パラメータがキーワードモデル記憶部44に予め設定されている。
そして、ニューラルネットワーク部52は、複数のキーワードのそれぞれについて、ニューラルネットワークの出力層から得られる尤度スコアを出力する。この場合、ニューラルネットワーク部52は、ニューラルネットワークの出力層のうちの、キーワードを表す有向グラフに含まれるN個の状態{y1,y2,…,yN}に対応する複数のノードから、尤度スコアを出力する。
探索部54は、フレーム毎に、複数のキーワードのそれぞれについて、有向グラフから、尤度スコアの合計値が最大となる最良系列を探索する。そして、探索部54は、フレーム毎に、最良系列における尤度スコアの合計値をキーワードスコアとして算出する。
具体的には、探索部54は、フレーム毎に、式(1)を算出するための探索処理をすることにより、i番目のキーワードのキーワードスコア(Si(t))を算出する。
式(1)において、Si(t)は、処理対象フレームにおけるi番目のキーワードのキーワードスコアを表す。tは、処理対象フレームを表す整数であり、フレーム毎に1ずつ増加する。bは、処理対象フレームがtである場合の、有向グラフに含まれる複数の状態における1番目の状態に対応する初期フレームを表す。
Qは、有向グラフに含まれる1番目の状態からt番目の状態までに至る複数の経路のそれぞれにおける、状態の番号の系列を表す。xτは、フレームがτにおける特徴ベクトルを表す。yqτは、フレームがτにおける、有向グラフに含まれる複数の状態のうちのq番目の状態を表す。score(xτ,yqτ)は、フレームがτにおける、q番目の状態の尤度スコアを表す
探索部54は、式(1)に示す演算に対応する探索処理として、次のような処理を行う。すなわち、探索部54は、有向グラフに含まれる1番目の状態からt番目の状態までに至る複数の経路うちの、尤度スコアの合計値が最大となる1つの最良経路を選択する。また、探索部54は、初期フレーム(b)をtより小さいという条件の下で変化させて、それぞれの初期フレーム(b)についてこのような最良経路を選択する。さらに、探索部54は、選択したそれぞれの最良経路の尤度スコアの合計値に1/(t-b+1)を乗算して正規化合計値を算出する。そして、探索部54は、選択した複数の最良経路の正規化合計値のうちの最も大きい値を、キーワードスコア(Si(t))として出力する。
このような処理をすることにより、探索部54は、フレーム毎に、有向グラフから尤度スコアの合計値が最大となる最良系列を探索し、最良系列における尤度スコアの合計値をキーワードスコアとして算出することができる。探索部54は、有向グラフから、尤度スコアの合計値が最大となる最良系列を探索する問題を、例えばビタビアルゴリズムを用いて解くことができる。
図9は、第1実施形態に係る閾値生成装置24の構成を示す図である。閾値生成装置24は、キーワード検出装置22による検出動作に先立って、複数のキーワードのそれぞれについて閾値を生成して、キーワード検出装置22に設定する。
閾値生成装置24は、取得部60と、スコア算出部62と、分布算出部64と、閾値生成部66と、設定部68とを備える。
取得部60は、予め収集された複数の参照音声を含む入力信号を取得する。第1実施形態において、取得部60は、複数の雑音を複数の参照音声として含む入力信号を取得する。
スコア算出部62は、複数の参照音声のそれぞれについて、キーワードとの類似度を表すキーワードスコアを算出する。第1実施形態において、複数の雑音のそれぞれについて、キーワードとの類似度を表すキーワードスコアを算出する。
スコア算出部62は、複数のキーワードのそれぞれについて、キーワード検出装置22と同一のスコア算出モデルを用いてキーワードスコア(Si(t))を算出する。従って、スコア算出部62は、図4に示すキーワード検出部34における閾値記憶部48および判定部50を備えない構成と同一である。また、スコア算出部62は、デジタルに変換された入力信号を取得する場合には、AD変換部40をさらに備えない構成と同一である。
そして、スコア算出部62は、複数のキーワードのそれぞれについて、複数の参照音声に基づき算出した複数のキーワードスコアを含むスコア集合を生成する。第1実施形態においては、スコア算出部62は、複数のキーワードのそれぞれについて、スコア集合として、複数の雑音に基づき算出した複数のキーワードスコアを含む雑音スコア集合を生成する。
分布算出部64は、複数のキーワードのそれぞれについて、スコア集合の分布を表すパラメータを算出する。第1実施形態においては、分布算出部64は、複数のキーワードのそれぞれについて、雑音スコア集合の分布を表すパラメータを算出する。例えば、分布算出部64は、雑音スコア集合が正規分布に近似するとみなして、雑音スコア集合の分布を表すパラメータとして、平均値および標準偏差を算出する。
閾値生成部66は、複数のキーワードのそれぞれについて、スコア集合の分布を表すパラメータに基づき、閾値を生成する。閾値生成部66は、例えば、スコア集合の分布を表すパラメータに基づき、予め定められた確率でスコア集合に含まれるキーワードスコアの方が大きくなる、または、予め定められた確率でスコア集合に含まれるキーワードスコアの方が大きくなる閾値を生成する。第1実施形態においては、閾値生成部66は、複数のキーワードのそれぞれについて、雑音スコア集合の分布を表すパラメータに基づき、雑音に基づき算出されたキーワードスコアの方が予め定められた確率で小さくなる値を、閾値として生成する。例えば、閾値生成部66は、複数のキーワードのそれぞれについて、雑音スコア集合の分布を表す平均値および標準偏差に基づき、雑音スコア集合に含まれる大多数のキーワードスコアの方が小さくなる値を閾値として生成する。
設定部68は、複数のキーワードのそれぞれについて、生成した閾値をキーワード検出装置22に設定する。
図10は、第1実施形態に係る閾値生成装置24の処理の流れを示すフローチャートである。第1実施形態に係る閾値生成装置24は、図10に示す流れで閾値を生成する。
まず、S101において、取得部60は、複数の雑音を複数の参照音声として含む入力信号を取得する。
第1実施形態において、入力信号は、例えばキーワード検出装置22を用いる環境下、または、キーワード検出装置22を用いる環境と類似した音響の環境下で収音された音声信号である。第1実施形態において、入力信号は、キーワード検出装置22を自動車の車内で利用する場合は、例えば車内で収集した音声信号である。また、第1実施形態において、入力信号は、キーワード検出装置22をリビングルームで利用する場合は、例えば、リビングルームで収集した音声信号である。また、入力信号は、数時間または数十時間といった長期間の音声信号であってもよい。これにより、入力信号は、より多くの多種類の複数の雑音を含むことができる。
続いて、閾値生成装置24は、複数のキーワードのそれぞれについて、S103からS106までの処理を実行する(S102とS107との間のループ処理)。閾値生成装置24は、S103からS106までの処理を、複数のキーワードのそれぞれ毎に順次に実行してもよいし、複数のキーワードについて並行に実行してもよい。
ループ内におけるS103において、スコア算出部62は、複数の雑音のそれぞれについて、処理対象のキーワードとの類似度を表すキーワードスコア(Si(t))を算出する。そして、スコア算出部62は、複数の雑音に基づき算出した複数のキーワードスコア(Si(t))を、処理対象のキーワードについてのスコア集合である雑音スコア集合として記憶する。
例えば、スコア算出部62は、入力信号にTnフレームの雑音が含まれている場合、Tnフレームの雑音のそれぞれのフレーム番号をt={1,2,…,Tn}に割り当てる。そして、スコア算出部62は、i番目のキーワードについてTn個のキーワードスコア(Si(t))を算出し、算出したTn個のキーワードスコア(Si(t))を含むスコア集合を、i番目のキーワードの雑音スコア集合として記憶する。
続いて、S104において、分布算出部64は、処理対象のキーワードについて、雑音スコア集合の分布を表すパラメータを算出する。例えば、分布算出部64は、雑音スコア集合が正規分布に近似するとみなして、雑音スコア集合の分布を表すパラメータとして、雑音スコア集合の分布の平均値および標準偏差を算出する。
例えば、分布算出部64は、式(2)に示す演算をして、i番目のキーワードの雑音スコア集合の平均値(mni)を算出する。
また、例えば、分布算出部64は、式(3)に示す演算をして、i番目のキーワードの雑音スコア集合の標準偏差(σni)を算出する。
続いて、S105において、閾値生成部66は、処理対象のキーワードについて、雑音スコア集合の分布を表すパラメータに基づき閾値を生成する。例えば、閾値生成部66は、雑音スコア集合の分布を正規分布とみなして、平均値および標準偏差に基づき、雑音スコア集合に含まれるキーワードスコアの方が予め定められた確率で小さくなる値を、閾値として生成する。例えば、閾値生成部66は、処理対象のキーワードについて、雑音スコア集合の分布を表すパラメータに基づき、雑音スコア集合に含まれる大多数のキーワードスコアの方が小さくなる値を、閾値として生成する。
例えば、閾値生成部66は、式(4)に示す演算をして、i番目のキーワードの閾値(θni)を算出する。
なお、閾値生成部66は、式(4)の値以上の値を閾値(θni)として生成してもよい。また、式(4)の標準偏差に乗じられる倍率は、5以外であってもよく、正の値の所定の第1倍率(A)であればよい。すなわち、閾値生成部66は、雑音スコア集合の平均値(mni)と雑音スコア集合の標準偏差(σni)に所定の第1倍率(A)を乗じた値とを加算した値(mni+Aσni)以上の値を、閾値(θni)として生成してもよい。
式(4)に示す閾値は、正規分布表から、雑音を入力した場合において算出されるキーワードスコアの方が大きくなる頻度が2.87×10-7程度となる値である。換言すると、式(4)に示す閾値は、24時間雑音を入力し続けた場合に、キーワードスコアが閾値より大きくなることにより雑音をキーワードとして誤検出してしまう頻度が2.5回程度となる値である。これにより、閾値生成部66は、i番目のキーワードについて、雑音スコア集合に含まれる大多数のキーワードスコアの方が小さくなる値を、すなわち、雑音スコア集合に含まれる大多数のキーワードスコアが検出されない値を、閾値として生成することができる。
また、閾値生成部66は、複数のキーワードのそれぞれについて同一の演算によって閾値を生成する。これにより、閾値生成部66は、複数のキーワードのそれぞれの誤検出確率を一定にすることができる。
続いて、S106において、設定部68は、生成した閾値をキーワード検出装置22に設定する。
閾値生成装置24は、複数のキーワードのそれぞれについて、S103からS106までの処理を終了した場合、S101とS107との間のループ処理を抜けて、本フローを終了する。
図11は、図10に示す流れで生成された平均値、標準偏差および閾値の一例を示す図である。
閾値生成装置24は、図10に示す処理を実行することにより、複数のキーワードのそれぞれについて、個別に閾値を生成する。複数の閾値のそれぞれは、雑音が入力された場合において、キーワードスコア(Si(t))の方が予め定められた確率で小さくなる値である。このため、閾値生成装置24は、複数のキーワードのそれぞれについてこのような閾値を生成することにより、キーワード毎の誤検出確率を一定とすることができる。
図12は、雑音環境下において、ユーザが、キーワードIDが“4”のキーワードである“あつい”と発話した場合におけるキーワードスコアの一例を示す図である。図13は、図12に示すキーワードスコアが算出された場合のキーワード検出部34による検出結果の一例を示す図である。
図12および図13に示す例は、エアーコンディショナの送風による雑音またはテレビジョン装置の音声による雑音が発生している環境においての発話を想定している。
t=38のフレームにおいて、キーワードIDが4のキーワードスコアは、S4(38)=458となり、キーワードIDが4の閾値のθn4=421より大きい。一方、t=37のフレームにおいて、キーワードIDが5のキーワードスコアは、S5(37)=471となっており、キーワードIDが4の閾値であるS4(38)=458より大きいが、キーワードIDが5の閾値であるθn5=512より小さい。もし、キーワードIDが“4”の“あつい”と、キーワードIDが“5”の“さむい”の閾値が同一である場合、“さむい”が誤って検出されてしまい、正解である“あつい”が検出されないという問題が生じる。
これに対して、第1実施形態に係るキーワード検出装置22は、雑音に対するキーワードスコアの分布である雑音スコア分布に基づいて、キーワード毎に、誤検出を抑制するように閾値が設定されている。従って、第1実施形態に係るキーワード検出装置22は、誤検出を抑制しつつ、正解を精度良く検出することができる。
以上のように第1実施形態に係る閾値生成装置24によれば、ユーザに調整処理をさせることなく、キーワード検出装置22に対して適切にキーワードを検出させることが可能な閾値を生成することができる。
(変形例)
図14は、第1実施形態の変形例に係るキーワード検出部34の構成を示す図である。
キーワード検出装置22のキーワード検出部34は、図4に示す構成に代えて、図14に示す構成であってもよい。変形例に係るキーワード検出部34は、閾値記憶部48に記憶されている閾値が、判定部50に代えて、キーワードスコア算出部46に与えられる。以下、変形例について、図1から図13を参照して説明した第1実施形態に含まれる構成要素と略同一の機能および構成を有する構成要素に同一の符号を付けて、相違点について説明する。
変形例において、キーワード検出部34は、閾値を予め減算したキーワードスコアを算出する。そして、変形例において、判定部50は、複数のキーワードのそれぞれについて、受け取ったキーワードスコアと0とを比較することにより、音声信号に対応するキーワードが含まれているか否かを検出する。これにより、変形例においても、判定部50は、キーワードスコアと対応する閾値との比較結果に基づき、音声信号に対応するキーワードが含まれているか否かを検出することができる。
より具体的には、キーワード検出部34の探索部54は、フレーム毎に、式(5)の演算を算出するための探索処理をすることにより、i番目のキーワードについて、予め閾値を減算した後のキーワードスコア(Si(t))を算出する。
変形例に係る探索部54は、式(5)に示す演算に対応する探索処理として、次のような処理を行う。すなわち、探索部54は、有向グラフに含まれる1番目の状態からN番目の状態までに至る複数の経路うちの、尤度スコアから閾値を減算した減算尤度スコアの合計値が最大となる、1つの最良経路を選択する。さらに、探索部54は、初期フレーム(b)をtより小さいという条件の下で変化させて、それぞれの初期フレーム(b)についてこのような最良経路を選択する。そして、探索部54は、選択した複数の最良経路の減算尤度スコアの合計値のうちの最も大きい値を、キーワードスコア(Si(t))として出力する。
式(5)は、尤度スコアの合計値に1/(t-b+1)を乗算する演算を含まない。従って、探索部54は、最良系列の探索を、初期フレーム(b)の位置に関わらず独立に逐次的に行うことが可能となる。これにより、探索部54は、式(1)の演算に探索処理を実行する場合と比較して、式(5)の演算に相当する探索処理を少ない計算量で実行することができる。
また、S103の処理において、閾値生成装置24は、式(5)の演算に相当する探索処理をすることにより、キーワードスコア(Si(t))を算出してもよい。なお、この場合、閾値生成装置24は、探索処理の開始時において、複数のキーワードのそれぞれについて、閾値の初期値を設定する。複数のキーワードのそれぞれの閾値の初期値は、共通であってもよい。そして、閾値生成装置24は、S105の処理において、閾値生成装置24は、分布に基づき算出した閾値に、初期値を加算することにより、最終的な閾値を生成する。これにより、閾値生成装置24は、少ない計算量により閾値を生成することができる。
また、第1実施形態に係る閾値生成装置24は、複数のキーワードのそれぞれ毎にキーワードスコア(Si(t))を算出し、複数のキーワードのそれぞれ毎に、キーワードスコアの分布を生成している。これに代えて、閾値生成装置24は、キーワードを表す有向グラフに含まれる複数の状態のそれぞれ毎に尤度スコアの分布を生成してもよい。そして、閾値生成装置24は、複数の状態のそれぞれの尤度スコアの分布に基づきキーワードスコアの分布を生成してもよい。この場合、閾値生成装置24は、ニューラルネットワークから得られた全ての状態のそれぞれの尤度スコアの分布を生成し、これらの分布うちのキーワードに含まれる複数の状態についての尤度スコアの分布を選択してもよい。これにより、閾値生成装置24は、キーワードが変更された場合において、再度の探索処理を実行せずに新たなキーワードに対する閾値を簡易に生成することができる。
第1実施形態において、キーワード検出装置22は、5個のキーワードが設定されている。しかし、キーワード検出装置22は、1個以上であれば、何個のキーワードが設定されていてもよい。第1実施形態において、キーワード検出装置22は、特徴ベクトルとして、メルフィルタバンク特徴ベクトルを生成する。しかし、キーワード検出装置22は、メルフィルタバンク特徴ベクトル以外の特徴ベクトルを生成してもよい。
また、第1実施形態において、キーワードは、複数の音節の列を表す有向グラフである。キーワードは、音素、2音素連鎖、3音素連鎖、サブワードまたはワード等の、種々の微小要素の遷移を表すグラフにより表されてもよい。また、キーワードは、これらの微小要素を、所定個ずつクラスタリングした単位により表されてもよい。
また、第1実施形態において、キーワード検出装置22は、ニューラルネットワークを用いて、各状態の尤度スコアを算出している。しかし、キーワード検出装置22は、混合ガウス分布モデルなど他のモデルを用いて、各状態の尤度スコアを算出してもよい。また、第1実施形態において、キーワード検出装置22は、ニューラルネットワークとして、活性化関数にSigmoid関数を用いた全結合ネットワークを用いる。しかし、キーワード検出装置22は、畳込みニューラルネットワークまたは再帰型ニューラルネットワークを用いてもよい。また、キーワード検出装置22は、活性化関数として、TanhまたはReLU等の他の関数を用いてもよい。
閾値生成装置24は、式(4)において、標準偏差の5倍を平均値に加えた値を、閾値として算出する。しかし、閾値生成装置24は、5倍以外の倍数の標準偏差を平均値に加えて閾値を算出してもよい。閾値生成装置24の設計者は、キーワードの誤検出の制約条件等に基づき、式(4)に適切な倍数を設定すればよい。また、閾値生成装置24は、キーワードスコアの分布を正規分布みなして、閾値を設定している。しかし、閾値生成装置24は、キーワードスコアの分布を正規分布以外の分布とみなして、分布のパラメータを算出してもよい。また、閾値生成装置24は、キーワードスコアの分布のパラメータとして、分布に含まれるキーワードスコアの最大値または累積度数が所定の値等を用いて、閾値を生成してもよい。
(第2実施形態)
つぎに、第2実施形態に係る音声操作システム10について説明する。第2実施形態に係る音声操作システム10は、第1実施形態に係る音声操作システム10と略同一の機能および構成を有するので、以下、略同一の構成要素に同一の符号を付けて、相違点を除き詳細な説明を省略する。
図15は、第2実施形態に係る閾値生成装置24の処理の流れを示すフローチャートである。第2実施形態に係る閾値生成装置24は、図15に示す流れで閾値を生成する。
閾値生成装置24は、複数のキーワードのそれぞれについて、S202からS206までの処理を実行する(S201とS207との間のループ処理)。
ループ内における、S202において、取得部60は、1または複数の発話者がキーワードを発話した複数のキーワード音声を、複数の参照音声として含む入力信号を取得する。複数のキーワード音声は、キーワードを発話した発話者の数が多い方が望ましい。また、複数のキーワード音声は、それぞれの発話者の発話回数が多い方が好ましい。また、入力信号は、例えばキーワード検出装置22を用いる環境下、または、キーワード検出装置22を用いる環境と類似した音響の環境下で、発話者がキーワードを発話することにより収音された音声信号であることが好ましい。
続いて、S203において、スコア算出部62は、複数のキーワード音声のそれぞれについて、処理対象のキーワードとの類似度を表すキーワードスコア(Si(k))を算出する。スコア算出部62は、発話者が1回のキーワード音声を発話した場合に、フレーム毎にキーワードスコア(Si(k))を算出する。1回のキーワード音声が発話された場合、スコア算出部62は、発話が開始されてから終了するまでの間における複数のフレームのそれぞれにおいてキーワードスコアを算出する。そこで、スコア算出部62は、1つのキーワード音声の発話毎に、算出した複数のキーワードスコア(Si(k))のうちの最大のキーワードスコア(Si(k))を出力する。
スコア算出部62は、複数のキーワード音声に基づき算出した複数のキーワードスコア(Si(k))を、処理対象のキーワードについてのスコア集合である発話スコア集合として記憶する。例えば、スコア算出部62は、入力信号にK個のキーワード音声が含まれている場合、K個のキーワード音声のそれぞれのフレーム番号をk={1,2,…,K}に割り当てる。そして、スコア算出部62は、i番目のキーワードについてK個のキーワードスコア(Si(k))を算出し、算出したK個のキーワードスコア(S(k))を含むスコア集合を、i番目のキーワードの発話スコア集合として記憶する。
続いて、S204において、分布算出部64は、処理対象のキーワードについて、発話スコア集合の分布を表すパラメータを算出する。例えば、分布算出部64は、発話スコア集合が正規分布に近似するとみなして、発話スコア集合の分布を表すパラメータとして、発話スコア集合の分布の平均値および標準偏差を算出する。
例えば、分布算出部64は、式(6)に示す演算をして、i番目のキーワードの発話スコア集合の平均値(mui)を算出する。
また、例えば、分布算出部64は、式(7)に示す演算をして、i番目のキーワードの発話スコア集合の標準偏差(σui)を算出する。
続いて、S205において、閾値生成部66は、処理対象のキーワードについて、発話スコア集合の分布を表すパラメータに基づき閾値を生成する。例えば、閾値生成部66は、発話スコア集合の分布を正規分布とみなして、平均値および標準偏差に基づき、発話スコア集合に含まれるキーワードスコアの方が予め定められた確率で大きくなる値を、閾値として生成する。例えば、閾値生成部66は、i番目のキーワードについて、発話スコア集合に含まれる大多数のキーワードスコアの方が大きくなる値を閾値として生成する。
例えば、閾値生成部66は、式(8)に示す演算をして、i番目のキーワードの閾値(θui)を算出する。
なお、閾値生成部66は、式(8)の値以下の値を閾値(θui)として生成してもよい。また、式(8)の標準偏差に乗じられる倍率は、3以外であってもよく、正の値の所定の第2倍率(B)であればよい。すなわち、閾値生成部66は、発話スコア集合の平均値(mui)から発話スコア集合の標準偏差(σui)に所定の第2倍率(B)を乗じた値を減じた値(mui-Bσui)以下の値を、閾値(σui)として生成してもよい。
式(8)に示す閾値は、正規分布表から、キーワード音声を入力した場合において算出されるキーワードスコアの方が小さくなる頻度が0.00135程度となる値である。換言すると、式(8)に示す閾値は、1000回キーワードが発話された場合に、キーワードスコアが閾値より小さくなることによりキーワード音声が未検出となる頻度が1.4回程度となる値である。これにより、閾値生成部66は、i番目のキーワードについて、発話スコア集合に含まれる大多数のキーワードスコアの方が大きくなる値を、すなわち、発話スコア集合に含まれる大多数のキーワードスコアが検出される値を、閾値として生成することができる。
また、閾値生成部66は、複数のキーワードのそれぞれについて同一の演算によって閾値を生成する。これにより、閾値生成部66は、複数のキーワードのそれぞれの未検出確率を一定にすることができる。
続いて、S206において、設定部68は、生成した閾値をキーワード検出装置22に設定する。
閾値生成装置24は、複数のキーワードのそれぞれについて、S202からS206までの処理を終了した場合、S201とS207との間のループ処理を抜けて、本フローを終了する。
図16は、図15に示す流れで生成された平均値、標準偏差および閾値の一例を示す図である。
閾値生成装置24は、図15に示す処理を実行することにより、複数のキーワードのそれぞれについて、個別に閾値を生成する。複数の閾値のそれぞれは、キーワード音声が入力された場合において、キーワードスコア(Si(k))の方が予め定められた確率で大きくなる値である。このため、第2実施形態に係る閾値生成装置24は、複数のキーワードのそれぞれについてこのような閾値を生成することにより、キーワード毎の未検出確率を一定とすることができる。
以上のように第2実施形態に係る閾値生成装置24によれば、ユーザに調整処理をさせることなく、キーワード検出装置22に対して適切にキーワードを検出させることが可能な閾値を生成することができる。
なお、閾値生成装置24は、式(8)における閾値(θui)の算出において、標準偏差の3倍を平均値から減じた値を閾値として算出する。しかし、閾値生成装置24は、3倍以外の倍数の標準偏差を平均値から減じて閾値を算出してもよい。閾値生成装置24の設計者は、キーワードの未検出の制約条件等に基づき、式(8)に適切に倍数を設定すればよい。
また、第2実施形態に係る閾値生成装置24は、ユーザが発話したキーワード音声を収音して入力信号を準備する。しかし、閾値生成装置24は、音節ラベルが付与された任意の内容の発話データを大量に準備して、キーワードを構成する状態毎のスコアを生成し、状態毎のスコアの分布を算出し、状態毎のスコア分布からキーワードスコア分布を生成してもよい。このような閾値生成装置24は、キーワード音声の収音が不要であるため、キーワード音声を収集するコストが削減され、キーワードが変更された場合でも短時間に閾値を生成することができる。
(第3実施形態)
つぎに、第3実施形態に係る音声操作システム10について説明する。第3実施形態に係る音声操作システム10は、第1~第2実施形態に係る音声操作システム10と略同一の機能および構成を有するので、以下、略同一の構成要素に同一の符号を付けて、相違点を除き詳細な説明を省略する。
図17は、第3実施形態に係る閾値生成装置24の処理の流れを示すフローチャートである。第3実施形態に係る閾値生成装置24は、図17に示す流れで閾値を生成する。
まず、閾値生成装置24は、S101、S102、S103、S104、S105およびS107の処理を実行する。S101、S102、S103、S104、S105およびS107の処理は、図10に示した第1実施形態の処理と同一である。ただし、第3実施形態においては、S105で生成した閾値を、雑音閾値と呼ぶ。
続いて、閾値生成装置24は、S201、S202、S203、S204、S205およびS207の処理を実行する。S201、S202、S203、S204、S205およびS207の処理は、図15に示した第2実施形態の処理と同一である。ただし、第3実施形態においては、S205で生成した閾値を、発話閾値と呼ぶ。
続いて、閾値生成装置24は、複数のキーワードのそれぞれについて、S302からS304までの処理を実行する(S301とS305との間のループ処理)。
ループ内のS302において、閾値生成部66は、処理対象のキーワードについて、S105で生成した雑音閾値(θni)と、S205で生成した発話閾値(θui)との間の値を、閾値として生成する。例えば、閾値生成部66は、式(9)の演算をして、雑音閾値と発話閾値との中間値を閾値(θnui)として生成する。
このような処理により閾値生成部66は、雑音スコア分布に基づき生成した雑音閾値および発話スコア分布に基づき生成した発話閾値を用いることにより、誤検出頻度および未検出頻度のバランスがとれた閾値を生成することができる。
続いて、S303において、閾値生成装置24は、S302で生成した閾値と、S103で生成した雑音スコア集合とに基づき誤検出確率または誤検出頻度を評価値として算出する。または、閾値生成装置24は、S302で生成した閾値と、S203で生成した発話スコア集合とに基づき未検出確率または誤検出頻度を評価値として算出する。例えば、閾値生成装置24は、(θnui-mni)/σniの値から正規分布表に基づいて雑音が入力された場合に誤検出確率を算出し、24時間当たりの誤検出頻度を算出してもよい。また、例えば、閾値生成装置24は、(mui-θnui)/σuiの値から正規分布表に基づいてキーワード音声が発話された場合に未検出となる未検出確率を算出してもよい。そして、閾値生成装置24は、このように算出した評価値の少なくとも1つを、例えばモニタ等に表示することによりユーザに出力する。
続いて、S304において、設定部68は、生成した閾値をキーワード検出装置22に設定する。
閾値生成装置24は、複数のキーワードのそれぞれについて、S302からS304までの処理を終了した場合、S301とS305との間のループ処理を抜けて、本フローを終了する。
図18は、図17に示す流れで生成された平均値、標準偏差、閾値、誤検出頻度および未検出確率の一例を示す図である。
図18のFA24は、24時間当たりの誤検出頻度である。図18のFRは、キーワードの未検出確率(%)である。
図18の例において、キーワードIDが5のキーワードである“さむい”は、θu5<θn5であることから、θun5<θn5およびθu5<θun5となっている。従って、キーワードIDが5のキーワードである“さむい”は、第1実施形態のθni=mni+5θniにより設定される誤検出確率、および、第2実施形態のθui=mui-3θuiにより設定される未検出確率の制約条件を満たすことができない。
このため、キーワードIDが5のキーワードである“さむい”は、FA24が54.1回、FRが27.4%となっていると推定される。他のキーワードは、θn5<θun5およびθu5<θu5となっていることから、誤検出確率および未検出確率の制約が満たされ、さらに誤りが減少してほぼゼロになると推定される。
第3実施形態に係る閾値生成装置24は、このような評価値をユーザに提示することにより、ユーザにキーワードの見直しを促すことができる。例えば、第3実施形態に係る閾値生成装置24は、“さむい”の代わりに“おんどあげて”等の、エーコンディショナに対して同様の動作を指示する別の言葉に変更することを促すことができる。これにより、閾値生成装置24は、キーワード検出装置22の検出精度を向上させて、ユーザの使い勝手を改善することができる。
なお、閾値生成装置24は、評価値として、24時間当たりの誤検出頻度(FA24)およびキーワードの未検出確率(FR)をユーザに出力する例を示したが、これら以外の値を算出してユーザに提示してもよい。また、閾値生成装置24は、評価値を所定の基準に基づいて「高」「中」「低」などの定性的な指標に変換して出力してもよい。
(第4実施形態)
つぎに、第4実施形態に係る音声操作システム10について説明する。第4実施形態に係る音声操作システム10は、第1~第3実施形態に係る音声操作システム10と略同一の機能および構成を有するので、以下、略同一の構成要素に同一の符号を付けて、相違点を除き詳細な説明を省略する。
例えば、キーワード検出装置22に設定されるキーワードの数が多い場合、または、複数のキーワードの中に類似のキーワード対が含まれている場合、発話されたキーワードが他のキーワードとして誤検出される可能性が高くなる。例えば、“でんげんおふ”と“でんげんおん”は、音節が一致する部分が多く、誤検出される可能性が高い。第4実施形態に係る閾値生成装置24は、このようなキーワードが類似することに起因する誤検出を抑制しつつ、正解検出の精度を向上させるように閾値を設定する。
図19は、第4実施形態に係る閾値生成装置24の処理の流れを示すフローチャートである。第4実施形態に係る閾値生成装置24は、図19に示す流れで閾値を生成する。
S401において、取得部60は、1または複数の発話者が第1キーワードを発話した複数の第1キーワード音声を、複数の参照音声として含む入力信号を取得する。第1キーワードは、キーワード検出装置22に設定される複数のキーワードのうちの何れか1つのキーワードである。S401において、取得部60は、第1キーワードについて、第2実施形態の図15のS202と同様の処理を実行する。
S402において、スコア算出部62は、複数の第1キーワード音声のそれぞれについて、第1キーワードとの類似度を表す第1キーワードスコア(Si(k))を算出する。そして、スコア算出部62は、算出した複数のキーワードスコア(Si(k))を、第1キーワードについての正検出スコア集合として記憶する。S402において、スコア算出部62は、第1キーワードについて、第2実施形態の図15のS203と同様の処理を実行する。
続いて、S403において、分布算出部64は、第1キーワードについて、正検出スコア集合の分布を表すパラメータを算出する。S403において、分布算出部64は、第1キーワードについて、第2実施形態の図15のS204と同様の処理を実行する。
続いて、S404において、閾値生成部66は、第1キーワードについて、正検出スコア集合の分布を表すパラメータに基づき正検出閾値を生成する。例えば、閾値生成部66は、正検出スコア集合の分布を正規分布とみなして、平均値および標準偏差に基づき、正検出スコア集合に含まれるキーワードスコアの方が予め定められた確率で大きくなる値を、正検出閾値として生成する。S404において、閾値生成部66は、第1キーワードについて、第2実施形態の図15のS205と同様の処理を実行する。
続いて、閾値生成装置24は、第1キーワードとは異なる1または複数の第2キーワードのそれぞれについて、S406からS409までの処理を実行する(S405とS410との間のループ処理)。1または複数の第2キーワードのそれぞれは、キーワード検出装置22に設定される複数のキーワードのうちの何れか1つのキーワードである。例えば、1または複数の第2キーワードのそれぞれは、発話された場合に第1キーワードとして誤検出がされる可能性が高いキーワードである。
ループ内における、S406において、取得部60は、1または複数の発話者が処理対象の第2キーワードを発話した複数の第2キーワード音声を、複数の参照音声として含む入力信号を取得する。S406において、取得部60は、処理対象の第2キーワードについて、第2実施形態の図15のS202と同様の処理を実行する。
S407において、スコア算出部62は、複数の第2キーワード音声のそれぞれについて、第1キーワードとの類似度を表す第2キーワードスコア(Sij(k))を算出する。そして、スコア算出部62は、複数のキーワード音声に基づき算出した複数の第2キーワードスコア(Sij(k))を、処理対象の第2キーワードについてのスコア集合である誤検出スコア集合として記憶する。
例えば、スコア算出部62は、入力信号にK個の第2キーワード音声が含まれている場合、K個のキーワード音声のそれぞれのフレーム番号をk={1,2,…,K}に割り当てる。スコア算出部62は、j番目の第2キーワードについてK個の第2キーワードスコア(Sij(k))を算出する。そして、スコア算出部62は、算出したK個の第2キーワードスコア(Sij(k))を含むスコア集合を、j番目の第2キーワードについての誤検出スコア集合として記憶する。
続いて、S408において、分布算出部64は、処理対象の第2キーワードについて、誤検出スコア集合の分布を表すパラメータを算出する。例えば、分布算出部64は、誤検出スコア集合が正規分布に近似するとみなして、誤検出スコア集合の分布を表すパラメータとして、誤検出スコア集合の分布の平均値および標準偏差を算出する。
例えば、分布算出部64は、式(10)に示す演算をして、j番目の第2キーワードについての誤検出スコア集合の平均値(muij)を算出する。
また、例えば、分布算出部64は、式(11)に示す演算をして、j番目の第2キーワードについての誤検出スコア集合の標準偏差(σuij)を算出する。
続いて、S409において、閾値生成部66は、処理対象の第2キーワードについて、誤検出スコア集合の分布を表すパラメータに基づき誤検出閾値を生成する。例えば、閾値生成部66は、誤検出スコア集合の分布を正規分布とみなして、平均値および標準偏差に基づき、誤検出スコア集合に含まれる第2キーワードスコアの方が予め定められた確率で小さくなる値を、誤検出閾値として生成する。例えば、閾値生成部66は、誤検出スコア集合に含まれる大多数の第2キーワードスコアの方が小さくなる値を、誤検出閾値として生成する。
例えば、閾値生成部66は、式(12)に示す演算をして、処理対象の第2キーワードの誤検出閾値(θuij)を算出する。
閾値生成装置24は、1または複数の第2キーワードのそれぞれについて、S406からS409までの処理を終了した場合、S405とS410との間のループ処理を抜ける。
続いて、S411において、閾値生成部66は、1または複数の第2キーワードのそれぞれについて算出した誤検出閾値(θuij)のうちの最大となる最大誤検出閾値(maxθuij)を選択する。
続いて、S412において、閾値生成部66は、S404で算出した正検出閾値(θui)と、S412で選択した最大誤検出閾値(maxθuij)との間の値を、第1キーワードについての閾値(θi)として生成する。例えば、閾値生成部66は、式(13)の演算をして、正検出閾値と最大誤検出閾値との中間値を閾値(θi)として算出する。
続いて、S413において、設定部68は、生成した閾値をキーワード検出装置22に設定する。
閾値生成装置24は、S413の処理を終了した場合、第1キーワードの閾値の生成処理を終了する。
このような閾値生成装置24は、正検出閾値が最大の誤検出閾値より大きいことを条件として、第1キーワードの未検出確率を予め定められた確率より小さくすることができるとともに、第1キーワードと最も誤検出しやすい第2キーワードの誤検出確率を予め定められた確率より小さくすることができる。例えば、閾値生成装置24は、第1キーワード(例えば“だんぼー”)を1000回発話した場合の未検出頻度を1.4回程度以下に抑えられるとともに、第1キーワードに最も類似する第2キーワード(例えば“れーぼー”)を1000回発話した場合の誤検出頻度を1.4回程度以下に抑えられる。
また、閾値生成装置24は、正検出閾値が最大の誤検出閾値以下である場合、対象の第2キーワードを、第1キーワードと誤検出される可能性が高いことをユーザに出力してもよい。これにより、閾値生成装置24は、対象の第2キーワードの変更を促すことができる。
以上のような、第4実施形態に係る閾値生成装置24によれば、互いに誤検出が生じないような複数のキーワードをキーワード検出装置22に設定させることができる。
なお、第4実施形態に係る閾値生成装置24は、ユーザが発話したキーワード音声を収音して入力信号を準備する。しかし、閾値生成装置24は、音節ラベルが付与された任意の内容の発話データを大量に準備して、キーワードを構成する状態毎のスコアを生成し、状態毎のスコアの分布を算出し、状態毎のスコア分布からキーワードスコア分布を生成してもよい。このような閾値生成装置24は、キーワード音声の収音が不要であるため、キーワード音声を収集するコストが削減され、キーワードが変更された場合でも短時間に閾値を生成することができる。
(第5実施形態)
つぎに、第5実施形態に係る音声操作システム10について説明する。第5実施形態に係る音声操作システム10は、第1実施形態に係る音声操作システム10と略同一の機能および構成を有するので、以下、略同一の構成要素に同一の符号を付けて、相違点を除き詳細な説明を省略する。
第5実施形態に係る音声操作システム10は、閾値生成装置24を備えない構成であってもよい。音声操作システム10が閾値生成装置24を備えない場合、キーワード検出装置22は、複数のキーワードのそれぞれについて、予め閾値の初期値が設定されている。そして、第4実施形態に係るキーワード検出装置22は、音声信号にキーワードが含まれているか否かを検出する検出動作中において、複数のキーワードのそれぞれについて、閾値を更新する。
図20は、第5実施形態に係るキーワード検出部34の構成を示す図である。
第5実施形態に係るキーワード検出部34は、図9に示した第1実施形態に係るキーワード検出部34と比較して、キーワードスコア取得部82と、分布算出部64と、閾値生成部66と、更新部84とをさらに備える。
キーワードスコア取得部82は、音声信号にキーワードが含まれているか否かを検出する検出動作中において、複数のキーワードのそれぞれについて、音声信号に雑音が含まれているフレームにおけるキーワードスコアを、キーワードスコア算出部46から取得する。すなわち、キーワードスコア取得部82は、検出動作中において、複数のキーワードのそれぞれについて、キーワード音声が発話されていない期間における各フレームのキーワードスコアを、キーワードスコア算出部46から取得する。
例えば、キーワードスコア取得部82は、判定部50における判定結果に基づき、キーワードが検出されたフレームにおける前後の所定個のフレームにおいて、キーワード検出部34から出力されたキーワードを取得しないようにしてもよい。これにより、キーワードスコア取得部82は、キーワード音声が発話されたことの影響を受けずに、雑音に基づくキーワードスコアを取得することができる。
分布算出部64は、複数のキーワードのそれぞれについて、キーワードスコア取得部82により取得されたキーワードスコアを順次に受け取る。そして、分布算出部64は、複数のキーワードのそれぞれについて、音声信号に雑音が含まれているフレームにおける複数のキーワードスコアを含む雑音スコア集合の分布を表すパラメータを生成する。
第5実施形態において、分布算出部64は、複数のキーワードのそれぞれについて、キーワードスコアを受け取る毎に、雑音スコア集合の平均値および標準偏差を更新する。例えば、分布算出部64は、式(14)に示す演算をして、t番目のフレームにおける、i番目のキーワードについての雑音スコア集合の平均値(mni(t))を算出する。
なお、mni(t-1)は、t番目のフレームの直前におけるi番目のキーワードについての雑音スコア集合の平均値を表す。Si(t)は、t番目のフレームにおいて取得されたi番目のキーワードについてのキーワードスコアである。
また、αは、0より大きく1より小さい実数である。例えば、αは、0.9等の実数であってよい。また、mni(t-1)は、検出動作の開始前において初期値が設定される。mni(t-1)の初期値は、0であってもよいし、他の所定値であってもよい。
また、例えば、分布算出部64は、式(15)および式(16)に示す演算をして、t番目のフレームにおける、i番目のキーワードについての雑音スコア集合の標準偏差(σni(t))を算出する。
Vni(t)は、t番目のフレームにおけるi番目のキーワードについての雑音スコア集合の分散を表す。Vni(t-1)は、t番目のフレームの直前におけるi番目のキーワードについての雑音スコア集合の分散を表す。Vni(t-1)の初期値は、0であってもよいし、他の所定値であってもよい。
分布算出部64は、式(14)~式(16)を用いた演算をすることにより、指数移動平均処理により平均値および標準偏差を算出することができる。
閾値生成部66は、複数のキーワードのそれぞれについて、雑音スコア集合の分布を表すパラメータに基づき、新たな閾値を生成する。例えば、閾値生成部66は、雑音スコア集合の分布を正規分布とみなして、複数のキーワードのそれぞれについて、平均値および標準偏差に基づき、雑音スコア集合に含まれるキーワードスコアの方が予め定められた確率で小さくなる値を、閾値として生成する。
例えば、閾値生成部66は、式(17)に示す演算をして、t番目のフレームにおけるi番目のキーワードの閾値(θni(t))を算出する。
更新部84は、予め定められた期間毎に、複数のキーワードのそれぞれについて、キーワードスコアとの比較に用いる閾値を、閾値生成部66が生成した新たな閾値に更新する。第5実施形態においては、更新部84は、閾値記憶部48に記憶された閾値を、閾値生成部66が生成した新たな閾値に書き換える。予め定められた期間は、フレームであってもよいし、フレームよりも長い期間であってもよい。
このような第5実施形態に係るキーワード検出装置22は、音声信号にキーワードが含まれているか否かを検出する検出動作中における音声信号に含まれる雑音に基づいて、閾値を随時に更新する。これにより、第5実施形態に係るキーワード検出装置22によれば、実際の雑音環境に即した適切な閾値を設定することができる。
なお、閾値生成部66は、式(17)において、標準偏差の5倍を平均値に加えた値を閾値として算出する。しかし、閾値生成部66は、5倍以外の倍数の標準偏差を平均値に加えて閾値を算出してもよい。閾値生成部66の設計者は、キーワードの誤検出の制約条件等に基づき、式(17)に適切に倍数を設定すればよい。また、分布算出部64は、指数移動平均処理により平均値および標準偏差を算出したが、所定のフレーム数毎のブロックに区切り、各ブロックにおける雑音スコア集合に基づき平均値および標準偏差を算出してもよい。また、分布算出部64は、所定のフレーム数の窓枠での移動平均処理により、平均値および標準偏差を算出してもよい。また、閾値生成部66は、閾値が極端に大きくなったり小さくなったりしないように、上限値および下限値を設定してクリッピングしてもよい。
(第6実施形態)
つぎに、第6実施形態に係る音声操作システム10について説明する。第6実施形態に係る音声操作システム10は、第1実施形態の変形例に係る音声操作システム10、および、第5実施形態に係る音声操作システム10と略同一の機能および構成を有するので、以下、略同一の構成要素に同一の符号を付けて、相違点を除き詳細な説明を省略する。
図21は、第6実施形態に係るキーワード検出部34の構成を示す図である。
第6実施形態に係るキーワード検出部34は、図14に示した第1実施形態の変形例に係るキーワード検出部34と比較して、キーワードスコア取得部82と、分布算出部64と、閾値生成部66と、更新部84とをさらに備える。
キーワードスコア取得部82および分布算出部64は、第5実施形態の構成と同一である。
閾値生成部66は、複数のキーワードのそれぞれについて、雑音スコア集合の分布を表すパラメータに基づき、閾値の修正値を生成する。例えば、閾値生成部66は、式(18)に示す演算をして、t番目のフレームにおけるi番目のキーワードの閾値の修正値(δni(t))を算出する。
更新部84は、閾値記憶部48に記憶された直前の閾値を読み出して、読み出した閾値を修正値に基づき更新して、閾値記憶部48に書き戻す。例えば、更新部84は、式(19)に示す演算をして、t番目のフレームにおけるi番目のキーワードの閾値(θni(t))を更新する。
なお、θni(t-1)は、t番目のフレームの直前におけるi番目のキーワードの閾値を表す。
このような第6実施形態に係るキーワード検出装置22は、音声信号にキーワードが含まれているか否かを検出する検出動作中における音声信号に含まれる雑音に基づいて、閾値を随時に更新する。これにより、第6実施形態に係るキーワード検出装置22によれば、実際の雑音環境に即した適切な閾値を設定することができる。
なお、閾値生成部66は、式(18)において、標準偏差の5倍を平均値に加えた値を修正値として算出する。しかし、閾値生成部66は、5倍以外の倍数の標準偏差を平均値に加えた値を修正値として算出してもよい。閾値生成部66の設計者は、キーワードの誤検出の制約条件等に基づき、式(18)に適切に倍数を設定すればよい。
図22は、各実施形態に係る閾値生成装置24のハードウェア構成の一例を示す図である。閾値生成装置24は、例えば図22に示すようなハードウェア構成の情報処理装置であるコンピュータにより実現される。閾値生成装置24は、CPU(Central Processing Unit)301と、RAM(Random Access Memory)302と、ROM(Read Only Memory)303と、操作入力装置304と、表示装置305と、記憶装置306と、通信装置307とを備える。そして、これらの各部は、バスにより接続される。
CPU301は、プログラムに従って演算処理および制御処理等を実行するプロセッサである。CPU301は、RAM302の所定領域を作業領域として、ROM303および記憶装置306等に記憶されたプログラムとの協働により各種処理を実行する。
RAM302は、SDRAM(Synchronous Dynamic Random Access Memory)等のメモリである。RAM302は、CPU301の作業領域として機能する。ROM303は、プログラムおよび各種情報を書き換え不可能に記憶するメモリである。
操作入力装置304は、マウスおよびキーボード等の入力デバイスである。操作入力装置304は、ユーザから操作入力された情報を指示信号として受け付け、指示信号をCPU301に出力する。
表示装置305は、LCD(Liquid Crystal Display)等の表示デバイスである。表示装置305は、CPU301からの表示信号に基づいて、各種情報を表示する。
記憶装置306は、フラッシュメモリ等の半導体による記憶媒体、または、磁気的若しくは光学的に記録可能な記憶媒体等にデータを書き込みおよび読み出しをする装置である。記憶装置306は、CPU301からの制御に応じて、記憶媒体にデータの書き込みおよび読み出しをする。通信装置307は、CPU301からの制御に応じて外部の機器とネットワークを介して通信する。
コンピュータで実行されるプログラムは、取得モジュールと、スコア算出モジュールと、分布算出モジュールと、閾値生成モジュールと、設定モジュールとを含むモジュール構成となっている。
このプログラムは、CPU301(プロセッサ)によりRAM302上に展開して実行されることにより、コンピュータを、取得部60、スコア算出部62、分布算出部64、閾値生成部66および設定部68として機能させる。なお、取得部60、スコア算出部62、分布算出部64、閾値生成部66および設定部68の一部または全部がハードウェア回路で実現されてもよい。
また、コンピュータで実行されるプログラムは、コンピュータにインストール可能な形式または実行可能な形式のファイルで、CD-ROM、フレキシブルディスク、CD-R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、このプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、このプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、閾値生成装置24で実行されるプログラムを、ROM303等に予め組み込んで提供するように構成してもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。