IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧 ▶ ブルノ ユニバーシティー オブ テクノロジーの特許一覧

特許7112348信号処理装置、信号処理方法及び信号処理プログラム
<>
  • 特許-信号処理装置、信号処理方法及び信号処理プログラム 図1
  • 特許-信号処理装置、信号処理方法及び信号処理プログラム 図2
  • 特許-信号処理装置、信号処理方法及び信号処理プログラム 図3
  • 特許-信号処理装置、信号処理方法及び信号処理プログラム 図4
  • 特許-信号処理装置、信号処理方法及び信号処理プログラム 図5
  • 特許-信号処理装置、信号処理方法及び信号処理プログラム 図6
  • 特許-信号処理装置、信号処理方法及び信号処理プログラム 図7
  • 特許-信号処理装置、信号処理方法及び信号処理プログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-26
(45)【発行日】2022-08-03
(54)【発明の名称】信号処理装置、信号処理方法及び信号処理プログラム
(51)【国際特許分類】
   G10L 21/0308 20130101AFI20220727BHJP
   G10L 21/0272 20130101ALI20220727BHJP
   G10L 25/30 20130101ALI20220727BHJP
【FI】
G10L21/0308 Z
G10L21/0272 100B
G10L25/30
【請求項の数】 5
(21)【出願番号】P 2019023988
(22)【出願日】2019-02-13
(65)【公開番号】P2020134567
(43)【公開日】2020-08-31
【審査請求日】2021-04-09
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(73)【特許権者】
【識別番号】516087908
【氏名又は名称】ブルノ ユニバーシティー オブ テクノロジー
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】デルクロア マーク
(72)【発明者】
【氏名】落合 翼
(72)【発明者】
【氏名】木下 慶介
(72)【発明者】
【氏名】荒木 章子
(72)【発明者】
【氏名】中谷 智広
(72)【発明者】
【氏名】モリコバ カテリナ
【審査官】中村 天真
(56)【参考文献】
【文献】国際公開第2019/017403(WO,A1)
【文献】特開2020-013034(JP,A)
【文献】デルクロア・マーク,外5名,目的話者抽出法SpeakerBeamの実雑音・残響環境下での評価,日本音響学会講演論文集,2019年03月,p.381-382
(58)【調査した分野】(Int.Cl.,DB名)
G10L 13/00-25/93
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
複数の音源の音が混合された混合音声信号を基に、第1のニューラルネットワークの、複数のクラスタに分割されていない所定の層の中間状態を計算する第1計算部と、
目的話者の発話を基に生成される補助情報を用いて、前記中間状態をスケーリングするスケーリング部と、
前記混合音声信号から前記目的話者の音声信号を抽出する情報を、前記スケーリング部によってスケーリングされた中間状態を基に計算する第2計算部と、
を有することを特徴とする信号処理装置。
【請求項2】
前記スケーリング部は、前記目的話者の音声信号を基に、第2のニューラルネットワークを用いて計算された補助情報を用いて前記中間状態をスケーリングすることを特徴とする請求項1に記載の信号処理装置。
【請求項3】
前記スケーリング部は、前記第1のニューラルネットワークの前記所定の層のユニットの数と同じ数の要素を持つベクトルとして表される補助情報と、前記所定の層の各ユニットの出力値を要素とするベクトルとの要素ごとの積を計算することでスケーリングすることを特徴とする請求項1又は2に記載の信号処理装置。
【請求項4】
コンピュータによって実行される信号処理方法であって、
複数の音源の音が混合された混合音声信号を基に、第1のニューラルネットワークの、複数のクラスタに分割されていない所定の層の中間状態を計算する第1計算工程と、
目的話者の発話を基に生成される補助情報を用いて、前記中間状態をスケーリングするスケーリング工程と、
前記混合音声信号から前記目的話者の音声信号を抽出する情報を、前記スケーリング工程によってスケーリングされた中間状態を基に計算する第2計算工程と、
を含むことを特徴とする信号処理方法。
【請求項5】
コンピュータを、請求項1から3のいずれか1項に記載の信号処理装置として機能させるための信号処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、信号処理装置、信号処理方法及び信号処理プログラムに関する。
【背景技術】
【0002】
話者の音声を収録する際に、話者の音声と同時に周囲の他の話者の音声が一緒に収録されてしまう場合がある。これに対し、収録された音声から目的とする話者の音声だけを取り出す技術が知られている(例えば、非特許文献1を参照)。
【0003】
例えば、非特許文献1には、分割された複数の隠れ層が設けられたニューラルネットワークを用いて目的話者の音声を抽出する技術が記載されている。非特許文献1に記載の技術では、目的話者の音声から求めた各隠れ層に対応する重みを計算し、各々の隠れ層の出力を当該重みにより重み付けした重み付け和を用いて話者の音声を抽出する。
【先行技術文献】
【非特許文献】
【0004】
【文献】K. Zmolikova, M. Delcroix, K. Kinoshita, T. Higuchi, A. Ogawa, and T. Nakatani, “Speaker-aware neural network based beamformer for speaker extraction in speech mixtures,” in Proc. of Interspeech’17, Aug 2017, pp. 2655-2659.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来の技術には、学習済みモデルを記憶するためのメモリ容量が大きくなってしまう場合があるという問題がある。例えば、非特許文献1に記載の技術では、複数のクラスタに分割される隠れ層において必要になるパラメータの数は、クラスタの数に比例して多くなる。また、学習済みモデルは、ニューラルネットワークの各ユニット間の出力を計算するための重みやバイアス等のパラメータとして記憶される。このため、クラスタ数によっては、膨大な数のパラメータが必要になり、多量のメモリ容量が消費される場合がある。
【課題を解決するための手段】
【0006】
本発明の信号処理装置は、複数の音源の音が混合された混合音声信号を基に、第1のニューラルネットワークの所定の層の中間状態を計算する第1計算部と、前記目的話者の発話を基に生成される補助情報を用いて、前記中間状態をスケーリングするスケーリング部と、前記混合音声信号から前記目的話者の音声信号を抽出する情報を、前記スケーリング部によってスケーリングされた中間状態を基に計算する第2計算部と、を有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、学習済みモデルを記憶するためのメモリ容量を小さくすることができる。
【図面の簡単な説明】
【0008】
図1図1は、第1の実施形態に係る信号処理装置の構成の一例を示す図である。
図2図2は、第1の実施形態に係るニューラルネットワークについて説明するための図である。
図3図3は、第1の実施形態に係る信号処理装置の処理の流れを示すフローチャートである。
図4図4は、第2の実施形態に係る学習装置の構成の一例を示す図である。
図5図5は、第2の実施形態に係る学習装置の処理の流れを示すフローチャートである。
図6図6は、実験結果を示す図である。
図7図7は、プログラムを実行するコンピュータの一例を示す図である。
図8図8は、従来のマスク推定装置の構成を示す図である。
【発明を実施するための形態】
【0009】
以下に、本願に係る信号処理装置、信号処理方法及び信号処理プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【0010】
[第1の実施形態]
図1を用いて、第1の実施形態に係る信号処理装置の構成について説明する。図1は、第1の実施形態に係る信号処理装置の構成の一例を示す図である。図1に示すように、信号処理装置10は、第1変換部101及び第2変換部102を有する。また、第1変換部101は、第1計算部101aを有する。また、第2変換部102は、スケーリング部102a及び第2計算部102bを有する。
【0011】
信号処理装置10は、混合音声信号及び補助情報の入力を受け付け、目的話者の音声信号を混合音声信号(入力音声信号)から抽出する情報である目的信号抽出情報を出力する。目的信号抽出情報とは、例えば、混合音声信号から目的話者の音声信号を抽出するためのマスクや、このマスクを一意に特定できる情報、あるいは、混合音声信号から抽出した目的話者の音声信号(の推定値)等である。第1の実施形態では、目的信号抽出情報として、マスクを一意に特定できるマスク特定情報を生成する場合を例に、説明する。混合音声信号は、複数の音源の音が混合された音声信号である。例えば、混合音声信号は、目的話者の音声の信号、目的話者以外の話者の音声の信号、背景雑音の信号等を含む。
【0012】
また、補助情報は、目的話者の発話を基に生成される情報である。また、補助情報は、中間状態をスケーリングするための情報である。例えば、補助情報は、目的話者の発話を基に、周知のi-vectors(参考文献1:N. Dehak, P. J. Kenny, R. Dehak, P. Dumouchel, and P. Ouellet, “Frontend factor analysis for speaker verification,” IEEE Transactions on Audio, Speech, and Language Processing, vol. 19, no. 4, pp. 788-798,2011.)、sequence summarizing network、注意機構付きのsequence summarizing network等により生成される。i-vectorsは、入力データの重要な特徴を低次元ベクトルで表現するものであり、本発明においては参考文献1等の周知の手法により、目的話者の多様性を表す特徴をi-vectorsとして抽出し、利用する。
【0013】
Sequence summarizing networkでは、補助情報を生成するためニューラルネットワーク(以下、「補助ネットワーク(auxiliary network」という)を別途用意し、時間フレーム毎の目的話者の発話を補助ネットワークにより変換して、出力ベクトルであるframe-wise vectorを抽出する。そして、時間フレーム全体(例えばTフレーム)について得られたframe-wise vectorの代表値(平均値等)を補助情報として用いる。
【0014】
ここで、目的話者の発話は、目的話者しか話していない状況で収録された音声信号であり、目的話者についての音声信号であれば、処理対象となる混合音声中に含まれる目的話者の発話とは異なる発話でよい。目的話者の発話は、例えば時間フレームごとに分割した時間フレーム単位の信号の周波数表現(STFT(Short Time Fourier Transform)領域の表現)である。また、Aをフレームtにおける目的話者の発話(他の話者の声を含まない目的話者の音声信号)とする。このとき、(1)式に示すように、λ(λの直上に-)をフレームtに対応するframe-wise vectorとし、補助ネットワークによる変換を関数z(・)と表記すると、補助情報λは(2)式のように表せる。
【0015】
【数1】
【0016】
【数2】
【0017】
注意機構付きのsequence summarizing networkは、上記の補助ネットワークが注意機構(attention mechanism)をさらに備えたものである。上記の補助ネットワークでは、補助情報λを求める際に、各時間フレームから抽出したframe-wise vectorを等しい重みで統合しているが、注意機構を用いることでその重みを調整することができる。例えば、ノイズを多く含む時間フレームから抽出したframe-wise vectorの重みは小さくし、ノイズの少ない時間フレームから抽出したframe-wise vectorの重みは大きくなるように注意機構が学習されることで、より適切に目的話者の音声信号の特徴を表す補助情報を得ることが可能となる。注意機構付きのsequence summarizing networkの演算については、第1の実施形態の変形例の説明の中で詳述する。
【0018】
このように、例えば、補助情報は、目的話者の発話から得られる音声信号を入力とするニューラルネットワークの出力であってもよい。
【0019】
マスク特定情報は、混合音声信号から目的話者の音声信号を抽出する情報の一例である。例えば、マスクは、混合音声信号における、時間周波数点ごとの目的話者の音声信号の占有度である。マスク特定情報は、マスクそのものであってもよいし、マスクを計算するための所定の数値であってもよい。
【0020】
信号処理装置10は、ニューラルネットワークを用いて各計算処理を行う。図2を用いて、信号処理装置10によって用いられるニューラルネットワークを示すとともに、各計算処理について説明する。図2は、第1の実施形態に係るニューラルネットワークについて説明するための図である。
【0021】
ここで、行列Yは、目的話者の音声信号を含む混合音声信号の、各時間周波数点の観測信号をSTFT領域で表したものである。つまり、Tを時間フレームの総数、Fを周波数ビンの総数とすると、YはT×F行列である。このうち、時間フレームtにおける観測信号を表すベクトル(つまり、Yのt行目の要素を縦に並べたベクトル)をYとすると、Yは時間フレームtにおける入力混合音声信号の周波数表現であり、図2に示すように、ニューラルネットワークには、Yの絶対値であるxが入力される。なお、|・|は、STFT信号の絶対値を表すものとする。また、ニューラルネットワークは、BLSTM(Bi-directional Long Short-Term Memory)層を含むものであってもよい。
【0022】
また、第1計算部101a及び第2計算部102bは、ニューラルネットワークの第k+1番目(kは0以上の整数)の層、すなわちレイヤLk+1へ入力される中間状態を、(3)式及び(4)式のように計算する。
【0023】
【数3】
【0024】
【数4】
【0025】
σは、レイヤLのアクティベーション関数である。また、ψは、線形計算を行うためのパラメータである。例えば、全結合層においては、ψは重み行列W及びバイアスベクトルbを含み、L(x,ψ)=Wx+bのような計算が行われる。また、ニューラルネットワークにおけるユニット間の結合数が多いほど、パラメータψのサイズは大きくなる。
【0026】
qは、信号処理装置10を構成するニューラルネットワークの線形変換層のうち、入力側から何番目の線形変換層にスケーリング部102aを設けるかを特定するインデックスである。つまり、q番目の線形変換層の後ろに、スケーリング部102aを設ける。したがって、qは、あらかじめ設定された、1以上かつ総レイヤ数K未満の数であり、第1計算部101aを構成する線形変換数の層の数がq個、残りのK-q個の線形変換層が第2計算部102bに相当することになる。なお、総レイヤ数Kは、信号処理装置を構成するニューラルネットワーク内の線形変換層の総数である。図2の例では、q=1である。また、λ(act)は補助情報である。例えば、補助情報λ(act)は、目的話者に応じて定まる特徴ベクトルであって、レイヤLのユニットの数と同じ数の要素を持つ特徴ベクトルとして表される。
【0027】
まず、第1計算部101aは、複数の音源の音が混合された混合音声信号を基に、ニューラルネットワークの所定の層の中間状態を計算する。図2の例では、q=1なので、第1計算部101aは、x=xとして(3)式によりレイヤLにおける計算処理を行い、次に、x=xとして(3)式を繰り返し、レイヤLにおける計算処理を行って、中間状態xを計算する。一般的には、k=0,・・・,qについて、順次(3)式の線形変換を繰り返し、所定の層であるq番目の線形変換層から出力される中間状態L(x,ψ)を得る。
【0028】
次に、スケーリング部102aは、目的話者の発話を基に生成される補助情報を用いて、第1計算部101aから出力された中間状態L(x,ψ)をスケーリングして中間状態xq+1を生成する。図2の例では、q=1なので、スケーリング部102aは、(4)式を用いてレイヤLから出力される中間状態L(x,ψ)をスケーリングして、中間状態xを生成する。
【0029】
ここで、(4)式に示すように、スケーリング部102aは、中間状態L(x,ψ)の各要素に補助情報λ(act)に含まれる要素の値を重みとして乗ずることで、スケーリングを行う。
【0030】
また、第2計算部102bは、混合音声信号から目的話者の音声信号を抽出する情報の一例であるマスク特定情報を、スケーリング部102aによってスケーリングされた中間状態xq+1を基に計算する。つまり、第2計算部102bは、k=q+1,・・・,Kについて、(3)式を用いて、レイヤLにおける計算処理を行い、最終的な結果xを求め、これをアクティベーション関数により変換して時間フレームtにおけるマスク特定情報Mを得て出力する。
【0031】
また、得られたマスク特定情報Mにより特定されるマスクを、混合音声信号Yに適用することにより、目的話者の音声信号の推定値が得られる。信号処理装置10は、混合音声信号にマスクを適用し、目的話者の音声信号を推定する推定部を有していてもよい。
【0032】
また、信号処理装置10は、学習装置によって最適化が行われたパラメータを取得し、当該取得したパラメータを用いてニューラルネットワークを構築することができる。学習装置については、第2の実施形態として後述する。
【0033】
[第1の実施形態の処理]
図3を用いて、信号処理装置10の処理の流れを説明する。図3は、第1の実施形態に係る信号処理装置の処理の流れを示すフローチャートである。図3に示すように、まず、信号処理装置10は、ニューラルネットワークを用いて、混合音声信号を中間状態に変換する(ステップS101)。
【0034】
次に、信号処理装置10は、目的話者に応じて定められる補助情報を取得する(ステップS102)。ここで、信号処理装置10は、補助情報を基に中間状態をスケーリングする(ステップS103)。そして、信号処理装置10は、ニューラルネットワークを用いて、スケーリングした中間状態を信号処理情報に変換する(ステップS104)。
【0035】
[第1の実施形態の効果]
これまで説明したように、信号処理装置10は、複数の音源の音が混合された混合音声信号を基に、第1のニューラルネットワークの所定の層の中間状態を計算する。また、信号処理装置10は、目的話者の発話を基に生成される補助情報を用いて、中間状態をスケーリングする。また、信号処理装置10は、混合音声信号から目的話者の音声信号を抽出する情報を、スケーリングされた中間状態を基に計算する。このように、信号処理装置10は、ニューラルネットワークの所定の層をそのまま利用してスケーリングを行うことができる。このため、例えば、信号処理装置10は、所定の層が分割されたニューラルネットワークを用いることなく話者適応を行うことができる。その結果、ユニットの増加にともなうパラメータの数の増加が抑えられるので、第1の実施形態によれば、学習済みモデルを記憶するためのメモリ容量を小さくすることができる。
【0036】
また、第1の実施形態によれば、行列演算等の負荷の大きい計算処理を削減することができるため、メモリ容量だけでなく、プロセッサ時間やディスクIOといった他の計算機リソースの消費も低減することができる。
【0037】
また、信号処理装置10は、目的話者の発話を基に、第2のニューラルネットワークを用いて計算された補助情報を用いて中間状態をスケーリングする。このように、信号処理装置10は、各中間状態のそれぞれをスケーリングすることができる。このため、隠れ層を複数のクラスタに分割することなく、ニューラルネットワークの話者適応を行うことができる。
【0038】
また、スケーリング部102aは、第1のニューラルネットワークの所定の層のユニットの数と同じ数の要素を持つベクトルとして表される補助情報と、所定の層の各ユニットの出力値を要素とするベクトルとの要素ごとの積を計算することでスケーリングする。このように、信号処理装置10は、所定の層の各ユニットの出力値の数、すなわち中間状態の要素の数だけの乗算により話者適応を行う。このため、第1の実施形態によれば、最低限の計算量で話者適応を行うことができる。
【0039】
ここで、比較のため、図8を用いて、従来のマスク推定装置について説明する。図8は、従来のマスク推定装置の構成を示す図である。図8に示すように、マスク推定装置30は、第1変換部301、第2変換部302及び第3変換部303を有する。マスク推定装置30は、混合音声信号の入力を受け付ける。また、マスク推定装置30は、目的話者音声信号を基にクラスタ重み生成部401によって生成されたクラスタ重みの入力を受け付ける。
【0040】
マスク推定装置30は、所定の隠れ層が複数のクラスタに分割されたニューラルネットワークを用いて各計算処理を行う(例えば、非特許文献1のFigure 3を参照)。第1変換部301は、分割されていない層における中間状態の計算を行う。
【0041】
複数の第2変換部302は、それぞれが対応するクラスタの中間状態の計算を行う。このときの計算量は、第1の実施形態と比較すると、概ね(3)式の計算をクラスタの数だけ行ったときの計算量に相当する。
【0042】
さらに、第2変換部302は、各クラスタの中間状態に対し重み付けを行う。第3変換部303は、重み付けが行われた中間状態からマスク特定情報を計算する。
【0043】
ここで、第1の実施形態の信号処理装置10のスケーリングが行われる層(図2のレイヤL)、及び従来のマスク推定装置30における分割された層を、適応層と呼ぶ。適応層のユニット数をNとする。また、従来のマスク推定装置30におけるクラスタ数をNとする。このとき、従来のマスク推定装置30における適応層のパラメータ数がN×
(Nであるのに対し、第1の実施形態の信号処理装置10における適応層のパラメータ数は(Nである。このように、第1の実施形態では、従来と比べ、大幅にパラメータが削減されることになる。
【0044】
なお、従来のマスク推定装置30と第1の実施形態の信号処理装置10とでは、取得する補助情報のサイズ及び補助情報を用いた計算(重み付け、又はスケーリング)の計算量が異なる。しかしながら、その差は、パラメータ数の差に基づく計算量の差に比べると非常に小さい。
【0045】
[第2の実施形態]
図4を用いて、第2の実施形態に係る学習装置の構成について説明する。図4は、第2の実施形態に係る学習装置の構成の一例を示す図である。学習装置は、ニューラルネットワークの学習を行い、パラメータを最適化する。
【0046】
図4に示すように、学習装置20は、第1変換部201、第2変換部202、目的信号推定部203及びパラメータ更新部204を有する。第1変換部201及び第2変換部202は、それぞれ第1の実施形態に係る信号処理装置10の第1変換部101及び第2変換部102と同等の機能を有する。
【0047】
学習装置20には、学習用混合音声信号が入力される。学習用混合音声信号は、目的話者の音声信号が既知の混合音声信号である。また、学習装置20には、補助情報及び正解音声信号が入力される。そして、学習装置20は、学習済みのパラメータを出力する。正解音声信号は、学習用混合音声信号に含まれる既知の目的話者の音声信号である。
【0048】
第1変換部201及び第2変換部202は、信号処理装置10の第1変換部101及び第2変換部102と同様に、ニューラルネットワークを用いてマスク特定情報を出力する。
【0049】
目的信号推定部203は、学習用音声信号学習用混合音声信号に、マスク特定情報から特定したマスクを適用し、目的話者の音声信号の推定結果を得る。
【0050】
また、パラメータ更新部204は、推定された目的話者の音声信号の正解目的音声信号に対する誤差Jspkbeamを例えば(5)式により計算する。そして、パラメータ更新部204は、誤差に基づいてニューラルネットワークの各パラメータを更新する。例えば、パラメータ更新部204は、バックプロパゲーション等の既知の手法を用いてパラメータを更新することができる。
【0051】
【数5】
【0052】
ここでは、マスク特定情報Mにより特定されるマスクを同じ記号Mで表記している。また、第2の実施形態では、Yを学習用混合音声信号を表す記号として用いている。第1の実施形態と同様に、Yは時間フレームtにおける学習用混合音声信号の周波数表現に対応するベクトルである。また、Sは、正解目的音声信号である。より正確には、Sは、時間フレームtにおける正解目的音声信号の周波数表現に対応するベクトルである。また、θは、学習用混合音声信号Yの位相である。また、θS0は、正解目的音声信号Sの位相である。なお、各位相は、ベクトルにより表される。
【0053】
学習装置20は、パラメータの更新が収束したことを示す所定の条件が満たされるまで、更新済みのパラメータを用いてマスク特定情報の出力、目的話者の音声信号の推定及びパラメータの更新を繰り返す。例えば、所定の条件とは、繰り返しの回数があらかじめ設定した回数に到達したこと、又は誤差が所定の閾値以下になったこと等である。
【0054】
[第2の実施形態の処理]
図5を用いて、学習装置20の処理の流れを説明する。図5は、第1の実施形態に係る学習装置の処理の流れを示すフローチャートである。図5に示すように、まず、学習装置20は、ニューラルネットワークを用いて、学習用混合音声信号を中間状態に変換する(ステップS201)。
【0055】
次に、学習装置20、目的話者に応じて定められる補助情報を取得する(ステップS202)。ここで、学習装置20は、補助情報を基に中間状態をスケーリングする(ステップS203)。そして、学習装置20は、ニューラルネットワークを用いて、スケーリングした中間状態をマスク特定情報に変換する(ステップS204)。
【0056】
さらに、学習装置20は、マスク特定情報から特定されるマスクを学習用混合音声信号に適用し、目的話者の音声信号である目的音声信号を推定する(ステップS205)。そして、学習装置20は、推定した目的音声信号と正解目的音声信号との誤差を計算し、誤差を基に周知のバックプロパゲーション等を用いて各変換部のパラメータを更新する(ステップS206)。ここで、各変換部のパラメータとは、ニューラルネットワークの重み行列やバイアスベクトル等である。
【0057】
学習装置20は、所定の条件が満たされたか否かにより、パラメータの更新が収束したか否かを判定する(ステップS207、Yes)。学習装置20は、パラメータの更新が収束したと判定した場合、処理を終了する。一方、学習装置20は、パラメータの更新が収束していないと判定した場合(ステップS207、No)、ステップS201に戻り、更新済みのパラメータを使って処理を繰り返す。
【0058】
[実験結果]
ここで、第1の実施形態と従来の手法とを比較する実験を行ったので、図6を用いて実験の結果を説明する。図6は、実験結果を示す図である。実験では、Permutation invariant traininig(PIT)、SpeakerBeam FA、SpeakerBeam SAという3つの手法の比較を行った。SpeakerBeam SAは、第1の実施形態の手法である。いずれの手法においてもニューラルネットワークが用いられる。
【0059】
PITは、目的話者の音声信号を抽出する手法ではなく、話者分離のための手法である。このため、実験において、PITには、分離された音源の信号から目的話者に最も近いものを選ぶ処理を組み合わせた。
【0060】
また、SpeakerBeam FAは、非特許文献1に記載された手法である。SpeakerBeam FAの後の数値は、クラスタの数を表している。例えば、SpeakerBeam FA 30では、適応層における隠れ層は30個のクラスタに分割される。
【0061】
実験において、混合音声信号の生成には、MERL2 mixture dataというコーパスのデータセットを使用した。マスク特定情報を出力するニューラルネットワークは、512個のユニットを持つ3層のBLSTM層からなる。また、補助情報は、200個のユニットを持つ2層の全結合層からなる別のニューラルネットワークによって生成される。
【0062】
図6は、各手法のニューラルネットワークのサイズ及び目的話者の音声信号の抽出精度を示している。diff及びsameは、混合された話者の性別が異なっていたか同一であったかを示している。
【0063】
図6に示すように、SpeakerBeam FA及びSpeakerBeam SAの両方の手法で、PITに対してΔSDR(signal to distortion ratio)及びΔSTOI(short term objective intelligibility)が改善している。ここで、SpeakerBeam FAのニューラルネットワークのサイズが160Mから212Mであるのに対し、SpeakerBeam SAのニューラルネットワークのサイズはPITと同程度の134Mである。これより、第1の実施形態の手法であるSpeakerBeam SAは、ニューラルネットワークのサイズを小さく抑えつつ、従来の手法と同程度の抽出精度を持つことがいえる。
【0064】
[第1の実施形態の変形例1]
第1の実施形態では、第1変換部101及び第2変換部102による計算処理は、時間周波数ビンごとの信号に対して行われるのに対し、スケーリングのための補助情報は、各時間周波数ビンで共通していた。これに対し、第2変換部102は、時間周波数ビンごとに異なる補助情報を使ってスケーリングを行ってもよい。
【0065】
また、補助情報は、以下のような注意機構付きのsequence summarizing networkを利用した方法で生成されてもよい。すなわち、図示しない補助情報生成部は、目的信号抽出のためのニューラルネットワークとは別の、補助情報生成のためのフィードフォワードニューラルネットワークzを用いる。まず、(6)式に示すように、補助情報生成部は、フィードフォワードニューラルネットワークzに目的話者の発話から得られる音声信号を入力し、各時間フレームtの補助情報λ(λの直上に-)及び信頼度(aの直上に-)を出力させる。前述の通り、(6)式のAは、時間フレームtの目的話者信号である。
【0066】
【数6】
【0067】
そして、(7)式に示すように、補助情報生成部は、信頼度をsoftmax関数により正規化する。
【0068】
【数7】
【0069】
さらに、補助情報生成部は、(8)式に示すように、時間フレームごとの補助情報及び正規化された信頼度を基に、最終的な補助情報λを計算する。
【0070】
【数8】
【0071】
このように、雑音等を含まないクリーンな目的話者の音声が用意できない場合であっても、時間フレームごとの信頼度で重み付けを行うことで、雑音等の影響を受けにくい頑健な補助情報の生成及び目的話者の音声信号の抽出が可能となる。
【0072】
[第1の実施形態の変形例2]
また、第1の実施形態では、第2変換部がマスク特定情報を出力するモデル(関数)として説明したが、第2変換部の出力が目的音声信号(マスクを適用した後の音声信号)となるように構成してもよい。この場合は、第2変換部を構成するニューラルネットワーク内に目的信号推定部203に相当する変換部が含まれるため、信号処理装置10が目的信号推定部203を別途備える必要はない。また、この場合は、第2計算部102bの最終層の変換結果LWK(x,ψ)がマスク適用後の音声信号、つまり、時間フレームtにおける入力混合音声信号に含まれる目的話者の音声信号の推定結果、つまり時間フレームtの目的話者音声信号の推定結果の周波数表現に対応するベクトルとなる。
【0073】
つまり、本発明の信号処理装置は、混合音声信号から、当該混合音声信号に含まれる目的話者の音声信号を抽出する情報を出力する。目的話者の音声信号を抽出する情報とは、マスク特定情報や、マスクそのもの、あるいは、目的話者の音声信号の推定値そのもの等、である。
【0074】
[第2の実施形態の変形例]
第1の実施形態の変形例2のニューラルネットワークの学習には、第2実施形態の学習装置を次のように変更する。第2の実施形態の変形例1の学習装置は、図4から目的信号推定部203を削除した構成となる。そして、パラメータ更新部204は、第2変換部202の出力ベクトルと正解目的音声信号Sを直接比較した結果に基づき、パラメータを更新する。例えば、パラメータ更新部204は、第2変換部202の出力をσ(L(x,ψ))として、(3)式におけるMとYの要素ごとの積をσ(L(x,ψ))に置き換えて、(9)式に示す計算を実行すればよい。
【0075】
【数9】
【0076】
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0077】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0078】
[プログラム]
一実施形態として、信号処理装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記のマスクの計算を実行する信号処理プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の信号処理プログラムを情報処理装置に実行させることにより、情報処理装置を信号処理装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。
【0079】
また、信号処理装置10は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の信号処理に関するサービスを提供する信号処理サーバ装置として実装することもできる。例えば、信号処理サーバ装置は、混合音声信号を入力とし、目的音声の信号を抽出するためのマスクを出力とする信号処理サービスを提供するサーバ装置として実装される。この場合、信号処理サーバ装置は、Webサーバとして実装することとしてもよいし、アウトソーシングによって上記の信号処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【0080】
図7は、プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0081】
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0082】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、信号処理装置10の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、信号処理装置10における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSDにより代替されてもよい。
【0083】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
【0084】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0085】
10 信号処理装置
20 学習装置
101、201 第1変換部
101a 第1計算部
102、202 第2変換部
102a スケーリング部
102b 第2計算部
203 目的信号推定部
204 パラメータ更新部
図1
図2
図3
図4
図5
図6
図7
図8