本開示は、視聴覚コンテンツにどんな効果を適用するかを決定する技術を記載する。これらの効果は、視聴覚コンテンツの改変を引き起こす可能性があり、その結果は、ユーザのデバイスを介して出力することができる。例えば、改変された視聴覚コンテンツは、視聴覚コンテンツを出力するように設定されたユーザのデバイスによって実行されるアプリケーション(例えばカメラアプリケーション)を介して出力することができる。
特定の実施形態では、視聴覚コンテンツに適用される効果は、オーディオ効果、ビデオ効果、またはそれらの組合せであることがある。視聴覚コンテンツに適用されると、オーディオ効果は、視聴覚コンテンツのオーディオ部分を改変する。
上述のように、オーディオ効果を視聴覚コンテンツに適用することができる。オーディオ効果は、視聴覚コンテンツのオーディオの一部分を削除する、視聴覚コンテンツのオーディオの一部分の特徴を変化させる(例えばピッチを変化させる)、視聴覚コンテンツに新たなオーディオの一部分を追加する、またはそれらを任意に組み合わせて行うことによって、視聴覚コンテンツに適用することができる。限定されるわけではないが、周囲オーディオ効果(例えば背景音)、トリガオーディオ効果(例えば特定のイベントが視聴覚コンテンツ内で起こることに基づいてトリガされるオーディオ効果)、デジタル信号プロセッサ(DSP)技術を用いて作成されるオーディオ効果(例えばオーディオのピッチ、エコー効果など、音声の1つまたは複数の性質に対する改変)、1つまたは複数のアルゴリズムに基づいて音楽または音声を実時間で合成する合成オーディオ効果、空間オーディオ効果(例えばオーディオが空間内の特定の点から聞こえるような印象を与えるための、現実世界における異なる位置または仮想オブジェクトに関係するオーディオ効果)、あるいはそれらの任意の組合せなど、様々な異なるタイプのオーディオ効果を適用することができる。
特定の実施形態では、視聴覚コンテンツに適用される1つまたは複数のオーディオ効果を決定するように適応されたオーディオエンジンが提供される。このオーディオエンジンは、様々な基準を使用して、視聴覚コンテンツに適用される1つまたは複数のオーディオ効果を決定することができる。例えば、オーディオエンジンは、ソーシャルネットワーキングシステムに記憶された情報を使用することもできる。
ソーシャルネットワーキングシステムは、ユーザについての情報(例えばユーザプロファイル)を記憶することができ、また、ユーザによるソーシャルネットワーキングシステム内の他のエンティティ(例えばユーザ、グループ、ポスト、ページ、イベント、写真、視聴覚コンテンツ(例えばビデオ)、アプリなど)との対話および関係に関係する情報を記憶することもできる。例えば、ソーシャルネットワーキングシステムは、情報をソーシャルグラフで記憶することもできる。ソーシャルグラフは、例えば、個人、グループ、エンティティ、または組織などを表すノードを含むことがある。ソーシャルグラフは、それらのエンティティの間の1つまたは複数の特有のタイプの相互依存性または対話を表すノード間のエッジをさらに含むこともある。特定の実施形態では、オーディオエンジンは、ソーシャルネットワーキングシステムが記憶する情報を使用して、視聴覚コンテンツに適用される1つまたは複数のオーディオ効果を決定することができる。
1つの例示的な例では、オーディオエンジンは、特定の視聴覚コンテンツが対象ユーザを対象としていると判定することができる。対象ユーザは、コンテンツ作成者(例えば、オーディオ効果からオーディオ効果を受信することになるユーザ、またはオーディオエンジンにオーディオ効果に基づいて視聴覚コンテンツを改変させることになるユーザ)のプロファイル情報に基づいて識別することができる。具体的には、オーディオエンジンは、今日がコンテンツ作成者の結婚記念日であると判定することがある。さらに、コンテンツ作成者のプロファイル情報に基づいて、オーディオエンジンは、対象ユーザのプロファイル情報を識別することができる。対象ユーザのプロファイル情報は、コンテンツ作成者が対象ユーザと結婚したときに演奏された特別な歌を含むこともある。オーディオエンジンは、次いで、その特別な歌をオーディオ効果として視聴覚コンテンツに追加して、改変された視聴覚コンテンツが出力されたときに、その特別な歌も背景音楽として出力されるようにするように決定することができる。
特定の実施形態では、オーディオエンジンは、デバイスから受信した視聴覚コンテンツの属性に基づいて、視聴覚コンテンツに適用される1つまたは複数のオーディオ効果を決定することもできる。これらの属性は、例えば、受信した視聴覚コンテンツ内で起こるイベント、および受信した視聴覚コンテンツ内に登場する人または場所など、受信した視聴覚コンテンツの内容を含むこともある。視聴覚コンテンツの別の属性としては、視聴覚コンテンツの1人または複数人の対象ユーザであることもある。対象ユーザは、視聴覚コンテンツの所期の受信者/視聴者であるソーシャルネットワーキングシステムの別のユーザであることもある。
特定の実施形態では、オーディオエンジンは、ユーザのデバイスについて入手可能な地理学的情報、ユーザのデバイスの温度センサが示す温度の読み、あるいは動きのスピードなど、ユーザが静止しているか動いているかを示すユーザのデバイスの加速度計の情報など、ユーザのデバイスの1つまたは複数のセンサから入手可能な情報に基づいて、視聴覚コンテンツに追加される1つまたは複数の効果を決定することもできる。
本開示による実施形態を、方法、記憶媒体、システム、およびコンピュータプログラム製品を対象とする添付の特許請求の範囲に開示する。特許請求の範囲においては、例えば方法など1つの請求項のカテゴリで言及される任意の特徴は、例えばシステムなど別の請求項のカテゴリでも特許請求することができる。添付の特許請求の範囲における従属関係または前方参照は、単に形式的な理由によって選択されたものである。ただし、任意の既出の請求項への意図的な前方参照(特に多項従属)により得られる任意の主題も特許請求することができるので、請求項およびその特徴の任意の組合せを開示し、添付の特許請求の範囲で選択されている従属関係に関わりなく特許請求することができる。特許請求することができる主題は、添付の特許請求の範囲に記載される特徴の組合せだけでなく、それらの請求項の特徴のその他の任意の組合せも含み、それらの請求項において言及される各特徴は、それらの請求項の任意の他の特徴または他の特徴の組合せと組み合わせることができる。さらに、本明細書に記載または図示する任意の実施形態および特徴は、別個の請求項で、かつ/あるいは本明細書に記載もしくは図示する任意の実施形態もしくは特徴と、または添付の特許請求の範囲の任意の特徴と任意に組み合わせて、特許請求することができる。
一実施形態では、コンピューティングシステムによって実行される、オーディオ効果をデバイスに送信して、そのデバイス上で視聴覚コンテンツを改変するようにする方法が提供される。この方法は、ソーシャルネットワーキングシステムのユーザを識別することを含むことがある。いくつかの実施形態では、このユーザは、上記デバイスと関連する。他の実施形態では、このユーザは、上記デバイスと関連がない。このような実施形態では、このユーザは、第1のユーザであることがあり、第2のユーザが、上記デバイスと関連する。例えば、ソーシャルネットワーキングシステムのソーシャルグラフに基づいて、第1のユーザは、第2のユーザの友達であることもある。
この方法は、ソーシャルネットワーキングシステムによって記憶されたデータにアクセスすることをさらに含むこともある。いくつかの実施形態では、このデータは、上記ユーザと関連することがある。いくつかの実施形態では、ソーシャルネットワーキングシステムによって記憶されたデータは、上記ユーザを記述するデータ、またはソーシャルネットワーキングシステムの複数のユーザ間の接続に関係するデータを含むことがある。このような実施形態では、ソーシャルネットワーキングシステムの上記複数のユーザが、上記ユーザを含むことがある。
この方法は、ソーシャルネットワーキングシステムによって記憶されたデータに基づいて、オーディオ効果を決定することをさらに含むことがある。いくつかの実施形態では、オーディオ効果は、視聴覚コンテンツのオーディオ部分をどのように改変するかを示すことがある。このような実施形態では、オーディオ効果は、視聴覚コンテンツに追加される周囲音、オーディオ部分の視聴覚コンテンツへの追加を引き起こすイベントを示す指示、音声を合成する1つまたは複数のアルゴリズム、空間オーディオを得るために音声のバランスをとるために使用される位置、あるいは視聴覚コンテンツに1つまたは複数のデジタル信号プロセッサ(DSP)技術を適用するための1つまたは複数のパラメータを含むことがある。
この方法は、オーディオ効果をデバイスに送信して、デバイス上で視聴覚コンテンツを改変するようにすること、または(2)オーディオ効果に基づいて改変されたオーディオ部分を含む改変された視聴覚コンテンツをデバイスに送信することをさらに含むことがある。いくつかの実施形態では、視聴覚コンテンツを改変することは、オーディオ効果を視聴覚コンテンツとマージすることを含むことがある。いくつかの実施形態では、改変された視聴覚コンテンツは、デバイスによって出力することができる。このような実施形態では、改変された視聴覚コンテンツのオーディオ部分は、デバイスのオーディオ出力サブシステムを用いて出力することができ、改変された視聴覚コンテンツのビデオ部分は、デバイスのビデオ出力サブシステムを用いて出力することができる。
この方法は、上記ユーザに関連する視聴覚コンテンツを受信することと、受信した視聴覚コンテンツの属性を決定することと、をさらに含むことがある。いくつかの実施形態では、オーディオ効果の決定は、属性にさらに基づくことがある。このような実施形態では、ユーザは、受信した視聴覚コンテンツに基づいて識別することができる。いくつかの実施形態では、ユーザは、受信した視聴覚コンテンツ内でユーザの存在を検出することによって識別することができる。
この方法は、上記デバイスの1つまたは複数のセンサのセンサデータを受信することをさらに含むことがあり、オーディオ効果の決定は、センサデータにさらに基づく。いくつかの実施形態では、センサデータは、上記デバイスの物理的位置を示すデータを含むことがある。他の実施形態では、センサデータは、上記デバイスの加速度計によって生成される加速度計データ、または上記デバイス上の温度センサによって感知される温度の読みを含むことがある。
一実施形態では、非一時的コンピュータ可読記憶媒体は、1つまたは複数のプロセッサによって実行可能な複数の命令を記憶することができ、この複数の命令は、上記1つまたは複数のプロセッサによって実行されたときに、上記1つまたは複数のプロセッサに、コンピューティングシステムによって、ソーシャルネットワーキングシステムのユーザを識別させ、コンピューティングシステムによって、ソーシャルネットワーキングシステムによって記憶された上記ユーザに関連するデータにアクセスさせ、コンピューティングシステムによって、ソーシャルネットワーキングシステムによって記憶されたデータに基づいて、視聴覚コンテンツのオーディオ部分をどのように改変するかを示すオーディオ効果を選択させ、コンピューティングシステムによって、オーディオ効果をデバイスに送信させて、そのデバイス上で視聴覚コンテンツを改変するようにする、またはオーディオ効果に基づいて改変されたオーディオ部分を含む改変された視聴覚コンテンツを上記デバイスに送信させることができる。
上記複数の命令は、上記1つまたは複数のプロセッサによって実行されたときに、上記1つまたは複数のプロセッサに、さらに、コンピューティングシステムにおいて、上記ユーザに関連する視聴覚コンテンツを受信させ、コンピューティングシステムによって、受信した視聴覚コンテンツの属性を決定させることができ、ここで、オーディオ効果の決定は、属性にさらに基づく。
上記複数の命令は、上記1つまたは複数のプロセッサによって実行されたときに、上記1つまたは複数のプロセッサに、さらに、コンピューティングシステムにおいて、上記デバイスの1つまたは複数のセンサのセンサデータを受信させることができ、ここで、オーディオ効果の決定は、センサデータにさらに基づく。
一実施形態では、システムは、1つまたは複数のプロセッサと、この1つまたは複数のプロセッサによって実行されたときに、この1つまたは複数のプロセッサに、ソーシャルネットワーキングシステムのユーザを識別すること、ソーシャルネットワーキングシステムによって記憶されたユーザに関連するデータにアクセスすること、ソーシャルネットワーキングシステムによって記憶されたデータに基づいて、視聴覚コンテンツのオーディオ部分をどのように改変するかを示すオーディオ効果を選択すること、およびオーディオ効果をデバイスに送信して、そのデバイス上で視聴覚コンテンツを改変するようにすること、またはオーディオ効果に基づいて改変されたオーディオ部分を含む改変された視聴覚コンテンツを、そのデバイスに送信すること、を含む動作を実行させる命令を含む非一時的コンピュータ可読媒体と、を備えることがある。
命令は、さらに、上記1つまたは複数のプロセッサに、ユーザに関連する視聴覚コンテンツを受信すること、および受信した視聴覚コンテンツの属性を決定すること、を含む動作を実行させることもあり、この場合、オーディオ効果の決定は、属性にさらに基づく。
命令は、さらに、上記1つまたは複数のプロセッサに、上記デバイスの1つまたは複数のセンサのセンサデータを受信することを含む動作を実行させることもあり、この場合、オーディオ効果の決定は、センサデータにさらに基づく。
一実施形態では、1つまたは複数のコンピュータ可読非一時的記憶媒体は、実行されたときに本開示の任意の実施形態による方法を実行するように動作可能なソフトウェアを実装することがある。
一実施形態では、システムは、1つまたは複数のプロセッサと、これらのプロセッサに結合された、これらのプロセッサによって実行可能な命令を含む少なくとも1つのメモリと、を備えることがあり、これらのプロセッサは、命令を実行したときに、本開示の任意の実施形態による方法を実行するように動作可能である。
一実施形態では、好ましくはコンピュータ可読非一時的記憶媒体を備えるコンピュータプログラム製品は、データ処理システム上で実行されたときに本開示の任意の実施形態による方法を実行するように動作可能であることがある。
本開示において利用されている用語および表現は、限定ではなく説明のための用語として用いられたものであり、これらの用語および表現の使用していることに、図示または記載する特徴またはそれらの一部分の任意の均等物を排除するという意図はない。ただし、特許請求されるシステムおよび方法の範囲内で、様々な改変が可能であることを認識されたい。したがって、特定の概念および技術を具体的に開示しているが、当業者なら、これらの概念および技術に改変および変更を加えることができること、ならびにそれらの改変および変形は、本開示によって定義されるシステムおよび方法の範囲内に含まれるものとみなされることを理解されたい。
この概要は、特許請求される主題の重要なまたは不可欠な特徴を特定するためのものではなく、また特許請求される主題の範囲を決定するために分離して使用されるように意図されたものでもない。主題は、本特許の明細書全体のうちの適当な部分、任意の、または全ての図面、および各請求項を参照することによって理解されるものとする。
以下の明細書、特許請求の範囲、および添付の図面では、上記の内容を、他の特徴および例とともにさらに詳細に説明する。
以下の図面を参照して、以下で、例示的な実施形態について詳細に説明する。
以下の記述では、説明のために、本開示の例が完全に理解されるように具体的な詳細を記載する。しかし、様々な例は、これらの具体的な詳細がなくても実施することができることは明らかであろう。例えば、回路、システム、ネットワーク、プロセス、およびその他の構成要素は、不要な細部によって例が分かりにくくならないように、ブロック図の形態の構成要素として示すこともある。他の場合には、周知の回路、プロセス、アルゴリズム、構造、および技術は、例が分かりにくくなることを避けるために、不要な細部を省略して示すこともある。図面および説明は、限定を目的としたものではない。
続く説明は、単に例を提供するものに過ぎず、本開示の範囲、適用可能性、または設定を制限するためのものではない。それらの例についての続く説明は、例の実施を可能にする説明を当業者に提供する。なお、添付の特許請求の範囲に記載される本開示の趣旨および範囲を逸脱することなく、機能および要素の構成に様々な変更を加えることができることを理解されたい。
また、個々の例は、フローチャート、流れ図、データ流れ図、構造図、またはブロック図として描写されるプロセスとして説明されることがあることにも留意されたい。フローチャートは、動作を一連のプロセスとして説明することがあるが、それらの動作の多くは、並列に、または同時に行うこともできる。さらに、動作の順序を入れ換えることもできる。プロセスは、そのプロセスの動作が完了したときに終了するが、図面に示されていない追加のステップを有する可能性もある。プロセスは、方法、機能、手順、サブルーチン、サブプログラムなどに対応する可能性がある。プロセスが機能に対応するときには、そのプロセスの終了は、その機能の呼出し機能または主機能への復帰に対応する可能性がある。
「機械可読記憶媒体」または「コンピュータ可読記憶媒体」という用語は、限定されるわけではないが、携帯可能または携帯不能な記憶デバイス、光学記憶デバイス、ならびに命令(1つもしくは複数)および/またはデータを記憶、収容、または搬送することができるその他の様々な媒体を含む。機械可読記憶媒体またはコンピュータ可読記憶媒体は、無線で、または有線接続を介して伝搬する搬送波および/あるいは一時的な電子信号は含まない、データを記憶することができる非一時的媒体を含むこともある。非一時的媒体の例は、限定されるわけではないが、磁気ディスクまたはテープ、コンパクトディスク(CD)またはデジタル汎用ディスク(DVD)などの光学記憶媒体、フラッシュメモリ、メモリ、あるいはメモリデバイスを含む可能性がある。コンピュータプログラム製品は、手順、機能、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、あるいは命令、データ構造、またはプログラム文の任意の組合せを表すことがあるコードおよび/または機械実行可能命令を含む可能性がある。
さらに、例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せによって実施することができる。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実施するときには、必要なタスクを実行するためのプログラムコードまたはコードセグメント(例えばコンピュータプログラム製品)を、機械可読媒体に記憶することができる。1つまたは複数のプロセッサが、このソフトウェア、ファームウェア、ミドルウェア、マイクロコード、プログラムコード、またはコードセグメントを実行して、必要なタスクを実行することができる。
いくつかの図面に示すシステムは、様々な設定で提供される可能性がある。いくつかの例では、システムは、クラウドコンピューティングシステムの場合のように、システムの1つまたは複数の構成要素が1つまたは複数のネットワークに分散している、分散型システムとして設定されることがある。
構成要素が特定の動作を実行するように「設定されて」いると述べられている場合、その設定は、例えば、電子回路もしくはその他のハードウェアをその動作を実行するように設計する、またはプログラム可能な電子回路(例えばマイクロプロセッサもしくはその他の適当な電子回路)をその動作を実行するようにプログラムする、あるいはそれらを任意に組み合わせることによって実現することができる。
特定の実施形態によれば、本開示は、視聴覚コンテンツにどんな効果を適用するかを決定する技術を記載する。それらの効果は、視聴覚コンテンツの改変の引き起こす可能性があり、その結果は、ユーザのデバイスを介して出力することができる。例えば、改変された視聴覚コンテンツは、視聴覚コンテンツを出力するように設定されたユーザのデバイスによって実行されるアプリケーション(例えばカメラアプリケーション)を介して出力することができる。
特定の実施形態では、視聴覚コンテンツに適用される効果は、オーディオ効果、ビデオ効果、またはそれらの任意の組合せであることがある。オーディオ効果は、視聴覚コンテンツに適用されると、視聴覚コンテンツのオーディオ部分を改変する可能性がある。特に、オーディオ効果は、視聴覚コンテンツのオーディオの一部分を削除する、視聴覚コンテンツのオーディオの一部分の特徴を変化させる(例えばピッチを変化させる)、視聴覚コンテンツに新たなオーディオの一部分を追加する、またはそれらを任意に組み合わせて行うことによって、視聴覚コンテンツを改変することがある。限定されるわけではないが、周囲オーディオ効果(例えば背景音)、トリガオーディオ効果(例えば特定のイベントが視聴覚コンテンツ内で起こることに基づいてトリガされるオーディオ効果)、デジタル信号プロセッサ(DSP)技術を用いて作成されるオーディオ効果(例えばオーディオのピッチ、エコー効果など、音声の1つまたは複数の性質に対する改変)、1つまたは複数のアルゴリズムに基づいて音楽または音声を実時間で合成する合成オーディオ効果、空間オーディオ効果(例えばオーディオが空間内の特定の点から聞こえるような印象を与えるための、現実世界における異なる位置または仮想オブジェクトに関係するオーディオ効果)、あるいはそれらの任意の組合せなど、様々な異なるタイプのオーディオ効果を適用することができる。周囲オーディオ効果は、予め記録した周囲オーディオトラック(1回再生または繰返し再生)であることもある。空間オーディオ効果(360オーディオ効果と呼ばれることもある)は、ユーザの耳に届く音のバランスをとることによって、オーディオが特定の点から聞こえるような印象を与えることができる。空間オーディオ効果は、背後にあるものにユーザの目を向けさせたり、現実感を高めたりするのに有用であることがある。
特定の実施形態では、視聴覚コンテンツに適用される1つまたは複数のオーディオ効果を決定するように適応されたオーディオエンジンが提供される。オーディオエンジンは、様々な基準を使用して、視聴覚コンテンツに適用される1つまたは複数のオーディオ効果を決定することができる。例えば、オーディオエンジンは、ソーシャルネットワーキングシステムに記憶される情報を使用することができる。
ソーシャルネットワーキングシステムは、ユーザについての情報(例えばユーザプロファイル)を記憶することができ、また、ユーザによるソーシャルネットワーキングシステム内の他のエンティティ(例えばユーザ、グループ、ポスト、ページ、イベント、写真、視聴覚コンテンツ(例えばビデオ)、アプリなど)との対話および関係に関係する情報を記憶することもできる。例えば、ソーシャルネットワーキングシステムは、情報をソーシャルグラフで記憶することもできる。ソーシャルグラフは、例えば、個人、グループ、エンティティ、または組織などを表すノードを含むことがある。ソーシャルグラフは、それらのエンティティの間の1つまたは複数の特有のタイプの相互依存性または対話を表すノード間のエッジをさらに含むこともある。特定の実施形態では、オーディオエンジンは、ソーシャルネットワーキングシステムが記憶する情報を使用して、視聴覚コンテンツに適用される1つまたは複数のオーディオ効果を決定することができる。
1つの例示的な例では、オーディオエンジンは、特定の視聴覚コンテンツについて対象ユーザを識別することができる。例えば、対象ユーザは、その特定の視聴覚コンテンツにオーディオ効果を適用した結果(例えば改変された視聴覚コンテンツ)を受信することになるユーザであることもある。このような例では、使用されるオーディオ効果は、対象ユーザ、コンテンツ作成者(コンテンツ作成者が、視聴覚コンテンツを改変するオーディオ効果を受信することになるユーザ、または改変された視聴覚コンテンツを対象ユーザに送信するようにオーディオエンジンに指示するユーザである場合)、特定の視聴覚コンテンツにおいてタグ付けされたユーザ(例えば、タグ付けされたユーザがその特定の視聴覚コンテンツを受け取らない場合でも、コンテンツ作成者は、ユーザをその特定の視聴覚コンテンツと関連付けることができる)、あるいはそれらの任意の組合せのソーシャルネットワーキングデータに基づいて決定することができる。
ソーシャルネットワーキングデータに基づいて、オーディオエンジンは、今日がコンテンツ作成者の結婚記念日であると判定することもある。さらに、ソーシャルネットワーキングシステムに記憶された情報に基づいて、オーディオエンジンは、コンテンツ作成者またはコンテンツ作成者の妻(すなわち対象ユーザ)には、コンテンツ作成者が結婚したときに演奏された特別な歌があると判定することもある。その場合、オーディオエンジンは、その特別な歌をオーディオ効果として視聴覚コンテンツに追加して、改変された視聴覚コンテンツが出力されたときに、その特別な歌も背景音楽として出力されるようにするように決定することもできる。
特定の実施形態では、オーディオエンジンは、デバイスから受信した視聴覚コンテンツの属性に基づいて、視聴覚コンテンツに適用される1つまたは複数の効果を決定することもできる。これらの属性は、例えば、受信した視聴覚コンテンツ内で起こるイベント、および受信した視聴覚コンテンツ内に登場する人または場所など、受信した視聴覚コンテンツの内容を含むこともある。視聴覚コンテンツの別の属性としては、視聴覚コンテンツの1人または複数人の対象ユーザであることもある。
特定の実施形態では、オーディオエンジンは、ユーザのデバイスについて入手可能な地理学的情報、ユーザのデバイスの温度センサが示す温度の読み、あるいは動きのスピードなど、ユーザが静止しているか動いているかを示すユーザのデバイスの加速度計の情報など、ユーザのデバイスの1つまたは複数のセンサから入手可能な情報に基づいて、視聴覚コンテンツに追加される1つまたは複数の効果を決定することもできる。
図1は、特定の実施形態による、デバイスおよびオーディオエンジンによって実行される処理を示す簡略なフローチャートである。図1に示す処理は、それぞれのシステムの1つまたは複数の処理ユニット(例えばプロセッサ、コア)によって実行されるソフトウェア(例えばコード、命令、プログラム)、ハードウェア、あるいはそれらの組合せで実施することができる。ソフトウェアは、非一時的記憶媒体(例えばメモリデバイス)に記憶することができる。以下で説明する図1に提示する方法は、例示のためのものであり、限定のためのものではない。図1に示す特定の処理ステップの順序は、限定を意図したものではない。点線の左側のステップは、デバイスによって実行され、点線の右側のステップは、オーディオエンジンによって実行され、点線の両側にまたがるステップは、デバイスまたはオーディオエンジンのいずれが実行してもよい。
110で、ソーシャルネットワーキングシステムのユーザを識別することができる。ユーザは、デバイスまたはオーディオエンジンのいずれかが識別してもよい。いくつかの実施形態では、ユーザは、コンテンツ作成者であることがあり、コンテンツ作成者は、改変された視聴覚コンテンツを生成しているデバイスと関連付けることができる(例えば、改変された視聴覚コンテンツは、そのデバイスまたはソーシャルネットワーキングシステム上で作成することができる)。他の実施形態では、ユーザは、対象ユーザであることもあり、対象ユーザは、改変された視聴覚コンテンツの所期の受信者であることがある。所期の受信者は、デバイスのユーザが改変された視聴覚コンテンツを送信しようと考える相手であることがある。他の実施形態では、ユーザは、コンテンツ作成者に関係するユーザ(例えば視聴覚コンテンツ内でタグ付けされたユーザ、または改変された視聴覚コンテンツの所期の受信者であるとオーディオエンジンによって識別されたユーザ)であることもある。
ユーザを識別することができる方法は多数あることは理解されるであろうが、以下、いくつかについて説明する。例えば、デバイスは、デバイス上で実行されるソーシャルネットワーキングアプリケーションがソーシャルネットワーキングシステムと関連する場合には、そのソーシャルネットワーキングアプリケーションに関連するユーザを識別することができる。そのような例において、メッセージがユーザの識別を含む場合、オーディオエンジンはデバイスからのメッセージを受信することができる。
別の例では、オーディオエンジンが、ソーシャルネットワーキングシステムのユーザに基づいてユーザを識別することができる。例えば、オーディオエンジンは、1つまたは複数の基準を満たすソーシャルネットワーキングシステムの全てのユーザを要求することがある。この例では、その1つまたは複数の基準に基づいてソーシャルネットワーキングシステムが返してきたユーザを、ユーザとして確立することができる。
別の例では、オーディオエンジンは、デバイス(あるいは別のデバイスまたはシステム)から視聴覚コンテンツを受信することができる。オーディオエンジンは、次いで、受信した視聴覚コンテンツ(例えば受信した視聴覚コンテンツの内容認識)に基づいてユーザを識別することができる。
120で、ユーザを識別した後で、ソーシャルネットワーキングシステムに記憶されたデータ(ソーシャルネットワーキングデータと呼ばれることもある)にアクセスすることができる。ソーシャルネットワーキングデータは、限定されるわけではないが、ユーザプロファイルデータ、ソーシャルグラフデータ、またはその他のソーシャルネットワーキングシステムに記憶されるデータ(以下でさらに述べる)など、様々なタイプのデータを含む可能性がある。いくつかの実施形態では、ユーザプロファイルデータ(またはその一部分)が、ソーシャルグラフデータに含まれることもある。
ユーザプロファイルデータは、ソーシャルネットワーキングシステムのユーザについての情報またはソーシャルネットワーキングシステムのユーザに関係する情報を含む可能性がある。ユーザは、ソーシャルネットワーキングシステムを使用する個人(人間のユーザ)、エンティティ(例えば会社、企業、またはサードパーティアプリケーション)、あるいはグループ(例えば個人のグループまたはエンティティのグループ)である可能性がある。ユーザは、ソーシャルネットワーキングシステムを使用して、ソーシャルネットワーキングシステムの他のユーザまたはエンティティと対話し、通信し、または情報を共有することができる。ユーザのユーザプロファイルデータは、ユーザの名前、プロフィール写真、連絡先情報、生年月日情報、性別情報、婚姻状況情報、家族状況情報、雇用情報、学歴情報、ユーザの好み、関心、またはその他の人口統計学的情報などの情報を含む可能性がある。ソーシャルネットワーキングシステムは、ソーシャルネットワーキングシステムを用いたユーザの対話に基づいて、この情報を更新することができる。
限定のためではなく例として、ユーザプロファイルデータは、固有名(人の氏名およびミドルネーム、企業体の商号または社名など)、ニックネーム、経歴、人口統計、ユーザの性別、現在居住地、誕生日、出身地、交際状況、結婚記念日、結婚式で演奏された歌、政治的見解、ユーザが何を求めているか、またはユーザがどのようにソーシャルネットワーキングシステムを使用しているか(例えば友達、交際、デート、ネットワーキングを求めているなど)、ユーザが参加している、または楽しんでいる様々な活動、ユーザの様々な関心、ユーザの好きな様々な媒体(例えば音楽、テレビジョン番組、書籍、引用)、ユーザの連絡先情報(例えば電子メールアドレス、電話番号、住所、職場住所、またはその他の適当な連絡先情報)、ユーザの学歴、ユーザの雇用履歴、およびその他のタイプのユーザの説明的情報を含む可能性がある。
ソーシャルグラフデータは、ソーシャルネットワーキングシステムに記憶されるソーシャルグラフに関係があることがある。特定の実施態様では、ソーシャルグラフは、複数のノードを含むことがあり、これらのノードが、ソーシャルネットワーキングシステム内のユーザおよびその他のエンティティを表している。ソーシャルグラフは、ノードを接続するエッジも含むことがある。ノードおよびエッジは、それぞれデータオブジェクトとしてソーシャルネットワーキングシステムに記憶することができる。
特定の実施形態では、ソーシャルグラフ内のユーザノードは、ソーシャルネットワーキングシステムのユーザに対応することがある。特定のユーザを表すノードについて、その特定のユーザに関係する情報が、ソーシャルネットワーキングシステムによってそのノードと関連付けられることもある。
特定の実施形態では、ソーシャルグラフ内の一対のノードが、1本または複数本のエッジで接続されることがある。一対のノードを接続するエッジは、そのノードの対の間の関係を表すことができる。特定の実施形態では、エッジは、一対のノードの間の関係に対応するデータオブジェクト(または属性)を含む、または表すことができる。限定のためではなく例として、第1のユーザが、第2のユーザが第1のユーザの「友達」であると示すことがある。この指示に応答して、ソーシャルネットワーキングシステムは、第2のユーザに「友達要求」を伝送することができる。第2のユーザが「友達要求」を確認した場合には、ソーシャルネットワーキングシステムは、ソーシャルグラフ内で第1のユーザのユーザノードと第2のユーザのユーザノードとを接続するエッジを作成し、そのエッジをソーシャルグラフデータとしてデータ記憶装置の1つまたは複数に記憶することができる。限定のためではなく例として、エッジは、友達関係、家族関係、企業または雇用関係、ファン関係、フォロワ関係、ビジタ関係、加入者関係、上司/部下関係、互恵的関係、非互恵的関係、別の適当なタイプの関係、あるいは2つ以上のそれらの関係を表すことがある。
特定の実施形態では、エッジタイプは、対応するノード対の間の特定のタイプの接続を記述するさらなる詳細またはメタデータを追加する、1つまたは複数のエッジサブタイプを含むことがある。エッジは、ソーシャルグラフ内でそのエッジが接続するノードのタイプに少なくとも部分的には基づく、複数のエッジタイプのうちの1つであることがある。限定のためではなく例として、NETFLIXのウェブアプリケーションでは、「私が見たい映画」を意味するエッジタイプになることがある。エッジが関連するエッジタイプを有する、またはエッジに関連するエッジタイプが割り当てられるこのような実施形態では、エッジ自体が、例えばそのエッジが接続するノードのタイプ(例えばユーザ、ハブ、ハブのカテゴリまたは分類)を記述するデータなど、そのエッジが接続する一対のノードの間の接続のタイプを定義するデータを記憶する、またはそのデータとともに記憶されることがある。
特定の実施形態では、各エッジは、そのエッジが接続するノードのタイプに関わらず、単にノード間の接続を定義する、または表すだけであることもある。エッジ自体が、そのエッジが接続するノードの識別子を記憶する、またはその識別子とともに記憶されることもあるが、そのエッジが接続する一対のノードの間の接続のタイプを記述するデータを記憶する、またはそのデータとともに記憶されることもある。さらに、上記その他の実施形態のいずれにおいても、エッジによって接続されるノード間の接続または関係のタイプを示すことができるデータは、それらのノード自体とともに記憶することができる。特定の実施形態では、エッジならびに属性(例えばエッジタイプ、およびエッジによって接続されるノードに対応するノード識別子)、メタデータ、あるいはエッジを定義する、エッジを特徴付ける、またはエッジと関係するその他の情報は、ソーシャルグラフデータベースに(例えばデータオブジェクトとして)記憶することができる。
130で、ソーシャルネットワーキングシステムに記憶されるデータに基づいて、オーディオ効果を決定することができる。いくつかの実施形態では、オーディオエンジンは、特定のオーディオ効果がソーシャルネットワーキングシステムに記憶されたデータから識別される特定のイベントに関連があるときにそのことを判定する論理を含む。例えば、オーディオエンジンは、誕生日用のオーディオ効果を識別して、データが誕生日を示すときにオーディオエンジンが誕生日に関係するオーディオ効果を決定できるようにすることができる。他の実施形態では、オーディオ効果は、オーディオ効果が関係する主体を示すメタデータを含むことがある。例えば、オーディオ効果は、いつそのオーディオ効果が関連することになるかを記述する1つまたは複数のタグを含むことがある。他の実施形態では、オーディオエンジンは、オーディオ効果を実行して、ソーシャルネットワーキングシステムに記憶されたデータに基づいてそのオーディオ効果を決定すべきかどうかを判定することもできる。いくつかの実施形態では、オーディオエンジンは、1つまたは複数のソースから受信することができるオーディオ効果のプールにアクセスすることもできる。このような実施形態では、オーディオエンジンは、そのオーディオ効果のプールからオーディオ効果を決定することができる。
オーディオ効果は、視聴覚コンテンツに追加される周囲音、オーディオ効果の視聴覚コンテンツへの適用を引き起こすイベントを示す指示、1つまたは複数のデジタル信号プロセッサ(DSP)技術を視聴覚コンテンツに適用するための1つまたは複数のパラメータ、音声を合成するための1つまたは複数のアルゴリズム、空間オーディオを得るために音声のバランスをとるために使用される位置、あるいはそれらの任意の組合せを含む可能性がある。
いくつかの実施形態では、オーディオ効果の決定は、デバイスが取得するデータ(センサ入力と呼ばれることもある)にさらに基づくこともある。例えば、センサ入力は、デバイスの物理的位置、デバイスが位置している環境の現在温度、加速度計情報、あるいはデバイスの1つまたは複数のセンサが感知するその他のデータを含む可能性がある。
130の後で、フローチャートは、デバイスまたはオーディオエンジンが視聴覚コンテンツを改変中であるかどうかに応じて、140に進むことも、あるいは150に進むこともある。140では、オーディオ効果をデバイスに送信して、デバイスによって出力されるようにすることができる。いくつかの実施形態では、オーディオ効果は、オーディオ効果を視聴覚コンテンツに適用する論理を含むことがある。オーディオ効果は、オーディオ効果を適用するときを決定する論理を含むこともある。オーディオ効果は、オーディオ効果を適用するときに使用されるオーディオを含むこともある。150で、デバイスがオーディオ効果を受信することができる。
160で、視聴覚コンテンツを、オーディオ効果に基づいて改変することができる。例えば、オーディオ効果は、視聴覚コンテンツのオーディオの一部分を削除する、視聴覚コンテンツのオーディオの一部分の特徴を変化させる(例えばピッチを変化させる)、視聴覚コンテンツに新たなオーディオの一部分を追加する、またはそれらを任意に組み合わせて行うことによって、視聴覚コンテンツを改変することができる。視聴覚コンテンツを改変することにより、改変された視聴覚コンテンツを生成することができる。いくつかの実施形態では、視聴覚コンテンツの改変は、オーディオ効果を視聴覚コンテンツとマージすることを含む。いくつかの例では、オーディオ効果を階層化して、複数のオーディオ効果が視聴覚コンテンツに適用されるようにすることもできる。例えば、第1の層(例えば第1のオーディオ効果)を視聴覚コンテンツに適用することができる。このような例では、第2の層(例えば第2のオーディオ効果)を視聴覚コンテンツに適用することもでき、この場合、第1の層は、第2の層の上に適用されて、視聴覚コンテンツの聞こえ方を変化させる。いくつかの例では、これらの改変は、デバイス上で行うことができる。他の例では、改変は、オーディオエンジンによって行われることもある。
170で、改変された視聴覚コンテンツを、デバイスが出力することができる。いくつかの実施形態では、改変された視聴覚コンテンツのオーディオ部分を、デバイスのオーディオ出力サブシステムを使用して出力し、改変された視聴覚コンテンツのビデオ部分を、デバイスのビデオ出力サブシステムを使用して出力することができる。
図1は、特定のデバイスまたはシステムによって特定の順序で実行される特定のステップを示しているが、これらのステップは、異なるデバイスまたはシステムによって、かつ/あるいは異なる順序で、実行することもできることを理解されたい。
図2は、特定の実施形態による視聴覚コンテンツへの1つまたは複数のオーディオ効果を決定するシステム200を示す簡略なブロック図である。図2に示すシステム200は、単なる例であり、特許請求の範囲に記載する発明性のある実施形態の範囲を必要以上に限定することを意図したものではない。当業者なら、多数の可能な変形、代替、および改変を認識するであろう。例えば、いくつかの実施態様では、システム200は、図2に示すより多いシステムを有することも、少ないシステムを有することもあり、2つ以上のシステムを組み合わせたものであることもあり、あるいはシステムの異なる設定または構成を有することもある。
図2に示すように、システム200は、視聴覚コンテンツを入力として受信し、様々な基準に基づいてユーザのデバイス上で視聴覚コンテンツに適用する1つまたは複数のオーディオ効果を決定し、その1つまたは複数のオーディオ効果をユーザのデバイスに送信して、その1つまたは複数の効果が視聴覚コンテンツに適用されてユーザのデバイスによって出力されるようにするように適応されたオーディオエンジン220を含む。
受信される視聴覚コンテンツは、様々な視聴覚コンテンツソース210からのものである可能性がある。例えば、受信される視聴覚コンテンツは、ユーザのデバイスまたは遠隔システムの視聴覚情報取込みサブシステムからのものであることもある(例えば取込みコンテンツ212)。例えば、視聴覚情報取込みサブシステムは、オーディオ情報および/またはビデオ情報を実時間で取り込むことができる。いくつかの実施形態では、視聴覚情報取込みサブシステムは、画像またはビデオを取り込む1つまたは複数のカメラ、あるいはオーディオを取り込む1つまたは複数のマイクロフォンなどを含むことがある。視聴覚コンテンツは、アプリケーション(ユーザのデバイスまたは遠隔システム上で実行される)からの出力であることもある。
特定の実施形態では、受信される視聴覚コンテンツは、著作コンテンツ216を含むことがあり、著作コンテンツ216は、例えばユーザによって著作されたビデオクリップ、オーディオクリップなどを含む可能性がある。著作コンテンツ216は、様々な利用可能なオーサリングアプリケーション(例えばオーディオおよびビデオ編集アプリケーション)を使用して著作することができる。著作コンテンツ216は、オリジナルコンテンツ、ライセンスコンテンツ、またはそれらの任意の組合せを含む可能性がある。
特定の実施形態では、受信される視聴覚コンテンツは、記憶された位置からアクセスされる記憶視聴覚コンテンツ214を含むことがある。記憶された位置は、ソーシャルネットワーキングシステム内の記憶位置または遠隔位置からユーザデバイス上にあることもある。
オーディオエンジン220は、ユーザのデバイス上で視聴覚コンテンツに適用される1つまたは複数のオーディオ効果を決定するように設定される。上記で示したように、オーディオエンジン220は、様々な異なる基準を使用して、この1つまたは複数のオーディオ効果を決定することができる。いくつかの実施形態では、この1つまたは複数のオーディオ効果の決定は、センサ入力230、ソーシャルネットワーキングデータ240、受信される視聴覚コンテンツ(例えば受信される視聴覚コンテンツ内で起こる特定のイベント、または受信される視聴覚コンテンツに関連するユーザを示す指示)、あるいはそれらの任意の組合せに基づくことがある。
センサ入力230は、ユーザのデバイス上の1つまたは複数のセンサによって得られる現在の情報であることもある。センサ入力230の例は、ユーザのデバイスの現在位置、ユーザのデバイスが位置している環境の現在温度、または加速度計情報などを含む。
ソーシャルネットワーキングデータ240は、ソーシャルネットワーキングシステムに記憶されるデータを表す。ソーシャルネットワーキングデータ240は、限定されるわけではないが、ユーザプロファイルデータ242、ソーシャルグラフデータ244、または上述のようにソーシャルネットワーキングシステムに記憶されるその他のデータなど、様々なタイプのデータを含む可能性がある。いくつかの実施形態では、ユーザプロファイルデータ242(またはその一部分)は、ソーシャルグラフデータ244に含まれることもある。例示的な例では、ソーシャルネットワーキングデータ240は、今日ユーザが誕生日を迎えることを示すこともある。その情報に基づいて、誕生日を祝うオーディオ効果がユーザのデバイスによって提示されるように決定することもできる。
ソーシャルグラフデータ244は、ソーシャルネットワーキングシステムに記憶されるソーシャルグラフと関係することもある。特定の実施態様では、ソーシャルグラフは、上述のように、複数のノードを含むことがあり、これらのノードは、ソーシャルネットワーキングシステム内のユーザおよびその他のエンティティを表す。ソーシャルグラフは、上述のようにノードを接続するエッジを含むこともある。
いくつかの実施形態では、オーディオエンジン220は、特定のオーディオ効果がソーシャルネットワーキングデータ240から識別された特定のイベントに関連があるときにそのことを判定する論理を含むことがある。例えば、オーディオエンジン220は、誕生日用のオーディオ効果を識別して、ソーシャルネットワーキングデータ240が誕生日を示したときにオーディオエンジン220が誕生日に関係するオーディオ効果を決定できるようにすることもできる。他の実施形態では、オーディオ効果は、オーディオ効果が関係する主体を示すメタデータを含むこともある。例えば、オーディオ効果は、いつそのオーディオ効果が関連することになるかを記述する1つまたは複数のタグを含むことがある。他の実施形態では、オーディオエンジン220は、オーディオ効果を実行して、ソーシャルネットワーキングデータ240に基づいてそのオーディオ効果を決定すべきかどうかを判定することもできる。いくつかの実施形態では、オーディオエンジン220は、オーディオ効果ソース250から受信することができるオーディオ効果のプールにアクセスすることもできる。このような実施形態では、オーディオエンジン220は、そのオーディオ効果のプールからオーディオ効果を決定することができる。
いくつかの実施形態では、この1つまたは複数のオーディオ効果は、1つまたは複数のオーディオ効果ソース250から決定することができる。オーディオ効果ソースは、エディタ252、コーダ254、事前設定効果データ記憶装置256、またはそれらの組合せを含む可能性がある。エディタ252は、ユーザが効果(例えばオーディオ効果)を作成するためのグラフィカルユーザインタフェースを提供することができる。コーダ254は、ユーザが効果を作成するためのテキストユーザインタフェースを提供することができる。事前設定効果データ記憶装置256は、全ての効果が記憶されたデータベースとすることができる。
オーディオエンジン220がユーザのデバイス上で視聴覚コンテンツに適用される1つまたは複数のオーディオ効果を決定した後で、オーディオエンジン220は、その1つまたは複数のオーディオ効果をユーザのデバイスに送信するように設定される。ユーザのデバイスは、オーディオ改変サブシステム260を使用して、この決定された1つまたは複数のオーディオ効果をユーザのデバイス上で視聴覚コンテンツに適用して、改変された視聴覚コンテンツを生成することができる。例えば、この1つまたは複数のオーディオ効果は、ユーザのデバイス上で視聴覚コンテンツのオーディオの一部分を改変することもできる。音声部分の改変は、ユーザのデバイス上で視聴覚コンテンツのオーディオの一部分を削除すること、ユーザのデバイス上で視聴覚コンテンツのオーディオの一部分の特徴を変化させる(例えばピッチを変化させる)こと、ユーザのデバイス上で視聴覚コンテンツに新たなオーディオの一部分を追加すること、またはそれらの組合せを含む可能性がある。
特定の実施形態では、ユーザのデバイスは、視聴覚出力サブシステム270を使用して、改変された視聴覚コンテンツを出力することができる。改変された視聴覚コンテンツのビデオ部分は、視聴覚出力サブシステム270のビデオ出力サブシステム272を介して出力することができる。改変されたオーディオを含む改変された視聴覚コンテンツのオーディオ部分は、視聴覚出力サブシステム270のオーディオ出力サブシステム274(例えばスピーカ)を使用して出力することができる。
図3は、特定の実施形態によるオーディオエンジンによって実行される処理を示す簡略なフローチャートである。図3に示す処理は、それぞれのシステムの1つまたは複数の処理ユニット(例えばプロセッサ、コア)によって実行されるソフトウェア(例えばコード、命令、プログラム)、ハードウェア、またはそれらの組合せによって実施することができる。ソフトウェアは、非一時的記憶媒体(例えばメモリデバイス)に記憶することができる。以下に述べる図3に提示する方法は、例示のためのものであり、限定のためのものではない。図3に示す特定の処理ステップの順序は、限定を意図したものではない。
310で、オーディオエンジン(例えば図2に示すオーディオエンジン220)が、視聴覚コンテンツを受信することができる。図2に関連して上述したように、視聴覚コンテンツは、様々なソースから受信することができる。視聴覚コンテンツは、視覚的部分(例えば1つまたは複数のフレーム)、および/あるいは聴覚的部分(例えばある長さの時間のオーディオ)を含む可能性がある。
320で、受信した視聴覚コンテンツの1つまたは複数の属性を決定することができる。例えば、上述のように、属性は、受信した視聴覚コンテンツ内で起こるイベント、および受信した視聴覚コンテンツ内に登場する人または場所など、受信した視聴覚コンテンツ自体の内容を含む可能性がある。視聴覚コンテンツの別の属性としては、視聴覚コンテンツの1人または複数人の対象ユーザであることもある。
いくつかの実施形態では、1つまたは複数の属性の決定は、受信した視聴覚コンテンツに基づいてユーザを識別することを含むことがある。例えば、ユーザは、(例えば顔認証、位置決定、およびコンテンツ内のユーザにタグ付けするその他の技術によって)視聴覚コンテンツ自体の中で識別される。別の例として、受信した視聴覚コンテンツが、ユーザを識別するデータを含むこともある(または受信した視聴覚コンテンツとは別個に送信されることもある)。具体的には、コンテンツは、取り込まれたとき、またはアップロードされたときに、ソーシャルネットワーキングシステムのユーザのユーザ識別子(UID)と関連付けられる。別の例としては、オーディオエンジンは、視聴覚コンテンツを受信するのではなく、ユーザを一意的に識別するデータ(例えばUID)を受信するだけであることもある。
330で、オーディオエンジンは、320で決定された1つまたは複数の属性に基づいて、かつソーシャルネットワーキングシステムに記憶されるソーシャルネットワーキングシステムデータおよび/またはユーザのデバイスから受信したセンサデータを含む様々な基準に基づいて、1つまたは複数のオーディオ効果を選択する。オーディオ効果は、視聴覚コンテンツに追加される周囲音、オーディオ効果の視聴覚コンテンツへの適用を引き起こすイベントを示す指示、1つまたは複数のデジタル信号プロセッサ(DSP)技術を視聴覚コンテンツに適用するための1つまたは複数のパラメータ、音声を合成するための1つまたは複数のアルゴリズム、空間オーディオを得るために音声のバランスをとるために使用される位置、あるいはそれらの任意の組合せを含む可能性がある。
ソーシャルネットワーキングデータは、ソーシャルネットワーキングシステムから得られるデータを含むことがある。ソーシャルネットワーキングシステムから得られるデータの例は、ユーザプロファイルデータ、ユーザ間の接続、およびソーシャルネットワーキングシステムが把握するその他の情報を含む可能性がある。いくつかの実施形態では、ソーシャルネットワーキングデータは、ユーザデバイスに関連するユーザに関係していることがある。例えば、ユーザは、ユーザのデバイス上で1つまたは複数のオーディオ効果を備えた視聴覚コンテンツを共有しようとしているユーザであることもある。ソーシャルネットワーキングデータは、その1つまたは複数のオーディオ効果を備えた視聴覚コンテンツを受信することになるユーザに関係付けることもできる。例えば、ユーザの友達が、今日誕生日を迎えることもある。この例では、今日がその友達の誕生日であるという事実に基づいて、1つまたは複数のオーディオ効果を決定することができる。したがって、その1つまたは複数のオーディオ効果は、ユーザではなく友達に基づいて決定されることになる。
センサ入力は、ユーザのデバイスが得るデータを含むことがある。例えば、センサ入力は、ユーザのデバイスの物理的位置、ユーザのデバイスが位置している環境の現在温度、加速度計情報、あるいはユーザのデバイスの1つまたは複数のセンサが感知するその他のデータを含む可能性がある。
いくつかの実施形態では、1つまたは複数のオーディオ効果の決定は、ユーザについてのソーシャルネットワーキングシステムに記憶されたユーザプロファイルデータを識別することを含む。ユーザプロファイルデータは、ユーザを記述するデータ、またはユーザ間の接続に関係するデータを含む可能性がある。
ソーシャルネットワーキングデータに基づいて決定されるオーディオ効果の例は、その日がユーザの誕生日であることを示すデータに基づいて再生される「ハッピーバースデー」の歌、その日がユーザの記念日であること、およびそのエンドユーザの記念日の歌がその特別な記念日の歌であることを示すデータに基づいて再生される特別な記念日の歌、エンドユーザの年齢を示すデータに基づいて追加される、ならびにユーザが青年だった頃を思い出させるオーディオ効果などを含む。
340で、この1つまたは複数のオーディオ効果を、ユーザのデバイスで出力されるようにユーザのデバイスに送信することができる。例えば、ユーザのデバイス上の視聴覚コンテンツを、この1つまたは複数のオーディオ効果を適用することによって改変して、改変された視聴覚コンテンツを生成することもできる。いくつかの実施形態では、視聴覚コンテンツに適用されることは、その1つまたは複数のオーディオ効果が、ユーザのデバイス上でその視聴覚コンテンツのオーディオとともに追加される追加のオーディオを含むことを示していることがある。他の実施形態では、視聴覚コンテンツに適用されることは、その1つまたは複数のオーディオ効果が、ユーザのデバイスにおける視聴覚コンテンツのオーディオへの変更(例えば、ピッチ変更、ミューティング、音量変更など)を含むことを示していることもある。いくつかの実施形態において、視聴覚コンテンツを変更することは、ユーザのデバイスにおける視聴覚コンテンツでオーディオ効果をマージすることを含む。効果のマージは、ソーシャルネットワーキングシステム上で行われることも(視聴覚コンテンツがソーシャルネットワーキングシステムに送信される場合)、あるいはユーザのデバイスによって行われることも(例えばオーディオ効果またはオーディオ効果への参照がソーシャルネットワーキングシステムによって選択され、ユーザのデバイスに送信される場合)ある。この1つまたは複数のオーディオ効果を備えた視聴覚コンテンツは、ユーザのデバイスによって出力することができる。いくつかの実施形態では、改変された視聴覚コンテンツのオーディオ部分は、デバイスのオーディオ出力サブシステムを使用して出力し、改変された視聴覚コンテンツのビデオ部分は、デバイスのビデオ出力サブシステムを使用して出力することができる。
図4は、例示的な実施形態を実施することができる分散型環境400を示す簡略なブロック図である。分散型環境400は、1つまたは複数の通信ネットワーク440を介して互いに通信可能に結合された複数のシステムを含むことがある。分散型環境400は、デバイス410、およびソーシャルネットワーキングシステム450を含む。図4に示す分散型環境400は、単なる例であり、特許請求の範囲に記載する発明性のある実施形態の範囲を必要以上に限定することを意図したものではない。当業者なら、多数の可能な変形、代替、および改変を認識するであろう。例えば、いくつかの実施態様では、分散型環境400は、図4に示すより多いシステムを有することも、少ないシステムを有することもあり、2つ以上のシステムを組み合わせたものであることもあり、あるいはシステムの異なる設定または構成を有することもある。
分散型環境400は、外部システム460をさらに含むことがある。外部システム460は、通信ネットワーク440を使用してデバイス410と通信することができる1つまたは複数のウェブページ(例えばウェブページ462aおよびウェブページ462b)をそれぞれ含む1つまたは複数のウェブサーバを含むことがある。外部システム460は、ソーシャルネットワーキングシステム450から分離していてもよい。例えば、外部システム460が第1のドメインと関連し、ソーシャルネットワーキングシステム450が別個のソーシャルネットワーキングドメインと関連していることもある。外部システム460に含まれるウェブページ462a、462bは、コンテンツを識別し、識別されたコンテンツのフォーマット化または提示を指定する命令を含む、マークアップ言語文書を含むことがある。
通信ネットワーク440は、図4に示す様々なシステム間の通信を容易にする。通信ネットワーク440は、様々なタイプのものにすることができ、1つまたは複数の通信ネットワークを含むこともある。通信ネットワーク440の例は、限定されるわけではないが、インターネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、イーサネットネットワーク、公衆または私設ネットワーク、有線ネットワーク、および無線ネットワーク、などならびにそれらの組合せを含む。IEEE 802.XXプロトコルスイート、TCP/IP、IPX、SAN、AppleTalk(登録商標)、Bluetooth(登録商標)、およびその他のプロトコルなど、有線および無線の両方のプロトコルを含む様々な通信プロトコルを使用して、通信を容易にすることができる。一般に、通信ネットワーク440は、図4に示す様々なシステム間の通信を容易にする任意のインフラストラクチャを含むことができる。
ユーザは、デバイス410を使用して、ソーシャルネットワーキングアプリケーション420などのデバイス410によって実行されるアプリケーションと対話することができる。デバイス410は、モバイルデバイス(例えばiPhone(商標)、iPad(商標)デバイス)、デスクトップコンピュータ、ラップトップコンピュータ、またはその他のコンピューティングデバイスとすることができる。デバイス410は、入力および/または出力(I/O)サブシステム430など、複数のサブシステムを含む可能性がある。
I/Oサブシステム430は、デバイス410にデータを入力し、かつ/またはデバイス410からデータを出力する構成要素を含むことがある。例えば、I/Oサブシステム430は、デバイス410上でコンテンツを表示するスクリーンを含むことがある。別の例では、I/Oサブシステム430は、デバイスの周りの特徴を検出し、相互作用を受信する、1つまたは複数のセンサ432を含むこともある。センサの例は、全地球測位システム(GPS)、加速度計、キーボード、スピーカ、温度計、高度計、またはデバイスへのライブ入力を提供することができるその他のセンサを含む可能性がある。
いくつかの実施形態では、ビデオ出力サブシステムおよびオーディオ出力サブシステムが、I/Oサブシステム430に含まれることもある。ビデオ出力サブシステム(図示せず)は、デバイス410から1つまたは複数のフレーム(例えば画像またはビデオ)を出力することができる。オーディオ出力サブシステム(図示せず)は、デバイス410からオーディオを出力することができる。
いくつかの実施形態では、I/Oサブシステム430は、オーディオ情報および/または視覚的情報を取り込む視聴覚情報取込みサブシステム434を含むことがある。視聴覚情報取込みサブシステム434は、例えば、画像またはビデオ情報を取り込む1つまたは複数のカメラ、あるいはオーディオ情報を取り込む1つまたは複数のマイクロフォンなどを含む可能性がある。
カメラアプリケーション422を含むこともあるソーシャルネットワーキングアプリケーション420など、1つまたは複数のアプリケーションをデバイス410にインストールし、デバイス410によって実行することができる。図4にはソーシャルネットワーキングアプリケーション420しか示していないが、これは限定を意図したものではなく、他のアプリケーションがデバイス410によって実行されることもある。さらに、図4ではカメラアプリケーション422がソーシャルネットワーキングアプリケーション420の一部として示してあるが、いくつかの他の実施形態において、カメラアプリケーション422は、ソーシャルネットワーキングアプリケーションから分離していてもよい(例えばデバイス410上で実行される別個のアプリケーション)。
特定の実施形態では、カメラアプリケーション422は、視聴覚情報取込みサブシステム434によって取り込まれた1つまたは複数の画像、ビデオ、ビデオストリーム、および/あるいはオーディオ情報を受信して、出力することができる。
上述のように、分散型環境400は、ソーシャルネットワーキングシステム450を含むことがある。特定の実施形態では、ソーシャルネットワーキングシステム450は、デバイス410によって実行されるソーシャルネットワーキングアプリケーション420のサーバ側構成要素として作用することができる。例えば、ソーシャルネットワーキングシステム450は、視聴覚コンテンツ、センサ入力、またはデバイス410からのその他のデータなどのデータを、デバイス410から受信することができる。同様に、ソーシャルネットワーキングシステム450は、改変された視聴覚データなどのデータをデバイス410に送信することもできる。
ソーシャルネットワーキングシステム450は、オーディオエンジン452、ソーシャルネットワーキングデータ454、および効果データ記憶装置456を含むことがある。図4では、これらの構成要素がそれぞれソーシャルネットワーキングシステム450に含まれるものとして示しているが、これらの構成要素のうちの1つまたは複数は、ソーシャルネットワーキングシステム450から遠隔にあってもよいことを認識されたい。例えば、効果データ記憶装置456は、ソーシャルネットワーキングシステム450に関連する遠隔のネットワークおよび/またはサーバ上にあってもよい。
オーディオエンジン452は、デバイス410から視聴覚コンテンツを受信することができる。この視聴覚コンテンツ(またはその視聴覚コンテンツに付随するデータ)に基づいて、オーディオエンジンは、1つまたは複数のオーディオ効果によって視聴覚コンテンツを改変することを決定することができる。いくつかの実施形態では、この1つまたは複数のオーディオ効果は、効果データ記憶装置456に記憶することができる。他の実施形態では、この1つまたは複数のオーディオ効果のうちの少なくとも一部分を、デバイス410(または別のデバイス)に記憶し、オーディオエンジン452に送信することもできる。このような実施形態では、オーディオ効果は、視聴覚コンテンツとともに(またはそれとは別個に)オーディオエンジン452に送信することができる。
いくつかの例では、ソーシャルネットワーキングシステム450は、デバイス410から視聴覚コンテンツを受信しないこともある。その代わりに、ソーシャルネットワーキングシステム450は、ユーザの識別情報(例えばユーザ識別子(UID))を受信することがある。例えば、ユーザがカメラアプリケーション422を開いたときに、デバイス410は、そのユーザのUIDをソーシャルネットワーキングシステム450に送信することがある。別の例では、ソーシャルネットワーキングシステム450は、既にユーザを識別していることもある。そのような例では、カメラアプリケーション422は、UIDがなくても、オーディオ効果を要求するメッセージを送信することができる。いくつかの例では、ユーザの識別に加えて、ソーシャルネットワーキングシステム450は、(例えば、デバイス410および/またはソーシャルネットワーキングアプリケーション420に関するソーシャルネットワーキングシステム450に記憶される情報を通して、あるいはGPSデータなどのソーシャルネットワーキングアプリケーション420から送信されるデータを通して)デバイス410の位置を識別することもできる。
1つの例示的な例では、ソーシャルネットワーキングシステム450は、特定のユーザが博物館内にいることを識別し、カメラアプリケーション422にオーディオ効果を提供することもある。次いで、このオーディオ効果をデバイス410が受信し、デバイス410が提示している視聴覚コンテンツに適用することができる。例えば、デバイス410が提示している視聴覚コンテンツが、デバイス410に記憶されておらず、デバイス410が視聴覚コンテンツを視聴覚情報取込みサブシステム434から受信するカメラモードであることもある。このような例では、ユーザは、改変された視聴覚コンテンツ(オーディオ効果に基づいて改変された視聴覚コンテンツ)の一部分を、デバイス410に記憶させることができる。
ソーシャルネットワーキングシステム450は、複数のユーザを含むソーシャルネットワーク用の1つまたは複数のコンピューティングデバイスと関連付けられ、そのソーシャルネットワークのユーザに、そのソーシャルネットワークの他のユーザと通信および対話する能力を提供していることもある。いくつかの場合には、ソーシャルネットワークは、グラフ(例えばエッジおよびノードを含むデータ構造)で表すことができる。限定されるわけではないが、データベース、オブジェクト、クラス、メタ要素、ファイル、またはその他の任意のデータ構造など、その他のデータ構造を使用して、ソーシャルネットワークを表すこともできる。ソーシャルネットワーキングシステム450は、オペレータによって運営、管理、または制御することができる。ソーシャルネットワーキングシステム450のオペレータは、人間であってもよいし、自動アプリケーションであってもよいし、またはコンテンツを管理し、ポリシーを調整し、ソーシャルネットワーキングシステム450内のメトリクスを収集する一連のアプリケーションであってもよい。任意のタイプのオペレータを使用することができる。
ユーザは、ソーシャルネットワーキングシステム450に加入し、次いで、自分が接続されたいと望むソーシャルネットワーキングシステム450の任意数の他のユーザへの接続を追加することができる。本明細書で使用する「友達」という用語は、ユーザがソーシャルネットワーキングシステム450を介して接続、関連、または関係を形成したソーシャルネットワーキングシステム450の任意の他のユーザを指す。例えば、一実施形態では、ソーシャルネットワーキングシステム450内のユーザがソーシャルグラフでノードとして表される場合には、「友達」という用語は、2つのユーザノードの間に形成され、その2つのユーザノードを直接接続するエッジを指すことがある。
接続は、ユーザによって明示的に追加されることもあるし、あるいは、ユーザの共通の特徴(例えば同じ教育施設の卒業生であるユーザなど)に基づいてソーシャルネットワーキングシステム450によって自動的に作成されることもある。例えば、第1のユーザが、特定の他のユーザを友達であるとして特に選択する。ソーシャルネットワーキングシステム450内の接続は、そうである必要はないが通常は両方向であるので、「ユーザ」および「友達」という用語は、基準系に依存する。ソーシャルネットワーキングシステム450のユーザ間の接続は、通常は両側(「両方向」)または「相互的」であるが、接続は、片側または「一方向」であってもよい。例えば、ボブとジョーがともにソーシャルネットワーキングシステム450のユーザであり、互いに接続されている場合には、ボブとジョーは互いの接続である。一方、ボブはジョーに接続して、ジョーがソーシャルネットワーキングシステム450に通信したデータを見たいと思っているが、ジョーは相互接続を形成することを望んでいない場合には、片側接続を確立することができる。ユーザ間の接続は、直接接続であることもあるが、ソーシャルネットワーキングシステム450のいくつかの実施形態では、1つまたは複数レベルの接続または分離度を介した間接的な接続にすることもできる。
ユーザ間で接続を確立して維持し、ユーザ間の対話を可能にすることに加えて、ソーシャルネットワーキングシステム450は、ソーシャルネットワーキングシステム450がサポートする様々なタイプのアイテムに対してアクションを行う能力をユーザに提供する。これらのアイテムは、ソーシャルネットワーキングシステム450のユーザが属する可能性があるグループまたはネットワーク(例えば人、エンティティ、および概念のソーシャルネットワーク)、ユーザが関心を持つ可能性があるイベントまたはカレンダの書込み、ユーザがソーシャルネットワーキングシステム450を介して使用する可能性があるコンピュータ援用アプリケーション、ユーザが、ソーシャルネットワーキングシステム450によって提供される、またはソーシャルネットワーキングシステム450を通して提供されるサービスを介してアイテムを購入または販売することを可能にするトランザクション、ならびにユーザがソーシャルネットワーキングシステム450上で、またはソーシャルネットワーキングシステム450から離れて実行することができる広告との対話を含む可能性がある。これらは、ユーザがソーシャルネットワーキングシステム450上で作用することができるアイテムのほんのいくつかの例に過ぎず、その他にも多数のアイテムが考えられる。ユーザは、ソーシャルネットワーキングシステム450において、あるいはソーシャルネットワーキングシステム450から分離した、または通信ネットワーク440を介してソーシャルネットワーキングシステム450に結合された外部システム460において表すことができるいかなるものとも対話することができる。
ソーシャルネットワーキングシステム450は、様々なエンティティをリンクすることもできる。例えば、ソーシャルネットワーキングシステム450は、ユーザが互いに、またAPI、ウェブサービス、またはその他の通信チャネルを通して外部システムまたはその他のエンティティと対話することを可能にする。ソーシャルネットワーキングシステム450は、複数のエッジによって相互接続された複数のノードを含む「ソーシャルグラフ」を生成し、維持する。ソーシャルグラフ内の各ノードは、別のノードに作用することができ、かつ/または別のノードの作用を受けることができるエンティティを表すことができる。ソーシャルグラフは、様々なタイプのノードを含むことができる。ノードのタイプの例は、ユーザ、人以外のエンティティ、コンテンツアイテム、ウェブページ、グループ、アクティビティ、メッセージ、概念、およびソーシャルネットワーキングシステム450内のオブジェクトによって表すことができるその他の任意のものを含む。ソーシャルグラフ内の2つのノードの間のエッジは、その2つのノードの間の特定の種類の接続または関連を表すことができ、この特定の種類の接続または関連は、ノードの関係性から、またはそれらのノードのうちの一方が他方のノードに対して行ったアクションから生じることがある。場合によっては、ノード間のエッジに重み付けすることもできる。エッジの重みは、ノード間の接続または関連の強さなど、そのエッジに関連する属性を表すことができる。異なるタイプのエッジには、異なる重みを与えることができる。例えば、あるユーザが別のユーザに「いいね」するときに作成されるエッジにある重みを与え、あるユーザが別のユーザを助けるときに作成されるエッジには、異なる重みを与えることもできる。
一例として、第1のユーザが第2のユーザを友達として識別すると、第1のユーザを表すノードと第2のユーザを表す第2のノードとを接続するソーシャルグラフ内のエッジが生成される。様々なノードが互いに関係または対話するので、ソーシャルネットワーキングシステム450は、それらの様々なノードを接続するエッジを改変して、その関係性および対話を反映する。
ソーシャルネットワーキングシステム450は、ユーザのソーシャルネットワーキングシステム450との対話を強化するユーザ生成コンテンツも含む。ユーザ生成コンテンツは、ユーザがソーシャルネットワーキングシステム450に追加、アップロード、送信、または「ポスト」することができるいかなるものでも含むことができる。例えば、ユーザは、デバイス410からソーシャルネットワーキングシステム450にポストを通信する。ポストは、状態の更新またはその他のテキストデータ、位置情報、写真などの画像、ビデオ、リンク、音楽、あるいはその他のそれに類するデータおよび/または媒体などのデータを含む可能性がある。コンテンツは、サードパーティによってソーシャルネットワーキングシステム450に追加されることもある。コンテンツ「アイテム」は、ソーシャルネットワーキングシステム450内でオブジェクトとして表される。このようにして、ソーシャルネットワーキングシステム450のユーザは、様々な通信チャネルを通してテキストおよび様々な媒体タイプのコンテンツアイテムをポストすることによって互いに通信することを促される。このような通信により、ユーザ同士の互いの対話が増加し、ユーザがソーシャルネットワーキングシステム450と対話する頻度も増加する。
ソーシャルネットワーキングシステム450は、ウェブサーバ、API要求サーバ、ユーザプロファイル記憶装置、接続記憶装置、アクションロガ、アクティビティログ、認可サーバ、またはそれらの任意の組合せを含む可能性がある。いくつかの実施形態では、ソーシャルネットワーキングシステム450は、様々なアプリケーション用の追加の構成要素、より少ない構成要素、または異なる構成要素を含むことがある。ネットワークインタフェース、セキュリティ機構、ロードバランサ、フェイルオーバサーバ、ならびに管理およびネットワーク操作コンソールなど、その他の構成要素は、システムの詳細を分かりにくくしないために示していない。
ソーシャルネットワーキングデータ454に含まれることがあるユーザプロファイル記憶装置は、経歴、人口統計、ならびに職業経験、学歴、趣味または好み、およびユーザによって申告された、またはソーシャルネットワーキングシステム450によって推測された位置などのその他のタイプの説明的情報を含む、ユーザアカウントについての情報を維持することができる。この情報は、ユーザプロファイル記憶装置に記憶され、各ユーザが一意的に識別されるようになっている。ソーシャルネットワーキングシステム450は、接続記憶装置内の異なるユーザ間の1つまたは複数の接続を記述するデータも記憶する。接続情報は、同様または共通の職業経験、グループ帰属、趣味、または学歴を有するユーザを示すことができる。さらに、ソーシャルネットワーキングシステム450は、異なるユーザ間のユーザ定義接続を含み、ユーザが自分と他のユーザとの関係性を指定することができるようにする。例えば、ユーザ定義接続により、ユーザは、友達、同僚、およびパートナーなど、ユーザの実生活の関係性に匹敵する他のユーザとの関係性を生成することができる。ユーザは、既定のタイプの接続から選択することもできるし、あるいは必要に応じて自分自身の接続タイプを定義することもできる。人間以外のエンティティ、バケット、クラスタセンタ、画像、関心、ページ、外部システム、および概念など、ソーシャルネットワーキングシステム450内の他のノードとの接続も、接続記憶装置に記憶される。
ソーシャルネットワーキングシステム450は、ユーザが対話する可能性があるオブジェクトについてのデータを維持する。このデータを維持するために、ユーザプロファイル記憶装置および接続記憶装置は、ソーシャルネットワーキングシステム450によって維持される対応するタイプのオブジェクトのインスタンスを記憶することができる。各オブジェクトタイプは、そのオブジェクトのタイプに適当な情報を記憶するのに適した情報フィールドを有する。例えば、ユーザプロファイル記憶装置は、ユーザのアカウントおよびユーザのアカウントに関係する情報を記述するのに適したフィールドを有するデータ構造を収容する。特定のタイプの新たなオブジェクトが作成されると、ソーシャルネットワーキングシステム450は、対応するタイプの新たなデータ構造を初期化し、一意的なオブジェクト識別子をそのオブジェクトに割り当て、必要に応じてそのオブジェクトへのデータの追加を開始する。これは、例えば、ユーザがソーシャルネットワーキングシステム450のユーザになり、ソーシャルネットワーキングシステム450がユーザプロファイル記憶装置にユーザプロファイルの新たなインスタンスを生成し、一意的な識別子をユーザアカウントに割り当て、そのユーザアカウントのフィールドにユーザから提供された情報を入力し始めるときに起こることがある。
接続記憶装置は、ユーザの他のユーザとの接続、外部システムとの接続、または他のエンティティとの接続を記述するのに適したデータ構造を含む。接続記憶装置は、また、接続タイプをユーザの接続と関連付けることもでき、これをユーザのプライバシ設定と関連付けて使用して、ユーザについての情報へのアクセスを調整することができる。一実施形態では、ユーザプロファイル記憶装置および接続記憶装置は、連合データベースとして実施することができる。
接続記憶装置、ユーザプロファイル記憶装置、アクティビティログに記憶されるデータにより、ソーシャルネットワーキングシステム450は、様々なオブジェクトを識別するためのノードと、異なるオブジェクト間の関係性を識別するためのノードを接続するエッジとを使用するソーシャルグラフを生成することができる。例えば、第1のユーザがソーシャルネットワーキングシステム450内で第2のユーザと接続を確立した場合には、ユーザプロファイル記憶装置の第1のユーザおよび第2のユーザのユーザアカウントが、ソーシャルグラフ内のノードとして作用することができる。接続記憶装置に記憶される第1のユーザと第2のユーザの間の接続は、第1のユーザおよび第2のユーザに関連するノードの間のエッジである。引き続きこの例を見ていくと、第2のユーザは、次いで、ソーシャルネットワーキングシステム450内で第1のユーザにメッセージを送信することができる。メッセージを送信するアクションは、これも記憶することができるが、第1のユーザおよび第2のユーザを表すソーシャルグラフ内の2つのノードの間の別のエッジとなる。さらに、メッセージ自体も、識別することができ、第1のユーザおよび第2のユーザを表すノードに接続された別のノードとしてソーシャルグラフに含めることができる。
別の例では、第1のユーザが、ソーシャルネットワーキングシステム450によって維持される画像内で(あるいは、ソーシャルネットワーキングシステム450外の別のシステムによって維持される画像内で)第2のユーザにタグ付けすることもできる。この画像自体を、ソーシャルネットワーキングシステム450においてノードとして表すことができる。このタグ付けアクションにより、第1のユーザと第2のユーザの間にエッジを作成し、各ユーザと、やはりソーシャルグラフ内のノードであるこの画像との間にも、エッジを作成することができる。さらに別の例では、ユーザがあるイベントへの参加を確認する場合には、そのユーザおよびイベントが、ユーザプロファイル記憶装置から得られるノードであり、この場合、イベントへの参加が、アクティビティログから取り出すことができるノード間のエッジである。ソーシャルグラフを生成して維持することにより、ソーシャルネットワーキングシステム450は、多数の様々なタイプのオブジェクトと、それらのオブジェクトの間の相互作用および接続を記述するデータを含むことになり、それにより社会的に関連のある情報の豊かなソースを提供する。
ウェブサーバは、通信ネットワーク440を介して、ソーシャルネットワーキングシステム450を、1つまたは複数のユーザデバイス(例えばデバイス410)および/あるいは1つまたは複数の外部システム(例えば外部システム460)にリンクする。ウェブサーバは、ウェブページ、ならびにJava、JavaScript、Flash、およびXMLなど、その他のウェブ関連コンテンツを供給する。ウェブサーバは、ソーシャルネットワーキングシステム450と1つまたは複数のユーザデバイス(例えばデバイス410)との間でメッセージを受信して経路指定するメールサーバまたはその他のメッセージング機能を含むことがある。メッセージは、インスタントメッセージ、キューに入れられたメッセージ(例えば電子メール)、テキストおよびSMSメッセージ、またはその他の任意の適当なメッセージフォーマットとすることができる。
API要求サーバは、1つまたは複数の外部システムおよびユーザデバイスが、1つまたは複数のAPI機能を呼び出すことによってソーシャルネットワーキングシステム450からアクセス情報を呼び出すことを可能にする。API要求サーバは、また、外部システムがAPIを呼び出すことによってソーシャルネットワーキングシステム450に情報を送信することを可能にすることもある。外部システム460は、一実施形態では、通信ネットワーク440を介してソーシャルネットワーキングシステム450にAPI要求を送信し、API要求サーバが、このAPI要求を受信する。API要求サーバは、このAPI要求に関連するAPIを呼び出すことによってこの要求を処理して適当な応答を生成し、API要求サーバは、この応答を、通信ネットワーク440を介して外部システム460に通信する。例えば、API要求に応答して、API要求サーバは、外部システム460にロギングされたユーザの接続など、ユーザに関連するデータを収集し、収集したデータを外部システム460に通信する。別の実施形態では、デバイス410が、外部システム460と同様にAPIを介してソーシャルネットワーキングシステム450と通信する。
アクションロガは、ソーシャルネットワーキングシステム450上のユーザアクションおよび/またはソーシャルネットワーキングシステム450外のユーザアクションについてのウェブサーバからの通信を受信することができる。アクションロガは、ユーザのアクションについての情報をアクティビティログに入力して、ソーシャルネットワーキングシステム450内およびソーシャルネットワーキングシステム450外でユーザによって行われた様々なアクションをソーシャルネットワーキングシステム450が発見することができるようにする。特定のユーザがソーシャルネットワーキングシステム450上の別のノードに関して行う任意のアクションを、アクティビティログあるいはそれに類するデータベースまたはその他のデータリポジトリに維持される情報を通して、各ユーザのアカウントと関連付けることができる。識別されて記憶されるソーシャルネットワーキングシステム450内でユーザによって行われるアクションの例は、例えば、別のユーザへの接続を追加すること、別のユーザにメッセージを送信すること、別のユーザからのメッセージを読み取ること、別のユーザに関連するコンテンツを見ること、別のユーザによってポストされたイベントに参加すること、画像をポストすること、画像をポストしようと試みること、あるいは別のユーザまたは別のオブジェクトと対話するその他のアクションなどを含む可能性がある。ユーザがソーシャルネットワーキングシステム450内でアクションを行うと、そのアクションは、アクティビティログに記録される。一実施形態では、ソーシャルネットワーキングシステム450は、アクティビティログをエントリのデータベースとして維持する。ソーシャルネットワーキングシステム450内でアクションが行われると、そのアクションのエントリがアクティビティログに追加される。アクティビティログは、アクションログと呼ばれることもある。
さらに、ユーザアクションは、ソーシャルネットワーキングシステム450から分離した外部システム460など、ソーシャルネットワーキングシステム450の外部のエンティティ内で起こる概念およびアクションと関連付けることもできる。例えば、アクションロガは、ユーザの外部システム460との対話を記述するデータをウェブサーバから受信することもある。この例では、外部システム460は、ソーシャルグラフ内の構造化されたアクションおよびオブジェクトに従ってユーザの対話を報告する。
ユーザが外部システム460と対話する場合のアクションのその他の例は、ユーザが外部システム460または別のエンティティにおいて関心を表明すること、ユーザが外部システム460または外部システム460内のウェブページ462aについて述べるコメントをソーシャルネットワーキングシステム450にポストすること、ユーザが外部システム460に関連する統一資源ロケータ(URL)またはその他の識別子をソーシャルネットワーキングシステム450にポストすること、ユーザが外部システム460に関連するイベントに参加すること、または外部システム460に関係するユーザによるその他の任意のアクションを含む。このように、アクティビティログは、ソーシャルネットワーキングシステム450のユーザとソーシャルネットワーキングシステム450から分離した外部システム460との間の相互作用を記述するアクションを含むこともある。
認可サーバは、ソーシャルネットワーキングシステム450のユーザの1つまたは複数のプライバシ設定を施行する。ユーザのプライバシ設定は、ユーザに関連する特定の情報をどのようにして共有することができるかを決定する。プライバシ設定は、ユーザに関連する特定の情報の指定、およびその情報をともに共有することができる1つまたは複数のエンティティの指定を含む。情報をともに共有することができるエンティティの例は、他のユーザ、アプリケーション、外部システム、または潜在的にその情報にアクセスする可能性がある任意のエンティティを含む可能性がある。ユーザが共有することができる情報は、プロフィール写真、ユーザに関連する電話番号、ユーザの接続、ならびに接続を追加すること、およびユーザプロファイル情報を変更することなどユーザによって行われるアクションなどのユーザアカウント情報を含む。
プライバシ設定指定は、様々な細分性レベルで提供することができる。例えば、プライバシ設定は、他のユーザと共有される特定の情報を識別することもあり、この場合、プライバシ設定は、職場の電話番号、またはプロフィール写真、家の電話番号、および状況を含む個人情報など特定の関連情報のセットを識別する。あるいは、プライバシ設定は、ユーザに関連する全ての情報に適用されることもある。特定の情報にアクセスすることができるエンティティのセットの指定は、様々な細分性レベルで指定することもできる。情報をともに共有することができるエンティティの様々なセットは、例えば、ユーザの全ての友達、全ての友達の友達、全てのアプリケーション、または全ての外部システムを含む可能性がある。一実施形態では、エンティティのセットの指定は、エンティティの列挙体を含むことができる。例えば、ユーザは、特定の情報にアクセスすることができる外部システムのリストを提供することもある。別の実施形態では、この指定が、その特定の情報にアクセスすることができない例外とともにエンティティのセットを含むこともできる。例えば、ユーザは、全ての外部システムがユーザの職業情報にアクセスすることを許す一方で、職業情報にアクセスすることができない外部システムのリストを指定することもある。特定の実施形態では、特定の情報にアクセスすることができない例外のリストを「ブロックリスト」と呼ぶ。ユーザによって指定されたブロックリストに入っている外部システムは、プライバシ設定で指定された情報にアクセスできないようにブロックされる。情報の指定の細分性と、情報を共有するエンティティの指定の細分性とは、様々な組合せが可能である。例えば、全ての個人情報が友達と共有され、全ての職業情報が友達の友達と共有されることもある。
認可サーバは、ユーザに関連する特定の情報にユーザの友達、外部システム、ならびに/またはその他のアプリケーションおよびエンティティがアクセスすることができるかどうかを判定する論理を含む。外部システム460は、ユーザの職場の電話番号など、ユーザのより私的な機密性の高い情報にアクセスするためには、認可サーバからの認可が必要となることもある。ユーザのプライバシ設定に基づいて、認可サーバは、別のユーザ、外部システム460、アプリケーション、または別のエンティティが、ユーザによって行われたアクションについての情報など、ユーザに関連する情報にアクセスすることができるかどうかを判定する。
例示を目的として、分散型環境400は、1つの外部システム460、および1つのデバイス410を含む。ただし、他の実施形態では、分散型環境400は、これより多数のユーザデバイス410、および/またはこれより多数の外部システム460を含むこともある。特定の実施形態では、ソーシャルネットワーキングシステム450は、ソーシャルネットワーキングシステムプロバイダによって運営されるが、外部システム460は、異なるエンティティによって運営されていることがあるという点で、ソーシャルネットワーキングシステム450から分離している。ただし、様々な実施形態では、ソーシャルネットワーキングシステム450と外部システム460とが関連して動作し、ソーシャルネットワーキングシステム450のユーザ(またはメンバ)にソーシャルネットワーキングサービスを提供する。この意味で、ソーシャルネットワーキングシステム450は、プラットフォームまたはバックボーンを提供し、外部システム460などの他のシステムは、このプラットフォームまたはバックボーンを使用して、通信ネットワーク440を介してユーザにソーシャルネットワーキングのサービスまたは機能を提供することができる。
図4は、特定の実施形態を実施するために使用することができる分散型環境を示している。ただし、これは限定することを意図したものではない。いくつかの代替の実施形態では、上述した全ての処理が、1つのシステムによって実行されることもある。例えば、特定の実施形態では、処理が完全にユーザデバイス410上で実行されることもあるし、あるいは完全にソーシャルネットワーキングシステム450上で実行されることもある。
実施例
本項では、オーディオエンジン(例えばオーディオエンジン220)によって決定され、視聴覚コンテンツに適用される可能性があるオーディオ効果の様々な実施例について説明する。これらの実施例は、いかなる意味でも限定することを意図したものではない。
実施例#1。友達の誕生日に関係する実施例。ユーザに関連するソーシャルネットワーキングアプリケーションは、今日がユーザの友達の誕生日であることを表示することができる。その友達は、そのデバイスと関連付けられていないこともあるが、当該ユーザとは異なるユーザである。当該ユーザがソーシャルネットワーキングアプリケーションに関連するカメラアプリケーションを開いたのに応答して、カメラアプリケーションは、ソーシャルネットワーキングシステム上のオーディオエンジンにメッセージを送信することができる。このメッセージは、当該ユーザを示す指示を含むことがある。オーディオエンジンは、当該ユーザを示す指示を用いて、当該ユーザのソーシャルグラフを用いて今日がその友達の誕生日であることを識別することができる。オーディオエンジンは、次いで、ハッピーバースデーの歌を含むオーディオ効果を当該ユーザのデバイスに送信して、当該ユーザがそのオーディオ効果を使用して改変された視聴覚コンテンツをその友達の誕生日を祝うためにその友達に送信できるようにすることができる。このデバイスは、そのオーディオ効果が利用できることを示す指示を提供することもできるし、あるいはそのオーディオ効果の適用を自動的に開始して、それによりハッピーバースデーの歌の再生を開始させることもできる。
実施例#2。ユーザの記念日。ユーザがソーシャルネットワーキングアプリケーションに関連するカメラアプリケーションを開くと、カメラアプリケーションは、ソーシャルネットワーキングシステム上のオーディオエンジンにメッセージを送信することができる。このメッセージは、ユーザのデバイスのカメラによって得られる視聴覚コンテンツを含むことがある。いくつかの場合には、このメッセージは、今日がユーザの記念日であることを示す指示をさらに含むこともある。他の場合には、ユーザのユーザプロファイルが、今日がユーザの記念日であることを示すこともある。オーディオエンジンは、ユーザがユーザのプロファイルに対して行ったポストに基づいて、ユーザの記念日の歌を識別することができる。このポストは、そのユーザについてのソーシャルグラフに含めることもできる。オーディオエンジンは、次いで、そのユーザの記念日の歌を含むオーディオ効果を取得することができる。オーディオエンジンは、ユーザが「記念日おめでとう」と言った後でユーザの記念日の歌を再生するようにさらに決定することもできる。したがって、オーディオエンジンは、ユーザの記念日の歌を有するオーディオ効果と、「記念日おめでとう」という言葉が発せられるという開始要件とを、送信すればよい。「記念日おめでとう」という言葉が識別されたときに、デバイスは、ユーザの記念日の歌を背景に追加することによって、デバイスの視聴覚コンテンツを改変すればよい。
実施例#3。ユーザの誕生日。ソーシャルネットワーキングシステムのオーディオエンジンは、ユーザが生まれた年を識別することができる。この年に基づいて、オーディオエンジンは、ユーザがユーザのデバイス上のカメラアプリケーションをユーザが次に開いたときに視聴覚コンテンツに追加する複数のオーディオ効果を識別することができる。これらの複数の効果のうちのあるオーディオ効果は、ユーザの声のピッチを低声に変化させることを含むこともある。別のオーディオ効果が、その低声が起動されたときにトリガされて、飛行機の音が背景で再生されるようにすることもできる。そして、最後のオーディオ効果によって、飛行機の音の音量を低下させて、飛行機の音が遠ざかっていくように聞こえるようにすることもできる。次いで、これらの複数のオーディオ効果を、カメラアプリケーションが開かれるという開始要件とともに、デバイスに送信すればよい。
実施例#4。コンテンツ認識。オーディオエンジンは、顔認証を用いて視聴覚コンテンツ中でユーザを識別することができる。ユーザの識別に基づいて、オーディオエンジンは、視聴覚コンテンツ内でキックが行われたことが識別されたときに、Carl Douglasの「Kung Fu Fighting」の歌を含むオーディオ効果を取得することができる。ユーザのデバイスは、オーディオエンジンがコンテンツ認識システムを使用してキックが行われたことを識別するまで、オーディオエンジンに視聴覚コンテンツを送信し続けることができる。オーディオエンジンがキックが行われたことを識別すると、オーディオエンジンは、デバイスにメッセージを送信して、デバイス上でオーディオ効果を視聴覚コンテンツに適用させることができる。他の場合には、コンテンツ認識システムがデバイス上に位置して、視聴覚コンテンツを繰返しオーディオエンジンに送信する必要がないこともある。歌のオーディオ効果は、キックが識別されたときにデバイス上で視聴覚コンテンツに加えることができる。
データプライバシ
本明細書に記載するいくつかの実施形態では、1人または複数人のユーザによって自発的に提供される情報を含むことがあるソーシャルネットワーキングデータを利用する。このような実施形態では、いくつかの方法でデータプライバシを保護することができる。
例えば、ユーザは、ユーザデータが収集または使用される前に、任意のデータ収集にオプトインしないことが求められることがある。ユーザは、任意のデータ収集からオプトアウトする機会が提供されることもある。データ収集にオプトインする前に、ユーザには、データがどのように使用されるか、データがどれくらい長く保持されるか、およびデータを開示されないように保護するために実施される安全機能についての説明が提供されることがある。
データの収集元となったユーザを識別する任意の情報は、データから消去する、または切り離すことができる。任意の識別用情報を(例えば規制要件を満たすために)保持する必要がある場合には、識別用情報を収集すること、識別用情報が使用されることになること、および識別用情報が保持される期間の長さについて、ユーザに通知することができる。ユーザを具体的に識別する情報は、除去し、例えば一般的な識別番号またはその他の非特有的な形態の識別で置換することができる。
データは、収集されたら、そのデータへの不正アクセスを防止する安全機能を含む安全なデータ記憶位置に記憶することができる。データは、暗号化されたフォーマットで記憶することもできる。識別用情報、および/または非識別用情報は、所定の期間後にデータ記憶装置から消去することができる。
本明細書では、例示を目的として特定のプライバシ保護技術について説明するが、当業者なら、他の方法でもプライバシが保護されることを認識するであろう。
コンピューティングシステム
図5は、コンピューティングシステムのブロック図の一例を示す図である。図5に示すコンピューティングシステムを使用して、デバイス410、ソーシャルネットワーキングシステム450、または本明細書に記載するその他の任意のコンピューティングデバイスを実施することができる。この例では、コンピューティングシステム500は、モニタ510、コンピュータ420、キーボード430、ユーザ入力デバイス540、および1つまたは複数のコンピュータインタフェース550などを含む。この例では、ユーザ入力デバイス540は、通常はコンピュータのマウス、トラックボール、トラックパッド、ジョイスティック、無線遠隔制御装置、描画タブレット、ボイスコマンドシステム、およびアイトラッキングシステムなどとして実施される。ユーザ入力デバイス540は、通常は、ユーザが、ボタンのクリックなどのコマンドを介してモニタ510上に現れるオブジェクト、アイコン、およびテキストなどを選択することを可能にする。
コンピュータインタフェース450の例は、通常は、イーサネットカード、モデム(電話、衛生、ケーブル、ISDN)、(非同期)デジタル加入者回線(DSL)ユニット、FireWireインタフェース、およびUSBインタフェースなどを含む。例えば、コンピュータインタフェース550は、コンピュータネットワーク555またはFireWireバスなどに結合されることもある。他の実施形態では、コンピュータインタフェース550は、コンピュータ520のマザーボード上に物理的に一体化されることもあるし、あるいはソフトDSLなどのソフトウェアプログラムであることもある。
様々な例で、コンピュータ520は、通常は、プロセッサ560などの普通のコンピュータ構成要素と、ランダムアクセスメモリ(RAM)470、ディスクドライブ580などのメモリ記憶デバイスと、これらの構成要素を相互接続するシステムバス590とを含む。
ラム570およびディスクドライブ580は、実行可能コンピュータコードまたは人間可読コードなど、本開示の実施形態などのデータを記憶するように設定された有形媒体の例である。その他のタイプの有形媒体としては、フロッピーディスク、取外し可能ハードディスク、CD−ROM、DVDおよびバーコードなどの光学記憶媒体、フラッシュメモリなどの半導体メモリ、読取り専用メモリ(ROM)、バッテリバックアップ式揮発性メモリ、ならびにネットワーク型記憶デバイスなどがある。
様々な例で、コンピューティングシステム500は、HTTP、TCP/IP、およびRTP/RTSPプロトコルなどのネットワークを介した通信を可能にするソフトウェアを含むこともある。本開示の代替の実施形態では、例えばIPXまたはUDPなど、その他の通信ソフトウェアおよび転送プロトコルを使用することもできる。
具体的な実施形態について説明したが、様々な改変、変更、代替構成、および均等物が可能である。実施形態は、特定のデータ処理環境内での動作に限定されず、複数のデータ処理環境内で自由に動作することができる。さらに、特定の連続したトランザクションおよびステップを用いて特定の実施形態について説明したが、これが限定することを意図したものではないことは、当業者には明らかであろう。いくつかのフローチャートでは、動作を連続したプロセスとして示しているが、これらの動作の多くは、並列に、または同時に行うこともできる。さらに、これらの動作の順序を入れ換えることもできる。プロセスは、図面に示されていない追加のステップを有することもある。上述の実施形態の様々な特徴および態様は、個別に使用することも、あるいは組み合わせて使用することもできる。
さらに、ハードウェアとソフトウェアの特定の組合せを用いて特定の実施形態について説明したが、ハードウェアとソフトウェアの他の組合せも可能であることを認識されたい。特定の実施形態は、ハードウェアのみで実施されることも、ソフトウェアのみで実施されることも、あるいはそれらの組合せを用いて実施されることもある。1つの例では、ソフトウェアは、本開示に記載するステップ、動作、またはプロセスのうちのいずれかまたは全てを実行する1つまたは複数のプロセッサによって実行可能なコンピュータプログラムコードまたは命令を含むコンピュータプログラム製品として実施することができ、この場合、コンピュータプログラムは、非一時的コンピュータ可読媒体に記憶することができる。本明細書に記載する様々なプロセスは、同じプロセッサ上で実施することもできるし、あるいは任意の組合せの異なるプロセッサ上で実施することもできる。
デバイス、システム、構成要素、またはモジュールは、特定の動作または機能を実行するように設定されているものとして説明したが、この設定は、例えば、電子回路をその動作を実行するように設計すること、プログラム可能な電子回路(マイクロプロセッサなど)を、コンピュータ命令もしくはコードを実行することなどによってその動作を実行するようにプログラムすること、または非一時的メモリ媒体に記憶されたコードもしくは命令を実行するようにプログラムされたプロセッサもしくはコア、あるいはそれらの任意の組合せによって実現することができる。プロセスは、限定されるわけではないが、従来のプロセス間通信の技術など、様々な技術を用いて通信することができ、異なる対のプロセスが異なる技術を使用することもあるし、あるいは同じ対のプロセスが、異なる時点で異なる技術を使用することもある。
本開示では、実施形態が完全に理解されるように、具体的な詳細を与えた。ただし、実施形態は、これらの具体的な詳細がなくても実施することができる。例えば、周知の回路、プロセス、アルゴリズム、構造、および技術は、実施形態を分かりにくくすることを避けるために、不要な細部は省いて示してある。本明細書は、例示的な実施形態を提供しているに過ぎず、他の実施形態の範囲、適用可能性、または構成を限定することを意図しているわけではない。限定するのではなく、実施形態についての上記の説明は、様々な実施形態を実施することを可能にする説明を当業者に提供するものである。要素の機能および構成には、様々な変更を加えることができる。
したがって、本明細書および図面は、限定的な意味ではなく例示的な意味で解釈すべきものである。ただし、特許請求の範囲に記載するより広範な趣旨および範囲を逸脱することなく、様々な追加、省略、削除、ならびにその他の改変および変更を行うことができることは明らかであろう。したがって、具体的な実施形態について説明したが、それらは限定することを意図したものではない。様々な改変および均等物が、以下の特許請求の範囲の範囲に含まれる。