(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-17
(54)【発明の名称】深層学習ベースの音声強調
(51)【国際特許分類】
G10L 21/0232 20130101AFI20231110BHJP
G10L 25/30 20130101ALI20231110BHJP
【FI】
G10L21/0232
G10L25/30
【審査請求】未請求
【予備審査請求】有
(21)【出願番号】P 2023526072
(86)(22)【出願日】2021-10-29
(85)【翻訳文提出日】2023-06-26
(86)【国際出願番号】 US2021057378
(87)【国際公開番号】W WO2022094293
(87)【国際公開日】2022-05-05
(31)【優先権主張番号】PCT/CN2020/124635
(32)【優先日】2020-10-29
(33)【優先権主張国・地域又は機関】CN
(32)【優先日】2020-11-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-07-14
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】507236292
【氏名又は名称】ドルビー ラボラトリーズ ライセンシング コーポレイション
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リウ,シヤオユイ
(72)【発明者】
【氏名】ホーガン,マイケル ゲッティ
(72)【発明者】
【氏名】フェイギン,ロイ エム.
(72)【発明者】
【氏名】ホルムバーグ,ポール
(57)【要約】
雑音を抑制して音声を強調するためのシステム及び関連する方法が開示される。システムは、元の雑音ある波形に対応するバンド分けされたエネルギーを取得し、各フレームにおける各バンドに存在する音声の量を示す音声値を生成するニューラルネットワークモデルをトレーニングする。ニューラルモデルは、いくらかのルックアヘッドを実施する特徴抽出ブロックを有する。特徴抽出ブロックの後に、収縮パスを形成する周波数ドメインに沿った定常ダウンサンプリングを有するエンコーダが続く。エンコーダの後に、膨張パスを形成する周波数ドメインに沿った定常アップサンプリングを有した対応するデコーダが続く。デコーダは、対応するレベルでエンコーダからスケーリングされた出力特徴マップを受信する。デコーダの後に分類ブロックが続き、分類ブロックは、複数のフレームの各フレームにおける複数の周波数バンドの各周波数バンドについて、存在する音声の量を示す音声値を生成する。
【特許請求の範囲】
【請求項1】
雑音を抑制して音声を強調するコンピュータ実装された方法であって、
プロセッサにより、時間次元に沿った複数のフレームにて、周波数次元に沿った複数の周波数バンドをカバーする入力オーディオデータを受信するステップと、
前記プロセッサにより、前記入力オーディオデータを使用してニューラルネットワークモデルをトレーニングするステップであり、前記ニューラルネットワークモデルは、
前記入力オーディオデータから特徴を抽出する際に特定数のフレームのルックアヘッドを実施する特徴抽出ブロックと、
前記周波数次元に沿って前記入力オーディオデータ内の次第に大きくなる受容野に対応する第1の特徴マップを生成する第1の一連のブロックを含むエンコーダと、
前記エンコーダによって生成された出力特徴マップを入力特徴マップとして受信し、第2の特徴マップを生成する第2の一連のブロックを含むデコーダと、
前記第2の特徴マップを受信し、前記複数のフレームの各フレームにおける前記複数の周波数バンドの各周波数バンドについて、存在する音声の量を示す音声値を生成する分類ブロックと、
を含む、ステップと、
1つ以上のフレームを有する新たなオーディオデータを受信するステップと、
前記新たなオーディオデータに対して前記ニューラルネットワークモデルを実行して、前記1つ以上のフレームの各フレームにおける前記複数の周波数バンドの各周波数バンドについて、新たな音声値を生成するステップと、
前記新たな音声値に基づいて、前記新たなオーディオデータにおける雑音を抑制する新たな出力データを生成するステップと、
前記新たな出力データを送信するステップと、
を有するコンピュータ実装された方法。
【請求項2】
入力波形を受信するステップと、
前記入力波形を、前記時間次元に沿った前記1つ以上のフレームにて前記周波数次元に沿った複数の周波数ビンをカバーする生オーディオデータに変換するステップと、
前記複数の周波数ビンを前記複数の周波数バンドにグループ化することによって、前記生オーディオデータを前記新たなオーディオデータに変換するステップと、
前記新たな音声値に対して逆バンディングを実行して、前記1つ以上のフレームの各フレームにおける前記複数の周波数ビンの各周波数ビンについて、更新された音声値を生成するステップと、
前記更新された音声値を前記生オーディオデータに適用して前記新たな出力データを生成するステップと、
前記新たな出力データを、強調された波形に変換するステップと、
を更に有する請求項1に記載のコンピュータ実装された方法。
【請求項3】
前記複数の周波数バンドは、知覚的に刺激されるバンドであり、より高い周波数で、より多くの周波数ビンをカバーする、請求項1又は2に記載のコンピュータ実装された方法。
【請求項4】
前記特徴抽出ブロックは、前記時間次元に沿って特定のサイズを持つ畳み込みカーネルを有し、
前記特定のサイズは、前記エンコーダ又は前記デコーダにおけるいずれの畳み込みカーネルの前記時間次元に沿ったサイズよりも大きい、請求項1乃至3のいずれか一項に記載のコンピュータ実装された方法。
【請求項5】
前記特徴抽出ブロックは、バッチ正規化層と、それに続く2次元畳み込みカーネルを有する畳み込み層とを有する、請求項1乃至4のいずれか一項に記載のコンピュータ実装された方法。
【請求項6】
前記特徴抽出ブロック、前記第1の一連のブロック、及び前記第2の一連のブロックの各々が、共通の数の特徴マップを生成する、請求項1乃至5のいずれか一項に記載のコンピュータ実装された方法。
【請求項7】
前記第1の一連のブロックの各ブロックが、特徴計算ブロック及び周波数ダウンサンプラを有し、
前記特徴計算ブロックは一連の畳み込み層を有する、
請求項1乃至6のいずれか一項に記載のコンピュータ実装された方法。
【請求項8】
前記一連の畳み込み層のうちのある畳み込み層の出力データが、前記一連の畳み込み層のうちの後続の全ての畳み込み層に供給され、
前記一連の畳み込み層は、前記時間次元に沿って次第に大きくなるダイレーションを実装する、
請求項7に記載のコンピュータ実装された方法。
【請求項9】
前記一連の畳み込み層の各々が、ゲーティング機構を有する深さ方向に分離可能な畳み込みブロックを有する、請求項7又は8に記載のコンピュータ実装された方法。
【請求項10】
前記一連の畳み込み層の各々が、最初の1×1の2次元畳み込みカーネルを有する最初の畳み込みブロックと、最後の1×1の2次元畳み込みカーネルを有する最後の畳み込みブロックと、を含む一連の畳み込みブロックを有した残差ブロックを有する、請求項7に記載のコンピュータ実装された方法。
【請求項11】
前記第1の一連のブロックのうちのあるブロック内の特徴計算ブロックの出力データが、学習可能な重みによってスケーリングされて、スケーリングされた出力データを形成し、
前記スケーリングされた出力データが、スキップ接続を介して前記デコーダ内の前記第2の一連のブロックのうちのあるブロックに通信される、
請求項7乃至10のいずれか一項に記載のコンピュータ実装された方法。
【請求項12】
前記第1の一連のブロック内のあるブロックの周波数ダウンサンプラが、前記周波数次元に沿って1より大きいストライドサイズを持つ畳み込みカーネルを有する、請求項7乃至11のいずれか一項に記載のコンピュータ実装された方法。
【請求項13】
前記第2の一連のブロックの各ブロックが、特徴計算ブロック及び周波数アップサンプラを有する、請求項7乃至12のいずれか一項に記載のコンピュータ実装された方法。
【請求項14】
前記第2の一連のブロックのうちのあるブロック内の特徴計算ブロックが、前記第1の一連のブロックのうちのあるブロック内の特徴計算ブロックからの第1の出力データと、前記第2の一連のブロック内の先行ブロックの周波数アップサンプラからの第2の出力データとを受信し、
前記第1の出力データと前記第2の出力データとが連結されて又は足し合わされて、前記第2の一連のブロックのうちの前記ブロック内の前記特徴計算ブロックのための特定の入力データを形成する、
請求項13に記載のコンピュータ実装された方法。
【請求項15】
前記分類ブロックは、1×1の2次元畳み込みカーネル及び非線形活性化関数を有する、請求項1乃至14のいずれか一項に記載のコンピュータ実装された方法。
【請求項16】
前記トレーニングは、各フレームにおける前記複数の周波数バンドの各周波数バンドについて、予測音声値とグラウンドトゥルース音声値との間の損失の関数を用いて実行され、前記予測音声値が音声の過剰抑制に対応する場合には、前記損失の関数における重みを大きくし、前記予測音声値が音声の過少抑制に対応する場合には、前記損失の関数における重みを小さくする、請求項1乃至15のいずれか一項に記載のコンピュータ実装された方法。
【請求項17】
前記分類ブロックは更に、フレームにおける前記複数の周波数バンドのうちのある周波数バンドにわたる音声量の分布を生成し、前記音声値は前記分布の平均である、請求項1乃至16のいずれか一項に記載のコンピュータ実装された方法。
【請求項18】
前記入力オーディオデータは、異なる速さ又は感情の音声に対応するデータ、異なるレベルの雑音を含むデータ、又は異なる周波数ビンに対応するデータを有する、請求項1乃至17のいずれか一項に記載のコンピュータ実装された方法。
【請求項19】
前記ニューラルネットワークモデルは更に、前記エンコーダの出力データ及び前記デコーダの入力データである特徴計算ブロックを有する、請求項1乃至18のいずれか一項に記載のコンピュータ実装された方法。
【請求項20】
メモリ、及び
前記メモリと結合された1つ以上のプロセッサであり、
時間次元に沿った複数のフレームにて、周波数次元に沿った複数の周波数バンドをカバーする入力オーディオデータを受信し、
前記入力オーディオデータを使用してニューラルネットワークモデルをトレーニングし、前記ニューラルネットワークモデルは、
前記入力オーディオデータから特徴を抽出する際に特定数のフレームのルックアヘッドを実施する特徴抽出ブロックと、
前記周波数次元に沿って前記入力オーディオデータ内の次第に大きくなる受容野に対応する第1の特徴マップを生成する第1の一連のブロックを含むエンコーダと、
前記エンコーダによって生成された出力特徴マップを入力特徴マップとして受信し、第2の特徴マップを生成する第2の一連のブロックを含むデコーダと、
前記第2の特徴マップを受信し、前記複数のフレームの各フレームにおける前記複数の周波数バンドの各周波数バンドについて、存在する音声の量を示す音声値を生成する分類ブロックと、を含み、
前記ニューラルネットワークモデルを格納する、
ことを実行するように構成された1つ以上のプロセッサ、
を有するコンピュータシステム。
【請求項21】
雑音を抑制して音声を強調するコンピュータ実装された方法であって、
プロセッサにより、1つ以上のフレームを有する新たなオーディオデータを受信するステップと、
前記プロセッサにより、前記新たなオーディオデータに対してニューラルネットワークモデルを実行して、前記1つ以上のフレームの各フレームにおける複数の周波数バンドの各周波数バンドについての新たな音声値を生成するステップであり、前記ニューラルネットワークモデルは、
入力オーディオデータから特徴を抽出する際に特定数のフレームのルックアヘッドを実施する特徴抽出ブロック、
周波数次元に沿って前記入力オーディオデータ内の次第に大きくなる受容野に対応する第1の特徴マップを生成する第1の一連のブロックを含むエンコーダ、
前記エンコーダとデコーダとを接続する計算ブロック、
前記エンコーダによって生成された出力特徴マップを入力特徴マップとして受信し、第2の特徴マップを生成する第2の一連のブロックを含む前記デコーダ、及び
前記第2の特徴マップを受信し、複数のフレームの各フレームにおける前記複数の周波数バンドの各周波数バンドについて、存在する音声の量を示す音声値を生成する分類ブロック、
のためのコンピュータ実行可能命令を有し、
前記ニューラルネットワークモデルが、時間次元に沿った前記複数のフレームにおける周波数次元に沿った前記複数の周波数バンドをカバーする前記入力オーディオデータでトレーニングされる、ステップと、
前記新たな音声値に基づいて、前記新たなオーディオデータにおける雑音を抑制する新たな出力データを生成するステップと、
前記新たな出力データを送信するステップと、
を有するコンピュータ実装された方法。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2020年11月18日に出願された米国仮出願第63/115,213号、2021年7月14日に出願された米国仮出願第63/221,629号、及び2020年10月29日に出願された国際特許出願第PCT/CN2020/124635号に対する優先権を主張するものであり、これらの全てをそれらの全体にてここに援用する。
【0002】
本出願は、音声からの雑音低減に関する。より具体的には、以下に説明される実施形態例は、深層学習モデルを適用して、大規模音声コンテキストからフレームベースの推論を生成することに関する。
【背景技術】
【0003】
このセクションに記載されたアプローチは、先に進められ得るアプローチであり、必ずしもこれまでに考案又は追求されたアプローチではない。従って、別段の断りがない限り、このセクションに記載されたアプローチのいずれも、それらがこのセクションに含まれていることのみを理由にして従来技術をなすと想定されるべきでない。
【0004】
音声と雑音の混合信号から雑音を正確に除去することは、様々な形態の音声及び様々な種類の雑音があり得ることを考えると一般に困難である。リアルタイムで雑音を抑制することは特に難題であり得る。
【発明の概要】
【0005】
雑音を抑制して音声を強調するためのシステム及び関連する方法が開示される。当該方法は、プロセッサにより、時間次元に沿った複数のフレームにて、周波数次元に沿った複数の周波数バンドをカバーする入力オーディオデータを受信するステップと、前記プロセッサにより、ニューラルネットワークモデルをトレーニングするステップであり、前記ニューラルネットワークモデルは、前記入力オーディオデータから特徴を抽出する際に特定数のフレームのルックアヘッドを実施する特徴抽出ブロックと、前記周波数次元に沿って前記入力オーディオデータ内の次第に大きくなる受容野に対応する第1の特徴マップを生成する第1の一連のブロックを含むエンコーダと、前記エンコーダによって生成された出力特徴マップを入力特徴マップとして受信し、第2の特徴マップを生成する第2の一連のブロックを含むデコーダと、前記第2の特徴マップを受信し、前記複数のフレームの各フレームにおける前記複数の周波数バンドの各周波数バンドについて、存在する音声の量を示す音声値を生成する分類ブロックと、を含む、ステップと、1つ以上のフレームを有する新たなオーディオデータを受信するステップと、前記新たなオーディオデータに対して前記ニューラルネットワークモデルを実行して、前記1つ以上のフレームの各フレームにおける前記複数の周波数バンドの各周波数バンドについて、新たな音声値を生成するステップと、前記新たな音声値に基づいて、前記新たなオーディオデータにおける雑音を抑制する新たな出力データを生成するステップと、前記新たな出力データを送信するステップと、を有する。
【図面の簡単な説明】
【0006】
以下の図を含み、同様の要素は似通った参照符号で指す添付の図面の図において、限定によってではなく例として、本発明の実施形態例が示される。
【
図1】様々な実施形態が実施され得るネットワーク化されたコンピュータシステムの一例を示している。
【
図2】開示される実施形態に従ったオーディオ管理サーバコンピュータのコンポーネント例を示している。
【
図3】雑音低減のためのニューラルネットワークモデルの一例を示している。
【
図4B】特徴抽出ブロックの他の一例を示している。
【
図5】
図3に示したニューラルモデルのコンポーネントとしてのニューラルネットワークモデルの一例を示している。
【
図6】
図5に示したニューラルネットワークモデルのコンポーネントとしてのニューラルネットワークモデルの一例を示している。
【
図7】
図3に示したニューラルモデルのコンポーネントとしてのニューラルネットワークモデルの一例を示している。
【
図8】ここで説明される一部の実施形態に従ったオーディオ管理サーバコンピュータで実行されるプロセスの一例を示している。
【
図9】本発明の一実施形態が実装され得るコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0007】
以下の説明では、説明の目的で、本発明の実施形態例の完全なる理解を提供するために数多くの具体的詳細が説明される。しかし、明らかなことには、実施形態例はそれらの具体的詳細を用いずに実施されてもよい。また、実施形態例をいたずらに不明瞭にしないために、周知の構造や装置はブロック図の形態で示す。
【0008】
実施形態を、以下の概要に従って下のセクションで説明する:
1. 全体概説
2. コンピューティング環境例
3. コンピュータコンポーネント例
4. 機能説明
4.1. ニューラルネットワークモデル
4.1.1. 特徴抽出ブロック
4.1.2. U-NETブロック
4.1.2.1. 密ブロック
4.1.2.1.1. ゲーティングを用いた深さ方向に分離可能な畳み込み
4.1.2.2. 残差ブロック及びリカレント層
4.2. モデルトレーニング
4.3. モデル実行
5. プロセス例
6. ハードウェア実装
**
【0009】
1. 全体概説
雑音を抑制して音声を強調するためのシステム及び関連する方法が開示される。一部の実施形態において、当該システムは、元の雑音ある波形に対応するバンド分け(バンディング)されたエネルギーを取得し、各フレームにおける各バンドに存在する音声の量を示す音声値を生成するニューラルネットワークモデルをトレーニングする。これらの音声値を用いて、音声が存在しそうにない周波数バンドにおける周波数の大きさを減らすことによって雑音を抑制することができる。このニューラルネットワークモデルは、低レイテンシを有し、リアルタイム雑音抑制のために使用されることができる。ニューラルモデルは、いくらかのルックアヘッド(先読み)を実施する特徴抽出ブロックを有する。特徴抽出ブロックの後に、収縮パスを形成する周波数ドメインに沿った定常ダウンサンプリングを有するエンコーダが続く。収縮パスに沿った畳み込みが、時間次元に沿って次第に大きくなるダイレーション係数で実行される。エンコーダの後に、膨張パスを形成する周波数ドメインに沿った定常アップサンプリングを有した対応するデコーダが続く。デコーダは、対応するレベルでエンコーダからスケーリングされた出力特徴マップを受信し、それ故に、各フレームにおける各周波数バンドにどれだけの音声が存在するかを決定する際に、周波数次元に沿って異なる受容野から抽出された特徴を全て考慮することができる。
【0010】
一部の実施形態において、実行時に、当該システムは、雑音ある波形を取得し、それを、各フレームにおいて複数の知覚的に刺激する(motivating)周波数バンドをカバーする周波数ドメインに変換する。当該システムは、次いで、モデルを実行して、各フレームにおける各周波数バンドについての音声値を得る。その後、当該システムは、音声値を周波数ドメインの元データに適用し、それを、強調された雑音抑制波形に変換し戻す。
【0011】
当該システムは様々な技術的利益を持つ。当該システムは、リアルタイム雑音抑制のために低レイテンシでありながら正確であるように設計される。低レイテンシは、リーンな畳み込みニューラルネットワーク(CNN)モデルにおける例えば1×1又は3×3のサイズの8つの2次元カーネルなどの比較的少数の比較的小さい畳み込みカーネルによって達成される。当初の周波数ドメインデータの知覚的に刺激するバンドへの整理統合は計算の量を更に減少させる。実行時間を短縮する傾向がある深さ方向に分離可能な畳み込みも、可能な場合に適用される。
【0012】
正確さは、密な分類を達成するために組み合わせて使用されるものである、周波数次元に沿った入力データ内の異なる受容野に対する特徴抽出によって達成される。例えば1つ又は2つのフレームなどの少数のフレームのルックアヘッドを組み込む特定の特徴抽出ブロックが、特徴の豊富さに更に寄与する。畳み込み層の出力特徴マップが後続の全ての畳み込み層に伝播される密(dense)ブロックも、可能な場合に適用される。さらに、当該ニューラルモデルは、各フレームにおける各周波数バンドについて存在する音声の量だけでなく、そのような量の分布も予測するようにトレーニングされることができる。分布の追加パラメータを用いて予測を微調整することができる。
【0013】
2. コンピューティング環境例
図1は、様々な実施形態が実施され得るネットワーク化されたコンピュータシステムの一例を示している。
図1は、明瞭な例を示す目的で単純化された概略的な形態で示されており、他の実施形態は、より多くの、より少ない、又は異なる要素を含み得る。
【0014】
一部の実施形態において、ネットワーク化されたコンピュータシステムは、オーディオ管理サーバコンピュータ102(“サーバ”)、1つ以上のセンサ104又は入力デバイス、及び1つ以上の出力デバイス110を有し、これらは、直接的な物理接続を通して、又は1つ以上のネットワーク118を介して通信可能に結合される。
【0015】
一部の実施形態において、サーバ102は、1つ以上のコンピュータ、仮想コンピューティングインスタンス、及び/又は、雑音低減による低レイテンシ音声強調に関係する機能をホスト又は実行するように構成されたデータ構造及び/又はデータベースレコードでプログラム又は構成されたアプリケーションのインスタンスを広く表す。サーバ102は、サーバファーム、クラウドコンピューティングプラットフォーム、並列コンピュータ、又は上述の機能のためのデータ処理、データストレージ、及びネットワーク通信において十分なコンピューティング能力を有する任意の他のコンピューティング設備を有することができる。
【0016】
一部の実施形態において、1つ以上のセンサ104の各々は、音を電気信号に変換するマイクロフォン又は他のデジタル録音デバイスを含むことができる。各センサは、検出したオーディオデータをサーバ102に送信するように構成される。各センサは、プロセッサを含んでいてもよく、あるいは、例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、又はウェアラブル装置などの典型的なクライアント装置に統合されてもよい。
【0017】
一部の実施形態において、1つ以上の出力デバイス110の各々は、電気信号を音に変換し戻すスピーカ又は他のデジタル再生デバイスを含むことができる。各出力デバイスは、サーバ102から受信したオーディオデータを再生するようにプログラムされる。センサと同様に、出力デバイスは、プロセッサを含んでいてもよく、あるいは、例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、又はウェアラブル装置などの典型的なクライアント装置に統合されてもよい。
【0018】
1つ以上のネットワーク118は、
図1の様々な要素間でのデータの交換を提供する任意の媒体又は機構によって実装され得る。ネットワーク118の例は、限定されないが、セルラーアンテナを介してコンピューティング装置へのデータ接続と通信可能に結合されたセルラーネットワーク、近距離通信(NFC)ネットワーク、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、地上波リンク又は衛星リンクなどのうちの1つ以上を含む。
【0019】
一部の実施形態において、サーバ102は、1つ以上のセンサ104から所与の環境内の音に対応する入力オーディオデータを受信するようにプログラムされる。サーバ102は、次に、典型的に音声と雑音の混ぜ合わせに相当するものである入力音声データを処理して、入力データの各フレームにどれだけの音声が存在するかを推定するようにプログラムされる。サーバ102はまた、該推定に基づいて入力オーディオデータを更新して、入力オーディオデータよりも少ない雑音を含むと期待されるクリーンアップされた出力オーディオデータを生成するようにプログラムされる。さらに、サーバ102は、出力オーディオデータを1つ以上の出力デバイスに送るようにプログラムされる。
【0020】
3. コンピュータコンポーネント例
図2は、開示される実施形態に従ったオーディオ管理サーバコンピュータのコンポーネント例を示している。この図は単に例示目的のものであり、サーバ102は、より少ない又はより多くの機能コンポーネント又はストレージコンポーネントを有することができる。機能コンポーネントの各々は、ソフトウェアコンポーネント、汎用若しくは専用のハードウェアコンポーネント、ファームウェアコンポーネント、又はこれらの任意の組み合わせとして実装されることができる。機能コンポーネントの各々はまた、1つ以上のストレージコンポーネント(図示せず)と結合されることができる。ストレージコンポーネントは、リレーショナルデータベース、オブジェクトデータベース、フラットファイルシステム、又はJSONストアのうちのいずれかを用いて実装されることができる。ストレージコンポーネントは、プログラムコール、リモートプロシージャコール(RPC)ファシリティ、又はメッセージングバスを用いて、ローカルに又はネットワークを介して機能コンポーネントに接続されることができる。コンポーネントは自己完結型であってもよいし、なくてもよい。実装特有又は他の考慮事項に応じて、コンポーネントは機能的又は物理的に集中化又は分散され得る。
【0021】
一部の実施形態において、サーバ102は、スペクトル変換・バンディングブロック204と、モデルブロック208と、逆バンディングブロック212と、入力スペクトル乗算ブロック218と、逆スペクトル変換ブロック222とを有する。
【0022】
一部の実施形態において、サーバ102は、雑音ある波形を受信する。ブロック204にて、サーバ102は、スペクトル変換を通じて波形をフレームのシーケンス、例えば、重なりのある又はない20msフレームを持つ6秒の長さのシーケンス(300個のフレームをもたらす)、にセグメント化する。スペクトル変換は、例えば短時間フーリエ変換又は複素直交ミラーフィルタバンク(Complex Quadrature Mirror Filterbank;CQMF)変換などの多様な変換のうちのいずれかとすることができ、これらのうちの後者は、エイリアシングアーチファクトを最小限にする傾向がある。比較的高い周波数分解能を確保するために、20msフレーム当たりの変換カーネル/フィルタの数は、周波数ビン幅が約25Hzであるように選択されることができる。
【0023】
一部の実施形態において、サーバ102は、次いで、フレームのシーケンスを、例えば56個の知覚的に刺激されるバンドについて、バンディングされたエネルギーのベクトルに変換する。知覚的に刺激されるバンドは各々、典型的に、人間の耳が音声を処理する方法に一致する例えば120Hzから2,000Hzなどの周波数ドメイン内に位置し、それ故に、これらの知覚的に刺激されるバンド内のデータをキャプチャすることは、人間の耳にとって音声品質を失わないことを意味する。より具体的には、スペクトル変換の出力周波数ビンの大きさを二乗したものが、知覚的に刺激されるバンドにグループ化され、バンド当たりの周波数ビンの数は、より高い周波数で増加する。グループ化戦略は、一部のスペクトルエネルギーが隣接バンドを横切って漏れる“ソフト”であってもよいし、バンドを横切る漏れがない“ハード”であってもよい。
【0024】
一部の実施形態において、pがビンの数を表すとして、雑音あるフレームのビンエネルギーが、サイズp×1の列ベクトルであるxによって表現されるとき、バンディングされたエネルギーのベクトルへの変換は、y=W*xを計算することによって実行されることができ、ここで、yは、この雑音あるフレームのバンドエネルギーを表すサイズq×1の列ベクトルであり、Wは、サイズq×pのバンディング行列であり、qは、知覚的に刺激されるバンドの数を表す。
【0025】
一部の実施形態において、ブロック208にて、サーバ102は、各フレームにおける各バンドについて、存在する音声の量を示すマスク値を予測する。ブロック212にて、サーバ102は、バンドマスク値をスペクトルビンマスクに変換し戻す。
【0026】
一部の実施形態において、yについてのバンドマスクがサイズq×1の列ベクトルm_bandによって表現されるとき、ビンマスクへの変換は、m_bin=W_transpose*m_bandを計算することによって実行されることができ、ここで、m_binはサイズp×1の列ベクトルであり、p×qのサイズのW_transposeはWの転置行列である。ブロック218にて、サーバ102は、スペクトルビンマスクにスペクトル強度を乗算して、雑音のマスキング又は低減を達成し、推定されたクリーンスペクトルを得る。最後に、ブロック222にて、サーバは、推定されたクリーンスペクトルを、例えば逆変換(例えば逆CQMFなど)などの当業者に知られた任意の方法を用いて、(雑音波形に対して)強調された波形としての波形に変換し戻し、それが出力デバイスを介して通信され得る。
【0027】
4. 機能説明
4.1. ニューラルネットワークモデル
図3は、ブロック208の一実施形態を表すものである、雑音低減のためのニューラルネットワークモデル300の一例を示している。一部の実施形態において、モデル300は、特徴抽出用のブロック308と、例えば2015年5月18日付けarXiv:1505.04597v1[cs.CV]に記載されたものなどのU-Net構造に基づくブロック340とを有するが、ここで説明されるように幾つかの変形例を有する。U-Net構造は、特徴認識及び分類の正確な位置特定を可能にすることが示されている。
【0028】
4.1.1. 特徴抽出ブロック
一部の実施形態において、
図3のブロック308にて、サーバ102は、生(raw)バンドエネルギーから、雑音抑制タスクに最適化されたハイレベル特徴を抽出する。
図4Aは、ブロック308の一実施形態を表すものである特徴抽出ブロックの一例を示している。
図4Bは、特徴抽出ブロックの他の一例を示している。
図4Aの構成400Aに示すように、例えば、サーバ102は、当業者に知られた学習可能なバッチ正規化(batch normalization;BATCHNORM)層408によって、T個のフレームのシーケンス中のバンドエネルギー(例えば、それらのうちの56個)の平均及び分散を正規化することができる。あるいは、グローバル正規化を、当業者に知られた技術を用いてトレーニングセットから事前計算することもできる。
【0029】
一部の実施形態において、サーバ102は、上述のハイレベル特徴を抽出する際に将来の情報を考慮に入れることができる。
図4Aの400Aに示すように、例えば、そのようなルックアヘッドは、1つ以上のカーネルを有する2次元(2D)の1チャネル畳み込み層(conv2d)層406を用いて実装されることができる。各時間を評価するためのnバンドの数に対応するconv2d層406内のカーネルの高さは、例えば3などの小さい値に設定され得る。時間軸に沿ったカーネルサイズは、どれだけ多くのルックアヘッドが所望又は許容されるかに依存する。例えば、ルックアヘッドなしで、カーネルは、現在フレームと、例えば2個のフレームなどの過去のL個のフレームとをカバーすることができ、L個の将来フレームが許されるとき、カーネルサイズは、現在フレームを中心とする2L+1とすることができ、例えば、406においてLを2とした422など、各時間の入力データ内の2L+1個のフレームと一致させることができる。
図4Bの400Bに示すように、ルックアヘッドはまた、一連のconv2d層410、412、又はそれ以上を用いて実装されることもできる。その場合、各カーネルは時間軸に沿って小さいカーネルサイズを持つ。例えば、Lは、410、412、及び全ての他の同様の層に対して1に設定され得る。結果として、層410は、例えば、Lが1であって3つのカーネル428につながる422など、2L+1ルックアヘッドで元の入力データとマッチングされることができ、層412は、層412の出力とマッチングされ得る。サーバは、
図4Bに示される一連のconv2d層を用いて、入力データ内の受容野を徐々に増加させることができる。
【0030】
一部の実施形態において、各conv2d層におけるカーネルの数は、入力オーディオストリームの性質、所望されるハイレベル特徴の量、コンピューティングリソース要求の範囲、又は他のファクタに基づいて決定されることができる。例えば、その数は、8、16、又は32とし得る。加えて、ブロック308内のconv2d層の各々の後に、例えばパラメトリック整流化線形ユニット(parametric rectified linear unit;PReLU)などの非線形活性化関数が続くことができ、そしてその後に、ブロック308の出力を微調整するための別個のバッチ正規化層が続くことができる。
【0031】
一部の実施形態において、ブロック308は、例えば、C. KimとR. M. Sternの“Power-Normalized Cepstral Coefficients (PNCC) for Robust Speech Recognition”,IEEE/ACM Transactions on Audio, Speech, and Language Processing, vol. 24, no. 7, pp. 1315-1329, July 2016, doi: 10.1109/TASLP.2016.2545928に記載されたものなど、人工ニューラルネットワークに関連しない他の信号処理技術を用いて実装されてもよい。
【0032】
4.1.2. U-NETブロック
一部の実施形態において、
図3のブロック340にて、サーバ102は、(より多くの、より良好な特徴を見つけるために)特徴データの符号化を実行し、その後、どれだけ多くの音声が存在するかを決定するための分類を最終的に行う前に、復号することによって、強調されたオーディオデータを再構成する。従って、ブロック340は、ブロック350によって接続された、左側のエンコーダサイドと、右側のデコーダとを有する。エンコーダは、310、312、及び314などの1つ以上の特徴計算ブロックを有し、それら各々の後に、316、318、及び320などの周波数ダウンサンプラ(DS)が続いて、収縮パスを形成する。密ブロック(dense block;DB)は、以下で更に説明するように、そのような特徴計算ブロックの一実装である。例えば(8,T,64)などの図に示された3個組の各々は、特徴計算ブロックの入力又は出力データのサイズを含み、1つめの成分はチャネル又は特徴マップの数を表し、2つめの成分は時間次元に沿ったフレームの固定数を表し、3つめの成分は周波数次元に沿ったサイズを表す。これらの特徴計算ブロックは、以下で更に説明するように、より大きい周波数コンテキストにおいてよりハイレベルの特徴をキャプチャする。ブロック350は、元々利用可能な全ての知覚的に刺激されるバンドをカバーするモデリングを実行するための特徴計算ブロックを有する。デコーダも、320、322、及び324などの1つ以上の特徴計算ブロックを有し、それらの各々の後に、326、328、及び330などの周波数アップサンプラ(US)が続いて、膨張パスを形成する。収縮パスにおいて生成された特徴マップを当てにするものである膨張パス内のこれらの特徴計算ブロックが組み合わさって、つまりはマスク値である密分類を得るべく、高解像度空間上に、複数の異なるレベルの、つまりは、各フレームにおけるバンドごとのレベルの識別的特徴を投影する。この組み合わせにより、膨張パス内の各特徴計算ブロックの入力チャネル(又は特徴マップ)の数は、収縮パス内の各特徴計算ブロックでの数の2倍になることができる。しかしながら、各計算ブロックにおけるカーネル数の選択は出力チャネルの数を決定し得るものであり、それが、膨張パス内の次の特徴計算ブロックに対する入力チャネルの数になる。
【0033】
サーバ102は、1×1の2Dカーネルと、それに続くシグモイド非線形活性化関数(SIGMOID)とを有したブロック360などの分類ブロックを介して、フレームにおける各バンドについての最終マスク値を生成する。
【0034】
一部の実施形態において、各周波数ダウンサンプラにおいて、サーバ102は、正規畳み込み又は深さ方向畳み込みを介して、カーネルと周波数軸に沿って2のストライドサイズとを持つconv2dレイヤによって、2つの隣接するバンドエネルギーごとに併合する。代わりに、conv2d層は、最大値プーリング(max-pooling)層で置き換えられてもよい。いずれの場合にも、出力特徴マップの幅は、各周波数ダウンサンプラ後に半分になり、それにより、入力データ内の受容野が着実に拡大される。出力特徴マップの幅におけるそのような連続的な指数関数的低減を可能にするために、サーバ102は、ブロック308の出力を2の累乗である幅までパディングし、そしてそれがブロック340への入力データになる。このパディングは、例えば、ブロック308の出力特徴マップの両方にゼロを追加することによって行われ得る。
【0035】
一部の実施形態において、各周波数アップサンプラにおいて、サーバ102は、元々の数のバンドエネルギーを復元するために、エンコーダ内の同じレベルのconv2d層に対応する転置conv2d層を使用する。ブロック340の深さ、すなわち、特徴計算ブロックと周波数ダウンサンプラとのコンビネーションの数(及び等価的に、特徴計算ブロックと周波数アップサンプラとのコンビネーションの数)は、所望の最大受容野、計算リソースの量、又は他のファクタに依存し得る。
【0036】
一部の実施形態において、サーバ102は、上述のように密分類のために最終的に複数の異なるレベルでの入力データの識別的特徴をデコーダが受信するための通り道として、例えば342、344、及び346などのスキップ接続を用いて、エンコーダ内の特徴計算ブロックの出力を同じレベルにあるデコーダ内の特徴計算ブロックの入力と連結する。例えば、ブロック310によって生成された特徴マップが、スキップ接続346を介して、周波数アップサンプラ330からブロック324に供給される特徴マップと共に入力データとして用いられる。結果として、デコーダ内の各特徴計算ブロックの入力データのチャネル数が、エンコーダ内の各密ブロックの入力データのチャネル数の2倍になる。
【0037】
一部の実施形態において、単純な連結の代わりに、サーバ102は、
図3に示すように、例えばα
1、α
2、及びα
3など、各スキップ接続についてのスケーラ乗数を学習する。各α
iは、N個(例えば、8個)の学習可能パラメータを含み、これらは、トレーニングの開始時に1に初期化され得る。学習可能パラメータの各々が、エンコーダ内の対応する特徴計算ブロックによって生成された特徴マップに乗算するのに使用されて、スケーリングされた特徴マップを生成し、そしてそれが、デコーダ内の対応する特徴計算ブロックに供給される特徴マップと連結される。
【0038】
一部の実施形態において、サーバ102は、連結を加算に置き換えることができる。例えば、ブロック310によって生成された8個の特徴マップを、それぞれ、密ブロック324に供給される8個の特徴マップに足し合わせることができ、それら8個の加算の各々が成分ベースで実行される。連結に代わるこのような加算は、デコーダ内の各特徴計算ブロックへの入力データとして使用される特徴マップの数を減らし、ある一定の性能劣化を犠牲にして全体的に計算を減少させる。
【0039】
4.1.2.1. 密ブロック
図5は、
図3のブロック310及びブロック340内の他の全ての同様のブロックの一実施形態に対応するものであるニューラルネットワークモデルの一例を示している。該ニューラルネットワークモデルは、例えば2018年1月28日付けarXiv:1608.06993v5[cs.CV]に記載されているものなどのDenseNet構造に基づくが、ここで説明されるように幾つかの変形例を有する。DenseNet構造は、勾配消失問題を軽減し、特徴伝播を強化し、特徴再利用を促し、且つパラメータの数を減少させることが示されている。
【0040】
一部の実施形態において、サーバ102は、ブロック500を特徴計算ブロックとして使用して、特徴伝播及び密分類を更に強化する。ブロック500は、特徴マップ入力データの数と同じN(例えば、8)チャネルの特徴マップを出力する。各チャネルはまた、入力データの特徴マップと同じ時間-周波数形状を持つ。ブロック500は、例えば520及び530などの一連の畳み込み層を有する。各畳み込み層への入力データは、先行する畳み込み層の全ての出力データの連結を含み、それによって密接続を形成する。例えば、層530への入力データは、最初の入力データ又は前の畳み込み層からの出力データであるとし得るものであるデータ512と、層520からの入力データであるデータ522とを含む。
【0041】
一部の実施形態において、各畳み込み層は、密接続に起因してK個の特徴マップを有する入力データをより少数の特徴マップへと整理統合するために、例えば層504などの、1つ以上の1×1の2Dカーネルを持つボトルネック層を有する。例えば、各1×1の2Dカーネルを、それぞれ、各グループのK/2N個の特徴マップに適用して、K/2N個の特徴マップを1つの特徴マップへと効果的に足し合わせて、最終的に2N個の特徴マップを得ることができる。あるいは、合計2N個の1×1の2Dカーネルを全ての特徴マップに適用して2D特徴マップを生成してもよい。各1×1の2Dカーネルの後に、例えばPReLUなどの非線形活性化関数、及び/又はバッチ正規化層が続き得る。
【0042】
一部の実施形態において、各畳み込み層は、例えば3×3のconvd2d層を持つブロック506など、N個のカーネルを有する小さいconv2d層と、それに続くボトルネック層とを有して、N個の特徴マップを生成する。ブロック500の連続する畳み込み層におけるこれら小さいconv2d層は、ますます大きいコンテキスト情報をモデル化するために、時間軸に沿って指数関数的に増加するダイレーションを使用する。例えば、ブロック506で使用されるダイレーション係数は、各カーネルにおいてダイレーションなしを意味する1であり、ブロック508で使用されるダイレーション係数は2であり、これは、カーネルが時間軸において2倍に膨張され、受容野も各次元においてサイズが2倍に増加することを意味する。
【0043】
一部の実施形態において、ブロック500の畳み込み層同士の間で、サーバ102は、例えば2019年4月25日付けarXiv:1904.11148v1[cs.SD]に記載されているものなど、よりいっそう統合された出力のためにバンドエネルギーを周波数マッピング層内の学習済み空間に線形に投影する。オーディオデータがどの周波数バンド内に位置するかに応じて、同じカーネルが同じオーディオデータに対して異なる効果を生成することがあるので、異なるバンドにわたるそのような効果の何らかの統合が有用となる。例えば、ブロック500の深さの中間に周波数マッピング層580が置かれる。
【0044】
一部の実施形態において、ブロック500の終わりで、もう1つ1×1の2Dカーネルを持つボトルネック層と同様の層590を用いて、N個の特徴マップを有する出力テンソルを生成することができる。
【0045】
4.1.2.1.1. ゲーティングを用いた深さ方向に分離可能な畳み込み
図6は、
図5に示したブロック506及び他の全ての同様のブロックの一実施形態に対応するものであるニューラルネットワークモデルの一例を示している。一部の実施形態において、ブロック600は、例えばゲート付き線形ユニット(gated linear unit;GLU)などの非線形活性化関数を用いた深さ方向に分離可能な畳み込みを有する。
図6に示すように、GLU内の第1の経路は、例えば3×3 conv2d層602などの深さ方向に(DEPTHWISE)小さいconv2d層を有し、その後にバッチ正規化(BATCHNORM)層604が続く。GLU内の第2の経路は同様に、3×3 conv2d層606と、それに続くバッチ正規化層608とを有し、そしてその後に、例えばシグモイド非線形活性化関数(SIGMOID)などの学習可能ゲーティング関数が続く。
図5に示した密ブロックにおいてと同様に、ブロック500の連続する畳み込み層における小さいconv2d層は、ますます大きいコンテキスト情報をモデル化するために、時間軸に沿って指数関数的に増加するダイレーションを使用する。例えば、ブロック506に対応する畳み込み層内のブロック602及び606には1のダイレーション係数が付随することができ、ブロック508の一実施形態に対応し得る次の畳み込み層内の同様のブロックには2のダイレーション係数が付随し得る。ゲーティング関数は、関心あるタスクに関して重要な、入力データの領域を特定する。これら2つの経路は、アダマール積演算子618によって結合される。1×1 conv2d層612は、深さ方向に分離可能な畳み込みの一部として、2つの経路のコンビネーションによって生成された出力特徴マップ間の相互接続を学習する。層612の後に、バッチ正規化層614及び例えばPReLUなどの非線形活性化関数616が続くことができる。
【0046】
4.1.2.2. 残差ブロック及びリカレント層
図7は、
図3に示したブロック310及び他の全ての同様のブロックの一実施形態に対応するものであるニューラルモデルの一例を示している。一部の実施形態において、やはりブロック310の一実施形態に対応するものである
図5に示したブロック500が、接続数の減少のために残差700ブロックによって置き換えられ得る。ブロック700は、例えば層720及び730などの複数の畳み込み層を有する。
【0047】
一部の実施形態において、各畳み込み層は、例えば層704など、
図5に示したブロック504と同様のボトルネック層を有する。該ボトルネック層はまた、例えばPReLUなどの非線形活性化、及び/又はバッチ正規化層に続かれてもよい。
【0048】
一部の実施形態において、畳み込み層はまた、例えば3×3 conv2d層706など、
図5に示したブロック506と同様の小さいconv2d層を有する。この小さいconv2dブロックは、連続する畳み込み層にわたって指数関数的に増加するダイレーション係数で、ダイレーションを用いて実行され得る。この小さいconv2d層は、
図6に示したように、ゲーティングを用いた深さ方向の分離可能な畳み込みで置き換えられることができる。
【0049】
一部の実施形態において、畳み込み層は、サイズに関して、具体的にはチャネル又は特徴マップの数に関して、ブロック706の出力をブロック704の入力に一致させ戻す、例えば層708などの別の1×1 conv2d層を有する。そして、出力が、アダマール積演算子710を介して入力データに足し合わされることで、逆伝播を用いてネットワークをトレーニングするときの勾配消失問題が抑制される。何故なら、勾配が、出力から入力側まで、それらの間に如何なる乗算もなしに直接パスを持つことになるからである。このconv1x1層も、例えばPReLUなどの非線形活性化、及び/又はバッチ正規化層に続かれ得る。
【0050】
一部の実施形態において、やはりブロック310の一実施形態に対応するものである
図5に示したブロック500が、少なくとも1つのリカレントニューラルネットワーク(RNN)を有するリカレント層によって置き換えられてもよい。長い時間シーケンスをモデル化するためにRNNを用いることは効率的なアプローチであり得る。“効率的”とは、RNNが、見た全ての履歴の要約として内部隠れ状態ベクトルを保持し、そのベクトルに基づいて新たなフレーム各々に対する出力を生成することによって、非常に長い時間シーケンスをモデル化し得ることを意味する。CNN層においてダイレーションを用いることと比較して、RNNでは過去の情報を格納するためのバッファサイズが遥かに小さい(dはダイレーション係数であるとして、CNNでの2d+1ベクトルに対して、1ベクトルのみ)。
【0051】
4.2. モデルトレーニング
一部の実施形態において、ニューラルネットワークモデル208のトレーニングは、エンド・ツー・エンドプロセスとして実行されることができる。あるいは、特徴抽出ブロック308及びU-Netブロック340を別々にトレーニングしてもよく、特徴抽出ブロック308を実際のデータに適用することの出力が、U-Netブロックのためのトレーニングデータとして使用され得る。
【0052】
図2に示したニューラルネットワークモデル208をトレーニングするために多様なトレーニングデータが使用される。一部の実施形態において、多様性は、速さ、感情、及び他の属性に関して広範囲の発話スタイルの自然発話をトレーニングデータに含めることによって、話者ダイバーシティを組み込む。トレーニング用の各発話は、1人の話者からの音声であってもよいし、複数の話者間での対話であってもよい。
【0053】
一部の実施形態において、多様性は、残響データを含む集中した雑音データを含めることから生じる。AudioSetのようなデータベースがシード雑音データベースとして使用され得る。サーバ102は、クリップ内に音声が存在する可能性が高いことを示すクラスラベルを用いて、シード雑音データベース内の各クリップをフィルタリングすることができる。例えば、所与のオントロジにおける“人の声”のクラスをフィルタリングすることができる。シード雑音データベースは更に、音声が存在する可能性が高い更なるクリップを除去するために、当業者に知られた任意の音声分離技術を適用することによってフィルタリングされ得る。例えば、音声予測が、閾値(例えば、1e-3)を超える二乗平均平方根エネルギーを有する少なくとも1つのフレーム(例えば、長さ100msのフレーム)を含む如何なるクリップも除去される。
【0054】
一部の実施形態において、多様性は、雑音を音声と混ぜる際に広範囲の強度レベルを含めることによって増加される。雑音ある信号を作る際に、サーバ102は、クリーン音声信号及び雑音信号をそれぞれ所定の最大レベルにスケーリングし、例えば0から30dBなどの範囲のdBのうちの1つによって下げるように各々をランダムに調整し、調整されたクリーン音声信号及び調整された雑音信号を、所定の最低信号対雑音比に従ってランダムに足し合わせることができる。このような広範囲のラウドネスレベルは、音声の過剰抑制(又は雑音の過少抑制)を低減させる助けとなることが分かっている。
【0055】
一部の実施形態において、多様性は、異なる周波数バンド内のデータの存在にある。サーバ102は、例えば300Hzから500Hzの周波数バンド内に少なくとも20%など、特定のバンド幅の特定の周波数バンド内に少なくともある割合を持つ信号を作成することができる。
【0056】
一部の実施形態において、サーバ102は、例えば、誤差逆伝播アルゴリズムを用いて重みが更新される確率的勾配降下最適化アルゴリズムなど、当業者に知られた任意の最適化プロセスを用いてニューラルネットワークモデル208をトレーニングする。ニューラルネットワークモデル208は、各フレームにおける各バンドについて、予測マスクとグラウンドトゥルースマスクとの間の平均二乗誤差(MSE)損失を最小化することができる。グラウンドトゥルースマスクは、音声エネルギーと、音声エネルギー及び雑音エネルギーの合計との比として計算されることができる。
【0057】
一部の実施形態において、音声の過剰抑制の方が音声の過少抑制よりも音声品質を損ねるので、サーバ102は、より大きいペナルティを音声の過剰抑制に割り当てる加重MSEを使用する。ニューラルネットワークモデル208によって生成されるマスク値は、存在する音声の量を示すので、予測マスク値がグラウンドトゥルースマスク値よりも小さいとき、グラウンドトゥルースよりも少ないスピーチが予測されており、従って、必要以上に多くの音声が抑制されており、ニューラルネットワークモデルによる音声の過剰抑制につながる。例えば、加重MSEは次のように計算され得る:
【数1】
ここで、
【数2】
及び
【数3】
は、それぞれ、(t,f)時間-周波数バンドについての予測マスク値及びグラウンドトゥルースマスク値を表し、ρは、音声の過剰抑制に対してより大きい重みを与えるために経験的に決定された定数(通常、0.5より大きく設定される)を表す。
【0058】
一部の実施形態において、ニューラルネットワークモデル208は、(1つのマスク値ではなく、)各バンド内の複数の異なる周波数ビンにわたる音声の分布を予測するようにトレーニングされる。具体的には、サーバ102は、各フレームにおける各バンドについてガウス分布の平均値及び分散値を予測するようにモデルをトレーニングすることができ、平均が、ニューラルネットワークモデル208によるマスク値の最良の予測を表す。ガウス分布での損失関数は:
【数4】
として定義されることができ、ここで、
【数5】
は、(t,f)についての標準偏差の予測を表す。
【0059】
一部の実施形態において、分散予測は、音声の過剰抑制の発生を低減させるための、平均予測における信頼度として解釈され得る。平均予測が比較的低くて、存在する音声の量が少ないことを示し、且つ分散予測が比較的高い場合、これは、音声の過剰抑制の可能性が高いことを示し得るものであり、そこで、バンドマスクがスケールアップされ得る。標準偏差に基づいて調整された利得を生成するためのスケーリング関数の一例は:
【数6】
である。該スケーリング関数は、標準偏差に比例してバンドマスク(利得)を増加させる。標準偏差が大きい場合、マスクは、平均より大きいが依然として1以下であるようにスケーリングされ、標準偏差が0である場合、マスクは平均に等しくなる。
【0060】
一部の実施形態において、各マスクについてガウス分布を仮定すると、観察される各(ターゲット)マスク値の確率は:
【数7】
となる。この確率の負の対数を最小化すること(この確率自体を最大化することに等価)が、上述のガウス損失関数につながる。
【0061】
4.3. モデル実行
一部の実施形態において、サーバ102は、ニューラルネットワークモデル208において、具体的には特徴抽出ブロック308においてルックアヘッドが実装されるとき、入力データとして個々のフレーム又はフレームのセットを受け入れ、出力データとして各フレームについて少なくともマスク値を生成することができる。時間次元に沿って1より大きいカーネルサイズを有する畳み込み層ごとに、サーバ102は、出力データを生成するために必要とする履歴を格納するための内部バッファを保持する。該バッファは、時間次元に沿って畳み込み層の受容野に等しいサイズを有するキューとして維持されることができる。
【0062】
5. プロセス例
図8は、ここで説明される一部の実施形態に従ったオーディオ管理サーバコンピュータで実行されるプロセスの一例を示している。
図8は、明瞭な例を示す目的で単純化された概略的な形態で示されており、他の実施形態は、様々なやり方で接続された、より多くの、より少ない、又は異なる要素を含み得る。
図8は各々、実行されるときにここで説明される機能的改良及び技術的進歩を実行させる1つ以上のコンピュータプログラム又は他のソフトウェア要素を実装するのに使用されることができるアルゴリズム、プラン、又はアウトラインを開示することを意図している。また、ここでのフロー図は、当業者が、蓄積した技能及び知識を用いてコーディング又は実装することを計画するソフトウェアプログラムの基礎を形成するアルゴリズム、プラン、又は仕様について互いに伝えるために通常使用するのと同じレベルの詳細さで説明される。
【0063】
一部の実施形態において、ステップ802にて、サーバ102は、時間次元に沿った複数のフレームにて、周波数次元に沿った複数の周波数バンドをカバーする入力オーディオデータを受信するようにプログラムされる。一部の実施形態において、上記複数の周波数バンドは、知覚的に刺激されるバンドであり、より高い周波数で、より多くの周波数ビンをカバーする。
【0064】
一部の実施形態において、ステップ804にて、サーバ102は、ニューラルネットワークモデルをトレーニングするようにプログラムされる。該ニューラルネットワークモデルは、入力オーディオデータから特徴を抽出する際に特定数のフレームのルックアヘッドを実施する特徴抽出ブロックと、周波数次元に沿って入力オーディオデータ内の次第に大きくなる受容野に対応する特徴マップを生成する第1の一連のブロックを含むエンコーダと、エンコーダによって生成された出力特徴マップを入力特徴マップとして受信する第2の一連のブロックを含むデコーダと、複数のフレームの各フレームにおける複数の周波数バンドの各周波数バンドについて、存在する音声の量を示す音声値を生成する分類ブロックと、を有する。
【0065】
一部の実施形態において、特徴抽出ブロックは、時間次元に沿って特定のサイズを持つ畳み込みカーネルを有し、エンコーダ及びデコーダは、該特定のサイズ以上の時間次元に沿ったサイズを持つ畳み込みカーネルを有しない。他の実施形態において、特徴抽出ブロック、第1の一連のブロック、及び第2の一連のブロックの各々が、共通の数の特徴マップを生成する。
【0066】
一部の実施形態において、特徴抽出ブロックは、バッチ正規化層と、それに続く2次元畳み込みカーネルを有する畳み込み層とを有する。
【0067】
一部の実施形態において、エンコーダ内の第1の一連のブロックの各ブロックが、特徴計算ブロック及び周波数ダウンサンプラを有する。特徴計算ブロックは一連の畳み込み層を有する。
【0068】
一部の実施形態において、一連の畳み込み層のうちのある畳み込み層の出力データが、一連の畳み込み層のうちの後続の全ての畳み込み層に供給される。一連の畳み込み層は、時間次元に沿って次第に大きくなるダイレーションを実装する。他の実施形態において、一連の畳み込み層の各々が、ゲーティング機構を有する深さ方向に分離可能な畳み込みブロックを有する。
【0069】
一部の実施形態において、一連の畳み込み層の各々が、最初の1×1の2次元畳み込みカーネルを有する最初の畳み込みブロックと、最後の1×1の2次元畳み込みカーネルを有する最後の畳み込みブロックと、を含む一連の畳み込みブロックを有した残差ブロックを有する。
【0070】
一部の実施形態において、第1の一連のブロックのうちのあるブロック内の特徴計算ブロックの出力データが、学習可能な重みによってスケーリングされて、スケーリングされた出力データを形成し、スケーリングされた出力データが、スキップ接続を介してデコーダ内の第2の一連のブロックのうちのあるブロックに通信される。
【0071】
一部の実施形態において、第1の一連のブロック内のあるブロックの周波数ダウンサンプラが、周波数次元に沿って1より大きいストライドサイズを持つ畳み込みカーネルを有する。
【0072】
一部の実施形態において、第2の一連のブロックの各ブロックが、特徴計算ブロック及び周波数アップサンプラを有する。第2の一連のブロックのうちのあるブロック内の特徴計算ブロックが、第1の一連のブロックのうちのあるブロック内の特徴計算ブロックからの第1の出力データと、第2の一連のブロック内の先行ブロックの周波数アップサンプラからの第2の出力データとを受信する。そして、第1の出力データと第2の出力データとが連結されて又は足し合わされて、第2の一連のブロックのうちのブロック内の特徴計算ブロックのための特定の入力データを形成する。
【0073】
一部の実施形態において、分類ブロックは、1×1の2次元畳み込みカーネル及び非線形活性化関数を有する。
【0074】
一部の実施形態において、ニューラルネットワークモデルは更に、エンコーダの出力データであり且つデコーダの入力データである特徴計算ブロックを有する。
【0075】
一部の実施形態において、サーバ102は、各フレームにおける複数の周波数バンドの各周波数バンドについて、予測音声値とグラウンドトゥルース音声値との間の損失の関数を用いてトレーニングを実行するようにプログラムされ、予測音声値が音声の過剰抑制に対応する場合には、損失の関数における重みを大きくし、予測音声値が音声の過少抑制に対応する場合には、損失の関数における重みを小さくする。一部の実施形態において、分類ブロックは更に、フレームにおける複数の周波数バンドのうちのある周波数バンドにわたる音声量の分布を生成し、音声値は分布の平均である。
【0076】
一部の実施形態において、入力オーディオデータは、異なる速さ又は感情の音声に対応するデータ、異なるレベルの雑音を含むデータ、又は異なる周波数ビンに対応するデータを有する。
【0077】
一部の実施形態において、ステップ806にて、サーバ102は、1つ以上のフレームを有する新たなオーディオデータを受信するようにプログラムされる。
【0078】
一部の実施形態において、ステップ808にて、サーバ102は、新たなオーディオデータに対してニューラルネットワークモデルを実行して、1つ以上のフレームの各フレームにおける複数の周波数バンドの各周波数バンドについて、新たな音声値を生成するようにプログラムされる。
【0079】
一部の実施形態において、ステップ810にて、サーバ102は、新たな音声値に基づいて、新たなオーディオデータにおける雑音を抑制する新たな出力データを生成するようにプログラムされる。
【0080】
一部の実施形態において、ステップ812にて、サーバ102は、新たな出力データを送信するようにプログラムされる。
【0081】
一部の実施形態において、サーバ102は、入力波形を受信するようにプログラムされる。サーバ102は、次いで、入力波形を、時間次元に沿った1つ以上のフレームにて周波数次元に沿った複数の周波数ビンをカバーする生オーディオデータに変換するようにプログラムされる。サーバ102は、次いで、複数の周波数ビンを複数の周波数バンドにグループ化することによって、生オーディオデータを新たなオーディオデータに変換するようにプログラムされる。サーバ102は、新たな音声値に対して逆バンディングを実行して、1つ以上のフレームの各フレームにおける複数の周波数ビンの各周波数ビンについて、更新された音声値を生成するようにプログラムされる。さらに、サーバ102は、次いで、更新された音声値を生オーディオデータに適用して新たな出力データを生成するようにプログラムされる。最後に、サーバ102は、新たな出力データを、強調された波形に変換するようにプログラムされる。
【0082】
6. ハードウェア実装
一実施形態によれば、ここで説明された技術は、少なくとも1つのコンピューティング装置によって実装される。当該技術は、例えばパケットデータネットワークなどのネットワークを用いて結合された少なくとも1つのサーバコンピュータ及び/又は他のコンピューティング装置の組み合わせを用いて全体的又は部分的に実装され得る。コンピューティング装置は、当該技術を実行するようにハードワイヤードされてもよいし、当該技術を実行するように恒久的にプログラムされた少なくとも1つの特定用途向け集積回路(ASIC)若しくはフィールドプログラマブルゲートアレイ(FPGA)などのデジタル電子デバイスを含んでもよいし、あるいは、ファームウェア、メモリ、他のストレージ、若しくは組み合わせ内のプログラム命令に従って当該技術を実行するようにプログラムされた少なくとも1つの汎用ハードウェアプロセッサを含んでもよい。このようなコンピューティング装置はまた、カスタムのハードワイヤードロジック、ASIC、又はFPGAを、説明された技術を達成するためのカスタムプログラミングと組み合わせてもよい。コンピューティング装置は、サーバコンピュータ、ワークステーション、パーソナルコンピュータ、ポータブルコンピュータシステム、ハンドヘルド装置、モバイルコンピューティング装置、ウェアラブル装置、身体装着型若しくは埋め込み型装置、スマートフォン、スマートアプライアンス、インターネットワーキング装置、例えばロボット又は無人の地上車若しくは航空機などの自律又は半自律装置、説明された技術を実装するためのハードワイヤードロジック及び/又はプログラムロジックを組み込んだ任意の他の電子機器、データセンタ内の1つ以上の仮想コンピューティングマシン若しくはインスタンス、及び/又は、サーバコンピュータ及び/又はパーソナルコンピュータのネットワークとし得る。
【0083】
図9は、一実施形態が実装され得るコンピュータシステム例を示すブロック図である。
図9の例では、コンピュータシステム900、及び開示の技術をハードウェア、ソフトウェア、若しくはハードウェアとソフトウェアとの組み合わせで実装するための命令が、コンピュータアーキテクチャ及びコンピュータシステム実装について通信するためにこの開示が関係する当業者によって一般に使用されるのと同じ詳細さのレベルで、例えばボックス及び円として概略的に表されている。
【0084】
コンピュータシステム900は、電子信号パスを介してコンピュータシステム900のコンポーネント間で情報及び/又は命令を通信するためのバス及び/又は他の(1つ以上の)通信機構を含み得る入力/出力(I/O)サブシステム902を含む。I/Oサブシステム902は、I/Oコントローラ、メモリコントローラ、及び少なくとも1つのI/Oポートを含み得る。電子信号パスは、例えば線、一方向矢印、又は双方向矢印として図中の概略的に表されている。
【0085】
少なくとも1つのハードウェアプロセッサ904が、情報及び命令を処理するためにI/Oサブシステム902に結合される。ハードウェアプロセッサ904は、例えば、汎用マイクロプロセッサ若しくはマイクロコントローラ、及び/又は例えば組み込みシステムなどの若しくはグラフィックス処理ユニット(GPU)若しくはデジタル信号プロセッサ若しくはARMプロセッサなどの専用マイクロプロセッサを含み得る。プロセッサ904は、集積された算術論理ユニット(ALU)を有してもよいし、別個のALUに結合されてもよい。
【0086】
コンピュータシステム900は、プロセッサ904によって実行される命令及びデータを電子的にデジタルで格納するためにI/Oサブシステム902に結合された、例えばメインメモリなどのメモリ906の1つ以上のユニットを含む。メモリ906は、例えば様々な形態のランダムアクセスメモリ(RAM)又は他のダイナミックストレージデバイスなどの揮発性メモリを含み得る。メモリ906はまた、プロセッサ904によって実行される命令の実行中に一時的な変数又は他の中間情報を格納するために使用され得る。そのような命令は、プロセッサ904にアクセス可能な非一時的コンピュータ読み取り可能記憶媒体に格納されると、コンピュータシステム900を、命令で規定された動作を実行するようにカスタマイズされた専用マシンにすることができる。
【0087】
コンピュータシステム900は更に、プロセッサ904のための情報及び命令を格納するためにI/Oサブシステム902に結合された、例えば読み出し専用メモリ(ROM)908又は他のスタティックストレージデバイスなどの不揮発性メモリを含む。ROM908は、例えば消去可能PROM(EPROM)又は電気的消去可能PROM(EEPROM)などの様々な形態のプログラマブルROM(PROM)を含み得る。永続的ストレージ910のユニットが、例えばフラッシュメモリなどの様々な形態の不揮発性RAM(NVRAM)、又はソリッドステートストレージ、磁気ディスク、又は例えばCD-ROM若しくはDVD-ROMなどの光ディスクを含むことができ、情報及び命令を格納するためにI/Oサブシステム902に結合され得る。ストレージ910は、プロセッサ904によって実行されるときにコンピュータ実装された方法を実行してここでの技術を実行することを引き起こす命令及びデータを格納するために使用され得る非一時的コンピュータ読み取り可能媒体の一例である。
【0088】
メモリ906、ROM908、又はストレージ910内の命令は、モジュール、メソッド、オブジェクト、関数、ルーチン、又はコールとして編成された1つ以上の命令セットを有し得る。命令は、1つ以上のコンピュータプログラム、オペレーティングシステムサービス、又はモバイルアプリを含むアプリケーションプログラムとして編成され得る。命令は、オペレーティングシステム及び/又はシステムソフトウェア;マルチメディア、プログラミング若しくは他の機能をサポートする1つ以上のライブラリ;TCP/IP、HTTP若しくは他の通信プロトコルを実装するデータプロトコル命令若しくはスタック;HTML、XML、JPEG、MPEG又はPNGを用いてコーディングされたファイルを解釈してレンダリングするファイル処理命令;グラフィカルユーザインタフェース(GUI)、コマンドラインインタフェース若しくはテキストユーザインタフェースのためのコマンドをレンダリング又は解釈するユーザインタフェース命令;例えばオフィススイート、インターネットアクセスアプリケーション、設計及び製造アプリケーション、グラフィックスアプリケーション、オーディオアプリケーション、ソフトウェアエンジニアリングアプリケーション、教育アプリケーション、ゲーム、又はその他のアプリケーションなどの、アプリケーションソフトウェアを有し得る。命令は、ウェブサーバ、ウェブアプリケーションサーバ、又はウェブクライアントを実装してもよい。命令は、プレゼンテーション層、アプリケーション層、及び、例えば構造化照会言語(SQL)若しくはNoSQLを使用するリレーショナルデータベースシステム、オブジェクトストア、グラフデータベース、フラットファイルシステム、又は他のデータストレージなどの、データストレージ層として編成され得る。
【0089】
コンピュータシステム900は、I/Oサブシステム902を介して少なくとも1つの出力デバイス912に結合され得る。一実施形態において、出力デバイス912はデジタルコンピュータディスプレイである。様々な実施形態において使用され得るディスプレイの例は、タッチスクリーンディスプレイ又は発光ダイオード(LED)ディスプレイ又は液晶ディスプレイ(LCD)又は電子ペーパーディスプレイを含む。コンピュータシステム900は、ディスプレイデバイスに代えて、あるいは加えて、他の(1つ以上の)タイプの出力デバイス912を含み得る。他の出力デバイス912の例は、プリンタ、チケットプリンタ、プロッタ、プロジェクタ、サウンドカード若しくはビデオカード、スピーカ、ブザー若しくは圧電デバイス若しくは他の可聴デバイス、ランプ若しくはLED若しくはLCDインジケータ、触覚デバイス、アクチュエータ又はサーボを含む。
【0090】
少なくとも1つの入力デバイス914が、信号、データ、コマンド選択、又はジェスチャをプロセッサ904に通信するためにI/Oサブシステム902に結合される。入力デバイス914の例は、タッチスクリーン、マイクロフォン、スチル及びビデオデジタルカメラ、英数字及び他のキー、キーパッド、キーボード、グラフィックスタブレット、イメージスキャナ、ジョイスティック、クロック、スイッチ、ボタン、ダイヤル、スライド、及び/又は、例えば力センサ、モーションセンサ、熱センサ、加速度計、ジャイロスコープ、及び慣性測定ユニット(IMU)センサなどの様々なタイプのセンサ、及び/又は、例えばセルラー若しくはWi-Fiなどの無線、無線周波数(RF)若しくは赤外線(IR)トランシーバ、及び全地球測位システム(GPS)トランシーバなどの様々なタイプのトランシーバを含む。
【0091】
他のタイプの入力デバイスは制御デバイス916であり、これは、入力機能に代えて、あるいは加えて、カーソル制御、又は例えば表示画面上のグラフィカルインタフェースにおけるナビゲーションなどの他の自動化された制御機能を実行し得る。制御デバイス916は、方向情報及びコマンド選択をプロセッサ904に通信するため、及びディスプレイ912上のカーソル移動を制御するためのタッチパッド、マウス、トラックボール、又はカーソル方向キーとし得る。入力デバイスは、当該デバイスが平面内の位置を規定することを可能にする第1の軸(例えば、x)及び第2の軸(例えば、y)の2つの軸における少なくとも2自由度を有し得る。他のタイプの入力デバイスは、例えばジョイスティック、ペン型スキャナ、コンソール、ステアリングホイール、ペダル、ギアシフト機構、又は他のタイプの制御デバイスなどの、有線、無線、又は光学式の制御デバイスである。入力デバイス914は、例えばビデオカメラと深度センサなど、複数の異なる入力デバイスの組み合わせを含んでもよい。
【0092】
他の一実施形態において、コンピュータシステム900は、出力デバイス912、入力デバイス914、及び制御デバイス916のうちの1つ以上が省略されるモノのインターネット(IoT)デバイスを有してもよい。あるいは、そのような一実施形態において、入力デバイス914は、1つ以上のカメラ、モーション検出器、温度計、マイクロフォン、地震検出器、他のセンサ若しくは検出器、測定デバイス、又はエンコーダを有してもよく、出力デバイス912は、例えば単線LED若しくはLCDディスプレイなどの専用ディスプレイ、1つ以上のインジケータ、ディスプレイパネル、メータ、弁、ソレノイド、アクチュエータ、又はサーボを有してもよい。
【0093】
コンピュータシステム900がモバイルコンピューティング装置である場合、入力デバイス914は、複数の全地球測位システム(GPS)衛星に対して三角測量し、コンピュータシステム900の地球物理学的位置について例えば緯度-経度値などのジオロケーション又は位置データを決定及び生成することができるGPSモジュールに結合されたGPS受信器を有し得る。出力デバイス912は、位置報告パケット、通知、パルス若しくはハートビート信号、又はコンピュータシステム900の位置を規定する他の繰り返し発生するデータ送信を、単独で、又は他のアプリケーション固有データと組み合わせて、ホスト924又はサーバ930に向けて生成するためのハードウェア、ソフトウェア、ファームウェア、及びインタフェースを含み得る。
【0094】
コンピュータシステム900は、カスタマイズされたハードワイヤードロジック、少なくとも1つのASIC若しくはFPGA、ファームウェア、及び/又は、ロードされてコンピュータシステムと組み合わせて使用又は実行されるときにコンピュータシステムに専用マシンとして動作させる又は専用マシンとして動作するようにコンピュータシステムをプログラムするプログラム命令若しくはロジックを用いて、ここで説明された技術を実装し得る。一実施形態によれば、ここでの技術は、メインメモリ906に含まれる少なくとも1つの命令の少なくとも1つのシーケンスをプロセッサ904が実行することに応答して、コンピュータシステム900によって実行される。そのような命令は、例えばストレージ910などの別の記憶媒体からメインメモリ906に読み込まれ得る。メインメモリ906に含まれる命令のシーケンスの実行が、プロセッサ904に、ここで説明されたプロセスステップを実行させる。代替実施形態では、ソフトウェア命令の代わりに、あるいはそれと組み合わせて、ハードワイヤード回路が使用され得る。
【0095】
用語“記憶媒体”は、ここで使用されるとき、マシンを特定の方式で動作させる命令及び/又はデータを格納する任意の非一時的な媒体を指す。そのような記憶媒体は、不揮発性の媒体及び/又は揮発性の媒体を含み得る。不揮発性の媒体は、例えば、例えばストレージ910などの光ディスク又は磁気ディスクを含む。揮発性の媒体は、例えばメモリ906などのダイナミックメモリを含む。記憶媒体の一般的な形態は、例えば、ハードディスク、ソリッドステートドライブ、フラッシュドライブ、磁気データ記憶媒体、任意の光学的又は物理的データ記憶媒体、メモリチップ、又はこれらに類するものを含む。
【0096】
記憶媒体は、伝送媒体とは異なるが、伝送媒体とともに使用されてもよい。伝送媒体は、記憶媒体間で情報を転送することに関与する。例えば、伝送媒体は、I/Oサブシステム902のバスを有するワイヤを含め、同軸ケーブル、銅線、及び光ファイバを含む。伝送媒体はまた、例えば電波及び赤外線データ通信において生成されるものなどの音響波又は光波の形態をとることもできる。
【0097】
様々な形態の媒体が、少なくとも1つの命令の少なくとも1つのシーケンスを実行のためにプロセッサ904に搬送することに関与し得る。例えば、命令は、最初に、リモートコンピュータの磁気ディスク又はソリッドステートドライブ上に担持され得る。リモートコンピュータは、命令を自身のダイナミックメモリにロードし、該命令を、モデムを用いて、例えば光ファイバ又は同軸ケーブル又は電話回線などの通信リンク上で送信し得る。コンピュータシステム900にローカルなモデム又はルータが、通信リンク上でデータを受信し、該データを、コンピュータシステム900によって読み取られるように変換することができる。例えば、無線周波数アンテナ又は赤外線検出器などの受信器が、無線信号又は光信号で搬送されるデータを受信することができ、適切な回路が、例えば該データをバス上に置くなど、該データをI/Oサブシステム902に提供することができる。I/Oサブシステム902がデータをメモリ906に搬送し、そこからプロセッサ904が命令を取り出して実行する。メモリ906によって受け取られた命令は、オプションで、プロセッサ904による実行の前又は後のいずれかにストレージ910上に格納され得る。
【0098】
コンピュータシステム900はまた、バス902に結合された通信インタフェース918を含む。通信インタフェース918は、例えばネットワーク922又はインターネット上のパブリッククラウド若しくはプライベートクラウドなどの少なくとも1つの通信ネットワークに直接的又は間接的に接続された(1つ以上の)ネットワークリンク920に結合する双方向データ通信を提供する。例えば、通信インタフェース918は、イーサネット(登録商標)ネットワーキングインタフェース、総合サービスデジタルネットワーク(ISDN)カード、ケーブルモデム、衛星モデム、又は、例えばイーサネット(登録商標)ケーブル若しくは任意の種類の金属ケーブル若しくは光ファイバ回線若しくは電話回線といった対応するタイプの通信回線へのデータ通信接続を提供するモデムとし得る。ネットワーク922は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、キャンパスネットワーク、インターネットワーク、又はこれらの任意の組み合わせを広く表す。通信インタフェース918は、互換性のあるLANへのデータ通信接続を提供するLANカード、又はセルラー無線電話ワイヤレスネットワーキング規格に従ってセルラーデータを送信又は受信するように有線接続されたセルラー無線電話インタフェース、又は衛星ワイヤレスネットワーキング規格に従ってデジタルデータを送信又は受信するように有線接続された衛星無線インタフェースを有し得る。任意のそのような実装において、通信インタフェース918は、様々なタイプの情報を表すデジタルデータストリームを搬送する信号パス上で、電気信号、電磁信号、又は光信号を送受信する。
【0099】
ネットワークリンク920は典型的に、例えば衛星、セルラー、Wi-Fi、又はBLUETOOTH(登録商標)技術を用いて、直接的に、又は少なくとも1つのネットワークを介して、他のデータデバイスに電気、電磁、又は光データ通信を提供する。例えば、ネットワークリンク920は、ネットワーク922を介してホストコンピュータ924への接続を提供し得る。
【0100】
さらに、ネットワークリンク920は、インターネットサービスプロバイダ(ISP)926によって稼働されるインターネットワーキング装置及び/又はコンピュータを介して、ネットワーク922を介した接続又は他のコンピューティング装置への接続を提供し得る。ISP926は、インターネット928として表されるワールドワイドパケットデータ通信ネットワークを介したデータ通信サービスを提供する。サーバコンピュータ930がインターネット928に結合され得る。サーバ930は、任意のコンピュータ、データセンタ、ハイパーバイザを有する若しくは有しない仮想マシン若しくは仮想コンピューティングインスタンス、又は例えばDOCKER若しくはKUBERNETESなどのコンテナ化されたプログラムシステムを実行するコンピュータを広く表す。サーバ930は、2つ以上のコンピュータ又はインスタンスを用いて実装され、ウェブサービス要求、HTTPペイロード内にパラメータを有するユニフォームリソースロケータ(URL)文字列、APIコール、アプリサービスコール、又は他のサービスコールを送信することによってアクセスされて使用される電子デジタルサービスを表してもよい。コンピュータシステム900及びサーバ930は、他のコンピュータ、処理クラスタ、サーバファーム、又は協働してタスクを実行したりアプリケーション若しくはサービスを実行したりする他編成のコンピュータを含む分散コンピューティングシステムの要素を形成してもよい。サーバ930は、モジュール、メソッド、オブジェクト、関数、ルーチン、又はコールとして編成された1つ以上の命令セットを有し得る。命令は、1つ以上のコンピュータプログラム、オペレーティングシステムサービス、又はモバイルアプリを含めたアプリケーションプログラムとして編成され得る。命令は、オペレーティングシステム及び/又はシステムソフトウェア;マルチメディア、プログラミング若しくは他の機能をサポートする1つ以上のライブラリ;TCP/IP、HTTP若しくは他の通信プロトコルを実装するデータプロトコル命令若しくはスタック;HTML、XML、JPEG、MPEG又はPNGを用いてコーディングされたファイルを解釈したりレンダリングしたりするファイルフォーマット処理命令;グラフィカルユーザインタフェース(GUI)、コマンドラインインタフェース若しくはテキストユーザインタフェースのためのコマンドをレンダリング又は解釈するユーザインタフェース命令;例えばオフィススイート、インターネットアクセスアプリケーション、設計及び製造アプリケーション、グラフィックスアプリケーション、オーディオアプリケーション、ソフトウェアエンジニアリングアプリケーション、教育アプリケーション、ゲーム、又はその他のアプリケーションなどの、アプリケーションソフトウェアを有し得る。サーバ930は、プレゼンテーション層、アプリケーション層、及び、例えば構造化照会言語(SQL)若しくはNoSQLを使用するリレーショナルデータベースシステム、オブジェクトストア、グラフデータベース、フラットファイルシステム、又は他のデータストレージなどの、データストレージ層をホストするウェブアプリケーションサーバを有し得る。
【0101】
コンピュータシステム900は、(1つ以上の)ネットワーク、ネットワークリンク920、及び通信インタフェース918を介して、メッセージを送信し、プログラムコードを含む命令及びデータを受信することができる。インターネットの例において、サーバ930は、インターネット928、ISP926、ローカルネットワーク922、及び通信インタフェース918を介して、アプリケーションプログラムの要求されたコードを送信し得る。受信されたコードは、受信されたときにプロセッサ904によって実行されてもよく、且つ/或いは、後の実行のためにストレージ910又は他の不揮発性ストレージに格納されてもよい。
【0102】
このセクションで説明された命令の実行は、プログラムコード及びその現在のアクティビティからなる実行中のコンピュータプログラムのインスタンスの形態でプロセスを実装し得る。オペレーティングシステム(OS)に依存して、プロセスは、命令を同時に実行する複数の実行スレッドで構成され得る。この文脈において、コンピュータプログラムは命令の受動的な集合である一方で、プロセスはそれらの命令の実際の実行とし得る。同一のプログラムに幾つかのプロセスが関連付けられてもよく、例えば、同一のプログラムの幾つかのインスタンスを開くことは、しばしば、2つ以上のプロセスが実行されることを意味する。複数のプロセスがプロセッサ904を共有することを可能にするよう、マルチタスキングが実装されてもよい。各プロセッサ904又はプロセッサの各コアは一度に1つのタスクを実行するが、コンピュータシステム900がマルチタスキングを実装するようにプログラムされることで、各プロセッサが、各タスクが終了するのを待つ必要なく、実行されている複数のタスク間で切り替わることを可能にし得る。一実施形態において、切り替えは、タスクが入力/出力動作を実行するとき、自身が切り替え可能であることをタスクが示すとき、又はハードウェア割り込み時に実行され得る。コンテキスト切り替えを迅速に実行して複数のプロセスの同時並行実行の様相を提供することによって、対話型ユーザアプリケーションのための高速応答を可能にするように、タイムシェリングが実装され得る。一実施形態において、セキュリティ及び信頼性のために、オペレーティングシステムが、独立したプロセス間の直接通信を防止して、厳密に調停されて制御されたプロセス間通信機能を提供してもよい。
【0103】
7. 拡張及び代替
以上の明細書では、実装ごとに変わり得る数多くの具体的詳細事項を参照して本開示の実施形態を説明してきた。従って、明細書及び図面は、限定的な意味ではなく例示的な意味で見られるべきである。本開示の範囲を排他的に示す唯一のもの、及び本開示の範囲であると出願人によって意図されるものは、この出願から発行される請求項のセットの文字通りの範囲及び均等な範囲であり、そのような請求項が生じる具体的形態において任意の後の訂正を含む。
【手続補正書】
【提出日】2023-08-01
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
雑音を抑制して音声を強調するコンピュータ実装された方法であって、
プロセッサにより、時間次元に沿った複数のフレームにて、周波数次元に沿った複数の周波数バンドをカバーする入力オーディオデータを受信するステップと、
前記プロセッサにより、前記入力オーディオデータを使用してニューラルネットワークモデルをトレーニングするステップであり、前記ニューラルネットワークモデルは、
前記入力オーディオデータから特徴を抽出する際に特定数のフレームのルックアヘッドを実施する特徴抽出ブロックと、
前記周波数次元に沿って前記入力オーディオデータ内の次第に大きくなる受容野に対応する第1の特徴マップを生成する第1の一連のブロックを含むエンコーダ
であり、
該第1の一連のブロックの各ブロックが、特徴計算ブロック及び周波数ダウンサンプラを有し、該特徴計算ブロックは一連の畳み込み層を有し、該一連の畳み込み層のうちのある畳み込み層の出力データが、該一連の畳み込み層のうちの後続の全ての畳み込み層に供給され、該一連の畳み込み層は、前記時間次元に沿って次第に大きくなるダイレーションを実装する、エンコーダと、
前記エンコーダによって生成された出力特徴マップを入力特徴マップとして受信し、第2の特徴マップを生成する第2の一連のブロックを含むデコーダと、
前記第2の特徴マップを受信し、前記複数のフレームの各フレームにおける前記複数の周波数バンドの各周波数バンドについて、存在する音声の量を示す音声値を生成する分類ブロックと、
を含む、ステップと、
1つ以上のフレームを有する新たなオーディオデータを受信するステップと、
前記新たなオーディオデータに対して前記ニューラルネットワークモデルを実行して、前記1つ以上のフレームの各フレームにおける前記複数の周波数バンドの各周波数バンドについて、新たな音声値を生成するステップと、
前記新たな音声値に基づいて、前記新たなオーディオデータにおける雑音を抑制する新たな出力データを生成するステップと、
前記新たな出力データを送信するステップと、
を有するコンピュータ実装された方法。
【請求項2】
入力波形を受信するステップと、
前記入力波形を、前記時間次元に沿った前記1つ以上のフレームにて前記周波数次元に沿った複数の周波数ビンをカバーする生オーディオデータに変換するステップと、
前記複数の周波数ビンを前記複数の周波数バンドにグループ化することによって、前記生オーディオデータを前記新たなオーディオデータに変換するステップと、
前記新たな音声値に対して逆バンディングを実行して、前記1つ以上のフレームの各フレームにおける前記複数の周波数ビンの各周波数ビンについて、更新された音声値を生成するステップと、
前記更新された音声値を前記生オーディオデータに適用して前記新たな出力データを生成するステップと、
前記新たな出力データを、強調された波形に変換するステップと、
を更に有する請求項1に記載のコンピュータ実装された方法。
【請求項3】
前記複数の周波数バンドは、知覚的に刺激されるバンドであり、より高い周波数で、より多くの周波数ビンをカバーする、請求項1又は2に記載のコンピュータ実装された方法。
【請求項4】
前記特徴抽出ブロックは、前記時間次元に沿って特定のサイズを持つ畳み込みカーネルを有し、
前記特定のサイズは、前記エンコーダ又は前記デコーダにおけるいずれの畳み込みカーネルの前記時間次元に沿ったサイズよりも大きい、請求項1乃至3のいずれか一項に記載のコンピュータ実装された方法。
【請求項5】
前記特徴抽出ブロックは、バッチ正規化層と、それに続く2次元畳み込みカーネルを有する畳み込み層とを有する、請求項1乃至4のいずれか一項に記載のコンピュータ実装された方法。
【請求項6】
前記特徴抽出ブロック、前記第1の一連のブロック、及び前記第2の一連のブロックの各々が、共通の数の特徴マップを生成する、請求項1乃至5のいずれか一項に記載のコンピュータ実装された方法。
【請求項7】
前記一連の畳み込み層の各々が、ゲーティング機構を有する深さ方向に分離可能な畳み込みブロックを有する、請求項
1乃至6のいずれか一項に記載のコンピュータ実装された方法。
【請求項8】
前記一連の畳み込み層の各々が、最初の1×1の2次元畳み込みカーネルを有する最初の畳み込みブロックと、最後の1×1の2次元畳み込みカーネルを有する最後の畳み込みブロックと、を含む一連の畳み込みブロックを有した残差ブロックを有する、請求項
1乃至7のいずれか一項に記載のコンピュータ実装された方法。
【請求項9】
前記第1の一連のブロックのうちのあるブロック内の特徴計算ブロックの出力データが、学習可能な重みによってスケーリングされて、スケーリングされた出力データを形成し、
前記スケーリングされた出力データが、スキップ接続を介して前記デコーダ内の前記第2の一連のブロックのうちのあるブロックに通信される、
請求項
1乃至
8のいずれか一項に記載のコンピュータ実装された方法。
【請求項10】
前記第1の一連のブロック内のあるブロックの周波数ダウンサンプラが、前記周波数次元に沿って1より大きいストライドサイズを持つ畳み込みカーネルを有する、請求項
1乃至
9のいずれか一項に記載のコンピュータ実装された方法。
【請求項11】
前記第2の一連のブロックの各ブロックが、特徴計算ブロック及び周波数アップサンプラを有する、請求項
1乃至
10のいずれか一項に記載のコンピュータ実装された方法。
【請求項12】
前記第2の一連のブロックのうちのあるブロック内の特徴計算ブロックが、前記第1の一連のブロックのうちのあるブロック内の特徴計算ブロックからの第1の出力データと、前記第2の一連のブロック内の先行ブロックの周波数アップサンプラからの第2の出力データとを受信し、
前記第1の出力データと前記第2の出力データとが連結されて又は足し合わされて、前記第2の一連のブロックのうちの前記ブロック内の前記特徴計算ブロックのための特定の入力データを形成する、
請求項
11に記載のコンピュータ実装された方法。
【請求項13】
前記分類ブロックは、1×1の2次元畳み込みカーネル及び非線形活性化関数を有する、請求項1乃至
12のいずれか一項に記載のコンピュータ実装された方法。
【請求項14】
前記トレーニングは、各フレームにおける前記複数の周波数バンドの各周波数バンドについて、予測音声値とグラウンドトゥルース音声値との間の損失の関数を用いて実行され、前記予測音声値が音声の過剰抑制に対応する場合には、前記損失の関数における重みを大きくし、前記予測音声値が音声の過少抑制に対応する場合には、前記損失の関数における重みを小さくする、請求項1乃至
13のいずれか一項に記載のコンピュータ実装された方法。
【請求項15】
前記分類ブロックは更に、フレームにおける前記複数の周波数バンドのうちのある周波数バンドにわたる音声量の分布を生成し、前記音声値は前記分布の平均である、請求項1乃至
14のいずれか一項に記載のコンピュータ実装された方法。
【請求項16】
前記入力オーディオデータは、異なる速さ又は感情の音声に対応するデータ、異なるレベルの雑音を含むデータ、又は異なる周波数ビンに対応するデータを有する、請求項1乃至
15のいずれか一項に記載のコンピュータ実装された方法。
【請求項17】
前記ニューラルネットワークモデルは更に、前記エンコーダの出力データ及び前記デコーダの入力データである特徴計算ブロックを有する、請求項1乃至
16のいずれか一項に記載のコンピュータ実装された方法。
【請求項18】
メモリ、及び
前記メモリと結合された1つ以上のプロセッサであり、
時間次元に沿った複数のフレームにて、周波数次元に沿った複数の周波数バンドをカバーする入力オーディオデータを受信し、
前記入力オーディオデータを使用してニューラルネットワークモデルをトレーニングし、前記ニューラルネットワークモデルは、
前記入力オーディオデータから特徴を抽出する際に特定数のフレームのルックアヘッドを実施する特徴抽出ブロックと、
前記周波数次元に沿って前記入力オーディオデータ内の次第に大きくなる受容野に対応する第1の特徴マップを生成する第1の一連のブロックを含むエンコーダ
であり、
該第1の一連のブロックの各ブロックが、特徴計算ブロック及び周波数ダウンサンプラを有し、該特徴計算ブロックは一連の畳み込み層を有し、該一連の畳み込み層のうちのある畳み込み層の出力データが、該一連の畳み込み層のうちの後続の全ての畳み込み層に供給され、該一連の畳み込み層は、前記時間次元に沿って次第に大きくなるダイレーションを実装する、エンコーダと、
前記エンコーダによって生成された出力特徴マップを入力特徴マップとして受信し、第2の特徴マップを生成する第2の一連のブロックを含むデコーダと、
前記第2の特徴マップを受信し、前記複数のフレームの各フレームにおける前記複数の周波数バンドの各周波数バンドについて、存在する音声の量を示す音声値を生成する分類ブロックと、を含み、
前記ニューラルネットワークモデルを格納する、
ことを実行するように構成された1つ以上のプロセッサ、
を有するコンピュータシステム。
【請求項19】
雑音を抑制して音声を強調するコンピュータ実装された方法であって、
プロセッサにより、1つ以上のフレームを有する新たなオーディオデータを受信するステップと、
前記プロセッサにより、前記新たなオーディオデータに対して
、トレーニング済みニューラルネットワークモデルを実行
するステップであり、前記トレーニング済みニューラルネットワークモデルは、前記新たなオーディオデータを与えられて前記1つ以上のフレームの各フレームにおける複数の周波数バンドの各周波数バンドについての新たな音声値を生成する
ようにトレーニングされており、前記
トレーニング済みニューラルネットワークモデルは、
前記新たなオーディオデータから特徴を抽出する際に特定数のフレームのルックアヘッドを実施する特徴抽出ブロック、
周波数次元に沿って前記
新たなオーディオデータ内の次第に大きくなる受容野に対応する第1の特徴マップを生成する第1の一連のブロックを含むエンコーダ
であり、
該第1の一連のブロックの各ブロックが、特徴計算ブロック及び周波数ダウンサンプラを有し、該特徴計算ブロックは一連の畳み込み層を有し、該一連の畳み込み層のうちのある畳み込み層の出力データが、該一連の畳み込み層のうちの後続の全ての畳み込み層に供給され、該一連の畳み込み層は、時間次元に沿って次第に大きくなるダイレーションを実装する、エンコーダ、
前記エンコーダとデコーダとを接続する計算ブロック、
前記エンコーダによって生成された出力特徴マップを入力特徴マップとして受信し、第2の特徴マップを生成する第2の一連のブロックを含む前記デコーダ、及び
前記第2の特徴マップを受信し、複数のフレームの各フレームにおける前記複数の周波数バンドの各周波数バンドについて、存在する音声の量を示す音声値を生成する分類ブロック、
のためのコンピュータ実行可能命令を有
する、ステップと、
前記新たな音声値に基づいて、前記新たなオーディオデータにおける雑音を抑制する新たな出力データを生成するステップと、
前記新たな出力データを送信するステップと、
を有するコンピュータ実装された方法。
【国際調査報告】