以下に、本願の開示する問題検出装置、問題検出方法および問題検出プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、本実施例1に係る問題検出装置の処理を説明するための図である。たとえば、問題検出装置100は、「学習フェーズの処理」と、「判定フェーズの処理」とを行う。
問題検出装置100の学習フェーズの処理について説明する。問題検出装置100は、学習データ50を基にして、予測モデル70aおよび選択関連情報70bを生成する。学習データ50には、音声ファイル51aと、関連情報51bと、問題状況情報51cとの組が複数登録されている。以下の説明では、適宜、音声ファイル51aと、関連情報51bと、問題状況情報51cとの1つの組を「学習レコード」と表記する。音声ファイル51aは、音声情報の一例である。
音声ファイル51aは、会議中に発話された音声を録音した学習用の音声ファイルである。関連情報51bは、開発プロジェクトに関する各種の情報を有し、開発プロジェクトの各工程で引き継がれる。問題状況情報51cは、音声ファイル51aを録音した会議中の開発プロジェクトに問題が発生しているか否かを示す情報である。
図2は、本実施例1に係る関連情報の一例を説明するための図である。図2に示すように、関連情報51bには、開発プロジェクト番号、担当者識別番号、工程数、原価率、予想売上、開発日数、人数等の項目が含まれる。
開発プロジェクト番号は、開発プロジェクトを一意に識別する情報である。担当者識別番号は、開発プロジェクトの担当者を一意に識別する情報である。工程数は、開発プロジェクトに含まれる工程の数を示す。原価率は、開発プロジェクトで開発される製品の予想売上に対する原価の比率である。予想売上は、開発プロジェクトで開発される製品の予想売上である。開発日数は、開発プロジェクトに要する日数である。人数は、開発プロジェクトに参加する人数である。
問題検出装置100は、学習データ50に登録された各学習レコードの音声ファイル51aと、問題状況情報51cとを基にして、問題発生の確からしさを出力する予測モデル70aを学習する。
また、問題検出装置100は、学習データ50に登録された各学習レコードの関連情報51bに含まれる項目のうち、開発プロジェクトの「問題が起こりにくい項目」と、「問題の起こりにくい条件」とを学習する。問題検出装置100は、学習した結果を、選択関連情報70bとして生成する。
問題検出装置100は、複数の学習レコードの関連情報51bおよび問題状況情報51cについて、統計処理を行い、問題が発生していない場合の、関連情報51bの各項目の値の傾向を特定する。
たとえば、関連情報51bの原価率が高い場合(原価率が閾値Th1以上となる場合)に、問題が発生しない傾向がある場合には、「問題が起こりにくい項目」を「原価率」とし、「問題の起こりにくい条件」を「閾値Th1以上」とし、選択関連情報70bに登録する。
関連情報51bの予想売上が低い場合(予想売上が閾値Th2未満となる場合)に、問題が発生しない傾向がある場合には、「問題が起こりにくい項目」を「予想売上」とし、「問題の起こりにくい条件」を「閾値Th2未満」とし、選択関連情報70bに登録する。
図3は、本実施例1に係る選択関連情報の一例を示す図である。図3に示すように、選択関連情報70bは、問題が起こりにくい項目と、問題が起こりにくい条件とを対応付ける。
ここでは、問題検出装置100が、統計処理によって、問題が起こりにくい項目を、関連情報51bから選択していたが、これに限定されるものではなく、管理者が、問題の起こりにくい項目を予め指定してもよい。この場合、問題検出装置100は、指定された問題が起こりにくい項目の値うち、問題の発生していない項目の値を平均することで、問題の起こりにくい条件を学習してもよい。
続いて、問題検出装置100の判定フェーズの処理について説明する。問題検出装置100は、問題発生の判定対象となる開発会議データ60を取得する。開発会議データ60には、音声ファイル61aと、関連情報61bとの組が複数組登録されている。以下の説明では、適宜、音声ファイル61aと、関連情報61bとの1つの組を「開発会議レコード」と表記する。たとえば、各開発会議レコードは、それぞれ異なる開発プロジェクトの会議に対応するものとする。
音声ファイル61aは、問題発生の判定対象となる開発プロジェクトの会議中に発話された音声を録音した音声ファイルである。関連情報61bは、問題発生の判定対象となる開発プロジェクトに関する各種の情報を有し、開発プロジェクトの各工程で引き継がれる。関連情報61bのデータ構造は、図2で説明した関連情報51bのデータ構造と同様である。音声ファイル61aは、音声情報の一例である。
問題検出装置100は、開発会議レコードに含まれる音声ファイル61aと、学習フェーズで学習しておいた予測モデル70aとを基にして、問題検出の確からしさを算出する。
また、問題検出装置100は、開発会議レコードに含まれる関連情報61bと、選択関連情報70bとを基にして、関連情報61bの項目のうち、問題の起こりにくい項目の値が、問題の起こりにくい条件を満たしているか否かを判定する。
たとえば、図3の選択関連情報70bを用いて説明する。問題検出装置100は、関連情報61bの項目のうち、原価率の値が閾値Th1以上である場合、または、予想売上が閾値Th2未満である場合に、「問題の起こりにくい条件を満たしている」と判定する。
一方、問題検出装置100は、関連情報61bの項目のうち、原価率の値が閾値Th1未満であり、かつ、予想売上が閾値Th2以上である場合に、「問題の起こりにくい条件を満たしていない」と判定する。
問題検出装置100は「問題の起こりにくい条件を満たしている」と判定した場合には、問題検出の確からしさに「0」を乗算する補正を行う。問題検出装置100は、「問題の起こりにくい条件を満たしていない」と判定した場合には、問題検出の確からしさに「1」を乗算する補正を行う。
問題検出装置100は、補正した問題検出の確からしさが閾値Th3以上の場合に、開発会議レコードに対応する開発プロジェクトに問題があると判定する。一方、問題検出装置100は、補正した問題検出の確からしさが閾値Th3未満の場合に、開発会議レコードに対応する開発プロジェクトに問題がないと判定する。問題検出装置100は、開発会議レコード毎に上記処理を繰り返し実行し、開発会議レコード毎に開発プロジェクトに問題があるか否かを判定する。
上記のように、本実施例1に係る問題検出装置100は、学習フェーズにおいて、学習データ50に基づき問題検出の確からしさを出力する予測モデル70aおよび選択関連情報70bを学習しておく。問題検出装置100は、判定フェーズにおいて、関連情報61bの項目のうち、選択関連情報70bで定義した問題の起こりにくい条件を満たすか否かに応じて、予測モデル70aの出力結果を補正する。これによって、誤検出を抑えながら、精度よく問題を検出することができる。たとえば、問題の起こりにくい条件を満たしているにも関わらず、問題発生の確からしさが大きいと、誤検出に繋がるが、問題の起こりにくい条件を満たすか否かに応じて、予測モデル70aの出力結果を補正するため、誤検出を抑止することができる。
次に、図1に示した問題検出装置100の構成の一例について説明する。図4は、本実施例1に係る問題検出装置の構成を示す機能ブロック図である。図4に示すように、この問題検出装置100は、通信部110と、記憶部120と、制御部130とを有する。
通信部110は、ネットワークを介して図示しない外部装置とデータ通信を実行する処理部である。通信部110は、通信装置の一例である。後述する制御部130は、通信部110を介して、外部装置から、学習データ50、開発会議データ60等を受信する。
記憶部120は、学習データ50、開発会議データ60、予測モデル70a、選択関連情報70bを有する。記憶部120は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
学習データ50は、学習フェーズにおいて、予測モデル70aを学習するために用いる情報である。図1で説明したように、学習データ50は、複数の学習レコードが登録されている。各学習レコードには、音声ファイル51a、関連情報51b、問題状況情報51cが含まれる。
開発会議データ60は、問題発生の判定対象となる複数の開発会議レコードを有する情報である。図1で説明したように、各開発会議レコードには、音声ファイル61a、関連情報61bが含まれる。
予測モデル70aは、学習データ50を基にして学習されるモデルである。図5は、本実施例1に係る予測モデルを説明するための概略図である。図5に示すように、この予測モデル70aは、ニューラルネットワークの構造を有し、入力層20a、隠れ層20b、出力層20cを持つ。入力層20a、隠れ層20b、出力層20cは、複数のノードがエッジで結ばれる構造となっている。隠れ層20b、出力層20cは、活性化関数と呼ばれる関数とバイアス値とを持ち、エッジは、重みを持つ。以下の説明では、適宜、バイアス値、重みをまとめて「パラメータ」と表記する。
入力層20aに含まれる各ノードに、音声ファイルの特徴量を入力すると、隠れ層20bを通って、出力層20cの各ノードから、音声ファイルに開発プロジェクトの問題が含まれる確率「Ot」と、問題が含まれない確率「On」とが出力される。
本実施例1では、予測モデル70aから出力される「問題検出の確からしさV」を、式(1)により定義する。式(1)に含まれるP(t)は、式(2)により定義される値である。式(1)に含まれるP(n)は、式(3)により定義される値である。
V=logP(t)-logP(n)・・・(1)
P(t)=exp(Ot)/{exp(Ot)+exp(On)}・・・(2)
P(n)=exp(On)/{exp(Ot)+exp(On)}・・・(3)
選択関連情報70bは、図3で説明したように、問題が起こりにくい項目と、問題が起こりにくい条件とを対応付ける情報である。
図4の説明に戻る。制御部130は、取得部130aと、分析部130bと、学習部130cと、判定部130dとを有する。制御部130は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、制御部130は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
取得部130aは、外部装置から学習データ50を取得した場合、取得した学習データ50を、記憶部120に登録する。取得部130aは、外部装置から開発会議データ60を取得した場合、取得した開発会議データ60を記憶部120に登録する。
分析部130bは、学習フェーズにおいて、学習データ50から学習レコードを取得し、取得した学習レコードの音声ファイル51aを分析し、特徴量を算出する。分析部130bは、算出した音声ファイル51aの特徴量を、学習部130cに出力する。
分析部130bは、判定フェーズにおいて、開発会議データ60から開発会議レコードを取得し、取得した開発会議レコードの音声ファイル61aを分析し、特徴量を算出する。分析部130bは、算出した音声ファイル61aの特徴量を、判定部130dに出力する。
図6は、本実施例1に係る分析部の構成を示す図である。図6に示すように、この分析部130bは、フレーム処理部80、ピッチ抽出部81、パワー算出部82、ピッチ・パワー蓄積部83、ストレス評価値算出部84、音声認識部85、音声認識結果蓄積部86、会議時間算出部87を有する。
フレーム処理部80は、音声ファイル(音声ファイル51aまたは音声ファイル61a)の信号時系列を、予め定められたサンプル数毎に「フレーム」として取り出し、フレームにハニング窓等の分析窓を乗算する。
たとえば、フレーム処理部80は、サンプリング周波数8kHzで32msの区間のサンプルNをフレームとして取り出す。たとえば、N=256とする。フレームに含まれる各サンプルを「s(0)、s(1)、s(2)、・・・、s(N-1)」とする。フレーム処理部80は、上記の各サンプルに対しハミング窓を乗算する。例えば、ハミング窓は、式(4)により示される。
各サンプルに対しハミング窓を乗算したサンプルを「x(0)、x(1)、x(2)、・・・、x(N-1)」とする。以下の説明では、ハミング窓を乗算した結果得られるサンプル「x(0)、x(1)、x(2)、・・・、x(N-1)」をサンプル値と表記する。フレーム処理部80は、フレームにハニング窓を乗算したサンプル値を、ピッチ抽出部81、パワー算出部82、音声認識部85に出力する。フレーム処理部80は、フレーム単位で、サンプル値の情報を出力し、フレーム識別番号をフレームに付与してもよい。
ピッチ抽出部81は、フレームのサンプル値を基にして、フレームの基本周波数(ピッチ)を抽出する処理部である。ピッチ抽出部81は、フレーム毎のピッチの情報を、ピッチ・パワー蓄積部83に蓄積する。
たとえば、ピッチ抽出部81は、フレームの各サンプル値を用いて、自己相関関数を計算する。ピッチ抽出部81は、式(5)に基づいて、自己相関関数φ(m)を計算する。式(5)に示すmは、遅延時間を示す。
ピッチ抽出部81は、式(5)について、遅延時間m=0以外において、自己相関関数が極大値となる遅延時間mの値を特定する。自己相関関数が極大となる遅延時間mを「遅延時間m’」と表記する。ピッチ抽出部81は、遅延時間m’を算出した後に、式(6)に基づいて、ピッチを算出する。
ピッチ=1/遅延時間m’・・・(6)
ピッチ抽出部81は、各フレームのサンプル値に対して、上記の処理を繰り返し実行することで、各フレームからピッチをそれぞれ算出する。ただし、前記自己相関関数の極大値が、予め決められた閾値以下の場合には、無音区間として、そのフレームのピッチとパワーは後の処理には使用しない。
パワー算出部82は、フレームのサンプル値を基にして、フレームのパワーを算出する処理部である。パワー算出部82は、フレーム毎のパワーの情報を、ピッチ・パワー蓄積部83に蓄積する。
たとえば、パワー算出部82は、フレームの各サンプル値「「x(0)、x(1)、x(2)、・・・、x(N-1)」の二乗値の総和に対し、対数をとることで、フレームのパワーを算出する。具体的に、パワー算出部82は、式(7)に基づいて、フレームのパワーを算出する。
ピッチ・パワー蓄積部83は、ピッチ抽出部81により抽出されたピッチの情報およびパワー算出部82により算出されたパワーの情報を格納するバッファである。図7は、本実施例1に係るピッチ・パワー蓄積部のデータ構造の一例を示す図である。図7に示すように、ピッチ・パワー蓄積部83は、フレーム識別番号と、ピッチと、パワーとを対応付ける。ただし、ピッチ抽出部81において無音区間とされたフレームはバッファには含めない。
ストレス評価値算出部84は、ピッチ・パワー蓄積部83に格納されたピッチおよびパワーの情報を基にして、ストレス評価値を算出する処理部である。たとえば、ストレス評価値算出部84は、利用者の平常時のピッチおよびパワーの組をサンプルとした際のばらつき具合と比較して、現在のピッチおよびパワーの組のサンプルのばらつき具合が大きいほど、ストレス評価値を大きくし、小さいほどストレス評価値を小さくする。
たとえば、ストレス評価値算出部84は、特開2015-82093等に記載された技術を用いて、ストレス評価値を算出する。図8は、通常の会話の音声ファイルから求められるピッチとパワーとの関係を示す図である。図8のグラフの縦軸は正規化ピッチに対応し、横軸は正規化対数パワーに対応する。図9は、異常な会話の音声ファイルから求められるピッチとパワーとの関係を示す図である。図9のグラフの縦軸は正規化ピッチに対応し、横軸は正規化対数パワーに対応する。
図8に示すように、通常の会話の音声ファイルでは、ピッチ(正規化ピッチ)とパワー(正規化対数パワー)の値は、話者の平均的な声の大きさ、高さを中心に分布する。一方、図9に示すように、異常な会話の音声ファイルでは、ピッチ(正規化ピッチ)とパワー(正規化対数パワー)の値が大きく広がる。かかる特性を用いて、ストレス評価値算出部84は、ピッチとパワーの値の広がり具合を数値化して、ストレス評価値を算出する。ストレス評価値算出部84は、ストレス評価値を算出する場合に、声の高さと大きさの統計量(平均値、分散)を活用する。なお、ストレス評価値は、話者別のストレスではなく、会議全体の異常度合い(通常とは異なる状態)を表す数値として使用する。
図6の説明に戻る。音声認識部85は、たとえば、ワードスポッティング型の音声認識を行うことで、音声情報に所定のキーワードが含まれているか否かを検出する処理部である。音声認識部85は、音声情報から所定のキーワードを検出する度に、所定のキーワードに対応する検出回数に1を加算する処理を行う。音声認識部85は、所定のキーワードと、検出回数とを対応付けた情報を、音声認識結果蓄積部86に蓄積する。所定のキーワードは、不満を感じた場合や、怒っている際によく発言するキーワードであり、予め設定される。
また、音声認識部85は、音声認識を行うための音声区間検出処理を開始し、音声区間を検出した際の、音声区間の開始時間と終了時間の情報を、会議時間算出部87に出力する。
音声認識結果蓄積部86は、音声認識部85により検出された各キーワード(所定のキーワード)の検出回数の情報(検出回数情報)を保持する。図10は、本実施例1に係る検出回数情報のデータ構造の一例を示す図である。図10に示すように、検出回数情報は、キーワードと検出回数とを対応付ける。
会議時間算出部87は、会議の開始時刻からの会議の終了時刻までの会議時間を計算する処理部である。たとえば、会議時間算出部87は、音声認識部85からの情報を基にして、音声ファイルのうち、最初の音声区間の開始時刻と、最後の音声区間の終了時刻との差を用いて、会議時間を算出する。
上記のように、分析部130bは、音声ファイルに対して分析を行い、ストレス評価値、検出回数情報、会議時間の情報を、音声ファイルの特徴量として算出する。分析部130bは、学習フェーズにおいて、音声ファイル51aの特徴量を、学習部130cに出力する。分析部130bは、判定フェーズにおいて、音声ファイル61aの特徴量を、判定部130dに出力する。
図4の説明に戻る。学習部130cは、学習フェーズにおいて、分析部130bによって分析される音声ファイル51aの特徴量と、この音声ファイル51aに対する問題状況情報51cとを基にして、予測モデル70aを学習する。
学習部130cは、音声ファイル51aの特徴量を予測モデル70aの入力層20aに入力し、出力層20cから出力される値が、問題状況情報51cに近づくように、予測モデル70aのパラメータを学習(誤差逆伝播法による学習)する。
たとえば、学習部130cは、問題状況情報51cに「問題が発生している」旨の情報が設定されている場合には、「Ot」の値が「On」の値よりも大きくなるように、予測モデル70aのパラメータを学習する。
たとえば、学習部130cは、問題状況情報51cに「問題が発生していない」旨の情報が設定されている場合には、「Ot」の値が「On」の値よりも小さくなるように、予測モデル70aのパラメータを学習する。
学習部130cは、学習データ50の各学習レコードに含まれる音声ファイル51aの特徴量、問題状況情報51cについて、上記処理を繰り返し実行することで、予測モデル70aのパラメータを学習する。学習部130cは、学習した予測モデル70aの情報を、記憶部120に登録する。
判定部130dは、判定フェーズにおいて、学習済みの予測モデル70aを基にして、各開発会議レコードについて、問題が発生しているか否かを判定する処理部である。図11は、本実施例1に係る判定部の構成を示す図である。図11に示すように、この判定部130dは、算出部90と、補正部91と、問題判定部93とを有する。
算出部90は、学習済みの予測モデル70aを用いて問題検出の確からしさの算出を実行する。算出部90は、音声ファイル61aの特徴量を予測モデル70aに入力し、予測モデル70aから出力される確率と、式(1)~式(3)を基にして、問題検出の確からしさVを算出する。算出部90は、問題検出の確からしさVの情報を、補正部91に出力する。
補正部91は、開発会議レコードに含まれる関連情報61bと、選択関連情報70bとを基にして、関連情報61bの項目のうち、問題の起こりにくい項目の値が、問題の起こりにくい条件を満たしているか否かを判定する。補正部91は、判定結果を基にして、問題検出の確からしさVを補正する処理を行い、補正した問題検出の確からしさV’の情報を、問題判定部93に出力する。
たとえば、図3の選択関連情報70bを用いて説明する。補正部91は、関連情報61bの項目のうち、原価率の値が閾値Th1以上である場合、または、予想売上が閾値Th2未満である場合に「問題の起こりにくい条件を満たしている」と判定し、問題検出の確からしさVに「0」を乗算することで、補正した問題検出の確からしさV’を算出する。
一方、補正部91は、関連情報61bの項目のうち、原価率の値が閾値Th1未満であり、かつ、予想売上が閾値Th2以上である場合に、「問題の起こりにくい条件を満たしていない」と判定し、問題検出の確からしさVに「1」を乗算することで、補正した問題検出の確からしさV’を算出する。
問題判定部93は、補正部91から取得する補正した問題検出の確からしさV’と、閾値Th3とを基にして、開発会議レコードに対応する開発プロジェクトに問題があるか否かを判定する。たとえば、問題判定部93は、補正した問題検出の確からしさV’が、閾値Th3以上である場合に、開発会議レコードに対応する開発プロジェクトに問題があると判定する。一方、問題判定部93は、補正した問題検出の確からしさV’が、閾値Th3未満である場合に、開発会議レコードに対応する開発プロジェクトに問題がないと判定する。
問題判定部93は、開発プロジェクトを一意に示す開発プロジェクト番号と、問題の有無とを対応付けた問題の検出結果を出力する。問題判定部93は、問題の検出結果を、記憶部120に登録してもよいし、外部装置に通知してもよい。
次に、本実施例1に係る問題検出装置100の処理手順の一例について説明する。図12は、本実施例1に係る問題検出装置の処理手順を示すフローチャートである。図12に示すように、問題検出装置100の分析部130b(フレーム処理部80)は、音声ファイルに対して、フレーム処理および窓掛を実行する(ステップS101)。
分析部130bのピッチ抽出部81は、フレームのピッチを検出する(ステップS102)。分析部130bのパワー算出部82は、フレームのパワーを検出する(ステップS103)。ピッチ抽出部81およびパワー算出部82は、ピッチ・パワー蓄積部83に、ピッチおよびパワーの値を蓄積する(ステップS104)。ストレス評価値算出部84は、ストレス評価値を算出する(ステップS105)。
分析部130bの音声認識部85は、フレームに対して音声認識を実行する(ステップS106)。音声認識部85は、キーワード(検出回数情報)を音声認識結果蓄積部86に蓄積する(ステップS107)。
分析部130bは、音声ファイルを最後まで分析したか否かを判定する(ステップS108)。分析部130bは、音声ファイルを最後まで分析していない場合には(ステップS108,No)、ステップS101に移行する。一方、分析部130bは、音声ファイルを最後まで分析した場合には(ステップS108,Yes)、ステップS109に移行する。
分析部130bの会議時間算出部87は、会議時間を算出する。問題検出装置100の判定部130dは、音声ファイルの特徴量を予測モデル70aに入力して、問題検出の確からしさを算出する(ステップS110)。
判定部130dは、関連情報61bおよび選択関連情報70bを取得する(ステップS111)。判定部130dは、関連情報61bおよび選択関連情報70bを基にして、問題検出の確からしさを補正する(ステップS112)。
判定部130dは、補正後の問題検出の確からしさが閾値Th3以上であるか否かを判定する(ステップS113)。判定部130dは、補正後の問題検出の確からしさが閾値Th3以上でない場合には(ステップS113,No)、処理を終了する。一方、判定部130dは、補正後の問題検出の確からしさが閾値Th3以上の場合には(ステップS113,Yes)、問題を検出する(ステップS114)。
次に、本実施例1に係る問題検出装置100の効果について説明する。問題検出装置100は、学習フェーズにおいて、学習データ50に基づき問題検出の確からしさを出力する予測モデル70aおよび選択関連情報70bを学習しておく。問題検出装置100は、判定フェーズにおいて、音声ファイルの特徴量を予測モデル70aに入力して、問題検出の確からしさを算出する。そして、問題検出装置100は、関連情報61bの項目のうち、選択関連情報70bで定義した問題の起こりにくい条件を満たすか否かに応じて、問題検出の確からしさを補正する。これによって、誤検出を抑えながら、精度よく問題を検出することができる。たとえば、問題の起こりにくい条件を満たしているにも関わらず、問題発生の確からしさが大きいと、誤検出に繋がるが、問題の起こりにくい条件を満たすか否かに応じて、予測モデル70aの出力結果を補正するため、誤検出を抑止することができる。
なお、発明者が行った実験では、原価率の計画時からの悪化量は、開発プロジェクトの音声ファイルの声の大きさの分散と相関が高いことは判明した。また、原価率が計画時より悪化する開発プロジェクトの音声ファイルを視聴したところ、会議が紛糾する傾向があることが分かっている。本実施例1のストレス評価値算出部84は、声の大きさや高さのばらつき具合を利用して、ストレス評価値を算出しており、会議が紛糾している場合と、紛糾していない場合とで、ストレス評価値に差が現れることを確認している。このため、ストレス評価値を問題検出の確からしさの算出に使用することで、問題検出の確からしさの精度を向上させることができる。
続いて、本実施例2に係る問題検出装置の処理について説明する。本実施例2に係る問題検出装置は、学習フェーズにおいて、音声ファイルの特徴量および関連情報を予測モデルに入力して、予測モデルの学習を行う。なお、本実施例2では、音声ファイルの特徴量として、キーワードの検出回数情報のみを用いる。
問題検出装置は、判定フェーズにおいて、音声ファイルの特徴量および関連情報を予測モデルに入力し、問題検出の確からしさを算出する。問題検出装置は、関連情報を基にして、問題の起こりにくい条件を満たすか否かに応じて、問題検出の確からしさを補正し、問題を検出する。
図13は、本実施例2に係る問題検出装置の構成を示す機能ブロック図である。図13に示すように、問題検出装置200は、通信部210と、記憶部220と、制御部230とを有する。
通信部210は、ネットワークを介して図示しない外部装置とデータ通信を実行する処理部である。通信部210は、通信装置の一例である。後述する制御部230は、通信部210を介して、外部装置から、学習データ50、開発会議データ60等を受信する。
記憶部220は、学習データ50、開発会議データ60、予測モデル75、選択関連情報70bを有する。記憶部220は、RAM、ROM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。
学習データ50は、学習フェーズにおいて、予測モデル75を学習するために用いる情報である。実施例1の図1で説明したように、学習データ50は、複数の学習レコードが登録されている。各学習レコードには、音声ファイル51a、関連情報51b、問題状況情報51cが含まれる。
開発会議データ60は、問題発生の判定対象となる複数の開発会議レコードを有する情報である。実施例1の図1で説明したように、各開発会議レコードには、音声ファイル61a、関連情報61bが含まれる。
予測モデル75は、学習データ50を基にして学習されるモデルである。予測モデル75は、図5で説明した予測モデル70aと同様にして、ニューラルネットワークの構造を有し、入力層20a、隠れ層20b、出力層20cを持つ。入力層20a、隠れ層20b、出力層20cは、複数のノードがエッジで結ばれる構造となっている。隠れ層20b、出力層20cは、活性化関数と呼ばれる関数とバイアス値とを持ち、エッジは、重みを持つ。以下の説明では、適宜、バイアス値、重みをまとめて「パラメータ」と表記する。
入力層20aに含まれる各ノードに、音声ファイルの特徴量を入力すると、隠れ層20bを通って、出力層20cの各ノードから、音声ファイルに開発プロジェクトの問題が含まれる確率「Ot」と、問題が含まれない確率「On」とが出力される。
本実施例2においても、実施例1と同様にして、「問題検出の確からしさV」を、式(1)により定義する。
選択関連情報70bは、実施例1の図3で説明したように、問題が起こりにくい項目と、問題が起こりにくい条件とを対応付ける情報である。
図13の説明に戻る。制御部230は、取得部230aと、分析部230bと、学習部230cと、判定部230dとを有する。制御部230は、CPUやMPUなどによって実現できる。また、制御部230は、ASICやFPGAなどのハードワイヤードロジックによっても実現できる。
取得部230aは、外部装置から学習データ50を取得した場合、取得した学習データ50を、記憶部220に登録する。取得部230aは、外部装置から開発会議データ60を取得した場合、取得した開発会議データ60を記憶部220に登録する。
分析部230bは、学習フェーズにおいて、学習データ50から学習レコードを取得し、取得した学習レコードの音声ファイル51aを分析し、特徴量を算出する。分析部230bは、算出した音声ファイル51aの特徴量を、学習部230cに出力する。
分析部230bは、判定フェーズにおいて、開発会議データ60から開発会議レコードを取得し、取得した開発会議レコードの音声ファイル61aを分析し、特徴量を算出する。分析部230bは、算出した音声ファイル61aの特徴量を、判定部230dに出力する。
図14は、本実施例2に係る分析部の構成を示す図である。図14に示すように、この分析部230bは、フレーム処理部231bと、音声認識部232bと、音声認識結果蓄積部233bとを有する。
フレーム処理部231bは、音声ファイル(音声ファイル51aまたは音声ファイル61a)の信号時系列を、予め定められたサンプル数毎に「フレーム」として取り出し、フレームにハニング窓等の分析窓を乗算する。フレーム処理部231bは、フレームにハニング窓を乗算したサンプル値を、音声認識部232bに出力する。フレーム処理部231bは、フレーム単位で、サンプル値の情報を出力し、フレーム識別番号をフレームに付与してもよい。フレーム処理部231bに関する他の説明は、実施例1で説明したフレーム処理部80の処理と同様である。
音声認識部232bは、たとえば、ワードスポッティング型の音声認識を行うことで、音声情報に所定のキーワードが含まれているか否かを検出する処理部である。音声認識部232bは、音声情報から所定のキーワードを検出する度に、所定のキーワードに対応する検出回数に1を加算する処理を行う。音声認識部232bは、所定のキーワードと、検出回数とを対応付けた検出回数情報を、音声認識結果蓄積部233bに蓄積する。所定のキーワードは、不満を感じた場合や、怒っている際によく発言するキーワードであり、予め設定される。
音声認識結果蓄積部233bは、音声認識部232bにより検出された各キーワード(所定のキーワード)の検出回数の情報(検出回数情報)を保持する。検出回数情報のデータ構造は、実施例1の図10で説明したものと同様である。検出回数情報は、音声ファイルの特徴量として、学習部230c、判定部230dに利用される。
図13の説明に戻る。学習部230cは、学習フェーズにおいて、分析部230bによって分析される音声ファイル51aの特徴量および関連情報51bと、この音声ファイル51aに対する問題状況情報51cとを基にして、予測モデル75を学習する。
学習部230cは、音声ファイル51aの特徴量および関連情報51bを予測モデル75の入力層20aに入力し、出力層20cから出力される値が、問題状況情報51cに近づくように、予測モデル75のパラメータを学習(誤差逆伝播法による学習)する。
たとえば、学習部230cは、問題状況情報51cに「問題が発生している」旨の情報が設定されている場合には、「Ot」の値が「On」の値よりも大きくなるように、予測モデル75のパラメータを学習する。
たとえば、学習部230cは、問題状況情報51cに「問題が発生していない」旨の情報が設定されている場合には、「Ot」の値が「On」の値よりも小さくなるように、予測モデル75のパラメータを学習する。
判定部230dは、判定フェーズにおいて、学習済みの予測モデル75を基にして、各開発会議レコードについて、問題が発生しているか否かを判定する処理部である。図15は、本実施例2に係る判定部の構成を示す図である。図15に示すように、この判定部230dは、算出部231dと、補正部232dと、問題判定部233dとを有する。
算出部231dは、学習済みの予測モデル75を用いて問題検出の確からしさの算出を実行する。算出部231dは、音声ファイル61aの特徴量および関連情報51bを予測モデル75に入力し、予測モデル75から出力される確率と、式(1)~式(3)を基にして、問題検出の確からしさVを算出する。算出部231dは、問題検出の確からしさVの情報を、補正部232dに出力する。
補正部232dは、開発会議レコードに含まれる関連情報61bと、選択関連情報70bとを基にして、関連情報61bの項目のうち、問題の起こりにくい項目の値が、問題の起こりにくい条件を満たしているか否かを判定する。補正部232dは、判定結果を基にして、問題検出の確からしさVを補正する処理を行い、補正した問題検出の確からしさV’の情報を、問題判定部233dに出力する。
たとえば、図3の選択関連情報70bを用いて説明する。補正部232dは、関連情報61bの項目のうち、原価率の値が閾値Th1以上である場合、または、予想売上が閾値Th2未満である場合に「問題の起こりにくい条件を満たしている」と判定し、問題検出の確からしさVに「0」を乗算することで、補正した問題検出の確からしさV’を算出する。
一方、補正部232dは、関連情報61bの項目のうち、原価率の値が閾値Th1未満であり、かつ、予想売上が閾値Th2以上である場合に、「問題の起こりにくい条件を満たしていない」と判定し、問題検出の確からしさVに「1」を乗算することで、補正した問題検出の確からしさV’を算出する。
問題判定部233dは、補正部232dから取得する補正した問題検出の確からしさV’と、閾値Th3とを基にして、開発会議レコードに対応する開発プロジェクトに問題があるか否かを判定する。たとえば、問題判定部233dは、補正した問題検出の確からしさV’が、閾値Th3以上である場合に、開発会議レコードに対応する開発プロジェクトに問題があると判定する。一方、問題判定部233dは、補正した問題検出の確からしさV’が、閾値Th3未満である場合に、開発会議レコードに対応する開発プロジェクトに問題がないと判定する。
問題判定部233dは、開発プロジェクトを一意に示す開発プロジェクト番号と、問題の有無とを対応付けた問題の検出結果を出力する。問題判定部233dは、問題の検出結果を、記憶部220に登録してもよいし、外部装置に通知してもよい。
次に、本実施例2に係る問題検出装置200の処理手順の一例について説明する。図16は、本実施例2に係る問題検出装置の処理手順を示すフローチャートである。図16に示すように、問題検出装置200の分析部230b(フレーム処理部231b)は、音声ファイルに対して、フレーム処理および窓掛を実行する(ステップS201)。
分析部230bの音声認識部232bは、フレームに対して音声認識を実行する(ステップS202)。音声認識部232bは、キーワード(検出回数情報)を音声認識結果蓄積部233bに蓄積する(ステップS203)。
分析部230bは、音声ファイルを最後まで分析したか否かを判定する(ステップS204)。分析部230bは、音声ファイルを最後まで分析していない場合には(ステップS204,No)、ステップS201に移行する。一方、分析部230bは、音声ファイルを最後まで分析した場合には(ステップS204,Yes)、ステップS205に移行する。
判定部230dは、関連情報61bを取得する(ステップS205)。判定部230dは、音声ファイル61aの特徴量および関連情報61bを予測モデル75に入力して、問題検出の確からしさを算出する(ステップS206)。
判定部230dは、選択関連情報70bを取得する(ステップS207)。判定部230dは、関連情報61bおよび選択関連情報70bを基にして問題検出の確からしさを補正する(ステップS208)。
判定部230dは、補正後の問題検出の確からしさが閾値Th3以上であるか否かを判定する(ステップS209)。判定部230dは、補正後の問題検出の確からしさが閾値Th3以上でない場合には(ステップS209,No)、処理を終了する。一方、判定部230dは、補正後の問題検出の確からしさが閾値Th3以上の場合には(ステップS209,Yes)、問題を検出する(ステップS210)。
次に、本実施例2に係る問題検出装置200の効果について説明する。問題検出装置200は、学習フェーズにおいて、音声ファイル51aの特徴量および関連情報51bを予測モデル75に入力して、予測モデル75のパラメータを学習する。問題検出装置200は、判定フェーズにおいて、音声ファイル61aの特徴量および関連情報61bを予測モデル75に入力し、問題検出の確からしさを算出する。また、問題検出装置200は、関連情報61bを基にして、問題の起こりにくい条件を満たすか否かに応じて、問題検出の確からしさを補正し、問題を検出する。本実施例2では、音声ファイルの特徴量に加えて、関連情報を予測モデル75に入力した場合の、問題検出の確からしさを算出することができる。また、音声ファイルの特徴量として、キーワードの検出回数(検出回数情報)のみを用いることで、計算コストを削減することができる。
なお、本実施例2では一例として、音声ファイルの特徴量として、検出回数情報を用いていたが、実施例1と同様にして、ストレス評価値、検出回数情報、会議時間の情報を、音声ファイルの特徴量として用いてもよい。
ところで、本実施例1、2の問題検出装置100(200)の処理は一例であり、問題検出装置100は、他の処理を実行してもよい。以下において、問題検出装置100のその他の処理1、2について説明する。
問題検出装置100が実行するその他の処理1について説明する。問題検出装置100は、「問題が起こりにくい項目」と、「問題が起こりにくい条件」とを学習して、選択関連情報70bに登録していたが、これに限定されるものではない。
問題検出装置100の学習部130cは、「問題の起きやすい項目」と、「問題の起きやすい条件」とを学習して、選択関連情報70bに登録する。たとえば、開発プロジェクトにおいて、特定の担当者(担当者識別番号:U102)が、問題をよくおこす傾向がある場合に、学習部130cは、「問題の起きやすい項目:担当者識別番号」、「問題の起きやすい条件:担当者識別番号がU102である」を登録する。
たとえば、開発プロジェクトにおいて、原価率が低い場合に、問題をよく起きる傾向がある場合に、学習部130cは、「問題の起きやすい項目:原価率」、「問題の起きやすい条件:原価率が閾値Th4未満」を登録する。計画時の原価率が非常に低い場合、原価率悪化という問題が発生しやすい。
問題検出装置100の補正部91は、関連情報61bの項目のうち、担当者識別番号が「U102」である場合、または、原価率の値が閾値Th4未満である場合に、「問題の起きやすい条件を満たしている」と判定し、問題検出の確からしさVに「10」を加算することで、補正した問題検出の確からしさV’を算出する。
問題検出装置100の補正部91は、関連情報61bの項目のうち、担当者識別番号が「U102」でなく、かつ、原価率の値が閾値Th4以上である場合に、「問題の起きやすい条件を満たしていない」と判定し、問題検出の確からしさVに「0」を加算することで、補正した問題検出の確からしさV’を算出する。
問題検出装置100が実行するその他の処理2について説明する。問題検出装置100の学習部130cは、学習データ50を基にして、選択関連情報70bを学習する場合に、問題が発生した頻度情報と、関連情報51bの項目の値とを関連付けて、選択関連情報70bに登録してもよい。学習部130cは、関連情報51bの項目の値を複数の階級に分け、階級毎の問題発生確率を求め、問題発生確率が閾値未満の階級を「0」、問題発生確率が閾値以上の階級を「1」とした、階級毎の重みを設定する。
図17は、問題検出装置のその他の処理を説明するための図である。図17では一例として、関連情報の項目「原価率」を用いて説明する。図17のテーブル150に示すように、問題検出装置100の学習部130cは、原価率について、階級1「0~25%」、階級2「25%~50%」、階級3「50%~75%」に関し、問題発生確率が閾値以上(問題が起きやすい)の場合には、重みを「1」に設定する。
学習部130cは、原価率について、階級4「75%~100%」に関し、問題発生確率が閾値未満(問題が起きにくい)の場合には、重みを「0」に設定する。
問題検出装置100の補正部91は、関連情報61bの項目のうち、原価率の値と、テーブル150の階級とを比較し、該当する階級の重みを特定する。補正部91は、問題検出の確からしさに、特定した重みを乗算することで、補正した問題検出の確からしさV’を算出する。
たとえば、補正部91は、関連情報61bの原価率の値が「30%」である場合には、テーブル150の階級2に対応する重み「1」を特定する。補正部91は、問題検出の確からしさに、特定した重み「1」を乗算することで、補正した問題検出の確からしさV’を算出する。
補正部91は、関連情報61bの原価率の値が「80%」である場合には、テーブル150の階級4に対応する重み「0」を特定する。補正部91は、問題検出の確からしさに、特定した重み「0」を乗算することで、補正した問題検出の確からしさV’を算出する。
次に、上記実施例に示した問題検出装置100,200と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図18は、問題検出装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
図18に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303とを有する。また、コンピュータ300は、記憶媒体からプログラム等を読み取る読み取り装置304と、有線または無線ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置305とを有する。例えば、インターフェース装置305は、通信装置等に接続される。また、コンピュータ300は、各種情報を一時記憶するRAM306と、ハードディスク装置307とを有する。そして、各装置301~307は、バス308に接続される。
ハードディスク装置307は、取得プログラム307a、分析プログラム307b、学習プログラム307c、判定プログラム307dを有する。ハードディスク装置307は、取得プログラム307a、分析プログラム307b、学習プログラム307c、判定プログラム307dを読み出してRAM306に展開する。
取得プログラム307aは、取得プロセス306aとして機能する。分析プログラム307bは、分析プロセス306bとして機能する。学習プログラム307cは、学習プロセス306cとして機能する。判定プログラム307dは、判定プロセス306dとして機能する。
取得プロセス306aの処理は、取得部130a、230aに対応する。分析プロセス306bの処理は、分析部130b、230bに対応する。学習プロセス306cの処理は、学習部130c、230cに対応する。判定プロセス306dの処理は、判定部130d、230dに対応する。
なお、各プログラム307a~307dについては、必ずしも最初からハードディスク装置307に記憶させておかなくても良い。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300が各プログラム307a~307dを読み出して実行するようにしても良い。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)音声情報を分析することで得られる特徴量に基づいて、問題発生の確からしさを示す情報を出力するモデルを学習する学習部と、
問題発生の有無の判定対象となる音声情報を分析することで得られる特徴量を前記モデルに入力して問題発生の確からしさを示す情報を算出し、算出した前記問題発生の確からしさを、会議の関連情報に基づいて補正し、補正後の値に基づいて、問題の有無を判定する判定部と
を有することを特徴とする問題検出装置。
(付記2)前記判定部は、前記関連情報に含まれる複数の項目のうち、所定の項目の値が、問題の発生しにくい値になっている場合に、前記モデルから出力される問題発生の確からしさを小さくする補正を行うことを特徴とする付記1に記載の問題検出装置。
(付記3)前記判定部は、前記関連情報に含まれる複数の項目のうち、開発プロジェクトの計画時の売上高、および、原価率の値が、問題の発生しくにい値となっている場合に、前記モデルから出力される問題発生の確からしさを小さくする補正を行うことを特徴とする付記2に記載の問題検出装置。
(付記4)前記判定部は、前記関連情報に含まれる複数の項目のうち、所定の項目の値が、問題の発生しやすい値になっている場合に、前記モデルから出力される問題発生の確からしさを大きくする補正を行うことを特徴とする付記1、2または3に記載の問題検出装置。
(付記5)前記音声情報を分析し、前記音声情報に含まれる所定のキーワードの情報を、前記特徴量として抽出する分析部を更に有することを特徴とする付記1~4のいずれか一つに記載の問題検出装置。
(付記6)前記分析部は、前記音声情報を分析し、音声の大きさおよび高さの統計情報を、前記特徴量として抽出することを特徴とする付記5に記載の問題検出装置。
(付記7)コンピュータが実行する問題検出方法であって、
音声情報を分析することで得られる特徴量に基づいて問題発生の確からしさを示す情報を出力するモデルを学習し、
問題発生の有無の判定対象となる音声情報を分析することで得られる特徴量を前記モデルに入力して問題発生の確からしさを示す情報を算出し、
算出した前記問題発生の確からしさを、会議の関連情報に基づいて補正し、
補正後の値に基づいて、問題の有無を判定する
処理を実行することを特徴とする問題検出方法。
(付記8)前記補正する処理は、前記関連情報に含まれる複数の項目のうち、所定の項目の値が、問題の発生しにくい値になっている場合に、前記モデルから出力される問題発生の確からしさを小さくする補正を行うことを特徴とする付記7に記載の問題検出方法。
(付記9)前記補正する処理は、前記関連情報に含まれる複数の項目のうち、開発プロジェクトの計画時の売上高、および、原価率の値が、問題の発生しくにい値となっている場合に、前記モデルから出力される問題発生の確からしさを小さくする補正を行うことを特徴とする付記8に記載の問題検出方法。
(付記10)前記補正する処理は、前記関連情報に含まれる複数の項目のうち、所定の項目の値が、問題の発生しやすい値になっている場合に、前記モデルから出力される問題発生の確からしさを大きくする補正を行うことを特徴とする付記7、8または9に記載の問題検出方法。
(付記11)前記音声情報を分析し、前記音声情報に含まれる所定のキーワードの情報を、前記特徴量として抽出する処理を更に実行することを特徴とする付記7~10のいずれか一つに記載の問題検出方法。
(付記12)前記分析する処理は、前記音声情報を分析し、音声の大きさおよび高さの統計情報を、前記特徴量として抽出することを特徴とする付記11に記載の問題検出方法。
(付記13)コンピュータに、
音声情報を分析することで得られる特徴量に基づいて問題発生の確からしさを示す情報を出力するモデルを学習し、
問題発生の有無の判定対象となる音声情報を分析することで得られる特徴量を前記モデルに入力して問題発生の確からしさを示す情報を算出し、
算出した前記問題発生の確からしさを、会議の関連情報に基づいて補正し、
補正後の値に基づいて、問題の有無を判定する
処理を実行させることを特徴とする問題検出プログラム。
(付記14)前記補正する処理は、前記関連情報に含まれる複数の項目のうち、所定の項目の値が、問題の発生しにくい値になっている場合に、前記モデルから出力される問題発生の確からしさを小さくする補正を行うことを特徴とする付記13に記載の問題検出プログラム。
(付記15)前記補正する処理は、前記関連情報に含まれる複数の項目のうち、開発プロジェクトの計画時の売上高、および、原価率の値が、問題の発生しくにい値となっている場合に、前記モデルから出力される問題発生の確からしさを小さくする補正を行うことを特徴とする付記14に記載の問題検出プログラム。
(付記16)前記補正する処理は、前記関連情報に含まれる複数の項目のうち、所定の項目の値が、問題の発生しやすい値になっている場合に、前記モデルから出力される問題発生の確からしさを大きくする補正を行うことを特徴とする付記13、14または15に記載の問題検出プログラム。
(付記17)前記音声情報を分析し、前記音声情報に含まれる所定のキーワードの情報を、前記特徴量として抽出する処理を更に実行することを特徴とする付記13~16のいずれか一つに記載の問題検出プログラム。
(付記18)前記分析する処理は、前記音声情報を分析し、音声の大きさおよび高さの統計情報を、前記特徴量として抽出することを特徴とする付記17に記載の問題検出プログラム。