JP7846831B2 - 同期通信のためのオーディオ合成 - Google Patents

同期通信のためのオーディオ合成

Info

Publication number
JP7846831B2
JP7846831B2 JP2025519615A JP2025519615A JP7846831B2 JP 7846831 B2 JP7846831 B2 JP 7846831B2 JP 2025519615 A JP2025519615 A JP 2025519615A JP 2025519615 A JP2025519615 A JP 2025519615A JP 7846831 B2 JP7846831 B2 JP 7846831B2
Authority
JP
Japan
Prior art keywords
audio stream
audio
performance
synthesized
client device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2025519615A
Other languages
English (en)
Other versions
JP2025535711A (ja
Inventor
マヘシュ・クマール・ナンドワナ
キラン・バト
モーガン・マクガイア
Original Assignee
ロブロックス・コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ロブロックス・コーポレーション filed Critical ロブロックス・コーポレーション
Publication of JP2025535711A publication Critical patent/JP2025535711A/ja
Application granted granted Critical
Publication of JP7846831B2 publication Critical patent/JP7846831B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0008Associated control or indicating means
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/36Accompaniment arrangements
    • G10H1/361Recording/reproducing of accompaniment for use with an external source, e.g. karaoke systems
    • G10H1/368Recording/reproducing of accompaniment for use with an external source, e.g. karaoke systems displaying animated or moving pictures synchronized with the music or audio part
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • G10L13/04Details of speech synthesis systems, e.g. synthesiser structure or memory management
    • G10L13/047Architecture of speech synthesisers
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/167Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/003Changing voice quality, e.g. pitch or formants
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/04Time compression or expansion
    • G10L21/055Time compression or expansion for synchronising with other signals, e.g. video signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Telephonic Communication Services (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

関連出願の相互参照
本出願は、国際出願であり、内容全体が参照によって本明細書に組み込まれる、SYNTHESIZING AUDIO FOR SYNCHRONOUS COMMUNICATIONと題する、2022年10月4日に出願した米国特許出願第17/959,736号に対して、35U.S.C.§119(e)に基づく優先権の利益を主張するものである。
物理的に異なる場所にいるが、コンピュータネットワークによって接続された複数の人が、同期して音楽を再生すること、歌うこと、または話すことは不可能である。これは、人P1によって観察される人P0のパフォーマンスが、コンピュータネットワークの伝送遅延により常に過去のものであるからである。n-1人のパフォーマP1、P2、P3、...P(n-1)の各々がパフォーマP0に対して正確に適切な時間量だけ遅延した場合、P0は、他の全員が互いに同期しているのを観察するが、自分自身は他のパフォーマと同期することができない。
遅延は、ネットワークレイテンシ、入力レイテンシ、および処理レイテンシの少なくとも3つのタイプのレイテンシのうちの1つまたは複数に起因する場合がある。ネットワークレイテンシは、ネットワークにおいて使用される物理機器に起因するネットワーク伝送時間における不足、またはノードにおける処理時間における遅延が存在する場合に発生する。入力レイテンシは、ユーザが応答を遅延した場合、ユーザが能力が制限されたクライアントデバイスを使用している場合などに発生する。処理レイテンシは、モデレーション分析を実行するために遅延が意図的に導入された場合に発生し得る。
本明細書で提供される背景説明は、本開示のコンテキストを提示する目的のためのものである。この背景セクションで説明されている範囲までの現在名前が挙げられている発明者の研究、ならびに出願時に従来技術として適格ではない可能性がある明細書本文の態様は、本開示に対する従来技術として明示的にも暗示的にも認められない。
実施形態は、概して、同期通信のためのオーディオを合成するシステムおよび方法に関する。一態様によれば、コンピュータにより実施される方法は、第1のクライアントデバイスに関連付けられたパフォーマンスの第1のオーディオストリームを受信するステップを含む。方法は、パフォーマンスの合計時間よりも短いパフォーマンスの時間ウィンドウ中に、第1のオーディオストリームのオーディオ特徴に基づいてパフォーマンスの将来を予測する合成された第1のオーディオストリームを生成するステップと、合成された第1のオーディオストリームと第2のクライアントデバイスに関連付けられた第2のオーディオストリームとを同期させる結合されたオーディオストリームを形成するために、合成された第1のオーディオストリームと第2のオーディオストリームとを混合するステップとをさらに含み、パフォーマンスが完了するまで、時間ウィンドウが進められ、生成するステップおよび混合するステップが繰り返される。
いくつかの実施形態において、方法は、第1のオーディオストリームの受信に応答して、第1のオーディオストリームに関連付けられたパフォーマンスのパフォーマンス識別子を決定するステップと、パフォーマンス識別子に基づいて参照オーディオを受信するステップとをさらに含む。いくつかの実施形態において、合成された第1のオーディオストリームを生成するステップは、第1のオーディオストリームと参照オーディオとの間の時間オフセットを決定するステップを含み、時間オフセットは、第1のオーディオストリームが参照オーディオとは異なる開始点を有する場合に発生し、合成された第1のオーディオストリームを生成するステップは、時間オフセットにさらに基づく。いくつかの実施形態において、合成された第1のオーディオストリームを生成するステップは、参照オーディオのレートと比較した第1のオーディオストリームのレートを決定するステップを含み、合成された第1のオーディオストリームを生成するステップは、参照オーディオのレートと比較した第1のオーディオストリームのレートにさらに基づく。いくつかの実施形態において、第1のオーディオストリームのオーディオ特徴は、ピッチ、レート、位相、またはそれらの組合せのグループから選択される。いくつかの実施形態において、第1のオーディオストリームのオーディオ特徴は、第1のオーディオストリームにおいて検出された1つまたは複数の話者識別子を含む。いくつかの実施形態において、方法は、第1のオーディオストリームと第2のオーディオストリームとの間の時間差がしきい値時間差を超えていることを判定するステップと、パフォーマンスに関するユーザガイダンスと、第2のクライアントデバイスに関連付けられたパフォーマに、第1のオーディオストリームと第2のオーディオストリームとの間の時間差を短縮する方法においてパフォーマンスするように促す移動インジケータとを含むユーザインターフェースを表示するためのグラフィカルデータを生成するステップとをさらに含む。いくつかの実施形態において、方法は、第2のクライアントデバイスが配置されている環境の音響と一致するように、結合されたオーディオストリームを変更するステップをさらに含む。いくつかの実施形態において、合成された第1のオーディオストリームを生成するステップは、第1のオーディオストリーム内でパフォーマンスの一部がスキップされたことを識別するステップと、スキップされたパフォーマンスの一部を修正するために第1のオーディオストリームを合成するステップとを含む。いくつかの実施形態において、方法は、グラフィカルに表示されるパフォーマのアクションと一致するように、結合されたオーディオストリームを同期させるステップをさらに含む。
いくつかの実施形態において、デバイスは、プロセッサと、プロセッサに結合され、命令が記憶されたメモリとを含み、命令が、プロセッサによって実行されると、プロセッサに、第1のクライアントデバイスに関連付けられたパフォーマンスの第1のオーディオストリームを受信することと、パフォーマンスの合計時間よりも短いパフォーマンスの時間ウィンドウ中に、第1のオーディオストリームのオーディオ特徴に基づいてパフォーマンスの将来を予測する合成された第1のオーディオストリームを生成することと、合成された第1のオーディオストリームと第2のクライアントデバイスに関連付けられた第2のオーディオストリームとを同期させる結合されたオーディオストリームを形成するために、合成された第1のオーディオストリームと第2のオーディオストリームとを混合することとを含む動作を実行させ、パフォーマンスが完了するまで、時間ウィンドウが進められ、生成することおよび混合することが繰り返される。
いくつかの実施形態において、第1のオーディオストリームの受信に応答して、第1のオーディオストリームに関連付けられたパフォーマンスのパフォーマンス識別子を決定し、パフォーマンス識別子に基づいて参照オーディオを受信する。いくつかの実施形態において、合成された第1のオーディオストリームを生成することは、第1のオーディオストリームと参照オーディオとの間の時間オフセットを決定することを含み、時間オフセットは、第1のオーディオストリームが参照オーディオとは異なる開始点を有する場合に発生し、合成された第1のオーディオストリームを生成することは、時間オフセットにさらに基づく。いくつかの実施形態において、合成された第1のオーディオストリームを生成することは、参照オーディオのレートと比較した第1のオーディオストリームのレートを決定することを含み、合成された第1のオーディオストリームを生成することは、参照オーディオのレートと比較した第1のオーディオストリームのレートにさらに基づく。いくつかの実施形態において、第1のオーディオストリームのオーディオ特徴は、ピッチ、レート、位相、またはそれらの組合せのグループから選択される。
いくつかの実施形態において、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに動作を実行させる命令が記憶された非一時的コンピュータ可読媒体であって、動作は、第1のクライアントデバイスに関連付けられたパフォーマンスの第1のオーディオストリームを受信することと、パフォーマンスの合計時間よりも短いパフォーマンスの時間ウィンドウ中に、第1のオーディオストリームのオーディオ特徴に基づいてパフォーマンスの将来を予測する合成された第1のオーディオストリームを生成することと、合成された第1のオーディオストリームと第2のクライアントデバイスに関連付けられた第2のオーディオストリームとを同期させる結合されたオーディオストリームを形成するために、合成された第1のオーディオストリームと第2のオーディオストリームとを混合することとを含み、パフォーマンスが完了するまで、時間ウィンドウが進められ、生成することおよび混合することが繰り返される。
いくつかの実施形態において、第1のオーディオストリームの受信に応答して、第1のオーディオストリームに関連付けられたパフォーマンスのパフォーマンス識別子を決定し、パフォーマンス識別子に基づいて参照オーディオを受信する。いくつかの実施形態において、合成された第1のオーディオストリームを生成することは、第1のオーディオストリームと参照オーディオとの間の時間オフセットを決定することを含み、時間オフセットは、第1のオーディオストリームが参照オーディオとは異なる開始点を有する場合に発生し、合成された第1のオーディオストリームを生成することは、時間オフセットにさらに基づく。いくつかの実施形態において、合成された第1のオーディオストリームを生成することは、参照オーディオのレートと比較した第1のオーディオストリームのレートを決定することを含み、合成された第1のオーディオストリームを生成することは、参照オーディオのレートと比較した第1のオーディオストリームのレートにさらに基づく。いくつかの実施形態において、第1のオーディオストリームのオーディオ特徴は、ピッチ、レート、位相、またはそれらの組合せのグループから選択される。
本出願は、有利には、第1のオーディオストリームのオーディオ特徴に基づいてパフォーマンスの将来を予測する合成された第1のオーディオストリームを生成し、オーディオストリームを作成したユーザが同期して歌っているかまたは話しているように認識されるように、合成された第1のオーディオストリームと第2のクライアントデバイスに関連付けられた第2のオーディオストリームとを同期させる結合されたオーディオストリームを形成するために、合成された第1のオーディオストリームと第2のオーディオストリームとを混合するメタバースエンジンおよび/またはメタバースアプリケーションについて説明する。合成された第1のオーディオストリームの生成、および合成された第1のオーディオストリームと第2のオーディオストリームとを混合することは、第1のオーディオデバイス、第2のオーディオデバイス、およびサーバの組合せを含む、異なるデバイス上で実行され得る。結果として、方法は、複数のデバイスにわたって分散され、ストリーミングプロセス、合成プロセス、または混合プロセスにおける任意の遅延は、パフォーマンスを聞いているユーザがいかなるレイテンシも感じないように、混合ステップによって隠される。
本明細書で説明するいくつかの実施形態による、同期通信のためのオーディオを合成するための例示的なネットワーク環境のブロック図である。 本明細書で説明するいくつかの実施形態による、同期通信のためのオーディオを合成するための例示的なコンピューティングデバイスのブロック図である。 本明細書で説明するいくつかの実施形態による、機械学習モデルの例示的なアーキテクチャのブロック図である。 本明細書で説明するいくつかの実施形態による、機械学習モデルの別の例示的なアーキテクチャのブロック図である。 本明細書で説明するいくつかの実施形態による、パフォーマンスのタイミングの態様を変更するようにユーザをガイドする例示的なユーザインターフェースの図である。 本明細書で説明するいくつかの実施形態による、クライアントデバイスとサーバとの間のデータの伝送を示す例示的なフロー図である。 本明細書で説明するいくつかの実施形態による、オーディオストリームを合成するための例示的なフロー図である。 本明細書で説明するいくつかの実施形態による、同期通信のためのオーディオストリームを合成するための例示的なフロー図である。 本明細書で説明するいくつかの実施形態による、サーバを使用して同期通信のためのオーディオを合成するための例示的なフロー図である。
ネットワーク環境100
図1は、同期通信のためのオーディオを合成するための例示的な環境100のブロック図を示す。いくつかの実施形態において、環境100は、ネットワーク105を介して結合されたサーバ101と、クライアントデバイス115a...nとを含む。ユーザ125a...nは、それぞれのクライアントデバイス115a...nに関連付けられ得る。図1および残りの図において、参照番号の後の文字、例えば、「115a」は、その特定の参照番号を有する要素への参照を表す。後に続く文字のないテキスト内の参照番号、例えば、「115」は、その参照番号を有する要素への一般的な参照を表す。いくつかの実施形態において、環境100は、図1に示されていない他のサーバまたはデバイスを含み得る。例えば、サーバ101は、複数のサーバ101であり得る。
サーバ101は、各々がプロセッサと、メモリと、ネットワーク通信ハードウェアとを含む1つまたは複数のサーバを含む。いくつかの実施形態において、サーバ101は、ハードウェアサーバである。サーバ101は、ネットワーク105に通信可能に結合される。いくつかの実施形態において、サーバ101は、クライアントデバイス115にデータを送信し、クライアントデバイス115からデータを受信する。サーバ101は、メタバースエンジン103と、データベース199とを含み得る。
いくつかの実施形態において、メタバースエンジン103は、仮想メタバース内の2人以上のユーザに関連付けられたクライアントデバイス115間の通信、例えば、メタバース内の同じ場所における通信、同じメタバース体験内の通信、またはメタバースアプリケーション内の友人間の通信を促進するように動作可能なコードとルーチンとを含む。ユーザは、メタバース内で様々な人口統計(例えば、様々な年齢、地域、言語など)にわたって対話する。
いくつかの実施形態において、メタバースエンジン103は、第1のオーディオストリームのオーディオ特徴に基づいてパフォーマンスの将来を予測する合成された第1のオーディオストリームを生成するステップと、合成された第1のオーディオストリームと第2のクライアントデバイスに関連付けられた第2のオーディオストリームとを同期させる結合されたオーディオストリームを形成するために、合成された第1のオーディオストリームと第2のオーディオストリームとを混合するステップとのうちの一部またはすべてを実行する。ステップがどのように分割されるのかに関する異なる実施形態について、以下により詳細に論じる。
いくつかの実施形態において、メタバースエンジン103は、中央処理装置(CPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、任意の他のタイプのプロセッサ、またはそれらの組合せを含むハードウェアを使用して実装される。いくつかの実施形態において、メタバースエンジン103は、ハードウェアとソフトウェアとの組合せを使用して実装される。
データベース199は、非一時的コンピュータ可読メモリ(例えば、ランダムアクセスメモリ)、キャッシュ、ドライブ(例えば、ハードドライブ)、フラッシュドライブ、データベースシステム、またはデータを記憶することができる別のタイプの構成要素もしくはデバイスであり得る。データベース199は、複数のコンピューティングデバイス(例えば、複数のサーバコンピュータ)にもまたがり得る複数のストレージ構成要素(例えば、複数のドライブまたは複数のデータベース)も含み得る。データベース199は、トレーニングされた機械学習モデルのトレーニングデータセット、参照オーディオなどの、メタバースエンジン103に関連付けられたデータを記憶し得る。
クライアントデバイス115は、メモリと、ハードウェアプロセッサとを含むコンピューティングデバイスであり得る。例えば、クライアントデバイス115は、モバイルデバイス、タブレットコンピュータ、携帯電話、ウェアラブルデバイス、ヘッドマウントディスプレイ、モバイル電子メールデバイス、携帯ゲームプレーヤ、携帯音楽プレーヤ、リーダデバイス、またはネットワーク105にアクセスすることができる別の電子デバイスを含み得る。
クライアントデバイス115aは、メタバースアプリケーション104aを含み、クライアントデバイス115nは、メタバースアプリケーション104bを含む。いくつかの実施形態において、ユーザ125aは、クライアントデバイス115a上のメタバースアプリケーション104aを使用して、第1のオーディオストリームなどの通信を生成し、通信は、サーバ101上のメタバースエンジン103に送信される。サーバ101は、ユーザ125nのためのクライアントデバイス115b上のメタバースアプリケーション104bに通信を送信する。
いくつかの実施形態において、メタバースアプリケーション104は、第1のオーディオストリームのオーディオ特徴に基づいてパフォーマンスの将来を予測する合成された第1のオーディオストリームを生成するステップと、合成された第1のオーディオストリームと第2のクライアントデバイスに関連付けられた第2のオーディオストリームとを同期させる結合されたオーディオストリームを形成するために、合成された第1のオーディオストリームと第2のオーディオストリームとを混合するステップとのうちの一部またはすべてを実行する。例えば、クライアントデバイス115a上のメタバースアプリケーション104aは、合成された第1のオーディオストリームを生成し得、クライアントデバイス115n乗のメタバースアプリケーション104bは、合成された第1のオーディオストリームと第2のオーディオストリームとを混合し得る。他の実施形態において、合成と混合との両方は、サーバ101において実行され得、クライアントデバイス115n上のメタバースアプリケーション104bは、混合された合成された第1のオーディオストリームおよび第2のオーディオストリームを、スピーカを介して出力する。
図示の実施形態において、環境100のエンティティは、ネットワーク105を介して通信可能に結合される。ネットワーク105は、公共ネットワーク(例えば、インターネット)、プライベートネットワーク(例えば、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN))、有線ネットワーク(例えば、イーサネットネットワーク)、ワイヤレスネットワーク(例えば、802.11ネットワーク、Wi-Fi(登録商標)ネットワーク、またはワイヤレスLAN(WLAN))、セルラーネットワーク(例えば、ロングタームエボリューション(LTE)ネットワーク)、ルータ、ハブ、スイッチ、サーバコンピュータ、またはそれらの組合せを含み得る。図1は、サーバ101と、クライアントデバイス115とに結合された1つのネットワーク105を示しているが、実際には、1つまたは複数のネットワーク105が、これらのエンティティに結合され得る。
コンピューティングデバイスの例200
図2は、本明細書で説明する1つまたは複数の特徴を実装するために使用され得る例示的なコンピューティングデバイス200のブロック図である。コンピューティングデバイス200は、任意の適切なコンピュータシステム、サーバ、または他の電子デバイスもしくはハードウェアデバイスとすることができる。いくつかの実施形態において、コンピューティングデバイス200は、サーバ101である。いくつかの実施形態において、コンピューティングデバイス200は、クライアントデバイス115である。
いくつかの実施形態において、コンピューティングデバイス200は、各々がバス218を介して結合された、プロセッサ235と、メモリ237と、入力/出力(I/O)インターフェース239と、マイクロホン241と、スピーカ243と、ディスプレイ245と、ストレージデバイス247とを含む。コンピューティングデバイス200がサーバ101であるかクライアントデバイス115であるかに応じて、コンピューティングデバイス200のいくつかの構成要素は、存在しない場合がある。例えば、コンピューティングデバイス200がサーバ101である場合、コンピューティングデバイスは、マイクロホン241とスピーカ243とを含まない場合がある。いくつかの実施形態において、コンピューティングデバイス200は、図2に示されていない追加の構成要素を含む。
プロセッサ235は、信号線222を介してバス218に結合され得、メモリ237は、信号線224を介してバス218に結合され得、I/Oインターフェース239は、信号線226を介してバス218に結合され得、マイクロホン241は、信号線228を介してバス218に結合され得、スピーカ243は、信号線230を介してバス218に結合され得、ディスプレイ245は、信号線232を介してバス218に結合され得、ストレージデバイス247は、信号線234を介してバス218に結合され得る。
プロセッサ235は、計算を実行し、ディスプレイデバイスに命令を提供するための算術論理ユニット、マイクロプロセッサ、汎用コントローラ、または何か他のプロセッサアレイを含む。プロセッサ235は、データを処理し、複合命令セットコンピュータ(CISC)アーキテクチャ、縮小命令セットコンピュータ(RISC)アーキテクチャ、または命令セットの組合せを実装するアーキテクチャを含む様々なコンピューティングアーキテクチャを含み得る。図2は、単一のプロセッサ235を示しているが、複数のプロセッサ235が含まれ得る。異なる実施形態において、プロセッサ235は、シングルコアプロセッサ、またはマルチコアプロセッサであり得る。他のプロセッサ(例えば、グラフィックス処理ユニット)、オペレーティングシステム、センサ、ディスプレイ、および/または物理的構成が、コンピューティングデバイス200の一部であり得る。
メモリ237は、プロセッサ235によって実行され得る命令、および/またはデータを記憶する。命令は、本明細書で説明する技法を実行するためのコードおよび/またはルーチンを含み得る。メモリ237は、ダイナミックランダムアクセスメモリ(DRAM)デバイス、スタティックRAM、または何か他のメモリデバイスであり得る。いくつかの実施形態において、メモリ237は、スタティックランダムアクセスメモリ(SRAM)デバイスもしくはフラッシュメモリなどの不揮発性メモリ、またはハードディスクドライブ、コンパクトディスク読み取り専用メモリ(CD-ROM)デバイス、DVD-ROMデバイス、DVD-RAMデバイス、DVD-RWデバイス、フラッシュメモリデバイス、もしくはより永続的に情報を記憶するための何か他の大容量ストレージデバイスを含む同様の永続的ストレージデバイスおよび媒体も含む。メモリ237は、以下でより詳細に説明する、メタバースエンジン103を実行するように動作可能なコードとルーチンとを含む。
I/Oインターフェース239は、コンピューティングデバイス200を他のシステムおよびデバイスとインターフェースすることを可能にする機能を提供することができる。インターフェースされたデバイスは、コンピューティングデバイス200の一部として含めることができ、または別個にしてコンピューティングデバイス200と通信することができる。例えば、ネットワーク通信デバイス、ストレージデバイス(例えば、メモリ237および/またはストレージデバイス247)、および入力/出力デバイスは、I/Oインターフェース239を介して通信することができる。別の例において、I/Oインターフェース239は、サーバ101からデータを受信し、データをメタバースエンジン103、および合成機械学習モジュール204などのメタバースエンジン103の構成要素に供給することができる。いくつかの実施形態において、I/Oインターフェース239は、入力デバイス(キーボード、ポインティングデバイス、タッチスクリーン、マイクロホン241、センサなど)および/または出力デバイス(ディスプレイデバイス、スピーカ243、モニタなど)などのインターフェースデバイスに接続することができる。
I/Oインターフェース239に接続することができるインターフェースされたデバイスのいくつかの例は、コンテンツ、例えば、画像、ビデオ、および/または本明細書で説明する出力アプリケーションのユーザインターフェースを表示し、ユーザからのタッチ(またはジェスチャ)入力を受信するために使用することができるディスプレイ245を含むことができる。ディスプレイ245は、液晶ディスプレイ(LCD)、発光ダイオード(LED)、またはプラズマディスプレイスクリーン、陰極線管(CRT)、テレビ、モニタ、タッチスクリーン、3次元ディスプレイスクリーン、または他の視覚ディスプレイデバイスなどの任意の適切なディスプレイデバイスを含むことができる。
マイクロホン241は、ユーザ125によってパフォーマンスされたオーディオを検出するためのハードウェアを含む。例えば、マイクロホン241は、歌っているユーザ125、バイオリンを演奏しているユーザ125などを検出し得る。マイクロホン241は、I/Oインターフェース239を介してメタバースエンジン103にオーディオを送信し得る。
スピーカ243は、再生用の音声を生成するためのハードウェアを含む。例えば、スピーカ243は、メタバースエンジン103によって生成されたデジタルの結合されたオーディオストリームから再生用の知覚オーディオを生成するために、メタバースエンジン103から命令を受信する。スピーカ243は、命令を音声に変換し、ユーザのための結合されたオーディオストリームを生成する。
ストレージデバイス247は、メタバースエンジン103に関連するデータを記憶する。例えば、ストレージデバイス247は、トレーニングされた機械学習モデルのためのトレーニングデータセット、参照オーディオなどを記憶し得る。コンピューティングデバイス200がサーバ101である実施形態において、ストレージデバイス247は、図1におけるデータベース199と同じである。
例示的なメタバースエンジン103またはメタバースアプリケーション104
図2は、パフォーマンス認識モジュール202と、合成機械学習モジュール204と、混合モジュール206と、後処理モジュール208と、ユーザインターフェースモジュール210とを含む例示的なメタバースエンジン103またはメタバースアプリケーション104を実行するコンピューティングデバイス200を示す。モジュールは、同じメタバースエンジン103またはメタバースアプリケーション104の一部であるように示されているが、当業者は、モジュールが任意のコンピューティングデバイス200によって実装され得ることを認識するであろう。例えば、パフォーマンス認識モジュール202および合成機械学習モジュール204は、クライアントデバイス115の一部であり得るが、混合モジュール206は、クライアントデバイス115の計算要件を軽減するために、サーバ101の一部であり得る。
パフォーマンス認識モジュール202は、オーディオストリームに関連付けられたパフォーマンス識別子を決定する。いくつかの実施形態において、パフォーマンス認識モジュール202は、オーディオストリームに関連付けられたパフォーマンス識別子を決定するためにプロセッサ235によって実行可能な命令のセットを含む。いくつかの実施形態において、パフォーマンス認識モジュール202は、コンピューティングデバイス200のメモリ237内に記憶され、プロセッサ235によってアクセス可能および実行可能とすることができる。
オーディオストリームは、既知のコンテンツのパフォーマンスまたは演奏、例えば、既知の歌の再録音、既知のメロディーを歌うこと、テキスト資料を音読することなどであり得る。パフォーマンス識別子は、この文脈において、オーディオストリーム内でパフォーマンスされている既知のコンテンツを指す。パフォーマンス識別子は、オーディオストリームの様々な属性の識別および/または予測を可能にし得る。例えば、パフォーマンスが、(例えば、様々な楽器によって演奏されるべきテンポおよび音の表記を含む)書かれた楽譜に基づいている場合、パフォーマンスのテンポ、および各パフォーマによって演奏される個々の音の識別。別の例において、パフォーマンスが、歌唱、またはテキストからの音読を含む場合、次に来る単語/フレーズが識別され得る。
いくつかの実施形態において、ユーザの許可を取得した後、パフォーマンス認識モジュール202は、オーディオストリームを受信する。例えば、パフォーマンス認識モジュール202がクライアントデバイス115の一部である場合、パフォーマンス認識モジュール202は、ネットワーク105を介してI/Oインターフェース239を介してマイクロホン241からのオーディオストリームを受信する。別の例において、パフォーマンス認識モジュール202がサーバ101の一部である場合、パフォーマンス認識モジュール202は、I/Oインターフェース239を介してクライアントデバイス115からオーディオストリームを受信する。オーディオストリームは、パフォーマンスの一部である。パフォーマンスは、複数のユーザによって歌われる歌、スピーチ、聖歌、楽器によって演奏される音楽などであり得る。いくつかの実施形態において、ユーザインターフェースモジュール210は、パフォーマンス認識モジュール202がオーディオストリームを受信する前に、オーディオストリームを使用する許可を取得する。
パフォーマンス認識モジュール202は、時間の関数としての周波数を含むオーディオストリームのスペクトログラムを生成し、オーディオストリーム内のどの周波数が最も高い振幅を有するかを決定し、次いで、スペクトログラムのハッシュを生成することによって、オーディオストリームの少なくとも一部からフィンガープリント(すなわち、オーディオフィンガープリント)を生成する。オーディオストリームは、(事前に記録されたパフォーマンスとは対照的に)人によってライブでパフォーマンスされているので、パフォーマンス認識モジュール202は、キーの違い、タイミングの不一致を含むエラー、声質などを考慮する。パフォーマンス認識モジュール202は、一致を識別するために、オーディオストリームのフィンガープリントを既知の歌に関するフィンガープリントのセットと比較する。一致は、オーディオストリームに関するパフォーマンス識別子に関連付けられる。例えば、パフォーマンス識別子は、「ハッピーバースデー」、「月光ソナタ第3楽章」などであり得る。
パフォーマンス認識モジュール202は、パフォーマンス識別子に関連付けられた参照オーディオを受信し得る。例えば、パフォーマンス認識モジュール202は、ストレージデバイス247から参照オーディオを取得し得る。
ユーザの許可を取得した後、パフォーマンス認識モジュール202は、オーディオストリームのパフォーマンスのタイプを決定し得る。例えば、オーディオストリームは、歌っている人、スピーチをしている人、楽器を演奏している人などを含み得る。いくつかの実施形態において、パフォーマンス認識モジュール202は、楽器または人間の声に関連付けられた様々な周波数、タイミング、ピッチ、速度などを識別することなどによって、様々な楽器および人間の声の固有の態様に基づいて、パフォーマンスのタイプを判定する。例えば、パフォーマンス認識モジュール202は、メタバースにおいて「ハッピーバースデー」がカズーで演奏されており、「月光ソナタ第3楽章」がピアノで演奏されていると判定し得る。いくつかの実施形態において、パフォーマンス認識モジュール202は、歌手がブルースバージョンの歌を演奏しているのか、ロックバージョンの歌を演奏しているかなど、パフォーマンスのスタイルを追加で判定する。
いくつかの実施形態において、パフォーマンス認識モジュール202は、ユーザ125から許可を取得し、オーディオストリーム内の1人または複数の話者を識別し、1人または複数の話者を話者識別子に関連付ける。許可は、識別目的のためにオーディオストリームを使用する許可、ユーザに関する情報を記憶する許可などを含み得る。ユーザ125は、この情報が(例えば、一時的に、パフォーマンスが終了するまで)記憶される場合があるというガイダンスを提供され、許可を拒否する、記憶の属性(例えば、ローカルのみ、X時間など)を選択するオプションを提供される。許可を取得した後、パフォーマンス認識モジュール202は、例えば、第1のクライアントデバイス115に関連付けられたオーディオストリームが、「ハッピーバースデー」を歌う1人の人、または歌を演奏する複数の人を含むことを判定し得る。パフォーマンス認識モジュール202は、各パフォーマが、リズム、トーン、周波数などに基づいて、特定の話し方、歌い方などに関連付けられる上記で説明したのと同様のメカニズムに基づいて、歌を演奏する様々な人を識別し得る。
合成機械学習モジュール204は、オーディオストリームを合成するための機械学習モデル(または複数のモデル)をトレーニングする。いくつかの実施形態において、合成機械学習モジュール204は、オーディオストリームを合成するための機械学習モデルをトレーニングするためにプロセッサ235によって実行可能な命令のセットを含む。いくつかの実施形態において、合成機械学習モジュール204は、コンピューティングデバイス200のメモリ237内に記憶され、プロセッサ235によってアクセス可能および実行可能とすることができる。
合成機械学習モジュール204は、1つまたは複数の(例えば、2つの)異なるトレーニングデータセットを使用し得る。いくつかの実装形態において、データセットおよび対応する構造は、合成機械学習モジュール204がクライアントデバイス115上に記憶されているか、サーバ101上に記憶されているかに依存し得る。
クライアントデバイス115上の例示的な機械学習モジュール204
合成機械学習モジュール204がクライアントデバイス115上に記憶されている実施形態において、マッピング機械学習モデル204は、手動でラベル付けされたオーディオストリームを有するトレーニングデータセットを使用して機械学習モデルをトレーニングすることによって、教師あり学習を実装する。
合成機械学習モジュール204は、ディープニューラルネットワーク(DNN)などのニューラルネットワークであり得、オーディオストリーム内のより詳細な特徴およびパターンを識別する層を含み、1つの層の出力が後続の層への入力として機能する。出力層は、合成されたオーディオストリームを生成する。いくつかの実施形態において、第1の層(または層の第1のセット)は、参照オーディオと比較したオーディオストリームの位置を決定するために、パフォーマンスの参照オーディオへのオーディオストリームのマッピングを出力し、第2の層(または層の第2のセット)は、オーディオストリームの将来の時間オフセットの予測を出力し、出力層は、前の層の出力に基づいてオーディオストリームを合成する。いくつかの実施形態において、機械学習モデルは、オーディオストリームの順次処理のためにトレーニングされたリカレントニューラルネットワーク(RNN)内の長短期メモリ(LSTM)を含み得る。機械学習モデルは、任意のオーディオストリームを入力として受信し、出力を合成するために同じ分析を実行することができる。
合成されたオーディオストリームは、オーディオ遅延を引き起こすネットワークレイテンシ、入力レイテンシ、および/または処理レイテンシを考慮する。ネットワークレイテンシは、ネットワークにおいて使用される物理機器により、またはノードにおける処理時間の遅延により、ネットワーク内の送信ノードから受信ノードへのコンテンツの受信に遅延が存在する場合に発生する。入力レイテンシは、ユーザが応答を遅延した場合、能力が制限されたクライアントデバイスを使用している場合などに発生する。処理レイテンシは、モデレーション分析を実行するために遅延が意図的に導入された場合、または処理リソースが不十分であることより発生し得る。ネットワークレイテンシは、可変であるので、各オーディオストリームに関する真のエンドツーエンドレイテンシは、オーディオストリームがスピーカ243を介して再生されるクライアントデバイス115によってのみ決定され得る。
いくつかの実施形態において、合成機械学習モジュール204は、有利には、異なるタイプの入力レイテンシを考慮する。例えば、パフォーマンスは、ビバルディの「四季」であり、第1のオーディオストリームは、第3音が遅れているバイオリンである(四季の音符およびテンポの識別を可能にするパフォーマンス識別子を使用して決定される)。機械学習モデルは、第16音をスキップすることによって欠落した第3音を考慮する合成された第1のオーディオストリームを出力することによって、入力レイテンシに基づいて第1のオーディオストリームを調整し得る。別の例において、合成機械学習モジュール204は、スピーチの文末に遅延を追加することによって、モデレーションのために導入される処理レイテンシを考慮し得る。文末に遅延を追加することは、遅延の知覚が文中の任意のポイントにおける遅延よりも聴者への影響が少ないので、有利であり得る。
図3Aに目を向けると、機械学習モデル300の例示的なアーキテクチャのブロック図が示されている。機械学習モデル300は、ボトルネックトランク305と、サブモデルデコーダ310と、オーディオ波形発生器315とを含む。ボトルネックトランク305は、オーディオストリームの入力波形から特徴を抽出する汎用ボトルネックトランクである。サブモデルデコーダ310は、特定のタスク、すなわち、(例えば、パフォーマンス識別子に基づいて決定される)参照オーディオと比較したオーディオストリーム内の時間的相関関係を決定するためにトレーニングされる。
ボトルネックトランク305およびサブモデルデコーダ310は、音声からテキストへの合成を実装する機械学習モデルと同様に設計される。合成機械学習モジュール204は、ボトルネック特徴を出力するために、多数、例えば数百万対の(オーディオ、テキスト)サンプルを使用してボトルネックトランク305をトレーニングし得る。例えば、ボトルネックトランク305は、DeepSpeechシステムと同様にトレーニングされ得るが、テキストを予測するようにトレーニングされる代わりに、ボトルネックトランク305は、オーディオ特性を参照オーディオにマッピングするための埋め込みを保持する、前の層を使用する。
合成機械学習モジュール204は、ボトルネックトランク305がトレーニングされた後にボトルネックトランク305の重みを固定することによってサブモデルデコーダ310をトレーニングし、トレーニングのために、ピッチ、位相、レートなどのオーディオストリームの入力波形から抽出されたオーディオ特徴とともに、ボトルネック特徴をサブモデルデコーダ310に提供し得る。いくつかの実施形態において、サブモデルデコーダ310は、オーディオストリーム内の異なる声を区別するために使用される話者識別子も受信する。
ボトルネックトランク305およびサブモデルデコーダ310がトレーニングされると、ボトルネックトランク305は、クライアントデバイス115によって生成されたオーディオストリームを入力として受信する。いくつかの実施形態において、ボトルネックトランク305は、オーディオストリームをオーディオデータのますます抽象化された表現に分割するために使用されるLSTM層が続く全結合(FC)層を含む。
ボトルネックトランク305は、オーディオストリームを、オーディオストリームの重複サンプルからサンプリングされたメル周波数ケプストラム係数(MFCC)特徴とともに入力波形として受信する。MFCC特徴は、オーディオストリーム内の音色の表現などのオーディオストリームに関する情報を表すために、オーディオストリームの一種のケプストラム表現から導出される。オーディオストリームのサンプルは、時間ウィンドウによってパラメータ化される。例えば、より長い時間ウィンドウよりも精度が低い可能性がある100ミリ秒未満の時間ウィンドウは、計算効率と、クライアントデバイス115におけるリアルタイム実行の適合性とのために使用され得る。サーバ101よりも少ない計算処理能力を有するクライアントデバイス115は、ネットワークレイテンシがサーバ101においてオーディオストリームを処理するときに発生するネットワークレイテンシよりも短いので、より短い時間ウィンドウを用いて正確さを依然として発生することができる。
ボトルネックトランク305は、オーディオを符号化し、ボトルネック特徴を出力する。ボトルネック特徴は、サブモデルデコーダ310に送信される。いくつかの実施形態において、ボトルネックトランク305は、オーディオストリーム内の5フレームごとに1つなど、オーディオフレームのサブセットについてボトルネック特徴を出力する。いくつかの実施形態において、サブモデルデコーダ310は、オーディオストリームのピッチ、位相、およびレート、ならびに話者識別子などの、入力波形に関するオーディオ固有の特徴も受信する。
いくつかの実施形態において、サブモデルデコーダ310は、LSTM層が続く全結合FC層を含む。LSTM層は、オーディオストリーム内の時間的相関関係を取り込むために使用される。サブモデルデコーダ310は、オーディオ波形発生器315への入力として入力されるMFCC特徴を出力する。
オーディオ波形発生器315は、MFCC特徴を受信し、合成されたオーディオとしたレンダリングされたMFCC特徴を表す出力波形を生成する。
このプロセス全体を通じて、機械学習モデル300は、オーディオストリーム内の位置間の時間的マッピングを学習し、オーディオストリームの将来のフレームを合成する。例えば、パフォーマンスが「ハッピーバースデー」である場合、機械学習モデル300は、オーディオストリームが歌の最初の2行を含むことと、オーディオストリームが参照オーディオとは異なる開始点を有する場合に参照オーディオとどのように比較するかとを決定することによって、オーディオストリームを参照オーディオにマッピングし得る。これは、オーディオストリームと参照オーディオとの間のオーディオにおける時間オフセットと呼ばれる。機械学習モデル300はまた、参照オーディオと比較したオーディオストリームのレートを出力し得る。例えば、「ハッピーバースデー」を歌うユーザは、参照オーディオよりも速いレートで歌う場合がある。機械学習モデル300は、時間オフセットと、オーディオストリームのレートと、参照オーディオのレートと比較したオーディオストリームのレートに基づく歌の将来の時間オフセットとに基づいて、オーディオストリーム内の次のフレームのタイミングを予測し、結果として、それらの特徴をカプセル化した合成されたオーディオを出力し得る。
いくつかの実施形態において、上記で説明したボトルネック抽出を実行する代わりに、機械学習モデル300は、多言語ボトルネック抽出器を実装し得る。多言語ボトルネック抽出器は、複数の言語からセノン(senone)を区別するようにトレーニングされる。出力特徴は、言語に依存せず、言語、話し方、話す速度などによる変動に対して堅牢である。この機械学習モデル300は、教師あり学習を使用してトレーニングされ、出力は、セノン事後確率(senone posterior)を含む。
クライアントデバイス115上の例示的な機械学習モデル
合成機械学習モジュール204がサーバ101上に記憶された実施形態において、マッピング機械学習モデル204は、ラベル付けされていないオーディオストリームを有するトレーニングデータセットを使用して、教師なし学習を使用してトレーニングされ得る。
図3Bに目を向けると、機械学習モデルの別の例示的なアーキテクチャのブロック図が示されている。機械学習モデル350は、ベクトル量子化変分オートエンコーダ(VQ-VAE)355と、VQ-VAEコードブック360と、事前モデル365と、VQ-VAEデコーダ370とを含む。
合成機械学習モジュール204は、オーディオストリームの波形を含むトレーニングデータセットを使用して、VQ-VAE355とVQ-VAEコードブック360とをトレーニングする。VQ-VAE355およびVQ-VAEコードブック360は、機械学習モデル350の対応するモジュールをトレーニングするために、出力波形を入力波形と比較する。合成機械学習モジュール204は、ピッチ、位相、およびレート、およびオプションで話者識別子のうちの1つまたは複数を含むオーディオ特徴などの追加の特徴に条件付けられたVQ-VAEコードブック360からのコードベクトル出力に対して事前モデル365をトレーニングする。
機械学習モデル350は、時間ウィンドウによってパラメータ化されたオーディオストリームを受信するようにトレーニングされる。いくつかの実装形態において、オーディオストリームは、300~500ミリ秒の長さである。より長いオーディオストリームは、より大きいモデルサイズにより、より計算集約的であるが、より長いオーディオストリームは、結果としてより正確な結果をもたらす。
いくつかの実施形態において、VQ-VAE355は、オーディオストリームの入力波形を受信し、入力波形を潜在表現に変換する。VQ-VAE355は、いくつかの1次元(1D)畳み込みブロックを含む自己回帰ネットワーク構造を使用する。VQ-VAEコードブック360は、潜在表現を入力として受信し、ボトルネックは、事前定義されたコードブックを使用して、潜在表現を離散コードベクトルに量子化する。
事前モデル365は、入力波形のピッチ、位相、およびレート、ならびに(オプションで)オーディオストリームに関する1つまたは複数の話者識別子とともに、VQ-VAEコードブック360から離散コードベクトルを受信する。オーディオ特徴は、入力波形から計算され、1つまたは複数の話者識別子は、ネットワークがユーザまたは音楽ジャンルに固有のコードをモデル化することを可能にする。事前モデル365は、コードベクトルを経時的に外挿し、編集され、再サンプリングされたコードベクトルを出力するために、変換層を使用する。VQ-VAEデコーダ370は、自己回帰オーディオ波形発生器である。VQ-VAEデコーダ370は、編集され、再サンプリングされたコードベクトルを受信し、編集され、再サンプリングされたコードベクトルから出力波形を合成する。
混合モジュール206は、1つまたは複数の合成されたオーディオストリームを実際のオーディオストリームと同期させる結合されたオーディオストリームを形成するために、複数のクライアントデバイス115からのオーディオストリームを混合する。いくつかの実施形態において、混合モジュール206は、結合されたオーディオストリームを形成するためにプロセッサ235によって実行可能な命令のセットを含む。いくつかの実施形態において、混合モジュール206は、コンピューティングデバイス200のメモリ237内に記憶され、プロセッサ235によってアクセス可能および実行可能とすることができる。
いくつかの実施形態において、混合モジュール206は、合成機械学習モジュール204の出力を受信し、出力に基づいてオーディオストリームを同期する。例えば、混合モジュール206は、合成された第1のオーディオストリームと、第2のオーディオストリームとを受信し、結合されたオーディオストリームを生成し得る。混合がサーバ101において実行されているか、クライアントデバイス115において実行されているかに応じて、混合モジュール206は、異なるタイプの遅延を考慮するために、異なるオーディオストリーム内に異なる量の遅延を導入し、オーディオストリームが同期されることを確実にし得る。例えば、混合がサーバ101上で実行される場合、混合モジュール206は、受信器遅延を考慮し得る。オーディオストリームを混合するための様々な要因の詳細について、以下により詳細に論じる。
混合モジュール206は、結合されたオーディオストリームを形成するために、合成された第1のオーディオストリームと第2のオーディオストリームとを同期させる。オーディオストリームの時間ウィンドウは、合成機械学習モジュール204を記憶するデバイスに基づいて、異なる長さを有し得る。例えば、合成機械学習モジュール204がクライアントデバイス115上に記憶されている場合、時間ウィンドウは、100ミリ秒未満である。別の例において、合成機械学習モジュール204がサーバ101上に記憶されている場合、時間ウィンドウは、300~500ミリ秒である。
混合モジュール206は、合成機械学習モジュール204が記憶されているデバイスと同じデバイスまたは異なるデバイス上で同期を実行し得る。デバイスは、サーバ101と、第1のオーディオストリームを送信するクライアントデバイス115aと、第1のオーディオストリームを受信するクライアントデバイス115bとを含み得る。
第1の例において、クライアントデバイス115bは、オーディオストリームの合成とオーディオストリームの同期との両方を実行する。合成機械学習モジュール204は、サーバ101を介してすべての他のクライアントデバイス115からグローバルにタイムスタンプされたパケットを受信し、他のクライアントデバイス115のオーディオストリームを合成する。混合モジュール206は、クライアントデバイス115bの実際のオーディオストリームと、他のクライアントデバイス115からの合成されたオーディオとのローカル混合を生成する。
いくつかの実施形態において、第1の例は、好ましい例である。第1の例のいくつかの利点が存在する。オーディオストリームの将来の部分を予測するのに必要な時間が短縮され、これは、結果としてオーディオストリームのより高い品質と、より短い相互作用レイテンシとをもたらす。それに加えて、クライアントデバイス115bは、悪いレイテンシから回復することができる。ユーザは、ローカルでオーディオを合成および同期するために、かなりの計算能力を有するクライアントデバイスを使用しなければならない場合があるが、よりよいハードウェアは、よりよい体験を提供することができる。最後にこのアーキテクチャは、合成されたオーディオがクライアントデバイス115b上に留まるという利点を提供する。
第1の例のいくつかの可能な欠点は、n人のパフォーマに関する着信ストリームについて計算複雑性がO(n)であることである。さらに、すべての処理がクライアントデバイス115b上であり、処理が重要であるので、処理は、クライアントデバイス115bのバッテリを消耗させる場合があり、処理は、困難である場合があり、異なるタイプのクライアントデバイス115に対して異なる実装コードを必要とし、十分な計算能力を有するクライアントデバイス115のサブセット上でのみ機能する場合がある。
第2の例において、サーバ101は、オーディオストリームの合成と、オーディオストリームの同期との両方を実行する。第2の例の利点は、すべてのクライアントストリームがサーバにおいて受信され、処理されるので、O(1)のより低い計算複雑性を含む。この例において、サーバ101が、各クライアントから個別のオーディオストリームを受信し、合成され、同期された結合されたオーディオストリームを各クライアントに提供するので、結合されたオーディオストリームを生成するために、クライアント側の計算は、必要ない。インフラストラクチャは、すべてサーバ101の一部なので、制御される。さらに、オーディオストリームの最悪のケースのレイテンシは、クライアントとサーバとの間のレイテンシのみであるが、クライアント側の処理では、クライアントデバイス115aとサーバ101との間、次いでクライアントデバイス115bとの間である場合があるので、最悪のケースの予測時間は、クライアント側の処理が使用される場合よりも短い。
第3の例において、クライアントデバイス115aは、オーディオストリームの合成を実行し、サーバ101は、オーディオストリームの同期を実行する。クライアントデバイス115aは、最悪の場合のレイテンシのためにオーディオストリームを合成し、サーバ101は、必要に応じて各オーディオストリームを遅延させることによって、プレーヤのために(n-1)のストリームを同じ時間にロックステップで混合する。第3の例の利点は、着信ストリームおよび発信ストリームがクライアントデバイス115あたりO(1)であり、サーバにおける処理時間がO(1)であることを含む。それに加えて、クライアントデバイス115aにおけるよりよいハードウェアは、クライアントデバイス115aの音を他のクライアントデバイス115にとってよりよくする。例えば、よりよいハードウェアは、結果としてよりよい処理をもたらし、これは、オーディオストリームのほぼリアルタイムの伝送を維持するためにオーディオストリームを迅速に処理しなければならない場合に不可欠である。
第4の例において、クライアントデバイス115aは、オーディオストリームの合成を実行し、クライアントデバイス115bは、オーディオストリームの同期を実行する。これは、サーバが関与しないピアツーピアストリーミングに適している場合がある。
後処理が生じず、混合モジュール206がクライアントデバイス115b上で合成を実行しない場合、混合モジュール206は、結合されたオーディオストリームを、結合されたオーディオストリームを再生し得るクライアントデバイス115bに送信するようにI/Oインターフェース239に指示する。後処理が生じず、混合モジュール206がクライアントデバイス115b上にある場合、混合モジュール206は、結合されたオーディオストリームを再生のためにスピーカ243に提供するようにI/Oインターフェース239に指示し得る。
後処理モジュール208は、結合されたオーディオストリームを処理する。いくつかの実施形態において、後処理モジュール208は、結合されたオーディオストリームを処理するためにプロセッサ235によって実行可能な命令のセットを含む。いくつかの実施形態において、後処理モジュール208は、コンピューティングデバイス200のメモリ237内に記憶され、プロセッサ235によってアクセス可能および実行可能とすることができる。
いくつかの実施形態において、後処理モジュール208は、エコー、背景雑音などを考慮することによって、クライアントデバイス115bが配置されている環境の音響と一致するように、結合されたオーディオストリームを修正し得る。いくつかの実施形態において、後処理モジュール208は、例えば、第1のオーディオストリームがクラクションを鳴らしている車を背景に含み、第2のオーディオストリームで部屋が完全に静かである場合、結合されたオーディオストリームが背景雑音を有する状態から背景雑音がない状態になったときに不協和音を生じる可能性がある状況を回避するために、結合されたオーディオストリームに対してオーディオクリーニングまたは雑音抑制を実行する。
ユーザインターフェースモジュール210は、ユーザインターフェースを生成する。いくつかの実施形態において、ユーザインターフェースモジュール210は、ユーザインターフェースを生成するためにプロセッサ235によって実行可能な命令のセットを含む。いくつかの実施形態において、ユーザインターフェースモジュール210は、コンピューティングデバイス200のメモリ237内に記憶され、プロセッサ235によってアクセス可能および実行可能とすることができる。
ユーザインターフェースモジュール210は、クライアントデバイス115に関連付けられたユーザ125のためのユーザインターフェースを生成する。ユーザインターフェースは、他のユーザとのオーディオ通信を開始する、メタバース内のゲームまたは他の経験に参加する、他のユーザにテキストを送信する、他のユーザとのビデオ通信を開始するなどのために使用され得る。
いくつかの実施形態において、ユーザがメタバースに参加する前に、ユーザインターフェースモジュール214は、ユーザの情報がどのように収集、記憶、および分析されるかに関する情報を含むユーザインターフェースを生成する。例えば、ユーザインターフェースは、ユーザに関連付けられた任意の情報を使用する許可を提供することをユーザに要求する。ユーザは、ユーザ情報がユーザによって削除され得、ユーザが、どのタイプの情報が異なる使用に提供されるかを選択するオプションを有し得ることを通知される。情報の使用は、適用可能な規制に従い、データは、安全に記憶される。データ収集は、特定の場所において、および特定のユーザカテゴリ(例えば、年齢または他の人口統計に基づく)について実行されず、データ収集は、一時的であり(すなわち、データは、一定期間後に破棄される)、データは、第三者と共有されない。データの一部は、匿名化され、ユーザ間で集約され、または特定のユーザの身元を決定することができないように他の方法で変更され得る。
いくつかの実施形態において、ユーザインターフェースは、任意のオーディオストリームがサーバ101または別のクライアントデバイス115に送信される前に、ユーザの許可を取得する。ユーザインターフェースは、ユーザ権限の異なる粒度のレベルを含み得る。例えば、ユーザは、合成オーディオがクライアントデバイス115上で生成され、サーバ上では生成されない場合にのみ、合成されたオーディオを生成することができることを指定し得る。
いくつかの実施形態において、混合モジュール206は、第1のオーディオストリームと第2のオーディオストリームとの間の時間差がしきい値時間差を超えていることを判定し、ユーザインターフェースモジュール210にユーザインターフェースを生成するための命令を送信する。ユーザインターフェースは、オーディオストリームを別のオーディオストリームと同期させることができるように、歌唱の速度をどのように変更するかについてユーザ125にガイダンスを提供し得る。
図4に目を向けると、パフォーマンスのタイミングの態様を変更するようにユーザをガイドする例示的なユーザインターフェース400が示されている。この例において、ユーザインターフェース400は、パフォーマンスに関するユーザガイダンスと、クライアントデバイス115bに関連付けられたパフォーマに、第1のオーディオストリームと第2のオーディオストリームとの間の時間差を短縮する方法においてパフォーマンスするように促す移動インジケータ405とを含む。例えば、移動インジケータ405は、ユーザのパフォーマンスの速度の低下を示唆するために、ユーザがパフォーマンスしているよりも遅く移動し得る。
いくつかの実施形態において、ユーザインターフェースモジュール210は、結合されたオーディオストリームと、グラフィカルに表示されるパフォーマのアクションとの同期を示す。例えば、結合されたオーディオストリームが、パフォーマがアバターとしてグラフィカルに表示されている間にパフォーマンスしているスピーチである場合、ユーザインターフェースモジュール210は、結合されたオーディオストリームを、アバターの口、動きなどと同期させ得る。
例示的な方法
図5は、本明細書で説明するいくつかの実施形態による、クライアントデバイス115とサーバ101との間のデータの伝送を示す例示的なフロー図500である。フロー図500は、第1のクライアントデバイス510と、サーバ515と、第2のクライアントデバイス520とを含む。太線は、3つのデバイス間のネットワークデータ伝送を示し、細線は、第1のクライアントデバイス510内のデータ伝送を示す。
第1のクライアントデバイス510は、マイクロホン505からオーディオストリームを受信する。オーディオストリームは、第1のクライアントデバイス510、サーバ515、または第2のクライアントデバイス520において合成される。合成されたオーディオストリームは、結合されたオーディオストリームを形成するために、サーバ515または第2のクライアントデバイス520において、1つまたは複数の他のオーディオストリームと混合される。結合されたオーディオストリームは、第1のクライアントデバイス510における再生のために、スピーカ525に送信される。
上記に加えて、データは、サーバ515によっても受信される。例えば、サーバ515は、第1のクライアントデバイス510から第1のストリームを受信し、第2のクライアントデバイス520から第2のストリームを受信し、サーバ515は、第1のオーディオストリームを合成し、それを第2のオーディオストリームと混合する。
メタバースエンジン103を実装した結果として、第1のクライアントデバイス510におけるバイオリンの第1のオーディオストリームと、チェロの第2のオーディオストリームとが、同じ物理的な部屋の中にいるかのように、音楽を演奏している関連するユーザによって同時に聞かれる。
図6は、同期通信のためのオーディオストリームを合成するための例示的なフロー図600である。パフォーマンス識別子とパフォーマンスのタイプとを識別するために、遅延されたオーディオストリームに対してタスク検出605が実行される。例えば、遅延されたオーディオストリームが楽器、スピーチ、歌唱などを含むかどうか、ならびにどのようなタイプの歌か、およびどのようなスタイルのパフォーマンスかの識別が行われる。識別に基づいて、参照オーディオが出力される。
遅延されたオーディオストリームは、参照オーディオと比較した遅延されたオーディオストリームの時間オフセットを識別する位相シフト分析器610と、遅延されたオーディオストリームのレートを識別するレート分析器615とによっても受信される。遅延されたオーディオストリームの時間オフセットおよびレートは、オーディオストリームを参照オーディオにマッピングするサンプラ620によって受信される。マッピングは、オーディオストリームの合成を完了するためにオーディオストリームを将来に外挿するディープニューラルネットワーク635(または他の適切なモデル)によって受信される。
図7は、第2のクライアントデバイス115を使用して同期通信のためのオーディオストリームを合成するための例示的なフロー図である。この例において、メタバースアプリケーション104は、第2のクライアントデバイス115上に記憶される。
方法700は、ブロック702において開始し得る。ブロック702において、第1のクライアントデバイス115に関連付けられたパフォーマンスの第1のオーディオストリームが受信される。ブロック702の後にブロック704が続き得る。
ブロック704において、パフォーマンスの合計時間よりも短いパフォーマンスの時間ウィンドウ中に、合成された第1のオーディオストリームと第2のクライアントデバイスに関連付けられた第2のオーディオストリームとを同期させる結合されたオーディオストリームを形成するために、合成された第1のオーディオストリームと第2のオーディオストリームとを形成し、合成された第1のオーディオストリームと第2のクライアントデバイスに関連付けられた第2のオーディオストリームとを同期させる結合されたオーディオストリームを形成するために、第1のオーディオストリームと第2のオーディオストリームとを混合し、パフォーマンスが完了するまで、時間ウィンドウが進められ、生成および混合が繰り返される。
図7は、第2のクライアントデバイス115を使用して同期通信のためのオーディオストリームを合成するための例示的なフロー図である。この例において、メタバースアプリケーション104は、第2のクライアントデバイス115上に記憶される。
図8は、サーバを使用して同期通信のためのオーディオを合成するための別の例示的なフロー図である。この例において、メタバースエンジン103は、サーバ101上に記憶される。
方法800は、ブロック802において開始し得る。ブロック802において、第1のクライアントデバイス115に関連付けられたパフォーマンスの第1のオーディオストリームが受信される。ブロック802の後にブロック804が続き得る。
ブロック804において、パフォーマンスの合計時間よりも短いパフォーマンスの時間ウィンドウ中に、合成された第1のオーディオストリームと第2のクライアントデバイスに関連付けられた第2のオーディオストリームとを同期させる結合されたオーディオストリームを形成するために、合成された第1のオーディオストリームと第2のオーディオストリームとを形成し、合成された第1のオーディオストリームと第2のクライアントデバイスに関連付けられた第2のオーディオストリームとを同期させる結合されたオーディオストリームを形成するために、第1のオーディオストリームと第2のオーディオストリームとを混合し、パフォーマンスが完了するまで、時間ウィンドウが進められ、生成および混合が繰り返される。いくつかの実施形態において、合成された第1のオーディオストリームを混合することは、結合されたオーディオを第2のクライアントデバイスに送信することによって発生するレイテンシを考慮するために、結合されたオーディオストリームに遅延を導入することを含む。ブロック804の後にブロック806が続き得る。
ブロック806において、結合されたオーディオストリームは、第2のクライアントデバイス115に送信される。
本明細書で説明する様々な実施形態は、物理環境内の様々なセンサからデータを取得することと、そのようなデータを分析することと、推奨事項を生成することと、ユーザインターフェースを提供することとを含む。データ収集は、特定のユーザの許可を得て、かつ適用可能な規制に従ってのみ実行される。データは、ユーザのプライバシーを保護するためにデータを匿名化することまたはデータを他の方法で変更することを含み、適用可能な規制に従って記憶される。ユーザには、データ収集、記憶、および使用に関する明確な情報が提供され、収集、記憶、および利用され得るデータのタイプを選択するオプションが提供される。さらに、ユーザは、データが記憶され得るデバイス(例えば、クライアントデバイスのみ、クライアントデバイス+サーバデバイスなど)と、データ分析が実行されるデバイス(例えば、クライアントデバイスのみ、クライアントデバイス+サーバデバイスなど)とを制御する。データは、本明細書で説明する特定の目的のために利用される。データは、明示的なユーザの許可なしに第三者と共有されない。
本明細書で説明する方法、ブロック、および/または動作は、図示もしくは説明されている順序とは異なる順序において実行することができ、および/または必要に応じて他のブロックもしくは動作と同時に(部分的にまたは完全に)実行することができる。いくつかのブロックまたは動作は、データの一部に対して実行し、例えば、データの別の部分に対して、後に再度実行することができる。説明されているブロックおよび動作のすべてが、様々な実装形態において実行される必要はない。いくつかの実装形態において、ブロックおよび動作は、方法において複数回、異なる順序で、および/または異なるタイミングで実行することができる。
上記の説明において、説明の目的のために、本明細書の完全な理解を提供するために、多数の具体的な詳細が記載されている。しかしながら、当業者には、本開示をこれらの具体的な詳細なしで実施することができることは明らかであろう。場合によっては、説明を不明瞭にすることを避けるために、構造およびデバイスがブロック図形式で示されている。例えば、実施形態は、主にユーザインターフェースと特定のハードウェアとを参照して上記で説明されている場合がある。しかしながら、実施形態は、データとコマンドとを受信することができる任意のタイプのコンピューティングデバイスと、サービスを提供する任意の周辺デバイスとに適用することができる。
本明細書における「いくつかの実施形態」または「いくつかの例」への言及は、実施形態または例に関連して説明する特定の特徴、構造、または特性が、説明の少なくとも1つの実装形態内に含まれ得ることを意味する。本明細書内の様々な箇所における「いくつかの実施形態において」という語句の出現は、必ずしもすべてが同じ実施形態を指しているわけではない。
上記の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する演算のアルゴリズムおよび記号的表現の観点から提示されている。これらのアルゴリズム的な説明および表現は、データ処理技術の当業者によって自分の作業の内容を他の当業者に最も効果的に伝えるために使用される手段である。アルゴリズムは、ここでは一般に、望ましい結果につながる自己矛盾のない一連のステップであると考えられる。ステップは、物理量の物理的操作を必要とするものである。通常、必ずしもそうではないが、これらの量は、記憶、転送、結合、比較、およびその他の操作が可能な電気的データまたは磁気的データの形態をとる。主に一般的な使用上の理由から、これらのデータをビット、値、要素、記号、文字、用語、数字などと呼ぶことがときには便利であることが証明されている。
しかしながら、これらの用語および同様の用語のすべては、適切な物理量に関連付けられるべきであり、これらの量に適用される便利なラベルに過ぎないことが念頭に置かれるべきである。以下の議論から明らかなように、特に別段の記載がない限り、説明全体を通じて、「処理」または「コンピューティング」または「計算」または「決定」または「表示」などを含む用語を利用する議論は、コンピュータシステムのレジスタおよびメモリ内の物理的(電子的)量として表現されたデータを、コンピュータシステムメモリもしくはレジスタ、または他のそのような情報ストレージ、伝送、もしくは表示デバイス内の物理量として同様に表現された他のデータに操作および変換する、コンピュータシステム、または同様の電子コンピューティングデバイスのアクションおよび処理を指すことが理解される。
本明細書の実施形態は、上記で説明した方法の1つまたは複数のステップを実行するためのプロセッサに関係する場合もある。プロセッサは、コンピュータ内に記憶されたコンピュータプログラムによって選択的に活性化または再構成される専用プロセッサであり得る。そのようなコンピュータプログラムは、限定はしないが、各々がコンピュータシステムバスに結合された、光ディスクを含む任意のタイプのディスク、ROM、CD-ROM、磁気ディスク、RAM、EPROM、EEPROM、磁気カードもしくは光学カード、不揮発性メモリを有するUSBキーを含むフラッシュメモリ、または電子命令を記憶するのに適した任意のタイプの媒体を含む、非一時的なコンピュータ可読記憶媒体内に記憶され得る。
本明細書は、いくつかの完全にハードウェアの実施形態、いくつかの完全にソフトウェアの実施形態、またはハードウェア要素とソフトウェア要素との両方を含むいくつかの実施形態の形態をとることができる。いくつかの実施形態において、本明細書は、限定はしないが、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むソフトウェアにおいて実装される。
さらに、説明は、コンピュータまたは任意の命令実行システムによってまたはそれらに関連して使用するためのプログラムコードを提供するコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品の形態をとることができる。この説明の目的のために、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはドライブによってまたはそれらに関連して使用するためのプログラムを含む、記憶する、通信する、伝播する、または転送することができる任意の装置とすることができる。
プログラムコードを記憶または実行するのに適したデータ処理システムは、システムバスを介してメモリ要素に直接または間接的に結合された少なくとも1つのプロセッサを含む。メモリ要素は、プログラムコードの実際の実行中に用いられるローカルメモリと、バルクストレージと、実行中にバルクストレージからコードが取得されなければならない回数を減らすために少なくとも一部のプログラムコードの一時的な記憶を提供するキャッシュメモリとを含むことができる。
100 ネットワーク環境、環境
101 サーバ
103 メタバースエンジン
104 メタバースアプリケーション
104a メタバースアプリケーション
104b メタバースアプリケーション
105 ネットワーク
115 クライアントデバイス
115a...n クライアントデバイス
125 ユーザ
125a...n ユーザ
199 データベース
200 コンピューティングデバイス
202 パフォーマンス認識モジュール
204 合成機械学習モジュール、機械学習モジュール、マッピング機械学習モデル
206 混合モジュール
208 後処理モジュール
210 ユーザインターフェースモジュール
218 バス
222 信号線
224 信号線
226 信号線
228 信号線
230 信号線
232 信号線
234 信号線
235 プロセッサ
237 メモリ
239 入力/出力(I/O)インターフェース、I/Oインターフェース
241 マイクロホン
243 スピーカ
245 ディスプレイ
247 ストレージデバイス
300 機械学習モデル
305 ボトルネックトランク
310 サブモデルデコーダ
315 オーディオ波形発生器
350 機械学習モデル
355 ベクトル量子化変分オートエンコーダ(VQ-VAE)、VQ-VAE
360 VQ-VAEコードブック
365 事前モデル
370 VQ-VAEデコーダ
400 ユーザインターフェース
405 移動インジケータ
500 フロー図
505 マイクロホン
510 第1のクライアントデバイス
515 サーバ
520 第2のクライアントデバイス
525 スピーカ
600 フロー図
605 タスク検出
610 位相シフト分析器
615 レート分析器
620 サンプラ
635 ディープニューラルネットワーク

Claims (20)

  1. コンピュータにより実施される方法であって、
    第1のクライアントデバイスに関連付けられたパフォーマンスの第1のオーディオストリームを受信するステップと、
    前記パフォーマンスの合計時間よりも短い前記パフォーマンスの時間ウィンドウ中に、
    前記第1のオーディオストリームのオーディオ特徴に基づいて前記パフォーマンスの将来を予測する合成された第1のオーディオストリームを生成するステップと、
    前記合成された第1のオーディオストリームと第2のクライアントデバイスに関連付けられた第2のオーディオストリームとを同期させる結合されたオーディオストリームを形成するために、前記合成された第1のオーディオストリームと前記第2のオーディオストリームとを混合するステップと
    を含み、
    前記パフォーマンスが完了するまで、前記時間ウィンドウが進められ、前記生成するステップおよび前記混合するステップが繰り返される、方法。
  2. 前記第1のオーディオストリームの受信に応答して、
    前記第1のオーディオストリームに関連付けられた前記パフォーマンスのパフォーマンス識別子を決定するステップと、
    前記パフォーマンス識別子に基づいて参照オーディオを受信するステップと
    をさらに含む、請求項1に記載の方法。
  3. 前記合成された第1のオーディオストリームを生成するステップが、前記第1のオーディオストリームと前記参照オーディオとの間の時間オフセットを決定するステップを含み、
    前記時間オフセットが、前記第1のオーディオストリームが前記参照オーディオとは異なる開始点を有する場合に発生し、前記合成された第1のオーディオストリームを生成するステップが、前記時間オフセットにさらに基づく、請求項2に記載の方法。
  4. 前記合成された第1のオーディオストリームを生成するステップが、前記参照オーディオのレートと比較した前記第1のオーディオストリームのレートを決定するステップを含み、
    前記合成された第1のオーディオストリームを生成するステップが、前記参照オーディオの前記レートと比較した前記第1のオーディオストリームの前記レートにさらに基づく、請求項2に記載の方法。
  5. 前記第1のオーディオストリームの前記オーディオ特徴が、ピッチ、レート、位相、またはそれらの組合せのグループから選択される、請求項1に記載の方法。
  6. 前記第1のオーディオストリームの前記オーディオ特徴が、前記第1のオーディオストリームにおいて検出された1つまたは複数の話者識別子を含む、請求項1に記載の方法。
  7. 前記第1のオーディオストリームと前記第2のオーディオストリームとの間の時間差がしきい値時間差を超えていることを判定するステップと、
    前記パフォーマンスに関するユーザガイダンスと、前記第2のクライアントデバイスに関連付けられたパフォーマに、前記第1のオーディオストリームと前記第2のオーディオストリームとの間の前記時間差を短縮する方法においてパフォーマンスするように促す移動インジケータとを含むユーザインターフェースを表示するためのグラフィカルデータを生成するステップと
    をさらに含む、請求項1に記載の方法。
  8. 前記第2のクライアントデバイスが配置されている環境の音響と一致するように、前記結合されたオーディオストリームを変更するステップをさらに含む、請求項1に記載の方法。
  9. 前記合成された第1のオーディオストリームを生成するステップが、
    前記第1のオーディオストリーム内で前記パフォーマンスの一部がスキップされたことを識別するステップと、
    スキップされた前記パフォーマンスの前記一部を修正するために前記第1のオーディオストリームを合成するステップと
    を含む、請求項1に記載の方法。
  10. グラフィカルに表示されるパフォーマのアクションと一致するように、前記結合されたオーディオストリームを同期させるステップをさらに含む、請求項1に記載の方法。
  11. デバイスであって、
    プロセッサと、
    前記プロセッサに結合され、命令が記憶されたメモリとを備え、前記命令が、前記プロセッサによって実行されると、前記プロセッサに、
    第1のクライアントデバイスに関連付けられたパフォーマンスの第1のオーディオストリームを受信することと、
    前記パフォーマンスの合計時間よりも短い前記パフォーマンスの時間ウィンドウ中に、
    前記第1のオーディオストリームのオーディオ特徴に基づいて前記パフォーマンスの将来を予測する合成された第1のオーディオストリームを生成することと、
    前記合成された第1のオーディオストリームと第2のクライアントデバイスに関連付けられた第2のオーディオストリームとを同期させる結合されたオーディオストリームを形成するために、前記合成された第1のオーディオストリームと前記第2のオーディオストリームとを混合することと
    を含む動作を実行させ、
    前記パフォーマンスが完了するまで、前記時間ウィンドウが進められ、前記生成することおよび前記混合することが繰り返される、デバイス。
  12. 前記第1のオーディオストリームの受信に応答して、前記第1のオーディオストリームに関連付けられた前記パフォーマンスのパフォーマンス識別子を決定し、
    前記パフォーマンス識別子に基づいて参照オーディオを受信する、請求項11に記載のデバイス。
  13. 前記合成された第1のオーディオストリームを生成することが、前記第1のオーディオストリームと前記参照オーディオとの間の時間オフセットを決定することを含み、
    前記時間オフセットが、前記第1のオーディオストリームが前記参照オーディオとは異なる開始点を有する場合に発生し、前記合成された第1のオーディオストリームを生成することが、前記時間オフセットにさらに基づく、請求項12に記載のデバイス。
  14. 前記合成された第1のオーディオストリームを生成することが、前記参照オーディオのレートと比較した前記第1のオーディオストリームのレートを決定することを含み、
    前記合成された第1のオーディオストリームを生成することが、前記参照オーディオの前記レートと比較した前記第1のオーディオストリームの前記レートにさらに基づく、請求項12に記載のデバイス。
  15. 前記第1のオーディオストリームの前記オーディオ特徴が、ピッチ、レート、位相、またはそれらの組合せのグループから選択される、請求項11に記載のデバイス。
  16. 令が記憶された非一時的コンピュータ可読媒体であって、前記命令は、1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに以下の動作:
    第1のクライアントデバイスに関連付けられたパフォーマンスの第1のオーディオストリームを受信することと、
    前記パフォーマンスの合計時間よりも短い前記パフォーマンスの時間ウィンドウ中に、
    前記第1のオーディオストリームのオーディオ特徴に基づいて前記パフォーマンスの将来を予測する合成された第1のオーディオストリームを生成
    前記合成された第1のオーディオストリームと第2のクライアントデバイスに関連付けられた第2のオーディオストリームとを同期させる結合されたオーディオストリームを形成するために、前記合成された第1のオーディオストリームと前記第2のオーディオストリームとを混合し、
    前記パフォーマンスが完了するまで、前記時間ウィンドウが進められ、前記生成および前記混合が繰り返されることと、
    を行わせる、非一時的コンピュータ可読媒体。
  17. 前記動作は、
    前記第1のオーディオストリームの受信に応答して、前記第1のオーディオストリームに関連付けられた前記パフォーマンスのパフォーマンス識別子を決定し、
    前記パフォーマンス識別子に基づいて参照オーディオを受信する、
    ことをさらに含む、請求項16に記載のコンピュータ可読媒体。
  18. 前記合成された第1のオーディオストリームを生成することが、前記第1のオーディオストリームと前記参照オーディオとの間の時間オフセットを決定することを含み、
    前記時間オフセットが、前記第1のオーディオストリームが前記参照オーディオとは異なる開始点を有する場合に発生し、前記合成された第1のオーディオストリームを生成することが、前記時間オフセットにさらに基づく、請求項17に記載のコンピュータ可読媒体。
  19. 前記合成された第1のオーディオストリームを生成することが、前記参照オーディオのレートと比較した前記第1のオーディオストリームのレートを決定することを含み、
    前記合成された第1のオーディオストリームを生成することが、前記参照オーディオの前記レートと比較した前記第1のオーディオストリームの前記レートにさらに基づく、請求項17に記載のコンピュータ可読媒体。
  20. 前記第1のオーディオストリームの前記オーディオ特徴が、ピッチ、レート、位相、またはそれらの組合せのグループから選択される、請求項16に記載のコンピュータ可読媒体。
JP2025519615A 2022-10-04 2023-10-02 同期通信のためのオーディオ合成 Active JP7846831B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/959,736 US12300255B2 (en) 2022-10-04 2022-10-04 Synthesizing audio for synchronous communication
US17/959,736 2022-10-04
PCT/US2023/034284 WO2024076532A1 (en) 2022-10-04 2023-10-02 Synthesizing audio for synchronous communication

Publications (2)

Publication Number Publication Date
JP2025535711A JP2025535711A (ja) 2025-10-28
JP7846831B2 true JP7846831B2 (ja) 2026-04-15

Family

ID=90471134

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2025519615A Active JP7846831B2 (ja) 2022-10-04 2023-10-02 同期通信のためのオーディオ合成

Country Status (6)

Country Link
US (3) US12300256B2 (ja)
EP (1) EP4599426A1 (ja)
JP (1) JP7846831B2 (ja)
KR (1) KR20250048809A (ja)
CN (1) CN120077430A (ja)
WO (1) WO2024076532A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12300256B2 (en) * 2022-10-04 2025-05-13 Roblox Corporation Synthesizing audio for synchronous communication

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003167575A (ja) 2001-11-30 2003-06-13 Nippon Telegraph & Telephone East Corp 音・映像同期合成配信方法、演奏者端末用装置、本装置用プログラムおよび本装置用プログラムを記録した記録媒体並びに、サービス提供装置、本装置用プログラムおよび本装置用プログラムを記録した記録媒体
JP2007041320A (ja) 2005-08-03 2007-02-15 Japan Science & Technology Agency ネットワークを用いた遠隔多地点合奏システム
JP2008089849A (ja) 2006-09-29 2008-04-17 Yamaha Corp リモート演奏システム
JP2009005012A (ja) 2007-06-20 2009-01-08 Yamaha Corp データ配信装置、データ配信方法およびプログラム
JP2014150938A (ja) 2013-02-07 2014-08-25 Nintendo Co Ltd 音楽ゲームプログラム、ゲーム装置、ゲーム装置の制御方法およびゲームシステム
JP2021041081A (ja) 2019-09-13 2021-03-18 株式会社スクウェア・エニックス プログラム、情報処理装置、情報処理システム及び方法
CN112669798A (zh) 2020-12-15 2021-04-16 深圳芒果未来教育科技有限公司 一种对音乐信号主动跟随的伴奏方法及相关设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3063088B2 (ja) * 1988-05-30 2000-07-12 日本電気株式会社 音声分析合成装置、音声分析装置及び音声合成装置
US6590944B1 (en) * 1999-02-24 2003-07-08 Ibiquity Digital Corporation Audio blend method and apparatus for AM and FM in band on channel digital audio broadcasting
TWI228704B (en) * 2001-03-23 2005-03-01 Yamaha Corp Music sound synthesis with waveform caching by prediction
AU2005330569A1 (en) * 2005-04-13 2006-12-07 Pixel Instruments, Corp. Method, system, and program product for measuring audio video synchronization independent of speaker characteristics
US7913155B2 (en) * 2006-02-15 2011-03-22 International Business Machines Corporation Synchronizing method and system
US8433431B1 (en) * 2008-12-02 2013-04-30 Soundhound, Inc. Displaying text to end users in coordination with audio playback
WO2011140221A1 (en) * 2010-05-04 2011-11-10 Shazam Entertainment Ltd. Methods and systems for synchronizing media
US20180067641A1 (en) * 2016-09-01 2018-03-08 PIQPIQ, Inc. Social networking application for real-time selection and sorting of photo and video content
CN206339587U (zh) * 2016-11-30 2017-07-18 成都国蓉科技有限公司 一种信号波形显示设备
CN109036446B (zh) * 2017-06-08 2022-03-04 腾讯科技(深圳)有限公司 一种音频数据处理方法以及相关设备
CN108495141B (zh) * 2018-03-05 2021-03-19 网宿科技股份有限公司 一种音视频的合成方法及系统
US10923139B2 (en) * 2018-05-02 2021-02-16 Melo Inc. Systems and methods for processing meeting information obtained from multiple sources
KR20230148239A (ko) * 2021-02-22 2023-10-24 로브록스 코포레이션 신경망을 사용하는 비디오로부터의 로버스트 얼굴 애니메이션
US12141921B2 (en) * 2022-06-02 2024-11-12 Roblox Corporation Method and system for generating polygon meshes approximating surfaces using root-finding and iteration for mesh vertex positions
US11954802B2 (en) * 2022-06-02 2024-04-09 Roblox Corporation Method and system for generating polygon meshes approximating surfaces using iteration for mesh vertex positions
US12027177B2 (en) * 2022-09-08 2024-07-02 Roblox Corporation Artificial latency for moderating voice communication
US12300256B2 (en) * 2022-10-04 2025-05-13 Roblox Corporation Synthesizing audio for synchronous communication

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003167575A (ja) 2001-11-30 2003-06-13 Nippon Telegraph & Telephone East Corp 音・映像同期合成配信方法、演奏者端末用装置、本装置用プログラムおよび本装置用プログラムを記録した記録媒体並びに、サービス提供装置、本装置用プログラムおよび本装置用プログラムを記録した記録媒体
JP2007041320A (ja) 2005-08-03 2007-02-15 Japan Science & Technology Agency ネットワークを用いた遠隔多地点合奏システム
JP2008089849A (ja) 2006-09-29 2008-04-17 Yamaha Corp リモート演奏システム
JP2009005012A (ja) 2007-06-20 2009-01-08 Yamaha Corp データ配信装置、データ配信方法およびプログラム
JP2014150938A (ja) 2013-02-07 2014-08-25 Nintendo Co Ltd 音楽ゲームプログラム、ゲーム装置、ゲーム装置の制御方法およびゲームシステム
JP2021041081A (ja) 2019-09-13 2021-03-18 株式会社スクウェア・エニックス プログラム、情報処理装置、情報処理システム及び方法
CN112669798A (zh) 2020-12-15 2021-04-16 深圳芒果未来教育科技有限公司 一种对音乐信号主动跟随的伴奏方法及相关设备

Also Published As

Publication number Publication date
US12300255B2 (en) 2025-05-13
US20240112689A1 (en) 2024-04-04
US20240112691A1 (en) 2024-04-04
EP4599426A1 (en) 2025-08-13
WO2024076532A1 (en) 2024-04-11
CN120077430A (zh) 2025-05-30
JP2025535711A (ja) 2025-10-28
KR20250048809A (ko) 2025-04-10
US20250246197A1 (en) 2025-07-31
US12300256B2 (en) 2025-05-13

Similar Documents

Publication Publication Date Title
WO2022188734A1 (zh) 一种语音合成方法、装置以及可读存储介质
CN113314094A (zh) 唇形模型的训练方法和装置及语音动画合成方法和装置
JP6078964B2 (ja) 音声対話システム及びプログラム
US10015546B1 (en) System and method for audio visual content creation and publishing within a controlled environment
CN110600013B (zh) 非平行语料声音转换数据增强模型训练方法及装置
CN108831437A (zh) 一种歌声生成方法、装置、终端和存储介质
US20140128160A1 (en) Method and system for generating a sound effect in a piece of game software
US10504498B2 (en) Real-time jamming assistance for groups of musicians
JP2020160319A (ja) 音声合成装置、方法及びプログラム
CN114783408B (zh) 一种音频数据处理方法、装置、计算机设备以及介质
Nakamura et al. Real-time audio-to-score alignment of music performances containing errors and arbitrary repeats and skips
CN112382274B (zh) 音频合成方法、装置、设备以及存储介质
CN116645957B (zh) 乐曲生成方法、装置、终端、存储介质及程序产品
CN112035699A (zh) 音乐合成方法、装置、设备和计算机可读介质
US20250246197A1 (en) Synthesizing audio for synchronous communication
CN112382269B (zh) 音频合成方法、装置、设备以及存储介质
US12510966B2 (en) Haptic feedback method, system and related device for matching split-track music to vibration
CN110289010B (zh) 一种声音采集的方法、装置、设备和计算机存储介质
CN114822492B (zh) 语音合成方法及装置、电子设备、计算机可读存储介质
CN115329124A (zh) 曲谱数据展示方法、设备及可读存储介质
CN113470612A (zh) 一种音乐数据的生成方法、装置、设备以及存储介质
US20250372067A1 (en) Music generation with time varying controls
JP7845491B2 (ja) データ処理方法、プログラムおよびシステム
JP7335316B2 (ja) プログラム及び情報処理装置
CN119440457A (zh) 一种显示设备、音频生成方法及内容展示方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20250403

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20250530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20251021

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20260120

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20260310

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20260403

R150 Certificate of patent or registration of utility model

Ref document number: 7846831

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150