【文献】
中野魁人,外3名,授業グループワークの音声認識精度改善のためのマルチチャネルVAD,情報処理学会第82回全国大会講演論文集,2020年 2月,p.2-173〜2-174
(58)【調査した分野】(Int.Cl.,DB名)
発話者ごとに1が装着された3以上の接話マイクロフォンから出力された各音声データを、時間情報及び前記接話マイクロフォンの識別情報と共に格納する記憶部と、各音声データをデータ処理する処理部とを備えた発話区間推定装置であって、
前記処理部は、
前記の音声データの各々から、あらかじめ定めた単位時間ごとの音声パワー点における音声パワー値を演算して、前記各々に対する音声パワーを求める音声パワー演算部と、
前記音声パワー値が、あらかじめ定めた閾値a未満である音声パワー点に対し、閾値a未満である旨のラベル情報aを付与する音声パワー加工演算部と、
前記音声パワーの1と前記音声パワーの他の1との対を用いて、又は別途用意した個別データを用いて、前記対における分離ラインを演算する分離ライン演算部と、
前記の分離ラインを用い、前記音声パワーの1に対応する発話者の非発話点か否かを前記音声パワー点ごとに推定し、非発話点と推定された音声パワー点に対し、非発話点である旨のラベル情報cを付与する推定部と、
前記ラベル情報aと前記ラベル情報cとが付与された音声パワー点に対応する音声データの区間を、対応する発話者の非発話区間として当該音声データから除外する旨のマーキングを行う除外部とを
備えたことを特徴とする発話区間推定装置。
前記音声パワー加工演算部はさらに、前記音声パワー値が、前記閾値aより大きくあらかじめ定められた閾値b以上である音声パワー点に対し、閾値b以上である旨のラベル情報bを付与することを特徴とする請求項1から4のいずれかに記載の発話区間推定装置。
前記音声パワー点のいずれかが、前記ラベル情報bと前記ラベル情報cの両方を付与された場合には、付与された当該ラベル情報cを消去することを特徴とする請求項5又は6に記載の発話区間推定装置。
前記の分離ラインを演算するにあたり、前記音声パワーの1に対応する発話者の発話点と推定された前記音声パワー点の集合の重心と、前記音声パワーの1に対応する発話者の非発話点と推定された前記音声パワー点の集合の重心とを用いることを特徴とする請求項1から7のいずれかに記載の発話区間推定装置。
前記の分離ラインを演算するにあたり、前記音声パワーの1に対応する発話者の発話点と推定された前記音声パワー点の集合の正規分布と、前記音声パワーの1に対応する発話者の非発話点と推定された前記音声パワー点の集合の正規分布とを用い、前記2つの正規分布について同じ尤度となるように前記分離ラインを定めることを特徴とする請求項1から7のいずれかに記載の発話区間推定装置。
前記の分離ラインを演算するにあたり、前記音声パワーの1に対応する発話者の発話点と推定された前記音声パワー点の集合と、前記音声パワーの1に対応する発話者の非発話点と推定された前記音声パワー点の集合とにおいて、サポートベクターマシンを用いることを特徴とする請求項1から7のいずれかに記載の発話推定装置。
前記の分離ラインを演算するにあたり、前記音声パワーの各々単独で発話区間検知を行って1次分離ラインを求めることを特徴とする請求項1から10のいずれかに記載の発話区間推定装置。
前記の分離ラインを演算するにあたり、前記1次分離ラインを用いて、音声パワーの1に対応する発話者の発話点と推定された前記音声パワー点の集合と、非発話点と推定された前記音声パワー点の集合とを用いて、2次分離ラインを求めることを特徴とする請求項11に記載の発話区間推定装置。
【背景技術】
【0002】
グループワークや会議のような場合に、マイクロフォンで収音した音声データに複数人の音声が混ざるため、音声認識に間違いが生じやすい。特に発話者が3人以上の場合には、複数人が任意に顔の向きを変えたり移動したりして発話し得ることから、技術的に難しい問題になっている。
【0003】
これに対処する方法として、音声ごとに発話者を特定しようとする試みがある。例えば、マイクロフォン以外にカメラ等を用いて、顔や唇の画像から発話者を特定しようとする試みがある(例えば、特許文献1又は2参照)。しかし、この方法では、各人が、顔をカメラ方向に常に向けているという前提でも最低一台のカメラが必要である。さらに、各人が任意にカメラと逆の方向を向いて発話したり、空間的に移動したりする場合には、各人の顔を確実にとらえるには複数台のカメラを設置して画像処理する必要がある。そのため、設備が複雑で高価なものになってしまう欠点がある。
【0004】
また、位置があらかじめ特定された複数の固定マイクロフォン(分散マイクロフォンアレー)を用い、各固定マイクロフォンに到達する音声のパワーを非負値行列因子分解することで、各話者の音声に分離しようとする試みもある(例えば、非特許文献1参照)。しかし、この方法では、各人が空間的に任意に移動して固定マイクロフォンとの位置関係が変化してしまうと、音声の分離が難しくなる。さらに、発話者が顔の方向を変えて発話するだけでも誤差が生じるという問題がある。特に位相を使用するマイクロフォンアレイ技術の場合には、複数マイクロフォンからの音声データがサンプル点の粒度で正確に同期されていなければならない。そのため、同時に多チャンネルの音声を収録する単一のマルチトラックオーディオデバイスの使用が前提になってしまう問題点がある。
【0005】
また、話者が2人の場合であるが、音声パワーの大小比較により発話者を特定しようとする試みもある(例えば、特許文献3参照)。ところが、各人の声量には個人差があるうえに、発話者が顔の方向を変えて発話するだけでも誤差が生じる。単純な大小比較では間違いが多くなることが避けられない。さらにその声量の違いを補償するために各マイクロフォンに増幅器を設けた場合には、その作用により音声パワーの大小比較による発話者の特定がさらに困難になってしまう。そこで、増幅器を用いる場合には、単純な大小比較ではなく、固定マイクロフォンへの音声の到達時間のずれから相関係数を求めることにより、発話者を特定しようと試みている。
【0006】
しかし、いずれの場合でも発話者が3人以上の場合には、各人の位置や声量の違いが絡み合うため、音声パワーの単純な大小比較による発話者の特定が困難である。また、到達時間のずれを利用するためには、ニュース番組収録中のアナウンサーのごとく、マイクロフォン位置や各発話者の位置が変化しないことを暗黙の前提とせざるを得ない。そのため、各発話者が任意に移動して発話するグループワークのような場合には適用できない。
【0007】
また、3人以上の場合でも、同時刻における音量の大小比較をおこなって、発話者を特定しようとする試みがある(例えば、特許文献4参照)。しかし、上記したとおり、各人の位置や声量の違いが互いに絡み合うため、音声パワーの単純な大小比較だけでは、発話者の特定に大きな誤差が生じてしまう。
【0008】
また、会議テーブルの中央などに集中的に配置した複数のマイクロフォン(マイクロフォンアレー)を用いて、複数発言者の音声が混じった複数の音声データを用いて、発言者ごとの音声データに分離しようとする試みもある(例えば、特許文献5参照)。この方法では、最小分散法や遅延和法などの位相差を応用した技術と、独立成分分析を応用した技術の2通りがある。これらの技術では、通常、発言者数以上の数のマイクロフォンで取得した複数の音声データを用い、対象話者の音声を強調した音声データを出力する。これにより、処理後音声データごとの発言者を特定しようとする。しかし、この処理を行っても、特定された発言者の音声を相対的に大きくし、他の発言者の音声を相対的に小さくすることができるだけで、他の発言者の音声をシャットアウトすることはできない。そのため、処理された音声データを用いて音声認識を行っても依然として間違いが生じやすい。
【0009】
独立成分分析による音声分離処理では、複数の音声データの統計的な独立性を高めるように分離行列を学習する。そのために、事前にある程度の分量のデータを取得し、学習しておく処理が必要になるため処理コストが高い、
【0010】
一方、各発話者にヘッドセットマイクロフォンのような接話マイクロフォンを装着し、あるマイクロフォンが出力した音声データは、そのマイクロフォンを装着した発話者のものと推定することにより、発話者の特定に関する上記の問題をあらかじめ回避しようとする試みも行われている。
【0011】
しかし、ある接話マイクロフォンが出力した音声データには、その接話マイクロフォンを装着した発話者の音声データのみならず、他の発話者の音声データも混入してしまうことが多い。その場合、ある発話者が装着した接話マイクロフォンから出力された音声データのうちの、どこがその発話者の発話区間であり、どこが非発話区間なのかの発話区間検知(以下、VAD:Voice Activity Detection、と略すことがある。)を行う必要が生じる。しかし、これを的確に行うことは困難であり、音声認識の精度が低下する原因となっていた。
【0012】
特に発話者が3人以上の場合は、各発話者の声量に違いがあるうえ、各発話者間の距離が常に変化し、発話する際の体や顔の向きも同様に常に変化する。したがって、これらの要素が絡み合って発話者の発話区間を的確に推定するのはかなり困難であった。
【0013】
そこで、発話者ごとに咽喉マイクとピンマイクとを併用して装着させ、咽喉マイクにより発話者の咽喉の震えを検知しつつピンマイクで音声データを取得することにより、各発話者の発話区間の推定精度を高めようとする試みもある(例えば、非特許文献2参照)。しかし、この方法では咽喉マイクという特殊な機器を用いる。そのため、咽喉元にマイクを貼らなければならないことによる心理的負担や肉体的な違和感が大きい。さらに咽喉マイクと着衣との衣擦れ音や嚥下の際の雑音を除去する必要が新たに生じるうえ、機器コストも増大するという問題点がある。
【発明を実施するための形態】
【0023】
本発明の発話区間推定装置では、3以上の接話マイクロフォンを用いて、それぞれで収音された各音声データからサンプリングして演算した音声パワーを用いる。そして、複数の音声パワーを組み合わせたマルチチャンネルによる発話区間推定を統計的に行う。これにより、接話マイクロフォンを装着した発話者が、発話していない非発話区間を精度よく特定し、その音声データから非発話区間を精度よく除外することができる。その結果、音声認識の精度が向上する。
【0024】
グループワークや会議のように、複数人、特に3人以上の発話者が互いに接近したり離れたりなどしながら発話し得る場合において、比較的簡単な設備と少ないデータ処理量及び作業量で済む。
【0025】
グループワークや会議としては、学校の授業や企業の会議・研修等で行われる集団での討論やブレーンストーミングのごとき、3人以上の複数人が自由に移動しながら発話して行う場合をいう。ここで、自由に移動とは、文字通り前後左右に体を自由に移動する場合だけではなく、椅子に座っていても発話する際の顔の方向を自由に変えられる場合も含む。具体的には、学校の授業で行うグループディスカッションや、会議の議事録をとりたい場合や、3人以上が公開討論する場合に、各人の発話内容をテキストで字幕上や画面上に発話者名を特定して直ちに表示したい場合などであってもよい。
【0026】
図1は、本発明の装置を用いる場合のハードウェア構成の例を示した図である。この構成例は、まず音声データをデジタル録音し、しかるのち、発話区間推定処理をまとめて行うバッチ処理に適している。
図1(a)は、グループワーク等を行って収音している際の構成であり、(b)は、そののちに、まとめて発話区間処理を行う際の構成を示している。
【0027】
1は接話マイクロフォンであり、具体的にはヘッドセットマイクやピンマイクのような、発話者の頭部や口元近くを中心とする身体に装着して、発話者の音声を中心に収音するマイクロフォンである。接話マイクロフォンは発話者1人に1台を装着すればよい。本発明は、この接話マイクロフォンが3台以上、すなわち発話者が3人以上の場合に適している。
【0028】
2はICレコーダである。各接話マイクロフォン1が収音した音声データは、直ちに各発話者が持つICレコーダ2にデジタル録音される。録音された音声データは、その後に、パーソナルコンピュータを用いて構成された発話区間推定装置3の記憶部20に格納される。その際、音声データごとに、収音された際の時間情報と、接話マイクロフォンの識別情報とが結び付けて格納される。
【0029】
図2は、本発明の装置を用いる場合のハードウェア構成の別の例を示した図である。この構成例は、バッチ処理にも使用できるが、接話マイクロフォン1が収音するとデジタル録音と発話区間推定、さらには音声認識処理が同時進行するオンライン処理に適している。4はマルチトラックオーディオインターフェイスであり、接話マイクロフォン1と無線又は有線で通信可能に接続されている。また、マルチトラックオーディオインターフェイス4は、発話区間推定装置3とも通信可能に接続されており、各接話マイクロフォン1が収音した音声データは、音声データごとに、収音された際の時間情報と、接話マイクロフォンの識別情報とを結び付けて、逐次的に記憶部20に格納される。
【0030】
その他の構成例としては、接話マイクロフォン1の各々に、音声データに時間情報を付与できる通信機器、例えばスマートフォン等を接続し、各スマートフォンがwifi又はBluetooth(登録商標)のような無線通信を介して発話区間推定装置3と通信可能にする例をあげることができる。この構成例はバッチ処理にもオンライン処理にも適している。
【0031】
以下では、主にバッチ処理の例で説明し、オンライン処理の場合に関しては後述する。
【0032】
図3は、発話区間推定装置3の概略構成を示した概念図である。処理部10は、CPUと記憶部20から随時読みだしたプログラム及びデータとにより構成される。記憶部20は、HDDやSSD等の記憶素子と、記憶素子に格納されているプログラム類とデータ類とにより構成される。通信インターフェイス50は、必要によりICレコーダ2やマルチトラックオーディオインターフェイス4に接続される。
【0033】
記憶部20のマイク識別テーブル30は、使用される接話マイクロフォンを特定するための識別名および識別コード、必要により各接話マイクロフォンを装着した各発話者の氏名等を結び付けてあらかじめ格納している。
【0034】
記憶部20の音声データ31は、各接話マイクロフォン1が収音した各音声データを、収音する際の各時間情報及び各接話マイクロフォン1の識別情報とを結び付けてそれぞれ格納している。
【0035】
図4は、発話区間推定装置3による発話区間推定のための処理全体の概略フローチャートである。発話区間推定処理がスタートすると、まず音声パワー演算部11が、それぞれの接話マイクロフォンから収音された音声データごとに音声パワーを生成し、記憶部20の音声パワーデータ32に格納する(S100ステップ)。
【0036】
ここで、
図5に、音声パワー演算部11が音声パワーを生成する方法を説明する図を示した。
図5(a)には接話マイクロフォンが収音したデジタル音声データを示しており、横軸は収音時間であり縦軸は音の振幅である。サインカーブはサンプリングに用いる窓関数を意味する。音声パワーを生成するためには、
図5(a)に示したようなあらかじめ定められたサイズのフレームを設定する。
【0037】
そして、1つのフレーム内の音声データから演算した音量について時間平均し、さらに常用対数をとって10倍し、dB単位に換算して音声パワー値とする。これで時間が特定された1つの音声パワー点が得られる。
【0038】
フレームは、あらかじめ定めた単位時間ごとにシフトする。各時間においてフレーム内の音声データがサンプリングされ、各時間の音声パワー点が生成される。なお、標準的には、フレームサイズは20ミリ秒、シフトする単位時間は10ミリ秒とすることが多いが、これに限定されるものではない。
【0039】
図5(b)は、(a)から演算した複数の音声パワー値の音声パワー点を、時間を横軸、音声パワー値を縦軸として示した図である。これは1つの音声データに対応する1つの音声パワーの例である。つまり、1つの音声パワーは、1つの音声データから演算された音声パワー値の音声パワー点が、各点の収音時間に従って順序付けられたものである。この各点は、対応するフレーム内の音声サンプルのパワーの時間平均となっており、元の音声データが含んでいる位相情報を含まない。そのため、データ量は比較的小さい。
【0040】
さらに、音声パワーの各点の音声パワー値からあらかじめ定めた背景雑音の音声パワー値を差し引く。背景雑音は、発話者の誰もが発話していない状態での背景音をいい、この音声パワー値を準定常的なものとみなしている。背景雑音の音声パワー値は、ドアの閉まる音などの非定常雑音を含まない区間での音声パワーを平均して値を求めればよい。背景雑音に相当する区間を知るために、後述のシングルチャンネルVADの技術を利用してもよい。非定常雑音の区間を確実に含まないようにするためには、閾値としてやや小さめの値を設定することが好ましい。なお、背景雑音の音声パワー値は、各接話マイクロフォンのゲイン設定が異なることから、各接話マイクロフォンに対応する音声パワーごとに異なるのが通常である。そのため、音声パワーごとに設定することが好ましい。
【0041】
このように背景雑音の音声パワー値(単位:dB)を差し引いて換算された音声パワー値(単位:dB)を、以下、Local−SNR(局所S/N比)と呼ぶことがある。背景雑音の音声パワー値は平均によりもとめたものであるから、誰も発声していない背景雑音の区間においては、Local−SNRで表された各音声パワー点の値は、0を中心として正の方向や負の方向に変動する挙動を示す。
【0042】
このように換算された音声パワーを用いることにより、背景雑音のパワーに影響されずに発話の音声パワーを評価できるので、発話区間推定の精度が高くなる。また、接話マイクロフォンごとに異なるゲイン設定を補正する効果も合わせ得る。換算された音声パワーは、記憶部20の音声パワーデータ32に格納される。以下では、換算された音声パワーを、特に言及しない限り単に音声パワーとして説明する。
【0043】
記憶部20の閾値a・閾値bテーブル33には、あらかじめ定められてLocal−SNRに換算された閾値aと閾値bが格納されている。閾値aと閾値bは以下の意味を有する。
【0044】
接話マイクロフォンを装着した発話者の一人に注目した場合に、その発話者が発話すると、その音声データの音声パワーの値は、十分に正の方向へシフトする。そこで、その発話者が発話したか否かを判定するためにある閾値を設定する。この閾値は、音声パワー値がこの閾値以上になった音声パワー点は、その発話者の発話区間に属する可能性が高くなるように設定する。一方、注目しているその発話者以外の他の発話者が発話すると、注目している発話者の音声データに他の発話者の発話が混入する。この場合、注目している発話者の音声の音声パワーはやはり正の方向へシフトする。しかし、その混入に起因する音声パワー値は、注目している発話者の音声パワー値よりも比較的小さいと考えられる。そこで、この閾値は、注目している発話者の音声パワーより小さく、その他の発話者の音声パワーより大きくなるように設定すればよい。この閾値を閾値aとする。閾値 a の具体的な値としては、状況によって変化するものの、例えば 5から15dB程度に設定することが好ましい。
【0045】
さらに、閾値は、閾値aより大きなもう一つの閾値を設けて二つにするのが好ましい。この理由は以下のとおりである。
【0046】
例えば、接話マイクロフォンを装着して注目している発話者以外の他の発話者が、想定以上に大きな音声パワーで発話することが有り得る。その場合、注目している発話者の音声データに、注目している発話者の音声パワー値と同程度の音声パワー値で、他の発話者の音声が混入することが有り得る。そうすると、その音声が、注目している発話者の発話なのか他の発話者の発話なのかを区別することができない。一方で、注目している発話者の音声データに、音声が、注目している発話者からの発話であろうと十分に判断できるほど大きな音声パワー値で入力することもあり得る。この場合は、注目している発話者の発話であると十分判断できる。これら二つの場合は、いずれも閾値a以上の音声パワーによる入力の範囲内で生じるので、これらを区別するために閾値bを設けることが好ましい。
【0047】
つまり、閾値b は、閾値aより大きい値であって、注目している発話者の音声データに入力した音声パワー値がこれよりも大きければ、他の発話者の発声の大きさに関わらず、注目している発話者からの音声であろうと十分に判断できる値である。閾値bの具体的な値としては、15から25dB程度に設定することが好ましい。
【0048】
以上の閾値に関する説明をまとめる。閾値aは小さめの値である。注目している発話者の音声データに入力した音声の音声パワー値が閾値a未満の領域にあれば、その音声が他の発話者からの発声なのか注目している発話者からの発声なのか、あるいは背景雑音であるのかに関わらず、発話とは認められないくらい小さいのであるから、注目している発話者の発話ではないと判断できる。
【0049】
また、閾値bは大きめの値である。閾値aと閾値bとの間の領域は、注目している発話者の音声データにその領域に含まれる音声パワー値で入力した音声が、注目している発話者の発話かもしれないし、その他の発話者の発話が混入している発話かもしれないという中間領域である。この中間領域について、後述のように、注目している発話者の音声パワーとその他の発話者の音声パワーとの対を用いて、注目している発話者の発話部分を、より正確に推定する。
【0050】
さらに、注目している発話者の音声データに入力した音声の音声パワー値が閾値b以上の領域にあれば、無条件に注目している発話者の音声であると判断できる。
【0051】
次に、
図4に戻って、フローはS200ステップに移行する。記憶部20の音声パワーデータ32には、複数の音声データの各々から演算された複数の音声パワーが格納されている。各音声パワーは、それぞれに対応する各音声データを介して各発話者に紐づけされている。
【0052】
S200ステップでは、まず1人の発話者Aを選択する。次に、記憶部20の音声パワーデータ32に格納されている音声パワーの中から、発話者Aに対応する音声パワーを選択して音声パワーAとして読みだす。音声パワーAは、これに紐づけられた発話者Aの発話で占有されていると期待されるが、実際には他の発話者の音声も混入している。そのため、他の発話者の発話部分を除外することで、発話者Aの発話区間を正確に特定する必要がある。
【0053】
そこで、音声パワーAを用いて、後述のマルチチャンネルVADにより音声パワーAに対応する発話者Aの非発話区間を推定する(S300ステップ)。さらに、S400ステップからS200ステップに戻り、残りの音声パワーに対して同様の処理を繰り返し行う。全部の発話者に対して処理が終了すると、フローはS400ステップから下に移行し、発話区間推定装置3の発話区間推定処理が終了する。
【0054】
続いて、上記のS300ステップを詳しく説明する。
図6は、S300ステップの処理内容を示したフローチャートである。処理がスタートすると、まずは発話者Aとは異なる発話者Bを選択し、その発話者Bに紐づけられた音声パワーBを、記憶部20の音声パワーデータ32から読み出す(S310ステップ)。音声パワーBは、先に読み出された音声パワーAと対をなし、この対を用いて第一段階の発話区間推定を行う。以下、複数の発話者の音声データを組み合わせてデータ処理することをマルチチャンネル処理という。
【0055】
発話者Bの選択にあたっては、発話者A以外の残りの発話者の全部から1を選択する。残りの発話者の全部を発話者Bの選択対象とすることで、発話区間推定の精度が高くなるからである。
図6は、残りの全部を順次用いる例で記載している。マルチチャンネル処理による発話区間推定を、以下マルチチャンネルVADという。
【0056】
次にフローはS320ステップに移行する。S320ステップでは、処理部10の音声パワー加工演算部12が、各音声パワーに対し、あらかじめ定めた閾値a未満である音声パワー点に対して、閾値a未満である旨のラベル情報aを付与する。さらに、あらかじめ定めた閾値b以上である音声パワー点に対して、閾値b以上である旨のラベル情報bを付与して、ラベル付き音声パワーを生成する。なお、ラベル情報は、一つの音声パワー点に対して、ラベル情報a、ラベル情報b及び後述のラベル情報cの各1が付与され得る。
【0057】
図7は、上記のS320ステップの詳しいフローを示したフローチャートである。処理がスタートすると、記憶部20の閾値a・閾値bテーブル33からあらかじめ定めた閾値a(単位:dB)を読み出し、換算された音声パワー値が閾値a未満である音声パワー点に、閾値a未満である旨のラベル情報aを付与する(S321ステップ)。なお、このステップと続くS322ステップとは、音声パワーAに対するラベル情報aとbとの付与がすでに完了している場合には飛ばしてよい。
【0058】
次に、フローはS322ステップに移行し、記憶部20の閾値a・閾値bテーブル33からあらかじめLocal−SNRで表した閾値b(dB)を読み出す。そして、音声パワーAの各点の音声パワー値がこの閾値b以上の音量パワー点に対し、閾値b以上である旨のラベル情報bのラベル付けを行う。閾値bは、発話者Aが発話していると十分に考えられる程度の音声パワー値を意味する。従って、音声パワー値が閾値bより大きい音声パワー点に関しては、後述の分離ラインを用いた推定に関わらずに、無条件に発話者Aの発話点と推定することが好ましい。閾値bは、経験的にあらかじめ定められてテーブル33に格納されている。
【0059】
これで音声パワーAに対するラベル情報aとbとの付与が完了し、S321ステップとS322ステップでラベル付けされた音声パワーAは、ラベル付音声パワーAとして記憶部20のラベル付音声パワーデータ34に格納される。
【0060】
次に、フローはS323ステップとS324ステップに順次移行し、音声パワーBに対して、音声パワーAに対して上の2ステップで行われたものと同様のラベル情報aとbとの付与を行う。ラベル付けされた音声パワーBは、ラベル付音声パワーBとして記憶部20のラベル付音声パワーデータ34に格納される。なお、S323ステップと続くS324ステップとは、音声パワーBに対するラベル情報aとbとの付与がすでに完了している場合には飛ばしてよい。これで
図7のフローの処理は終了し、続いて
図6のS330ステップに移行する。
【0061】
S330ステップでは、ラベル付音声パワーAとBとを用いて、統計的に1次分離ラインを生成し、同じ時間のラベル付音声パワー点ごとに発話者Aのラベル付音声パワー点なのか発話者Bのラベル付音声パワー点なのかを1次推定する。S330ステップにおける処理フローを
図8のフローチャートに示した。
【0062】
図8のフローの処理を、
図9から
図13を用いて説明する。まず
図9は、ラベル付音声パワーAの各点とラベル付音声パワーBの各点との関係を二次元で示した概念図である。
図9はラベル付音声パワーAを横軸に、ラベル付音声パワーBを縦軸にしている。そして、収音時間が同じであるラベル付音声パワーAの1点とラベル付音声パワーBの1点とを、二次元の図上に1つの白丸又は黒丸で表している。なお、収音時間が同じとは、厳格に同時間であることを意味せず、フレームの単位時間に比して許容できる程度の誤差を含んでいてもよいことを意味する。
【0063】
図9の黒丸は、ラベル付音声パワーAの値とラベル付音声パワーBの値とのいずれもが閾値a未満である点を示している。白丸は黒丸以外の点である。したがって、
図9は、(白丸数+黒丸数)×サンプリング単位時間分の時間長さの音声データに対応している。実際の音声データは、数十分から数時間に及ぶ長時間のものであることが多いので、実際の二次元図ははるかに多い点数を含むことになる。
【0064】
図9において、横軸(音声パワーA)において閾値a未満の丸は、無条件に話者Aの非発話点として推定する。また、横軸(音声パワーA)において閾値b以上の白丸は、十分に音声パワーがあるので、無条件に話者Aの発話点として推定することが好ましい。分離ラインを用いていずれの発話点なのかを推定すべき対象は、閾値aと閾値bとの間に位置する白丸で示された音声パワー点とすることが好ましい。後述の分離ラインの推定では、これらの白丸を用いる場合で説明する。閾値bを越えた白丸については、分離ラインの推定に用いてもよいし、用いなくてもよい。
【0065】
この
図9を前提に、
図8のフローを説明する。まず、1次分離ライン演算部13が、ラベル付音声パワーAだけを用いて発話者Aの音声パワー点を0次推定する(S331ステップ)。これを
図10を用いて具体的に説明する。
【0066】
図10は、
図9の白丸に対して、ラベル付音声パワーAの閾値aと閾値bとの間に入る点のみを特定した状態を示している。この特定された点群を点線の楕円で囲み、白丸で示した。このような点群は、ラベル付音声パワーAのような1つのラベル付音声パワーだけを用いて行う発話区間検知(以下、シングルチャンネルVADという。)により、ラベル付音声パワーAに対応する発話者Aの音声パワー点であると推定できる。これらを0次推定とする。
【0067】
次に、S332ステップに移行し、白丸で示された点群の重心Aを求める。ここで重心とは点群の幾何中心をいう。重心Aは
図10に白星形で示した。
【0068】
次に、S333ステップに移行し、S331ステップと同様にして、ラベル付音声パワーBだけを用いて発話者Bの音声パワー点を0次推定する。これを
図11を用いて説明する。
【0069】
図11は、
図9の白丸に対して、ラベル付音声パワーBの閾値aと閾値bとの間に入る点を特定したものである。この特定された点群を点線の楕円で囲み、黒丸と、黒と白が半分ずつの黒白丸とで示した。このような点群は、ラベル付音声パワーBだけを用いて行うシングルチャンネルVADにより、ラベル付音声パワーBに対応する発話者Bの音声パワー点の点群と推定できる。
【0070】
ところで、黒白丸は、
図10においては白丸でも表示されている点である。つまり、
図10では発話者Aの音声パワー点であると推定されている。そのため、
図11では、わかりやすくするために黒と白とが半分ずつの黒白丸で表示した。一方、
図11でラベル付音声パワーBの閾値aと閾値bとの間に入らなかった点群は白丸で示している。これらの白丸は発話者Bの音声パワー点ではないと推定できる。これらのラベル付音声パワーBについての推定も0次推定とする。0次推定の結果は、記憶部20の0次推定結果データ35として格納される。
【0071】
0次推定は、シングルチャンネルVADに基づいているので、多くの点で発話者の推定が重複しており、誤差が大きいと考えられる。しかし、最初の推定として意味がある。
【0072】
次に、S334ステップに移行し、黒丸と黒白丸とで構成される点群の重心Bを求める。黒丸と黒白丸とで構成される点群は、点線の楕円で囲んで示した。重心Bは
図11に黒星形で示した。
【0073】
次に、S335ステップに移行し、重心Aと重心Bとを用いて、1次分離ラインを生成する。これを
図12を用いて説明する。まず重心Aと重心Bを破線で示した直線で結び、この破線の中点において、破線と直行する一点鎖線で示した直線を生成する。この直線が1次分離ラインである。1次分離ラインの生成結果は、記憶部20の1次分離ラインデータ36に格納される。このように統計的に分離ラインを定めるので、各発話者の声量の違いや各種の動きによる発話区間推定に及ぼす影響を小さくすることができる。
【0074】
次に、S336ステップに移行する。このステップでは、1次推定部14が、1次分離ラインを用いて、発話者Aの音声パワー点と発話者Bの音声パワー点との0次推定を修正して1次推定を行う。これを
図13を用いて説明する。
図13では、1次分離ラインより下にある音声パワー点を、発話者Aの音声パワー点と推定して白丸で表し、1次分離ラインより上にある音声パワー点を、発話者Bの音声パワー点と推定して黒丸で表している。逆にいえば、黒丸は発話者Aの発話点には該当しない非発話点である音声パワー点と推定されている。これが音声パワー点の1次推定である。1次推定結果は、記憶部20の1次推定結果データ37に格納される。
【0075】
図13で矢印で示した2点の白丸と4点の黒丸とは、
図11や
図12では黒白丸として表されており、発話者Aの音声パワー点とも発話者Bの音声パワー点とも推定されていた点である。矢印で示した2点の白丸は、1次推定によって、発話者Aの音声パワー点に修正された。同様に、矢印で示した4点の黒丸は、1次推定によって、発話者Bの音声パワー点に修正された。
【0076】
このような処理を行うのは、個人の声量の違いや位置の移動等があったとしても、2つの音声パワーのデータ全体を組み合わせて統計的に判断すれば、発話者Aの音声パワー点の集合と、発話者Bの音声パワー点の集合とを、一定の分離ラインにより、比較的高い精度で分離できるからである。
【0077】
これで
図8のS336ステップは終了し、
図6のS340ステップに移行する。S340ステップでは、
図13に示した1次推定結果を用いて、2次分離ライン演算部15が2次分離ラインを生成し、2次推定部16が発話者Aの音声パワー点を2次推定する。
図14を用いてS340ステップのフローを詳しく説明する。
【0078】
図14のフローがスタートすると、まず、1次推定によって発話者Aの音声パワー点と推定され、
図13の白丸で示された、音声パワー点の集合の重心Aを求める(S341ステップ)。次に、1次推定によって発話者Bの音声パワー点と推定され、
図13の黒丸で示された、音声パワー点の集合の重心Bを求める(S342ステップ)。次に、重心Aと重心Bとを用いて、1次分離ラインを生成したのと同様にして2次分離ラインを生成する(S343ステップ)。この段階の状態を
図15に示す。
図15は、
図13における1次推定結果を用いて、2次分離ラインが生成された状態を示した概念図である。2次分離ラインの生成結果は、記憶部20の2次分離ラインデータ38に格納される。このように2次分離ラインを求めるのは、1次分離ラインが誤差の多い0次推定に基づいているからである。
【0079】
次に、S344ステップに移行し、2次分離ラインを用いて、各音声パワー点に対応する発話者を2次推定する。
図15では、矢印で示した1つの白丸が、2次分離ラインの上にきている。この白丸は、
図13では1次分離ラインの下にあったので、発話者Aの音声パワー点であると1次推定されていた。しかし、
図15では、2次分離ラインの上に来たので、発話者Bの音声パワー点に修正して2次推定された。
【0080】
2次推定結果を
図16に示した。
図16で矢印をつけた黒丸は、
図15では白丸であったが、黒丸に修正された。この結果に基づき、
図16に示された黒丸は、発話者Bの発話に起因し、発話者Aの発話に起因しない音声パワー点であると推定できる。すなわち、発話者Aの非発話区間に起因する音声パワー点であると2次推定できる。
【0081】
このように、2次分離ラインを生成することで、各音声パワー点に対応する発話者の発話区間や非発話区間を推定する精度がより高くなる。2次推定結果は、記憶部20の2次推定結果データ39に格納される。
【0082】
1次分離ラインと2次分離ラインとは、ラインを引くベースとなるデータが逐次的に変化する。そのため、必要により、3次、4次と、音声パワー点の推定と分離ラインの生成とを同様に繰り返すことにより、逐次的に分離ラインの精度をさらに高めることができる。
【0083】
次に、フローは
図6のS350ステップに移行する。S350ステップでは、2次推定結果を用いて、発話者Aの発話に起因しない、
図16の黒丸で示された、音声パワー点を特定する。そして、特定された各音声パワー点に非発話点である旨のラベル情報cをラベル付けする。これにより、発話者Aが装着した接話マイクロフォンが収音した音声データから、その音声データに混入した発話者Bの発話区間を精度よく除外することができる。ラベル付けされた音声パワーAは、記憶部20のラベル付音声パワーデータ34に、ラベル情報を追加して格納される。これで発話者AとBとの対による推定以前にいずれかの1又は複数の音声パワー点に付与されていたラベル情報はそのまま保持される。さらに、それまではラベル情報cが付与されていなかった1又は複数の音声パワー点に対し、発話者AとBとの対における推定により新たに各1のラベル情報cが付与された場合に、その新たな1又は複数のラベル情報cが追加された音声パワーAが記憶部20に格納される。
【0084】
次に、フローは
図6のS360ステップに移行し、発話者A以外の残りの全部の発話者に対し、発話者Bとして選択したか否かを判断する。選択していない発話者が残っていれば、フローはS360ステップから左に分岐してS310ステップに戻り、未だ選択していない発話者を発話者Bとして選択し、発話者Aに対応するラベル付音声パワーAと、新たな発話者Bに対応する音声パワーBとが、新たな対を構成して処理フローを繰り返す。
【0085】
発話者A以外の残りの発話者の全部を発話者Bとして選択済みであれば、フローはS360ステップから下に分岐して、S370ステップに移行する。
【0086】
このように、発話者Aに対応する音声パワーA以外の音声パワーの全部を、発話者Bに対応する音声パワーBとして順次用いることにより、音声パワーAの音声パワー点のうち、発話者Aの発話に起因していない多くの音声パワー点に対し、非発話点として除外する旨のラベル情報cを付すことが可能になる。すなわち、発話者Aの発話に起因しておらず、残りの全部の発話者のいずれかに起因すると推定された音声パワー点の全部に対して、非発話点として除外する旨のラベル情報cを付与することが可能になる。
【0087】
逆に言えば、ラベル情報cが付与されていない音声パワー点は、音声パワーAとBとの全部の対において、発話者Aの発話に起因すると推定できる音声パワー点であることになる。このようにラベル付けされた音声パワーAは、記憶部20の加工音声パワーデータ34に、上述したようにラベル情報cを追加して格納される。
【0088】
次に、
図6のS370ステップでは、下限除外部17が、音声パワーAの元となった音声データAを記憶部20の音声データ20から読み出す。次に、音声パワーAの音声パワー点のうち、Local−SNRで表した値が閾値a未満の点を特定する。これらの点群は、発話者Aの発話区間ではない。そこで、これらの点群の各点に対応する音声データAの各区間に対し、非発話点である旨をマーキングする。また、音声パワーAの音声パワー点のうち、Local−SNRで表した値が閾値b以上の点をラベル情報bにより特定する。これらの点群は、十分な音声パワー値を持っているので、分離ラインに関わらずに発話者Aの発話点と推定してもよい。その場合、ラベル情報bが付与された音声パワー点に、ラベル情報cが合わせて付与されていたとしても、そのラベル情報c は消去又は無効化する。
【0089】
続くS380ステップでは、追加除外部18が、他の発話者の発話点であって発話者Aの非発話点である旨のラベル情報cが付与される音声パワーAの各点について、非発話点である旨をマーキングする。
【0090】
S370ステップとS380ステップとで話者Aの非発話点がマーキングされたラベル付き音声データAが得られた。非発話点とマーキングされていない点は発話点とみなされる。ここまでの処理で、点ごとの発話・非発話が判定された。これで、
図6のフローチャートの処理を終了する。これにより
図4のS300ステップも終了する。
【0091】
図6のフローチャートまでの処理で、点ごとの発話・非発話が判定されたが、一般にVADでは点ごと(すなわちフレームごと)の判定を整理して、最終的な発話区間にまとめ直すことが行われる。時間方向で観察したときにあまりにも短い発話区間や非発話区間にならないようにするためである。この手法については本発明に固有のものではないので詳しくは述べない。この最終的な調整の結果得られた発話区間だけを残した音声データAを作成し、記憶部20のVAD音声データ40に格納する。このVAD音声データ40に格納された各音声データを用いて音声認識を行うことにより、精度高い音声認識が可能になる。
【0092】
このように、発話区間推定装置3は、各発話者の非発話区間を精度よく除外することができる。逆に言えば、各発話者の発話区間を精度よくもとめることができる。ある音声パワーに対して複数の音声パワーを組み合わせて複数の対を構成し、この対ごとに統計的に発話区間推定を繰り返すマルチチャンネルによる発話区間推定、マルチチャンネルVAD、を統計的に行うことにより、多人数のグループワーク等でも精度良い発話区間検知が可能になる。その結果、精度良い音声認識が可能になる。
【0093】
以上、本発明の実施の形態を説明してきたが、上記で説明したハードウェアや処理フローは各種の変形が可能である。
【0094】
上記では、音声パワー値をLocal−SNRに換算してから用いる方法で説明したが、Local−SNRに換算しない音声パワー値を用いて各種の処理を行うこともできる。その場合、閾値 aと閾値 b の設定値は、背景雑音の音声パワー値を含んだ値とすべきである。ところが、背景雑音の音声パワー値は各マイクロフォンの音声パワーに共通のものではない。そのため、使用環境を想定した固定値を閾値 aと閾値 b の設定値として使用せざるを得ない。そのため、音声パワー値をLocal−SNRに換算してから用いる方法と比較して、閾値 aと閾値 bの設定の精度は低下し、発話区間推定の精度も低下する。
【0095】
また、上記では、閾値bを用いる場合で説明したが、閾値bを用いないようにしてもよい。この場合、閾値b 以上の音声パワー値を持つ入力についても、中間領域における分離ラインを用いた判定方法を同様に適用すればよい。
【0096】
また、上記では、音量パワー点の集合の重心を求めることで分離ラインを生成する例で説明した。重心による方法は、わかりやすくてデータ処理量も比較的小さく好ましい。しかし、他の方法で分離ラインを生成するようにしてもよい。
【0097】
例えば、
図17は、正規分布を用いて分離ラインを生成した例を示した図である。
図17では、まず1次推定で発話者Aの発話点と推定された音声パワー点の集合に対して多次元正規分布Aを求める。続いて、1次推定で発話者Bの発話点と推定された音声パワー点の集合に対して多次元正規分布Bを求める。そして、これら2つの多次元正規分布について、同じ尤度となる直線を2次分離ラインとしている。
【0098】
また、
図18は、教師あり学習を用いるパターン認識モデルの一つであるサポートベクターマシンを用いて、2次分離ラインを生成した例を示した図である。この方法では、ラインに近接した点群(=サポートベクター)からラインまでの距離(=マージン)を最大化するようにラインを生成する。
【0099】
また、上記では、発話区間推定に用いる音声データとして、音声認識すべき音声データをそのまま使用して、シングルチャンネルVADにより0次推定して1次分離ラインを生成する例で説明した。しかし、これ以外の方法で分離ラインを生成するようにしてもよい。
【0100】
例えば、別途用意した音声データを用いて1次分離ラインをあらかじめ生成しておき、0次推定を省略してもよい。別途用意する音声データとしては、グループワーク等が始まる前に、発話者各人に自己紹介等のようにして、一人ずつ少なくとも数秒から数十秒の発話をさせた個別データが用い得る。このような個別データでは、録音時間が短く音声パワー点の数が、音声認識の対象とする音声データより比較的少なくなってしまい、統計的処理の精度は下がる。しかし、各音声パワー点の発話者が最初から特定されているので、1次分離ラインを精度よく求めることが可能になる。また、グループワーク開始前または開始後の雑談時の発話を適切な時間の間、録音し、個別データとして用いてもよい。
【0101】
また、二次元図の2本の閾値aのラインの交点と2本の閾値bのラインの交点とを通る45度の直線を引き、これを1次分離ラインとしてもよい。この45度の分離ラインは、発話者Aと発話者Bとにおける声量や移動などの様々な違いや変化を無視した場合の分離ラインに相当する。
【0102】
また、上記ではバッチ処理の場合で説明したが、
図2のハードウェアを用いてオンライン処理により発話区間検知と音声認識とを行うことも可能である。この場合は、上述のように、別途用意した個別データ等を用いるか、または45度の1次分離ラインを用意するなどして、あらかじめ1次分離ラインを生成しておけばよい。そして、オンライン処理中には、同時に2次推定用の音声データを蓄積し続け、ある程度の分量が溜まったら、2次分離ラインを生成するようにすればよい。2次分離ラインは、1度生成して終わりではなく、オンライン処理中に蓄積したデータ量が増えるに伴って繰り返して更新することが望ましい。さらに、処理フローも随時生成する音声データを逐次的に処理できるように、適宜変更しておけばよい。
【0103】
また、上記では、2次推定までにとどめた例で説明したが、3次、4次と高次まで推定するようにしてもよい。高次になるほど推定精度は高くなるが、精度が高くなる割合は高次ほど小さくなるので、処理すべきデータ量を勘案しながらどこまで推定するかを定めればよい。
【0104】
また、上記では、
図6のS320で、選択した音声パワー対ごとにラベル付けを行うようにして説明したが、全部の音声パワーについてラベル情報aとbとの付与を一括して行い、しかるのち対を選択するようにしてもよい。
[実験例]
【0105】
1チームが3〜4名の中学生からなるチームを6〜7チーム用い、東京大学CoRFFが提唱するジグソー法を用いたグループワークを行った。中学生は
図1に説明したハードウェア構成通りに、各々がヘッドセットマイクロフォンとICレコーダとを装着し、発話をデジタル録音した。グループワークは、数学、理科、国語の3教科について2回ずつ計6回を異なるテーマで行った。その後、録音された各音声データを用い、以下の3通りの方法で音声認識した。
【0106】
(比較例1)発話区間推定を行わず、各音声データをそのまま使って音声認識した。
【0107】
(比較例2)各音声データにおいて、閾値を用いたシングルチャンネルVADだけを行って発話区間推定してから音声認識した。
【0108】
(実施例1)上記で説明したバッチ処理による2次推定までのフローを用い、Local−SNR、閾値a、閾値b及び分離ラインを用いたマルチチャンネルVADにより発話区間推定を行ってから音声認識した。
【0109】
これら3通りの音声認識により出力された各テキストを、人間が作成した正解のテキストと文字単位で比較して、以下の3通りの誤りタイプを各々計数した。
【0110】
1.挿入誤り:正解テキストより余分に文字が出現するタイプの誤り
2.削除誤り:正解テキストの一部の文字が脱落するタイプの誤り
3.置換誤り:正解テキストの一部の文字が別の文字に入れ替わっているタイプの誤り
【0111】
総合評価は、各回ごとに3教科の誤り計数結果を合算して行い、以下の式に従って、各回の文字誤り率を求めた。
【0112】
文字誤り率=(挿入誤り個数+削除誤り個数+置換誤り個数)/(正解テキストの文字数)×100
【0113】
各回の文字誤り率の計数結果を、
図19の棒グラフで示す。白棒は比較例1を、網掛け棒は比較例2を、黒棒は実施例1を表す。1回目、2回目のいずれでも、文字誤り率による総合評価では、実施例1の文字誤り率が比較例に比して顕著に下がっていることがわかる。
【0114】
次に、誤りタイプごとの結果を示す。まず
図20は、各回の挿入誤り率の計数結果を示した図である。実施例1では挿入誤り率が著しく下がっていることがわかる。これが実施例1の総合評価が良い大きな理由になっている。挿入誤り率が大きく下がるのは、各発話者の非発話区間を、対応する各音声データから除外するように繰り返し処理した結果、音声データに混入した他の発話者の発話に起因する挿入誤りが減少したからと考えられる。
【0115】
図21は、各回の削除誤り率の計数結果を示した図である。削除誤り率では、逆に実施例1の方が他の処理より誤り率が高くなっているが、その程度は比較的小さいことがわかる。これは、VADにより非発話区間と推定された区間を除外しすぎているためと考えられるが、それによる誤りの個数増加は比較的小さいことがわかる
【0116】
図22は、各回の置換誤り率の計数結果を示した図である。置換誤り率では、実施例1が比較例より良い結果であることがわかる。
【解決手段】 3以上のマイクからの音声データを、時間情報とマイク識別情報とを格納する記憶部と、処理部を備えた発話区間推定装置であり、処理部は、音声データの各々から単位時間の音声パワー点の値を演算して音声パワーを求める演算部と、値が閾値a未満である点にラベルaを付する加工演算部と、音声パワーの1と音声パワーの他の1の対における分離ラインを演算する演算部と、分離ラインを用い、対応する発話者の非発話点かを点ごとに推定し、非発話点と推定された点にラベルcを付与する推定部と、ラベル情報aとcとが付与された点に対応する音声データの区間を、対応する発話者の非発話区間として除外する除外部とを備える。