(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-17
(45)【発行日】2022-10-25
(54)【発明の名称】音声信号処理プログラム、音声信号処理方法及び音声信号処理装置
(51)【国際特許分類】
G10L 21/0208 20130101AFI20221018BHJP
G10L 21/0232 20130101ALI20221018BHJP
【FI】
G10L21/0208 100B
G10L21/0232
(21)【出願番号】P 2018189754
(22)【出願日】2018-10-05
【審査請求日】2021-06-10
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100079049
【氏名又は名称】中島 淳
(74)【代理人】
【識別番号】100084995
【氏名又は名称】加藤 和詳
(74)【代理人】
【識別番号】100099025
【氏名又は名称】福田 浩志
(72)【発明者】
【氏名】高橋 潤
(72)【発明者】
【氏名】上村 拓也
(72)【発明者】
【氏名】村瀬 健太郎
【審査官】山下 剛史
(56)【参考文献】
【文献】特表2017-520803(JP,A)
【文献】特開2005-91732(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 19/00-25/93
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
音声信号に対して時間周波数変換を行い、前記音声信号に対応する周波数スペクトルを取得し、
取得した前記周波数スペクトルに基づいて、前記音声信号に含まれる雑音成分を除去する複素数フィルタを生成し、
前記複素数フィルタの実部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの実部の値である第1の値との比較、及び、前記複素数フィルタの虚部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの虚部の値である第2の値と、の比較の少なくとも一方を行い、
前記実部の値と前記第1の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第1の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、前記虚部の値と前記第2の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記虚部の値と前記第2の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、または、前記実部の値と前記第1の値との相違が小さく、前記虚部の値と前記第2の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第1の値との相違が小さくないか、または、前記虚部の値と前記第2の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用することで雑音成分を除去することを決定
し、
前記第1の値は1.0であり、
前記第2の値は0.0であり、
前記複素数フィルタの各々の実部の平均値と前記第1の値との差が第1所定値以下である場合、前記実部の値と前記第1の値との相違が小さく、前記複素数フィルタの各々の虚部の平均値と前記第2の値との差が第2所定値以下である場合、前記虚部の値と前記第2の値との相違が小さい、
雑音除去処理をコンピュータに実行させるための音声信号処理プログラム。
【請求項2】
音声入力部で音声から変換される前記音声信号を取得し、
前記周波数スペクトルに適用することが決定された前記複素数フィルタの成分を、前記周波数スペクトルに適用し、
前記複素数フィルタを適用した前記周波数スペクトルを音声信号に時間周波数逆変換し、
時間周波数逆変換した前記音声信号に対応する音声を音声出力部から出力する、
請求項1に記載の音声信号処理プログラム。
【請求項3】
音声入力部で音声から変換される前記音声信号を取得し、
前記周波数スペクトルに適用することが決定された前記複素数フィルタの成分を、前記周波数スペクトルに適用し、
前記複素数フィルタを適用した前記周波数スペクトルを音声信号に時間周波数逆変換し、
時間周波数逆変換した前記音声信号を音声認識することでテキストに変換し、
変換した前記テキストをテキスト出力部から出力する、
請求項1に記載の音声信号処理プログラム。
【請求項4】
前記複素数フィルタは、周波数スペクトルを入力すると、前記複素数フィルタを出力するように機械学習を用いて学習された複素数フィルタ生成モデルで生成される、
請求項1~
3の何れか1項に記載の音声信号処理プログラム。
【請求項5】
コンピュータが、
音声信号に対して時間周波数変換を行い、前記音声信号に対応する周波数スペクトルを取得し、
取得した前記周波数スペクトルに基づいて、前記音声信号に含まれる雑音成分を除去する複素数フィルタを生成し、
前記複素数フィルタの実部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの実部の値である第1の値との比較、及び、前記複素数フィルタの虚部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの虚部の値である第2の値と、の比較の少なくとも一方を行い、
前記実部の値と前記第1の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第1の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、前記虚部の値と前記第2の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記虚部の値と前記第2の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、または、前記実部の値と前記第1の値との相違が小さく、前記虚部の値と前記第2の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第1の値との相違が小さくないか、または、前記虚部の値と前記第2の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用することで雑音成分を除去することを決定
し、
前記第1の値は1.0であり、
前記第2の値は0.0であり、
前記複素数フィルタの各々の実部の平均値と前記第1の値との差が第1所定値以下である場合、前記実部の値と前記第1の値との相違が小さく、前記複素数フィルタの各々の虚部の平均値と前記第2の値との差が第2所定値以下である場合、前記虚部の値と前記第2の値との相違が小さい、
音声信号処理方法。
【請求項6】
音声信号に対して時間周波数変換を行い、前記音声信号に対応する周波数スペクトルを取得する時間周波数変換部と、
取得した前記周波数スペクトルに基づいて、前記音声信号に含まれる雑音成分を除去する複素数フィルタを生成する複素数フィルタ生成部と、
前記複素数フィルタの実部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの実部の値である第1の値との比較、及び、前記複素数フィルタの虚部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの虚部の値である第2の値と、の比較の少なくとも一方を行うフィルタ判定部と、
前記実部の値と前記第1の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第1の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、前記虚部の値と前記第2の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記虚部の値と前記第2の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、または、前記実部の値と前記第1の値との相違が小さく、前記虚部の値と前記第2の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第1の値との相違が小さくないか、または、前記虚部の値と前記第2の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用することで雑音成分を除去することを決定するフィルタ適用成分決定部と、
を含
み、
前記第1の値は1.0であり、
前記第2の値は0.0であり、
前記複素数フィルタの各々の実部の平均値と前記第1の値との差が第1所定値以下である場合、前記実部の値と前記第1の値との相違が小さく、前記複素数フィルタの各々の虚部の平均値と前記第2の値との差が第2所定値以下である場合、前記虚部の値と前記第2の値との相違が小さい、
音声信号処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音声信号処理プログラム、音声信号処理方法及び音声信号処理装置に関する。
【背景技術】
【0002】
例えば、非一時的記録媒体に記録されている音声に対して、音声認識技術を適用して、発話内容及び発話時間を取得し、発話内容を表す字幕を作成したり、発話内容から特定の用語を検索することが可能なコーパスを作成したりする技術が存在する。しかしながら、非一時的記録媒体に記録されている音声に雑音が含まれている場合、音声認識精度が低下する。
【0003】
例えば、音声を収音する際に、複数のマイクを使用して、音声の到来方向を取得することで、雑音を除去する技術が存在する。しかしながら、一般的に、非一時的記録媒体に記録されている音声を収音した際のマイクに関する情報は不明であるため、非一時的記録媒体に記録されている音声に対して、当該技術を使用することは困難である。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2004-020679号公報
【文献】特開2008-076975号公報
【非特許文献】
【0005】
【文献】Vincentら、"Extracting and Composing Robust Features with Denoising Autoencoders"、Proc. of ICML 2008、2008年7月、pp.1096 - 1103
【文献】”5.RWCP音声データベース”、online、[平成30年9月19日検索]、インターネット(http://research.nii.ac.jp/src/RWCP-SP96.html)
【発明の概要】
【発明が解決しようとする課題】
【0006】
音声を収音する際に使用されたマイクの配置に関する情報を使用することなく雑音を除去する技術として、例えば、音声信号を使用して雑音除去フィルタを生成し、音声信号の振幅スペクトルに生成した雑音除去フィルタを適用する技術が存在する。
【0007】
しかしながら、信号対雑音比が小さく、かつ、雑音が抽出対象の音声に類似している場合、音声の振幅スペクトルに雑音除去フィルタを適用しても、音声から雑音を適切に除去することは困難である。雑音が抽出対象の音声に類似している場合とは、例えば、雑音が抽出対象の話者以外の話者の発話などである場合である。位相スペクトルにも雑音除去フィルタを適用することで、音声から雑音を適切に除去することは可能となるが、処理負荷が増大する。
【0008】
本発明は、1つの側面として、処理負荷を抑制しつつ、音声から雑音を適切に除去することを可能とすることを目的とする。
【課題を解決するための手段】
【0009】
1つの実施形態では、音声信号に対して時間周波数変換を行い、音声信号に対応する周波数スペクトルを取得し、取得した周波数スペクトルに基づいて、音声信号に含まれる雑音成分を除去する複素数フィルタを生成する。複素数フィルタの実部の値と第1の値との比較、及び、複素数フィルタの虚部の値と第2の値との比較、の少なくとも一方を行う。第1の値は雑音成分が存在しない場合に生成される複素数フィルタの実部の値であり、第2の値は雑音成分が存在しない場合に生成される複素数フィルタの虚部の値である。実部の値と第1の値との相違が小さい場合、周波数スペクトルに複素数フィルタの振幅成分を適用し、実部の値と第1の値との相違が小さくない場合、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用することを決定する。または、虚部の値と前記第2の値との相違が小さい場合、周波数スペクトルに複素数フィルタの振幅成分を適用し、虚部の値と第2の値との相違が小さくない場合、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用することを決定する。または、実部の値と第1の値との相違が小さく、虚部の値と第2の値との相違が小さい場合、周波数スペクトルに複素数フィルタの振幅成分を適用することを決定する。この場合、実部の値と第1の値との相違が小さくないか、または、虚部の値と第2の値との相違が小さくない場合、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用することを決定する。
【発明の効果】
【0010】
本発明は、1つの側面として、処理負荷を抑制しつつ、音声から雑音を適切に除去することを可能とする。
【図面の簡単な説明】
【0011】
【
図1】実施形態に係る音声信号処理装置の一例を示すブロック図である。
【
図2】複素数フィルタ生成部の一例を示すブロック図である。
【
図3】実施形態に係る音声信号処理装置のハードウェアの一例を示すブロック図である。
【
図4】実施形態に係る音声信号処理の流れの一例を示すフローチャートである。
【
図5】フィルタ判定部の閾値について説明するための表である。
【
図6】処理パターン毎に音声信号処理に要する時間の一例を示す表である。
【
図8】音声信号処理装置の一例を示すブロック図である。
【
図9】サーバのハードウェアの一例を示すブロック図である。
【
図10】音声信号処理装置の一例を示すブロック図である。
【
図11】音声信号処理装置の一例を示すブロック図である。
【
図12】クライアントのハードウェアの一例を示すブロック図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して実施形態の一例を詳細に説明する。
【0013】
図1に示す音声信号処理装置10は、音声入力部12、時間周波数変換部14、複素数フィルタ生成部16、フィルタ判定部18、フィルタ適用成分決定部20、フィルタ適用部22、時間周波数逆変換部24、及び、音声出力部26を含む。音声入力部12は、入力される音声を音声信号に変換する。
【0014】
時間周波数変換部14は、1フレーム分の音声信号に対して時間周波数変換を行い、周波数スペクトルに変換する。時間周波数変換は、例えば、Fast Fourier Transformation(以下、FFTという。)であってよく、1フレームは、例えば、10m秒であってよい。
【0015】
複素数フィルタ生成部16は、例えば、Nフレーム分の周波数スペクトルを使用して、当該周波数スペクトルに対応する音声に含まれる雑音を除去する複素数フィルタを生成する。Nは、例えば、100であってよい。複素数フィルタMは、例えば、(1)式で表される。
M=F(Y) …(1)
【0016】
Yは周波数スペクトルであり、Fは複素数フィルタの生成モデルである。生成モデルは、例えば、
図2に例示するように、Denoising Autoencoder(以下、DAEという。)44などであってよい。DAE44は、入力される情報を圧縮するエンコーダと、情報を展開して出力するデコーダとを含み、情報を一旦圧縮することで、不要な情報である雑音を除去する。
【0017】
DAE44の入力は、雑音信号42及び音声信号41を含む信号をFFT43で時間周波数変換することで取得されたNフレーム分の周波数スペクトルであり、1フレーム分の周波数スペクトルは周波数サンプル数のデータを含む。周波数サンプル数は、例えば、256であってよい。DAE44の出力は、データ数分の複素数フィルタである。複素数フィルタをFFT43で取得された周波数スペクトルに適用し、逆FFT部45で時間周波数逆変換することで、音声信号46を取得する。
【0018】
音声信号41と音声信号46とが等しくなるように、DAE44を学習させる。音声信号41は、例えば、抽出対象の話者の発話に対応する音声信号であり、雑音信号42は、例えば、抽出対象の話者以外の話者の発話に対応する音声信号などである。なお、生成モデルは、DAEに限定されない。既存の、雑音成分を含む音声信号に基づいて、複素数フィルタを生成するモデルであってよい。
【0019】
フィルタ判定部18は、複素数フィルタの実部に基づいて、複素数フィルタの生成に使用された音声信号に含まれる雑音成分の大きさを判定する。複素数フィルタMは、例えば、(2)式で表される。
M=F(Y)=a+bi …(2)
【0020】
周波数スペクトルYに対応する音声信号が雑音成分を含まない場合、実部a=1.0、虚部b=0.0となる。周波数スペクトルYに対応する音声信号に含まれる雑音成分が少ないほど、実部aは第1の値の一例である1.0に近付き、虚部bは第2の値の一例である0.0に近付く。
【0021】
したがって、生成される複素数フィルタMの実部aが1.0に近いほど、音声信号に含まれる雑音成分が少なく、実部が1.0から離れるほど、音声信号に含まれる雑音成分が多い、と判定することができる。詳細には、例えば、(3)式で、雑音判定値を算出する。
雑音判定値=1.0-(複素数フィルタの実部の平均値)…(3)
【0022】
複素数フィルタの実部の平均値は、生成される複素数フィルタの実部aを加算し、複素数フィルタの数で除算することで算出することができる。
【0023】
フィルタ適用成分決定部20は、雑音判定値に基づいて、周波数スペクトルに、複素数フィルタの振幅成分を適用するか、振幅成分及び位相成分を適用するか、を決定する。例えば、雑音判定値が、第1所定値以下である場合、複素数フィルタの振幅成分を適用し、雑音判定値が、第1所定値より大きい場合、複素数フィルタの振幅成分及び位相成分を適用する、と決定する。第1所定値は、例えば、0.30であってよい。
【0024】
即ち、フィルタ適用成分決定部20は、音声信号の雑音成分が少ないと判定された場合、周波数スペクトルに、複素数フィルタの振幅成分を適用することを決定する。また、フィルタ適用成分決定部20は、音声信号の雑音成分が多いと判定された場合、周波数スペクトルに、複素数フィルタの振幅成分だけでなく、位相成分も併せて適用することを決定する。
【0025】
フィルタ生成モデルによって生成される複素数フィルタは一般的に誤差を含み、誤差を含む複素数フィルタの振幅成分だけを適用する場合、処理負荷を軽減することができるが、雑音除去性能は低減する。一方、複素数フィルタの振幅成分及び位相成分を適用する場合、雑音除去性能は増大するが、処理負荷も増大する。一般的な音声認識エンジンは、音声信号に許容量以下の雑音成分が存在しても、音声を適切に認識することができる。したがって、複素数フィルタの振幅成分だけを適用することで残存する雑音成分が許容量以下であれば、処理負荷を軽減するために、振幅成分だけを適用することは有用である。
【0026】
フィルタ適用部22は、周波数スペクトルに適用することが決定された複素数フィルタの成分を、周波数スペクトルに適用する。(3)式は、複素数フィルタMの振幅成分を周波数スペクトルYに適用することで取得される周波数スペクトルSを例示する。
S=|M|・|Y| …(3)
【0027】
(4)式は、複素数フィルタMの振幅成分及び位相成分を周波数スペクトルYに適用することで取得される周波数スペクトルSを例示する。
S=M*Y=|M|・|Y|・(cos(θM+θY)+i・sin(θM+θY))
…(4)
θMは、複素数フィルタMの位相成分を表し、θYは、周波数スペクトルYの位相成分を表す。
【0028】
(3)式によれば、周波数スペクトルに複素数フィルタの振幅成分を適用する場合、1回の乗算が行われる。また、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用する場合、(4)式によれば、5回の乗算及び3回の加減算が行われる。即ち、複素数フィルタの振幅成分及び位相成分を適用する場合、複素数フィルタの振幅成分だけを適用する場合よりも、処理負荷は増大する。
【0029】
時間周波数逆変換部24は、複素数フィルタが適用された周波数スペクトルに対して、時間周波数逆変換を行い、周波数スペクトルに対応する音声信号を取得する。時間周波数逆変換は、例えば、Inverse Fast Fourier Transformation(以下、IFFTという。)であってよい。音声出力部26は、時間周波数逆変換部24で取得された音声信号に対応する音声を出力する。
【0030】
音声信号処理装置10は、一例として、
図3に示すように、CPU(Central Processing Unit)51、一次記憶部52、二次記憶部53、外部インタフェース54、マイク31A及びスピーカ31Bを含む。CPU51は、ハードウェアであるプロセッサの一例である。CPU51、一次記憶部52、二次記憶部53、外部インタフェース54、マイク31A及びスピーカ31Bは、バス59を介して相互に接続されている。
【0031】
一次記憶部52は、例えば、RAM(Random Access Memory)などの揮発性のメモリである。二次記憶部53は、例えば、HDD(Hard Disk Drive)、又はSSD(Solid State Drive)などの不揮発性のメモリである。
【0032】
二次記憶部53は、プログラム格納領域53A及びデータ格納領域53Bを含む。プログラム格納領域53Aは、一例として、雑音除去を行う音声信号処理プログラムなどのプログラムを記憶している。データ格納領域53Bは、一例として、音声信号及び音声信号処理プログラムを実行している間に生成される中間データなどを記憶する。
【0033】
CPU51は、プログラム格納領域53Aから音声信号処理プログラムを読み出して一次記憶部52に展開する。CPU51は、音声信号処理プログラムをロードして実行することで、
図1の時間周波数変換部14、複素数フィルタ生成部16、フィルタ判定部18、フィルタ適用成分決定部20、フィルタ適用部22及び時間周波数逆変換部24として動作する。
【0034】
なお、音声信号処理プログラムなどのプログラムは、外部サーバに記憶され、ネットワークを介して、一次記憶部52に展開されてもよい。また、音声信号処理プログラムなどのプログラムは、DVD(Digital Versatile Disc)などの非一時的記録媒体に記憶され、記録媒体読込装置を介して、一次記憶部52に展開されてもよい。
【0035】
外部インタフェース54には外部装置が接続され、外部インタフェース54は、外部装置とCPU51との間の各種情報の送受信を司る。マイク31Aは、音声入力部12の一例であり、入力される音声を音声信号に変換する。スピーカ31Bは、音声出力部26の一例であり、例えば、雑音成分が除去された音声信号に対応する音声を出力する。なお、マイク31A及びスピーカ31Bは、音声信号処理装置10に内蔵されず、外部インタフェース54を介して、外部装置として、音声信号処理装置10と接続されていてもよい。
【0036】
音声信号処理装置10は、例えば、パーソナルコンピュータであってもよいし、スマートフォンであってもよいし、専用のデバイスであってもよい。
【0037】
次に、雑音を除去する音声信号処理の作用の概要について説明する。
図4は、音声信号処理の流れを例示する。CPU51は、ステップ101で、マイク31Aから入力される音声に対応する音声信号を1フレーム分読み込む。
【0038】
CPU51は、ステップ102で、読み込まれた音声信号に対してFFTを行い、周波数スペクトルを取得する。CPU51は、ステップ103で、所定数Nのフレームが読み込まれたか否か判定する。ステップ103の判定が否定された場合、CPU51は、ステップ101に戻り、ステップ103の判定が肯定された場合、CPU51は、ステップ104で、Nフレーム分の周波数スペクトルを使用して、複素数フィルタを生成する。
【0039】
CPU51は、ステップ105で、生成された複素数フィルタの実部に基づいて、ステップ101で読み込まれた音声信号に含まれている雑音成分が多いか否か判定する。ステップ105で、雑音成分が多いと判定された場合、CPU51は、ステップ107で、雑音を除去するために、複素数フィルタの振幅成分及び位相成分の両方を適用することを決定する。雑音成分が少ないと判定された場合、CPU51は、ステップ106で、複素数フィルタの振幅成分を適用することを決定する。
【0040】
CPU51は、ステップ108で、ステップ106またはステップ107で決定された複素数フィルタの成分をステップ102で取得された周波数スペクトルに適用する。CPU51は、ステップ109で、複素数フィルタが適用された周波数スペクトルに対してIFFTを行い、音声信号を取得する。
【0041】
CPU51は、ステップ110で、スピーカ31Bを介して、音声信号に対応する音声を出力して、Nフレーム分の音声信号の処理を終了する。
【0042】
次に、ステップ105で、音声信号に含まれる雑音成分が多いか否かを判定する閾値について説明する。
図5に、音声信号の信号対雑音比(Signal to Noise Ratio(以下、SNRという。))、当該音声信号を使用して生成される複素数フィルタの実部の平均値、1.0-(複素数フィルタの実部の平均値)、即ち、雑音判定値を例示する。1.0は、雑音成分を含まない音声信号を使用して生成される複素数フィルタの実部の値である。SNRは、数値が大きいほど、雑音成分が少ないことを意味する。
【0043】
図5は、複素数フィルタの振幅成分を音声信号に対応する周波数スペクトルに適用した場合のSignal to Distortion Ratio(以下、SDRという。)及び複素数フィルタの振幅成分及び位相成分を周波数スペクトルに適用した場合のSDRも例示する。SDRは、「信号成分」と「雑音成分+復元による音声歪み成分」との対数比率を表す値であり、数値が大きいほど、雑音成分が適切に除去されている、ことを意味する。
【0044】
一般的な音声認識エンジンでは、音声信号のSDRが15.0[dB]より大きい場合に、適切な認識精度を発揮することができる。したがって、振幅成分を周波数スペクトルに適用した際のSDRが、例えば、20.0[dB]より大きい場合に、振幅成分を周波数スペクトルに適用する。
図5において、振幅成分を周波数スペクトルに適用した際のSDRが22.5[dB]の場合、即ち、20.0[dB]より大きい場合、対応する雑音判定値は0.30であるため、閾値、即ち、第1所定値として、例えば、0.30を使用することができる。
【0045】
一方、雑音判定値が閾値である0.30を超える場合、即ち、0.46である場合、振幅成分を周波数スペクトルに適用すると、SDRが18.6[dB]となり、20.0[dB]よりも小さくなる。したがって、音声認識エンジンで適切な認識精度が発揮されない虞があるため、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用する。これにより、SDRを20.0[dB]を超える22.8[dB]に引き上げることができる。例えば、SNRが-5「dB」の場合であっても、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用することで、15.0[dB]を超える15.4[dB]のSDRを取得することができ、音声認識エンジンで適切な認識精度を得ることができる。
【0046】
しかしながら、本実施形態は、雑音判定値の閾値を0.30とする例に限定されない。使用する音声認識エンジンの性能、または所望される処理負荷に応じて、適切な閾値を設定することができる。また、雑音判定値と閾値とを比較する代わりに、複素数フィルタの実部の平均値と閾値とを比較してもよい。この場合の閾値は、例えば、1.0-第1所定値とすればよい。即ち、例えば、複素数フィルタの実部の平均値が0.7を超える場合に、音声信号の雑音成分が少ないと判定してもよい。
【0047】
図6は、音声信号に要する処理時間を例示する。ここで使用される音声信号処理プログラムは、Python3で作成されている。処理パターン1~処理パターン5の処理について、各々、音声信号のフレーム数は256、周波数サンプル数は256で、1000回の処理を行った。
【0048】
処理パターン1及び処理パターン2は、複素数フィルタの実部の判定を行わない場合である。処理パターン1では、複素数フィルタの振幅成分を全ての周波数スペクトルに適用し、処理パターン2では、複素数フィルタの振幅成分及び位相成分を全ての周波数スペクトルに適用する。処理パターン1の処理時間は、1.95[秒]であり、処理パターン2の処理時間は、3.73[秒]である。
【0049】
処理パターン3~処理パターン5は、複素数フィルタの実部の判定を行う場合であり、処理パターン3では、50%の周波数スペクトルに、複素数フィルタの振幅成分を適用し、50%の周波数スペクトルに、複素数フィルタの振幅成分及び位相成分を適用する。処理パターン4では、20%の周波数スペクトルに、複素数フィルタの振幅成分を適用し、80%の周波数スペクトルに、複素数フィルタの振幅成分及び位相成分を適用する。処理パターン5では、100%の周波数スペクトルに、複素数フィルタの振幅成分及び位相成分を適用する。処理パターン3の処理時間は、2.43[秒]であり、処理パターン4の処理時間は3.03[秒]であり、処理パターン5の処理時間は、3.95[秒]である。
【0050】
処理パターン2では、処理時間が3.73[秒]であり、処理パターン5では、処理時間が3.95[秒]である。即ち、処理パターン5では、複素数フィルタの実部の判定に0.22秒要し、複素数フィルタの実部を判定する分、0.22[秒]多く時間を要する。複素数フィルタの実部の判定は、複素数フィルタの実部の平均値を算出する際に、1フレームの音声信号毎に周波数サンプル数の回数の加算及び除算1回を行う。
【0051】
しかしながら、複数の話者が発話する状況において、複数の話者の発話が重畳する、即ち、抽出対象の話者以外の話者の発話である雑音成分が多く含まれる音声の割合は、
図7に例示するように多くはない。
図7は、音声対話データベース(RWCP-SP96)における、単独発話、重複発話の発話時間及び割合を例示する。
【0052】
音声対話データベースでは、話者が顧客及び店員の2人である48対話の発話区間のうち、顧客の単独発話が22.2%、店員の単独発話が61.4%、顧客及び店員の重複発話が16.3%である。即ち、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用する程度に雑音が多いと判定される可能性が高い音声は、全発話区間のうち、16.3%であり、20%に満たない。
【0053】
一方、
図6において、50%の周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用する処理パターン3の処理時間は2.43[秒]である。また、80%の周波数スペクトルに振幅成分及び位相成分を適用する処理パターン4の処理時間は3.03[秒]である。したがって、80%の周波数スペクトルに振幅成分及び位相成分を適用する場合であっても、複素数フィルタの実部の判定を行わず、全ての周波数スペクトルに振幅成分及び位相成分を適用する処理パターン2よりも、0.70[秒]処理時間が短縮される。即ち、処理負荷が軽減される。
【0054】
なお、ステップ105で、生成された複素数フィルタの実部に基づいて、音声信号に含まれる雑音成分を判定する例について説明したが、本実施例はこれに限定されない。例えば、生成される複素数フィルタの虚部bを加算し、複素数フィルタの数で除算することで算出される複素数フィルタの虚部の平均値が0.0に近い場合に、雑音成分が少ないと判定してもよい。また、複素数フィルタの実部の平均値が1.0に近く、かつ、虚部の平均値が0.0に近い場合に、雑音成分が少ないと判定してもよい。なお、虚部の平均値が0.0に近いか否か判定する閾値は、例えば、0.30であってよい。当該閾値は、第2所定値の一例である。
【0055】
音声信号処理装置10は、
図8に例示するように、有線または無線ネットワークで接続されたクライアント81A及びサーバ82Aを含んでいてもよい。この場合、クライアント81Aは、例えば、
図1の音声入力部12及び音声出力部26を含む。サーバ82Aは、時間周波数変換部14、複素数フィルタ生成部16、フィルタ判定部18、フィルタ適用成分決定部20、フィルタ適用部22、及び、時間周波数逆変換部24を含む。
【0056】
クライアント81Aのハードウェア構成は、
図2の音声信号処理装置10のハードウェア構成と同様であってよい。また、サーバ82Aのハードウェア構成は、
図9に例示するように、マイク31A及びスピーカ31Bを含まない点で、
図2の音声信号処理装置10と相違する。しかしながら、
図9のCPU51D、一次記憶部52D、二次記憶部53D、及び外部インタフェース54Dは、
図2のCPU51、一次記憶部52、二次記憶部53、及び外部インタフェース54と同様であってよいため、詳細な説明を省略する。二次記憶部53Dは、二次記憶部53と同様に、プログラム格納領域53AD及びデータ格納領域53BDを含む。
【0057】
音声信号処理装置10の機能をクライアント81Aとサーバ82Aとに分離することで、クライアント81Aの処理負荷をさらに軽減し、クライアント81Aを小型・軽量化することで、クライアント81Aの携帯性を向上させることが可能となる。
【0058】
音声信号処理装置10は、
図10に例示するように、有線または無線ネットワークで接続されたクライアント81B、第1サーバ82B及び第2サーバ82Cを含んでいてもよい。クライアント81Bは、
図11に例示するように、音声入力部12及び、テキスト出力部27を含む。第1サーバ82Bは、時間周波数変換部14、複素数フィルタ生成部16、フィルタ判定部18、フィルタ適用成分決定部20、フィルタ適用部22及び時間周波数逆変換部24を含む。第2サーバは、音声認識部25を含む。
【0059】
第1サーバ82A及び第2サーバ82Bのハードウェア構成は、サーバ82Aのハードウェア構成と同様であってよい。クライアント81Bのハードウェア構成は、
図12に例示するように、スピーカ31Bに代えて、テキスト出力部の一例であるディスプレイ31Cを有している点で、
図2の音声信号処理装置10と相違する。
【0060】
第2サーバ82Cは、第1サーバ82Bから雑音成分が除去された音声信号を受信し、音声認識を行うことで、音声信号をテキストに変換し、クライアント81Bに当該テキストを送信する。クライアント81Bは、テキストを受信し、ディスプレイ31Cに表示する。音声認識には、既存の技術が適用されてよい。雑音を除去した音声信号の音声認識を行いテキスト化することで、音声信号に含まれる情報のテキスト検索を可能とし、情報の利用価値を向上させることができる。音声信号処理装置10の機能をクライアント81B、第1サーバ82B及び第2サーバ82Cに分離することで、クライアント81Bの処理負荷をさらに軽減することができる。これにより、クライアント81Bを小型・軽量化することで、クライアント81Bの携帯性を向上させることが可能となる。
【0061】
なお、
図8及び
図10に例示した音声信号処理装置は、一例であり、本実施形態はこれらに限定されない。例えば、
図10の第2サーバ82Cが音声認識部25を含む代わりに、第1サーバ82Bが音声認識部25を含み、第2サーバ82Cが存在しない構成としてもよい。また、
図1の音声信号処理装置10が、音声出力部26に代えて、または、音声出力部26に加えて、音声認識部25及びテキスト出力部27を有してもよい。
【0062】
なお、音声を音声入力部12から入力し、音声出力部26から音声を出力するか、テキスト出力部27から音声に対応するテキストを出力する例について説明したが、本実施形態はこれらに限定されない。例えば、ファイルに予め保存されている音声信号のデータを読み込み、雑音成分が除去された音声信号のデータをファイルに保存するようにしてもよい。ファイルは、例えば、二次記憶部53のデータ格納領域53Bまたは二次記憶部53Dのデータ格納領域53BDなどに記憶されてもよい。
【0063】
本実施形態は、雑音が存在する環境で収音される音声の字幕作成、会議議事録作成などに適用することができる。雑音は、抽出対象の話者以外の話者の発話またはエアコンの稼働音などの環境雑音であってよい。
【0064】
なお、複素数フィルタの生成には、全ての周波数サンプルの周波数スペクトルを使用せず、所定の周波数帯域の周波数スペクトルを使用してもよい。また、フィルタ判定には、全ての周波数サンプルに対応する複素数フィルタを使用せず、所定の周波数帯域に対応する複素数フィルタを使用してもよい。なお、
図4に例示するフローチャートは一例であり、ステップの順序は変更されてもよい。
【0065】
本実施形態では、音声信号に対して時間周波数変換を行い、音声信号に対応する周波数スペクトルを取得し、取得した周波数スペクトルに基づいて、音声信号に含まれる雑音成分を除去する複素数フィルタを生成する。複素数フィルタの実部の値と第1の値との比較及び、複素数フィルタの虚部の値と第2の値との比較の少なくとも一方を行う。第1の値は雑音成分が存在しない場合に生成される複素数フィルタの実部の値であり、第2の値は雑音成分が存在しない場合に生成される複素数フィルタの虚部の値である。実部の値と第1の値との相違が小さい場合、周波数スペクトルに複素数フィルタの振幅成分を適用し、実部の値と第1の値との相違が小さくない場合、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用することを決定する。または、虚部の値と前記第2の値との相違が小さい場合、周波数スペクトルに複素数フィルタの振幅成分を適用し、虚部の値と第2の値との相違が小さくない場合、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用することを決定する。または、実部の値と第1の値との相違が小さく、虚部の値と第2の値との相違が小さい場合、周波数スペクトルに複素数フィルタの振幅成分を適用することを決定する。この場合、実部の値と第1の値との相違が小さくないか、または、虚部の値と第2の値との相違が小さくない場合、周波数スペクトルに複素数フィルタの振幅成分及び位相成分を適用することを決定する。
【0066】
本実施形態では、音声信号を使用して、当該音声信号から雑音成分を除去する複素数フィルタを生成する。生成される複素数フィルタに基づいて音声信号の雑音成分が少ないと判定される場合には、音声信号に複素数フィルタの振幅成分を適用し、雑音成分が多いと判定される場合には、音声信号に複素数フィルタの振幅成分及び位相成分を適用することを決定する。これにより、本実施形態では、処理負荷を抑制しつつ、音声から雑音を適切に除去することを可能とする。
【0067】
以上の各実施形態に関し、更に以下の付記を開示する。
【0068】
(付記1)
音声信号に対して時間周波数変換を行い、前記音声信号に対応する周波数スペクトルを取得し、
取得した前記周波数スペクトルに基づいて、前記音声信号に含まれる雑音成分を除去する複素数フィルタを生成し、
前記複素数フィルタの実部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの実部の値である第1の値との比較、及び、前記複素数フィルタの虚部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの虚部の値である第2の値と、の比較の少なくとも一方を行い、
前記実部の値と前記第1の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第1の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、前記虚部の値と前記第2の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記虚部の値と前記第2の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、または、前記実部の値と前記第1の値との相違が小さく、前記虚部の値と前記第2の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第1の値との相違が小さくないか、または、前記虚部の値と前記第2の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用することで雑音成分を除去することを決定する、
雑音除去処理をコンピュータに実行させるための音声信号処理プログラム。
(付記2)
音声入力部で音声から変換される前記音声信号を取得し、
前記周波数スペクトルに適用することが決定された前記複素数フィルタの成分を、前記周波数スペクトルに適用し、
前記複素数フィルタを適用した前記周波数スペクトルを音声信号に時間周波数逆変換し、
時間周波数逆変換した前記音声信号に対応する音声を音声出力部から出力する、
付記1の音声信号処理プログラム。
(付記3)
音声入力部で音声から変換される前記音声信号を取得し、
前記周波数スペクトルに適用することが決定された前記複素数フィルタの成分を、前記周波数スペクトルに適用し、
前記複素数フィルタを適用した前記周波数スペクトルを音声信号に時間周波数逆変換し、
時間周波数逆変換した前記音声信号を音声認識することでテキストに変換し、
変換した前記テキストをテキスト出力部から出力する、
付記1の音声信号処理プログラム。
(付記4)
前記第1の値は1.0であり、
前記第2の値は0.0であり、
前記複素数フィルタの各々の実部の平均値と前記第1の値との差が第1所定値以下である場合、前記実部の値と前記第1の値との相違が小さく、前記複素数フィルタの各々の虚部の平均値と前記第2の値との差が第2所定値以下である場合、前記虚部の値と前記第2の値との相違が小さい、
付記1~付記3の何れかの音声信号処理プログラム。
(付記5)
前記複素数フィルタは、周波数スペクトルを入力すると、前記複素数フィルタを出力するように機械学習を用いて学習された複素数フィルタ生成モデルで生成される、
付記1~付記4の何れかの音声信号処理プログラム。
(付記6)
コンピュータが、
音声信号に対して時間周波数変換を行い、前記音声信号に対応する周波数スペクトルを取得し、
取得した前記周波数スペクトルに基づいて、前記音声信号に含まれる雑音成分を除去する複素数フィルタを生成し、
前記複素数フィルタの実部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの実部の値である第1の値との比較、及び、前記複素数フィルタの虚部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの虚部の値である第2の値と、の比較の少なくとも一方を行い、
前記実部の値と前記第1の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第1の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、前記虚部の値と前記第2の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記虚部の値と前記第2の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、または、前記実部の値と前記第1の値との相違が小さく、前記虚部の値と前記第2の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第1の値との相違が小さくないか、または、前記虚部の値と前記第2の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用することで雑音成分を除去することを決定する、
音声信号処理方法。
(付記7)
音声入力部で音声から変換される前記音声信号を取得し、
前記周波数スペクトルに適用することが決定された前記複素数フィルタの成分を、前記周波数スペクトルに適用し、
前記複素数フィルタを適用した前記周波数スペクトルを音声信号に時間周波数逆変換し、
時間周波数逆変換した前記音声信号に対応する音声を音声出力部から出力する、
付記6の音声信号処理方法。
(付記8)
音声入力部で音声から変換される前記音声信号を取得し、
前記周波数スペクトルに適用することが決定された前記複素数フィルタの成分を、前記周波数スペクトルに適用し、
前記複素数フィルタを適用した前記周波数スペクトルを音声信号に時間周波数逆変換し、
時間周波数逆変換した前記音声信号を音声認識することでテキストに変換し、
変換した前記テキストをテキスト出力部から出力する、
付記6の音声信号処理方法。
(付記9)
前記第1の値は1.0であり、
前記第2の値は0.0であり、
前記複素数フィルタの各々の実部の平均値と前記第1の値との差が第1所定値以下である場合、前記実部の値と前記第1の値との相違が小さく、前記複素数フィルタの各々の虚部の平均値と前記第2の値との差が第2所定値以下である場合、前記虚部の値と前記第2の値との相違が小さい、
付記6~付記8の何れかの音声信号処理方法。
(付記10)
前記複素数フィルタは、周波数スペクトルを入力すると、前記複素数フィルタを出力するように機械学習を用いて学習された複素数フィルタ生成モデルで生成される、
付記6~付記9の何れかの音声信号処理方法。
(付記11)
音声信号に対して時間周波数変換を行い、前記音声信号に対応する周波数スペクトルを取得する時間周波数変換部と、
取得した前記周波数スペクトルに基づいて、前記音声信号に含まれる雑音成分を除去する複素数フィルタを生成する複素数フィルタ生成部と、
前記複素数フィルタの実部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの実部の値である第1の値との比較、及び、前記複素数フィルタの虚部の値と、前記雑音成分が存在しない場合に生成される複素数フィルタの虚部の値である第2の値と、の比較の少なくとも一方を行うフィルタ判定部と、
前記実部の値と前記第1の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第1の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、前記虚部の値と前記第2の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記虚部の値と前記第2の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用し、または、前記実部の値と前記第1の値との相違が小さく、前記虚部の値と前記第2の値との相違が小さい場合、前記周波数スペクトルに前記複素数フィルタの振幅成分を適用し、前記実部の値と前記第1の値との相違が小さくないか、または、前記虚部の値と前記第2の値との相違が小さくない場合、前記周波数スペクトルに前記複素数フィルタの振幅成分及び位相成分を適用することで雑音成分を除去することを決定するフィルタ適用成分決定部と、
を含む、音声信号処理装置。
(付記12)
入力される音声を前記音声信号に変換して取得する音声入力部と、
前記周波数スペクトルに適用することが決定された前記複素数フィルタの成分を、前記周波数スペクトルに適用するフィルタ適用部と、
前記複素数フィルタを適用した前記周波数スペクトルを音声信号に時間周波数逆変換する時間周波数逆変換部と、
時間周波数逆変換した前記音声信号に対応する音声を出力する音声出力部と、
をさらに含む、付記11の音声信号処理装置。
(付記13)
入力される音声を前記音声信号に変換して取得する音声入力部と、
前記周波数スペクトルに適用することが決定された前記複素数フィルタの成分を、前記周波数スペクトルに適用するフィルタ適用部と、
前記複素数フィルタを適用した前記周波数スペクトルを音声信号に時間周波数逆変換する時間周波数逆変換部と、
時間周波数逆変換した前記音声信号を音声認識することでテキストに変換する音声認識部と、
変換した前記テキストを出力するテキスト出力部と、
をさらに含む、付記11の音声信号処理装置。
(付記14)
前記第1の値は1.0であり、
前記第2の値は0.0であり、
前記フィルタ判定部は、前記複素数フィルタの各々の実部の平均値と前記第1の値との差が第1所定値以下である場合、前記実部の値と前記第1の値との相違が小さく、前記複素数フィルタの各々の虚部の平均値と前記第2の値との差が第2所定値以下である場合、前記虚部の値と前記第2の値との相違が小さい、と判定する、
付記11~付記13の何れかの音声信号処理装置。
(付記15)
前記複素数フィルタ生成部は、周波数スペクトルを入力すると、前記複素数フィルタを出力するように機械学習を用いて学習された複素数フィルタ生成モデルを使用して前記複素数フィルタを生成する、
付記11~付記14の何れかの音声信号処理装置。
(付記16)
前記音声信号処理装置は、
前記時間周波数変換部と、前記複素数フィルタ生成部と、前記フィルタ判定部と、前記フィルタ適用成分決定部と、前記フィルタ適用部と、前記時間周波数逆変換部と、を含むサーバと、
前記音声入力部と、前記音声出力部と、を含むクライアントと、
を含む、付記12の音声信号処理装置。
(付記17)
前記音声信号処理装置は、
前記時間周波数変換部と、前記複素数フィルタ生成部と、前記フィルタ判定部と、前記フィルタ適用成分決定部と、前記フィルタ適用部と、前記時間周波数逆変換部と、を含む第1サーバと、
前記音声認識部を含む第2サーバと、
前記音声入力部と、前記テキスト出力部と、を含むクライアントと、
を含む、付記13の音声信号処理装置。
【符号の説明】
【0069】
10 音声信号処理装置
16 複素数フィルタ生成部
18 フィルタ判定部
20 フィルタ適用成分決定部
51 CPU
52 一次記憶部
53 二次記憶部
31A マイク
31B スピーカ