(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-18
(45)【発行日】2024-04-26
(54)【発明の名称】ビデオからの同期した音声生成
(51)【国際特許分類】
H04N 21/233 20110101AFI20240419BHJP
H04N 21/234 20110101ALI20240419BHJP
【FI】
H04N21/233
H04N21/234
(21)【出願番号】P 2022500157
(86)(22)【出願日】2020-07-14
(86)【国際出願番号】 IB2020056602
(87)【国際公開番号】W WO2021019342
(87)【国際公開日】2021-02-04
【審査請求日】2022-12-23
(32)【優先日】2019-07-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】チャン、ヤン
(72)【発明者】
【氏名】ガン、チュアン
(72)【発明者】
【氏名】リュウ、シジア
(72)【発明者】
【氏名】ワン、ダクオ
【審査官】大西 宏
(56)【参考文献】
【文献】特開平08-077352(JP,A)
【文献】米国特許出願公開第2019/0005976(US,A1)
【文献】米国特許出願公開第2018/0158922(US,A1)
【文献】米国特許第05657426(US,A)
【文献】国際公開第2017/079735(WO,A1)
【文献】独国特許出願公開第102017123068(DE,A1)
【文献】中国特許出願公開第108566558(CN,A)
【文献】中国特許出願公開第109194899(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00 -21/858
(57)【特許請求の範囲】
【請求項1】
コンピュータ
に実装
される方法であって、
ビデオ・フィードを受け取るステップと、
前記ビデオ・フィードを一連のビデオ・セグメントに分割するステップと、
各ビデオ・セグメントに対して、
前記ビデオ・セグメントの視覚的特徴を抽出するステップと、
前記抽出された視覚的特徴に基づき、予測されるスペクトログラムを生成するステップと、
前記予測されるスペクトログラムから合成オーディオ波形を生成するステップと、
前記ビデオ・フィードと同期している合成サウンドトラックを生成するため、前記ビデオ・フィードのすべての合成オーディオ波形を連結するステップと
を含む、
方法。
【請求項2】
各ビデオ・セグメントがビデオ・フレームである、請求項1に記載の方法。
【請求項3】
前記ビデオ・セグメントにおける視覚的特徴を抽出するステップが、前記ビデオ・セグメントの1つまたは複数のトピックを識別することを含む、請求項1に記載の方法。
【請求項4】
前記ビデオ・セグメントの前記視覚的特徴が、支配的な視覚的特徴と1つまたは複数の非支配的な視覚的特徴とを含む、請求項1に記載の方法。
【請求項5】
前記支配的な視覚的特徴と関連する合成オーディオ波形は強調されるが、前記1つまたは複数の非支配的な視覚的特徴と関連する各合成オーディオ波形は強調されない、請求項4に記載の方法。
【請求項6】
連結した前記合成オーディオ波形を出力するステップを更に含む、請求項1に記載の方法。
【請求項7】
予測されるスペクトログラムを生成するステップが、前記抽出された視覚的特徴を、前記抽出された視覚的特徴に基づいて前記予測されるスペクトログラムを作成するように動作する生成器へ提供することを含む、請求項1に記載の方法。
【請求項8】
生成器ネットワークが、
1つまたは複数の履歴ビデオ・フィードを含む履歴データを受け取ることと、
各履歴ビデオ・フィードに対し、前記履歴ビデオ・フィードを一連のビデオ・セグメントに分割することと、
履歴ビデオ・フィードの各ビデオ・セグメントに対して、
前記ビデオ・セグメントにおける視覚的特徴を抽出することと、
前記抽出された視覚的特徴に基づき、予測されるスペクトログラムを生成することと、
類似性のレベルを識別するために、識別器ネットワークによって、実際のスペクトログラムを前記予測されるスペクトログラムと比較することと、
類似性の前記レベルが所定の閾値を超えていると判断する場合に、前記予測されるスペクトログラムを、前記抽出された視覚的特徴の妥当な表現であると識別することと
を含む訓練フェーズの間に訓練される、請求項7に記載の方法。
【請求項9】
前記方法が、ユーザ・デバイスであるコンピューティング・デバイス上で実装され、
カメラが、
前記コンピューティング・デバイスに含まれており、
前記ビデオ・フィードが、前記カメラから受け取られる、請求項1に記載の方法。
【請求項10】
請求項1ないし9のいずれかに記載の前記方法の前記ステップのすべてを実行するように構成された手段を備えるコンピューティング・デバイス。
【請求項11】
コンピュータ・プログラムであって、前記コンピュータ・プログラムがコンピュータ・システム上で実行されるときには、請求項1ないし9のいずれかに記載の前記方法の前記ステップのすべてを実行する命令を含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、広くは、コンピュータおよびコンピュータ・アプリケーションに関し、さらに詳しくは、ビデオからの自動音声生成に関する。
【背景技術】
【0002】
近年では、メディア・コンテンツが、様々なプラットフォーム上で入手可能であり、そしてますます増加するソースからも入手可能であるという点で、至る所に存在するものとなってきている。例えば、それらの異なるプラットフォームには、インターネット、映画、テレビジョン、ラジオ、スマートフォン、オーディオCD、書籍、電子書籍、雑誌、ならびにスピーチ、会議、およびステージ・パフォーマンスなどのライブ・イベントが含まれ得る。ビデオ・コンテンツに基づくメディア・コンテンツは、しばしば、それに対応するオーディオ・コンテンツの特定のいくつかの部分が欠けている場合があり得る。例えば、ビデオ・コンテンツは、適切なマイクロフォンを用いて記録されていない場合があり得るのであって、その場合には、いくつかの部分または全体の音声がビデオ・コンテンツから欠けていることになる。
【発明の概要】
【0003】
様々な例示的な実施形態によると、合成オーディオ・ストリームを含むようにビデオ・ストリームを適合させるコンピューティング・デバイス、非一過性のコンピュータ可読記憶媒体、および方法が提供される。ビデオ・フィードが受け取られ、一連のビデオ・セグメントに分割される。各ビデオ・セグメントに対して、視覚的特徴が抽出される。抽出された視覚的特徴に基づき、予測されるスペクトログラムが生成される。予測されるスペクトログラムから、合成オーディオ波形が生成される。ビデオ・フィードに同期した合成サウンドトラックを生成するため、ビデオ・フィードのすべての合成オーディオ波形が連結される。
【0004】
ある実施形態では、各ビデオ・セグメントは、ビデオ・フレームである。
【0005】
ある実施形態では、ビデオ・セグメントにおける視覚的特徴を抽出することは、そのビデオ・セグメントの1つまたは複数のトピックを識別することを含む。
【0006】
ある実施形態では、ビデオ・セグメントの視覚的特徴は、支配的な視覚的特徴(domain visual feature)と、1つまたは複数の非支配的視覚的特徴(non-domain visual features)とを含む。支配的特徴と関連する合成オーディオ波形は、強調され得るが、他方で、1つまたは複数の非支配的な視覚的特徴と関連するそれぞれの合成オーディオ波形は、強調されない場合があり得る。
【0007】
ある実施形態では、判断は、実質的にリアルタイムで、行われる。
【0008】
ある実施形態では、予測されるスペクトログラムを生成することは、抽出された視覚的特徴を、抽出された視覚的特徴に基づいて予測されるスペクトログラムを作成するように動作する生成器に提供することを含む。生成器ネットワークは、1つまたは複数の履歴ビデオ・フィードを含む履歴データを受け取ることと、各履歴ビデオ・フィードに対して、その履歴ビデオ・フィードを一連のビデオ・セグメントに分割することとを含む訓練フェーズの間に、訓練され得る。履歴ビデオ・フィードの各ビデオ・セグメントに対して、ビデオ・セグメントにおける視覚的特徴が抽出される。予測されるスペクトログラムが、抽出された視覚的特徴に基づいて、生成される。実際のスペクトログラムが、識別器ネットワークによって、類似性のレベルを識別するために、予測されるスペクトログラムと比較される。類似性のレベルが所定の閾値を超えていると判断すると、予測されるスペクトログラムは、抽出された視覚的特徴の妥当な表現であると識別される。
【0009】
ある実施形態では、コンピューティング・デバイスは、ユーザ・デバイスである。プロセッサに結合されたカメラが存在し、ビデオ・フィードはそのカメラから受け取られる。
【0010】
これらのおよび他の特徴が、その例示的な実施形態に関する以下の詳細な説明から明らかになるが、その詳細な説明は、添付の図面との関連で読まれるべきである。
【0011】
図面は、例示的な実施形態に関するものである。図面は、すべての実施形態を図解しているわけではない。他の実施形態が、追加的または代替的に、用いられる場合もある。明白または不必要かもしれない詳細は、省スペースのために、またはより効果的な例示のために、省略される場合がある。いくつかの実施形態は、追加的なコンポーネントもしくはステップを用いて実現されることがあり得るし、または図解されているコンポーネントもしくはステップすべてを用いるとは限らずに実現されることがあり得るし、あるいはその両方の様態で実現されることもあり得る。同じ参照番号が異なる図面に現れるときは、それは、同じまたは同様のコンポーネントまたはステップを指す。
【図面の簡単な説明】
【0012】
【
図1】例示的な実施形態による、ビデオ・ストリームのために合成オーディオ・トラックを自動的に生成するシステムの例示的アーキテクチャの図である。
【
図2】例示的な実施形態による、例示的ユーザ・デバイスの様々なコンポーネントを高レベルで示すブロック図である。
【
図3】ビデオ・フィードからの生のオーディオ生成に関する単純化された概念的なブロック図である。
【
図4A】識別アーキテクチャの例示的ブロック図である。
【
図4B】生成アーキテクチャの例示的ブロック図である。
【
図5】例示的な実施形態による、識別器ネットワークと相互作用する敵対的生成ネットワーク(generative adversarial networks)を含む、例示的ニューラル・ネットワークの概念ブロック図である。
【
図6】例示的な実施形態による、視覚から音声へのシステムの概念ブロック図である。
【
図7】それと実質的に同期した合成オーディオ・ストリームを含むようにビデオ・コンテンツを自動的に適合させるための例示的なプロセスの図である。
【
図8】反復的な訓練フェーズの例示的なプロセスの図である。
【
図9】
図1の音声エンジン・サーバを実装することができるコンピュータ・ハードウェア・プラットフォームの機能ブロック図による図解である。
【発明を実施するための形態】
【0013】
概観
以下の詳細な説明では、多数の特定の詳細が、関連する教示の十分な理解を提供するために、例により与えられる。しかし、本教示がそのような詳細がなくても実現され得ることは、明らかだろう。他の場合では、広く知られた方法、手順、コンポーネント、または回路あるいはそれらの組合せが、本教示の態様を不必要に曖昧にすることを回避するために、詳細に及ぶことなく、比較的に高いレベルで、説明されている。
【0014】
本開示は、一般的には、実質的にそれと同期した合成オーディオ・ストリームを含むように、ビデオ・コンテンツを自動的に適合させることに関する。今日では、ビデオ・コンテンツは、コンテンツ・プロバイダからのブロードキャストまたはマルチキャストを含め、テレビ局、ソーシャル・メディア、記憶メディア、カメラ付きのポータブル・デバイスなど、様々なソースによって提供される。いくつかのシナリオでは、そのようなビデオ・コンテンツが、オーディオ・コンテンツのいくつかの部分を含まないことがあり得る。例えば、ビデオ・コンテンツが、背景のノイズに圧倒されている場合、ゆがみを含む場合、または離れた距離からキャプチャされていたりもしくは適切なマイクロフォンがなかったりしてオーディオ部分が単純に欠けている場合、あるいはこれらの組合せの場合などがあり得る。ビデオがキャプチャされた後で、そのビデオにオーディオ・コンテンツを導入することが最近になって試みられてきているが、典型的な場合、オーディオがビデオ・フィードのコンテンツに十分に対応していない、または同期していないことがあり、低品質なユーザ体験を生じさせる。
【0015】
したがって、本明細書で提供されるのは、ビデオ・コンテンツから視覚的な特徴を抽出し、ビデオ・コンテンツの正確な音声表現を提供するだけでなく実質的にそれと同期した合成オーディオ・ストリームを生成するように構成された方法およびデバイスである。その目的のために、泣いている子供、吠えている犬、滝、近くを通り過ぎる自動車、爆発など、異なる主題に対する映像と音声との間の関係を検討するため、機械学習を用いることが可能である。映像とそれに対応する音声との間の関係のモデルが、欠けているオーディオ・コンテンツを提供するため、または仮想現実への没入体験を強化するためあるいはそれらの組合せのために、映像と自動的に生成された周囲音とを組み合わせるなど、多くの応用例のために適用可能であり得る。ビデオ・コンテンツにサウンド・イフェクトを自動的に追加すると、オーディオ・ビジュアル体験を直ちに強化することが可能になり、または視覚障害者が音声による表現を経由して視覚的環境を経験することが可能になる。本明細書で説明されている技術は、いくつもの様態で実装され得る。以下では、例示的実装例が、添付の図面を参照して提供される。
【0016】
例示的アーキテクチャ
図1は、例示的な実施形態による、ビデオ・ストリームに対して合成オーディオ・トラックを自動的に生成するシステムの例示的アーキテクチャ100を図解している。アーキテクチャ100は、履歴データ・リポジトリ112と、ビデオ・コンテンツ・リポジトリ110と、音声エンジン132をホストする音声エンジン・サーバ120とを含み得る。ネットワーク106が存在し、このネットワーク106により、音声エンジン132は、履歴データ・リポジトリ112、ビデオ・コンテンツ・リポジトリ110、およびユーザ・デバイス102(1)~102(N)などのネットワーク106と接続された様々なリソースと通信することが可能になる。ネットワーク106は、これらに限定されることはないが、ローカル・エリア・ネットワーク(「LAN」)、仮想プライベート・ネットワーク(「VPN」)、セルラ・ネットワーク、インターネット、またはそれらの組合せであり得る。例えば、ネットワーク106は、プライベート・ネットワークに通信可能な様態で結合されているモバイル・ネットワークを含むことがあり、このプライベート・ネットワークは、ときにはイントラネットと称され、ビデオ・コンテンツ・データベース110またはユーザ・デバイス101(1)~101(N)から受け取られたビデオ・コンテンツに対して合成オーディオ・ストリームを追加するために、音声エンジン132との通信など、様々な補助的なサービスを提供する。
【0017】
論じるという目的のために、異なるユーザ・デバイス102(1)~102(N)が図面に現れているが、これらは、キャプチャされたビデオ・コンテンツと同期している合成オーディオ・ストリームを含むように構成可能なビデオ・コンテンツをキャプチャするのに用いられ得るクライアント・デバイスのいくつかの例を表す。合成オーディオ・ストリームは、ユーザ・デバイスに対してローカルな音声エンジン(例えば、122または128)によって、または音声エンジン・サーバ120によってホストされたリモート音声エンジン132によって、作成されることが可能である。すなわち、いくつかの実施形態では、ユーザ・デバイスは、そのメモリ(例えば、ハード・ディスク、RAM、ROM、DVD、ビデオ・テープ、フラッシュ・ドライブなど)に、またはハードウェア・コンポーネントにメディア・コンテンツが記憶されているという点で、ネットワーク106または音声エンジン・サーバ120あるいはその両方から独立であり得る。
【0018】
本明細書では、音声エンジン122および128の機能を、ときには、ユーザ・デバイスと一体化されているという状況で論じることがあり得るが、音声エンジンの機能は遠隔的に(すなわち、リモートにある音声エンジン・サーバ120によって)実行されることが可能である、ということが理解されるだろう。例えば、ユーザ・デバイス102(N)の音声エンジン128の特徴と類似する特徴を有する音声エンジン132を有する音声エンジン・サーバ120が存在することがあり得る。よって、音声エンジン122および128の機能と実質的に類似する機能が、ネットワーク106を経由して、遠隔的に実行されることも可能である。ユーザ・デバイスが十分な計算リソースを有していない場合(例えば、処理能力が十分でない)またはユーザ・デバイスの能力を節約するためあるいはその両方であるときに、これは特に有益である。したがって、ある態様では、本明細書における概念により、1つまたは複数の媒体の機能を遠隔的に実行することでコンピューティング・デバイスの負担を軽減することが可能になるために、コンピューティング技術が改善される。今日では、ユーザ・デバイスは、ポータブル・ハンドセット、スマートフォン、タブレット・コンピュータ、パーソナル・デジタル・アシスタント(PDA)、およびスマート・ウォッチの形態をとるのが典型的であるが、消費者用、医療用、および業務用の電子デバイスを含む他の形態のファクタとして実装されることもあり得る。
【0019】
履歴データ・リポジトリ112は、対応するオーディオ・コンテンツを有するビデオ・コンテンツと関係する履歴データ113の大きな集合を記憶し維持するように構成されている。例えば、履歴データ113は、識別された視覚的特徴を備えたビデオ・コンテンツを含み得る。様々な実施形態で、これらの視覚的特徴は、音声エンジン(例えば、122、128、または132あるいはこれらの組合せ)によって、ときには本明細書で実際のスペクトログラムと称され、識別器ネットワーク(discriminator network)による後の比較のための「ベース・トゥルース」を表す、基準スペクトログラムを作成するのに、用いられることが可能である。いくつかの実施形態では、履歴データ・リポジトリ112は、視覚的特徴と共に、実際のスペクトログラムを含む。ある実施形態では、履歴データ・リポジトリ112に記憶されているデータから学習することができ、履歴データ・リポジトリ112に記憶されているデータに基づいて予測を行うことができるアルゴリズムを構築するのに、機械学習が用いられる。そのようなアルゴリズムは、データ駆動型の予測または決定を行うために、記憶されている以前の入力から、またはそれからのベースラインから、モデルを構築することによって、動作する。機械学習に基づき、パターンと傾向とが識別され、外れ値はどれも、クラスタに属さないものとして識別される。例えば、機械学習は、ビデオ・コンテンツのフレームの視覚的特徴を識別し、予測されるスペクトログラムをビデオ・コンテンツのフレームの視覚的特徴に基づいて生成し、予測されるスペクトログラムに基づいて音声波形を生成するのに、用いることが可能である。様々な実施形態で、これらの機能のそれぞれのための機械モデルを、別個に訓練することができる。
【0020】
本明細書で用いられる場合、視覚的特徴とは、吠えている犬、泣いている赤ん坊、建設現場など、ある光景の主題と関係する。いくつかの実施形態では、視覚的特徴は、支配的特徴と、付随的(例えば、非支配的)特徴とを含み得る。例えば、あるフレームが、消防車と併走している自動車を含むことがあり得るだろう。このシナリオでは、自動車は付随的な特徴であり、他方で、支配的特徴は消防車である。したがって、支配的特徴(すなわち、この例では、消防車)と関連する合成オーディオ波形は強調されるが、他方で、付随的特徴は強調されず(例えば、縮小されるか、または、それどころか無音化される)、それにより、計算論的複雑性が単純化され、主題の音声の強調が改善される。
【0021】
様々な実施形態において、本明細書で論じられている機械学習は、教師あり(supervised)の場合があり得るし、または教師なし(unsupervised)の場合があり得る。教師あり学習の場合は、訓練フェーズの間、音声エンジン(例えば、122、128、または132あるいはこれらの組合せ)に、様々なカテゴリ(例えば、特徴)のそれぞれと関係するデータとして、履歴データ・リポジトリ112から、履歴データ113が提示され得る。別の言い方をすると、履歴データ・リポジトリ112は、音声エンジン132のための教師として、作用する。教師なし学習の場合、履歴データ・リポジトリ112は、受け入れ可能なものとして、どのようなラベルも提供することなく、むしろ、単に、履歴データ113を音声エンジン・サーバ120に提供し、この履歴データ113は、スペクトログラムを予測し、予測されるスペクトログラムがビデオ・コンテンツの視覚的特徴の十分に正確な表現であるかどうかを判断し、予測されるスペクトログラムから合成オーディオ波形を作成するために、そのデータの中でそれ自体の構造を見つけるのに用いられることが可能である。様々な実施形態において、機械学習は、教師あり学習、教師なし学習、半教師あり学習、ナイーブ・ベイズ、ベイジアン・ネットワーク、決定木、ニューラル・ネットワーク、ファジー論理モデル、または確率的分類モデルあるいはこれらの組合せなどの技術を利用し得る。
【0022】
このようにして、訓練フェーズの間に、1つまたは複数のモデルが、機械学習によって作成されるのであるが、これらのモデルは、視覚的特徴を識別し、視覚的特徴に基づいて、予測されるスペクトログラムを提供し、予測されるスペクトログラムが視覚的特徴の妥当な表現であるかどうかを判断し、最終的に、視覚的特徴に基づく合成オーディオ波形を提供することができる。これらのモデルは、次に、アクティブ・フェーズの間に用いられて、ビデオ・フィードを処理し、それに同期している合成オーディオ・ストリームを、後でまたは実質的にリアルタイムで、提供し得る。
【0023】
様々な実施形態において、ビデオ・フィード111は、ビデオ・コンテンツ・データベース110によって提供され得るか、またはユーザ・デバイス102(1)~102(N)によってそれらの中に埋め込まれているカメラにより作成されることが可能である。例示的ユーザ・デバイスについては、後で、より詳細に論じられる。よって、いくつかのシナリオでは、ユーザ・デバイスは、ビデオ・コンテンツをキャプチャできるだけでなく、それを独立に処理し、それにローカルなコンテンツ・エンジン(例えば、122)により適切な合成サウンドトラックを追加することができるという点で、自己完結的であり得る。そのような独立性は、視覚障害者が音声による表現を介して視覚的環境を経験することを可能にするようなアプリケーションにおいて、特に有用であり得る。
【0024】
履歴データ・リポジトリ112と、ビデオ・コンテンツ・データベース110と、音声エンジン・サーバ120とが、例示により、異なるコンピューティング・プラットフォームとして図解されているが、異なる実施形態では、これらのプラットフォームが、様々な組合せとして組み合わされる場合もあり得ることが理解されるだろう。他の実施形態では、これらのコンピューティング・プラットフォームのうちの1つまたは複数が、クラウド120にホストされた仮想マシンまたはソフトウェア・コンテナの形態を有する仮想コンピューティング・デバイスによって実装され、それにより、処理および記憶のための弾力的なアーキテクチャを提供することもあり得る。
【0025】
例示的ユーザ・デバイス
図1の状況で論じられるように、ビデオ・ストリームに対する合成オーディオ・トラックの生成には、異なるタイプのユーザ・デバイスが関係し得る。そのため、
図2は、例示的なユーザ・デバイス200の様々なコンポーネントを高レベルで示すブロック図を図解している。論じるために、この図解は、ユーザ・デバイス200を、ワイヤレス・コンピューティング・デバイスの形態で示しているが、他のコンピューティング・デバイスも同様に考慮されることが理解されるだろう。
【0026】
ユーザ・デバイス200は、1つまたは複数のアンテナ202と、セルラ、Wi-Fi(R)通信、近距離通信技術、または有線通信あるいはそれらの組合せのためのトランシーバ204と、ユーザ・インターフェース206と、1つまたは複数のプロセッサ208と、ハードウェア210と、メモリ230とを含み得る。いくつかの実施形態では、アンテナ202は、基地局に無線信号を送信するアップリンク・アンテナと、基地局からの無線信号を受信するダウンリンク・アンテナとを含み得る。いくつかの他の実施形態では、単一のアンテナが、無線信号の送信と受信との両方を行うことがあり得る。同じまたは他のアンテナが、Wi-Fi(R)通信のために、用いられ得る。これらの信号は、トランシーバ204によって処理され得るのであるが、トランシーバ204は、デジタル・データを受信および送信するように構成されており、ときには、集合的に、ネットワーク・インターフェースと称される。ある実施形態では、ユーザ・デバイス200は、アンテナ202を含んでおらず、外部コンポーネントとの通信は有線通信を介して行われる。
【0027】
ある実施形態では、ユーザ・デバイス200は、ユーザが入力を提供し、ユーザ・デバイス200からの出力を受け取ることを可能にする1つまたは複数のユーザ・インターフェース206を含む。例えば、ユーザ・インターフェース206は、視覚的コンテンツにそれと実質的に同期した合成オーディオ・ストリームを提供するのに用いられ得るデータ出力デバイス(例えば、視覚的なディスプレイ、オーディオスピーカ、ハプティック・デバイスなど)を含むことがあり得る。
【0028】
ユーザ・インターフェース206は、また、1つまたは複数のデータ入力デバイスを含む場合がある。データ入力デバイスは、これらに限定されないが、キーパッド、ノブ/コントロール、キーボード、タッチ・スクリーン、音声認識パッケージ、およびいずれかの他の適切なデバイスまたは他の電子/ソフトウェア選択インターフェースのうちの1つまたは複数の組合せを含み得る。
【0029】
ユーザ・デバイス200は、1つまたは複数のプロセッサ208を含み得るのであるが、これは、シングルコア・プロセッサ、マルチコア・プロセッサ、複合命令セット・コンピューティング(CISC)プロセッサ、ゲーミング・プロセッサ、またはいずれかの他のタイプの適切なプロセッサであり得る。
【0030】
ハードウェア210は、電源とデジタル信号プロセッサ(DSP)とを含み得るが、デジタル信号プロセッサ(DSP)は、シングルコアまたはマルチコアのプロセッサを含み得る。ハードウェア210は、周辺コンポーネントと対話する通信インターフェースを含む、高速通信インターフェースを管理するネットワーク・プロセッサも含み得る。ネットワーク・プロセッサと周辺コンポーネントとは、スイッチング・ファブリックによってリンクされることがあり得る。ハードウェア210は、ハードウェア・デコーダおよびエンコーダ、ネットワーク・インターフェース・コントローラ、またはUSBコントローラあるいはそれらの組合せを含み得る。
【0031】
ハードウェア210は、ビデオまたはオーディオあるいはその両方の情報を取り入れるのに用いられることがある様々なセンサを含み得る。例えば、オーディオ・コンテンツをキャプチャするのに用いられる1つまたは複数のマイクロフォン214と、ビデオ・コンテンツをキャプチャするカメラ218とが存在し得る。このビデオ・コンテンツは、次に、ローカルに音声エンジン242によって、または本明細書で論じられている
図1の音声エンジン・サーバ120のものと類似のリモート音声エンジンによって、強化されることが可能である。
【0032】
ユーザ・デバイス200は、コンピュータ記憶媒体などのコンピュータ可読媒体を用いて実装され得るメモリ230を含む。記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータなどの情報の記憶のためのいずれかの方法または技術において実装された、揮発性および不揮発性の、取り外し可能および取り外し不可能な媒体を含む。コンピュータ記憶媒体は、これらに限定されないが、RAM、ROM、EEPROM、フラッシュ・メモリもしくは他のメモリ技術、CD-ROM、デジタル・バーサタイル・ディスク(DVD)、高精細ビデオ記憶ディスク、もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ、もしくは他の磁気記憶デバイス、またはコンピューティング・デバイスによるアクセスのために情報を記憶するのに用いられることが可能ないずれかの他の非伝送媒体を含む。
【0033】
メモリ230は、ユーザ・デバイス200のプロセッサ208とコントローラとによって実行可能またはアクセス可能である様々なソフトウェア・コンポーネントまたはモジュールを記憶し得る。メモリ230の様々なコンポーネントは、ソフトウェア232とオペレーティング・システム270とを含み得る。ソフトウェア232は、それに実質的に同期した合成オーディオ・ストリームを含むようにビデオ・コンテンツを自動的に適合させる異なる態様を制御するようにそれぞれが構成された、いくつかのモジュールを有する音声エンジン242など、様々なアプリケーション240を含み得る。各モジュールは、さらなる詳細は後述されるが、タスクを実行するまたは抽象データ・タイプを実装するルーチン、プログラム命令、オブジェクト、またはデータ構造あるいはそれらの組合せを、含み得る。
【0034】
ある実施形態では、音声エンジン242は、ビデオ・フィードのセグメント(例えば、フレーム)から視覚的特徴を抽出するように構成されている視覚的特徴モジュール244を含む。ビデオ・フィードのフレームから抽出される視覚的特徴に基づき、予測されるスペクトログラムを作成するように動作するエンコーダ/デコーダ・モジュール246が存在する。予測されるスペクトログラムを用いて、それから合成オーディオ・コンテンツ・セグメントを作成するように動作するボコーダ248が存在する。予測されるスペクトログラムがビデオ・フレームの視覚的特徴の正確な表現であるかどうかを判断するように動作する識別器モジュール250が存在する。上では音声エンジン242のモジュールがソフトウェア・アプリケーションの状況で説明されているが、1つまたは複数の機能が、ハードウェア210において実行されることも可能であるということに留意されたい。
【0035】
オペレーティング・システム270は、ユーザ・デバイス200が、様々なインターフェース(例えば、ユーザ制御、通信インターフェース、またはメモリ入力/出力デバイスあるいはそれらの組合せ)を介してデータを受信および送信すること、ならびにプロセッサ208を用いてデータを処理し出力を生成することを可能にするコンポーネントを含み得る。オペレーティング・システム270は、出力を提示する(例えば、ユーザ・デバイス200の電子ディスプレイ上にメディア・コンテンツの少なくとも一部を表示する、メモリ230にデータを記憶する、別の電子デバイスにデータを送信するなど)提示コンポーネントを含み得る。それに追加して、オペレーティング・システム270は、オペレーティング・システム270と一般的に関連する様々な追加的な機能を実行する他のコンポーネントも含み得る。ユーザ・デバイス200のハードウェアおよびソフトウェアにより、ビデオ・フィードは、それと同期した合成オーディオ・ストリームを含むように構成されることが可能である。
【0036】
例示的ブロック図
図3は、ビデオ・フィードからの生のオーディオ306の生成に関する簡略化された概念ブロック
図300を図解している。一連のフレームを含むビデオ・フィード302が、音声エンジンによって、受け取られる。音声エンジンは、ビデオ・フィード302を、単一フレームの粒度に至るビデオ・セグメントに、分割することができる。別言すると、各フレームは、高レベルの粒度および同期を提供するように、独立に解析されることが可能である。ある実施形態では、計算量を節約するために、所定の数のフレームがスキップされる。用いられるフレームは、本明細書では、「関連フレーム(relevant frames)」と称される。いくつかの実施形態では、すべてのフレームが、関連フレームである。
【0037】
モデル304は、ビデオ・フィード302に実質的に同期しているオーディオを生成するために、フレームに適用される。その目的のため、モデル304は、各関連フレームに対し、エンコーダ/デコーダによってスペクトログラムを作成するように構成されている。次に、一連のスペクトログラムがモデルによって用いられ、ビデオ・フィード302に対して同期している音声306を生成する。生のビデオ・フィードに基づいて音声波形306を生成し得る既知のアプローチは、視覚的コンテンツと生成される音声との間の同期を損なうのであるが、そのような既知のアプローチとは異なり、本明細書で提供されるアプローチは、ビデオ・フィード302の各セグメントに対する予測されるスペクトログラムを用いることにより、ビデオ・フィード302とその生成されたオーディオ306との間における実質的な同期を達成する。訓練フェーズの間に実行されるモデル304の作成については、以下で詳細に論じられる。
【0038】
例示的人工知能技術
上で述べられたように、様々な人工知能技術が、ビデオ・フィードの異なるセグメントの予測されるスペクトログラムに基づいてオーディオ・コンテンツの合成部分を提供するのに用いられることが可能である。スペクトログラムとは、信号が時間と共に変動する場合における、信号の周波数のスペクトルの2次元的な視覚的表現である。本明細書で用いられる場合、それは、ビデオ・ストリームのフレームから抽出された個別的な特徴に対する生の波形の表示を可能にする視覚化ツールである。別の表現をするならば、それは、音声の絵画である。例えば、それは、低音から高音までの音声を構成する周波数と、音声が時間経過と共に変化する様子とを、左から右に示す。
【0039】
いくつかの実施形態では、敵対的生成ネットワーク(GANs)または識別的アプローチ(discriminative approaches)あるいはその両方を、ビデオ・フィードに対する合成オーディオ・コンテンツを生成することと、生成された合成オーディオ・コンテンツがビデオ・フィードの妥当な表現であるかどうかを判断することとのそれぞれのためにモデルを訓練するのに、用いることができる。この点に関して、
図4Aおよび4Bは、識別的および生成的アーキテクチャの例示的ブロック図であり、これらのアーキテクチャは、ビデオ・フィードに対する合成オーディオ・コンテンツを作成するまたは作成されたビデオ・フィードがビデオ・フィードの妥当な表現であるかどうかを判断するあるいはその両方のそれぞれに用いることが可能である。
【0040】
識別器ネットワーク404は、合成オーディオ・コンテンツを作成するのに用いることができるビデオ・フィードの予測されるスペクトログラムがビデオ・フィードの妥当な表現であるかどうかを、予測されるスペクトログラムとグラウンド・トゥルースを表す実際のスペクトログラムとを比較することによって、判断することができる。このようにして、予測されるスペクトログラムに、「本物」または「偽物」というラベル408を付することが可能である。よって、予測されるスペクトログラムの類似性が所定の閾値を超えている場合には、識別器ネットワークは、それを、十分に「本物」として識別し、それによって、識別器ネットワークは、合成オーディオ・コンテンツを作成する際に予測されるスペクトログラムを用いるように、ボコーダに指示することが可能になるが、さらなる詳細については、後で論じられる。
【0041】
数学的に表現するならば、ラベルはyと称され、特徴はxと称される。表現p(y|x)は、「xが与えられたときのyの確率」に関係する。現在考察している例を考えると、この表現は、予測されるスペクトログラムによって提供されるコンテンツがビデオ・フィードの妥当な表現である確率に関係する。このようにして、識別的アルゴリズムは、フレーム(例えば、光景)の予測されるスペクトログラムの特徴を、ラベル(すなわち、「本物」または「偽物」)に写像することが可能である。
【0042】
図4Bにおける生成器ネットワーク424によって表されるGANsに関しては、これらは、一方を他方に対して競争させる(したがって、「敵対的」という用語が用いられる)2つのネットを含むディープ・ニューラル・ネット・アーキテクチャである。GANsは、データのどのような分布でも模倣することを学習する能力を有する。したがって、生成器ネットワーク424は、本明細書では、ときにはエンコーダ/デコーダと称されるのであるが、データ/特徴ブロック422によって表されるビデオ・フィードのフレームの視覚的特徴に基づいて、スペクトログラムを作成することができる。換言すると、(識別的アーキテクチャにおけるように)ある特徴が与えられたときにラベルを予測する代わりに、生成器ネットワーク424は、あるラベルが与えられたときに特徴を予測することができる。例えば、視覚的特徴がビデオ・フィードのフレームにおいて識別されると、生成器ネットワーク424は、スペクトログラムを生成するために、その視覚的特徴を用いることができる。よって、生成器ネットワーク424は、予測されるスペクトログラムを生成するように構成されているが、他方で、識別器ネットワーク404は、その信頼性を求めるためにデータを評価する。
【0043】
以上では生成器および識別器ネットワークを概観したが、次は、識別器ネットワーク506と相互作用する生成器ネットワーク524を含む例示的ニューラル・ネットワーク500の概念ブロック図である
図5を参照する。例えば、生成器ネットワーク524は、ビデオ・フレーム520の視覚的特徴から予測されるスペクトログラム528を作成することができる。予測されるスペクトログラムは、合成オーディオ・コンテンツ530を作成するのに、用いることができる。
【0044】
ある実施形態では、合成オーディオ・コンテンツ530が作成される前に、予測されるスペクトログラム528がビデオ・フレーム520の視覚的特徴の妥当な表現であるかどうかが判断される。その目的のために、識別器ネットワーク506は、予測されるスペクトログラム528が、実際のコンテンツ502に十分に似ているかどうかを判断する。実際のコンテンツ502は、グラウンド・トゥルースを表しており、このグラウンド・トゥルースは、識別器ネットワーク506がそこから学習するデータのコーパスとして用いられることが可能である。予測されるスペクトログラム528を検討するときには、識別器ネットワーク506は、基準となる実際のコンテンツ502に基づいて、生成器ネットワーク524によって生成された予測されるスペクトログラム528が、出力層を表す所定のラベル/分類510の一部であるために十分であるかどうかに関する(例えば、1を最高の確率として、0から1までの)スコアを提供することができる。そうである場合には、合成オーディオ・コンテンツ530を、予想されるコンテンツ528から作成することができる。したがって、生成器ネットワーク524と識別器ネットワーク506との両方は、絶えず学習しているが、対向する目的関数(すなわち、損失関数)を最適化している。
【0045】
図6は、例示的な実施形態による、視覚から音声へのシステム(visual to sound system)600の概念ブロック図である。コンピューティング・デバイスによって生成され得るかまたはビデオ・コンテンツ・リポジトリから受け取られ得るビデオ・コンテンツ602が存在する。例えば、ビデオ・コンテンツ602は、一連のセグメントを含むビデオ・フィードであり得る。各セグメントは、所定の長さを有することがあり得るし、または単一のビデオ・フレームと同様に短いことがあり得る。各セグメント(例えば、フレーム)の視覚的特徴を抽出するように動作する視覚的特徴モジュール608が存在する。例えば、視覚的特徴とは、遊んでいる子供、吠えている犬、手持ち削岩機、動作しているエンジン、エアコンディショナ、救急車、火事などを含む。セグメントのこれらの視覚的特徴は、予測されるスペクトログラム616を提供するために、生成器ネットワークを表すエンコーダ610~デコーダ612によって用いられる。次に、予測されるスペクトログラム616は、その予測されるスペクトログラムに対する合成オーディオ波形622を作成するために、ボコーダ620によって用いられることが可能である。
【0046】
ある実施形態では、予測されるスペクトログラムがビデオ・セグメントの視覚的特徴608の妥当な表現であるかどうかを判断するように構成されている識別器モジュール630が存在する。ある実施形態では、この判断は、合成オーディオ波形622がボコーダ620によって生成される前に実行される。その目的のため、視覚的特徴608は、予測されるスペクトログラム616と共に、予測されるスペクトログラム616が所定の閾値を超える実際のスペクトログラム640との類似性を有するかどうかを判断するために、類似の視覚的特徴を有する実際のスペクトログラム640と比較される。したがって、実際のスペクトログラム640は、コンテンツのグラウンド・トゥルースを表す。類似性が所定の閾値を超えると判断すると、ボコーダ620は、それから合成オーディオ波形622を生成するのに、予測されるスペクトログラム616を用いることができる。
【0047】
ある実施形態では、WaveNetなど、PixelCNNアーキテクチャを有するボコーダが、用いられる。例えば、そのような生成モデルは、異なるジャンルの音声を模倣可能であり人の発言を含む発言を含む様々な音声を、生成することができる。例えば、訓練フェーズの間、異なる視覚的特徴の実際のサウンドトラックを含む履歴データが、ボコーダ620を訓練するのに用いられる。訓練が完了すると、ボコーダは、現実的な音声を生じる合成オーディオ波形622を生成するのに用いることが可能である。ビデオ・コンテンツ602の各セグメントに対して合成オーディオ波形622を生成すると、それらのセグメントのそれぞれは、ビデオ・フィード602と同期したサウンドトラックを提供するために、連続するように連結されることが可能である。
【0048】
例示的プロセス
以上では、アーキテクチャ100、例示的ユーザ・デバイス200、例示的人工知能技術400A/Bおよび500、ならびに視覚から音声へのシステム600の概念ブロック図を概観したが、次には、例示的コール・フロー・プロセスに関して高レベルで論じることを考えるのが有益であろう。その目的で、
図7は、実質的にそれに同期した合成オーディオ・ストリームを含むようにビデオ・コンテンツを自動的に適合させるための、例示的なプロセス700を提示している。プロセス800は、ときには本明細書でエンコーダ/デコーダと称される生成器ネットワークのためにモデルが訓練されることが可能な、訓練フェーズを図解している。プロセス700および800は、それぞれ、ハードウェア、ソフトウェア、またはそれらの組合せとしての実装が可能な一連の動作を表すプロセスにおけるブロックの集まりとして、図解されている。ソフトウェアの状況では、ブロックは、1つまたは複数のプロセッサによって実行されると、記載された動作を行うコンピュータ実行可能命令を表す。一般的に、コンピュータ実行可能命令は、特定の機能を行うまたは特定の抽象データ・タイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造、および同様のものを含み得る。動作が説明されている順序は、制限として解釈されることが意図されておらず、プロセスを実装するために、説明されているブロックをいずれかの個数だけいずれかの順序で組み合わせること、または並行して行うこと、あるいはその両方を行うことが可能である。論じるために、プロセス700および800は、
図1のアーキテクチャ100を参照して、説明される。より具体的には、音声エンジン132は、音声エンジン・サーバ120によってホストされることが想定されるのであるが、他方で、他の実施形態では、音声エンジンがユーザ・デバイス(例えば、102(1)~102(N))の一部である場合もあり得ることが理解されるだろう。
【0049】
ブロック702では、ビデオ・フィードが、サウンド・エンジン132によって受け取られる。様々な実施形態では、ビデオ・コンテンツが、ビデオ・コンテンツ・リポジトリ110またはユーザ・デバイス(例えば、102(1)~102(N))から受け取られることもあり得る。
【0050】
ブロック704では、ビデオ・フィードが、音声エンジン132によって、一連のビデオ・セグメントに分割される。ある実施形態では、ビデオ・セグメントは、単一のビデオ・フレームであり、それにより、非常に精細な粒度を提供する。
【0051】
ブロック706では、各ビデオ・セグメントに対し、そのビデオ・セグメントの視覚的特徴が抽出される。例えば、ビデオ・セグメントの1つまたは複数のトピックが、識別される。いくつかのシナリオでは、ビデオ・セグメントは、支配的なトピックと、1つまたは複数の非支配的なトピックとを含むことがあり得る。後者は、音声エンジン132によって、合成オーディオ波形において強調されないことが可能である。
【0052】
ブロック708では、予測されるスペクトログラムが、抽出された視覚的特徴に基づいて、生成される。
【0053】
ブロック710では、合成オーディオ波形が、音声エンジン132によって、予測されるスペクトログラムに基づいて、生成される。その目的のため、WaveNetボコーダなどのボコーダを、用いることができる。ボコーダは、それから学習することができる履歴データを提供することにより、訓練フェーズの間に、訓練させることが可能である。
【0054】
ブロック712では、すべての合成オーディオ波形が、ビデオ・フィードと同期した合成サウンドトラックを生成するため、連続するように連結される。
【0055】
次に、反復的な訓練フェーズの一例を説明している
図8を参照する。ブロック802では、1つまたは複数のビデオ・フィードを含む履歴データ113が、音声エンジン132によって、履歴データ・リポジトリ112から受け取られる。
【0056】
ブロック804では、各ビデオ・フィードが、音声エンジン132によって、一連のビデオ・セグメントに分割される。
【0057】
ブロック806では、ビデオ・フィードの各ビデオ・セグメントに対し、ビデオ・セグメントの視覚的特徴が、音声エンジン132によって、抽出される。
【0058】
ブロック808では、音声エンジン132が、抽出された視覚的特徴に基づいて、予測されるスペクトログラムを生成する。
【0059】
ブロック810では、グラウンド・トゥルースを表す実際のスペクトログラムと予測されるスペクトログラムとが、これら2つのスペクトログラムの間の類似性のレベルを識別するために、音声エンジン132の識別器ネットワークによって、比較される。
【0060】
ブロック812では、類似性のレベルが所定の閾値を超えると判断する(すなわち、ブロック812において「はい」)と、予測されるスペクトログラムは、抽出された視覚的特徴の妥当な表現であると識別される。すると、このスペクトログラムが、セグメントに対する合成オーディオを生成する(すなわち、ブロック824)のに用いられることが可能になる。しかし、類似性のレベルが所定の閾値を超えないと判断する(すなわち、判断ブロック812における「いいえ」)ときには、プロセスは、ブロック816に進み、その予測されるスペクトログラムは、間違った表現であると識別され、したがって拒絶される。この反復的なプロセスは、次に、ブロック808に進み、新たな予測されるスペクトログラムが生成される。提供される訓練が多ければ多いほど、本明細書で論じられているモデルは、ますます正確になる。
【0061】
例示的コンピュータ・プラットフォーム
上述されたように、それと実質的に同期した合成オーディオ・ストリームを含むようにビデオ・ストリームを自動的に適合させることに関係する機能は、
図1に示されているように、無線または有線通信を介してデータ通信のために接続されている1つまたは複数のコンピューティング・デバイスを用いて、行われることが可能である。モバイル・デバイスの形態を有する例示的ユーザ・デバイス200は、
図2の状況で既に論じられた。
図9は、ネットワーク接続された様々なコンポーネントとの通信が可能なユーザ・デバイスまたは音声エンジン・サーバ120など、コンピュータ・ハードウェア・プラットフォームの機能ブロック図の図解である。
【0062】
コンピュータ・プラットフォーム900は、中央処理装置(CPU)904、ハード・ディスク・ドライブ(HDD)906、ランダム・アクセス・メモリ(RAM)またはリード・オンリ・メモリ(ROM)908あるいはその両方、キーボード910、マウス912、ディスプレイ914、および通信インターフェース916を含み得るが、これらは、システム・バス902に接続されている。
【0063】
ある実施形態において、HDD906は、本明細書に説明される様態で、音声エンジン940など、様々なプロセスを実行することができるプログラムを記憶することを含む能力を有する。音声エンジン940は、異なる機能を行うように構成された様々なモジュールを有し得る。例えば、ビデオ・フィードのセグメント(例えば、フレーム)から視覚的特徴を抽出するように構成されている視覚的特徴モジュール942が、存在し得る。予測されるスペクトログラムをビデオ・フィードのフレームから抽出される視覚的特徴に基づいて作成するように動作する、エンコーダ/デコーダ・モジュール944が存在する。それから合成オーディオ・コンテンツ・セグメントを作成するために予測されるスペクトログラムを用いるように動作する、ボコーダ・モジュール946が存在する。予測されるスペクトログラムがビデオ・フレームの視覚的特徴の正確な表現であるかどうかを判断するように動作する、識別器モジュール948が存在する。ビデオ・コンテンツ・リポジトリ110、履歴データ・リポジトリ112、およびユーザ・デバイス102(1)~102(N)などの、1つまたは複数のコンピューティング・デバイスおよびデータベースと相互作用するように動作する相互作用モジュール956が存在することもあり得る。音声エンジン940のモジュールは、HDD906の状況で上述されているが、1つまたは複数の機能がハードウェアとして行われることもあり得ることに、留意されるべきである。
【0064】
ある実施形態では、Apache(R)などのプログラムが、ウェブ・サーバとしてシステムを動作させるために記憶され得る。ある実施形態では、HDD906は、JVM(Java(R)仮想マシン)を実現するためのJava(R)ランタイム環境プログラムに対するものなど、1つまたは複数のライブラリ・ソフトウェア・モジュールを含む実行アプリケーションを記憶することができる。
【0065】
結論
本明細書で論じられてきたコンポーネント、ステップ、特徴、オブジェクト、利点、および効果は、単なる例示である。それらは、いずれも、またそれらに関連する議論も、保護範囲を制限することは意図していない。本明細書では様々な効果が論じられてきたが、すべての実施形態がすべての効果を必ずしも含むとは限らないということは、理解されるだろう。そうではないと明記されていない限り、以下に続く請求項を含め、本明細書に明記されているすべての測定値、値、レーティング、位置、大きさ、サイズ、および他の仕様は、概算であって、厳密ではない。それらは、それらが関連する機能およびそれらに関連する技術分野での慣例と矛盾のない合理的な範囲を有することが意図されている。
【0066】
多くの他の実施形態もまた、予期される。それらは、より少ない、追加的な、または異なるあるいはそれらの組合せである、コンポーネント、ステップ、特徴、オブジェクト、利点、および効果を有する実施形態を含む。それらはまた、コンポーネントまたはステップあるいはその両方が、異なる配置または順序を有するあるいはその両方であるような実施形態を含む。
【0067】
本開示の態様は、本開示の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のコール・フロー図解またはブロック図あるいはその両方を参照して、本明細書で説明されている。フローチャート図解またはブロック図あるいはその両方の各ステップと、コール・フロー図解またはブロック図あるいはその両方における複数のブロックの組合せとは、コンピュータ可読プログラム命令によって実施可能であることが、理解されるだろう。
【0068】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令がコール・フロー・プロセスまたはブロック図あるいはその両方の1つまたは複数のブロックで指定されている機能/作用を実装するための手段を作成するように、コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供され、マシンを構成し得る。これらのコンピュータ可読プログラム命令は、命令が記憶されているコンピュータ可読記憶媒体がコール・フローまたはブロック図あるいはその両方の1つまたは複数のブロックで指定されている機能/作用の態様を実装する命令を含む製品を構成するように、コンピュータ、プログラム可能なデータ処理装置、または他のデバイスあるいはそれらの組合せに特定の様態で機能するように命じることができるコンピュータ可読記憶媒体に記憶され得る。
【0069】
これらのコンピュータ可読プログラム命令は、また、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイス上に読み込まれ得るのであって、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイス上で実行される命令が、コール・フロー・プロセスまたはブロック図あるいはその両方の1つまたは複数のブロックで指定されている機能/作用を実装するように、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイス上で実行される一連の動作ステップに、コンピュータ実装プロセスを生じさせる。
【0070】
図におけるフローチャートおよびブロック図は、本開示の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を図解している。この点に関し、コール・フロー・プロセスまたはブロック図における各ブロックは、特定された論理機能を実装するための1つまたは複数の実行可能な命令を含め、命令のモジュール、セグメント、または一部を表し得る。いくつかの代替的な実装形態では、ブロックに記載されている機能が、図に記載されている順序とは異なる順序で発生することがあり得る。例えば、連続して示される2つのブロックが、実際には、実質的に同時に実行されることがあり得るし、または、これらのブロックが、ときには、関与する機能性に応じて、逆の順序で実行されることもあり得る。ブロック図またはコール・フロー図解あるいはその両方の各ブロックと、ブロック図またはコール・フロー図解あるいはその両方における複数のブロックの組合せとは、特定された機能もしくは作用を行うまたは専用ハードウェアとコンピュータ命令との組合せを実行する専用ハードウェア・ベースのシステムによって実装され得る、ということにも留意されたい。