概要
図35からわかるように、システム1500では、ユーザ1502が、通常はポータブルまたはモバイルである(モバイルでない場合もある)ローカル電子デバイス1504、1506、1508、および1510によってユーザのために演奏されるマルチメディアワーク(作品)を有することができる。少数だけが示されているが、システム内で動作する数千台または数百万台のそのようなデバイスが存在することができる。様々な技法の1つまたは複数によって、1つまたは複数のユーザが、ローカルデバイス1504で、特定のマルチメディア作品またはマルチメディア作品の種類に関するプリファレンス、たとえばビートルズのアルバムを好むことを示すことができる。プリファレンスの指示を、デバイスのそれぞれで、プリファレンスデータとして累積することができる。累積されたプリファレンスデータは、他のデバイス(たとえば、他のローカルデバイスあるいは1つまたは複数のホスト電子デバイス1512)によって、いくつかの場合にその情報をそれぞれのユーザに特に関連付けるプリファレンス情報の生成、更新、および格納(記憶)に使用することができる。記憶されたプリファレンス情報に基づいて、ホストまたは他のデバイスは、ローカルデバイスで使用される1つまたは複数の再生リスト(再生シーケンスの一種)を生成して、マルチメディア作品の再生を管理することができる。1つまたは複数のホストが、再生リストおよび/またはプリファレンス情報に従うローカルデバイスへのマルチメディア作品のダウンロードを管理することもできる。
その結果、ユーザは、大幅に高められた体験を享受することができ、この体験は、マルチメディア作品に関して、プリファレンスとのより高い一貫性を有する。後で説明する様々な他の特徴も、図のシステム1500と共に使用することができる。
デバイス1504、1506、1508、および1510の少なくともいくつか(たとえば、小さいハンドヘルドデバイス)は、マルチメディア選好システムの機能性のすべてを提供するソフトウェアを実行させるのに十分な処理機能を有しない場合がある。その場合に、限られた機能性を有するローカルデバイスは、プリファレンスシステムの機能のうちの少数だけを実行でき、他の機能は、ホストで集中的に実行される。たとえば、ローカルデバイスは、生(未処理)の形のプリファレンスデータなど、ある種の情報を取り込むことができるが、別のデバイスが、そのデータを使用して、演奏される作品を決定する(再生シーケンスを作成し、ローカルデバイスにダウンロードすること、および/またはローカルデバイスでの使用のためにダウンロードされるライブラリを更新することによって)他の情報(プリファレンス情報など)を導出する。他の例では、ローカルドライブが、適当な処理機能を有し、ホストまたは他のデバイスと調和し、その結果、プリファレンス情報が、特定のユーザが使用しているデバイスに転送される(または、デバイスが不十分な記憶リソースを有する場合に、ライブラリを更新する)。
語句「マルチメディア作品」には、単独で使用される時に、オーディオ作品(特に音楽)、ビデオ作品(特に映画)、イメージ、サウンド、および人間の感覚、特に視覚または聴覚によって体験できる作品(単純な文字またはテキスト以外の)が含まれる。他の場所で、オーディオまたはビデオなどの単語と共に使用される時に、語句マルチメディア作品は、単なるオーディオ作品またはビデオ作品でない作品を意味する場合がある。
語句「ローカルデバイス」には、MP3プレイヤを含む音楽プレイヤ、携帯電話機、携帯情報端末、ラジオ、ビデオ、CD、ならびに車両、船、および飛行機内の他の種類のマルチメディアプレイヤ、家庭ベースの音楽、ビデオ、および他のマルチメディアシステム、および一般に1人または少数の個人ユーザにサービスするすべての種類のマルチメディアプレイヤが含まれる。
単語または語句「プリファレンスデータ」または「プリファレンス情報」には、ユーザが個々のマルチメディア作品またはマルチメディア作品の種類を好むか嫌うことの指示が含まれる。たとえば、プリファレンスデータは、途中で作品の演奏を打ち切ることのユーザの選択程度に単純なものとすることができる。しかし、プリファレンスデータを、複雑で詳細にすることができる。プリファレンス情報は、プリファレンスデータから導出することができ、プリファレンスデータより抽象的にすることができる。たとえば、ユーザが、ロック音楽作品の演奏を繰り返して停止する場合に、生データは、個々のイベントを取り込むことができるが、生のプリファレンスデータから導出されるプリファレンス情報は、ユーザがロック音楽を嫌うこととすることができる。
図35をもう一度参照すると、ハンドヘルドデバイス1504は、一実施例で、Apple社のiPodまたは、MP3フォーマットでエンコードされたオーディオ作品をユーザの制御の下で記憶でき、再生できる、様々ないわゆるMP3プレイヤとすることができる。
デバイス1504に、RAM 1518(またはファームウェア)に含まれるソフトウェア1516を実行するマイクロプロセッサ1514が含まれる。再生中のまたは再生できる作品に関する情報およびデバイスの使用の関連する他の情報は、RAM 1518または大容量記憶装置1524に記憶され、ディスプレイ1526でユーザに表示することができる。記憶装置は、ディスクドライブ、フラッシュメモリ、または他の形のストレージ(記憶装置)とすることができる。ユーザは、1つまたは複数の制御手段1528を使用してプレイヤの動作を制御する。制御は、機械式のボタンまたはスイッチとするか、ディスプレイ上でアクセスできるタッチ制御とするか、音声制御または他の種類のデバイスの非機械式制御によって実施することができる。記憶装置1524は、取外し可能ディスクドライブまたはメモリカードなどのデバイスから取外し可能で再利用可能な種類とするか、取外し不能とすることができる。
デバイス1504には、マルチメディア作品、プリファレンスデータ、プリファレンス情報、および他の情報を、他のローカルデバイスあるいは1つまたは複数のホストを含む他のデバイスとこのデバイスの間を無線で送るようにするトランシーバ1527および関連するアンテナ1529も含めることができる。コネクタ1530を設けて、有線接続での類似する転送を可能にすることができる。無線転送、有線転送、またはその両方のどれが使用可能である場合であっても、通信は、専用チャネル上で、あるいは1つまたは複数の私有または公共のネットワーク1532上で行うことができる。いくつかのバージョンのローカルデバイスに、オーディオおよびビデオの演奏が可能なハードウェア1533、たとえばDVDプレイヤを含めることができる。
ストレージ1524は、様々な種類の情報を記憶することができる。マルチメディア作品は、個別に1538、サブライブラリ1540内に、またはライブラリ1542内に記憶することができる。記憶された作品は、取外し可能媒体で受け取ることができ、あるいは、無線または有線接続を介してダウンロードすることができる。記憶された作品は、追加の作品を追加し、記憶された作品を除去することによって更新することができ、更新は、プリファレンスデータまたはプリファレンス情報に取り込まれたユーザの明示されたプリファレンスまたは暗黙のプリファレンスに少なくとも部分的に基づくものとすることができる。
したがって、ローカルデバイスに記憶されたマルチメディア作品が、ホストで使用可能な他のマルチメディア作品より低い相対プリファレンススコアを有する場合に、低いプリファレンスの作品を高いプリファレンスの作品と入れ替える、スワップアウトプロセスを実施することができる。スワッピングによって、ローカルデバイスの限られたストレージにもかかわらず、ユーザを満足させる可能性が高まる。スワッピングを制御する1つの形が、最低のレーティング(ある閾値まで、またはストレージスペースのある比率まで)の作品を除去し、より大きいライブラリから最高のレーティングを有する作品によってそれらを置換することである。レーティングは、未レーティング作品のメタデータをメタデータネットワーク(メタデータネットワークの例は、以下で図12に関して詳細に説明する)に挿入し、スコア計算エンジンを使用して、他の作品について収集された情報に基づいて予測スコアを判定することによって予測することができる。このプロセスでは、未レーティング作品のレーティングを予測するために、未レーティング作品およびレーティング済み作品のメタデータの間のオーバーラップが使用される。
再生された作品の識別子、再生が完了したかどうか、および再生が完了した時刻を含む再生ヒストリ1544も、記憶することができる。デバイスが、デバイスの異なる識別されたユーザの別々の情報を維持する場合に、再生ヒストリによって、作品を再生したユーザ1502の識別子を示すこともできる。たとえばApple社のiPodは、所与の作品の再生回数、最終再生時刻、およびユーザによって入力される各作品のレーティング(1つ星から5つ星)を記憶するように構成されている。
ストレージに、所定の再生シーケンス1550も含めることができ、この再生シーケンス1550のそれぞれによって、演奏される作品のシーケンスが識別される。再生シーケンスは、ユーザが入力することができ、あるいは、ホストまたは別のローカルデバイスから供給することができる。作品が演奏されるローカルデバイスが、十分な処理能力を有する場合に、再生シーケンスは、ローカルデバイス自体で供給することができる。いくつかの場合に、再生シーケンスは、ローカルデバイスで使用可能な作品と、ユーザによって入力されたヒストリカルプリファレンスデータまたはユーザに関連するプリファレンス情報あるいはその両方に基づいて決定される。再生シーケンスに、再生される作品の順々の単純なリストである再生リスト、または再生されるものを制御するが必ずしも単純な順序でないアイテムのより複雑なリストを含めることができる。
ストレージに、1つまたは複数のユーザに関連する生のプリファレンスデータ1552または、前に述べたように生データから導出されるプリファレンス情報も含めることができる。プリファレンスデータに、デバイスで演奏されるか演奏に使用可能な作品のそれぞれのレーティング(たとえばiPodの星レーティング)を含めることができ、あるいは、個々の作品または作品のグループに関する肯定または否定的プリファレンスの他の種類の指示を含めることができる。
たとえば、ユーザは、途中で作品の演奏を停止することができ、これから、システムは、ユーザがその作品について(およびおそらくはそれに似た作品について)否定的なプリファレンスを有すると推論することができる。再生された作品のリストを、完了した作品のヒストリと比較して、どの作品が、再生されたが完了しなかったかを判定することができる。逆に、ユーザが、ある作品を完全に再生させた場合に、ユーザが、その作品について(およびおそらくはそれに似た作品について)肯定的なプリファレンスを有するという推論を引き出すことができる。
ローカルデバイス内のRAMまたは他のプログラムストレージに、再生シーケンスのフェッチおよび実行1554、圧縮オーディオデータの圧縮解除1556、再生ヒストリの記録1558、プリファレンスデータの記録1560(および、いくつかの場合に、プリファレンスデータからのプリファレンス情報の導出)、ホストおよび他のローカルデバイスとの相互作用1562、異なるユーザの登録およびログイン1564、演奏される作品のロックおよびロック解除1565、ならびに、ライブラリ、サブライブラリ、および個々の作品の更新1566を含む様々な機能を実行するプログラムを含めることができる。
作品の受け取りおよび記憶のほかに、ローカルデバイスは、媒体1570上での(または通信チャネルを介して電子的に)1つまたは複数の所与のユーザに関するプリファレンスデータおよびプリファレンス情報のエクスポートおよびインポートの能力を有する。この形で、ユーザは、複数のローカルデバイスと共に使用するために、自分のプリファレンス情報を一緒に携帯する(または電子的に送信する)ことができる。たとえば、ユーザは、自分のプリファレンス情報を、飛行機1510、自動車1508、またはホテルの部屋1506に持ち込み、これらの位置のローカルデバイスの再生シーケンスを制御させることができる。プリファレンスデータおよびプリファレンス情報を、ホストから媒体1572にダウンロードまたは配信することもできる。プリファレンスデータは、マルチメディア作品が再生されつつある同一のデバイスで記憶または作成する必要はなく、別々のデバイスで記憶または作成することができる。
ローカルデバイスに記憶された作品に追加される作品は、たとえばネットワーク1532を介して(有線接続または無線接続のいずれかを介して)電子的にダウンロードすることができ、あるいは、媒体1534上に配布(分配)することができる。ダウンロードは、バックグラウンドプロセスによって行うことができ、その結果、ユーザは、ダウンロードが行われつつあることを知らなくなる。
ホスト1512は、ワークステーション、サーバ、または他の電子デバイスとすることができ、通常は、マイクロプロセッサ1576、入出力デバイス1578、RAM 1580、およびストレージ1582が含まれる。ホストは、作品またはプリファレンス情報をダウンロードまたはエクスポートするコネクタ1584を有することができる。
ホストのストレージに、多数の個々の作品1586、ならびに個々の作品のサブライブラリおよびライブラリ1588を含めることができる。作品は、CD、DVD、または他の使用可能な移動可能な媒体、ラジオ局、またはテレビジョン局、あるいは、ダウンロード可能メディアコンテンツを提供するインターネットウェブサイトなどのホストのネットワーク接続を介して入手可能にすることができる他のソースなど、様々なソース1590から受け取ることができる。ストレージに、各ユーザのプリファレンス情報1592、および複数のユーザまたはユーザのグループに有用になる可能性がある集約(集合)ユーザ情報1594も含めることができる。ホストによって生成された再生シーケンス1596(再生リストを含む)も、ローカルデバイスへのダウンロードまたは配布のために記憶される。ユーザ情報のレジストリ1598に、システムが各ユーザを一意に識別し、各ユーザと相互作用(対話)することを可能にする登録情報および他の情報が含まれる。
ホストで実行されるソフトウェアに、再生リストを含む再生シーケンスを、プリファレンス情報および使用可能な作品のリストから生成する再生リスト生成ソフトウェアを含めることができる。ライブラリ生成ソフトウェア1702が、それから作品をローカルデバイスにダウンロードまたは配布できる作品のライブラリおよびサブライブラリの受取および作成を管理する。更新ソフトウェア1704は、更新プロセスを管理する。ダウンロードソフトウェア1706は、ダウンロードまたは配布の処理を管理する。プリファレンス生成ソフトウェア1708(以下で詳細に説明する)は、1つまたは複数のユーザからのプリファレンスデータを使用して、記憶および再生リストを作る際の使用のためにプリファレンス情報を推論し、展開する。料金査定ソフトウェア1710は、ローカルデバイスで再生された作品についてユーザに請求する処理を管理する。逆に、権利管理ソフトウェア1712は、作品の使用に関する権利所有者への報酬支払いの処理を管理する。圧縮ソフトウェア1714は、配布およびダウンロードのための作品の圧縮を管理する。
プリファレンスデータをプリファレンス情報に変換する処理を、完全にホストで実行するか、完全にローカルデバイスで実行するか、この2つの組合せにするかの設計選択は、この2つのデバイスの相対的な能力に少なくとも部分的に依存する。
ローカルデバイス(たとえばポータブル音楽プレイヤ)で入力されるプリファレンスデータは、ユーザによって購入される作品の推薦に関連して使用することもできる(購入推薦に関する追加情報を、後で示す)。購入推薦は、CD全体、DVD全体、または作品の他の編集物全体に関するものとすることができ、あるいは、個々のトラックに関するものとすることができる。ローカルデバイスからのプリファレンスデータは、プリファレンス情報に変換されたならば、購入推薦の生成に使用することができる。一実施例で、Apple社のiPodなどのハンドヘルド音楽プレイヤで累積されたプリファレンスデータ(またはそのデータから導出されたプリファレンス情報)を、Apple社のiTunesなどの音楽リテール(販売)ウェブサイトにアップロードすることができる。ウェブサイトでは、プリファレンスデータを、プリファレンス情報に変換することができる。変換されたまたはアップロードされたプリファレンス情報は、音楽販売サイトのユーザに、ユーザが彼の音楽プレイヤへのダウンロードのために購入を望む可能性がある、編集物または個々の作品(トラック)の推薦を行う特徴の制御に使用することができる。もう1つの実施例では、プリファレンスデータが、音楽販売ウェブサイトへの転送の前にプリファレンス情報に変換される。プリファレンスデータからプリファレンス情報への変換は、ローカルデバイスまたはホストで行うことができ、あるいは、部分的にローカルデバイス、部分的にホストで実行することができる。
さらに、販売ウェブサイトは、ユーザが関心を持つと判定された作品のプレビュー部分のユーザのローカルデバイスへの自動化されたダウンロード(直接に、あるいは別のサーバを介してまたはユーザがアクセスできるパーソナルコンピュータを介して間接的に)を提供することができる。そのようなプレビューは、やはりローカルデバイスにダウンロードされる再生シーケンスの一部とすることができる。ローカルデバイス(たとえばプレイヤ)が、その部分の1つを再生する時に、その演奏に、「The complete track is available for purchase from iTunes. Please press the enter button if you would like to purchase the track(完全なトラックはiTunesから購入できます。このトラックを購入したい場合にはエンターボタンを押してください)」のような可聴メッセージまたは表示されるメッセージを続けることができる。プレイヤは、購入要求を記録し、プレイヤがウェブサイト(またはウェブサイトに接続できるネットワーク)に接続されている場合に、販売ウェブサイトにその購入要求を即座に転送するか、後に、プレイヤが次にネットワークまたはウェブサイトに接続される時に依頼に応じるためにその要求をメモリに保存することができる。
販売ウェブサイトとの相互作用は、図35に示されたホストを介し、コンピュータを介してユーザのローカルデバイスに達するものとすることができる。その実施例では、図35のローカルデバイスの他の実施形態でも、コンピュータは、ダウンロードされた作品、再生シーケンス、およびプリファレンス情報を記憶し、これらを都合のよい時と場所でローカルデバイスに転送することによってローカルデバイスのプロキシとして働く、ホストとローカルデバイスの間の媒介として働くことができる。ホストにアップロードされるプリファレンスデータおよびプリファレンス情報を、コンピュータに一時的に記憶することもできる。ホストは、ユーザのプリファレンス情報をウェブサイトに自動的に、あるいはユーザに要求された時または承認された時に供給することによって、販売ウェブサイトと相互作用するように構成することができる。ホストは、ローカルデバイスにダウンロードされる作品を買うために、ユーザの代わりに媒介として作用することもできる。
他の実施例では、販売サイトとホストまたはローカルデバイスの間の相互作用(購入された作品のダウンロードを含む)は、ローカルデバイスと販売サイトまたはホストがネットワークを介して通信する時に、直接に行うことができる。いくつかの実施例で、購入要求を、ローカルデバイスで保存し、後に、処理および依頼に応じるためにホストにアップロードすることができる。
ローカルデバイスが、賃借されるか、一時的に使用されているか、ユーザ以外の当事者によって所有されるシステムの場合に、演奏される実際の作品、およびこれらの作品が属する編集物も、購入の提案に含まれる。
ホストおよびローカルデバイスの実施形態と、ユーザ入力からプリファレンス情報を導出し、再生リストを生成する形の多数の詳細が、この後の説明に含まれる(および、参照によってその全体を本明細書に援用される、2002年6月25日出願の米国特許出願第10/180900号から引用された。この特許出願の多くが、以下で示される)。
システム1500を使用してローカルデバイスのユーザの経験を改善できる多数の例の中に、以下のものがある。
ローカルデバイスのユーザは、曲のシーケンスの再生をトリガすることができる。再生シーケンスは、事前に定義され、デバイスに記憶される。曲ごとに、ユーザは、曲を最後まで再生させることができ(この場合に、その事実および完了の時刻が記憶される)、あるいは、終わる前に曲を止め、次の曲に進むことができる。その場合に、再生ヒストリには何も記録されない(少なくともiPodの例では)。ローカルデバイスまたはホストは、曲の再生を完了しないというユーザの判断から、ユーザがその曲を好まないと推論することができる。再生シーケンスを修正するか、後に再生シーケンスを構成して、ユーザに、ユーザが楽しむ可能性が高い曲を提供することができる。いくつかの場合に、ユーザのプリファレンスに関する唯一の情報は、曲の再生を完了できないことから推論される否定的情報である可能性がある。他の場合に、ユーザは、たとえばレーティングシステムによって、肯定と否定の明示的フィードバックを提供することができる。
いくつかの場合に、所与のユーザが、複数のローカルデバイス、たとえばポータブルMP3プレイヤ、家庭のオーディオシステム、およびレンタカーを介して自分のプリファレンスを示すことができる。プリファレンスデータを集約し、分析し、それからプリファレンス情報を導出することによって、システムは、ローカルデバイスのそれぞれでそのユーザにとってより効果的に再生リストを制御することができる。再生リストが改善されるだけではなく、どの作品を、当初にまたは更新で、ローカルデバイスのそれぞれにダウンロードまたは配布するかの選択が、重要になる可能性がある。所与のローカルデバイスに記憶された作品の増補は、ストレージスペースによって制限される場合があり、したがって、ダウンロードまたは配布された作品が、ホストに記憶されたライブラリのサブセットだけになる場合がある。
システムが、演奏された作品についてユーザに料金を請求するように構成される時に、料金は、作品ごとに、使用ごとに、または所与のライブラリ内の作品のすべての演奏について1回払いに基づいて、査定することができる。作品に対するアクセスは、電子的にロックすることができ、作品の演奏が適当な料金によって支払われた時に限ってロックを解除することができる。このシステムでは、たとえばレンタカーに含まれるストレージに、作品の膨大なライブラリをダウンロードすることが可能になる。料金が支払われたライブラリまたは作品だけが、ロック解除され、自動車での演奏に使用可能にされる。そのようなライブラリに、たとえば10000個以上の作品を含めることができる。演奏された作品についてユーザに料金を請求するように構成されたシステムでは、作品を含む実際のデータへのユーザアクセスを、演奏以外のアクセスについて禁止することができる。デバイスのストレージシステムに存在する作品の修正に関する許可は、その修正に作品の削除、作品の追加、コピー、あるいはデータまたはデータファイルに対する操作が含まれる場合に、作品の所有者に制限されるか、作品の所有者によってデータへのアクセスを明示的に許可された人に制限される。
1つまたは複数のローカルデバイス(ユーザによって所有されても所有されなくてもよい)の使用から導出されるユーザのプリファレンス情報を、他のローカルデバイス(ユーザによって所有されないものを含む)で適用して、他のローカルデバイスまたはそれにサービスするホストに記憶された作品の知識をユーザが有することなく、ユーザが好む可能性が高い作品をユーザに提示することができる。
ローカルデバイスの使用のもう1つの実施例では、たとえば現在演奏されつつある作品または完了したばかりの作品などの別の作品に似た(または似ていない)別の作品の演奏を好むことをユーザが明示的に示すことができるように、デバイスを構成することができる。ユーザは、ユーザインターフェースを介してその情報を入力することができる。
作品のあるライブラリからの作品の再生中に展開されるプリファレンス情報を、他のライブラリに適用することができ、2つのライブラリが、共通してある作品を有することができる。
複数の異なるユーザが、プリファレンス情報またはプリファレンスデータの本体を生成することができ、システムは、これらを集約して、それぞれのユーザまたは他のユーザによる使用のために作品の再生シーケンスおよびダウンロードを生成するのに使用することができるプリファレンス情報の共用される本体を生成することができる。たとえば、1組の学友が、共同のプリファレンスを表す再生シーケンスを生成するために、プリファレンスをプールさせることに同意することができる。ある集約された情報を、元のグループのメンバでなかったユーザが使用することもできる。集約されたプリファレンス情報では、あるユーザのプリファレンス情報を、第2のユーザのプリファレンス情報と異なる作品のライブラリについて生成することができる。プリファレンス情報を集約する形の1つが、ユーザごとに、再生された作品のリスト、それに対して実行されたアクション(再生されたか、スキップされたか、レーティングされたか)、または基本的なフィードバック動作のリスト(トラックX:暗黙の肯定;トラックY:暗黙の否定;…)を維持することである。データをマージ(併合)するために、フィードバックデータの両方の組が、後で説明する同一のメタデータネットワークを介して実行される。
パーソナルデバイスが、限られたストレージを有する場合に、デバイスに記憶された作品のサブセット(より大きいライブラリからの)を、ユーザのプリファレンスを反映するために、経時的な作品の追加および削除によって調整することができる。したがって、デバイスは、より大きいライブラリの、繰り返して更新される変化するサブセットを保持する。所与の時にローカルデバイスに記憶される作品は、平均して、常に増加する、ユーザによって好まれる可能性を有する。
ホストからローカルデバイスへの、作品のサブライブラリおよび再生シーケンスの更新は、転送が行われていることをユーザが明示的に知らない形で、バックグラウンドで行うことができる。
ユーザが、ローカルデバイスを利用する時に、ユーザは、デバイスまたはホストがそのユーザを同一性確認できる形でデバイスにログオンし、ローカルデバイスとのユーザのセッションについてプリファレンス情報の1つまたは複数の組を利用することができる。ユーザは、リストからプリファレンス情報の組を選択することを許可される場合がある。
たとえばiPodと共に使用されるシステムの実施形態は、iPodによって維持されるデータベースに関する公衆が入手可能な情報に基づくものとすることができる。たとえば、すべてが参照によって本明細書に組み込まれる、http://sourceforge.net/docman/display_doc.php?docid=11191&group_id=52976、http://sourceforge.net/docman/display_doc.php?docid=11212&group_id=52976、http://ipod−on−linux.sourceforge.net/docs.php、http://neuron.com/〜jason/db.py via、およびhttp://neuron.com/〜jason/ipod_archive.htmlを参照されたい。
この公然入手可能な情報によって、iPodデータベースが、2つのファイルすなわち、「itunesdb」および「play counts」と称するファイルに分割されることが示される。「itunesdb」には、ファイル名、トラック番号、トラックタイトル、アルバムタイトル、アーティスト名、作曲者名、ジャンル、およびiPodに記憶された再生リストのリストを含む(他の情報の中で)、iPodに記憶されたトラックのリストが含まれる。
「play counts」には、トラックごとに1つのエントリが含まれ、このエントリには、最終再生時刻、再生回数、およびトラックレーティング(5星システムに基づく)が記憶される。このファイルは、iPodによって作成され、トラックが再生されるかユーザがレーティングを変更する時に、必ず更新される。
データベース内の情報を使用する単純なプログラムは、下記の形で作動する。
「itunesdb」を読み取り、すべてのトラックのリストを、そのファイル名、アルバムタイトル、アーティスト名、およびジャンルと共に得る。
これらに基づき、最初にジャンル、その後にアーティスト、アルバム、およびファイル名を続けて、メタデータネットワークを作成する。
itunesdb内のメタデータに基づいて各アルバムのリストを再構築することを含めて、iPod内のすべての再生リストのリストを作成する。
「play counts」を読み取り、最終再生時刻の順でソートする。最終再生時刻リストのトラックの各シーケンシャル対について、再生リストのリスト内のトラックの間の最小ギャップ(中間に入るトラックの数に関する)を探す。対の各トラックに、肯定の暗黙のフィードバックを与え、ギャップ内のトラックのすべてに、否定の暗黙のフィードバックを与える。すべてのトラックをレーティングしたならば、肯定/否定の暗黙のフィードバックを、適当として与える。このフィードバックのすべてを、データファイルに保存し、経時的に累積する。
前に保存されたフィードバックのすべてを、ネットワークを介して処理する。
バッチモードで再生リスト生成アルゴリズム(以下の議論を参照されたい)を実行して、新しい再生リスト生成する、すなわち、各トラックがフィードバックなしで再生される場合のように、ある多数のトラックを順次選択させる
再生リストを「itunesdb」に挿入する。
上で説明した技法を実施する方法の理解に有用な追加情報を、以下に示す。
図33からわかるように、ユーザプリファレンスに基づいてアイテムを選択するシステム10の一実施例では、アイテムが、使用可能なトラックのサプライ12の一部である音楽の一部(トラック)である。
トラックは、トラックのソース14から供給され、トラックのソース14には、オーディオテープ、コンパクトディスク、ミニディスク、デジタル多用途ディスク、あるいは、放送媒体、無線接続、衛星ラジオ、インターネットまたは他のコンピュータネットワーク上のストリーミングメディア、または他のソースを含む他のソースなどの媒体を含めることができる。したがって、用語トラックを、有形の媒体のトラックとしてのみ現れるかのように使用するが、用語トラックが、それが作成されるか記憶されるかユーザに配布される形が何であれ、すべてのアイテムを含むことが意図されている。
また、この議論の多くで音楽の例を使用するが、プリファレンスが表現されるアイテムは、とりわけ、オーディオ、ビデオ、およびマルチメディアアイテムを含むすべての種類のアイテムと、データベースのレコード、ワールドワイドウェブで検索することによって入手できるアイテム、またはソフトウェアプログラムの特徴を含む非オーディオビジュアルアイテムとすることができる。同様に、たとえば商業的に使用可能なソースおよびユーザによって作られるソースを含むすべての種類のトラックのソース14が、可能である。用語CDおよびコンパクトディスクは、すべてのタイプのトラックのソースを含むものとして使用される。いくつかの場合に、トラックがソフトウェアプログラムの特徴を表す場合に、トラックのソースが、システム自体になる(ソフトウェアが、それ自体の特徴の「ソース」なので)。その代わりに、この実施例では、CDが、たとえば、ソフトウェアの特徴の論理サブセットを表すことができ、すべてのテキストフォーマッティングコマンドが、単一のCDを構成し、各コマンドが、単一のトラックになる。
使用可能なトラックのサプライは、大容量記憶装置に記憶することができ、その結果、このサプライが、必要に応じてローカルに使用可能になる。記憶装置に、ハードディスク(ポータブルハードドライブを含む)、CD−RWドライブ、テープレコーダ、ビデオレコーダ、メモリデバイス、またはユーザへの演奏のために複数のアイテムを保持できる他のストレージデバイスを含めることができる。説明を簡単にするために、本明細書では、その代わりに、読み取りアクセスを提供する(書込アクセスはあってもなくてもよい)すべてのストレージデバイスをハードディスクまたはストレージデバイスと称する。いくつかの場合に、使用可能なトラックをローカルに記憶する必要がない場合がある。その代わりに、使用可能なトラックを、有線または無線の通信チャネルを介して遠隔ソースからオンザフライで入手可能にすることが可能である場合がある。ストレージが使用される時に、システムは、トラックを取り込み、適当なフォーマットに変換し、関連する識別情報を生成し、これらを記憶媒体に記録する機構を提供することができる。
図33に示されたシステムでは、トラックが、トラックプレイヤ16によってユーザのために再生される。所与の時に再生されるトラックは、次トラック識別子18によって識別される。トラックプレイヤには、再生されるトラックを識別する信号に応答してユーザのためにトラックを演奏できるすべてのデバイスを含めることができる。したがって、プレイヤに、たとえば、CDプレイヤ、CDチェンジャ、テーププレイヤ、無線音楽再生デバイス、MP3プレイヤ、ビデオテーププレイヤ、DVDプレイヤ、ウェブブラウザ、ディスプレイデバイス、携帯情報端末、携帯電話機、固定電話機、またはコンピュータを含めることができる。トラックプレイヤの性質は、トラックの性質に依存する。たとえば、トラックがソフトウェアプログラムの特徴を表す場合に、トラックプレイヤは、ソフトウェアプログラム自体になる。いくつかの実施例で、トラックセレクタによって、複数のトラックプレイヤを制御することができる。
プレイヤが、トラックセレクタから次トラック識別子を受け取る時に、トラックプレイヤは、識別されたトラックをサプライから取り出し、ユーザ20のために演奏する。オーディオ、ビデオ、または他のマルチメディアトラックの場合に、トラックの再生は、通常は、シーケンシャルに行われる。たとえば、トラックに、データベース内のレコードまたはインターネットを介して入手可能なリソースが含まれる時に、トラックを、次トラックセレクタの組に基づいて同時にグループで表示することができる。したがって、本明細書では、再生または演奏の用語を使用して、トラックおよびユーザに適当な形でユーザにアイテムを表示、演奏、または他の形で配布することを広義に意味する。
どのトラックを次に再生するかの判定は、トラックセレクタ22によって行われる。トラックセレクタは、様々な形をとることができる。いくつかの場合に、トラックセレクタは、マイクロプロセッサ、メモリ、適当なバスおよびキャッシュ、大容量記憶装置、オペレーティングシステムソフトウェア、アプリケーションソフトウェア、ならびに関連する入力デバイスおよび出力デバイス用の入出力ドライバを含む汎用コンピュータとすることができる。他の場合に、トラックセレクタを、本明細書に記載の特定の目的のために設計された回路のカスタムビルドの組とすることができる。トラックセレクタは、車両または建物の中あるいはコンピュータまたはハンドヘルドデバイス内の既存のシステムの一部とすることができる。図33に示された要素の組全体を、携帯情報端末、携帯電話機、または音楽プレイヤなどのハンドヘルドデバイス内で、あるいは車両または建物の中に配置されたシステム内で実施することができる。
トラックセレクタに、ソフトウェア、ファームウェア、またはハードウェアの形のロジック24と、メモリまたは大容量記憶装置の形のストレージ26を含めることができる。トラック選択は、トラック選択モジュール28によって実行される。トラック選択処理の詳細を後で説明するが、一般に、トラック選択は、ユーザによってユーザインターフェース30を介して供給される情報およびストレージ26で保持されるトラックに関する情報に基づく。いくつかの場合に、ユーザによって供給される情報は、トラックに関するユーザの反応またはプリファレンスを示す暗黙のまたは明示的なフィードバックと、そのフィードバックに依存して再生されるトラックの選択である。反応情報は、ユーザによって入力される生情報、または生情報から導出される情報(たとえば変数)とすることができるが、記憶され、将来に再生されるトラックの選択を行うことを含む目的に使用される。他の場合に、トラック選択は、過去のユーザプリファレンスまたは反応情報に基づくのではなく、ユーザインターフェースの入力側32を介してユーザによって供給されるコマンドのより普通の組だけに基づく。普通のコマンドは、たとえばユーザが、システムに、選択されたCDのすべてのトラックをトラック順で再生させることを望むことをユーザが指定できるようにするユーザインターフェースの態様を介して供給することができる。
ユーザインターフェースには、入力側32および出力側34の両方が含まれる。入力側には、ボタン、ノブ、タッチパネル、音声認識ソフトウェア、およびユーザがシステムに行わせたいことまたはユーザが供給しようとしているプリファレンス情報を暗黙のうちに決定できるセンサを含めることができる。出力側には、可聴信号、ディスプレイ、ライト、音声合成、またはシステムの動作の状態に関してユーザに情報を供給する他のデバイスを含めることができる。
入力側に、ユーザがトラックに関するプリファレンスを示し、他の形でフィードバックまたは反応を供給する明示的なおよび暗黙の機構を含めることができる。明示的な機構には、ユーザがトラック、たとえば再生中のトラックを好むか嫌うかをユーザが直接に示すことを可能にする、ボタンまたは他のデバイスを含めることができる。暗黙の機構を使用することもでき、たとえば、ユーザがトランスポートボタンを押して次のトラックにスキップする時に、このアクションを、ユーザが再生中のトラックを好まないことの暗黙の指示として解釈することができる。
トラックセレクタのストレージは、システムが再生についてトラックを選択できるようにする情報を保持する。トラックスコアリング情報36を、トラックのサプライ内のすべてのトラックについて供給することができる。トラックのサプライ内のすべてのトラックのトラックスコアリング情報は、トラックが再生されるか、ユーザがユーザフィードバックおよびプリファレンスを反映するアクションをユーザインターフェースを介して行うたびに、更新される。トラックは、後で説明する形で、相対スコアに基づいて選択される。
ストレージ26は、前に再生されたトラックの識別子のシーケンスを記録する再生ヒストリ38と、トラックに関する情報(たとえば、タイトル、演奏者、ジャンル)を保持するメタデータ40も保持する。その代わりに、メタデータを、ストレージと別々の読取専用リポジトリ、たとえばCD−ROMに配置することができ、あるいは、外部中央データソースから無線機構を介してアクセスすることができる。他の情報も、ストレージに保持され、この情報については以下で詳細に説明する。
トラック選択モジュール28の他に、ロジック24に、ユーザインターフェースとの相互作用を制御するモジュール50、および使用可能なトラックのサプライへのトラックの記憶を制御するモジュール52が含まれる。メタデータ保守モジュール56は、メタデータを取得し、保守し、メタデータは、メタデータのソース60から供給され、いくつかの場合に、ユーザによって直接に、ユーザインターフェースの入力を介して、またはストレージへのパーソナルコンピュータインターフェースを介して供給することができる。再生ヒストリ保守モジュール58は、再生ヒストリ38を保守する。トラックスコアリングモジュール54は、前に再生されたトラックに対するユーザ反応に関するデータを保守することができ、トラック選択モジュール28による使用のためにトラックにスコアを割り当てることができる。以下の説明から明白になるように、他のロジックモジュールを含めることができる。
アイテム選択システム10は、ユーザに、ユーザのプリファレンスを満足する、音楽トラックなどのアイテムへの、事前の構成を必要としない単純で直観的なアクセスを提供する。このシステムは、アイテムすなわちトラックを、過去および現在のユーザの挙動およびアイテムの内容の内部知識を考慮に入れて、サプライから自動的に選択する。このシステムは、ユーザからのフィードバックの供給が単純になるように配置される。ユーザからの最小限の介入で、このシステムは、ユーザが関心を持つアイテムを選択する。
このシステムの動作の単純な実施例では、ユーザは、トラックを聴取している時に、そのトラックを好むことを示すプリファレンスボタンまたはそのトラックを嫌うことを示す別のプリファレンスボタンを押すことができる。どちらの場合でも、ユーザのプリファレンスに関する情報が、累積され、そのトラックのスコアの一部として記憶される。それと同時に、プリファレンス情報が、他のトラック、たとえば同一CDの別のトラックまたは同一アーティストによる他のCDの他のトラックの、スコアを変更するのに使用される。ユーザが、トラックを嫌うことを示す時に、システムは、別のトラックにジャンプする。ユーザは、やはり、プリファレンスボタンの1つを押すことによって自分のプリファレンスを示すことができ、情報が、やはり、そのトラックを再スコアリングするのに使用される。ユーザが、トラックを完全に再生させる場合に、または、トランスポートボタンを押してシステムに強制的に次のトラックへジャンプさせる場合に、その暗黙のプリファレンス情報も、使用される。
システムが、トラックを自動的に選択するモードで動作している時に、使用可能なトラックのサプライ内の各トラックは、トラックのスコアを考慮するアルゴリズムに従って、次に再生される、0でない確率を有する。したがって、システムは、すばやく効果的にユーザプリファレンスに適応し、ユーザによるユーザのプリファレンスを示す最小限の量の相互作用だけを必要としながらこれを行う。ユーザがプリファレンスを表す形、システムが再生についてトラックを選択する形、およびトラックスコアが維持される形に関する詳細は、後で示す。
利点
選択システムの長所の中に、下記の1つまたは複数がある。
(1)平易性。システムは、トラックのコレクションへの簡単なアクセスを提供する。システムは、ユーザが単に「電源」ボタンを押し、ユーザが楽しむトラックを聞き始めることを可能にする。
(2)制御。システムは、再生されるものに対する制御をユーザが失うことなく、この簡単なアクセスを提供する。現在再生されつつあるトラックに対する簡単な応答を表すことによって、ユーザは、システムが次の再生に選択するものに影響することができる。音楽の分野では、CDプレイヤは、高い度合の制御を提供するが、音楽選択プロセスでのかなりのユーザ介入を必要とし、総合的な簡単さ(平易性)が減る可能性がある。ラジオは、最小限のユーザ介入を必要とし、高い度合の単純さを可能にするが、制御をほとんど許容しない。図29を参照されたい。音楽トラックに適用される時に、このシステムは、そのギャップを補うことが意図されている。
(3)アクセス。システムは、元の媒体が使用可能であることを必ずしも要求せずに、トラックの記憶されたコレクション全体へのアクセスを提供する。
(4)セットアップなし。システムは、ユーザが前もって何を再生するかを判断することを必要とせずに、この制御を提供する。
(5)安全。システムは、ユーザが、自動車を安全に運転するか、特に注意を要する他の作業を行いながら、コレクション全体を享受できるようにする。
プラットフォーム
音楽アイテムの文脈で、選択システムは、図7に示された形のハードウェアシステムで実施することができる。システム708に、コンピュータ704、記憶装置705、増幅器706、およびスピーカ707が含まれる。外部コンポーネントに、CDドライブ701、ユーザ入力702、およびユーザ用のディスプレイ703を含めることができる。
選択システムの組込みに関する3つの可能なプラットフォームが、図1、2、および3に示されているが、様々なプラットフォームを使用することができる。
図1からわかるように、システム103は、後の再生のために音楽を記憶するハードドライブ101を追加することによって、Bose社のLifestyle 35(106)などのホームエンターテイメントシステムに組み込むことができる。このシステムは、再生されるトラックのシーケンスを判定し、そのシーケンスを、ハードドライブからエンターテイメントシステムに供給する。ユーザプリファレンス情報およびフィードバックが、一体化された遠隔制御107でユーザから受け取られ、将来に再生されるトラックを判定するのに使用するためにシステム103に送り返される。エンターテイメントシステム106は、AMおよびFMラジオ104、コンパクトディスクまたはDVD105、またはそのハードドライブ101から音楽を再生する能力を有し、マルチゾーン対応であり、家庭の異なる区域で音楽の異なるアイテムを再生することができる。遠隔制御107は、コアユニット108およびアイテム選択システム103の両方とインターフェースする。
図2に示されたもう1つの実施例では、アイテム選択システム202を、やはりハードドライブまたは他のランダムアクセス記憶媒体201を追加することによって、Bose Acoustic Wave Music System 205などのより小さいユニットでホスト処理することができる。そのような構成では、システムが、AMおよびFMラジオ203、コンパクトディスク204、および内蔵ハードドライブ201から音楽を再生することができる。遠隔制御206は、コアユニット207およびアイテム選択システム202の両方とインターフェースする。
図3に示された第3の実施例では、アイテム選択システム305を、車両の音楽ネットワークに一体化することができる。この実施形態では、システムが、標準的な自動車エンターテイメントシステム309(最低限でも、コンパクトディスクプレイヤ302およびスピーカ303などのオーディオソースを含む)、ハードドライブまたは他のランダムアクセス記憶媒体304、コンピューティングエンジン307、および追加ユーザインターフェース制御306を増補し、自動車のオーディオビジュアルネットワークにリンクされる。この構成では、システムが、その内蔵ハードドライブ304から音楽を再生し、ハードドライブ304は、AMおよびFMラジオ301、CDまたはDVD302、および潜在的に衛星ラジオ308から音楽を記録することができる。
前に注記したように、このシステムは、ビデオジュークボックスシステム、データベースエンジン、またはソフトウェアプログラム(選択されるアイテムが、特徴またはメニューアイテムになる場合がある)などの他のプラットフォームでも実施することができる。
動作モード
前に述べたように、このシステムは、たとえば下記などの様々なソースからトラックを再生することができる。
(1)CD/DVD。システムは、現在ロードされているCD/DVDディスクを再生する。このモードでは、現在ロードされているCD/DVDディスクに関して、ユーザが、たとえば再生、一時停止、次のトラック、前のトラックなど、コンパクトディスクプレイヤで使用可能な標準的なオプションを選択することができる。CD/DVDモードでの動作は、新しいモードが選択されるまで継続される。
(2)AM/FM/衛星ラジオ。システムは、標準的なAM/FMラジオまたは衛星ラジオとして動作する。
(3)カセットテープ。システムは、カセットプレイヤとして動作する。
(4)ステレオトラック。システムは、その内蔵ハードドライブからトラックを再生する。
(5)インターネット。システムは、インターネットに配置された別のコンピュータから取り出されたトラックを再生する。
(6)内部。たとえば、トラックが、コンピュータソフトウェアの特徴である場合に、外部データが不要である場合がある。
システムが、そのハードディスクからトラックを再生する時、または外部データが不要である場合に、システムは、下記のモードの1つで動作することができる。
(1)自動選択モード。図6からわかるように、このモードでは、システムが、システムが使用可能なすべてのトラックからとられたセレクションを再生する。ユーザは、再生されるトラックに関して、明示的または暗黙のフィードバックを供給する。フィードバックは、ユーザプリファレンスを表すことができる。システムは、ユーザフィードバック(より最近のフィードバックを強調する)および最近再生されたトラックのヒストリに基づいて、ユーザのためにトラックを選択する。選択システムは、現在のいわゆるユーザステーションに記憶されたフィードバックも考慮に入れることができる(以下の「ステーションおよびプリセット」を参照されたい)。いくつかの実施形態で、単純さを高めるために、自動選択モードが、デフォルトモードであり、他のモードが再生を完了した時に、システムが、自動選択モードに戻る。
図6に、自動選択モードである時に選択システムがそれによって機能する処理を示す。トラック選択は、自動選択モジュールによって達成される(以下の「モジュール」を参照されたい)。自動選択モジュールは、当初はアイドル状態2201である(他のモジュールがアイドルでない場合があり、具体的には、システムがトラックを再生している場合があることに留意されたい)。モジュールが、次のトラックを選択する時であることの通知2204を受け取る(トラックが完了した後またはすぐに完了する時を示す信号を、プレイヤによって供給することができる)時に、「モジュール」セクションで説明するように、モジュールは、「トラック選択」状態2202に切り替わる。モジュールは、後のセクションで説明するように、次に再生するトラックを選択する。モジュールがトラック選択状態である間に、さらなるトラック選択要求が受け取られる場合には、モジュールは、その要求をトラック選択キューに追加する。モジュールが、トラックの選択を完了した時に、トラック選択キューまたはフィードバックキューにアイテムがない場合には、システムはアイドル状態に戻る(2205)。さらなるトラック選択要求がある場合には、システムは、トラック選択状態に戻る(2206)。
モジュールが、フィードバックイベント(すなわち、現在再生されているトラックに関するユーザからの暗黙のまたは明示的な指示があったことの、ユーザインターフェースモジュールからのメッセージ)を受け取る時に、モジュールがアイドル状態である場合には、システムは、「フィードバック構造更新」状態2203に切り替わる(2209)。モジュールが、トラック選択状態またはフィードバック構造更新状態である間にメッセージを受け取る場合には、モジュールは、そのイベントをフィードバックキューに置く。モジュールが、トラック選択処理を完了した時に、フィードバックキューが空でなく、さらなるトラック選択イベントがない場合に、モジュールは、「フィードバック構造更新」状態に切り替わる(2207)。その状態で、以下で説明するように、モジュールは、記憶済みトラックグラフを更新する。終了した時に、モジュールは、フィードバックキューおよびトラック選択キューが空である場合に、アイドル状態に戻る(2210)。フィードバックキューが空でない場合には、モジュールは、フィードバック構造更新状態に戻る(2211)。トラック選択キューが空でない場合には、モジュールは、トラック選択状態に戻る(2208)。
他の実施形態では、自動選択モードがトラックレベルではなくCDレベルまたはアルバムレベルで動作しなければならないことをユーザが指定することが可能にされる。この構成では、自動選択モードで、ユーザが関心を持つと予想されるCDを選択し、最初から最後までそのCDを再生する。
(2)トラックモード。このモードでは、システムが、事前に指定されたトラックだけ、たとえば、ユーザによって定義された所与のプリセットにリストされたトラックだけ、あるいは特定のCDまたはアルバムのすべてのトラックを再生する。このモードは、(a)通常、(b)シャッフル、および(c)リピートを含む複数の再生オプションを有することができる。
(a)「通常」オプションは、システムに、ユーザがプログラムした順序ですべてのトラックを再生させる。最後のトラックの終りに、システムは、自動選択モードに戻ることができる。
(b)「シャッフル」オプションは、システムに、ユーザによって指定されたトラックをランダムな順序で再生させる。すべてのトラックが再生された時に、システムは、自動選択モードに戻ることができる。
(c)「リピート」オプションは、システムに、変更するようにユーザがシステムに指定するまで、トラックモードに留まらせる。このモードは、「通常」オプションまたは「シャッフル」オプションと共に使用して、繰り返される前に、トラックがどの順序で再生されるかを判定することができる。
(3)ビンモード。このモードでは、各プリセット(制御パネルのキーパッドボタンなどのユーザインターフェースオブジェクトによって表される)に、1つまたは複数のCDが含まれる。システムは、ユーザが現在のプリセットに追加したすべてのCDのトラックを再生する。CDが、部分的にのみ記憶されている場合に、システムは、記憶されているトラックだけを再生する。ビンモードを実施するシステムでは、設定メニューを介して、CDをビンプリセットに追加し、削除することができる。いくつかの実施例で、システムが、何らかのモードで、記憶されたトラックを再生している時に、ユーザが、現在のトラックがそこからプリセットに記録されたCDを追加するために、プリセットキーを押下げ、保持することができる。トラックが再生される順序は、「トラック」で説明した同一の再生オプションによって指定される。「通常」オプションまたは「シャッフル」オプションでの再生の終りに、システムは、自動選択モードに戻ることができる。
(4)仮想CDチェンジャモード。このモードは、各プリセットが単一のCDだけを表すことを除いて、ビンモードに似ている。したがって、ユーザは、キーパッド1805のボタンを押して、再生するCDを選択することができる。その代わりに、ユーザが、2桁または3桁のコードを入力して、特定のCDを選択することができる。ユーザは、「トラック」で説明した再生オプションの1つを選択することもできる。このオプションは、現在のCDだけに適用されるが、追加のオプションで、これらをプリセットのいずれかのすべてのCDのすべてのトラックに適用できるようにすることができる。再生の終りに、システムは、自動選択モードに戻ることができる。
(5)検索モード(図9を参照されたい)。検索モードでは、ユーザが、ディスク番号、アーティスト、または使用可能な他の情報によってソートされた、使用可能なコンテンツの表示されたリストをスクロールすることができる。ユーザは、再生のために、ディスク全体、アーティスト、ジャンルまたは任意の組合せを選択することができる。ユーザは、その代わりに、システムのハードディスクに記録されたCDを表すコードを入力して、そのCDのトラックを再生することができる。
トラックモードについて説明した再生オプションは、検索モードにも適用される。「通常」オプションまたは「シャッフル」オプションでの再生の終了時に、システムは、自動選択モードに戻る。再生は、実際にはトラックモードで行われ、検索モードでは、単に、トラックモードによる再生のための特殊な再生リストがセットアップされる。
一例で、システムは、1つの再生リストだけを維持し、ユーザは、キーパッドの0を押すことによってこの再生リストをアクティブ化する。この例では、一部のモードの間の切替が、図20の状態図に従って行われる。システムは、デフォルトで、自動選択モード2001で開始する。ユーザは、遠隔コントローラのキーパッド1805(図18を参照されたい)の対応するボタンを押すことによって、ユーザステーションを変更することができる(以下の「ユーザステーションおよびプリセット」を参照されたい)(2005)。トラックが完了する時に(2006)、システムは、自動選択モードのままであり、新しいトラックを選択する。ユーザが、changer(チェンジャ)1806を押す時に、システムは、チェンジャモード2003に切り替わる(2007)。チェンジャモードでは、ユーザが、キーパッドボタンを押すか、コードを直接に入力することによってCDを選択する場合に、システムは、チェンジャモード2003に留まり(2012)、コードが指定されたCDまたはキーパッドボタン(本明細書ではスロットと呼ぶ)に割り当てられたCDからのトラックの再生を開始する。トラックの終りに、システムは、次のトラックを再生する(2011)。CDが完了した時に、システムは、次のスロットによって指定されるCDの再生を開始する(2013)。すなわち、ユーザがキーパッドボタン2を押す場合に、システムは、スロット2のCDを再生し、その後、スロット3のCDを再生する。ユーザが、「Smart play(スマート再生)」を押す場合に、システムは、自動選択モードに切り替わる2008。ユーザが、チェンジャモードからWhole Album(全アルバム)を押す場合に、システムは、チェンジャモードに留まる(2023)が、現在のアルバムを先頭から始める。
ユーザが、search(検索)1812を押し(および、検索画面から選択を行う)、再生リスト1807を押す時に、システムは、自動選択モード2001またはチェンジャモード2003からトラックモード2002に戻る(2009、2010)。自動選択モードから、Whole Albumボタンによって、システムが、トラックモードに切り替わる(2009)。検索ボタンが押された場合に、システムは、検索結果を表す再生リストをセットアップする。再生リストが押された場合に、システムは、再生リストのトラックを再生する。Whole Albumが押された場合に、システムは、現在再生されつつあるCDのトラックのそれぞれを表す再生リストをセットアップする。トラックモードでは、前に述べたように再生リストが再生される。再生は、再生すべきトラックがある限り、継続される(2016)。ユーザが、「Smart Play」を押す場合、または、システムが、再生リストのすべてのトラックを完了し、前の状態が自動再生モードであった場合に、システムは、自動選択モードに切り替わる(2014)。ユーザが、「Changer(チェンジャ)」を押す場合、または、システムが、再生リストのすべてのトラックを完了し、前の状態がチェンジャモードであった場合に、システムは、チェンジャモードに切り替わる(2015)。
ユーザが、3つの状態のいずれかからanother source(別のソース)ボタンを押す場合に、システムは、その状態を保存した後に、新規ソース2004に切り替わる(2018、2020、2021)。他のソースから、ユーザは、現在再生されているトラックをシステムのハードディスクに記録させることができる。記憶が完了した時に、システムは、前の状態に戻る(2017、2019、2022)。ユーザが、他のソースモードから「Smart play」を押す場合に、システムは、最も最近に使用されたユーザステーションに切り替わる(2019)。ユーザが、「Changer」を押す場合に、システムは、チェンジャモードに切り替わる(2022)。ユーザが、再生リストを押す場合に、システムは、トラックモードに戻る。
この実施例では、トラックがチェンジャモード、トラックモード、または自動選択モードで再生されつつある間に0を押したままにすることによって、現在のトラックが再生リストに追加される。ユーザは、remove(除去)ボタンを押すか、設定メニューからオプションを選択することによって、再生リストからトラックを除去することができる。
他の実施形態では、複数の再生リストが許容され、いくつかの実施形態では、おそらくはトラックモードを修正して、CDの個々のトラックではなくCD全体を再生することによって、上で説明した「ビン」モードも実施される。いくつかの実施形態には、上にリストしたモードの一部が含まれない。他の実施形態に、追加のまたは置換のモードを含めることができる。たとえば、いくつかの実施形態に、現在再生されているトラックと同一のアーティストによって演奏されたすべてのトラックを再生することを除いて「whole album(全アルバム)」ボタンに似ている、「all items by this artist(このアーティストによるすべてのアイテム)」ボタンを含めることができる。「all items in this genre(このジャンルのすべてのアイテム)」など、検索機能性の他のサブセットも可能である。
動的複雑性の調整
選択システムは、たとえばユーザによるすべての機能の完全な制御を可能にする複雑な動作モード、ならびにたとえば単純なユーザ制御だけを許容する、ユーザが使用可能な特徴の数を減らしたより自動的なモードの両方を提供することができる。ユーザの注意が、主に別のタスクに焦点を合わせている情況で、たとえばユーザインターフェースの複雑な態様などの一部の特徴が、ディスエーブルされる。その時間中は、システムは、主要なタスクからユーザの注意をそらさずに、ユーザのプリファレンスを満足できる、単純だが機能的なインターフェースを提供する。
この特徴の1つの実施例を、自動車に設置された選択システムで使用することができる(図17を参照されたい)。自動車が走っている間に、検索モードがユーザから使用可能でなくなるように、このシステムを構成することができる。このモードは、自動車のギアがパーキングになっているか、パーキングブレーキが効いている間に限って許容されるように制限することができる。他のギアになっている間は、他のモードが使用可能である。
パーソナルコンピュータ接続
このシステムのいくつかの実施形態では、パーソナルコンピュータとの任意選択のインターフェースを許容することができる。これらの実施形態では、ユーザが、システムから記憶装置を取り外し、コンピュータに直接に取り付けることができる。ユーザは、すべての記憶されたトラックのリストを、各CDを表すコードと共に保存することができる。ユーザは、直接アクセス機能を使用する後のすばやいアクセスのために、各CDに関連するコードをプリントアウトすることができる。
ハードディスクがコンピュータに接続されている間に、ユーザは、コンピュータのハードウェアを利用して、追加のトラックをハードディスクに記憶することができる。これは、たとえば、コンピュータのCDプレイヤが、システムのプレイヤよりすばやくCDデータを読み取り、記憶できる場合に有利である。
コンピュータは、再生リストを作成し、アイテム選択システムで使用可能でないメタデータデータベースから、記憶されたトラックのメタデータをルックアップする能力を提供することもできる。最後に、ユーザは、記憶されたトラックコレクションを、バックアップのために自分のコンピュータに保存することができる。
ユーザインターフェース
ユーザは、システムが組み込まれるプラットフォームに依存するインターフェース機構を介して、選択システムと対話する。たとえば、図18からわかるように、ユーザは、遠隔制御を使用することができる。あるいは、図23のように、たとえばホームエンターテイメントシステムに組み込まれる時に、制御パネルによってシステムを制御することができる。自動車に設置される時に、システムは、図24に示されているように、ステアリングホイールに配置された制御と、図25に示されているように、ダッシュボードに配置された残りの制御を有することができる。システムが、コンピュータソフトウェアの特徴の選択を制御する場合に、ユーザインターフェースは、そのソフトウェア自体によって提供される。以下で説明するユーザインターフェース要素の一部は、非音楽トラックに適用可能でない場合がある。
図18の遠隔制御には、ユーザが使用可能な機能性のほとんどが示されているが、この制御自体は、コンソールに、オンスクリーンメニューからの選択として、または別の場所に配置することができる。電力は、標準的なオン/オフボタン1816を使用して制御することができる。ユーザは、ミュートボタン1818を用いてサウンドを消音することができる。ユーザは、ボタンの組1826を用いてトラックのソースを選択することができる。その代わりに、システムが使用可能なソースを循環する単一のボタンを設けることができる。システムが、記憶されたトラック以外のソースモードである時に、ユーザは、「Stored(記憶)」ボタン1817を押し、保持して、システムに、現在のトラックをハードディスクに記憶するように指示することができる。その代わりに、図25のように、システムが、ユーザが現在のトラックを保存できるようにする別々のボタン2503を備えることができる。システムは、システムが記憶されたトラックを再生している場合に、ユーザが現在のトラックを削除できるようにするボタン2502も備えることができる。その代わりに、このボタンが、現在のCDまたはアルバムからのすべてのトラックを削除する機能性を提供することができる。
ユーザは、settings(設定)ボタン1801を使用して、システムの高度な設定にアクセスすることができる。DVDモードである時に、DVDにエンコードされた特殊な特徴および情報に、DVD menu(DVDメニュー)ボタン1804を用いてアクセスすることができる。これらのメニューのどれからも、exit(出る)ボタン1803を用いて出ることができる。これらのメニューでのナビゲーションは、矢印キー1825を用いて達成される。enter(エンター)キー1802は、これらのメニューで選択肢を受け入れるのに使用される。
ユーザは、volume(ボリューム)キー1826を用いてボリュームを制御することができる。ボタン1827を使用して、自動選択モードで動作している時に、現在のユーザステーション(「ユーザステーションおよびプリセット」を参照されたい)を変更することができ、トラックの変更をサポートする入力モードである時に、現在再生されているトラックを変更することができる。現在のユーザステーションは、キーパッド1805から新しいステーションを直接に選択することによっても変更することができる。
再生リストモード以外のすべてのモードから、ユーザは、トラックがシステムのハードディスクから再生されている時に、0を押し、保持することによって、トラックを再生リストに追加することができる。ユーザは、キーパッド1807で0を1回押すことによって、再生リストモードに入ることができる。ユーザは、この目的のために指定されたボタン1819を押すことによって、前の再生モードに戻ることができる。
現在再生中のトラックに対する制御は、標準的なトランスポート制御を使用して行使することができる。ユーザは、play(再生)ボタン1820を使用して再生を開始し、pause(一時停止)ボタン1822を使用して再生を一時停止し、stop(停止)ボタン1821を使用して再生を停止することができる。さらに、ユーザは、次トラックボタン1823を使用して次のトラックにスキップし、ボタン1824を使用して前のトラックに戻ることができる。
ハードディスクのトラックを再生している時に、再生モードを、ボタン1811、1806、1810、および1813を使用して調整することができる。whole albumボタン1811は、システムに、現在のトラックがそれから記録されたアルバムのすべてのトラックを再生させる。changerボタン1806は、システムに、仮想CDチェンジャモード(「動作のモード」を参照されたい)に切り替えさせる。smart playボタン1810は、システムに、自動選択モードに切り替えさせる。bins(ビン)ボタン1813は、システムに、ビンモードに切り替えさせる。ユーザは、searchボタン1812を押すことによって、検索モードに入ることができる。
システムには、ユーザが、トラック、たとえば現在再生されているトラックに対する反応(プリファレンス)を示せるようにするフィードバック機構が含まれる。これは、単純な+レーティングボタン1815および−レーティングボタン1814を設けることによって達成することができる。他の実施例では、図23に示されているように、+ボタン2302が、−ボタン2303の上に配置され、この2つのボタンが、最大値と最小値の間でプリファレンス値をスクロールするように働くことができる。他の実施例で、図24および32に示されているように、+ボタン2401が、−ボタン2402より大きく、その上にあるものとすることができる。いくつかの実施例で、これらのボタンは、システムがスマート再生モードである時のレーティングボタンと、システムが再生の他のモードである時のスクロールボタンという2つの目的のために働く。他のインジケータも使用することができる。たとえば、+および−の代わりに、システムに、サムアップインジケータおよびサムダウンインジケータを設けることができる。ボタンは、色コード付き(たとえば、否定の反応に赤いボタン、肯定の反応に緑のボタン)とすることもできる。
フィードバックボタンのほかに、このシステムのいくつかの実施例に、元に戻すボタンを設けることができる。このボタンは、記憶済みトラックグラフ(「メタデータ」を参照されたい)に対する前に作動されたフィードバックボタンの効果を完全に元に戻す。ユーザが、前のトラックに戻り、そのトラックの前の再生で与えられたものと反対のフィードバックを示すことによって、うっかり入力したプリファレンス表示の効果を減らせるようにすることも可能である。
様々な機構をインターフェースに設けて、ユーザがトラックに対する肯定または否定の反応を示せるようにすることができる。3つ以上のボタンを設けて、3つ以上のオプションからプリファレンスの明示的な指示を可能にすることができる。逆に、単一の肯定のフィードバックボタンまたは単一の否定のフィードバックボタンのいずれかの、またはある時間だけ押してユーザのプリファレンスのレベルを示すことができる単一のボタンの、単一のフィードバックボタンの使用が可能である。単純ではないが、単純な好みおよび嫌悪など以外の種類のフィードバックを提供することを意図されたボタン、たとえば、幸せ、悲しみ、冷淡などの、トラックに対する感情的反応のタイプを表すボタンが可能である。フィードバックの機構は、ボタンである必要はなく、ノブ、ダイアル、サムホイール、タッチスクリーン、音声認識、バイオメトリックリーダー、またはユーザの入力を受け取れる任意の他のデバイスとすることができる。ボタンの形状は、図に示された形状と異なるものとすることができる。
フィードバックデバイスの形状、輪郭、位置、および他の態様は、ボタンの機能に対応する直観的な触覚感覚をユーザに与えるように選択することができる。たとえば、+ボタンを−ボタンの上に置き、プラスボタンを−ボタンより大きくすることによって、ボタンのそれぞれの意味の直観的な感覚を伝えることができる。2つの異なるプリファレンスボタンの表面輪郭は、その意味を直観的に示すように配置することができる。たとえば、+ボタンは、へこんだ表面(通常は快適として感じられる)を有することができ、−ボタンは、凸の表面(通常は、不快として感じられる)を有することができる。
プリファレンスボタンを、互いの近くに置き、1つまたは複数の主トランスポートボタンの近く、たとえば、ユーザが手全体の動きなしで指の動きだけでこれらのボタンのどれでも押せるようになるのに十分に近くに置くことも望ましい。図24からわかるように、ボタンをクラスタ化する1つの有用な形が、+および−のボタンを互いの上下に置き、前後のトランスポートボタンを、+ボタンと−ボタンをつなぐ垂直軸の左右ですぐそばに置くことである。たとえばステアリングホイールに取り付けられる時に、ユーザは、親指を使い、手全体を動かさずに、レーティングおよびトランスポートを行うことができる。便利であるほかに、そのような配置は、車両内での使用に関して他の配置より安全である可能性がある。
システムは、表されたプリファレンスおよび他の事項に関してユーザにフィードバックを提供することができる。ある手法で、図23に示されているように、フィードバックを、組込み画面2301で提供することができる。もう1つの手法で、図25に示されているように、フィードバックを、LCDディスプレイ2501で提供することができる。フィードバックには、再生されたトラックの識別、再生しているユーザステーション、トラックの長さ、経過時間、および再生中のトラックに関するユーザのありそうなプリファレンスレベルのシステムの解釈の指示を含めることができる。
一部の実施形態では、上で説明したボタンおよびディスプレイを、音声認識システムによって増補するかこれと置換することができる。システムは、ユーザに口頭のフィードバックを供給し、口頭のコマンドを聴取する。その代わりに、システムが、口頭メニュー選択を提供することができ、これは、ボタン押下げまたは音声応答によって選択することができる。
ディスプレイ
オンスクリーンディスプレイを使用してユーザにフィードバックを提供する実施形態で、システムが、記憶されたトラックを再生している時に、システムは、図26に示されているように、現在再生中のトラックに関する情報を表示することができる。システムは、現在のアルバムの名前2601、現在のトラックのタイトル2602、アーティストの名前2603、ジャンル2604、現在のトラックの経過時間2605、現在再生しているユーザステーション2606(「ユーザステーションおよびプリセット」を参照されたい)、およびトラックのソース2607を表示することができる。
検索モードでは、図9に示されているように、システムは、ユーザがジャンル904、アーティスト903、トラック902、またはアルバム901によって検索できるようにするメニューを表示することができる。システムは、現在の検索結果の範囲905を表示することができ、この範囲は、当初は、記憶されたトラックの組全体とすることができる。いくつかの実施例で、検索の初期範囲が、現在生成中のトラックに基づく。ユーザは、たとえば同一のアーティストによって、同一のアルバム内、同一のジャンル内で、比較的すばやく類似するトラックを選択することができる。
ユーザが、プリセットまたはユーザステーションの編集を望む時に、システムは、図19に示された画面を表示することができる。プリセットが、ユーザステーションでない場合に、ユーザは、所与のトラックをプリセットに追加するか、プリセットから削除することができる。プリセットが、ユーザステーションである場合に、ユーザは、ステーションに関する明示的な肯定または否定のフィードバックを与えることができる。
自動車またはポータブルステレオシステムなど、より小さいディスプレイが必要である時には、ディスプレイが、図27の形をとることができる。システムは、現在のモード2701および経過時間2702を継続的に表示する。現在のアーティストに関する画面情報2703(たとえば「The Beatles」)および現在のトラックのタイトル2704(たとえば「Hard Day’s Night」)をスクロールさせることもできる。
ユーザが、明示的フィードバックボタン(たとえば図18のボタン1814または1815)を押す時に、どの実施形態でも、ディスプレイで、フィードバックを確認することができる(たとえば、「Feedback acknowledged」などの、確認メッセージを一時的に表示することによって)。いくつかの実施形態では、確認を、暗黙のフィードバックならびに明示的フィードバックの受取の際に表示する。
システムが、トラックを再生している時に、ディスプレイに、そのトラックに関するユーザのプリファレンスレベルのシステムの理解を表すインジケータ2608(図26)を示すことができる。このインジケータは、たとえば、図31に示された5つのアイコンの1つとすることができる。5つのアイコンに、中実のプラス3101、輪郭のプラス3102、円3103、輪郭のマイナス3104、および中実のマイナス3105を含めることができる。他のアイコン、他の個数のアイコン、およびアイコンの他の意味も、使用することができる。
ユーザが、設定モードに入る時に、設定画面2801が表示される(図28を参照されたい)。この画面を用いると、ユーザが、現在再生中のプリセットまたはステーション2802を変更できるようになる。この画面を用いると、ユーザが、ユーザが指定した時間の後にシステムが自動的に電源を切る2803か、指定された時刻に電源を入れるように構成することができる。この画面を用いると、ユーザが、高音、低音、およびバランスなど、標準的なオーディオ設定2804を調整できるようになる。この画面を用いると、ユーザが、高度な設定2805を表示し、修正できるようになる。
ユーザが、高度な設定の編集を選択する場合に、2806などの画面を表示することができる。システムは、現在再生中のステーション2807を表示し、フィードバックを記録されたトラックの数2808およびフィードバックの内容2809に関する情報を表示し、現在のステーションで最高のフィードバックレーティングを有するアーティスト2810を表示する。ユーザが、現在のステーションのすべての情報をクリア2811できるようにすることもできる。
システムが、オンスクリーンディスプレイではなく音声合成を使用する場合に、類似する情報およびオプションを、口頭でユーザに提示することができる。
ユーザステーションおよびプリセット
概念上、プリセットは、再生されるトラックのシステムによる選択に影響する、各記憶されたトラックに関する情報を表す。システムがこの情報を使用する機構は、現在のモードに依存し、いくつかのプリセット情報は、あるモードだけに適用可能である。たとえば、トラックモード、ビンモード、または仮想CDチェンジャモードである時に、プリセットに、トラックまたはアルバムが現在のプリセットに含まれるか否かを表す、記憶されたトラックまたはアルバムごとの単純なイエス/ノーデータが含まれる。ユーザステーションモードでは、プリセットに、自動選択モードでトラックを選択するのにシステムが使用する情報が含まれる。たとえば、図12では、記憶済みトラックグラフ内のノードごとにフィードバックレコード1213を含めることができる(「メタデータ」を参照されたい)。
選択システムは、任意の個数のプリセットの組を維持することができる(図15のデータベーススキーマを参照されたい)。たとえば、システムは、4つのプリセットを維持することができ、このプリセットのそれぞれは、1から4のラベルを付けられた物理的ユーザインターフェースのボタンまたは他のユーザインターフェースアイテムによって表される(図23のアイテム1805を参照されたい)。トラックが、いずれかのモードで再生されている間に、ユーザは、たとえば対応するボタンを押したままにすることによって、そのトラックを所与のプリセットに追加しなければならないことを指定することができる。システムが、自動選択モードである時に、これは、現在のトラックに肯定のレーティングを与えることと同一の効果を有する。ユーザは、対応するボタンを押すことによって、プリセットをアクティブ化する。各プリセットに、表示および選択のために番号または名前を割り当てることができる。
図15からわかるように、システムは、少なくとも3タイプのプリセットを維持することができる。1つは、ユーザが個々のトラックをプリセットに割り当てて、再生リストを作成できるようにするタイプである。第2のタイプは、ユーザが、CDまたはCDのグループをプリセットに割り当てて、CDからのトラックを再生できるようにする。プリセットの第3のタイプを、ユーザステーションと称する。さらに、ユーザは、CDプリセットをセットして、単一のCDを再生することができる。
ユーザステーションは、自動選択モードで使用されるプリセットである。各ユーザステーションは、システムに記憶された各トラックに確率を関連付ける。この確率は、以下で説明する自動選択アルゴリズムによって生成され、たとえば、暗黙、明示的、またはその両方の組合わせの、ユーザが示したプリファレンスに基づいて、動的に更新される。プリセットが使用中である間に、再生されるトラックの選択は、プリセットに記憶された、トラックのコレクション全体に関連する確率の特定の組に基づく。複数のプリセットを、コレクション全体のアイテムの異なる確率に基づいて選択されるトラックを再生する形として定義することができる。
いくつかの実施形態で、ユーザステーションを、個々のユーザに関連付けることができる。したがって、システムの3つのユーザがある場合に、ユーザステーション1が、ユーザ1のプリファレンスを反映でき、ユーザステーション2が、ユーザ2のプリファレンスを反映でき、ユーザステーション3が、ユーザ3のプリファレンスを反映することができる。ユーザステーション1は、ユーザステーション1によるトラックの再生中に示されたユーザプリファレンスから導出されるトラックのスコアリングに基づくセレクションを再生し、他も同様である。
いくつかの実施形態は、ユーザの自動識別およびユーザのプリセットの自動的な使用を許容することができる。これは、バイオメトリック同一性確認によって達成することができる。たとえば、システムは、音声認識機能を備えることができ、ユーザを、そのユーザの声の音によって識別することができる。識別されたならば、システムは、そのユーザのステーションに自動的に切り替えることができる。他のシステムは、指紋識別、網膜スキャン、または他のバイオメトリック測定技法を使用することができる。さらなる他のシステムは、外部識別デバイスとインターフェースすることができる。たとえば、自動車に組み込まれるシステムは、ユーザが、ドライバーズシートをユーザ1の前に記憶された好ましい位置に変更する時に、ユーザ1のステーションに切り替えることができる。
いくつかの場合に、システムがユーザからフィードバックを受け取るたびにプリセットを自動的に更新するのではなく、プリセットを、ユーザからの明示的な指示の時に限って更新することができる。その形で、ユーザは、プリセットが再生アイテムのシーケンスの選択に使用されたセッションの後であっても、好ましいプリセットに戻ることができる。
モジュール
図21は、1つの可能な実施形態に含まれる機能モジュールと、その相互作用の性質を表す。この実施形態では、MusicPlayer 2107が、入力に応答してトラックの再生を制御し、End Of Track PlaybackメッセージおよびTimeUpdateメッセージ2122の形で、トラックの再生に関する状況情報をPlayModesモジュール2103に供給する。MusicPlayer 2107は、TimeUpdateメッセージおよびNewTrackPlayingメッセージ2118をオンスクリーンディスプレイ(OSD)モジュール2101に送る。MusicPlayer 2107は、End Of Track Playbackメッセージ2115をPlayerStatesモジュール2104に送る。MusicPlayer 2107は、RipTimeUpdateメッセージ、CDInsertedメッセージ、CDEjectedメッセージ、およびCDReadyメッセージ2116をリッパーモジュール2106(以下を参照されたい)に送って、リッパーモジュールに、リッピング処理に残された時間、CDが挿入された時、CDが取り出された時、およびCDが記憶の準備ができた時を知らせる。
リッパー2106は、制御ユーザインターフェースモジュール2102からの記憶コマンドに応答し、メッセージ2117を自動選択モジュールに送って、記憶されたトラックを記憶済みトラックグラフ(「メタデータ」を参照されたい)に追加する。リッパー2106は、所与のトラックがグラフに既に記憶されているかどうかを自動選択モジュールに尋ねる(2117)。リッパーモジュールは、ripTrackメッセージ2123をMusicPlayerモジュールに送って、MusicPlayerモジュールに、トラックを実際に記憶するように指示する。MusicPlayerは、記憶が完了した時に確認メッセージを送る。
PlayModesモジュール2103は、制御ユーザインターフェースからのボタン押下げ2109に応答する。PlayModesモジュール2103は、メッセージ2111をPlayerStatesモジュール2104に送って、現在の状態を「停止」または「再生中」に変更する。PlayModesモジュール2103は、自動選択モジュールに照会(2124)して、どのトラックを次に再生するかを見つけるか、現在の再生リストを得る。PlayModesモジュール2103は、自動選択モジュールに、フィードバックイベントを処理するように指示(2124)することもできる。PlayModesモジュール2103は、トラックヒストリ、ユーザステーションの状態(「ユーザステーションおよびプリセット」を参照されたい)、および仮想CDチェンジャの状態(「動作のモード」を参照されたい)も維持する。
PlayerStatesモジュール2104は、ユーザの制御からのトランスポート制御イベントおよびPlayModesモジュールからのコマンドに応答する。PlayerStatesモジュール2104は、遠隔制御とMusicPlayerモジュールの間のインターフェースとしても働く。PlayerStatesモジュール2104は、制御ユーザインターフェースおよびPlayModesモジュールから受け取るトランスポート制御指示およびトラック再生指示2112をMusicPlayerモジュールに渡す。PlayerStatesモジュール2104は、現在のトラック、前のトラック、および次のトラックについてPlayModesモジュールに照会(2113)することができる。
オンスクリーンディスプレイ(OSD)モジュール2101は、現在ユーザに演奏されているものに関する情報を表す。OSDモジュール2101は、プリセットを「リセット」または他の形で編集するユーザ対話を処理し、自動選択モジュールにリセットメッセージ2120を送ることができる。OSDモジュール2101は、検索インターフェースのユーザインターフェースも表示し、検索結果2121をPlayModesモジュールに送る。OSDモジュール2101は、自動選択モジュールに照会2119して、検索結果を取り出す(ユーザによって供給された検索パラメータがOSDモジュールに与えられる)。OSDモジュール2101は、現在再生中のトラックに関する情報についても自動選択モジュールに照会(2119)して、ユーザに提示する。
自動選択モジュール2105は、ユニットが自動選択モード(「動作のモード」を参照されたい)である時に、再生するトラックを選択する。自動選択モジュール2105は、すべてのユーザステーションに関するすべてのフィードバック情報を維持する(「ユーザステーションおよびプリセット」を参照されたい)。自動選択モジュール2105は、ユーザによってOSDモジュールを介して要求された時に検索を行い、OSDモジュールによって定式化された照会を、再生されるトラックのリストに変換する。自動選択モジュール2105は、現在再生中のトラックに関する情報をOSDモジュールに供給する。自動選択モジュール2105は、ユーザインターフェースに、記憶済みトラックグラフのデータを編集するように要求する。このモジュールは、記憶済みトラックグラフを維持するので、システムが仮想CDチェンジャモード、トラックモード、またはビンモードである時に、PlayModesモジュールは、次に再生されるトラックをこのデータ構造から確認するために、自動選択モジュールに照会2124しなければならない。
制御ユーザインターフェース(ControlUI)2102モジュールは、ユーザイベントをディスパッチする。ControlUI2102は、ユーザ対話のために、たとえば検索モードで、ボタン押下げ2108をOSDモジュールに送る。ControlUI2102は、ソース変更メッセージ、モード変更メッセージ、レーティングメッセージ、および次トラックメッセージ2109をPlayModesモジュールに送る。ControlUI2102は、次トラックメッセージを除くトランスポート制御メッセージ2110をPlayerStatesモジュールに送る。ControlUI2102は、記憶ボタン押下げ2114をRipperモジュールに送る。
トラックの記憶
自動選択モード、トラックモード、ビンモード、仮想CDチェンジャモード、および検索モードのすべてが、トラックデータがシステムのハードディスクに記憶されていることを必要とする。これは、リッパーモジュールによって行われ、リッパーモジュールは、図5に示されているように動作する。
ディスクが挿入されていない(かつ、他のソースが動作していない)時500に、モジュールは、「ディスクなし」状態501である。ディスクが挿入された(または、ユーザが、たとえばラジオまたはカセットテープなどの別のソースからの再生を開始する)時503に、システムは、使用可能な場合にTable of Contents(TOC)データを読み取り(下の「データ記憶」を参照されたい)、「ディスク存在/アイドル」状態502に入る。ユーザが、記憶ボタンを押す時に、記憶すべきトラックがまだ残っている場合504に、システムは、記憶されていないトラックのリストを保存し、「記憶中」状態509に入る。記憶すべきトラックが残っていない場合508には、システムは、エラーメッセージを表示する。
記憶中状態で、他のモジュールがソースの再生を処理している間に、トラックが、同時に、ハードドライブに記録される。すべてのトラックの記憶が完了した時に、モジュールは、確認メッセージをユーザに表示506し、アイドル状態502に戻ることができ、その代わりに、他のソースモードに戻り、先頭からソースを再生することができる。すべてのトラックを記憶する前にソースが除去された場合507には、システムは、ディスクなし状態501に戻る。ソースが除去された、ユーザが停止を押す、ユーザがソースを変更する、ハードディスクの空き容量がなくなる、またはシステムが現在のトラックの記憶を継続することが不可能になるイベントが発生した場合に、現在のトラックの記憶されたデータが、削除される。
他の実施例では、トラックを、ユニットのハードドライブに記憶されつつある間に再生する必要がない。その場合、トラック記憶は、より短い時間で完了することができる。記憶モジュールは、これらの実施形態では独立に動作し、ユーザは、記憶モジュールがトラックを記憶している間に、システムのハードディスクを含む任意のソースからのトラックの聴取を継続することができる。
他の実施形態では、「バックグラウンド記憶」が許容される。この特徴によって、ユーザが、所与のトラックを記憶しなければならないことを示せるようになる。システムは、後に、システムが使用中でなくなるまで、実際の記憶を延期する。システムがバックグラウンドでトラックを記憶している間に、ユーザがシステムを使用する場合には、システムは、記憶機能を打ち切る。ユーザが、バックグラウンド記憶についてキューに置かれているCDからのトラックを再生する場合に、そのトラックを、ユーザが再生している時に記憶することができる。
バックグラウンド記憶は、下記のように標準的な記憶機能と組み合わせることができる。標準的な記憶を、普通に使用することができるが、ハードディスクの空き容量がなくなった、ユーザがCDを除去した、またはトラックの記憶が不可能になる他のイベントが発生した場合に、システムは、そのトラックをバックグラウンド記憶のキューに入れ、後に、可能になった時に記憶することができる。
いくつかの実施形態は、記憶の時に最小限の処理を実行し、高度な機能を、システムがアイドルになるまで延期する。これらの実施形態では、元の媒体が必要になる時間の長さが減り、信号処理のほとんどが、アイドル時に行われる。
メタデータ
メタデータは、基礎になるトラックデータ自体以外の、トラックに関する情報を意味する。潜在的なメタデータソースおよび階層のタイプの多数の例がある。たとえば、記憶されたトラックが、性質において音楽である場合に、システムは、デジタル信号処理アルゴリズムを使用して、たとえば特定のトラックの低音の量を分析することができる。次に、トラックに、「重低音」、「軽い低音」またはその間などのカテゴリを割り当てることができる。その代わりに、トラックが非音楽データを表す場合には、そのタイプのデータに適当なメタデータが使用される。たとえば、トラックが、コンピュータプログラムのコマンドを表す場合に、適当なメタデータカテゴリを、「スコープ」(たとえば、文書レベルコマンド、グローバルコマンド、選択レベルコマンドなど)「タイプ」(たとえば、フォント、スタイル、プリファレンス、レイアウトなど)、メニュー(たとえば、ファイル、編集、表示など)、およびコマンド名(たとえば、ページの挿入など)とすることができる。音楽データと同様に、このメタデータは、ソフトウェアと共に事前にパッケージ化することができ、あるいは、たとえばインターネットを介して、別々に入手可能とすることができる。以下のセクションでは、記憶された音楽の例を使用する。以下の説明では、アーティスト、ジャンル、およびスタイルなど、音楽データに固有の特性を表すのに適する、記憶済みトラックグラフの作成を例示する。他の実施例では、記憶されるデータのタイプに応じて、ノードの間の異なる関係を有する異なる構造が使用される。
音楽の例に戻ると、メタデータは、図30に示されたものなどの構造になる。個々のトラック3001が、一緒に、アルバム3002を構成し、複数のアルバムが、アーティスト3003の作品を構成し、複数のアーティストが、ジャンル3004を構成する。多数の実施形態で、以下で説明するように追加の層が追加される。
自動選択モードは、たとえば、メタデータサポートの下記の3つのレベルのどれでも利用することができる。
(1)メタデータなし。
(2)一意のアルバム識別子によってインデクシング(インデックス処理)され、潜在的に列「ジャンル」、「アーティスト名」、「アルバムタイトル」、および「トラック番号」によって順序付けられた「トラックタイトル」のリストを含む、外部から供給されるメタデータのデータベース。そのようなデータのソースの1つが、Gracenote社のCDDBデータベースであり、本明細書では、これらのフィールドを有するすべてのデータを、総称的に「CDDBデータ」と称する。図10を参照されたい。
(3)アルバムテーブルを含み、一意のアルバム識別子によってインデクシングされ、潜在的に列「ジャンル」、「スタイル」のリスト、一意のアーティスト識別子、「アルバムタイトル」、「ソート可能なアルバムタイトル」、および「類似する」アルバムのリスト(一意のIDによって参照される)を含む、外部から供給されるデータベース。このデータベースには、一意のアーティスト識別子によってインデクシングされ、潜在的に列「アーティスト名」、「ソート可能なアーティスト名」、「スタイル」のリスト、および「類似する」アーティストのリスト(一意のIDによって参照される)を含む、アーティストテーブルも含まれる。このデータベースには、静的な「スタイル」テーブルも含まれ、各スタイルは、「ジャンル」にリンクされる。このデータベースには、一意のアルバム識別子によってインデクシングされる、列「媒体インデックス」(マルチディスクセットのディスク通し番号)、「トラック番号」、「トラックタイトル」、「ソート可能なトラックタイトル」、および「アーティスト一意ID」を有する「トラック」テーブルも含まれる。そのようなデータのソースの1つが、All−Music Guideである。本明細書では、これらのフィールドを有するデータを、総称的に「AMGデータ」と称する。図11を参照されたい。
選択システムの他の実施例は、選択システムの内部グラフフォーマットに変換できるすべてのメタデータフォーマットを扱うことができる。システムの「記憶済みトラックグラフ」は、異なるレベルの一般性のノードを有するグラフである。ノードは、図8に示されているように、祖先−子孫関係によって、または従兄弟(カズン)−従兄弟関係によって接続することができる。一般性のレベル、したがって祖先−子孫関係は、推移的である。
システムの記憶済みトラックグラフのデータ構造を、図12に要約する。メタデータの各アイテムが、半階層ネットワーク内のノードを形成する。この図には、複数の異なるタイプのノードが示されており、そのそれぞれが、包括的ノードオブジェクトから派生する。ノードオブジェクト1209(したがってすべてのノード)に、「name(名前)」(ユーザに何かを表示しなければならない時に使用される)、「id」(一意識別子)、「sortname」(nameのソート可能版)、およびフィードバックレコードの組1214が含まれる。フィードバックレコードは、グローバルに維持される1つのレコードおよびユーザステーションごとに1つのレコード1213のアレイからなり、このレコードに、すべてのフィードバック、スコア、および再生ヒストリ情報が記憶される。
階層は、この図では、垂直の次元およびノード間接続によって表される。あるレベルのノードAから上位のレベルのノードBへの接続(すなわち、祖先−子孫関係)は、ノードAによって表されるエンティティが、ノードBによって表されるエンティティの一部であるか、これによって実行されたことを暗示する。
図の下から上に読んでゆくと、トラックノード1201に、標準的なノードフィールドが含まれ、さらに、trackNumber(そのCDでの位置)、そのアーティストおよびジャンル(メタデータが使用可能な時)、その持続時間に関するフィールドが含まれる。各トラックノードは、単一のCDノード1202に接続1222され、マルチアーティストCDからのトラックは、1つまたは複数のアーティストノード1204に接続1225される(このメタデータが使用可能な時に)。
CDノード1202には、ディスクのTable of Contents(TOC)ストリングと、マルチディスクセットのディスク番号を表す序数「媒体インデックス」(使用可能な時に)が記憶される。各CDノードは、単一のアルバムノード1203に接続される。
アルバムノード1203は、単一のCDまたは複数ディスクセットのいずれかを表す。アルバムに、単一アーティストのトラックが含まれる場合に、アルバムノード1203は、単一のアーティストノード1204に接続1224され、複数のアーティストのトラックが含まれる場合には、どのアーティストノードにも接続されない。その代わりに、トラックノード1201が、アーティストノード1204に直接に接続1225される。アルバムノードを、0個以上のスタイルノード1206に接続1227することができる。アルバムノードを、従兄弟−従兄弟リンクによって、0個以上の「類似する」アルバムに接続1221することもできる。
アーティストノード1204は、単一の演奏者を表し、この演奏者は、1つまたは複数のトラックをレコーディングした1人または複数の個人と定義される。アーティストノード1204を、0個以上のスタイルノード1206に接続1226することができる。アーティストノードを、従兄弟−従兄弟リンクによって、0個以上の「関連する」アーティストに接続1229することもできる。
スタイルノード1206は、音楽のサブジャンルを表す。スタイルノード1206は、少なくとも1つのジャンルノード1207に接続1205される。メタデータが、スタイル情報とジャンル情報の両方を提供しない時には、ジャンルを、静的ルックアップテーブルによってスタイルから判定することができる(図11の1101を参照されたい)。たとえば、スタイル「Classic Rock(クラシックロック)」は、ジャンル「Rock」にマッピングされる。
ジャンルノード1207は、音楽の幅広いクラス(たとえば、「ロック」、「クラシック」、「ジャズ」)に対応する。ジャンルノード1207は、ルートノード(「Everything」ノード)1208に接続1228される。
ルートノード1208は、他のすべてのノードの祖先である。ルートノード1208は、音楽コレクション全体を表す。
ノードの間の接続は、データ構造1229によって表される。接続は、両方向であり(したがって、親または左従兄弟1230と子または右従兄弟1231が含まれる)、各接続は、関係の強さを表す数値の重み(「リンク重み」)1232と、関係の性質を指定するタイプ1233を有する。リンク重みは、外部メタデータ情報から導出することができ、静的とすることができ、あるいは、すべてが1と等しいものとすることができる。
明示的なメタデータが使用可能でない場合には、システムは、トラックを分類する直接の形を有しない。たとえば、新しい音楽CDが購入され、システムにロードされる時に、システムは、CDのトラックの間の関係を知っているが、各トラックのジャンルまたはスタイルを知らない。したがって、記憶済みトラックグラフ内の適当な位置にノードを作成することができない。いくつかの実施形態では、システムでメタデータを構築するために、必要な情報を求めるプロンプトをユーザに出し(たとえば音声合成を使用して)、その結果を使用することによって、この問題に対処する。たとえば、システムは、「これはどのジャンルになりますか」と尋ねることができる。話された結果「ジャズ」を、認識し、記憶することができる。
ユーザフィードバックのタイプ
選択システムがユーザから学習し、ユーザプリファレンスを判定するのに使用する5つのイベントがある(5つのイベントを説明するが、他の種類のイベントも可能である)。
(1)ユーザが、ボタンを押すか、他の形で、あるレベルで明示的な肯定の反応を示す(たとえば、「レート+」);
(2)ユーザが、ボタンを押すか、他の形で、あるレベルで明示的な否定の反応を示す(たとえば、「レート−」);
(3)たとえば、トラックが再生され始めてから、事前に指定された時間期間のうち(たとえば2秒超、2分未満)にボタン押下げが行われると仮定して、ユーザが、ボタンを押すか、他の形で、システムが次のトラックにスキップしなければならないことを示すか、他の形で現在のトラックを中止する(「次トラック」);
(4)ユーザがトラックを聞き、それを故意に完了させる可能性が高いことを示す何らかのタイプのユーザ対話が、セットされた時間期間、たとえばトラック開始時を中心とする1時間のうちにあったと仮定して、アイテムが、最初から最後まで再生される(「トラックの成功裡の完了」);
(5)ユーザがボリュームを上げる(「ボリューム+」)。
最初の2項目は、プリファレンスに関して何かをシステムに伝えるユーザの明示的な動作である。残りの項目は、ユーザのプリファレンスに関する暗黙の情報だけを表す。明示的および暗黙の両方の、プリファレンスに関する他の種類のフィードバックを使用することができる。
ノードのスコアリング
アイテム選択システムでは、記憶済みトラックグラフのノードに、ユーザからのフィードバックに基づくスコアが割り当てられる。グラフのノードの間の接続のゆえに、1つのノードに適用されるフィードバック(たとえば、トラックに対するユーザ応答)が、潜在的にグラフのすべてのノードに影響する。したがって、システムは、1トラックだけに対するユーザの応答を基礎として、各記憶されたトラックに対するユーザの応答に関する演繹を行うことができる。さらに、システムは、短期プリファレンスと長期プリファレンスを記憶することができる。この特徴を用いると、システムが、ユーザの全般的な長期トラックプリファレンスに関する情報を失わずに、ユーザの気分の変化に対してすばやく調整できるようになる。
図31に、フィードバックを受け取る前のトラックの間のスコアの初期分布と、所望の最終的な分布の一例を表す2つのトラックスコア分布を示す。当初(3106)、システムは、ユーザフィードバックを受け取っておらず、したがって、ユーザは、すべてのトラックに対して中立3103であると仮定される。明示的および暗黙のフィードバックが受け取られる時に、システムは、明示的なフィードバックが受け取られたトラックに類似するトラックに関する演繹を行う。最終的に、システムの一目標は、二重釣り鐘曲線分布3107を達成することとすることができる。ユーザは、少数のトラックに関して、明示的な肯定3101、明示的な否定3105、暗黙の肯定3102、または暗黙の否定3104のいずれかのフィードバックを与える。その情報を用いて、システムは、ユーザのプリファレンスを演繹し、レーティングされたトラックに関する未レーティングトラックの関係に基づいて、残りのトラックに肯定または否定のスコアを割り当てる。
前述したように、選択システムは、すべてのトラックを表すグラフ、そのトラックに関するメタデータ、およびそのトラックと他のトラックの間の関係を維持する。以下で詳細に説明するように、システムは、現在再生されているトラック以外のノードにフィードバックを伝搬させるために、このグラフ構造を利用する。さらに、以下で完全に説明するように、ノードは、任意選択として、短期プリファレンスと別々に長期プリファレンスを追跡することができる。
長期プリファレンスは、下記のように追跡することができるが、数値の重みは、単に1つの可能な例として提供されたものである(図13を参照されたい)。
(1)ユーザが、プラスボタン1306を押す時に、システムは、+1フィードバックイベントをトラックノード1311に送る(1301)。
(2)ユーザが、マイナスボタン1307を押す時に、システムは、−1フィードバックイベントをトラックノードに送る(1302)。
(3)ユーザが、次トラックボタン1308を押す時に、システムは、−1/3フィードバックイベントをトラックノードに送る(1303)。
(4)トラックが成功裡に完了する1310時に、システムは、+1/3フィードバックイベントをトラックノードに送る(1305)。
(5)ユーザが、ボリューム増加ボタン1309を押す時に、システムは、任意選択として、+1/6フィードバックイベントをトラックノードに送る(1304)。
これらのフィードバックイベントによって、メタデータネットワーク内のトラックノード1201およびそのすべての祖先のaccumulatedScore変数1210およびaccumulatedWeight変数1211が修正される。accumulatedScoreは、そのノードのすべてのフィードバックの合計(正および負)と等しく、accumulatedWeightは、そのノードの各フィードバックイベントの絶対値の合計と等しい。したがって、比accumulatedScore/accumulatedWeightは、必ず範囲[−1、+1]内にある。この比を、ローカルスコアと称する。ローカルスコアが+1である場合に、これは、受けられたすべてのフィードバックが肯定であったことを意味する。ローカルスコアが−1である場合に、これは、受けられたすべてのフィードバックが否定であったことを意味する。accumulatedWeightが0である場合に、ローカルスコアは、0と定義される。
いくつかの実施例で、accumulatedWeightおよびaccumulatedScoreが、有界である。accumulatedWeightが、固定された境界値を超える場合に、両方の変数に、比fixedBoundaryValue/accumulatedWeightをかけ、これによって、これらの変数の比を維持しながら、これらを指定された境界内に保つ。
短期的な気分に基づくプリファレンスを、同様に扱うことができる。たとえば、ユーザが、普段はロック音楽を楽しむが、現在はクラシック音楽を聞くことを望む場合に、システムは、ユーザの短期プリファレンスを受け取り、長期プリファレンスを実質的に修正せずに、調整する。したがって、この実施例では、システムが、ユーザがこの時だけクラシック音楽を聞くことを求めることを意味するものとしてユーザのフィードバックをすばやく解釈するが、後に電源を入れられた時に、システムは、そのユーザがロックを最も楽しむことを覚えている。
このために、accumulatedScoreおよびaccumulatedWeightに影響するのではなく、影響される変数は、moodBonusScore1212になる。この構成では、フィードバックイベントが処理されようとしている時に、すべてのノードにまたがるすべてのmoodBonusScore変数が、0に向かって減らされる(たとえば、0.9などの分数を各値にかけることによって)。次に、システムは、フィードバックを受け取るトラックおよびその祖先のそれぞれについて、たとえば、肯定のフィードバックについては+0.1を加算し、否定のフィードバックについて−0.1を加算することによって、moodBonusScoreを調整する。moodBonusScoreは、有界とすることができ、上の実施例では、moodBonusScoreが、範囲[−1、+1]内にあることが保証される。
長期プリファレンスデータおよび短期プリファレンスデータの両方を維持するシステムは、下記のように機能することができる。
(1)「レート+」イベントは、moodBonusScoreに対する大きい正の変化と、累積される変数に対する小さい正の変化をもたらす。
(2)「レート−」イベントは、moodBonusScoreに対する大きい負の変化と、累積される変数に対する小さい負の変化をもたらす。
(3)「次トラック」イベントは、moodBonusScoreに対する小さい負の変化と、累積される変数に対する小さい負の変化をもたらす。
(4)「トラックが成功裡に完了する」イベントは、moodBonusScoreに対する小さい正の変化と、累積される変数に対する小さい正の変化をもたらす。
(5)「ボリューム+」イベントは、moodBonusScoreに対する小さい正の変化と、累積される変数に対する小さい正の変化をもたらす。
したがって、累積される変数は、無限のメモリを有し、moodBonusScore変数は、限られたメモリを有する(0に向かって減るので)。
さらに、いくつかの実施例で、システムは、検索画面からのスコアのシーディングを許容する(「動作のモード」を参照されたい)。すなわち、ユーザは、検索画面でトラックを突き止めることができ、明示的レーティングボタンの1つを押して、そのノードおよびその親にフィードバックを適用することができる。
いくつかの実施形態で、「レート−」ボタンを押すと、現在のトラックの再生が停止され、次のトラックが開始される。ユーザにとって、これは、「次トラック」ボタンを押すのと同一の効果であるが、これは、システムの即座の挙動に対するより強い影響を有する。
他の実施形態で、上記のように現在のトラックをスキップさせるほかに、各新しいトラックの再生の前に、短い一時停止がある。再生されるトラックの名前が、オンスクリーンディスプレイに表示される。ユーザは、トラック再生の前に「レート−」ボタンを押して、即座に次のトラックにスキップすることができる。この場合に、ユーザは、トラックを再生させずに、明示的なフィードバックを提供する。
グラフの各ノードは、それ自体のスコア関連データを維持する。各ノードに、フィードバックレコードの組1214(図12を参照されたい)が含まれる。この組には、プリセットごとに1グループの変数と、追加のグローバルグループが含まれる。各グループに、3つの数値変数すなわち、accumulatedScore、accumulatedWeight、およびmoodBonusScoreが含まれる。
各トラックノード、CDノード、およびアーティストノードは、単一の整数値変数lastPlayedAtIndexも有する。lastPlayedAtIndexが値−1を保持する場合に、そのノードによって表されるトラックは、システムによって一度も再生されていない。システムは、0から始まり、各トラックが再生されるたびに増分され、指定された値、たとえば1024に達した時に0に戻る、グローバル循環再生カウンタを保持する。あるトラックが再生される時に、lastPlayedAtIndex変数がこのグローバルカウンタ値と等しいすべてのノードが、「−1」にリセットされる。たとえば、システムが5番目に再生したトラックがXであり、システムが現在1029番目のトラックを再生している場合に、グローバルカウンタ値は、5(1029 mod 1024=5)であり、したがって、トラックXのlastPlayedAtIndexは、5であるが、−1にリセットされる。したがって、システムは、このトラックが再生されたことを「忘れる」。次に、現在のトラックノード、CDノード、およびアーティストノードのlastPlayedAtIndexの値に、グローバルカウンタの現在値がセットされる。この時点で、式(globalCounter−lastPlayedAtIndex) mod 1024は、lastPlayedAtIndexが−1より大きいと仮定して、どれほど最近にトラックノード、CDノード、またはアーティストノードが再生されたかを表す。
システムは、プリセットごとの最も最近に再生されたトラックを表す先入れ先出しリスト(図14を参照されたい)も維持する。この再生ヒストリは、ユーザがトランスポート制御を使用して、再生ヒストリ内で前後に移動する時に限って使用される。したがって、システムが、現在トラック1402を再生しつつあり、ユーザが、前トラックボタンを押す場合に、システムは、トラック1401を再生する。システムが次に再生するトラックは、トラック1402になる。システムが、トラック1402の再生を完了した時に、新しいトラックが、選択され、リストの末尾1404に追加され、最も古いトラックであるトラック1403が、リストから除去される。
ユーザが、前トラックまたは次トラックを押し、そうでなければ再生されたはずのトラックが、ハードディスクから削除される場合に、システムは、そのトラックをスキップし、リスト内ですぐにそれの直前または直後のトラックを再生する。
データ記憶フォーマット
トラックは、CDから、ハードディスクまたは他のランダムアクセス記憶媒体に記録される。トラックが、音楽データを表す場合に、各トラックは、別々のファイルとして、潜在的にMPEG−1レイヤ3フォーマット(「MP3」;Moving Picture Expert Groupによって定義された標準規格)、AACフォーマット(Advanced Audio Coding、やはりMoving Picture Expert Groupによって定義された標準規格)、または他の適当なフォーマットで圧縮されて、媒体に記憶される。各トラックと共に、元の媒体で使用可能な場合に、table of contents情報も記憶される。CDでのトラックのインデックスも記憶される。新しい媒体のでの特定のフォーマットは、トラック番号およびtable of contentsが使用可能である限り、重要ではない。いくつかの実施形態で、アルバムごとに別々のディレクトリが作成される(図22を参照されたい)。これらのディレクトリには、たとえばCD0001、CD0002など、シーケンシャルに番号が付けられる。ディレクトリ内で、トラックファイルに、シーケンシャルに番号が付けられる(TR001、TR002など)。table of contentsは、たとえば、各MP3ファイルのID3ヘッダ内の文字列として、記憶することができる。
トラックがハードドライブに記憶される時に、ノードが、記憶済みトラックグラフに追加される。前に注記したように、選択システムは、グラフを構築するために複数のソースからメタデータを入手することができる。トラックが音楽である、いくつかの場合に、選択システムは、All Media Guide社(AMG)によって提供されるデータおよびGracenote社のCDDBサービスによって提供されるデータを検索する。まず、システムは、TOCが現在のCDのtable of contentsと一致する、CDノードの記憶済みトラックグラフを検索する。そのCDが存在しない場合に、システムは、インデックスとしてCDのtable of contentsを使用して、AMGデータベースに照会する。AMGデータベースが一致を返す場合には、システムは、CDノードを追加し、まだ存在しない場合には、AMGデータベースからのデータを使用して、アルバムノードを追加する。新しいノードが作成される時に、必ず、その変数のすべてに0がセットされることに留意されたい。トラックノードが作成され、新たに追加されたCDノードの下でネットワークに追加される。システムは、AMGデータベースの類似するアルバムのリストを使用して、アルバムノードを、ネットワーク内の他のアルバムに接続する。トラックノードが、アルバムノードに接続される。アルバムノードは、適当なスタイルノードに接続され、スタイルノードは、まだ存在しない場合に作成される。
これが単一アーティストCDであり、アルバムノードが前に存在しなかった場合、またはこれが複数アーティストCDである場合に、システムは、まだ存在しなければアーティストノードを作成する。アーティストノードは、複数アーティストCDでない場合にはアルバムノードに接続される。アーティストが前に存在しなかった場合には、アーティストノードが、AMGデータベースのアーティストテーブル内のアーティストのエントリで指定されるスタイルノードに接続される。複数アーティストCDの場合には、システムは、アーティストノードを直接にトラックノードに接続し、そうでない場合にはアルバムノードに接続する。
前に存在しなかったスタイルノードは、適当なジャンルノード(必要に応じて作成される)に接続され、新しいジャンルノードは、ルートノードに接続される。
メタデータが返されなかった場合には、システムは、CDDBデータベースに照会することができる。一致がある場合には、ノードが、AMGデータベースについて説明したように作成される。それでも一致がない場合には、アルバム、アーティスト、およびスタイルのレベルのダミーの「不明」ノードと共に、トラックノードおよびCDノードが作成される。
代替案では、CDDBデータベースに最初に照会することができる。一致が見つかる場合に、2番目にAMGデータベースに照会し、入手可能な場合にAMGデータベースからのより詳細な情報を使用して、CDDBデータを増補する。
前に注記したように、CDDBデータおよびAMGデータは、メタデータの2つの可能なタイプでしかなく、音楽トラックに特に適する。他のタイプのデータが使用される時に、異なるレベルを有する他の階層を作成して、データに適当なメタデータによって入手可能にされた情報をマッピングする。たとえば、データベースが、発行された特許からなる場合に、提供されるメタデータが分野、発明者、記載された従来技術、および発明の名称であるならば、これらのメタデータフィールドを上で説明した構造にマッピングする記憶済みトラックグラフが、作成される。
フィードバックの伝搬
ユーザフィードバックは、下記のように所与ノードに適用することができる。システムは、関数insertFeedbackAtNodeを呼び出し、フィードバックを適用するノード(すなわち、再生されつつあるトラックノード)、整数のプリセット番号、moodBonus(短期スコアの変化を表す)、ならびに浮動小数点のrawScoreデルタおよびweightデルタ(長期フィードバックの変化を表す)を渡す。まず、選択されたノードを初期化する。
node.currentFeedbackFlag 1218 = 1
node.currentFeedbackRawScore 1216 = rawScore
node.currentFeedbackWeight 1217 = weight
node.currentMoodBonus 1219 = moodBonus
次に、システムは、グラフをトラバースし、上位ノードの前に下位レベルのすべてのノードを行くようにする。各ノードに行った時に、そのノードのcurrentFeedbackFlagがセットされている場合に、各ノードのカズン(従兄弟)リンクを検討する。一時変数tbonus、tweight、およびtrawScoreを初期化する。
tweight = node.currentFeedbackWeight*link.weight * COUSIN_PENALTY
trawScore = node.currentFeedbackRawScore * link.weight * COUSIN_PENALTY * MAX_IMPLICIT_CONTRIBUTION
tbonus = node.currentMoodBonus * link.weight * COUSIN_PENALTY
従兄弟ノードのcurrentFeedbackFlagがセットされておらず、tweightが従兄弟ノードのcurrentFeedbackWeightの値より大きい場合には、従兄弟ノードのcurrentFeedbackRawScoreの値にtrawScore、currentFeedbackWeightの値にtweightをそれぞれセットする。一実施例で、COUSIN_PENALTYに0.4、MAX_IMPLICIT_CONTRIBUTIONに0.8がセットされる。従兄弟ノードのcurrentMoodBonusの絶対値が、tbonusの絶対値より小さい場合には、従兄弟ノードのcurrentMoodBonusにtbonusをセットする。
次に、現在のノードのcurrentFeedbackFlagがセットされているという仮定を続けて、ノードの親リンクのそれぞれを順番に検討する。一時変数tbonus、tweight、およびtrawScoreを初期化する。
tbonus = node.currentMoodBonus*link.weight
tweight = node.currentFeedbackWeight*link.weight
trawScore = node.currentFeedbackRawScore*link.weight
親ノードのcurrentFeedbackWeightの値がtweightより小さい場合には、親のcurrentFeedbackFlagに1をセットし、親のcurrentFeedbackRawScoreの値にtrawScore、currentFeedbackWeightの値にtweightをセットする。親ノードのcurrentMoodBonusの絶対値がtbonusの絶対値より小さい場合には、それをtbonusに等しくセットする。
システムは、現在のノードの親についてこの処理を繰り返す。
すべてのノードを訪れた後に、すべてのノードを逆の順序で訪れる(Everythingノードから開始し、トラックノードまで下に進む)。各ノードを2回目に訪れる時に、currentFeedbackWeightが非0であるならば、そのノードのフィードバック変数(指定されたプリセットの)を、次のように調整する。
accumulatedRawScore += currentFeedbackRawScore
accumulatedWeight += currentFeedbackWeight
各ノードタイプは、重みの限度を有することができる。他の重みが可能であるが、1つの例を示す。
FeedbackLimit = [ 4.0, # トラック
10.0, # CD
10.0, # アルバム
20.0, # アーティスト
40.0, # スタイル
60.0, # ジャンル
100.0] # すべて
accumulatedWeightが、その種類のノードの限度より大きい場合には、accumulatedWeightを、限度と等しくなるようにセットする。accumulatedRawScoreの絶対値が、上で定義した、その種類のノードの限度より大きい場合には、限度と等しくなるように正規化する。
また、ノードのmoodBonusScore(指定されたプリセットの)に、(1−moodBonus)をかけ、currentMoodBonusの値を加える。最後に、currentFeedbackFlag、currentFeedbackRawScore、およびcurrentFeedbackWeightの値を、すべて0にする。この時点で、システムは、すべての祖先および選択されたノードの祖先の最初の従兄弟にフィードバックを伝搬している。
一実施例で、rawScore、weight、およびmoodBonusの4つの可能な組合せの1つだけについて、insertFeedbackAtNode関数を呼び出す。
1.「レート+」ボタンが押された場合に、rawScore=1.0、weight=1.0、およびmoodBonus=0.1
2.「レート−」ボタンが押された場合に、rawScore=−1.0、weight=1.0、およびmoodBonus=0.1
3.適当な時間ウィンドウ内で「次トラック」ボタンが押された場合に、rawScore=−MAX_IMPLICIT_CONTRIBUTION*IMPLICIT_PENALTY、weight=IMPLICIT_PENALTY、およびmoodBonus=0.05
4.トラック再生が完了した場合に、rawScore=MAX_IMPLICIT_CONTRIBUTION*IMPLICIT_PENALTY、weight=IMPLICIT_PENALTY、およびmoodBonus=0.05
一実施例で、定数は、次のように設定される:MAX_IMPLICIT_CONTRIBUTION=0.8およびIMPLICIT_PENALTY=0.33。
フィードバックが、グラフに伝搬されたならば、短期プリファレンスと長期プリファレンスの両方を考慮に入れて、ノードのスコアを計算する必要がある。これには、もう1つのグラフのトップダウントラバースが含まれるが、このステップは、前のトラバースと組み合わせることができる。まず、Everythingノードから始めて下に向かって、システムはノードのrawScore1216およびweight 1217を0にする。現在のノード親(ある場合に)のそれぞれについて、そのプリセットの親ノードのrawScore(リンク重みをかけた値)をrawScoreに加算し、リンク重みをかけたそのプリセットの親ノードのweightをweightに加算する。すべての親フィードバックを加算した後に、rawScoreとweightの両方にPARENT_PENALTYをかける。例の実施形態では、PARENT_PENALTYが、0.2の値を有することができる。次に、システムは、accumulatedRawScoreのノードの現在のプリセットの値をrawScoreに加算し、accumulatedWeightの値をweightに加算する。
システムは、MOOD_WEIGHTS[GRAPH_LEVELS]という定数のリストを維持し、グラフ内の階層のレベルごとに1つのムード(気分)重み定数(MOOD_WEIGHTS)がある。一実施形態で、CDレベルのMOOD_WEIGHTが1であり、アーティストレベルのMOOD_WEIGHTが1であり、スタイルレベルのMOOD_WEIGHTが2であることを除いて、各MOOD_WEIGHTが0である。
選択システムは、現在のノードのmoodBonusScoreにそのノードレベルの気分重みをかけ、この値をrawScoreに加算する。システムは、現在のレベルの気分重みをweightに加算する。システムは、現在のノードの子のそれぞれについてこの処理を繰り返す。
比rawScore/weightは、weightが0でない限り、指定されたプリセットのノードのスコアと定義され、weightが0の場合には、スコアは0と定義される。ノードのスコアが、ネットワーク内のその祖先のすべてのスコア比に依存することに留意されたい。すべてのノードが、Everythingノードに由来するので、これによって、すべてのフィードバックイベントがすべてのノードのスコアに影響することが暗示される。
次のトラックの選択
システムが、「自動選択」モードである時に、システムは、現在のリスク許容範囲および複数の他の変数と組み合わされた各ノードのスコアに基づいて、次に再生するトラックを選択する。したがって、いくつかの実施例で、再生のために選択されるトラックが、最高レーティングのトラックでない場合がある。すべてのトラックが、最低スコアのトラックであっても、各選択サイクルに再生されるある確率を有し、正確な確率は、システムの現在のリスク許容範囲に依存する。リスク許容範囲変数は、システムが続けて2つの誤りを犯さないようにすると同時に、システムが単に最高レーティングのトラックを再生する場合に可能でない度合の変動を達成することを試みる。システムは、否定のフィードバックを受け取る場合に、繰り返される過ちの可能性を避けるために、より保守的(保存的)になる。肯定のフィードバックを受け取る時には、徐々に保存的でなくなる。
いくつかの実施形態で、選択処理は、下記のように進行する。まず、システムは、定数閾値を超えるスコアを有するアーティストノード、CDノード、およびトラックノードを数える。一実施形態で、閾値は0.2である。その結果、システムは、ユーザが「好む」アーティスト、CD、およびトラックの数を知る。これらのカウントが、それぞれ変数artistCount、CDCount、およびtrackCountに割り当てられる。
各プリセットは、相対的に低いスコアを有するトラックを選択する際にシステムがとるリスクの量を決定するconservatismThrottle(保存的スロットル)変数1215を有する。conservatismThrottleは、有界であり、たとえば[0.5、7.5]の範囲内であり、あるフィードバックイベントが発生する時に、必ず調整される。これらの調整のいずれかが、スロットルに閾値を超えさせる場合に、スロットル変数に、最大値または最小値が適当にセットされる。
(1)「レート−」キーが押される時に、スロットルは、10.0をかけられ、これは、次のトラックを選択する際にとられるリスクを減らす効果を有し、ユーザが既に少なくとも控え目に不満である文脈で高すぎるリスクをとらないことが望ましいという概念を反映したものである。
(2)「次トラック」ボタンが適当な時間ウィンドウ内で押される時に、スロットルは、1.5をかけられ、これによって、レート−キーが押された時ほど大きくはないが、とられるリスクが減る。
(3)トラックが成功裡に完了する時には、スロットルは、0.9をかけられ、したがって、前のトラック選択の成功に鑑みて、とられるリスクが増える。
(4)最後に、システムが、定数閾値(たとえば0.2)未満のスコアを有するトラックを選択する時に、スロットルに1.51をかけ、より大きい量だけとられるリスクを増やす。
「レート+」および「ボリューム+」が、スロットルに影響しないことに留意されたい。
再生のためにトラックを選択するために、一時変数totalLikelihoodを0にする。次に、任意の順序で各トラックを訪れる。前に述べたように、変数scoreに、そのrawScore/weightをセットする。次に、トラックのlastPlayedAtIndexが−1と等しくない場合に、下記のようにこれを距離(distance)に変換する(%記号は、剰余演算を表す)
distance=(globalPlayIndex−lastPlayedAtIndex)%1024
距離が、トラックカウント(上で計算した)未満である場合に、scoreにペナルティを適用する。
score−=2.0*(1.0−trackDistance/trackCount)
同様に、トラックのCDノードおよびアーティストノードを検査し、その距離がCDカウントまたはアーティストカウント未満である場合に、さらなるペナルティを適用する。
score−=0.6*(1.0−CDDistance/CDCount)
score−=0.4*(1.0−artistDistance/artistCount)
この時点で、所与のノードのscoreは、トラック、CD、またはアーティストが最近に再生された場合にペナルティを与えられる、そのノードが受け取ったフィードバックの平均値を表す。ここで、scoreを、次式によって尤度値(likelihood)に変換するが、pow(x、y)は、xのy乗を表す。
likelihood=pow(10.0、score*conservatismThrottle)
この関数の正確な形は、問題ではないが、Score1>Score2の場合に、2つの異なるスコアの2つの尤度の比L1/L2は、conservatismThrottleの大きい値について増加し、小さい値について減少しなければならない、すなわち、この関数は、膨張性の非線形性を示さなければならない。次に、likelihoodをローカル変数totalLikelihoodに加算し、範囲[0、1]の乱数を生成する。totalLikelihoodと乱数の積が、partialLikelihood未満である場合に、検討中のトラックが、ローカル変数currentBestChoiceで追跡される。
この処理を、トラックごとに繰り返す。この処理の終りに、システムは、currentBestChoiceによって表されるトラックを再生のために選択する。1つのトラックが選択され、各トラックが選択される確率が、そのトラックのlikelihood値をすべてのトラックノードのlikelihood値の合計で割ったものと等しくなることが保証される。
将来の購入に関する提案
ユーザが、十分な期間にわたって選択システムを使用した後に、グラフのノードのスコアリング値は、トラックの様々なグループをユーザがどれほど好むかによく相関する。+1に近いスコア値は、強い好みを示し、−1に近いスコア値は、強い嫌悪を示す。
ユーザが実際に所有しないCDに関するデータをグラフに一時的に挿入するように、システムを拡張することができる。その情報は、前に説明した外部メタデータソースの1つから導出することができる。グラフに挿入されたならば、CDのスコアを、CDの親ノードから継承した値を使用して計算することができる。CDが高いスコアを得る場合に、システムは、そのCDを買うようにユーザに推薦することができる。推薦の後に、そのCDデータは、システムのグラフから除去される。
削除するアイテムの提案
選択システムは、有限の容量の記憶機構を使用する。ある点で、システムの記憶容量を使い果たす可能性が高い。これが起きた時に、システムは、最も低いスコア/重み値を有するトラックまたはCDをリストし、これらを削除することを提案することができる。
事前シーディング
システムは、記憶済みトラックグラフのフィードバックを、プリファレンスデータを用いてユーザが「事前シード(seed)」できるようにすることができる。たとえば、検索モード中に、ユーザは、アーティスト全体、アルバム全体、またはジャンル全体が好きまたは嫌いであることをシステムに示すことができる。その場合、このフィードバックを、記憶済みトラックグラフの適当なノードに直接に適用することができる。この例では、事前シーディングによって、単に、ノードの初期値が設定され、この値は、トラック再生の通常の過程で、上で説明したように更新され続ける。
スマート状態回復
ユーザは、短い期間の間、「自動選択」モード以外のモードに切り替えることができる。たとえば、ユーザは、ラジオに切り替えて、交通状況または野球のスコアを調べることができる。ユーザが、短い期間(たとえば1時間)のうちに「自動選択」モードに戻る場合に、システムは、短期プリファレンス変数、現在のトラック情報、および再生ヒストリ情報を含む状態を、「自動選択」モードが中断された時と正確に同一に復元することができる。この時間期間の後に、システムは、再生リストヒストリおよび短期プリファレンス情報をリセットすることによって、起動直後のように振る舞う。
オンスクリーンディスプレイ
選択システムが、そのハードドライブからコンテンツを再生している(すなわち、CDモードおよびAM/FMモード以外のモード)時に、そのオンスクリーンディスプレイは、図16の状態図によって定義される。OSDモジュールは、システムのハードディスクからトラックを再生する時にアクティブ化される(1604)。「再生中」状態1601では、最小限の情報を表示することができる。ユーザが、「settings」ボタン1801(図18を参照されたい)を押す(1605)時に、現在再生されつつあるトラックに関するより詳細な情報が、表示されるか消される(図26を参照されたい)。ユーザが、エンターボタンを押す(1606)時に、現在再生されているアイテムに関する詳細な情報が示されている場合には、プリセット編集状態1602のプリセット編集画面が表示される(図19を参照されたい)。この画面で、ユーザは、プリセットにアイテムを追加または削除し(ユーザステーションの場合には、アイテムに肯定または否定のフィードバックを与え)、あるいは、プリセットを完全にクリアする(再生リストおよびユーザステーションを含む)ことができる。ユーザが、Enterを押す(1607)時に、システムは、確認のためにユーザに尋ね、ユーザがyesを押す場合に、OSDは、リセットメッセージを送り、再生中状態に戻る。ユーザがnoを選択するか、EnterではなくExitまたはSettingsを押す場合には、システムは、何も行わずに再生中状態に戻る(1607)。
プリセット編集状態または再生中状態から、ユーザが、「Search」1812を押す(1609、1610)時に、システムは、検索モード1603に入り(1609)(上の「動作のモード」を参照されたい)、ユーザが、再生するトラックを検索できるようにする。検索モードから、ユーザがExitまたはSearchを押す時に、モジュールは、何も行わずに再生中モードに戻る(1608)。ユーザが、PlayまたはEnterを押す場合には、モジュールは、再生リストをリセットし、現在の再生状態に「PlayList」をセットする。OSDモジュールは、再生中モードに戻る(1608)。ユーザが、Settingsボタンを押す場合には、システムは、現在再生されているアイテムに関する詳細な情報を表示し、再生中状態に戻る(1608)。
再生状態モジュール
再生状態モジュールのいくつかの実施形態は、図4に示されているように動作することができる。このモジュールは、ユーザがChangerまたはSmart Playを押す時、またはトラックが記憶された時に、非ハードディスクソース401から再生中状態407に入る(403)。システムが最後に再生モードであったのがk分未満である(kは定数、たとえば5分)場合に、このモジュールは、前の続きを再生し、そうでない場合には、先頭から開始する。トラックの終りに達した時、またはユーザがトラックスキップを押す時に、システムは、残りのトラックがある場合に次のトラックに進み、再生中モードに戻る(406)。ユーザが、Previous trackを押し、トラックの先頭から事前に指定される時間(たとえば3秒)を超える時間が経過している場合、またはシステムが既に最初のトラックを再生している場合には、システムは、現在のトラックを最初から再生し、再生中モードに戻る(404)。システムが再生中であった時間の長さが閾値未満であり、前のトラックがある場合には、システムは、前のトラックにスキップし、再生中に戻る(404)。ユーザが、再生モード中にPause/Playを押す場合には、モジュールは、一時停止モード416に切り替わり(411)、再生を一時停止する。トラックの終りに達し、再生すべきトラックがこれ以上ない場合、またはユーザがStopを押した場合には、モジュールは、停止モードに切り替わる(413)。
再生が一時停止(416)されている間に、ユーザが「Previous track」を押し、再生が、事前に指定される時間(たとえば3秒)を超えて進行する場合、またはモジュールが既に最初のトラックを再生している場合に、モジュールは、現在のトラックを先頭から開始するが、一時停止モードに留まる(405)。再生時間が閾値未満であり、前のトラックがある場合には、モジュールは、前のトラックに切り替え、一時停止モードに留まる(405)。ユーザが「Skip Track」を押し、次のトラックがある場合には、システムは、次のトラックにスキップし、一時停止モードに留まる(417)。モジュールが一時停止している間にユーザが「Pause/Play」を押す場合には、モジュールは、再生中モードに切り替わる(411)。再生が一時停止されている間に、ユーザが、Previous Track、Next Track、Fast Forward、またはRewindを押したままにする場合には、モジュールは、サイレントFF/RWモード429に切り替わる(419)。事前に指定されたタイムアウト(たとえば5分)の後、またはユーザがstopを押した場合に、モジュールは、停止モードに切り替わる(414)。ユーザが、「Play/Pause」を押す場合に、システムは、再生を再開する(410)。
サイレントFF/RWモード429では、モジュールが、無音で早送りまたは巻戻しを行う。トラックの終りに達し、再生すべきトラックがまだある(巻戻しの場合には現在のトラックの前、早送りの場合には現在のトラックの後に)場合に、次のトラックの末尾または前のトラックの先頭までスキップし、無音で巻戻しまたは早送りを再開する(426)。ユーザがボタンを押したままに保持する限り、これを継続する(427)。トラックの末尾に達し、再生すべきトラックがもうない場合には、モジュールは、「停止」モードに切り替わる(428)。ユーザがボタンを離す時に、モジュールは、一時停止状態に戻る(418)。トラックの末尾に達し、再生すべきトラックがもうない場合に、モジュールは、停止モード425に入る(428)。
停止モード425では、ユーザが、Next TrackまたはPrevious trackを押し、次のトラックまたは前のトラックがある場合に、システムは、そのトラックにスキップし、停止モードに留まる(424)。ユーザが、Playを押す場合には、システムは、現在のトラックを先頭から再生し始める(412)。ユーザが、fast forward、rewind、next track、またはprevious trackを押し、保持する場合に、システムは、FF/巻戻しモード430に入る(423)。ユーザが、pauseを押す場合に、システムは、経過時間に0をセットし、現在のトラックについて一時停止モードに入る(415)。
再生モードにいる間に、ユーザがfast forward、rewind、previous track、またはnext trackを押し、保持する場合に、システムは、FF/巻戻しモード430に切り替わる(408)。モジュールは、聞こえるようにトラックを早送りまたは巻戻しする。モジュールは、ボタンが保持されている間、このモードに留まる(421)。モジュールは、トラックの末尾に達し、再生すべきトラックがまだある場合に、巻戻しの場合には前のトラックの末尾、早送りの場合には次のトラックの先頭に切り替え、現在の状態を継続する(420)。ユーザがボタンを離す時に、システムは、再生モードに切り替わる(409)。
ソースボタンが押される(テープ、AM/FMラジオ、またはCD/DVD)時に、システムは、トラックの現在の経過時間を保存した後に、そのモードに切り替わる(402)。
変形形態
様々な実施形態を説明したが、他の実施形態も、請求項の範囲に含まれる。
たとえば、検索または使用されるアイテムの本体およびアイテムを互いに階層的にまたは他の形で結び付けるメタデータを、ユーザの明示的または暗黙のプリファレンスに基づく類似する選択の対象にすることができる。たとえば、アイテムのデータベースの場合に、ユーザは、普通の検索を表すことができる。システムは、検索から最初の「ヒット」を作り、ユーザに表示することができる。ユーザは、最初のヒットに関する満足または不満足を示すことができる。システムは、メタデータによって示される関係に基づいて、最初の検索から生じたアイテムを再スコアリングする。システムは、その場合、音楽に関して説明したシステムで次のトラックが選択されるのに似た形で、ユーザにもう1つのヒットを引き渡すことができる。上で説明したシステムが、ユーザが関心を持つトラックを引き渡すためにそれ自体を適応させるのと同一の形で、データベースシステムは、データベース検索者が関心を持つヒットを引き渡すためにそれ自体を適応させることができる。そのようなデータベースの特定の例を使用して、特許データベースで特許を検索することができる。名称、譲受人、特許番号、分類、記載された従来技術、意匠特許または実用新案であるかどうか、発明者、および他の情報を取り込むメタデータを使用することができる。図34に、そのような変形形態の記憶済みトラックツリーの例の構造を示す。
もう1つの実施例は、ワールドワイドウェブのサーフィンである。ウェブページに関連するメタデータに、IPアドレス、タイトル、長さ、言語、ドメイン名、および他の情報を含めることができる。検索がヒットを作る時に、ユーザは、それが自分の必要にあうか否かを示すことができる。システムは、より関連するヒットをユーザのブラウザに引き渡すように、すばやく適応することができる。
いくつかの実施例を上で説明したが、他の実施形態も、請求項の範囲に含まれる。