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

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

▶ ライン プラス コーポレーションの特許一覧

特開2023-183390ディープラーニングに基づくノイズ除去方法および装置
<>
  • 特開-ディープラーニングに基づくノイズ除去方法および装置 図1
  • 特開-ディープラーニングに基づくノイズ除去方法および装置 図2
  • 特開-ディープラーニングに基づくノイズ除去方法および装置 図3
  • 特開-ディープラーニングに基づくノイズ除去方法および装置 図4
  • 特開-ディープラーニングに基づくノイズ除去方法および装置 図5
  • 特開-ディープラーニングに基づくノイズ除去方法および装置 図6
  • 特開-ディープラーニングに基づくノイズ除去方法および装置 図7
  • 特開-ディープラーニングに基づくノイズ除去方法および装置 図8
  • 特開-ディープラーニングに基づくノイズ除去方法および装置 図9
  • 特開-ディープラーニングに基づくノイズ除去方法および装置 図10
  • 特開-ディープラーニングに基づくノイズ除去方法および装置 図11
  • 特開-ディープラーニングに基づくノイズ除去方法および装置 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023183390
(43)【公開日】2023-12-27
(54)【発明の名称】ディープラーニングに基づくノイズ除去方法および装置
(51)【国際特許分類】
   G10L 21/0208 20130101AFI20231220BHJP
   G10L 25/30 20130101ALI20231220BHJP
