以下に、本願の開示する学習装置、学習方法および学習プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
本実施例1に係る学習装置の処理を行う前に、参考技術について説明する。この参考技術は、従来技術ではない。図1は、参考技術の一例を説明するための図である。図1に示すように、参考技術は、音声認識部5Aと、NN(Neural Network)計算部6Aとを有する。
音声認識部5Aは、音声データが入力されると、音響モデル5Bを基にして、音声データに含まれる文字列を抽出し、抽出した文字列が、キーワードリスト5Cに定義されたキーワードに対応するか否かを認識する。音声認識部5Aは、認識結果を、NN計算部6Aに出力する。
NN計算部6Aは、学習済みのNNモデル6Cに基づくNN(図示略)に、音声認識部5Aの認識結果を入力することで、音声データに特定の会話状況が含まれているか否かの出力値を算出する。ここで、特定の会話状況を適切に検出するためには、特定の会話状況に関するキーワードを網羅的にキーワードリスト5Cに設定し、かかるキーワードリスト5Cを用いて、NNモデル6Cを学習することになる。しかし、特定の会話状況を検出できるようにするために、どれだけの数のキーワードを網羅すればよいかを、事前に把握することは難しい。また、異なるコールセンターに導入する際も、その都度、キーワードリスト5Cをコールセンター固有のものに調整を行うことが望ましく、特定の会話状況を精度よく検出するためには、このキーワード設定および調整に多大な工数を要する。
続いて、本実施例1に係る学習装置および判定装置の処理の一例について説明する。図2は、本実施例1に係る学習装置および判定装置の処理の一例を説明するための図である。図2に示すように、学習装置100は、学習用音声データベース110aと、生成部120と、第1計算部130と、第3計算部140と、第2計算部150と、学習部160とを有する。第1計算部130、第3計算部140、第2計算部150、学習部160は、学習処理部に対応する。
学習用音声データベース110aは、複数の学習用の音声データを格納し、各学習用の音声データは、正解情報110bにそれぞれ対応付けられる。正解情報110bは、音声データごとに付与された、特定の会話状況が含まれるか否かを示す情報である。本実施例1では一例として、特定の会話状況を、「異常な会話状況」とする。異常な会話状況とは、顧客が不満を感じたり、怒り出したり、脅迫したりするなど、「通常でない状況」を含むものである。
生成部120は、学習用音声データベース110aから学習用の音声データを取得する。以下の学習装置100の説明において、学習用音声データベースから取得された学習用の音声データを、単に「音声データ」と表記する。生成部120は、音声データに対して、音素認識を行い、最尤音素系列の情報を生成する。たとえば、最尤音素系列は、確率的にもっともらしい音素を時系列に並べたものである。生成部120は、各音素をOne Hotベクトル化し、各音素のOne Hotベクトルを、第1計算部130に出力する。
第1計算部130は、再帰パスを持つ第1ネットワークに、音素のOne Hotベクトルを順に入力し、第1ネットワークのパラメータに基づく計算を行うことで、内部ベクトルを算出する処理部である。たとえば、第1ネットワークは、LSTM(Long Short Term Memory)に対応する。第1計算部130は、音声データに含まれる全音素のOne Hotベクトルを第1ネットワークに入力し、入力して得られる各内部ベクトルを、第3計算部140に出力する。
第3計算部140は、第1計算部130から出力される複数の内部ベクトルを平均化する処理部である。第3計算部140は、平均化した内部ベクトルを、第2計算部150に出力する。以下の説明では、平均化した内部ベクトルを「平均ベクトル」を表記する。
第2計算部150は、再帰パスを持たない第2ネットワークに、平均ベクトルを入力し、第2ネットワークのパラメータに基づく計算を行うことで、出力値(ニューロン値)を算出する処理部である。第2計算部150は、出力値を、学習部160に出力する。
学習部160は、音声データを第1計算部130に入力した際に、第2計算部150から出力される出力値が、音声データに対応する正解情報110bに近づくように、第1計算部130のパラメータ、第2計算部150のパラメータを学習(誤差逆伝播法による学習)する。
学習部160は、学習停止条件を満たすまで、誤差逆伝播学習を繰り返し実行し、LSTMモデル110c、DNN(Deep Neural Network)モデル110dを生成する。LSTMモデル110cは、学習済みの第1ネットワークのパラメータに対応する情報である。DNNモデル110dは、学習済みの第2ネットワークのパラメータに対応する情報である。学習装置100は、LSTMモデル110cの情報およびDNNモデル110dの情報を、判定装置200に通知する。なお、学習部160は、ネットワークを介して、LSTMモデル110cの情報およびDNNモデル110dの情報を、判定装置200に通知してもよいし、学習装置100と、判定装置200とを直接接続した上で、LSTMモデル110cの情報およびDNNモデル110dの情報を、判定装置200に通知してもよい。
判定装置200は、生成部220と、第1計算部230と、第3計算部240と、第2計算部250と、判定部260とを有する。
生成部220は、異常な会話状況であるか否かの検出対象となる音声データの入力を受け付ける。以下の判定装置200の説明において、異常な会話状況であるか否かの検出対象となる音声データを、単に、音声データと表記する。生成部220は、音声データに対して、音素認識を行い、最尤音素系列の情報を生成する。生成部220は、各音素をOne Hotベクトル化し、各音素のOne Hotベクトルを、第1計算部230に出力する。
第1計算部230は、再帰パスを持つ第1ネットワークに、各音素のOne Hotベクトルを順に入力し、第1ネットワークのパラメータに基づく計算を行うことで、内部ベクトルを算出する処理部である。第1計算部230は、第1ネットワークに設定するパラメータとして、LSTMモデル110cのパラメータを用いる。第1計算部230は、音声データに含まれる全音素のOne Hotベクトルを第1ネットワークに入力し、入力して得られる各内部ベクトルを、第3計算部240に出力する。
第3計算部240は、第1計算部130から出力される複数の内部ベクトルを平均化する処理部である。第3計算部140は、平均化した内部ベクトル(平均ベクトル)を、第2計算部250に出力する。
第2計算部250は、再帰パスを持たない第2ネットワークに、平均ベクトルを入力し、第2ネットワークのパラメータに基づく計算を行うことで、出力値(ニューロン値)を算出する処理部である。第2計算部250は、第2ネットワークに設定するパラメータとして、DNNモデル110dのパラメータを用いる。第2計算部250は、出力値を、判定部260に出力する。
判定部260は、第2計算部250から出力される出力値と、閾値とを比較して、音声データに、異常な会話状況が含まれているか否かを判定する処理部である。たとえば、判定部260は、出力値が閾値以上である場合に、音声データに異常な会話状況が含まれていると判定する。
上記のように、本実施例1に係る学習装置100は、学習用の音声データから抽出した音素系列と、正解情報との組を用いて、LSTMモデル110cおよびDNNモデル110dを機械学習する。このため、特定の会話状況を検出するためのキーワードを設定するための試行錯誤、熟練の知識、ノウハウを用いることなく、LSTMモデル110cおよびDNNモデル110dを機械学習することができる。また、判定装置200が、学習済みのLSTMモデル110cおよびDNNモデル110dを用いて、音声データに対する処理を行うことで、特定の会話状況が音声データに含まれているか否かを適切に判定することができる。
たとえば、実際のコールセンターで収録された顧客とオペレータとの会話音声(音声データ)を用いて、図1で説明した参考技術と、図2で説明した本願発明とを評価した。その結果、参考技術と比較して、本願発明は、事前のキーワード設定を不要にするだけではなく、特定の会話状況の検出率、誤検出率とも約2倍程度改善された。機械学習により検出に有効な音素系列を網羅的にモデル化できたことにより、キーワード選択作業を不要にするだけではなく、最適な検出モデルを得ることができる。
次に、本実施例1に係るシステムの一例について説明する。図3は、本実施例1に係るシステムの一例を示す図である。図3に示すように、このシステムは、顧客端末10と、オペレータ端末15と、通話録音装置30と、管理者端末40と、学習装置100と、判定装置200とを有する。
顧客端末10と、オペレータ端末15とは、IP(Internet Protocol)網等のネットワーク1を介して相互に接続される。また、オペレータ端末15、通話録音装置30、管理者端末40、学習装置100、判定装置200も所定のネットワークにより、相互に接続される。
顧客端末10は、顧客がオペレータと会話(通話)するために利用する端末装置である。オペレータ端末15は、オペレータが顧客と会話するために利用する端末装置である。
通話録音装置30は、顧客端末10と、オペレータ端末15との間で送受信される会話の音声を録音する装置である。学習時において、通話録音装置30が録音した音声データは、学習装置100に通知され、学習用の音声データとして用いられる。異常会話の検出時において、通話録音装置30が録音した音声データは、判定装置200に通知され、音声データに異常な会話状況が含まれるか否かが判定される。
管理者端末40は、オペレータ端末15を用いて、顧客と会話するオペレータを管理する管理者が利用する端末装置である。たとえば、判定装置200が、顧客とオペレータとの会話に、異常な会話状況が含まれると判定した場合に、判定装置により、異常な会話状況を検出した旨の情報が、管理者端末40に通知される。
学習装置100は、学習用の音声データと正解情報とを用いて、LSTMモデル110c、DNNモデル110dを学習する装置である。学習装置100は、学習したLSTMモデル110c、DNNモデル110dの情報を、判定装置200に通知する。
判定装置200は、学習装置100から通知されるLSTMモデル110c、DNNモデル110dを用いて、顧客端末10と、オペレータ端末15との会話に、異常な会話状況が含まれるか否かを判定する装置である。判定装置200は、顧客とオペレータとの会話に、異常な会話状況が含まれると判定した場合、異常な会話状況を検出した旨の情報を、管理者端末40に通知する。
次に、図3に示した学習装置100の構成の一例について説明する。図4は、本実施例1に係る学習装置の構成を示す機能ブロック図である。図4に示すように、この学習装置100は、通信部101、入力部102、表示部103、記憶部104、制御部105を有する。
通信部101は、通話録音装置30、判定装置200とデータ通信を実行する処理部である。後述する制御部105は、通信部101を介して、通話録音装置30、判定装置200とデータをやり取りする。通信部101は、通信装置の一例である。
入力部102は、学習装置100に各種の情報を入力するための入力装置である。入力部102は、キーボードやマウス、タッチパネル等に対応する。
表示部103は、制御部105から出力される情報を表示する装置である。表示部103は、液晶ディスプレイやタッチパネル等に対応する。
記憶部104は、学習用音声データベース110a、正解情報110b、LSTMモデル110c、DNNモデル110dを有する。記憶部104は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
学習用音声データベース110aは、学習用の複数の音声データを格納するデータベースである。学習用音声データベース110aに格納される各音声データは、顧客とオペレータとの会話の音声データである。
正解情報110bは、学習用音声データベース110aに格納された各音声データに対して付与された、異常な会話状況が含まれるか否かを示す情報である。
LSTMモデル110cは、第1ネットワーク(LSTM)のパラメータに対応する情報である。DNNモデル110dは、第2ネットワーク(DNN)のパラメータに対応する情報である。LSTMモデル110c、DNNモデル110dは、学習部160により、機械学習される。
制御部105は、取得部105a、通知部105b、生成部120、第1計算部130、第3計算部140、第2計算部150、学習部160を有する。制御部105は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、制御部105は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
取得部105aは、通話録音装置30から、学習用音声データベース110aの情報を取得する処理部である。取得部105aは、学習用音声データベース110aの情報を、記憶部104に格納する。また、取得部105aは、正解情報110bを取得した場合には、取得した正解情報110bを、記憶部104に格納する。正解情報110bは、学習用音声データベース110aの各音声データに予め対応付けられていてもよい。
通知部105bは、学習済みのLSTMモデル110cおよび学習済みのDNNモデル110dを、判定装置200に通知する処理部である。
生成部120は、学習用音声データベース110aから学習用の音声データを取得し、音声データを基にして、最尤音素系列の情報を生成する処理部である。図5は、本実施例1に係る生成部を説明するための図である。図5に示すように、この生成部120は、音響処理部121と、音響モデル122と、照合部123と、音素ベクトル化部124とを有する。
音響処理部121は、音声データから音声認識に用いる情報を抽出する処理部である。音声データから抽出される情報は、特徴量と呼ばれる。音響処理部121は、音声データに、32ms程度のフレームと呼ばれる短区間を設定し、10ms程度シフトさせながら特徴量を抽出する。たとえば、音響処理部121は、MFCC(Mel-Frequency Cepstrum Coefficients)を基にして、音声データから特徴量を抽出する。音響処理部121は、特徴量を、照合部123に出力する。
音響モデル122は、音声データから抽出された特徴量の各音素らしさを求めるためのモデルである。この音響モデル122は、音声波形に音素の正解ラベルが付けられた大量の学習用音声データを基に予め学習される。
照合部123は、音響モデル122に特徴量を入力し、音響モデル122から出力される各音素らしさを基にして、特徴量に対応する音素を照合する処理を、音響処理部121から特徴量を受け付ける度に、実行する処理部である。照合部123は、各特徴量に対応する音素を時系列に並べた最尤音素系列の情報を、音素ベクトル化部124に出力する。
音素ベクトル化部124は、最尤音素系列に含まれる各音素をベクトルに変換する処理部である。音素ベクトル化部は、最尤音素系列の各音素に対応する各ベクトルを、第1計算部130に出力する。たとえば、音素ベクトル化部124は、各音素を、40次元のOne Hotベクトルで表す。入力された音素のOne Hotベクトルは、入力された音素の次元に「1」が設定され、他の次元に「0」が設定される。
図6は、本実施例1に係る音素ベクトル化部の処理を説明するための図である。たとえば、音素ベクトル化部124は、音素「/i/」、「/N/」、・・・、「/e/」が順に入力された場合には、One Hotベクトルv1、v2、・・・、vmを生成する。One Hotベクトルv1は、音素「/i/」に対応する次元に「1」が設定され、他の次元には「0」が設定される。One Hotベクトルv2は、音素「/N/」に対応する次元に「1」が設定され、他の次元には「0」が設定される。One Hotベクトルvmは、音素「/e/」に対応する次元に「1」が設定され、他の次元には「0」が設定される。
図4の説明に戻る。第1計算部130は、再帰パスをもつ第1ネットワークに、各音素の各音素のOne Hotベクトルを順に入力し、第1ネットワークのパラメータに基づく計算を行うことで、内部ベクトルを算出する処理部である。
第1計算部130は、第1ネットワークとしてLSTMを用いる。図7は、本実施例1に係るLSTMの一例を示す図である。LSTM135は、1個につき、重み行列とバイアスとの組を3組もつ(1層のフォードフォワード型ニューラルネットワークが3つ接続されたものに対応する)。かかる重み行列の値と、バイアスの値が、LSTM135の学習対象のパラメータとなる。
LSTM135は、σ1,σ2,σ3と、スイッチ2a,2b,2cと、加算部2dと、tanh1と、tanh2とを有する。σ1~σ3は、入力されたベクトルと、重み行列とを乗算することで、アフィン変換を行い、アフィン変換したベクトルを出力する処理部である。スイッチ2a~2cは、入力されたベクトルの各次元の値に応じて、ゲートを通過するベクトルの次元毎にON/OFFを制御する処理部である。たとえば、スイッチ2a~2cは、シグモイド関数等を基にして、ON/OFFを制御する。加算部2dは、2方向から入力されたベクトルを次元毎に加算した値を出力する処理部である。tanh1、tanh2は、入力されたベクトルに対して、tanh関数に基づく計算を行い、計算結果を出力する処理部である。
図7において、「Xt」は、時刻tの音素のOne Hotベクトルを示す。便宜上、時刻t-1において、音素のOne Hotベクトル「Xt-1」を入力した時点のLSTM135をLSTM135t-1と表記する。時刻tにおいて、音素のOne Hotベクトル「Xt」を入力した時点のLSTM135をLSTM135tと表記する。時刻t+1において、音素のOne Hotベクトル「Xt+1」を入力した時点のLSTM135をLSTM135t+1と表記する。
一例として、LSTM135tを用いて説明を行う。「Xt」が入力されると、LSTM135t-1から入力されたht-1と、Xtとを加算したベクトルが、σ1,σ2,σ3と、tanh1に入力される。ht-1は、時刻t-1において、LSTM135に算出される内部ベクトルである。
スイッチ2aは、σ1から出力されるベクトルを基にして、St-1が通過するゲートのON/OFFを制御する。スイッチ2bは、σ2から出力されるベクトルを基にして、tanh1から出力されるベクトルが通過するゲートのON/OFFを制御する。スイッチ2cは、σ3から出力されるベクトルを基にして、加算部2dから出力されるベクトルStが通過するゲートのON/OFFを制御する。スイッチ2cから出力されるベクトルが、時刻tにおける内部ベクトルhtとなる。内部ベクトルhtは、LSTM135t+1に入力される。
加算部2dは、スイッチ2aから出力されるベクトルと、スイッチ2bから出力されるベクトルとを加算したベクトルStを算出する処理部である。ベクトルStは、LSTM135tに入力されると共に、tanh2に入力される。
第1計算部130は、図7に説明したLSTM135に、最尤音素系列に含まれる全音素のOne Hotベクトルをそれぞれ順に入力することで、複数の内部ベクトルhを算出する。第1計算部130は、複数の内部ベクトルhを、第3計算部140に出力する。
第3計算部140は、第1計算部130から出力される複数の内部ベクトルhを平均化する処理部である。第3計算部140は、平均化した内部ベクトル(平均ベクトル)を、第2計算部150に出力する。
第2計算部150は、再帰パスを持たない第2ネットワークに、平均ベクトルを入力し、第2ネットワークのパラメータに基づく計算を行うことで、出力値(ニューロン値)を算出する処理部である。
たとえば、第2ネットワークは、フィードフォワード型のニューラルネットワークである。図8は、本実施例1に係るニューラルネットワークの一例を説明するための図である。図8に示すように、このニューラルネットワーク155は、入力層20a、隠れ層20b、出力層20cを持つ。入力層20a、隠れ層20b、出力層20cは、複数のノードがエッジで結ばれる構造となっている。隠れ層20b、出力層20cは、活性化関数と呼ばれる関数とバイアス値とを持ち、エッジは、重みを持つ。かかるバイアス値、重みが、第2ネットワークの学習対象となるパラメータとなる。
入力層20aに含まれる各ノードに、平均ベクトルを入力すると、隠れ層20bを通って、出力層20cの各ノードから、会話が異常な会話状況である確率「Ot」と、会話が通常の会話状況である確率「On」とが出力される。たとえば、出力層20cは、softmaxにより確率化され、「Ot」の出力値と「On」の出力値との和が「1.0」になる。
図4の説明に戻る。学習部160は、音声データから生成された各音素のOne Hotベクトルを第1計算部130に入力した際に、第3計算部140を介して、第2計算部150から出力される出力値が、音声データに対応する正解情報110bに近づくように、第1計算部130のパラメータ、第2計算部150のパラメータを学習する処理部である。
たとえば、学習部160は、正解情報「異常な会話状態」に対応する音声データから生成される各音素のOne Hotベクトルを第1計算部130に入力する場合、確率「Ot」が「1」に近づき、確率「On」が「0」に近づくように、パラメータを学習する。学習部160は、正解情報「正常な会話状態」に対応する音声データから生成される各音素のOne Hotベクトルを第1計算部130に入力する場合、確率「Ot」が「0」に近づき、確率「On」が「1」に近づくように、パラメータを学習する。
学習部160は、Otから出力される値と正解の値との差分、および、Onから出力される値と正解の値との差分を含む損失関数として、たとえば、Cross Entropyを用いる。学習部160は、損失関数の誤差を逆伝播することで、損失関数の値が最小値となるように、パラメータの学習を繰り返し実行する。学習部160は、学習停止条件を設定し、学習停止条件を満たす場合に、学習を終了する。たとえば、学習停止条件は、損失関数の値が閾値未満となる等の条件である。
学習部160は、LSTM135のパラメータの学習結果の情報を、LSTMモデル110cとして、記憶部104に格納する。学習部160は、ニューラルネットワーク155のパラメータの学習結果の情報を、DNNモデル110dとして、記憶部104に格納する。
次に、図3に示した判定装置200の構成の一例について説明する。図9は、本実施例1に係る判定装置の構成を示す機能ブロック図である。図9に示すように、判定装置200は、通信部201、入力部202、表示部203、記憶部204、制御部205を有する。図示を省略するが、判定装置200は、音声データを取得するためのマイクに接続されていてもよい。
通信部201は、通話録音装置30、学習装置100とデータ通信を実行する処理部である。後述する制御部205は、通信部201を介して、通話録音装置30、学習装置100とデータをやり取りする。通信部201は、通信装置の一例である。
入力部202は、判定装置200に各種の情報を入力するための入力装置である。入力部202は、キーボードやマウス、タッチパネル等に対応する。
表示部203は、制御部205から出力される情報を表示する装置である。表示部203は、液晶ディスプレイやタッチパネル等に対応する。
記憶部204は、音声データ204a、LSTMモデル110c、DNNモデル110dを有する。記憶部204は、RAM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。
音声データ204aは、通話録音装置30によって録音された顧客とオペレータとの会話の音声データであって、異常な会話状況の検出対象となる音声データである。
LSTMモデル110cは、学習装置100によって学習された、第1ネットワーク(LSTM135)のパラメータに対応する情報である。
DNNモデル110dは、学習装置100によって学習された、第2ネットワーク(ニューラルネットワーク155)のパラメータに対応する情報である。
制御部205は、取得部205a、通知部205b、生成部220、第1計算部230、第3計算部240、第2計算部250、判定部260を有する。制御部205は、CPUやMPUなどによって実現できる。また、制御部205は、ASICやFPGAなどのハードワイヤードロジックによっても実現できる。
取得部205aは、通話録音装置30から、音声データ204aを取得する処理部である。取得部205aは、音声データ204aを記憶部204に格納する。また、取得部205aは、学習装置100から、学習済みのLSTMモデル110cの情報、および、DNNモデル110dの情報を取得する。取得部205aは、LSTMモデル110cの情報、および、DNNモデル110dの情報を、記憶部204に格納する。
通知部205bは、後述する判定部260から判定結果を取得する。通知部205bは、判定部260によって、音声データ204aに異常な会話状況が含まれていると判定された場合に、異常な会話が含まれる旨の情報を、管理者端末40に通知する。
生成部220は、音声データ204aを取得し、音声データ204aを基にして、最尤音素系列の情報を生成する処理部である。生成部220は、学習装置100の生成部120と同様にして、音声データ204aから最尤音素系列を生成し、各音素のOne Hotベクトルを生成する。生成部220は、各音素のOne Hotベクトルを、第1計算部230に出力する。
第1計算部230は、再帰パスをもつ第1ネットワークに、各音素の各音素のOne Hotベクトルを順に入力し、第1ネットワークのパラメータに基づく計算を行うことで、内部ベクトルを算出する処理部である。第1計算部230が用いる第1ネットワークは、図7で説明したLSTM135に対応するものである。第1計算部230は、LSTM135のパラメータに、LSTMモデル110cのパラメータを設定し、内部ベクトルを計算する。第1計算部230は、各音素のOne Hotベクトルから算出される内部ベクトルhを、第2計算部250に出力する。
第3計算部240は、第1計算部230から出力される複数の内部ベクトルhを平均化する処理部である。第3計算部240は、平均化した内部ベクトル(平均ベクトル)を、第2計算部250に出力する。
第2計算部250は、再帰パスを持たない第2ネットワークに、平均ベクトルを入力し、第2ネットワークのパラメータに基づく計算を行うことで、出力値(ニューロン値)を算出する処理部である。第2計算部250が用いる第2ネットワークは、図8で説明したニューラルネットワーク155に対応するものである。第2計算部250は、ニューラルネットワーク155のパラメータに、DNNモデル110dのパラメータを設定し、会話が異常な会話状況である確率「Ot」と、会話が通常の会話状況である確率「On」とを計算する。第2計算部250は、確率「Ot」の情報を、判定部260に出力する。
判定部260は、異常な会話状況である確率「Ot」を基にして、音声データ204aに異常な会話状況が含まれているか否かを判定する処理部である。たとえば、判定部260は、確率Otが、予め設定される閾値以上となる場合に、音声データ204aに異常な会話状況が含まれていると判定する。判定部260は、判定結果を、通知部205bに出力する。この例では、異常な会話状況である確率「Ot」を基にして判定しているが、「Ot」と正常な会話状況である確率「On」の確率との差または比率を判定に用いる値として用いてもよい。
次に、本実施例1に係る学習装置100の処理手順の一例について説明する。図10は、本実施例1に係る学習装置の処理手順を示すフローチャートである。図10に示すように、学習装置100の生成部120は、学習用の音声データを取得して、音素認識を行う(ステップS101)。生成部120は、音素をOne hotベクトル化する(ステップS102)。生成部120は、One hotベクトルを蓄積する(ステップS103)。
生成部120は、学習データ数(One hotベクトルの数)が、モデル学習可能な基準を超えていない場合には(ステップS104,No)、ステップS101に移行する。一方、生成部120は、学習データ数が、モデル学習可能な基準を超えた場合には(ステップS104,Yes)、ステップS105に移行する。
学習装置100の第1計算部130は、One hotベクトルをLSTM135に入力し、内部ベクトルを算出し、蓄積する(ステップS105)。第1計算部130は、全One hotベクトル系列を入力していない場合には(ステップS106,No)、ステップS105に移行する。一方、第1計算部130は、全One hotベクトル系列を入力した場合には(ステップS106,Yes)、ステップS107に移行する。学習装置100の第3計算部140は、内部ベクトルを平均化する(ステップS107)。
学習装置100の第2計算部150は、平均化した内部ベクトルをニューラルネットワーク155に入力し、出力値を算出する(ステップS108)。学習装置100の学習部160は、正解情報110bを用いてLSTM135およびニューラルネットワーク155のパラメータを誤差逆伝播法によって学習する(ステップS109)。
学習部160は、全学習データについて学習を行っていない場合には(ステップS110,No)、ステップS105に移行する。学習部160は、全学習データについて学習を行った場合には(ステップS110,Yes)、ステップS111に移行する。
学習部160は、学習停止条件を満たしていない場合には(ステップS111,No)、学習データの順番をランダムに入れ替えた後に、ステップS105に移行する。学習部160は、学習停止条件を満たした場合には(ステップS111,Yes)、ステップS112に移行する。学習部160は、学習済みのLSTMモデル110cおよびDNNモデル110dを、記憶部104に格納する(ステップS112)。
次に、本実施例1に係る判定装置200の処理手順の一例について説明する。図11は、本実施例1に係る判定装置の処理手順を示すフローチャートである。図11に示すように、判定装置200の生成部220は、音素認識を行い(ステップS201)、音素をOne hotベクトル化する(ステップS202)。生成部220は、One hotベクトルを蓄積する(ステップS203)。生成部220は、全音素をOne hotベクトル化していない場合には(ステップS204,No)、ステップS202に移行する。一方、生成部220は、全音素をOne hotベクトル化した場合には(ステップS204,Yes)、ステップS205に移行する。
判定装置200の第1計算部230は、One hotベクトルをLSTM135に入力し、内部ベクトルを算出し、蓄積する(ステップS205)。なお、第1計算部230は、学習済みのLSTMモデル110cに基づくLSTM135を用いて内部ベクトルを算出する。第1計算部230は、全One hotベクトル系列を入力していない場合には(ステップS206,No)、ステップS205に移行する。第1計算部230は、全One hotベクトル系列を入力した場合には(ステップS206,Yes)、ステップS207に移行する。
判定装置200の第3計算部240は、内部ベクトルを平均化する(ステップS207)。判定装置200の第2計算部250は、平均化した内部ベクトルをニューラルネットワーク155に入力し、出力値「Ot」を算出する(ステップS208)。なお、第2計算部250は、学習済みのDNNモデル110dに基づくニューラルネットワーク155を用いて、出力値を算出する。「Ot」は、会話が異常な会話状況である確率を示すものである。
判定装置200の判定部260は、出力値Otが閾値以上であるか否かを判定する(ステップS209)。判定部260は、出力値Otが閾値以上である場合には(ステップS209,Yes)、音声データ204aに異常な会話状況が含まれていると判定する(ステップS210)。判定装置200の通知部205bは、異常な会話状況が含まれている旨を管理者端末40に通知する(ステップS211)。
一方、判定部260は、出力値Otが閾値未満である場合には(ステップS209,No)、通常会話であると判定する(ステップS212)。
次に、本実施例1に係る学習装置100の効果について説明する。学習装置100は、学習用の音声データから抽出した音素系列と、正解情報との組を用いて、LSTMモデル110cおよびDNNモデル110dを機械学習する。このため、特定の会話状況を検出するためのキーワードを設定するための試行錯誤、熟練の知識、ノウハウを用いることなく、LSTMモデル110cおよびDNNモデル110dを機械学習することができる。また、判定装置200が、学習済みのLSTMモデル110cおよびDNNモデル110dを用いて、音声データに対する処理を行うことで、特定の会話状況が音声データに含まれているか否かを適切に判定することができる。
図12は、異常な会話状況が含まれる音声データの内部ベクトルの一例を示す図である。図12のグラフ3Aの縦軸は内部ベクトルの値を示し、横軸は内部ベクトルの次元を示す。線分3aは、異常な会話状況が含まれる第1通話の音声データの内部ベクトルを示す。線分3bは、異常な会話状況が含まれる第2通話の音声データの内部ベクトルを示す。異常な会話状況が含まれる。図12に示すように、異常状態の通話では、別通話であっても、内部ベクトルの形状は同じような形状となる。
図13は、正常な会話の音声データの内部ベクトルの一例を示す図である。図13のグラフ3Bの縦軸は内部ベクトルの値を示し、横軸は内部ベクトルの次元を示す。線分3cは、正常な第3通話の音声データの内部ベクトルを示す。線分3dは、正常な第4通話の音声データの内部ベクトルを示す。正常な通話では、別通話であっても、内部ベクトルの形状は、同じような形状となる。
図12に示した異常な会話状況の音声データのベクトル形状と、図13に示した通常の通話の音声データのベクトル形状とを比較すると、各ベクトル形状は大きく異なる。このため、内部ベクトルを用いることで、キーワードを設定することなく、異常な会話状況を含むか否かを判定でき、このためのLSTMモデル110c、DNNモデル110dを適切に学習することができる。
図14は、本実施例2に係る学習装置および判定装置の処理の一例について説明するための図である。図14に示すように、学習装置300は、学習用音声データベース310aと、生成部320と、抽出部325と、第1計算部330と、第3計算部340と、連結部345と、第2計算部350と、学習部360とを有する。
学習用音声データベース310aは、複数の学習用の音声データを格納し、各学習用の音声データは、正解情報310bにそれぞれ対応付けられる。正解情報310bは、音声データに、特定の会話状況が含まれるか否かを示す情報である。本実施例2では一例として、特定の会話状況を、「異常な会話状況」とする。
生成部320は、学習用音声データベース310aから学習用の音声データを取得する。以下の学習装置300の説明において、学習用音声データベースから取得された学習用の音声データを、単に「音声データ」と表記する。生成部320は、音声データに対して、音素認識を行い、最尤音素系列の情報を生成する。たとえば、最尤音素系列は、確率的にもっともらしい音素を時系列に並べたものである。生成部320は、各音素をOne Hotベクトル化し、各音素のOne Hotベクトルを、第1計算部330に出力する。
抽出部325は、音声データから非言語情報を抽出し、非言語情報のベクトルを生成する処理部である。たとえば、非言語情報は、ストレス評価値、会話時間等の情報である。非言語情報のベクトルの各次元には、ストレス評価値、会話時間等が設定される。抽出部325は、非言語情報のベクトルを、連結部345に出力する。
第1計算部330は、再帰パスを持つ第1ネットワークに、音素のOne Hotベクトルを順に入力し、第1ネットワークのパラメータに基づく計算を行うことで、内部ベクトルを算出する処理部である。たとえば、第1ネットワークは、LSTMに対応する。第1計算部330は、音声データに含まれる全音素のOne Hotベクトルを、第1ネットワークに入力して得られる各内部ベクトルを、第3計算部340に出力する。なお、第1計算部330が用いるLSTMには、実施例1の学習装置100において学習したLSTMモデル110c(パラメータ)を設定しておくものとする。
第3計算部340は、第1計算部330から出力される複数の内部ベクトルを平均化する処理部である。第3計算部340は、平均化した内部ベクトルを、連結部345に出力する。以下の説明では、平均化した内部ベクトルを「平均ベクトル」を表記する。
連結部345は、第3計算部340から出力される平均ベクトルと、抽出部325から出力される非言語情報のベクトルとを連結することで、連結ベクトルを生成する処理部である。連結部345は、連結ベクトルを、第2計算部350に出力する。
第2計算部350は、再帰パスを持たない第3ネットワークに、連結ベクトルを入力し、第3ネットワークのパラメータに基づく計算を行うことで、出力値(ニューロン値)を算出する処理部である。第2計算部350は、出力値を、学習部360に出力する。
学習部360は、音声データに対する連結ベクトルを入力した際に、第2計算部350から出力される出力値が、音声データに対応する正解情報310bに近づくように、第2計算部350のパラメータを学習(誤差逆伝播学習)する。学習部360は、学習停止条件を満たすまで、誤差逆伝播の学習を繰り返し実行し、DNNモデル310dを生成する。DNNモデル310dは、学習済みの第3ネットワークのパラメータに対応する情報である。学習装置300は、DNNモデル310dの情報を、判定装置400に通知する。
判定装置400は、生成部420と、抽出部425と、第1計算部430と、第3計算部440と、連結部445と、第2計算部450と、判定部460とを有する。
生成部420は、異常な会話状況であるか否かの検出対象となる音声データの入力を受け付ける。以下の判定装置400の説明において、異常な会話状況であるか否かの検出対象となる音声データを、単に、「音声データ」と表記する。生成部420は、音声データに対して、音素認識を行い、最尤音素系列の情報を生成する。生成部420は、各音素をOne Hotベクトル化し、各音素のOne Hotベクトルを、第1計算部430に出力する。
抽出部425は、音声データから非言語情報を抽出し、非言語情報のベクトルを生成する処理部である。たとえば、非言語情報は、ストレス評価値、会話時間等の情報である。非言語情報のベクトルの各次元には、ストレス評価値、会話時間等が設定される。抽出部425は、非言語情報のベクトルを、連結部445に出力する。
第1計算部430は、再帰パスを持つ第1ネットワークに、各音素のOne Hotベクトルを順に入力し、第1ネットワークのパラメータに基づく計算を行うことで、内部ベクトルを算出する処理部である。第1計算部430は、第1ネットワークに設定するパラメータとして、実施例1の学習装置100において学習されたLSTMモデル110cのパラメータを用いる。第1計算部430は、音声データに含まれる全音素のOne Hotベクトルを、第1ネットワークに入力して得られる各内部ベクトルを、第3計算部440に出力する。
第3計算部440は、第1計算部430から出力される複数の内部ベクトルを平均化する処理部である。第3計算部440は、平均化した内部ベクトルを、連結部445に出力する。以下の説明では、平均化した内部ベクトルを「平均ベクトル」を表記する。
連結部445は、第3計算部440から出力される平均ベクトルと、抽出部425から出力される非言語情報のベクトルとを連結することで、連結ベクトルを生成する処理部である。連結部445は、連結ベクトルを、第2計算部450に出力する。
第2計算部450は、再帰パスを持たない第3ネットワークに、連結ベクトルを入力し、第3ネットワークのパラメータに基づく計算を行うことで、出力値(ニューロン値)を算出する処理部である。第2計算部450は、第3ネットワークに設定するパラメータとして、DNNモデル310dのパラメータを用いる。第2計算部450は、出力値を、判定部460に出力する。
判定部460は、第2計算部450から出力される出力値と、閾値とを比較して、音声データに、異常な会話状況が含まれているか否かを判定する処理部である。たとえば、判定部460は、出力値が閾値以上である場合に、音声データに異常な会話状況が含まれていると判定する。
上記のように、本実施例2に係る学習装置300は、音声データから非言語情報を抽出し、非言語情報のベクトルと、内部ベクトルとを連結した連結ベクトルを用いて、DNNモデル310dを機械学習する。このように、非言語情報のベクトルを更に用いて学習を行うことで、異常な会話状況の検出精度を向上させることができる。たとえば、非言語情報のベクトルを用いると、非言語情報のベクトルを用いない場合と比較して、誤検出率を増やさないで、検出漏れを約半減させることが、実験により確認できた。
次に、本実施例2に係るシステムの一例について説明する。図15は、本実施例2に係るシステムの一例を示す図である。このシステムは、顧客端末10と、オペレータ端末15と、通話録音装置30と、管理者端末40と、学習装置300と、判定装置400とを有する。顧客端末10、オペレータ端末15、通話録音装置30、管理者端末40の説明は、図3で説明した、顧客端末10、オペレータ端末15、通話録音装置30、管理者端末40の説明と同様である。
図15に示した学習装置300の構成の一例について説明する。図16は、本実施例2に係る学習装置の構成を示す機能ブロック図である。図16に示すように、この学習装置300は、通信部301、入力部302、表示部303、記憶部304、制御部305を有する。
通信部301、入力部302、表示部303の説明は、図4で説明した通信部101、入力部102、表示部103の説明と同様である。
記憶部304は、学習用音声データベース310a、正解情報310b、LSTMモデル310c、DNNモデル310dを有する。記憶部304は、RAM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。
学習用音声データベース310aは、学習用の複数の音声データを格納するデータベースである。学習用音声データベース310aに格納される各音声データは、顧客とオペレータとの会話の音声データである。
正解情報310bは、学習用音声データベース310aに格納された各音声データに、異常な会話状況が含まれるか否かを示す情報である。
LSTMモデル310cは、第1ネットワーク(LSTM)のパラメータに対応する情報であり、実施例1で示した学習装置100を用いて予め学習しておく。DNNモデル310dは、第3ネットワーク(DNN)のパラメータに対応する情報である。DNNモデル310dのみは、学習部360により、機械学習される。
制御部305は、取得部305a、通知部305b、生成部320、抽出部325、第1計算部330、第3計算部340、連結部345、第2計算部350、学習部360を有する。制御部305は、CPUやMPUなどによって実現できる。また、制御部305は、ASICやFPGAなどのハードワイヤードロジックによっても実現できる。
取得部305aは、通話録音装置30から、学習用音声データベース310aの情報を取得する処理部である。取得部305aは、学習用音声データベース310aの情報を、記憶部304に格納する。また、取得部305aは、正解情報310bを取得した場合には、取得した正解情報310bを、記憶部304に格納する。正解情報310bは、学習用音声データベース310aの各音声データに予め対応付けられていてもよい。
通知部305bは、予め学習されているLSTMモデル310cおよび学習部360により学習されたDNNモデル310dを、判定装置400に通知する処理部である。
生成部320は、学習用音声データベース310aから学習用の音声データを取得し、音声データを基にして、最尤音素系列の情報を生成する処理部である。生成部320に関する他の説明は、生成部120の説明と同様である。生成部320は、各音素に対応するOne hotベクトルを、第1計算部330に出力する。
抽出部325は、音声データから非言語情報を抽出し、非言語情報のベクトルを生成する処理部である。たとえば、非言語情報は、ストレス評価値、会話時間等の情報である。抽出部325は、非言語情報のベクトルを、連結部345に出力する。
抽出部325がストレス評価値を算出する処理の一例について説明する。抽出部325は、特開2015-82093等に記載された技術を用いて、音声データからストレス評価値を算出する。図17は、通常の会話の音声データから求められるピッチとパワーとの関係を示す図である。図17のグラフの縦軸は正規化ピッチに対応し、横軸は正規化対数パワーに対応する。図18は、異常な会話の音声データから求められるピッチとパワーとの関係を示す図である。図18のグラフの縦軸は正規化ピッチに対応し、横軸は正規化対数パワーに対応する。
図17に示すように、通常の会話の音声データでは、ピッチ(正規化ピッチ)とパワー(正規化対数パワー)の値は、話者の平均的な声の大きさ、高さを中心に分布する。一方、図18に示すように、異常な会話の音声データでは、ピッチ(正規化ピッチ)とパワー(正規化対数パワー)の値が大きく広がる。かかる特性を用いて、抽出部325は、ピッチとパワーの値の広がり具合を数値化して、ストレス評価値を算出する。抽出部325は、ストレス評価値を算出する場合に、声の高さと大きさの統計量(平均値、分散)を活用する。なお、ストレス評価値は、話者別のストレスではなく、会話全体の異常度合い(通常とは異なる状態)を表す数値として使用する。
抽出部325が会話時間を算出する処理の一例について説明する。抽出部325は、音声データを分析して、最初の音声区間の開始時刻と、最後の音声区間の終了時刻との差を、会話時間として算出する。
第1計算部330は、再帰パスをもつ第1ネットワークに、各音素の各音素のOne Hotベクトルを順に入力し、第1ネットワークのパラメータに基づく計算を行うことで、内部ベクトルを算出する処理部である。第1計算部330は、内部ベクトルを、第3計算部340に出力する。第1計算部330に関する他の説明は、第1計算部130に関する説明と同様である。
第3計算部340は、第1計算部330から出力される複数の内部ベクトルhを平均化する処理部である。第3計算部340は、平均化した内部ベクトル(平均ベクトル)を、連結部345に出力する。
連結部345は、第3計算部340から出力される平均ベクトルと、抽出部325から出力される非言語情報のベクトルとを連結することで、連結ベクトルを生成する処理部である。連結部345は、連結ベクトルを、第2計算部350に出力する。
第2計算部350は、再帰パスを持たない第3ネットワークに、平均ベクトルを入力し、第3ネットワークのパラメータに基づく計算を行うことで、出力値(ニューロン値)を算出する処理部である。第2計算部350に関する他の説明は、第2計算部150に関する説明と同様である。
学習部360は、DNNモデル310dの学習処理を実行する処理部である。学習部360は、LSTMモデル310cに含まれるパラメータを、第1計算部330が用いるLSTM135のパラメータに設定させる。
学習部360は、音声データから生成された各音素のOne Hotベクトルを第1計算部330、抽出部325に入力した際に、第3計算部340、連結部345を介して、第2計算部350から出力される出力値が、音声データに対応する正解情報310bに近づくように、第2計算部350のパラメータを学習する。学習部360は、損失関数の誤差を逆伝播することで、損失関数の値が最小値となるように、パラメータの学習を繰り返し実行する。学習部360は、学習停止条件を設定し、学習停止条件を満たす場合に、学習を終了する。学習部360は、学習を終了した際のニューラルネットワーク155のパラメータを、DNNモデル310dとして、記憶部304に格納する。
次に、図15に示した判定装置400の構成の一例について説明する。図19は、本実施例2に係る判定装置の構成を示す機能ブロック図である。図19に示すように、判定装置400は、通信部401、入力部402、表示部403、記憶部404、制御部405を有する。
通信部401、入力部402、表示部403の説明は、図9で説明した通信部201、入力部202、表示部203の説明と同様である。
記憶部404は、音声データ404a、LSTMモデル310c、DNNモデル310dを有する。記憶部404は、RAM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。
音声データ404aは、通話録音装置30によって録音された顧客とオペレータとの会話の音声データであって、異常な会話状況の検出対象となる音声データである。
LSTMモデル310cは、予め学習装置100によって学習された、第1ネットワーク(LSTM135)のパラメータに対応する情報である。
DNNモデル310dは、学習装置300によって学習された、第3ネットワーク(ニューラルネットワーク155)のパラメータに対応する情報である。
制御部405は、取得部405a、通知部405b、生成部420、第1計算部430、抽出部425、第3計算部440、連結部445、第2計算部450、判定部460を有する。制御部405は、CPUやMPUなどによって実現できる。また、制御部405は、ASICやFPGAなどのハードワイヤードロジックによっても実現できる。
取得部405aは、通話録音装置30から、音声データ404aを取得する処理部である。取得部405aは、音声データ404aを記憶部404に格納する。また、取得部405aは、学習装置300から、学習装置100により予め学習され、内部ベクトル算出用に取得され格納されたLSTMモデル310cの情報、および、学習部360により学習されたDNNモデル310dの情報を取得する。取得部405aは、LSTMモデル310cの情報、および、DNNモデル310dの情報を、記憶部404に格納する。
通知部405bは、後述する判定部460から判定結果を取得する。通知部405bは、判定部460によって、音声データ404aに異常な会話状況が含まれていると判定された場合に、異常な会話が含まれる旨の情報を、管理者端末40に通知する。
生成部420は、音声データ404aを取得し、音声データ404aを基にして、最尤音素系列の情報を生成する処理部である。生成部420は、学習装置300の生成部320と同様にして、音声データ404aから最尤音素系列を生成し、各音素のOne Hotベクトルを生成する。生成部420は、各音素のOne Hotベクトルを、第1計算部430に出力する。
抽出部425は、音声データ404aから非言語情報を抽出し、非言語情報のベクトルを生成する処理部である。たとえば、非言語情報は、ストレス評価値、会話時間等の情報である。非言語情報のベクトルの各次元には、ストレス評価値、会話時間等が設定される。抽出部425は、非言語情報のベクトルを、連結部445に出力する。抽出部425の他の処理は、抽出部325の処理と同様である。
第1計算部430は、再帰パスを持つ第1ネットワークに、各音素のOne Hotベクトルを順に入力し、第1ネットワークのパラメータに基づく計算を行うことで、内部ベクトルを算出する処理部である。第1計算部430は、第1ネットワークに設定するパラメータとして、LSTMモデル310cのパラメータを用いる。第1計算部430は、音声データに含まれる全音素のOne Hotベクトルを、第1ネットワークに入力して得られる各内部ベクトルを、第3計算部440に出力する。
第3計算部440は、第1計算部430から出力される複数の内部ベクトルを平均化する処理部である。第3計算部440は、平均化した内部ベクトル(平均ベクトル)を、連結部445に出力する。
連結部445は、第3計算部440から出力される平均ベクトルと、抽出部425から出力される非言語情報のベクトルとを連結することで、連結ベクトルを生成する処理部である。連結部445は、連結ベクトルを、第2計算部450に出力する。
第2計算部450は、再帰パスを持たない第3ネットワークに、連結ベクトルを入力し、第3ネットワークのパラメータに基づく計算を行うことで、出力値(ニューロン値)を算出する処理部である。第2計算部450が用いる第3ネットワークは、実施例1で説明した説明したネットワークと同様の、図8で説明したニューラルネットワーク155に対応するものである。第2計算部450は、ニューラルネットワーク155のパラメータに、DNNモデル310dのパラメータを設定し、会話が異常な会話状況である確率「Ot」と、会話が通常の会話状況である確率「On」とを計算する。第2計算部450は、確率「Ot」の情報を、判定部460に出力する。
判定部460は、異常な会話状況である確率「Ot」を基にして、音声データ404aに異常な会話状況が含まれているか否かを判定する処理部である。たとえば、判定部460は、確率Otが、予め設定される閾値以上となる場合に、音声データ404aに異常な会話状況が含まれていると判定する。判定部460は、判定結果を、通知部405bに出力する。この例では、異常な会話状況である確率「Ot」を基にして判定しているが、「Ot」と正常な会話状況である確率「On」の確率との差または比率を判定に用いる値として用いてもよい。
次に、本実施例2に係る学習装置300の処理手順の一例について説明する。図20、図21は、本実施例2に係る学習装置の処理手順を示すフローチャートである。図20に示すように、学習装置300の取得部305aは、LSTMモデル310cを取得する(ステップS301)。LSTMモデル310cは、実施例1の学習装置100が実行する図10で説明したモデルに対応する。学習装置300の学習部360は、第1学習処理で学習したLSTMモデル310cを、記憶部304に格納する(ステップS302)。
学習装置300の生成部320は、学習用の音声データを取得して、音素認識を行う(ステップS303a)。生成部320は、音素をOne hotベクトル化する(ステップS304a)。生成部320は、One hotベクトルを蓄積する(ステップS305a)。
学習装置300の抽出部325は、学習用の音声データから、非言語情報を抽出する(ステップS303b)。抽出部325は、非言語情報のベクトルを生成し(ステップS304b)、非言語情報のベクトルを蓄積する(ステップS305b)。
学習装置300は、学習データ数がモデル学習可能な基準を超えていない場合には(ステップS306,No)、ステップS303a,303bに移行する。一方、学習装置300は、学習データ数がモデル学習可能な基準を超えた場合には(ステップS306,Yes)、図21のステップS307に移行する。
図21の説明に移行する。学習装置300の第1計算部330は、One hotベクトルをLSTM135に入力し、内部ベクトルを算出し、蓄積する(ステップS307)。第1計算部330は、全One hotベクトル系列を入力していない場合には(ステップS308,No)、ステップS307に移行する。一方、第1計算部330は、全One hotベクトル系列を入力した場合には(ステップS308,Yes)、ステップS309に移行する。学習装置300の第3計算部340は、内部ベクトルを平均化する(ステップS309)。
学習装置300の連結部345は、平均化した内部ベクトルと、非言語情報のベクトルとを連結する(ステップS310)。学習装置300の第2計算部350は、連結ベクトルをニューラルネットワーク155に入力し、出力値を算出する(ステップS311)。学習装置300の学習部360は、正解情報310bを用いてニューラルネットワーク155のパラメータを誤差逆伝播法によって学習する(ステップS312)。
学習部360は、全学習データについて学習を行っていない場合には(ステップS313,No)、ステップS311に移行する。一方、学習部360は、全学習データについて学習を行った場合には(ステップS313,Yes)、ステップS314に移行する。
学習部360は、学習停止条件を満たしていない場合には(ステップS314,No)、学習データの順番をランダムに入れ替えたのち、ステップS311に移行する。一方、学習部360は、学習停止条件を満たした場合には(ステップS314,Yes)、ステップS315に移行する。学習部360は、学習済みのDNNモデル310dを、記憶部304に格納する(ステップS315)。
次に、本実施例2に係る判定装置400の処理手順の一例について説明する。図22は、本実施例2に係る判定装置の処理手順を示すフローチャートである。図22に示すように、判定装置400の生成部420は、音素認識を行い(ステップS401)、音素をOne hotベクトル化する(ステップS402)。生成部420は、One hotベクトルを蓄積する(ステップS403)。生成部420は、全音素をOne hotベクトル化していない場合には(ステップS404,No)、ステップS402に移行する。一方、生成部420は、全音素をOne hotベクトル化した場合には(ステップS404,Yes)、ステップS405に移行する。
判定装置400の抽出部425は、音声データから非言語情報を抽出し、非言語情報のベクトルを生成する(ステップS405)。判定装置400の第1計算部430は、One hotベクトルをLSTM135に入力し、内部ベクトルを算出し、蓄積する(ステップS406)。なお、第1計算部430は、学習済みのLSTMモデル310cに基づくLSTM135を用いて内部ベクトルを算出する。第1計算部430は、全One hotベクトル系列を入力していない場合には(ステップS407,No)、ステップS406に移行する。第1計算部430は、全One hotベクトル系列を入力した場合には(ステップS407,Yes)、ステップS408に移行する。
判定装置400の第3計算部440は、内部ベクトルを平均化する(ステップS408)。判定装置400の連結部445は、平均化した内部ベクトルと非言語情報のベクトルとを連結する(ステップS409)。判定装置400の第2計算部450は、連結ベクトルをニューラルネットワーク155に入力し、出力値「Ot」を算出する(ステップS410)。なお、第2計算部450は、学習済みのDNNモデル310dに基づくニューラルネットワーク155を用いて、出力値を算出する。「Ot」は、会話が異常な会話状況である確率を示すものである。
判定装置400の判定部460は、出力値Otが閾値以上であるか否かを判定する(ステップS411)。判定部460は、出力値Otが閾値以上である場合には(ステップS411,Yes)、音声データ404aに異常な会話状況が含まれていると判定する(ステップS412)。判定装置400の通知部405bは、異常な会話状況が含まれている旨を管理者端末40に通知する(ステップS413)。
一方、判定部460は、出力値Otが閾値未満である場合には(ステップ411,No)、通常会話であると判定する(ステップS414)。
次に、本実施例2に係る学習装置300の効果について説明する。学習装置300は、音声データから非言語情報を抽出し、非言語情報のベクトルと、内部ベクトルとを連結した連結ベクトルを用いて、DNNモデル310dを機械学習する。このように、非言語情報のベクトルを更に用いて学習を行うことで、異常な会話状況の検出精度を向上させることができる。また、判定装置400が、DNNモデル310dを用いて、異常な会話状況の検出を行うと、非言語情報のベクトルを用いない場合と比較して、誤検出率を増やさないで、検出漏れを減少させることができる。
上述した実施例1、2に示した学習装置100,300、判定装置200,400の処理は一例である。実施例3では、学習装置100,300、判定装置200,400のその他の処理について説明する。
第1計算部および第2計算部の拡張例について説明する。図23は、第1計算部および第2計算部の拡張例を説明するための図である。ここでは一例として、第1計算部130および第150を用いて説明する。
第1計算部130は、第1ネットワークであるLSTMを多段にして、上段へのLSTMの内部ベクトルdを異常/通常の2次元のベクトルにする。なお、内部ベクトルcは、図7で説明した内部ベクトルhに対応するものである。たとえば、内部ベクトルcは、128次元のベクトルである。内部ベクトルdは、第3計算部140(図示略)を通過して、第2計算部150に入力される。
第2計算部150は、第2ネットワークを実行しないで、内部ベクトルdに対するSoftmax計算のみを実行し、異常な会話状況である確率と、通常の会話である確率を算出する。第2計算部150の必須構成要素は、Softmax計算を行う処理部であり、内部ベクトルdから異常/通常それぞれの確からしさである確率を求めることであるため、第1計算部130、第2計算部150を図23のように拡張することが可能である。
第3計算部のその他の処理について説明する。図24は、第3計算部のその他の処理を説明するための図である。ここでは一例として、第1計算部130、第2計算部150、第3計算部140を用いて説明する。
第3計算部140は、入力音素ごとに第1計算部130から出力される内部ベクトルc1~cNに対し、先頭から「a1、a2、・・・、aN」という重みパラメータを設ける。かかる重みは、時間方向のパラメータである。たとえば、第3計算部140から、第2計算部150に出力されるベクトルは「a1・c1+a2・c2+・・・+aN・cN」となる。学習部160は、LSTMモデル110cおよびDNNモデル110dを学習する際に、第3計算部140の重みパラメータも合わせて学習を行う。このような処理を行うことで、平均ベクトルを生成する場合の時間方向についての重みを最適化することができる。
続いて、本実施例のその他のシステム構成について説明する。図25は、本実施例にかかるその他のシステムの一例を示す図(1)である。図25では一例として、学習装置100と、判定装置200とを用いて説明を行う。
学習装置100は、過去のプロジェクトの学習データ170を基にして、LSTMモデル170A、DNNモデル170Bを学習する。学習データ170には、過去に行われたプロジェクトの開発会議音声を録音した会話音声録音ファイルと、会議が停滞したか否かの正解情報を有する。開発会議音声は、マイク45を用いて録音される。
判定装置200は、プロジェクトの開発会議音声を、会話音声録音ファイル270として取得し、LSTMモデル170A、DNNモデル170Bを用いて、プロジェクト開発会議の停滞度合いの情報280を算出する。判定装置200は、プロジェクト開発会議の停滞度合いの情報280を、管理者端末40に通知する。管理者担当者41は、プロジェクト開発会議の停滞度合いの情報280を参照し、状況精査を行う。
図25に示したシステムを構築することで、会議が停滞しがちなプロジェクトの開発会議を特定して、改善を促すことが可能となる。
図26は、本実施例に係るその他のシステムの一例を示す図(2)である。図26では一例として、学習装置100と、判定装置200とをもちいて説明を行う。
学習装置100は、窓口対応時の会話の学習データ180を基にして、LSTMモデル180A、DNNモデル180Bを学習する。学習データ180には、過去に行われた窓口対応時の会話を録音した会話音声録音ファイルと、トラブルが発生したか否かの正解情報を有する。窓口対応の会話は、マイク45を用いて録音される。
判定装置200は、窓口の音声を取得し、LSTMモデル180A、DNNモデル180Bを用いて、トラブル発生の確からしさの情報290を算出する。判定装置200は、トラブル発生の確からしさの情報290を、管理者端末40に通知する。管理者担当者41は、トラブル発生の確からしさの情報290を参照し、対応支援を行う。
図26に示したシステムを構築することで、窓口対応におけるトラブル発声を検出して、対応支援を行うことが可能となる。
ところで、本実施例1、2で説明した例では、学習装置100(300)、判定装置200(400)が別々の装置である場合について説明したが、これに限定されるものではない。たとえば、学習装置100の制御部105は、判定装置200の制御部205と同様の機能を持ち、LSTMモデル110c、DNNモデル110dを学習すると共に、音声データに特定の会話状況が含まれているか否かを判定してもよい。
また、本実施例では、特定の会話状況を「異常な会話状況」として説明したが、特定の会話状況は、異常な会話状況に限定されるものではない。たとえば、特定の会話状況は、会議が停滞している会話状況、トラブルが発生している会話状況、顧客にとって好ましい会話状況などであってもよい。
次に、本実施例に示した学習装置100(300)、判定装置200(400)と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図27は、本実施例に係る学習装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
図27に示すように、コンピュータ500は、各種演算処理を実行するCPU501と、ユーザからのデータの入力を受け付ける入力装置502と、ディスプレイ503とを有する。また、コンピュータ500は、記憶媒体からプログラム等を読み取る読み取り装置504と、有線または無線ネットワークを介して、通話録音装置30等との間でデータの授受を行うインターフェース装置505とを有する。コンピュータ500は、各種情報を一時記憶するRAM506と、ハードディスク装置507とを有する。そして、各装置501~507は、バス508に接続される。
ハードディスク装置507は、取得プログラム507a、生成プログラム507b、第1計算プログラム507c、第3計算プログラム507d、第2計算プログラム507eを有する。ハードディスク装置507は、学習プログラム507f、通知プログラム507gを有する。CPU501は、各プログラム507a~507gを読み出して、RAM506に展開する。
取得プログラム507aは、取得プロセス506aとして機能する。生成プログラム507bは、生成プロセス506bとして機能する。第1計算プログラム507cは、第1計算プロセス506cとして機能する。第3計算プログラム507dは、第3計算プロセス506dとして機能する。第2計算プログラム507eは、第2計算プロセス506eとして機能する。学習プログラム507fは、学習プロセス506fとして機能する。通知プログラム507gは、通知プロセス506gとして機能する。
取得プロセス506aの処理は、取得部105a,305aの処理に対応する。生成プロセス506bの処理は、生成部120,320の処理に対応する。第1計算プロセス506cの処理は、第1計算部130,330の処理に対応する。第3計算プロセス506dの処理は、第3計算部140,340の処理に対応する。第2計算プロセス506eの処理は、第2計算部150,350の処理に対応する。学習プロセス506fの処理は、学習部160,360の処理に対応する。通知プロセス506gの処理は、通知部105b,305bの処理に対応する。
なお、各プログラム507a~507gについては、必ずしも最初からハードディスク装置507に記憶させておかなくてもよい。例えば、コンピュータ500に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ500が各プログラム507a~507gを読み出して実行するようにしてもよい。
図28は、本実施例に係る判定装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。図28に示すように、コンピュータ600は、各種演算処理を実行するCPU601と、ユーザからのデータの入力を受け付ける入力装置602と、ディスプレイ603とを有する。また、コンピュータ600は、記憶媒体からプログラム等を読み取る読み取り装置604と、有線または無線ネットワークを介して、通話録音装置30、管理者端末40等との間でデータの授受を行うインターフェース装置605とを有する。コンピュータ600は、各種情報を一時記憶するRAM606と、ハードディスク装置607とを有する。そして、各装置601~607は、バス608に接続される。
ハードディスク装置607は、取得プログラム607a、生成プログラム607b、第1計算プログラム607c、第3計算プログラム607d、第2計算プログラム607eを有する。ハードディスク装置607は、学習プログラム607f、通知プログラム607gを有する。CPU601は、各プログラム607a~607gを読み出して、RAM606に展開する。
取得プログラム607aは、取得プロセス606aとして機能する。生成プログラム607bは、生成プロセス606bとして機能する。第1計算プログラム607cは、第1計算プロセス606cとして機能する。第3計算プログラム607dは、第3計算プロセス606dとして機能する。第2計算プログラム607eは、第2計算プロセス606eとして機能する。判定プログラム607fは、判定プロセス606fとして機能する。通知プログラム607gは、通知プロセス606gとして機能する。
取得プロセス606aの処理は、取得部205a,405aの処理に対応する。生成プロセス606bの処理は、生成部220,420の処理に対応する。第1計算プロセス606cの処理は、第1計算部230,430の処理に対応する。第3計算プロセス606dの処理は、第3計算部240,440の処理に対応する。第2計算プロセス606eの処理は、第2計算部250,450の処理に対応する。判定プロセス606fの処理は、判定部260,460の処理に対応する。通知プロセス606gの処理は、通知部205b,405bの処理に対応する。
なお、各プログラム607a~607gについては、必ずしも最初からハードディスク装置607に記憶させておかなくてもよい。例えば、コンピュータ600に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ600が各プログラム607a~607gを読み出して実行するようにしてもよい。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)音声情報に対する音素の認識結果を基にして、前記音声情報に含まれる複数の音素を時系列に並べた音素列情報を生成する生成部と、
前記音素列情報を、ネットワークに入力した際に前記ネットワークから出力される出力情報が、前記音素列情報に対応する前記音声情報に所定の会話状況が含まれているか否かを示す正解情報に近づくように、前記ネットワークのパラメータを学習する学習処理部と
を有することを特徴とする学習装置。
(付記2)前記ネットワークは、再帰パスを持つ第1ネットワークと、再帰パスを持たない第2ネットワークとを有し、前記学習処理部は、前記第1ネットワークに前記音素列情報を入力して、内部ベクトルを算出する第1計算部と、前記第2ネットワークに前記内部ベクトルを入力して、前記出力情報を算出する第2計算部と、前記出力情報が、前記正解情報に近づくように、前記第1ネットワークのパラメータおよび前記第2ネットワークのパラメータを学習する学習部とを有することを特徴とする付記1に記載の学習装置。
(付記3)前記第1ネットワークは、LSTM(Long Short Term Memory)であることを特徴とする付記2に記載の学習装置。
(付記4)前記第1ネットワークから出力される複数の内部ベクトルの統計情報を算出する第3計算部を更に有し、前記第2計算部は、前記第2ネットワークに前記統計情報を入力することで、前記出力情報を算出することを特徴とする付記2または3に記載の学習装置。
(付記5)前記第3計算部は、時間方向の重みパラメータを基にして、前記統計情報を算出し、前記学習部は、前記出力情報が、前記正解情報に近づくように、前記第1ネットワークのパラメータと、前記第2ネットワークのパラメータと、前記重みパラメータを学習することを特徴とする付記4に記載の学習装置。
(付記6)前記第3計算部は、前記第1ネットワークから出力される複数の内部ベクトルの平均ベクトルを算出し、前記第2計算部は、前記第2ネットワークに前記平均ベクトルを入力することで、出力情報を算出することを特徴とする付記4に記載の学習装置。
(付記7)前記音声情報を基にしてストレス評価値または会話時間の少なくとも一方を含む特徴量を抽出する抽出部と、前記内部ベクトルと前記特徴量のベクトルとを連結した連結ベクトルを生成する連結部とを更に有し、前記第2計算部は、再帰パスを持たない第3ネットワークに前記連結ベクトルを入力して、出力情報を算出することを特徴とする付記2~6のいずれか一つに記載の学習装置。
(付記8)前記学習処理部によって学習された前記パラメータを前記ネットワークに設定し、音声情報に対する音素の認識結果を基にして、前記音声情報に含まれる複数の音素を時系列に並べた音素列情報を生成し、生成した前記音素列情報を前記ネットワークに入力することで、前記音声情報に所定の会話状況が含まれているか否かを判定する判定部を更に有することを特徴とする付記1~7のいずれか一つに記載の学習装置。
(付記9)コンピュータが実行する学習方法であって、
音声情報に対する音素の認識結果を基にして、前記音声情報に含まれる複数の音素を時系列に並べた音素列情報を生成し、
前記音素列情報を、ネットワークに入力した際に前記ネットワークから出力される出力情報が、前記音素列情報に対応する前記音声情報に所定の会話状況が含まれているか否かを示す正解情報に近づくように、前記ネットワークのパラメータを学習する
処理を実行することを特徴とする学習方法。
(付記10)前記ネットワークは、再帰パスを持つ第1ネットワークと、再帰パスを持たない第2ネットワークとを有し、前記学習する処理は、前記第1ネットワークに前記音素列情報を入力して、内部ベクトルを算出し、前記第2ネットワークに前記内部ベクトルを入力して、前記出力情報を算出し、前記出力情報が、前記正解情報に近づくように、前記第1ネットワークのパラメータおよび前記第2ネットワークのパラメータを学習することを特徴とする付記9に記載の学習方法。
(付記11)前記第1ネットワークは、LSTM(Long Short Term Memory)であることを特徴とする付記10に記載の学習方法。
(付記12)前記第1ネットワークから出力される複数の内部ベクトルの統計情報を更に算出し、前記出力情報を算出する処理は、前記第2ネットワークに前記統計情報を入力することで、前記出力情報を算出することを特徴とする付記10または11に記載の学習方法。
(付記13)前記統計情報を算出する処理は、時間方向の重みパラメータを基にして、前記統計情報を算出し、前記学習する処理は、前記出力情報が、前記正解情報に近づくように、前記第1ネットワークのパラメータと、前記第2ネットワークのパラメータと、前記重みパラメータを学習することを特徴とする付記12に記載の学習方法。
(付記14)前記統計情報を算出する処理は、前記第1ネットワークから出力される複数の内部ベクトルの平均ベクトルを算出し、前記出力情報を算出する処理は、前記第2ネットワークに前記平均ベクトルを入力することで、出力情報を算出することを特徴とする付記12に記載の学習方法。
(付記15)前記音声情報を基にしてストレス評価値または会話時間の少なくとも一方を含む特徴量を抽出し、前記内部ベクトルと前記特徴量のベクトルとを連結した連結ベクトルを生成する処理を更に実行し、前記出力情報を算出する処理は、再帰パスをもたない第3ネットワークに前記連結ベクトルを入力して、出力情報を算出することを特徴とする付記10~14のいずれか一つに記載の学習方法。
(付記16)学習された前記パラメータを前記ネットワークに設定し、音声情報に対する音素の認識結果を基にして、前記音声情報に含まれる複数の音素を時系列に並べた音素列情報を生成し、生成した前記音素列情報を前記ネットワークに入力することで、前記音声情報に所定の会話状況が含まれているか否かを判定する処理を更に実行することを特徴とする付記9~15のいずれか一つに記載の学習方法。
(付記17)コンピュータに、
音声情報に対する音素の認識結果を基にして、前記音声情報に含まれる複数の音素を時系列に並べた音素列情報を生成し、
前記音素列情報を、ネットワークに入力した際に前記ネットワークから出力される出力情報が、前記音素列情報に対応する前記音声情報に所定の会話状況が含まれているか否かを示す正解情報に近づくように、前記ネットワークのパラメータを学習する
処理を実行させることを特徴とする学習プログラム。
(付記18)前記ネットワークは、再帰パスを持つ第1ネットワークと、再帰パスを持たない第2ネットワークとを有し、前記学習する処理は、前記第1ネットワークに前記音素列情報を入力して、内部ベクトルを算出し、前記第2ネットワークに前記内部ベクトルを入力して、前記出力情報を算出し、前記出力情報が、前記正解情報に近づくように、前記第1ネットワークのパラメータおよび前記第2ネットワークのパラメータを学習することを特徴とする付記17に記載の学習プログラム。
(付記19)前記第1ネットワークは、LSTM(Long Short Term Memory)であることを特徴とする付記18に記載の学習プログラム。
(付記20)前記第1ネットワークから出力される複数の内部ベクトルの統計情報を更に算出し、前記出力情報を算出する処理は、前記第2ネットワークに前記統計情報を入力することで、前記出力情報を算出することを特徴とする付記18または19に記載の学習プログラム。
(付記21)前記統計情報を算出する処理は、時間方向の重みパラメータを基にして、前記統計情報を算出し、前記学習する処理は、前記出力情報が、前記正解情報に近づくように、前記第1ネットワークのパラメータと、前記第2ネットワークのパラメータと、前記重みパラメータを学習することを特徴とする付記20に記載の学習プログラム。
(付記22)前記統計情報を算出する処理は、前記第1ネットワークから出力される複数の内部ベクトルの平均ベクトルを算出し、前記出力情報を算出する処理は、前記第2ネットワークに前記平均ベクトルを入力することで、出力情報を算出することを特徴とする付記20に記載の学習プログラム。
(付記23)前記音声情報を基にしてストレス評価値または会話時間の少なくとも一方を含む特徴量を抽出し、前記内部ベクトルと前記特徴量のベクトルとを連結した連結ベクトルを生成する処理を更に実行し、前記出力情報を算出する処理は、再帰パスを持たない第3ネットワークに前記連結ベクトルを入力して、出力情報を算出することを特徴とする付記18~22のいずれか一つに記載の学習プログラム。
(付記24)
学習された前記パラメータを前記ネットワークに設定し、音声情報に対する音素の認識結果を基にして、前記音声情報に含まれる複数の音素を時系列に並べた音素列情報を生成し、生成した前記音素列情報を前記ネットワークに入力することで、前記音声情報に所定の会話状況が含まれているか否かを判定する処理を更に実行することを特徴とする付記17~23のいずれか一つに記載の学習プログラム。