(57)【要約】【課題】処理負荷を抑制しつつ、音声から雑音を適切に除去することを可能とする。【解決手段】音声信号に対応する周波数スペクトルに基づいて、音声信号に含まれる雑音成分を除去する複素数フィルタを生成し、複素数フィルタの実部の値と、雑音成分が存在しない場合に生成される複素数フィルタの実部の値である第１の値との比較を行う。実部の値と第１の値との相違が小さい場合、周波数スペクトルに複素数フィルタの振幅成分を適用し、実部の値と第１の値との相違が小さくない場合、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用することで雑音成分を除去することを決定する。【選択図】図６
2020060612.tif 000002
【特許請求の範囲】
【請求項１】
音声信号に対して時間周波数変換を行い、前記音声信号に対応する周波数スペクトルを取得し、
取得した前記周波数スペクトルに基づいて、前記音声信号に含まれる雑音成分を除去する複素数フィルタを生成し、
前記複素数フィルタの実部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの実部の値である第１の値との比較、及び、前記複素数フィルタの虚部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの虚部の値である第２の値と、の比較の少なくとも一方を行い、
前記実部の値と前記第１の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第１の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、前記虚部の値と前記第２の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記虚部の値と前記第２の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、または、前記実部の値と前記第１の値との相違が小さく、前記虚部の値と前記第２の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第１の値との相違が小さくないか、または、前記虚部の値と前記第２の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用することで雑音成分を除去することを決定する、
雑音除去処理をコンピュータに実行させるための音声信号処理プログラム。
【請求項２】
音声入力部で音声から変換される前記音声信号を取得し、
前記周波数スペクトルに適用することが決定された前記複素数フィルタの成分を、前記周波数スペクトルに適用し、
前記複素数フィルタを適用した前記周波数スペクトルを音声信号に時間周波数逆変換し、
時間周波数逆変換した前記音声信号に対応する音声を音声出力部から出力する、
請求項１に記載の音声信号処理プログラム。
【請求項３】
音声入力部で音声から変換される前記音声信号を取得し、
前記周波数スペクトルに適用することが決定された前記複素数フィルタの成分を、前記周波数スペクトルに適用し、
前記複素数フィルタを適用した前記周波数スペクトルを音声信号に時間周波数逆変換し、
時間周波数逆変換した前記音声信号を音声認識することでテキストに変換し、
変換した前記テキストをテキスト出力部から出力する、
請求項１に記載の音声信号処理プログラム。
【請求項４】
前記第１の値は１．０であり、
前記第２の値は０．０であり、
前記複素数フィルタの各々の実部の平均値と前記第１の値との差が第１所定値以下である場合、前記実部の値と前記第１の値との相違が小さく、前記複素数フィルタの各々の虚部の平均値と前記第２の値との差が第２所定値以下である場合、前記虚部の値と前記第２の値との相違が小さい、
請求項１〜請求項３の何れか１項に記載の音声信号処理プログラム。
【請求項５】
前記複素数フィルタは、周波数スペクトルを入力すると、前記複素数フィルタを出力するように機械学習を用いて学習された複素数フィルタ生成モデルで生成される、
請求項１〜４の何れか１項に記載の音声信号処理プログラム。
【請求項６】
コンピュータが、
音声信号に対して時間周波数変換を行い、前記音声信号に対応する周波数スペクトルを取得し、
取得した前記周波数スペクトルに基づいて、前記音声信号に含まれる雑音成分を除去する複素数フィルタを生成し、
前記複素数フィルタの実部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの実部の値である第１の値との比較、及び、前記複素数フィルタの虚部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの虚部の値である第２の値と、の比較の少なくとも一方を行い、
前記実部の値と前記第１の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第１の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、前記虚部の値と前記第２の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記虚部の値と前記第２の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、または、前記実部の値と前記第１の値との相違が小さく、前記虚部の値と前記第２の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第１の値との相違が小さくないか、または、前記虚部の値と前記第２の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用することで雑音成分を除去することを決定する、
音声信号処理方法。
【請求項７】
音声信号に対して時間周波数変換を行い、前記音声信号に対応する周波数スペクトルを取得する時間周波数変換部と、
取得した前記周波数スペクトルに基づいて、前記音声信号に含まれる雑音成分を除去する複素数フィルタを生成する複素数フィルタ生成部と、
前記複素数フィルタの実部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの実部の値である第１の値との比較、及び、前記複素数フィルタの虚部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの虚部の値である第２の値と、の比較の少なくとも一方を行うフィルタ判定部と、
前記実部の値と前記第１の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第１の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、前記虚部の値と前記第２の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記虚部の値と前記第２の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、または、前記実部の値と前記第１の値との相違が小さく、前記虚部の値と前記第２の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第１の値との相違が小さくないか、または、前記虚部の値と前記第２の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用することで雑音成分を除去することを決定するフィルタ適用成分決定部と、
を含む、音声信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声信号処理プログラム、音声信号処理方法及び音声信号処理装置に関する。
【背景技術】
【０００２】
例えば、非一時的記録媒体に記録されている音声に対して、音声認識技術を適用して、発話内容及び発話時間を取得し、発話内容を表す字幕を作成したり、発話内容から特定の用語を検索することが可能なコーパスを作成したりする技術が存在する。しかしながら、非一時的記録媒体に記録されている音声に雑音が含まれている場合、音声認識精度が低下する。
【０００３】
例えば、音声を収音する際に、複数のマイクを使用して、音声の到来方向を取得することで、雑音を除去する技術が存在する。しかしながら、一般的に、非一時的記録媒体に記録されている音声を収音した際のマイクに関する情報は不明であるため、非一時的記録媒体に記録されている音声に対して、当該技術を使用することは困難である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−０２０６７９号公報
【特許文献２】特開２００８−０７６９７５号公報
【非特許文献】
【０００５】
【非特許文献１】Vincentら、"Extracting and Composing Robust Features with Denoising Autoencoders"、Proc. of ICML 2008、２００８年７月、pp.1096 - 1103
【非特許文献２】”５．ＲＷＣＰ音声データベース”、ｏｎｌｉｎｅ、[平成３０年９月１９日検索］、インターネット（ｈｔｔｐ：／／ｒｅｓｅａｒｃｈ．ｎｉｉ．ａｃ．ｊｐ／ｓｒｃ／ＲＷＣＰ−ＳＰ９６．ｈｔｍｌ）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
音声を収音する際に使用されたマイクの配置に関する情報を使用することなく雑音を除去する技術として、例えば、音声信号を使用して雑音除去フィルタを生成し、音声信号の振幅スペクトルに生成した雑音除去フィルタを適用する技術が存在する。
【０００７】
しかしながら、信号対雑音比が小さく、かつ、雑音が抽出対象の音声に類似している場合、音声の振幅スペクトルに雑音除去フィルタを適用しても、音声から雑音を適切に除去することは困難である。雑音が抽出対象の音声に類似している場合とは、例えば、雑音が抽出対象の話者以外の話者の発話などである場合である。位相スペクトルにも雑音除去フィルタを適用することで、音声から雑音を適切に除去することは可能となるが、処理負荷が増大する。
【０００８】
本発明は、１つの側面として、処理負荷を抑制しつつ、音声から雑音を適切に除去することを可能とすることを目的とする。
【課題を解決するための手段】
【０００９】
１つの実施形態では、音声信号に対して時間周波数変換を行い、音声信号に対応する周波数スペクトルを取得し、取得した周波数スペクトルに基づいて、音声信号に含まれる雑音成分を除去する複素数フィルタを生成する。複素数フィルタの実部の値と第１の値との比較、及び、複素数フィルタの虚部の値と第２の値との比較、の少なくとも一方を行う。第１の値は雑音成分が存在しない場合に生成される複素数フィルタの実部の値であり、第２の値は雑音成分が存在しない場合に生成される複素数フィルタの虚部の値である。実部の値と第１の値との相違が小さい場合、周波数スペクトルに複素数フィルタの振幅成分を適用し、実部の値と第１の値との相違が小さくない場合、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用することを決定する。または、虚部の値と前記第２の値との相違が小さい場合、周波数スペクトルに複素数フィルタの振幅成分を適用し、虚部の値と第２の値との相違が小さくない場合、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用することを決定する。または、実部の値と第１の値との相違が小さく、虚部の値と第２の値との相違が小さい場合、周波数スペクトルに複素数フィルタの振幅成分を適用することを決定する。この場合、実部の値と第１の値との相違が小さくないか、または、虚部の値と第２の値との相違が小さくない場合、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用することを決定する。
【発明の効果】
【００１０】
本発明は、１つの側面として、処理負荷を抑制しつつ、音声から雑音を適切に除去することを可能とする。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係る音声信号処理装置の一例を示すブロック図である。
【図２】複素数フィルタ生成部の一例を示すブロック図である。
【図３】実施形態に係る音声信号処理装置のハードウェアの一例を示すブロック図である。
【図４】実施形態に係る音声信号処理の流れの一例を示すフローチャートである。
【図５】フィルタ判定部の閾値について説明するための表である。
【図６】処理パターン毎に音声信号処理に要する時間の一例を示す表である。
【図７】重複発話の割合の一例を示す表である。
【図８】音声信号処理装置の一例を示すブロック図である。
【図９】サーバのハードウェアの一例を示すブロック図である。
【図１０】音声信号処理装置の一例を示すブロック図である。
【図１１】音声信号処理装置の一例を示すブロック図である。
【図１２】クライアントのハードウェアの一例を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して実施形態の一例を詳細に説明する。
【００１３】
図１に示す音声信号処理装置１０は、音声入力部１２、時間周波数変換部１４、複素数フィルタ生成部１６、フィルタ判定部１８、フィルタ適用成分決定部２０、フィルタ適用部２２、時間周波数逆変換部２４、及び、音声出力部２６を含む。音声入力部１２は、入力される音声を音声信号に変換する。
【００１４】
時間周波数変換部１４は、１フレーム分の音声信号に対して時間周波数変換を行い、周波数スペクトルに変換する。時間周波数変換は、例えば、Fast Fourier Transformation（以下、ＦＦＴという。）であってよく、１フレームは、例えば、１０ｍ秒であってよい。
【００１５】
複素数フィルタ生成部１６は、例えば、Ｎフレーム分の周波数スペクトルを使用して、当該周波数スペクトルに対応する音声に含まれる雑音を除去する複素数フィルタを生成する。Ｎは、例えば、１００であってよい。複素数フィルタＭは、例えば、（１）式で表される。
Ｍ＝Ｆ（Ｙ）    …（１）
【００１６】
Ｙは周波数スペクトルであり、Ｆは複素数フィルタの生成モデルである。生成モデルは、例えば、図２に例示するように、Denoising Autoencoder（以下、ＤＡＥという。）４４などであってよい。ＤＡＥ４４は、入力される情報を圧縮するエンコーダと、情報を展開して出力するデコーダとを含み、情報を一旦圧縮することで、不要な情報である雑音を除去する。
【００１７】
ＤＡＥ４４の入力は、雑音信号４２及び音声信号４１を含む信号をＦＦＴ４３で時間周波数変換することで取得されたＮフレーム分の周波数スペクトルであり、１フレーム分の周波数スペクトルは周波数サンプル数のデータを含む。周波数サンプル数は、例えば、２５６であってよい。ＤＡＥ４４の出力は、データ数分の複素数フィルタである。複素数フィルタをＦＦＴ４３で取得された周波数スペクトルに適用し、逆ＦＦＴ部４５で時間周波数逆変換することで、音声信号４６を取得する。
【００１８】
音声信号４１と音声信号４６とが等しくなるように、ＤＡＥ４４を学習させる。音声信号４１は、例えば、抽出対象の話者の発話に対応する音声信号であり、雑音信号４２は、例えば、抽出対象の話者以外の話者の発話に対応する音声信号などである。なお、生成モデルは、ＤＡＥに限定されない。既存の、雑音成分を含む音声信号に基づいて、複素数フィルタを生成するモデルであってよい。
【００１９】
フィルタ判定部１８は、複素数フィルタの実部に基づいて、複素数フィルタの生成に使用された音声信号に含まれる雑音成分の大きさを判定する。複素数フィルタＭは、例えば、（２）式で表される。
Ｍ＝Ｆ（Ｙ）＝ａ＋ｂｉ    …（２）
【００２０】
周波数スペクトルＹに対応する音声信号が雑音成分を含まない場合、実部ａ＝１．０、虚部ｂ＝０．０となる。周波数スペクトルＹに対応する音声信号に含まれる雑音成分が少ないほど、実部ａは第１の値の一例である１．０に近付き、虚部ｂは第２の値の一例である０．０に近付く。
【００２１】
したがって、生成される複素数フィルタＭの実部ａが１．０に近いほど、音声信号に含まれる雑音成分が少なく、実部が１．０から離れるほど、音声信号に含まれる雑音成分が多い、と判定することができる。詳細には、例えば、（３）式で、雑音判定値を算出する。
雑音判定値＝１．０−（複素数フィルタの実部の平均値）…（３）
【００２２】
複素数フィルタの実部の平均値は、生成される複素数フィルタの実部ａを加算し、複素数フィルタの数で除算することで算出することができる。
【００２３】
フィルタ適用成分決定部２０は、雑音判定値に基づいて、周波数スペクトルに、複素数フィルタの振幅成分を適用するか、振幅成分及び位相成分を適用するか、を決定する。例えば、雑音判定値が、第１所定値以下である場合、複素数フィルタの振幅成分を適用し、雑音判定値が、第１所定値より大きい場合、複素数フィルタの振幅成分及び位相成分を適用する、と決定する。第１所定値は、例えば、０．３０であってよい。
【００２４】
即ち、フィルタ適用成分決定部２０は、音声信号の雑音成分が少ないと判定された場合、周波数スペクトルに、複素数フィルタの振幅成分を適用することを決定する。また、フィルタ適用成分決定部２０は、音声信号の雑音成分が多いと判定された場合、周波数スペクトルに、複素数フィルタの振幅成分だけでなく、位相成分も併せて適用することを決定する。
【００２５】
フィルタ生成モデルによって生成される複素数フィルタは一般的に誤差を含み、誤差を含む複素数フィルタの振幅成分だけを適用する場合、処理負荷を軽減することができるが、雑音除去性能は低減する。一方、複素数フィルタの振幅成分及び位相成分を適用する場合、雑音除去性能は増大するが、処理負荷も増大する。一般的な音声認識エンジンは、音声信号に許容量以下の雑音成分が存在しても、音声を適切に認識することができる。したがって、複素数フィルタの振幅成分だけを適用することで残存する雑音成分が許容量以下であれば、処理負荷を軽減するために、振幅成分だけを適用することは有用である。
【００２６】
フィルタ適用部２２は、周波数スペクトルに適用することが決定された複素数フィルタの成分を、周波数スペクトルに適用する。（３）式は、複素数フィルタＭの振幅成分を周波数スペクトルＹに適用することで取得される周波数スペクトルＳを例示する。
Ｓ＝｜Ｍ｜・｜Ｙ｜    …（３）
【００２７】
（４）式は、複素数フィルタＭの振幅成分及び位相成分を周波数スペクトルＹに適用することで取得される周波数スペクトルＳを例示する。
Ｓ＝Ｍ＊Ｙ＝｜Ｍ｜・｜Ｙ｜・（ｃｏｓ（θＭ＋θＹ）＋ｉ・ｓｉｎ（θＭ＋θＹ））
…（４）
θＭは、複素数フィルタＭの位相成分を表し、θＹは、周波数スペクトルＹの位相成分を表す。
【００２８】
（３）式によれば、周波数スペクトルに複素数フィルタの振幅成分を適用する場合、１回の乗算が行われる。また、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用する場合、（４）式によれば、５回の乗算及び３回の加減算が行われる。即ち、複素数フィルタの振幅成分及び位相成分を適用する場合、複素数フィルタの振幅成分だけを適用する場合よりも、処理負荷は増大する。
【００２９】
時間周波数逆変換部２４は、複素数フィルタが適用された周波数スペクトルに対して、時間周波数逆変換を行い、周波数スペクトルに対応する音声信号を取得する。時間周波数逆変換は、例えば、Inverse Fast Fourier Transformation（以下、ＩＦＦＴという。）であってよい。音声出力部２６は、時間周波数逆変換部２４で取得された音声信号に対応する音声を出力する。
【００３０】
音声信号処理装置１０は、一例として、図３に示すように、ＣＰＵ（Central Processing Unit）５１、一次記憶部５２、二次記憶部５３、外部インタフェース５４、マイク３１Ａ及びスピーカ３１Ｂを含む。ＣＰＵ５１は、ハードウェアであるプロセッサの一例である。ＣＰＵ５１、一次記憶部５２、二次記憶部５３、外部インタフェース５４、マイク３１Ａ及びスピーカ３１Ｂは、バス５９を介して相互に接続されている。
【００３１】
一次記憶部５２は、例えば、ＲＡＭ（Random Access Memory）などの揮発性のメモリである。二次記憶部５３は、例えば、ＨＤＤ（Hard Disk Drive）、又はＳＳＤ（Solid State Drive）などの不揮発性のメモリである。
【００３２】
二次記憶部５３は、プログラム格納領域５３Ａ及びデータ格納領域５３Ｂを含む。プログラム格納領域５３Ａは、一例として、雑音除去を行う音声信号処理プログラムなどのプログラムを記憶している。データ格納領域５３Ｂは、一例として、音声信号及び音声信号処理プログラムを実行している間に生成される中間データなどを記憶する。
【００３３】
ＣＰＵ５１は、プログラム格納領域５３Ａから音声信号処理プログラムを読み出して一次記憶部５２に展開する。ＣＰＵ５１は、音声信号処理プログラムをロードして実行することで、図１の時間周波数変換部１４、複素数フィルタ生成部１６、フィルタ判定部１８、フィルタ適用成分決定部２０、フィルタ適用部２２及び時間周波数逆変換部２４として動作する。
【００３４】
なお、音声信号処理プログラムなどのプログラムは、外部サーバに記憶され、ネットワークを介して、一次記憶部５２に展開されてもよい。また、音声信号処理プログラムなどのプログラムは、ＤＶＤ（Digital Versatile Disc）などの非一時的記録媒体に記憶され、記録媒体読込装置を介して、一次記憶部５２に展開されてもよい。
【００３５】
外部インタフェース５４には外部装置が接続され、外部インタフェース５４は、外部装置とＣＰＵ５１との間の各種情報の送受信を司る。マイク３１Ａは、音声入力部１２の一例であり、入力される音声を音声信号に変換する。スピーカ３１Ｂは、音声出力部２６の一例であり、例えば、雑音成分が除去された音声信号に対応する音声を出力する。なお、マイク３１Ａ及びスピーカ３１Ｂは、音声信号処理装置１０に内蔵されず、外部インタフェース５４を介して、外部装置として、音声信号処理装置１０と接続されていてもよい。
【００３６】
音声信号処理装置１０は、例えば、パーソナルコンピュータであってもよいし、スマートフォンであってもよいし、専用のデバイスであってもよい。
【００３７】
次に、雑音を除去する音声信号処理の作用の概要について説明する。図４は、音声信号処理の流れを例示する。ＣＰＵ５１は、ステップ１０１で、マイク３１Ａから入力される音声に対応する音声信号を１フレーム分読み込む。
【００３８】
ＣＰＵ５１は、ステップ１０２で、読み込まれた音声信号に対してＦＦＴを行い、周波数スペクトルを取得する。ＣＰＵ５１は、ステップ１０３で、所定数Ｎのフレームが読み込まれたか否か判定する。ステップ１０３の判定が否定された場合、ＣＰＵ５１は、ステップ１０１に戻り、ステップ１０３の判定が肯定された場合、ＣＰＵ５１は、ステップ１０４で、Ｎフレーム分の周波数スペクトルを使用して、複素数フィルタを生成する。
【００３９】
ＣＰＵ５１は、ステップ１０５で、生成された複素数フィルタの実部に基づいて、ステップ１０１で読み込まれた音声信号に含まれている雑音成分が多いか否か判定する。ステップ１０５で、雑音成分が多いと判定された場合、ＣＰＵ５１は、ステップ１０７で、雑音を除去するために、複素数フィルタの振幅成分及び位相成分の両方を適用することを決定する。雑音成分が少ないと判定された場合、ＣＰＵ５１は、ステップ１０６で、複素数フィルタの振幅成分を適用することを決定する。
【００４０】
ＣＰＵ５１は、ステップ１０８で、ステップ１０６またはステップ１０７で決定された複素数フィルタの成分をステップ１０２で取得された周波数スペクトルに適用する。ＣＰＵ５１は、ステップ１０９で、複素数フィルタが適用された周波数スペクトルに対してＩＦＦＴを行い、音声信号を取得する。
【００４１】
ＣＰＵ５１は、ステップ１１０で、スピーカ３１Ｂを介して、音声信号に対応する音声を出力して、Ｎフレーム分の音声信号の処理を終了する。
【００４２】
次に、ステップ１０５で、音声信号に含まれる雑音成分が多いか否かを判定する閾値について説明する。図５に、音声信号の信号対雑音比（Signal to Noise Ratio（以下、ＳＮＲという。））、当該音声信号を使用して生成される複素数フィルタの実部の平均値、１．０−（複素数フィルタの実部の平均値）、即ち、雑音判定値を例示する。１．０は、雑音成分を含まない音声信号を使用して生成される複素数フィルタの実部の値である。ＳＮＲは、数値が大きいほど、雑音成分が少ないことを意味する。
【００４３】
図５は、複素数フィルタの振幅成分を音声信号に対応する周波数スペクトルに適用した場合のSignal to Distortion Ratio（以下、ＳＤＲという。）及び複素数フィルタの振幅成分及び位相成分を周波数スペクトルに適用した場合のＳＤＲも例示する。ＳＤＲは、「信号成分」と「雑音成分＋復元による音声歪み成分」との対数比率を表す値であり、数値が大きいほど、雑音成分が適切に除去されている、ことを意味する。
【００４４】
一般的な音声認識エンジンでは、音声信号のＳＤＲが１５．０［ｄＢ］より大きい場合に、適切な認識精度を発揮することができる。したがって、振幅成分を周波数スペクトルに適用した際のＳＤＲが、例えば、２０．０［ｄＢ］より大きい場合に、振幅成分を周波数スペクトルに適用する。図５において、振幅成分を周波数スペクトルに適用した際のＳＤＲが２２．５［ｄＢ］の場合、即ち、２０．０［ｄＢ］より大きい場合、対応する雑音判定値は０．３０であるため、閾値、即ち、第１所定値として、例えば、０．３０を使用することができる。
【００４５】
一方、雑音判定値が閾値である０．３０を超える場合、即ち、０．４６である場合、振幅成分を周波数スペクトルに適用すると、ＳＤＲが１８．６［ｄＢ］となり、２０．０［ｄＢ］よりも小さくなる。したがって、音声認識エンジンで適切な認識精度が発揮されない虞があるため、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用する。これにより、ＳＤＲを２０．０［ｄＢ］を超える２２．８［ｄＢ］に引き上げることができる。例えば、ＳＮＲが−５「ｄＢ」の場合であっても、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用することで、１５．０［ｄＢ］を超える１５．４［ｄＢ］のＳＤＲを取得することができ、音声認識エンジンで適切な認識精度を得ることができる。
【００４６】
しかしながら、本実施形態は、雑音判定値の閾値を０．３０とする例に限定されない。使用する音声認識エンジンの性能、または所望される処理負荷に応じて、適切な閾値を設定することができる。また、雑音判定値と閾値とを比較する代わりに、複素数フィルタの実部の平均値と閾値とを比較してもよい。この場合の閾値は、例えば、１．０−第１所定値とすればよい。即ち、例えば、複素数フィルタの実部の平均値が０．７を超える場合に、音声信号の雑音成分が少ないと判定してもよい。
【００４７】
図６は、音声信号に要する処理時間を例示する。ここで使用される音声信号処理プログラムは、Ｐｙｔｈｏｎ３で作成されている。処理パターン１〜処理パターン５の処理について、各々、音声信号のフレーム数は２５６、周波数サンプル数は２５６で、１０００回の処理を行った。
【００４８】
処理パターン１及び処理パターン２は、複素数フィルタの実部の判定を行わない場合である。処理パターン１では、複素数フィルタの振幅成分を全ての周波数スペクトルに適用し、処理パターン２では、複素数フィルタの振幅成分及び位相成分を全ての周波数スペクトルに適用する。処理パターン１の処理時間は、１．９５［秒］であり、処理パターン２の処理時間は、３．７３［秒］である。
【００４９】
処理パターン３〜処理パターン５は、複素数フィルタの実部の判定を行う場合であり、処理パターン３では、５０％の周波数スペクトルに、複素数フィルタの振幅成分を適用し、５０％の周波数スペクトルに、複素数フィルタの振幅成分及び位相成分を適用する。処理パターン４では、２０％の周波数スペクトルに、複素数フィルタの振幅成分を適用し、８０％の周波数スペクトルに、複素数フィルタの振幅成分及び位相成分を適用する。処理パターン５では、１００％の周波数スペクトルに、複素数フィルタの振幅成分及び位相成分を適用する。処理パターン３の処理時間は、２．４３［秒］であり、処理パターン４の処理時間は３．０３［秒］であり、処理パターン５の処理時間は、３．９５［秒］である。
【００５０】
処理パターン２では、処理時間が３．７３［秒］であり、処理パターン５では、処理時間が３．９５［秒］である。即ち、処理パターン５では、複素数フィルタの実部の判定に０．２２秒要し、複素数フィルタの実部を判定する分、０．２２［秒］多く時間を要する。複素数フィルタの実部の判定は、複素数フィルタの実部の平均値を算出する際に、１フレームの音声信号毎に周波数サンプル数の回数の加算及び除算１回を行う。
【００５１】
しかしながら、複数の話者が発話する状況において、複数の話者の発話が重畳する、即ち、抽出対象の話者以外の話者の発話である雑音成分が多く含まれる音声の割合は、図７に例示するように多くはない。図７は、音声対話データベース（ＲＷＣＰ−ＳＰ９６）における、単独発話、重複発話の発話時間及び割合を例示する。
【００５２】
音声対話データベースでは、話者が顧客及び店員の２人である４８対話の発話区間のうち、顧客の単独発話が２２．２％、店員の単独発話が６１．４％、顧客及び店員の重複発話が１６．３％である。即ち、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用する程度に雑音が多いと判定される可能性が高い音声は、全発話区間のうち、１６．３％であり、２０％に満たない。
【００５３】
一方、図６において、５０％の周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用する処理パターン３の処理時間は２．４３［秒］である。また、８０％の周波数スペクトルに振幅成分及び位相成分を適用する処理パターン４の処理時間は３．０３［秒］である。したがって、８０％の周波数スペクトルに振幅成分及び位相成分を適用する場合であっても、複素数フィルタの実部の判定を行わず、全ての周波数スペクトルに振幅成分及び位相成分を適用する処理パターン２よりも、０．７０［秒］処理時間が短縮される。即ち、処理負荷が軽減される。
【００５４】
なお、ステップ１０５で、生成された複素数フィルタの実部に基づいて、音声信号に含まれる雑音成分を判定する例について説明したが、本実施例はこれに限定されない。例えば、生成される複素数フィルタの虚部ｂを加算し、複素数フィルタの数で除算することで算出される複素数フィルタの虚部の平均値が０．０に近い場合に、雑音成分が少ないと判定してもよい。また、複素数フィルタの実部の平均値が１．０に近く、かつ、虚部の平均値が０．０に近い場合に、雑音成分が少ないと判定してもよい。なお、虚部の平均値が０．０に近いか否か判定する閾値は、例えば、０．３０であってよい。当該閾値は、第２所定値の一例である。
【００５５】
音声信号処理装置１０は、図８に例示するように、有線または無線ネットワークで接続されたクライアント８１Ａ及びサーバ８２Ａを含んでいてもよい。この場合、クライアント８１Ａは、例えば、図１の音声入力部１２及び音声出力部２６を含む。サーバ８２Ａは、時間周波数変換部１４、複素数フィルタ生成部１６、フィルタ判定部１８、フィルタ適用成分決定部２０、フィルタ適用部２２、及び、時間周波数逆変換部２４を含む。
【００５６】
クライアント８１Ａのハードウェア構成は、図２の音声信号処理装置１０のハードウェア構成と同様であってよい。また、サーバ８２Ａのハードウェア構成は、図９に例示するように、マイク３１Ａ及びスピーカ３１Ｂを含まない点で、図２の音声信号処理装置１０と相違する。しかしながら、図９のＣＰＵ５１Ｄ、一次記憶部５２Ｄ、二次記憶部５３Ｄ、及び外部インタフェース５４Ｄは、図２のＣＰＵ５１、一次記憶部５２、二次記憶部５３、及び外部インタフェース５４と同様であってよいため、詳細な説明を省略する。二次記憶部５３Ｄは、二次記憶部５３と同様に、プログラム格納領域５３ＡＤ及びデータ格納領域５３ＢＤを含む。
【００５７】
音声信号処理装置１０の機能をクライアント８１Ａとサーバ８２Ａとに分離することで、クライアント８１Ａの処理負荷をさらに軽減し、クライアント８１Ａを小型・軽量化することで、クライアント８１Ａの携帯性を向上させることが可能となる。
【００５８】
音声信号処理装置１０は、図１０に例示するように、有線または無線ネットワークで接続されたクライアント８１Ｂ、第１サーバ８２Ｂ及び第２サーバ８２Ｃを含んでいてもよい。クライアント８１Ｂは、図１１に例示するように、音声入力部１２及び、テキスト出力部２７を含む。第１サーバ８２Ｂは、時間周波数変換部１４、複素数フィルタ生成部１６、フィルタ判定部１８、フィルタ適用成分決定部２０、フィルタ適用部２２及び時間周波数逆変換部２４を含む。第２サーバは、音声認識部２５を含む。
【００５９】
第１サーバ８２Ａ及び第２サーバ８２Ｂのハードウェア構成は、サーバ８２Ａのハードウェア構成と同様であってよい。クライアント８１Ｂのハードウェア構成は、図１２に例示するように、スピーカ３１Ｂに代えて、テキスト出力部の一例であるディスプレイ３１Ｃを有している点で、図２の音声信号処理装置１０と相違する。
【００６０】
第２サーバ８２Ｃは、第１サーバ８２Ｂから雑音成分が除去された音声信号を受信し、音声認識を行うことで、音声信号をテキストに変換し、クライアント８１Ｂに当該テキストを送信する。クライアント８１Ｂは、テキストを受信し、ディスプレイ３１Ｃに表示する。音声認識には、既存の技術が適用されてよい。雑音を除去した音声信号の音声認識を行いテキスト化することで、音声信号に含まれる情報のテキスト検索を可能とし、情報の利用価値を向上させることができる。音声信号処理装置１０の機能をクライアント８１Ｂ、第１サーバ８２Ｂ及び第２サーバ８２Ｃに分離することで、クライアント８１Ｂの処理負荷をさらに軽減することができる。これにより、クライアント８１Ｂを小型・軽量化することで、クライアント８１Ｂの携帯性を向上させることが可能となる。
【００６１】
なお、図８及び図１０に例示した音声信号処理装置は、一例であり、本実施形態はこれらに限定されない。例えば、図１０の第２サーバ８２Ｃが音声認識部２５を含む代わりに、第１サーバ８２Ｂが音声認識部２５を含み、第２サーバ８２Ｃが存在しない構成としてもよい。また、図１の音声信号処理装置１０が、音声出力部２６に代えて、または、音声出力部２６に加えて、音声認識部２５及びテキスト出力部２７を有してもよい。
【００６２】
なお、音声を音声入力部１２から入力し、音声出力部２６から音声を出力するか、テキスト出力部２７から音声に対応するテキストを出力する例について説明したが、本実施形態はこれらに限定されない。例えば、ファイルに予め保存されている音声信号のデータを読み込み、雑音成分が除去された音声信号のデータをファイルに保存するようにしてもよい。ファイルは、例えば、二次記憶部５３のデータ格納領域５３Ｂまたは二次記憶部５３Ｄのデータ格納領域５３ＢＤなどに記憶されてもよい。
【００６３】
本実施形態は、雑音が存在する環境で収音される音声の字幕作成、会議議事録作成などに適用することができる。雑音は、抽出対象の話者以外の話者の発話またはエアコンの稼働音などの環境雑音であってよい。
【００６４】
なお、複素数フィルタの生成には、全ての周波数サンプルの周波数スペクトルを使用せず、所定の周波数帯域の周波数スペクトルを使用してもよい。また、フィルタ判定には、全ての周波数サンプルに対応する複素数フィルタを使用せず、所定の周波数帯域に対応する複素数フィルタを使用してもよい。なお、図４に例示するフローチャートは一例であり、ステップの順序は変更されてもよい。
【００６５】
本実施形態では、音声信号に対して時間周波数変換を行い、音声信号に対応する周波数スペクトルを取得し、取得した周波数スペクトルに基づいて、音声信号に含まれる雑音成分を除去する複素数フィルタを生成する。複素数フィルタの実部の値と第１の値との比較及び、複素数フィルタの虚部の値と第２の値との比較の少なくとも一方を行う。第１の値は雑音成分が存在しない場合に生成される複素数フィルタの実部の値であり、第２の値は雑音成分が存在しない場合に生成される複素数フィルタの虚部の値である。実部の値と第１の値との相違が小さい場合、周波数スペクトルに複素数フィルタの振幅成分を適用し、実部の値と第１の値との相違が小さくない場合、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用することを決定する。または、虚部の値と前記第２の値との相違が小さい場合、周波数スペクトルに複素数フィルタの振幅成分を適用し、虚部の値と第２の値との相違が小さくない場合、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用することを決定する。または、実部の値と第１の値との相違が小さく、虚部の値と第２の値との相違が小さい場合、周波数スペクトルに複素数フィルタの振幅成分を適用することを決定する。この場合、実部の値と第１の値との相違が小さくないか、または、虚部の値と第２の値との相違が小さくない場合、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用することを決定する。
【００６６】
本実施形態では、音声信号を使用して、当該音声信号から雑音成分を除去する複素数フィルタを生成する。生成される複素数フィルタに基づいて音声信号の雑音成分が少ないと判定される場合には、音声信号に複素数フィルタの振幅成分を適用し、雑音成分が多いと判定される場合には、音声信号に複素数フィルタの振幅成分及び位相成分を適用することを決定する。これにより、本実施形態では、処理負荷を抑制しつつ、音声から雑音を適切に除去することを可能とする。
【００６７】
以上の各実施形態に関し、更に以下の付記を開示する。
【００６８】
（付記１）
音声信号に対して時間周波数変換を行い、前記音声信号に対応する周波数スペクトルを取得し、
取得した前記周波数スペクトルに基づいて、前記音声信号に含まれる雑音成分を除去する複素数フィルタを生成し、
前記複素数フィルタの実部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの実部の値である第１の値との比較、及び、前記複素数フィルタの虚部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの虚部の値である第２の値と、の比較の少なくとも一方を行い、
前記実部の値と前記第１の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第１の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、前記虚部の値と前記第２の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記虚部の値と前記第２の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、または、前記実部の値と前記第１の値との相違が小さく、前記虚部の値と前記第２の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第１の値との相違が小さくないか、または、前記虚部の値と前記第２の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用することで雑音成分を除去することを決定する、
雑音除去処理をコンピュータに実行させるための音声信号処理プログラム。
（付記２）
音声入力部で音声から変換される前記音声信号を取得し、
前記周波数スペクトルに適用することが決定された前記複素数フィルタの成分を、前記周波数スペクトルに適用し、
前記複素数フィルタを適用した前記周波数スペクトルを音声信号に時間周波数逆変換し、
時間周波数逆変換した前記音声信号に対応する音声を音声出力部から出力する、
付記１の音声信号処理プログラム。
（付記３）
音声入力部で音声から変換される前記音声信号を取得し、
前記周波数スペクトルに適用することが決定された前記複素数フィルタの成分を、前記周波数スペクトルに適用し、
前記複素数フィルタを適用した前記周波数スペクトルを音声信号に時間周波数逆変換し、
時間周波数逆変換した前記音声信号を音声認識することでテキストに変換し、
変換した前記テキストをテキスト出力部から出力する、
付記１の音声信号処理プログラム。
（付記４）
前記第１の値は１．０であり、
前記第２の値は０．０であり、
前記複素数フィルタの各々の実部の平均値と前記第１の値との差が第１所定値以下である場合、前記実部の値と前記第１の値との相違が小さく、前記複素数フィルタの各々の虚部の平均値と前記第２の値との差が第２所定値以下である場合、前記虚部の値と前記第２の値との相違が小さい、
付記１〜付記３の何れかの音声信号処理プログラム。
（付記５）
前記複素数フィルタは、周波数スペクトルを入力すると、前記複素数フィルタを出力するように機械学習を用いて学習された複素数フィルタ生成モデルで生成される、
付記１〜付記４の何れかの音声信号処理プログラム。
（付記６）
コンピュータが、
音声信号に対して時間周波数変換を行い、前記音声信号に対応する周波数スペクトルを取得し、
取得した前記周波数スペクトルに基づいて、前記音声信号に含まれる雑音成分を除去する複素数フィルタを生成し、
前記複素数フィルタの実部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの実部の値である第１の値との比較、及び、前記複素数フィルタの虚部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの虚部の値である第２の値と、の比較の少なくとも一方を行い、
前記実部の値と前記第１の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第１の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、前記虚部の値と前記第２の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記虚部の値と前記第２の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、または、前記実部の値と前記第１の値との相違が小さく、前記虚部の値と前記第２の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第１の値との相違が小さくないか、または、前記虚部の値と前記第２の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用することで雑音成分を除去することを決定する、
音声信号処理方法。
（付記７）
音声入力部で音声から変換される前記音声信号を取得し、
前記周波数スペクトルに適用することが決定された前記複素数フィルタの成分を、前記周波数スペクトルに適用し、
前記複素数フィルタを適用した前記周波数スペクトルを音声信号に時間周波数逆変換し、
時間周波数逆変換した前記音声信号に対応する音声を音声出力部から出力する、
付記６の音声信号処理方法。
（付記８）
音声入力部で音声から変換される前記音声信号を取得し、
前記周波数スペクトルに適用することが決定された前記複素数フィルタの成分を、前記周波数スペクトルに適用し、
前記複素数フィルタを適用した前記周波数スペクトルを音声信号に時間周波数逆変換し、
時間周波数逆変換した前記音声信号を音声認識することでテキストに変換し、
変換した前記テキストをテキスト出力部から出力する、
付記６の音声信号処理方法。
（付記９）
前記第１の値は１．０であり、
前記第２の値は０．０であり、
前記複素数フィルタの各々の実部の平均値と前記第１の値との差が第１所定値以下である場合、前記実部の値と前記第１の値との相違が小さく、前記複素数フィルタの各々の虚部の平均値と前記第２の値との差が第２所定値以下である場合、前記虚部の値と前記第２の値との相違が小さい、
付記６〜付記８の何れかの音声信号処理方法。
（付記１０）
前記複素数フィルタは、周波数スペクトルを入力すると、前記複素数フィルタを出力するように機械学習を用いて学習された複素数フィルタ生成モデルで生成される、
付記６〜付記９の何れかの音声信号処理方法。
（付記１１）
音声信号に対して時間周波数変換を行い、前記音声信号に対応する周波数スペクトルを取得する時間周波数変換部と、
取得した前記周波数スペクトルに基づいて、前記音声信号に含まれる雑音成分を除去する複素数フィルタを生成する複素数フィルタ生成部と、
前記複素数フィルタの実部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの実部の値である第１の値との比較、及び、前記複素数フィルタの虚部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの虚部の値である第２の値と、の比較の少なくとも一方を行うフィルタ判定部と、
前記実部の値と前記第１の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第１の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、前記虚部の値と前記第２の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記虚部の値と前記第２の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、または、前記実部の値と前記第１の値との相違が小さく、前記虚部の値と前記第２の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第１の値との相違が小さくないか、または、前記虚部の値と前記第２の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用することで雑音成分を除去することを決定するフィルタ適用成分決定部と、
を含む、音声信号処理装置。
（付記１２）
入力される音声を前記音声信号に変換して取得する音声入力部と、
前記周波数スペクトルに適用することが決定された前記複素数フィルタの成分を、前記周波数スペクトルに適用するフィルタ適用部と、
前記複素数フィルタを適用した前記周波数スペクトルを音声信号に時間周波数逆変換する時間周波数逆変換部と、
時間周波数逆変換した前記音声信号に対応する音声を出力する音声出力部と、
をさらに含む、付記１１の音声信号処理装置。
（付記１３）
入力される音声を前記音声信号に変換して取得する音声入力部と、
前記周波数スペクトルに適用することが決定された前記複素数フィルタの成分を、前記周波数スペクトルに適用するフィルタ適用部と、
前記複素数フィルタを適用した前記周波数スペクトルを音声信号に時間周波数逆変換する時間周波数逆変換部と、
時間周波数逆変換した前記音声信号を音声認識することでテキストに変換する音声認識部と、
変換した前記テキストを出力するテキスト出力部と、
をさらに含む、付記１１の音声信号処理装置。
（付記１４）
前記第１の値は１．０であり、
前記第２の値は０．０であり、
前記フィルタ判定部は、前記複素数フィルタの各々の実部の平均値と前記第１の値との差が第１所定値以下である場合、前記実部の値と前記第１の値との相違が小さく、前記複素数フィルタの各々の虚部の平均値と前記第２の値との差が第２所定値以下である場合、前記虚部の値と前記第２の値との相違が小さい、と判定する、
付記１１〜付記１３の何れかの音声信号処理装置。
（付記１５）
前記複素数フィルタ生成部は、周波数スペクトルを入力すると、前記複素数フィルタを出力するように機械学習を用いて学習された複素数フィルタ生成モデルを使用して前記複素数フィルタを生成する、
付記１１〜付記１４の何れかの音声信号処理装置。
（付記１６）
前記音声信号処理装置は、
前記時間周波数変換部と、前記複素数フィルタ生成部と、前記フィルタ判定部と、前記フィルタ適用成分決定部と、前記フィルタ適用部と、前記時間周波数逆変換部と、を含むサーバと、
前記音声入力部と、前記音声出力部と、を含むクライアントと、
を含む、付記１２の音声信号処理装置。
（付記１７）
前記音声信号処理装置は、
前記時間周波数変換部と、前記複素数フィルタ生成部と、前記フィルタ判定部と、前記フィルタ適用成分決定部と、前記フィルタ適用部と、前記時間周波数逆変換部と、を含む第１サーバと、
前記音声認識部を含む第２サーバと、
前記音声入力部と、前記テキスト出力部と、を含むクライアントと、
を含む、付記１３の音声信号処理装置。
【符号の説明】
【００６９】
１０  音声信号処理装置
１６  複素数フィルタ生成部
１８  フィルタ判定部
２０  フィルタ適用成分決定部
５１  ＣＰＵ
５２  一次記憶部
５３  二次記憶部
３１Ａ  マイク
３１Ｂ  スピーカ
【図１】
2020060612.tif 000003
【図２】
2020060612.tif 000004
【図３】
2020060612.tif 000005
【図４】
2020060612.tif 000006
【図５】
2020060612.tif 000007
【図６】
2020060612.tif 000008
【図７】
2020060612.tif 000009
【図８】
2020060612.tif 000010
【図９】
2020060612.tif 000011
【図１０】
2020060612.tif 000012
【図１１】
2020060612.tif 000013
【図１２】
2020060612.tif 000014