【FI】
G10L21/0208 100Z
G10L25/30
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023094030
(22)【出願日】2023-06-07
(31)【優先権主張番号】10-2022-0072971
(32)【優先日】2022-06-15
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】516014409
【氏名又は名称】ライン プラス コーポレーション
【氏名又は名称原語表記】LINE Plus Corporation
(74)【代理人】
【識別番号】110002952
【氏名又は名称】弁理士法人鷲田国際特許事務所
(72)【発明者】
【氏名】キム ギジュン
(57)【要約】      (修正有)
【課題】ディープラーニングに基づいて、演算量の少ない後処理方式によって残余ノイズを除去する、ノイズ除去方法および装置を提供する。
【解決手段】ノイズ除去方法は、ノイズを含む入力音声信号を第1ネットワークに入力して位相が復元されてノイズが1次除去された第1音声信号を生成することと、第1音声信号に第1ウインドウを適用することと、第1音声信号にFFTを実行して振幅信号および位相信号を取得することと、第2ネットワークに振幅信号を入力して振幅信号に対して適用されるマスクを取得することと、振幅信号に加重値が適用されたマスクを適用することと、マスクが適用された振幅信号および位相信号を使用してIFFTを実行してノイズが除去された第2音声信号を生成することと、第2音声信号に第2ウインドウを適用することと、を含む。
【選択図】図3
【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサを含むコンピュータシステムのノイズ除去方法であって、
前記少なくとも1つのプロセッサが、音声信号の第1振幅信号に対して適用されるマスクを推定するように訓練された第1機械学習モデルを利用して前記第1振幅信号のためのマスクを取得する段階、
前記少なくとも1つのプロセッサが、前記第1振幅信号に前記マスクを適用して、復元された音声の振幅信号を取得する段階、
前記少なくとも1つのプロセッサが、前記復元された音声の振幅信号を入力として前記マスクのための加重値を出力するように学習された第2機械学習モデルを利用して前記マスクのための加重値を取得する段階、
前記少なくとも1つのプロセッサが、前記マスクに前記加重値を適用して、加重値が適用されたマスクを生成する段階、および
前記少なくとも1つのプロセッサが、前記第1振幅信号に前記加重値が適用されたマスクを適用して第2振幅信号を生成する段階
を含む、ノイズ除去方法。
【請求項2】
前記加重値が適用されたマスクを生成する段階は、
前記マスクの値に前記加重値の値をべき乗することによって前記マスクに前記加重値を適用することを特徴とする、請求項1に記載のノイズ除去方法。
【請求項3】
前記マスクの値は0~1までの範囲に含まれる実数値を含み、
前記加重値の値は1~2までの範囲に含まれる実数値を含むこと
を特徴とする、請求項2に記載のノイズ除去方法。
【請求項4】
前記復元された音声の振幅信号を取得する段階は、
前記第1振幅信号に前記マスクを掛けて、前記復元された音声の振幅信号を取得することを特徴とする、請求項1に記載のノイズ除去方法。
【請求項5】
前記第2機械学習モデルは、ニューラルネットワークのレイヤを利用して実現されるu-net構造の機械学習モデルを含むことを特徴とする、請求項1に記載のノイズ除去方法。
【請求項6】
前記少なくとも1つのプロセッサが、時間領域からノイズが除去された音声を推論するように訓練された第3機械学習モデルにノイズを含む音声入力信号を入力することで、前記音声入力信号の位相が復元されてノイズが1次除去された第1音声信号として前記音声信号を取得する段階
をさらに含む、請求項1に記載のノイズ除去方法。
【請求項7】
前記少なくとも1つのプロセッサが、前記音声信号に第1ウィンドウを適用する段階、および
前記第1ウィンドウが適用された音声信号にFFT(Fast Fourier Transform)を実行して前記第1振幅信号および位相信号を取得する段階
をさらに含む、請求項1に記載のノイズ除去方法。
【請求項8】
前記少なくとも1つのプロセッサが、前記第2振幅信号および前記音声信号の位相信号を使用して前記音声信号にIFFT(Inverse Fast FourierTransform)を実行することによって、ノイズが除去された第2音声信号を生成する段階、および
前記少なくとも1つのプロセッサが、前記第2音声信号に第2ウィンドウを適用する段階
をさらに含む、請求項1に記載のノイズ除去方法。
【請求項9】
前記第2音声信号を生成する段階は、
前記第2振幅信号および前記位相信号に基づいて、ノイズが除去された音声信号のFFT係数を復元する段階、および
前記復元されたFFT係数に基づいてIFFTを実行することによって、ノイズが除去された前記第2音声信号を復元する段階
を含むことを特徴とする、請求項8に記載のノイズ除去方法。
【請求項10】
前記第1振幅信号のためのマスクを取得する段階は、
前記第1機械学習モデルに対して前記第1振幅信号のうちの第1周波数帯域の第1-1振幅信号を入力させ、前記第1機械学習モデルの出力として前記第1-1振幅信号に対して適用される第1マスクを取得する段階、
前記第1振幅信号のうちの前記第1周波数帯域よりも大きい周波数帯域である第2周波数帯域の第1-2振幅信号を複数の帯域幅区間の振幅信号で区分する段階、
前記区分された振幅信号それぞれに対する平均エネルギーを計算する段階、および
前記第1機械学習モデルに対して前記計算された平均エネルギーを入力させ、前記第1機械学習モデルの出力として前記第1-2振幅信号に対して適用される第2マスクを取得する段階
を含むことを特徴とする、請求項1に記載のノイズ除去方法。
【請求項11】
前記第1-2振幅信号は、前記第2周波数帯域をバーク尺度(bark scale)単位で区分することによって、前記複数の帯域幅区間の振幅信号に区分されることを特徴とする、請求項10に記載のノイズ除去方法。
【請求項12】
コンピュータシステムと結合して請求項1~11のうちのいずれか一項に記載の方法をコンピュータシステムに実行させるためのコンピュータプログラム。
【請求項13】
請求項1~11のうちのいずれか一項に記載の方法を実行するコンピュータ読み取り可能記録媒体に記録されたプログラム。
【請求項14】
コンピュータ読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサが、
音声信号の第1振幅信号に対して適用されるマスクを推定するように訓練された第1機械学習モデルを利用して前記第1振幅信号のためのマスクを取得し、
前記第1振幅信号に前記マスクを適用して、復元された音声の振幅信号を取得し、
前記復元された音声の振幅信号を入力として前記マスクのための加重値を出力するように学習された第2機械学習モデルを利用して前記マスクのための加重値を取得し、
前記マスクに前記加重値を適用して、加重値が適用されたマスクを生成し、
前記第1振幅信号に前記加重値が適用されたマスクを適用して第2振幅信号を生成すること
を特徴とする、コンピュータ装置。
【請求項15】
前記加重値が適用されたマスクを生成するために、前記少なくとも1つのプロセッサが、
前記マスクの値に前記加重値の値をべき乗することによって前記マスクに前記加重値を適用すること
を特徴とする、請求項14に記載のコンピュータ装置。
【請求項16】
前記復元された音声の振幅信号を取得するために、前記少なくとも1つのプロセッサが、
前記第1振幅信号に前記マスクを掛けて、前記復元された音声の振幅信号を取得すること
を特徴とする、請求項14に記載のコンピュータ装置。
【請求項17】
前記第2機械学習モデルは、ニューラルネットワークのレイヤを利用して実現されるu-net構造の機械学習モデルを含むこと
を特徴とする、請求項14に記載のコンピュータ装置。
【請求項18】
前記少なくとも1つのプロセッサが、
時間領域からノイズが除去された音声を推論するように訓練された第3機械学習モデルにノイズを含む音声入力信号を入力することで、前記音声入力信号の位相が復元されてノイズが1次除去された第1音声信号として前記音声信号を取得すること
を特徴とする、請求項14に記載のコンピュータ装置。
【請求項19】
前記少なくとも1つのプロセッサが、
前記音声信号に第1ウィンドウを適用し、
前記第1ウィンドウが適用された音声信号にFFT(Fast Fourier Transform)を実行して前記第1振幅信号および位相信号を取得すること
を特徴とする、請求項14に記載のコンピュータ装置。
【請求項20】
前記少なくとも1つのプロセッサが、
前記第2振幅信号および前記音声信号の位相信号を使用して前記音声信号にIFFT(Inverse Fast Fourier Transform)を実行することによって、ノイズが除去された第2音声信号を生成し、
前記第2音声信号に第2ウィンドウを適用すること
を特徴とする、請求項14に記載のコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【0001】
実施形態は、ディープラーニングに基づくノイズ除去方法および装置に関する。
【背景技術】
【0002】
近年は、VoIPのようなインターネット通話や音声/サウンド信号を活用したコンテンツの開発および提供に対する関心が高まっており、これに伴って音声信号からノイズを除去する技術に対する関心も高まっている。
【0003】
ディープラーニングを活用した従来のノイズ除去技術は、周波数領域からノイズ成分を除去する方式や、時間領域でクリーン音声を推論する方式が研究されてきた。しかし、従来の方法には性能に限界があった。
【0004】
先ず、周波数領域からノイズを除去する方式は、大きく、周波数の振幅を調節する方式と、振幅と位相を調節する方式がある。周波数の振幅を調節する方式は、ノイズが少ない環境では優れた性能を発揮するが、ノイズが強い環境ではノイズの位相情報が音声の位相情報よりも優勢であるため振幅のノイズ成分を除去しても位相のノイズ成分が残り、きれいな音を復元することができないという問題があった。
【0005】
これを解決するために、振幅と位相を同時に調節する方式も試されたが、位相のランダム性によって適切に学習がなされず、これによって全体的な性能も良くなかった。
【0006】
このような周波数領域における技術の短所を克服するために、時間領域でクリーン音声を推論するための方法が開発された。この方式は、クリーン音声のロー(raw)な信号を生成するため、周波数成分の位相と振幅が同時に自動調節される。しかし、時間領域では高周波成分がランダム特性を示すため、高周波数帯域の信号が適切に学習されず、ノイズ除去後にホワイトノイズ(white noise)形態のノイズが残在するようになるという問題があった。
【0007】
さらに、ディープラーニングに基づいて開発された従来の音声ノイズ除去技術は、ノイズが強い場合にはこれをきれいに除去することができず、残余ノイズが残るという問題があった。
【0008】
上述した情報は理解を助けるためのものに過ぎず、従来技術の一部を形成しない内容を含みうるし、従来技術が当業者に提示できるものを含まないこともある。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】韓国公開特許第10-2018-0067608号公報(公開日2018年6月20日)
【発明の概要】
【発明が解決しようとする課題】
【0010】
演算量の少ない後処理方式によって残余ノイズを除去する、ノイズ除去方法および装置を提供する。
【課題を解決するための手段】
【0011】
少なくとも1つのプロセッサを含むコンピュータシステムのノイズ除去方法であって、前記少なくとも1つのプロセッサが、音声信号の第1振幅信号に対して適用されるマスクを推定するように訓練された第1機械学習モデルを利用して前記第1振幅信号のためのマスクを取得する段階、前記少なくとも1つのプロセッサが、前記第1振幅信号に前記マスクを適用して、復元された音声の振幅信号を取得する段階、前記少なくとも1つのプロセッサが、前記復元された音声の振幅信号を入力として前記マスクのための加重値を出力するように学習された第2機械学習モデルを利用して前記マスクのための加重値を取得する段階、前記少なくとも1つのプロセッサが、前記マスクに前記加重値を適用して、加重値が適用されたマスクを生成する段階、および前記少なくとも1つのプロセッサが、前記第1振幅信号に前記加重値が適用されたマスクを適用して第2振幅信号を生成する段階を含む、ノイズ除去方法を提供する。
【0012】
一側面によると、前記加重値が適用されたマスクを生成する段階は、前記マスクの値に前記加重値の値をべき乗することによって前記マスクに前記加重値を適用することを特徴としてよい。
【0013】
他の側面によると、前記マスクの値は0~1までの範囲に含まれる実数値を含み、前記加重値の値は1~2までの範囲に含まれる実数値を含むことを特徴としてよい。
【0014】
また他の側面によると、前記復元された音声の振幅信号を取得する段階は、前記第1振幅信号に前記マスクを掛けて、前記復元された音声の振幅信号を取得することを特徴としてよい。
【0015】
また他の側面によると、前記第2機械学習モデルは、ニューラルネットワークのレイヤを利用して実現されるu-net構造の機械学習モデルを含むことを特徴としてよい。
【0016】
また他の側面によると、前記ノイズ除去方法は、前記少なくとも1つのプロセッサが、時間領域からノイズが除去された音声を推論するように訓練された第3機械学習モデルにノイズを含む音声入力信号を入力することで前記音声入力信号の位相が復元され、ノイズが1次除去された第1音声信号として前記音声信号を取得する段階をさらに含んでよい。
【0017】
また他の側面によると、前記ノイズ除去方法は、前記少なくとも1つのプロセッサが、前記音声信号に第1ウィンドウを適用する段階、および前記第1ウィンドウが適用された音声信号にFFT(Fast Fourier Transform)を実行して前記第1振幅信号および位相信号を取得する段階をさらに含んでよい。
【0018】
また他の側面によると、前記ノイズ除去方法は、前記少なくとも1つのプロセッサが、前記第2振幅信号および前記音声信号の位相信号を使用して前記音声信号にIFFT(Inverse Fast Fourier Transform)を実行することによって、ノイズが除去された第2音声信号を生成する段階、および前記少なくとも1つのプロセッサが、前記第2音声信号に第2ウィンドウを適用する段階をさらに含んでよい。
【0019】
また他の側面によると、前記第2音声信号を生成する段階は、前記第2振幅信号および前記位相信号に基づいてノイズが除去された音声信号のFFT係数を復元する段階、および前記復元されたFFT係数に基づいてIFFTを実行することによって、ノイズが除去された前記第2音声信号を復元する段階を含むことを特徴としてよい。
【0020】
また他の側面によると、前記第1振幅信号のためのマスクを取得する段階は、前記第1機械学習モデルに対して前記第1振幅信号のうちの第1周波数帯域の第1-1振幅信号を入力させて、前記第1機械学習モデルの出力として前記第1-1振幅信号に対して適用される第1マスクを取得する段階、前記第1振幅信号のうちの前記第1周波数帯域よりも大きい周波数帯域である第2周波数帯域の第1-2振幅信号を複数の帯域幅区間の振幅信号で区分する段階、前記区分された振幅信号のそれぞれに対する平均エネルギーを計算する段階、および前記第1機械学習モデルに対して前記計算された平均エネルギーを入力させて、前記第1機械学習モデルの出力として前記第1-2振幅信号に対して適用される第2マスクを取得する段階を含むことを特徴としてよい。
【0021】
また他の側面によると、前記第1-2振幅信号は、前記第2周波数帯域をバーク尺度(bark scale)単位で区分することによって前記複数の帯域幅区間の振幅信号で区分されることを特徴としてよい。
【0022】
コンピュータシステムと結合して前記方法をコンピュータシステムに実行させるためにコンピュータ読み取り可能な記録媒体に記録される、コンピュータプログラムを提供する。
【0023】
前記方法を実行するコンピュータ読み取り可能記録媒体に記録される、プログラムを提供する。
【0024】
コンピュータ読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサが、音声信号の第1振幅信号に対して適用されるマスクを推定するように訓練された第1機械学習モデルを利用して前記第1振幅信号のためのマスクを取得し、前記第1振幅信号に前記マスクを適用して復元された音声の振幅信号を取得し、前記復元された音声の振幅信号を入力として前記マスクのための加重値を出力するように学習された第2機械学習モデルを利用して前記マスクのための加重値を取得し、前記マスクに前記加重値を適用して加重値が適用されたマスクを生成し、前記第1振幅信号に前記加重値が適用されたマスクを適用して第2振幅信号を生成することを特徴とする、コンピュータ装置を提供する。
【発明の効果】
【0025】
演算量の少ない後処理方式によって残余ノイズを除去することができる。
【図面の簡単な説明】
【0026】
図1】一実施形態における、ノイズを含む音声信号を処理してノイズが除去された音声信号を復元する方法を示した図である。
図2】一実施形態における、ノイズを含む音声信号を処理してノイズを除去するコンピュータシステムの構造を示した図である。
図3】一実施形態における、ノイズ除去方法を示したフローチャートである。
図4】一例における、機械学習モデルを使用して振幅信号に対して適用されるマスクを取得する方法を示したフローチャートである。
図5】一例における、機械学習モデルを使用して振幅信号のうちの第1周波数帯域の第1振幅信号に対して適用されるマスクを生成するにあたり、機械学習モデルに対して入力されるパラメータを決定する方法を示したフローチャートである。
図6】一例における、マスクに加重値を適用する方法を示したフローチャートである。
図7】一例における、入力音声信号および機械学習モデルからのマスクを使用してノイズが除去された音声信号を復元する方法を示したフローチャートである。
図8】一例における、機械学習モデルによって推定されるマスクを示した図である。
図9】一例における、第1ネットワークの例を示した図である。
図10】一例における、第2ネットワークの例を示した図である。
図11】一例における、第3ネットワークの例を示した図である。
図12】一実施形態における、性能評価の例を示した図である。
【発明を実施するための形態】
【0027】
以下、実施形態について、添付の図面を参照しながら詳しく説明する。各図面に提示された同一の参照符号は、同一の部材を示す。
【0028】
図1は、一実施形態における、ノイズを含む音声信号を処理してノイズが除去された音声信号を復元する方法を示した図である。
【0029】
図1を参照しながら、ノイズ(Noise)および音声信号(Voice signal)を含む入力音声信号110からノイズが除去されて復元された音声信号190を取得する方法について説明する。
【0030】
モバイル環境でリアルタイムに技術を適用するために、入力音声信号110に対するフレーム単位の演算が実行されてよい。入力音声信号110は、一例として、サンプリングレートが16kHzの信号であってよく、一フレームの長さは480サンプル(sample)であってよい。Hop sizeは240サンプルであり、50%のオーバーラップ加算(overlap add)で動作してよい。
【0031】
実施形態の入力音声信号110からノイズを除去する方法は、後述するコンピュータシステム100によって実行されてよい。
【0032】
強いノイズ環境での音声信号の位相を復元してノイズを1次除去するために、入力音声信号110のロー(raw)波形をTime NS net120の入力に使用してよい。Time NS net120は、u-net構造で設計されたネットワークであってよい。このようなTime NS net120は、ニューラルネットワーク(例えば、CNN、DNN、またはDense)によって実現されてよい。例えば、合計12個で構成された各レイヤの大きさが512-256-128-64-32-16-16-32-64-128-256-512のように前のレイヤの半分になるように構成されてよい。このようなTime NS net120の構成としてu-netを使用することが重要であるだけで、詳細事項はチューニングによって差があってよい。Time NS net120の出力は1次推定されたロー(raw)な第1音声信号であって、第1音声信号には弱いホワイトノイズ(white noise)成分が混ざっている。
【0033】
第1音声信号には、FFT(Fast Fourier Transform)140を実行する前に、FFT140の出力特性を適切にするためのウィンドウが適用されてよい。また、前フレームと現在フレームのオーバーラップ加算区間における不連続性によって発生するノイズを除去するためにもウィンドウを適用しなければならない。図1では、FFT140を実行する前に、第1ウィンドウ(First window)130が、IFFT(Inverse Fast Fourier Transform)170の後に第2ウィンドウ(Second window)180がそれぞれ適用されることを示している。適用可能なウィンドウには多くの種類があるが、一例として、MDCT(Modified Discrete Cosine Transform)でのTDAC(time domain aliasing cancellation)のために使用するKBD(Kaiser-bessel-derived)ウィンドウが活用されてよい。本来の目的とは異なるが、KBDウィンドウは、オーバーラップ区間でのウィンドウの二乗和が1を満たし、FFT140の前とIFFT170の後に同時にウィンドウ適用(KBDウィンドウ130、180)が可能である。このように2つの区間でウィンドウを適用すれば、フレーム間の不連続性によるノイズをより効果的に除去することができる。実際に実現された技術でKBDウィンドウを適用したときに最良の性能を発揮した。
【0034】
一方、第1ウィンドウ130が適用された第1音声信号にはFFT140が実行されてよく、このようなFFT140が実行された第1音声信号から、入力音声信号110の振幅(magnitude)を示す振幅信号(Magnitude signal)と位相(phase)を示す位相信号(Phase signal)がそれぞれ取得されてよい。
【0035】
図に示すように、実施形態では、低帯域(例えば、8kHz未満の帯域幅)に属する振幅信号は、Frequency NS net150を使用して復元されてよい。一方、高帯域(例えば、8kHz以上の帯域幅)に属する振幅信号は、バーク尺度単位で区分され、区分された振幅信号の平均エネルギーがFrequency NS net150に入力されて復元されてよい。また、低帯域に属する振幅信号とともに、この低帯域に属する振幅信号に基づいて生成された1つ以上のMFCC(Mel Frequency Cepstral Coefficient)がFrequency NS net150にパラメータとして入力されてよい。
【0036】
Frequency NS net150は、例えば、ニューラルネットワーク(例えば、CNN、DNN、またはDense)によってu-net構造で実現されてよい。
【0037】
一方、Frequency NS net150からの出力は、FFT140から出力されたFFT係数としての振幅に対して適用するためのマスク(Ratio mask(RM))であってよい。このようなRMの値は、0~1までの範囲に含まれる実数値であってよい。このとき、1よりも小さいRMの値が振幅に適用(乗算)されることによって出力が小さくなってノイズを除去する効果を発生させる。このとき、本実施形態では、RMの値に加重値(weight、W)をべき乗することによってRMの値を追加で調節してよい。図1において、Pow(RM、W)163は、Frequency NS net150から出力されるRMの値にPost processing net162から出力されるWをべき乗する関数であってよい。ここで、加重値であるWは、1~2までの範囲に含まれる実数値であってよい。RMの値が1に近いほど音声である確率が高く、RMの値が0に近いほどノイズである確率が高いが、このようなRMの値に1~2までの範囲に含まれる実数値であるWをべき乗することによってRMのノイズ除去能力を大きく高めることができる。例えば、RMの値が1に近いほど音声である確率が高く、べき乗の値(RM^W)は本来のRMの値に大きな影響を及ぼさない。この反面、RMの値が0に近いほどノイズである確率が高く、べき乗の値(RM^W)はRMの値を大きく減少させる。このような動作により、Wの精度が低くても音声を適切に保存しながら、調節されたRMの値によってノイズを効果的に除去することができる。
【0038】
また、Post processing net162は、本来のRMの値によって復元された音声の振幅(Magnitude of recovered voice)を入力として受け取ってWを出力するように学習したディープラーニングモデルであってよい。図1の実施形態では、Frequency NS net150からの出力としてのRMの値と振幅が掛けられることによって(163)、Post processing net162の入力のための復元された音声の振幅を取得することができる。Post processing net162が出力するWの範囲はすべての実数が可能である。しかし、実験的にWとして1以下の値を適用したときにはノイズ除去の性能が低下した。また、Wとして2を超える値を適用したときには、Wとして2までの値を適用したときと比べて大きな性能の差はなかった。したがって、本実施形態では、Wの値を1~2までの範囲に含まれる実数値に制限し、Post processing net162は1~2までの範囲に含まれる実数値としてのWの値を出力するように学習されるようにした。
【0039】
一方、Wが適用されたRMの値(RM^W)は、振幅に掛けられることによって(163)、ポストプロセッシングが適用された振幅(Magnitude applied post processing)が計算されてIFFT170に伝達されてよい。
【0040】
また、位相信号は、特別な処理なく、IFFT170の実行のために使用されてよい。この場合、ポストプロセッシングが適用された振幅とFFT140から出力されたFFT係数としての位相信号を使用してノイズが2次除去されてよい。例えば、ポストプロセッシングが適用された振幅と位相信号を使用して第1音声信号のFFT係数が復元されてよく、IFFT170が実行されることによってノイズが2次除去されて復元音声信号190が出力されてよい。
【0041】
このとき、上述したように、IFFT170の出力に対して第2ウィンドウ180が適用されることで、フレームの不連続性によるノイズを最小化することができる。
【0042】
実施形態では、(例えば、高帯域に属する振幅信号をそのままFrequency NS net150に入力させる場合に比べて)高帯域に属する振幅信号を使用することで、ノイズを除去するための演算量を著しく減らすことができる。
【0043】
このように、実施形態では、周波数領域と時間領域に対するそれぞれのネットワークを構成して2つのネットワークが相互互換的に優れた性能を発揮できるように学習させることにより、ノイズが強い環境でも優れたノイズ除去性能を提供することができる。
【0044】
ノイズを含む入力音声信号110を処理してノイズが除去された復元音声信号190を生成する方法については、図2~9を参照しながらより詳しく説明する。
【0045】
図2は、一実施形態における、ノイズを含む音声信号を処理してノイズを除去するコンピュータシステムの構造を示した図である。
【0046】
図に示したコンピュータシステム100は、図1を参照しながら説明したコンピュータシステム100に対応してよい。コンピュータシステム100は、入力音声信号110からノイズを除去するための軽量化された推論モデル(例えば、機械学習モデル(Time NS net120、Frequency NS net150、およびPost processing net162))を搭載している電子装置であってよい。または、図に示したものとは異なり、コンピュータシステム100は、コンピュータシステム100の外部の電子装置またはサーバに存在する機械学習モデル120、150、162を使用して、入力音声信号110からノイズが除去された復元音声信号190を取得するための装置であってよい。このとき、コンピュータシステム100は、外部の電子装置またはサーバとの通信によって入力音声信号110を取得してもよい。
【0047】
コンピュータシステム100は、例えば、PC(personal computer)、ノート型PC(laptop computer)、スマートフォン(smart phone)、タブレット(tablet)、ウェアラブルコンピュータ(wearable computer)、IoT(Internet Of Things)機器などを含んでよい。一例として、コンピュータシステム100は、モバイル端末のような装置であって、高性能のPCまたはサーバのようなコンピューティング装置には該当しなくてもよい。
【0048】
コンピュータシステム100は、通信部(Communicator)210、プロセッサ(Processor)220、およびメモリ(Memory)221を含んでよい。コンピュータシステム100は、ユーザから入力音声信号110の入力を受け取るためのマイク(Microphone)230を含んでよく、ノイズが除去された復元音声信号190を出力するためのスピーカ(Speaker)240を含んでよい。マイク230は、ユーザまたは外部から入力される音声から音声信号を生成してよく、スピーカ240は、音声信号を出力するように構成されてよい。
【0049】
また、コンピュータシステム100は、図には示してはいないが、ユーザから入力される情報および/またはユーザの要求にしたがって提供される情報/コンテンツを表示するディスプレイをさらに含んでよい。
【0050】
通信部210はコンピュータシステム100が他のサーバや他の装置と通信するための装置であってよい。言い換えれば、通信部210は、他のサーバや他の装置に対してデータおよび/または情報を送信/受信する、コンピュータシステム100のネットワークインタフェースカード、ネットワークインタフェースチップ、およびネットワーキングインタフェースポートなどのようなハードウェアモジュール、および/またはネットワークデバイスドライバ(driver)またはネットワーキングプログラムのようなソフトウェアモジュールであってよい。実施形態によって、入力音声信号110は、通信部210を通じて他のサーバや他の装置から受信してもよく、復元音声信号190は、通信部210を通じて他のサーバや他の装置に送信されてもよい。
【0051】
プロセッサ220は、コンピュータシステム100の構成要素を管理してよく、コンピュータシステム100が使用するプログラムまたはアプリケーションを実行してよい。例えば、プロセッサ220は、マイク230を通じて入力されるか予め入力された音声信号110を取得し、機械学習モデル120、150、162によって入力音声信号110を処理してよく、入力音声信号110からノイズが除去された復元音声信号190を生成してよい。プロセッサ220は、このような動作を実行するために要求されるプログラムまたはアプリケーションの実行およびデータの処理などに必要な演算を処理してよい。プロセッサ220は、コンピュータシステム100の少なくとも1つのプロセッサまたはプロセッサ内の少なくとも1つのコア(core)であってよい。
【0052】
メモリ221は、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永続的大容量記録装置(permanent mass storage device)を含んでよい。ここで、ROMと永続的大容量記録装置は、メモリ221と分離される個別の永続的記録装置として含まれてよい。また、メモリ221には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ221とは別のコンピュータ読み取り可能な記録媒体からロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピードライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない、通信部210を通じてメモリ221にロードされてもよい。ここで、機械学習モデル120、150、162は、実質的には、メモリにロードされたプログラムコードによってプロセッサ220によって実行されるソフトウェアモジュールであってよい。
【0053】
プロセッサ220は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ221または通信部210によってプロセッサ220に提供されてよい。例えば、プロセッサ220は、メモリ221にロードされたプログラムコードによって受信される命令を実行するように構成されてよい。このようなプロセッサ220による動作により、コンピュータシステム100は、入力音声信号110からノイズが除去された復元音声信号190を生成してよい。
【0054】
一例として、プロセッサ220は、ノイズを含む入力音声信号110を、時間領域でクリーン音声を推論するように訓練されたu-net構造の第1ネットワークに入力して位相が復元されてノイズが1次除去された第1音声信号を生成し、第1音声信号に第1ウィンドウ130を適用し、第1ウィンドウ130が適用された第1音声信号にFFT140を実行して振幅(magnitude)信号および位相(phase)信号を取得してよい。また、プロセッサ220は、振幅信号に対して適用されるマスク(RM)を推定するように訓練されたu-net構造の第2ネットワークに振幅信号を入力して、第2ネットワークの出力として振幅信号に対して適用されるマスク(RM)を取得してよい。この後、プロセッサ220は、マスク(RM)に加重値(W)をべき乗することで、残余ノイズの除去のためのマスク(RM^W)を取得してよい。この後、プロセッサ220は、振幅にマスク(RM^W)を適用することで、ポストプロセッシングが適用された振幅を計算してよい。一方、加重値(W)は、復元された音声の振幅を入力として受け取って加重値(W)を出力するように学習されたu-net構造の第3ネットワークを利用して取得されるようにしてよい。この後、プロセッサ220は、ポストプロセッシングが適用された振幅信号と位相信号を使用して第1ウィンドウ130が適用された第1音声信号にIFFT170を実行することによってノイズが2次除去された第2音声信号を生成してよく、第2音声信号に第2ウィンドウ180を適用してノイズが除去された復元入力信号190を生成してよい。
【0055】
このとき、第1ネットワークの例として使用されたTime NS net120は、入力音声信号110に対して時間領域でクリーン音声を推論するために位相を復元してノイズを1次除去するように予め訓練された機械学習モデルであってよく、第2ネットワークの例として使用されたFrequency NS net150は、入力音声信号110に含まれたノイズを除去するために入力音声信号110に対して適用されるマスク(RM)を推定するように予め訓練されたモデルであってよい。Time NS net120およびFrequency NS net150は、正解が分かっている複数の訓練用入力音声信号のセットによって訓練されたものであってよい。さらに、第3ネットワークの例として使用されたPost processing net162は、復元された音声の振幅によって加重値(W)の値を出力するように訓練されたモデルであってよい。一方、Time NS net120、Frequency NS net150、およびPost processing net162のそれぞれは、ニューラルネットワーク(例えば、CNN(Convolution Neural Network)、DNN(Deep Neural Network)、またはDense)に基づくu-net構造で実現されてよい。機械学習モデル120、150、162は、ニューラルネットワークを構成するu-net構造の複数のレイヤを含んでよい。
【0056】
以下では、コンピュータシステム100を使用してノイズを含む入力音声信号110を処理して、ノイズが除去された復元音声信号190を生成するための具体的な方法について詳しく説明する。
【0057】
後述する詳細な説明において、コンピュータシステム100またはプロセッサ220の構成によって実行される動作や、コンピュータシステム100またはプロセッサ220が実行するアプリケーション/プログラムによって実行される動作は、説明の便宜上、コンピュータシステム100によって実行される動作として説明する。
【0058】
図3は、一実施形態における、ノイズ除去方法を示したフローチャートである。
【0059】
段階310で、コンピュータシステム100は、ノイズを含む入力音声信号を、時間領域でクリーン音声(一例として、ノイズが除去された音声)を推論するように訓練されたu-net構造の第1ネットワークに入力し、位相が復元されてノイズが1次除去された第1音声信号を生成してよい。ここで、入力音声信号は、図1を参照しながら説明した入力音声信号110に対応してよく、図2を参照しながら説明したマイク230を通じてコンピュータシステム100に入力された音声信号であるか、コンピュータシステム100に予め格納された音声信号、またはコンピュータシステム100が外部ソースからネットワークを介して受信した音声信号であってよい。入力音声信号が含むノイズは、振幅信号および/または位相信号に含まれたノイズであってよく、ユーザが聴取を所望する音声信号以外のノイズを示してよい。
【0060】
上述したように、第1ネットワークは、Time NS net120のような機械学習モデルに対応してよく、u-net構造を活用して入力音声信号の位相を復元してノイズを1次除去するように予め学習されてよい。段階310で出力される第1音声信号は、弱いホワイトノイズ成分を含んでよい。
【0061】
段階320で、コンピュータシステム100は、第1音声信号に第1ウィンドウを適用してよい。上述したように、第1ウィンドウは、MDCTでのTDACのために使用するKBDウィンドウを含んでよいが、これに限定されることはない。
【0062】
段階330で、コンピュータシステム100は、第1ウィンドウが適用された第1音声信号にFFT(Fast Fourier Transform)を実行して振幅(magnitude)信号および位相(phase)信号を取得してよい。一例として、コンピュータシステム100は、第1ウィンドウが適用された第1音声信号に対して512FFTを実行してよい。
【0063】
段階340で、コンピュータシステム100は、振幅信号に対して適用されるマスクを推定するように訓練されたu-net構造の第2ネットワークに振幅信号を入力して、第2ネットワークの出力として振幅信号に対して適用されるマスクを取得してよい。例えば、コンピュータシステム100は、512FFTの出力に対して振幅成分を抽出し、256の振幅データを第2ネットワークの入力として使用してよい。ここで、第2ネットワークは、Frequency NS net150のような機械学習モデルに対応してよく、入力される振幅信号に対して適用されるマスクを推定するように訓練されてよい。振幅信号に対して適用されるマスクを取得する具体的な方法については、図4および図5を参照しながらより詳しく説明する。
【0064】
入力音声信号の振幅信号(および/または、該当となる振幅信号から得られたパラメータ)は、第2ネットワークでの推論を実行するための入力パラメータとなってよい。
【0065】
段階350で、コンピュータシステム100は、マスクに加重値を適用してよい。加重値は、復元された音声の振幅を入力として受け取って加重値を出力するように訓練された第3ネットワークを利用して得られてよい。このような段階350については、図6を参照しながらさらに詳しく説明する。
【0066】
段階360で、コンピュータシステム100は、振幅信号に加重値が適用されたマスクを適用してよい。例えば、コンピュータシステム100は、加重値が適用されたマスクを、第1ウィンドウが適用された第1音声信号の振幅信号に対して適用することにより(例えば、掛けることにより)、周波数領域のノイズが除去された振幅信号を得ることができる。
【0067】
段階370で、コンピュータシステム100は、マスクが適用された振幅信号および位相信号を使用して第1ウィンドウが適用された第1音声信号にIFFT(Inverse Fast Fourier Transform)を実行して、ノイズが2次除去された第2音声信号を生成してよい。第2音声信号を取得する方法については、図7を参照しながらさらに詳しく説明する。
【0068】
段階380で、コンピュータシステム100は、第2音声信号に第2ウィンドウを適用してよい。上述したように、第1ウィンドウは、MDCTでのTDACのために使用するKBDウィンドウを含んでよいが、これに限定されることはない。第1ウィンドウと第2ウィンドウは、入力音声信号に対してモバイル環境でリアルタイムに技術を適用するために、フレーム単位の演算を実行することによってフレームの不連続性によって発生するノイズを最小化するために活用されてよい。
【0069】
図4は、一例における、機械学習モデルを使用して、振幅信号に対して適用されるマスクを取得する方法を示したフローチャートである。図4の段階410~440を参照しながら、振幅信号に対して適用されるマスクを取得する具体的な方法ついて説明する。
【0070】
段階410で、コンピュータシステム100は、第2ネットワークに対して、第1ウィンドウが適用された第1音声信号の振幅信号のうちの第1周波数帯域の第1振幅信号を入力させてよく、第2ネットワークの出力として第1振幅信号に対して適用される第1マスクを取得してよい。第1周波数帯域の第1振幅信号は、第1ウィンドウが適用された第1音声信号の振幅信号のうちで、低帯域に該当する振幅信号を示してよい。例えば、第2周波数帯域は0以上8kHz未満の帯域を示してよく、第1振幅信号はこのような0以上8kHz未満の帯域の振幅信号を示してよい。
【0071】
第1振幅信号(および/または、該当となる第1振幅信号から得られたパラメータ)は、第2ネットワークでの推論を実行するための入力パラメータとなってよい。第2ネットワークによって出力される第1マスクを第1振幅信号に対して適用することにより(例えば、掛けることにより)、ノイズが除去された振幅信号(すなわち、ノイズが除去された第1振幅信号)が得られてよい。
【0072】
ここで、第1マスクは、第1振幅信号に対するIdeal Ratio Mask(IRM)(または、Ratio Mask(RM))であってよい。上述したように、このような第1マスクは、第1振幅信号との乗算によって第1振幅信号に対して適用されてよい。
【0073】
段階420で、コンピュータシステム100は、第1ウィンドウが適用された第1音声信号の振幅信号のうちで、第1周波数帯域よりも大きい周波数帯域である第2周波数帯域の第2振幅信号を複数の帯域幅区間の振幅信号で区分してよい。第2周波数帯域の第2振幅信号は、第1ウィンドウが適用された第1音声信号の振幅信号のうちで高帯域に該当する振幅信号を示してよい。例えば、第1周波数帯域は8kHz以上16kHz未満の帯域を示してよく、第2振幅信号はこのような8kHz以上16kHz未満の帯域の振幅信号を示してよい。
【0074】
例えば、コンピュータシステム100は、第2振幅信号の第2周波数帯域を少なくとも1つのバーク尺度(bark scale)単位で区分することにより、第2振幅信号を複数の帯域幅区間の振幅信号に区分してよい。
【0075】
バーク尺度は、音響心理学に基づく尺度であってよい。これは、人間が聴覚器官を利用して区分することができる音の振幅と高さ、長さ、音色などのような音の特徴と関連するものであり、音の特徴を具体的に示すために互いに異なる音を区別するための尺度であってよい。
【0076】
音響心理学的な(psychoacoustics)理論により、ユーザは、高帯域(例えば、8~16kHz帯域幅)の振幅信号を低い解像度として認知するようになるため、このような高帯域の音声信号に該当する振幅信号をバーク尺度単位で区分することにより、複数の帯域幅区間の振幅信号に区分することができる。複数の帯域幅区間はバーク尺度によって、例えば、8000~9600Hz、9600~12000Hz、および12000~15600Hzであってよく、高帯域の音声信号に該当する振幅信号は上述した各帯域幅区間の振幅信号で区分されてよい。
【0077】
段階430で、コンピュータシステム100は、段階420で区分された振幅信号のそれぞれに対する平均エネルギーを計算してよい。コンピュータシステム100は、区分された振幅信号のそれぞれに対して、各振幅信号が該当する帯域幅区間における平均エネルギー(すなわち、周波数エネルギーの平均)を計算してよい。
【0078】
段階440で、コンピュータシステム100は、第2ネットワークに対して段階430で計算された平均エネルギーを入力してよく、第2ネットワークの出力として第2振幅信号に対して適用される第2マスクを取得してよい。
【0079】
このように、段階430で計算された平均エネルギーは、第2ネットワークでの推論を実行するための入力パラメータとなってよい。第2ネットワークによって出力される第2マスクを第2振幅信号に対して適用することにより(例えば、掛けることにより)、ノイズが除去された振幅信号(すなわち、ノイズが除去された第2振幅信号)を得ることができる。
【0080】
第2マスクは、段階430で計算された平均エネルギーに対するIRMであってよい。上述したように、このような第2マスクは、第2振幅信号と掛けられることによって第2振幅信号に対して適用されてよい。
【0081】
実施形態では、段階410のように、低帯域の振幅信号は第2ネットワークに入力されてよく(すなわち、低帯域の振幅信号が第2ネットワークに対する入力パラメータとなってよく)、第2ネットワークによる推論によってノイズ除去のための作業が実行されてよい。
【0082】
ただし、段階420~440のように、高帯域の振幅信号に対しては、複数の帯域幅区間で区分された振幅信号のそれぞれの平均エネルギーが計算され、計算された平均エネルギーが第2ネットワークに対する入力パラメータとして使用されることにより、高帯域の振幅信号に対する第2ネットワークでの演算量を減らすことができる。
【0083】
図5は、一例における、機械学習モデルを使用して振幅信号のうちの第1周波数帯域の第1振幅信号に対して適用されるマスクを生成するにあたり、機械学習モデルに対して入力されるパラメータを決定する方法を示したフローチャートである。
【0084】
図5の段階510-1~520-2を参照しながら、振幅信号のうちの低帯域に該当する第1周波数帯域の第1振幅信号に基づいて、第2ネットワークに対して入力されるパラメータを決定する方法について説明する。
【0085】
段階510-1で、コンピュータシステム100は、第1周波数帯域の第1振幅信号に基づいて、予め決定された個数のMFCC(Mel-Frequency Cepstral Coefficient)を計算してよい。
【0086】
段階520-1で、コンピュータシステム100は、第1振幅信号に対して適用される第1マスクを取得するために、計算されたMFCCを機械学習モデル150に対して入力させてよい。
【0087】
すなわち、第1振幅信号とともに、第1振幅信号に対するMFCCは、第2ネットワークでの推論を実行するための入力パラメータとなってよい。第1振幅信号に対する所定の個数(例えば、20個)の係数(coefficient)が計算されて第2ネットワークに入力されてよい。MFCCは、第1振幅信号の周波数全体の形状に関する情報を提供してよい。
【0088】
MFCCは、音声信号を特徴ベクトル化するために必要な係数であってよい。
【0089】
例えば、MFCCは、第1振幅信号の特徴量(feature)となってよい。
【0090】
MFCCは、相対的に低周波帯域の音声信号を適切に認識し、高周波帯域の音声信号を適切に認識することができない蝸牛の特性を考慮するメールスケール(Mel-scale)に基づいて第1振幅信号から計算(抽出)されてよい。MFCCは、メールスケールによって第1振幅信号を複数の区間に区分し、各区間に対して計算されてよい。
【0091】
段階510-2で、コンピュータシステム100は、第1周波数帯域の第1振幅信号に基づいてZCR(Zero Crossing Rate)を計算してよい。
【0092】
段階520-2で、コンピュータシステム100は、第1振幅信号に対して適用される第1マスクを取得するために、計算されたZCRを第2ネットワークに対して入力させてよい。
【0093】
すなわち、第1振幅信号とともに、第1振幅信号に対するZCRは、第2ネットワークでの推論を実行するための入力パラメータとなってよい。ZCRは、第1振幅信号を時間軸に分析することによって計算されてよい。ZCRは、第1振幅信号の時間軸成分が含むノイズに関する情報を提供してよい。ZCRは、(音声)信号による符号変化率、すなわち、信号が変化する比率を示してよい。すなわち、ZCRは、信号が0を有する、信号の符号が変わる比率を示してよい。
【0094】
コンピュータシステム100は、第1振幅信号、第1振幅信号に対するMFCC、および第1振幅信号に対するZCRを第2ネットワークに対して入力させてよく、第2ネットワークの出力として第1振幅信号に対して適用される第1マスクを取得してよい。
【0095】
図6は、一例における、マスクに加重値を適用する方法を示したフローチャートである。
【0096】
図6の段階610~630を参照しながら、マスクに加重値を適用する方法について具体的に説明する。
【0097】
段階610で、コンピュータシステム100は、振幅信号にマスクを適用して復元された音声の振幅信号を取得してよい。ここで、振幅信号は、第1ウィンドウが適用された第1音声信号の振幅信号を含んでよい。例えば、振幅信号は、512FFTの出力に対して振幅成分を抽出して得られた256の振幅データを含んでよい。マスクは、Frequency NS net150のような第2ネットワークの出力として提供されるRM(または、IRM)であってよい。このようなマスクは、上述した第1マスクおよび第2マスクを含んでよい。この場合、コンピュータシステム100は、該当となる振幅信号に対してマスクRMの値を掛けることにより、復元された音声の振幅信号(ノイズが除去された振幅信号)を推定してよい。
【0098】
段階620で、コンピュータシステム100は、復元された音声の振幅信号を後処理モデルに入力してマスクの加重値を取得してよい。ここで、後処理モデルは、上述したPost processing net162を含んでよい。上述したように、Post processing net162は、CNNベースのu-net構造でなされてよい。このようなPost processing net162の構造については、以下でさらに詳しく説明する。
【0099】
段階630で、コンピュータシステム100は、マスクに加重値を適用してマスクの値を調節してよい。例えば、コンピュータシステム100は、マスクRMの値に加重値Wをべき乗(RM^W)することにより、マスクRMの値を追加で調節してよい。上述したように、RMの値は0~1までの範囲に含まれる実数値であってよく、加重値であるWは1~2までの範囲に含まれる実数値であってよい。RMの値が1に近いほど音声である確率が高く、RMの値が0に近いほどノイズである確率が高いが、このようなRMの値に1~2までの範囲に含まれる実数値であるWをべき乗することによってRMのノイズ除去能力を大きく高めることができる。例えば、RMの値が1に近いほど音声である確率が高く、べき乗の値(RM^W)は本来のRMの値に大きい影響を及ぼさない。この反面、RMの値が0に近いほどノイズである確率が高く、べき乗の値(RM^W)はRMの値を大きく減少させる。このような動作でより、Wの精度が低くても、音声を適切に保存しながら、調節されたRMの値によってノイズを効果的に除去することができる。
【0100】
図7は、一例における、入力音声信号および機械学習モデルからのマスクを使用してノイズが除去された音声信号を復元する方法を示したフローチャートである。
【0101】
図7の段階710~740を参照しながら、ノイズが除去された音声信号を復元する方法について具体的に説明する。
【0102】
段階710で、コンピュータシステム100は、振幅信号に加重値が適用されたマスクを適用してよい。例えば、第1ウィンドウが適用された第1音声信号の振幅信号に加重値が適用されたマスクを乗算することにより、ノイズ除去振幅信号(ノイズが除去された振幅信号)を推定してよい。図4の実施形態を考慮すると、第1振幅信号には加重値が適用された第1マスクが乗算されてノイズが除去された第1振幅信号が推定されてよく、第2振幅信号には加重値が適用された第2マスクが乗算されてノイズが除去された第2振幅信号が推定されてよい。
【0103】
段階720で、コンピュータシステム100は、ノイズ除去振幅信号および位相信号に基づいて、ノイズが除去された復元音声信号のFFT係数を復元してよい。言い換えれば、コンピュータシステム100は、第1ウィンドウが適用された第1音声信号に対して、段階710によって取得されたノイズが除去された振幅信号と、段階330によってノイズが除去された位相信号(段階310で第1ネットワークによってノイズが除去された位相信号)に基づいて、ノイズが除去された復元音声信号のFFT係数を復元してよい。
【0104】
段階730で、コンピュータシステム100は、復元されたFFT係数に基づいてIFFT(Inverse Fast Fourier Transform)を実行することにより、ノイズが除去された復元音声信号を生成してよい。段階670で生成される復元音声信号は、図1の復元音声信号190と比べると第2ウィンドウが適用される前の第2音声信号であってよく、段階380で第2ウィンドウが適用されることによって図1の復元音声信号190となってよい。
【0105】
復元音声信号190は、コンピュータシステム100から、例えば、スピーカ240から出力されてよい。
【0106】
図8は、一例における、機械学習モデルによって推定されるマスクを示した図である。
【0107】
図8に示す(a)~(d)のそれぞれは、第2ネットワークによる推論によって推定されるマスク(RM、IRM、またはCIRM)の例を示している。言い換えれば、図に示した(a)~(d)のそれぞれは、第2ネットワークによって推定される最適値を示してよい。
【0108】
マスクが、第1ウィンドウが適用された第1音声信号の振幅信号に対して掛けられることにより、第1ウィンドウが適用された第1音声信号に含まれたノイズが抑制(suppress)されてよい。このとき、マスクに加重値が適用されることによって抑制性能が向上し、残余ノイズをより効果的に除去することができる。
【0109】
図に示した(a)~(d)において、例えば、x軸は周波数(または時間)を、y軸は第1ウィンドウが適用された第1音声信号に対して掛けられる値を示してよい。
【0110】
第2ネットワークによって推定されるマスクの形態および値の振幅は、上述した第2ネットワークに対する入力パラメータと第2ネットワークによる推定の結果によって示したものとは異なってよい。
【0111】
図9は、一例における、第1ネットワークの例を示しており、図10は、一例における、第2ネットワークの例を示しており、図11は、一例における、第3ネットワークの例を示している。上述したように、第1ネットワーク、第2ネットワーク、第3ネットワークはそれぞれ、u-net構造の機械学習モデルであってよい。u-net構造は、図9に示すように、各レイヤの大きさが512-256-128-64-32-16-16-32-64-128-256-512のように前のレイヤの半分になるように構成される特徴を有し、このようなレイヤの形状は「U」字を示している。図9では、図1を参照しながら説明したTime NS net120がCNNの合計12個のレイヤを使用して実現される例を示しており、図10では、図1を参照しながら説明したFrequency NS net150がDenseの合計6個のレイヤを使用して実現される例を示している。さらに、図11では、図1を参照しながら説明したPost processing net162がCNNの合計6個のレイヤを使用して実現される例を示している。
【0112】
特に、Post processing net162は、エンコード(encode)レイヤとデコード(decode)レイヤがそれぞれ2つで構成されており、CNNでのそれぞれのマスクは4つで構成されている。演算量を減らすために、CNNは、Depth-wise Separable Convolution方式で動作するように実現した。本実施形態において、ネットワークの入力は、512-FFTの振幅信号とFrequency NS net150の出力マスクの倍である256個の推論された振幅であってよく、出力は256個の加重値であってよい。
【0113】
これは、第1ネットワーク、第2ネットワーク、および第3ネットワークを構成する1つの実施例に過ぎず、これに限定されることはない。
【0114】
図12は、一実施形態における、性能評価の例を示した図である。図12は、クリーン音声信号1210と、ノイズが含まれた音声信号1220を示している。また、図12は、マスクRMに加重値を適用する後処理(post processing)を行わない場合に第1復元された音声信号1230と、後処理を行った場合に第2復元された音声信号1240の例を示している。このとき、第1復元された音声信号1230には残余ノイズが存在しているが、第2復元された音声信号1240からは残余ノイズが除去された例を示している。
【0115】
このように、本発明の実施形態によると、周波数領域からノイズを除去する方式の問題点と、時間領域でクリーン音声を推論する方式の問題点を解決するために、周波数領域の情報と時間領域の情報を同時に活用および調節できるように周波数領域と時間領域に対するそれぞれのネットワークを構成し、2つのネットワークが相互補完的に優れた性能を発揮するように学習を行うことにより、ノイズが強い環境でも優れた性能を発揮することができる。また、演算量の少ない後処理方式によって残余ノイズを除去することができる。
【0116】
上述した装置は、ハードウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特定用途コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者であれば、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【0117】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、個別またはまとめて処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
【0118】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。ここで、媒体は、コンピュータ実行可能なプログラムを継続して記録するものであっても、実行またはダウンロードのために一時記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどを含み、プログラム命令が記録されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記録媒体または格納媒体が挙げられる。
【0119】
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【0120】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付の特許請求の範囲に属する。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
【外国語明細書】