図1は、本発明の実施形態に係るオーディオ再生システムの構成を示すブロック図である。オーディオ再生システム1は、オーディオデータをストリーミング配信するオーディオサーバ2と、オーディオサーバ2からストリーミング配信されたオーディオデータを再生する複数のオーディオクライアント3と、が有線LANまたは無線LANによりネットワーク接続された構成である。図1には、一例として、3台のオーディオクライアント3a,3b,3cがオーディオサーバ2に無線接続され、2台のオーディオクライアント3d,3eがオーディオサーバ2にハブ4を介して有線接続された構成を示している。なお、以下の説明では、オーディオクライアント3a〜3eをまとめた場合や、クライアント装置を特定しない場合には、オーディオクライアント3と称する。
オーディオサーバ2は、光ディスクドライブ11、ROM12、ハードディスクドライブ(以下、HDDと称する。)13、RAM14、CPU15、LAN通信部16(無線通信部16m、有線通信部16y)、操作部17、表示部18、A/Dコンバータ19、ディジタルオーディオインタフェイスレシーバ(以下、DIRと称する。)20、サンプルレートコンバータ(以下、SRCと称する。)21、D/Aコンバータ22を備えている。
光ディスクドライブ11は、CD、DVD、Blu-ray Disc(登録商標)(BD)、High Definition DVD (HD DVD(登録商標))などの光ディスクに記録されたオーディオデータを読み取る装置である。
ROM12は、CPU15が実行するプログラムを記憶する。
HDD13は、オーディオクライアント3から送信されたオーディオデータを記憶する。また、オーディオサーバ2では、光ディスクドライブ11で再生したオーディオデータ、及びDIR20に接続したMDプレーヤなどのディジタル出力の外部接続機器やA/Dコンバータ19に接続したカセットプレーヤなどのアナログ出力の外部接続機器から入力されたオーディオデータを記憶する。さらに、HDD13は、CDやDVDなどに記録された楽曲のオーディオデータを記録するときに、楽曲情報を取得するための楽曲情報データベース100を記憶している。加えて、HDD13は、エンコードされた各オーディオデータの各種情報や、楽曲情報データベース100から取得した楽曲情報を管理する管理テーブル101などを記憶する。
RAM14は、光ディスクドライブ11、HDD13などから出力されたデータを一時的に記憶するバッファ14bを有している。
CPU15は、オーディオサーバ2の各部を制御する。また、CPU15は、PCM形式のオーディオデータをMP3形式のオーディオデータにエンコードする機能、MP3形式のオーディオデータをPCM形式のオーディオデータにデコードする機能を備えている。したがって、CPU15は、光ディスクドライブ11から出力されたPCM形式のオーディオデータを、所定のビットレートのMP3形式のオーディオデータにエンコード(圧縮)して、またはエンコードせずにそのままHDD13へ出力する。また、CPU15は、HDD13に記録されたMP3形式のオーディオデータをデコードしてD/Aコンバータ22へ出力する。さらに、CPU15は、MP3形式のオーディオデータをデコードしてまたはMP3形式のままLAN通信部16へ出力する。加えて、CPU15は、PCM形式のディジタルオーディオデータをD/Aコンバータ22へ出力して、楽曲の音声を再生する。
ここで、オーディオ再生システム1では、利用可能なオーディオデータの圧縮形式はMP3に限るものではなく、SoundVQ(登録商標)、WMA、AACやその他の圧縮形式も利用可能であるが、以下の説明ではオーディオデータをMP3形式で圧縮するように設定した場合について説明する。
LAN通信部16は、無線通信部16m及び有線通信部16yを備えている。無線通信部16mは、IEEE802.11a/b/g及びTCP/IPを通信プロトコルに用いてオーディオクライアント3a,3b,3cと無線通信する。有線通信部16yは、イーサネット(登録商標)(IEEE802.3)及びTCP/IPを通信プロトコルに用いてオーディオクライアント3d,3eと有線通信する。
無線通信部16m及び有線通信部16yは、例えば、オーディオサーバ2に記録するためにオーディオクライアント3から送信された楽曲などのオーディオデータを受信する。また、オーディオクライアント3で楽曲を再生するために必要な楽曲リストやオーディオデータの送信要求を受信する。また、両通信部は、オーディオクライアント3から楽曲の配信要求を受信し、その楽曲の圧縮オーディオデータをパケット単位でオーディオクライアント3に対してストリーミング配信する。
操作部17は、ユーザによる各種操作を受け付ける。例えば、オーディオデータ記録時の品位の設定やCDに記録された楽曲のHDD13への記録など様々な操作を受け付ける。
表示部18は、ユーザへの伝達事項や再生可能な楽曲リストなどを表示する。
A/Dコンバータ19は、カセットプレーヤなどの外部接続機器が出力するアナログオーディオデータを、PCM形式のディジタルオーディオデータに変換する。
DIR20は、MDプレーヤなどの外部接続機器が出力するディジタルオーディオデータを受信する。
SRC21は、DIR20で受け付けたディジタルオーディオデータのサンプルレート(サンプリング周波数)を変換する。
D/Aコンバータ22は、CPU15が出力したPCM形式のディジタルオーディオデータをアナログオーディオデータに変換して、外部のアンプ6に出力して、楽曲の音声をスピーカ7から放音させる(再生させる)。
次に、オーディオクライアント3(3a〜3e)は、LAN通信部31(無線通信部31m、有線通信部31y)、RAM32、ROM33、光ディスクドライブ34、CPU35、操作部36、表示部37、A/Dコンバータ38、DIR39、SRC40、D/Aコンバータ41、アンプ42、及びスピーカ43を備えている。なお、オーディオクライアント3a〜3eは全て同じ構成であるが、図1にはオーディオクライアント3a,3dのみ詳細な構成を示している。
LAN通信部31は、無線通信部31m及び有線通信部31yを備えている。無線通信部31mは、IEEE802.11a/b/g及びTCP/IPを通信プロトコルに用いてオーディオサーバ2と無線通信する。有線通信部31yは、イーサネット(登録商標)(IEEE802.3)及びTCP/IPを通信プロトコルに用いてオーディオサーバ2と有線通信する。無線通信部31m及び有線通信部31yは、オーディオサーバ2に対して、光ディスクドライブ34で再生した楽曲のオーディオデータを送信する。また、オーディオサーバ2に対して楽曲リストの配信要求を送信し、楽曲リストを受信する。また、楽曲の配信要求を出力し、ストリーミング配信された楽曲のオーディオデータ(パケット)を受信してRAM32へ出力する。
RAM32は、LAN通信部31を介してオーディオサーバ2に送信するオーディオデータを一時的に記憶したり、オーディオサーバ2から送られてきた楽曲のオーディオデータを一時的に記憶したりするバッファ32bが設けられている。またRAM32は、オーディオサーバ2から送られてきた楽曲リストを一時的に記憶する。
ROM33は、CPU15が実行するプログラムを記憶する。
光ディスクドライブ34は、CD、DVD、Blu-ray Disc(BD)、High Definition DVD (HD DVD)などの光ディスクに記録されたオーディオデータを読み取る装置である。
CPU35は、オーディオクライアント3の各部を制御する。また、CPU35は、PCM形式のオーディオデータをMP3形式のオーディオデータにエンコードする機能、MP3形式のオーディオデータをPCM形式のオーディオデータにデコードする機能を備えている。したがって、CPU35は、光ディスクドライブ34が出力したPCM形式のオーディオデータを、所定のビットレートのMP3形式のオーディオデータにエンコード(圧縮)して、またはエンコードせずにそのままRAM32へ出力する。また、CPU35は、RAM32に蓄積されたMP3形式のオーディオデータを一定量毎に読み出して、このオーディオデータをPCM形式のオーディオデータにデコード(伸張)して、D/Aコンバータ41へ出力する。
操作部36は、ユーザによる各種操作を受け付ける。例えば、光ディスクドライブ34で再生した楽曲のオーディオデータの送信や、楽曲リストの配信要求や、楽曲の再生などの操作を受け付ける。
表示部37は、ユーザに伝達する事項や楽曲などの情報を表示する。
A/Dコンバータ38は、カセットプレーヤ8などの外部接続機器が出力するアナログオーディオデータを、PCM形式のディジタルオーディオデータに変換する。
DIR39は、MDプレーヤ9などの外部接続機器が出力するディジタルオーディオデータを受信する。
SRC40は、DIR39で受け付けたディジタルオーディオデータのサンプルレート(サンプリング周波数)を変換する。
D/Aコンバータ41は、CPU35が出力したPCM形式のディジタルオーディオデータをアナログオーディオデータに変換して、アンプ42に出力する。
アンプ42は、D/Aコンバータ41から出力されたアナログオーディオデータを増幅してスピーカ43へ出力する。
スピーカ43は、D/Aコンバータ41から出力された音声を放音する(再生する)。
オーディオ再生システム1は、このような構成により、オーディオサーバ2から各オーディオクライアント3に対して、個別に異なる楽曲のオーディオデータをストリーミング配信することができるように設定されている。すなわち、各オーディオクライアント3a〜3eからそれぞれ楽曲A,B,C,D,Eの配信要求があった場合でも、オーディオサーバ2は各オーディオクライアント3の要求に応じた楽曲をストリーミング配信する。また、オーディオサーバ2から各オーディオクライアント3へ同じ楽曲のオーディオデータを同時に、または時間をずらしてストリーミング配信することも可能である。
次に、本発明の実施形態に係るオーディオ再生システムにおけるオーディオデータの記録・配信・再生の動作について概略を説明する。オーディオ再生システム1では、従来のシステムと同様に、オーディオサーバ2に接続した外部接続機器や光ディスクドライブ11で再生したオーディオデータをHDD13に予め記録しておき、これらのオーディオデータを各オーディオクライアント3にストリーミング配信する。また、オーディオ再生システム1では、従来のシステムとは異なり、オーディオクライアント3の光ディスクドライブ34で再生したオーディオデータや、オーディオクライアント3に接続した外部接続機器で再生したオーディオデータを、ネットワークを介してオーディオサーバ2に記録することができる。さらに、オーディオクライアント3は、オーディオサーバ2へ楽曲のオーディオデータを送信する際に、どのオーディオクライアント3から送られてきたオーディオデータであるかを判別するための送信元情報を送信するので、オーディオサーバ2は、楽曲の情報とともに送信元情報を管理テーブル101で管理する。加えて、オーディオクライアント3では、楽曲のオーディオデータを録音する際に、楽曲を公開するオーディオクライアント3を指定する公開情報を設定することが可能である。この公開情報は、オーディオサーバ2において前記の送信元情報とともに管理テーブル101で管理され、この公開情報に基づいてオーディオクライアント3へ配信する楽曲の公開制限が行われる。また、オーディオクライアント3は、オーディオサーバ2に対して現在配信可能な楽曲リストやそのオーディオクライアント3から録音した楽曲のリストを配信要求することができる。また、オーディオクライアント3は、自身で記録を行った楽曲リストを送信要求することが可能であり、オーディオサーバ2はこのような楽曲リストの送信要求を受け付けた際には、管理テーブルを参照して、そのオーディオクライアント3が送信元である楽曲のみの楽曲リストを送信する。
したがって、各オーディオクライアント3を使用するユーザは、オーディオサーバ2の設置場所まで行かなくても楽曲を録音することができる。また、自分で録音した楽曲から再生したい楽曲をピックアップしたい場合などに、オーディオサーバ2で管理する楽曲数が多くなっても容易に楽曲を検索することができる。さらに、楽曲を再生可能なオーディオクライアント3を制限することができるので、簡単にセキュリティ機能やパレンタルロック機能を設定することができる。
以下、オーディオクライアント3からオーディオサーバ2へのオーディオデータの記録手順、及び楽曲の配信・再生手順についてその詳細を説明する。
(1)オーディオデータの記録手順
図2は、オーディオクライアント及びオーディオサーバにおけるオーディオデータの流れを示すブロック図である。以下の説明では、オーディオクライアント3dのDIR39に接続されたMDプレーヤ9で楽曲を再生して、オーディオサーバ2のHDD13にその楽曲のオーディオデータを記録する場合を例に挙げて説明する。
ユーザは、オーディオクライアント3dの操作部36を操作して録音設定を行うことで、オーディオクライアント3dからオーディオサーバ2へオーディオデータを録音することができる。すなわち、ユーザは、録音設定として、光ディスクドライブ34、A/Dコンバータ38またはDIR39に接続した外部接続機器のいずれかを、オーディオデータを再生する機器として設定する。
オーディオクライアント3dは、オーディオサーバ2へ楽曲のオーディオデータを送信する際には、予め設定されているオーディオクライアント3dのID情報を送信元情報として送信する。これにより、オーディオサーバ2では、このID情報(送信元情報)を各楽曲と対応付けて管理テーブル101で管理するので、どのオーディオクライアント3によって各楽曲が記録されたか(送信されたか)を容易に判断できる。
図3は、オーディオサーバの管理テーブルの一例である。オーディオサーバ2は、図3(A)に示すような管理テーブル101aをHDD13に記録しており、HDD13に楽曲を記録(録音)すると、曲ID,曲名,アーティスト名,送信元情報をそれぞれ対応付けて管理テーブル101で管理する。例えば、図3(A)に示した管理テーブル101において、曲ID4の楽曲は、オーディオクライアント3dから録音されたことがすぐに判別できる。
また、ユーザは、他のどのオーディオクライアント3に録音する楽曲を公開するかを示す公開情報を設定することができる。オーディオクライアント3dのCPU35は、操作部36から公開情報を設定する操作が行われたことを検出すると、オーディオサーバ2から楽曲のオーディオデータを現在配信可能なオーディオクライアント3のIDやユーザの情報を問い合わせる信号をLAN通信部31からオーディオサーバ2へ送信する。オーディオサーバ2は、この問い合わせ信号を受信すると、オーディオデータを現在配信可能な各オーディオクライアント3(例えば、オーディオクライアント3a〜3e)のIDやユーザ名などの配信可能情報をオーディオクライアント3dへ送信する。オーディオクライアント3dは、配信可能情報を受信すると、表示部37に公開可能な各オーディオクライアント3のIDやユーザ名などの情報を表示する。ユーザは、表示部37に表示された情報を確認して、アルバム毎や楽曲毎に楽曲を公開するか否かを操作部36から設定することができる。
オーディオサーバ2は、図3(B)に示すような管理テーブル101bをHDD13で管理しており、HDD13に楽曲を記録(録音)すると、曲ID,曲名,アーティスト名,送信元情報,公開情報フラグをそれぞれ対応付けてこの楽曲の情報を管理する。例えば、曲ID3の楽曲は、オーディオサーバ2,オーディオクライアント3b,オーディオクライアント3cにのみ公開されており、他のオーディオクライアント3a,3d,3eには公開しないように設定されている。
また、楽曲の公開情報の管理方法としては、図3(B)に示したように楽曲毎に1台ずつ公開の可否を設定する方法以外に、楽曲を公開するグループを予め設定しておき、そのグループ名を公開情報に設定することもできる。例えば、図3(D)に示すように、公開情報のグループ名及びグループを構成する装置を、別途HDD13に設けたグループテーブル102に定義しておく。図3(D)では、オーディオサーバ2及び全オーディオクライアント3(3a〜3e)へ楽曲を公開する場合のグループ名をallと設定する。また、特定のオーディオクライアント3a,3b,3dへ楽曲を公開する場合のグループ名をgroup1と設定する。さらに、特定のオーディオクライアント3c,3d,3eへ楽曲を公開する場合のグループ名をgroup2と設定する。加えて、録音を行ったオーディオクライアント3にのみ楽曲を公開(自分にのみ公開)する場合のグループ名をownerと設定する。このように設定した場合、例えば図3(C)に示すように、曲ID16の楽曲は、公開情報分類フラグがownerに設定されているので、送信元であるオーディオクライアント3aにのみ公開される。また、曲ID17の楽曲は、公開情報分類フラグがallに設定されているので、オーディオサーバ2及びオーディオサーバ2から楽曲を配信可能な全オーディオクライアント3に公開される。さらに、曲ID18の楽曲は、公開情報分類フラグがgroup1に設定されているので、図3(D)に示したグループテーブル102に基づいて、オーディオクライアント3a,オーディオクライアント3b,オーディオクライアント3dに公開される。加えて、曲ID19の楽曲は、公開情報分類フラグがgroup2に設定されているので、オーディオクライアント3c,オーディオクライアント3d,オーディオクライアント3eに公開される。
また、楽曲を公開するグループの設定方法としては、オーディオクライアント3のユーザの年齢を登録しておき、このユーザの年齢に応じて各クライアント装置をグループ分けすることも可能である。例えば、12歳未満のユーザが使用するオーディオクライアント3をgroupA、12歳以上18歳未満のユーザが使用するオーディオクライアント3をgroupB、18歳以上のユーザが使用するオーディオクライアント3をgroupCとして設定することが可能である
。
また、上記のように1曲毎に公開情報を設定する方法の他に、オーディオクライアント毎に公開情報を設定することも可能である。例えば、図3(E)に示す公開ルールテーブル103のように、オーディオクライアント3aから録音した楽曲はオーディオクライアント3aのみに(自分自身のみに)公開し、オーディオクライアント3bから録音した楽曲はオーディオクライアント3a,3b,3dにのみ公開し、オーディオクライアント3dから録音した楽曲は全オーディオクライアント3に公開するように予め設定しておく。これにより、リビングルームなど複数のユーザが使用するオーディオクライアント3では、全オーディオクライアント3に公開しても問題ない楽曲を再生することが多いので、録音時に特に公開情報を設定しなくても一括して全オーディオクライアント3に楽曲を公開することができる。
上記のようにオーディオクライアント毎に公開情報を設定する場合には、曲管理テーブル101に公開情報を追加するのではなく、図3(E)に示すような公開ルールテーブル103を別途設定する。そして、オーディオサーバ2が、このテーブルにしたがって楽曲を記録・配信するように設定する。
次に、オーディオ再生システム1におけるオーディオデータの経路及びバッファリングについて説明する。オーディオクライアント3に接続されたMDプレーヤ9は、楽曲が記録されたMDの再生操作が行われると、MDを再生して楽曲のディジタルオーディオデータをオーディオクライアント3のDIR39へ出力する。DIR39は、MDプレーヤ9から出力されたオーディオデータのバイフェーズマーク信号を復調して、コーデックフォーマットに変換し、SRC40へ出力する。SRC40は、システムの動作クロックに合わせてデータ変換を行って、PCM形式のオーディオデータを出力する。CPU35は、SRC40が出力したオーディオデータを受け取ると、一旦RAM32に設けられたバッファ32bにオーディオデータを蓄積する。ここで、MDプレーヤ9が出力したオーディオデータがDIR39・SRC40・CPU35を介してRAM32に送られる経路を図2に示すように経路(1)と称する。
CPU35は、操作部36においてデータの圧縮処理を行うように設定されていた場合には、PCM形式のオーディオデータをMP3形式のオーディオデータにエンコードしてからRAM32のバッファ32bに送信してオーディオデータを蓄積させる。
CPU35は、バッファ32bのデータ量を監視しており、一定量(閾値)以上になると、オーディオデータをバッファ32bから読み出して、LAN通信部31へ転送する。また、このとき、前記のように、オーディオクライアント3のID情報を送信する。ここで、RAM32のバッファ32bからCPU35を介してLAN通信部31へオーディオデータを送信する経路を経路(2)と称する。
LAN通信部31は、イーサネット(登録商標)の規格に則り、データのパラレル/シリアル変換を行って、イーサネット(登録商標)5(ハブ4)を介してオーディオサーバ2へ送出される。オーディオサーバ2のLAN通信部16は、オーディオクライアント3から送られてきたオーディオデータを受信すると、イーサネット(登録商標)の規格に則り、オーディオデータをシリアルパラレル変換して、RAM14のバッファ14bに蓄積する。ここで、オーディオクライアント3のLAN通信部31からイーサネット(登録商標)5を介して、オーディオサーバ2のLAN通信部16へオーディオデータを送信する経路を経路(3)と称する。また、LAN通信部16からCPU15を介してRAM14にオーディオデータを送信する経路を経路(4)と称する。
CPU15は、バッファ14bに蓄積したデータ量を監視しており、一定量(閾値)以上になったら、バッファ14bからHDD13にデータを転送して、HDD13にこのオーディオデータを記録する。ここで、RAM14からCPU15を介してHDD13へオーディオデータを送信する経路を経路(5)と称する。
図4は、バッファのメモリマップの一例、及びバッファ量と経過時間の関係を示す図である。図4において、Buffer_full は最大バッファサイズ、Buffer_thlは転送処理開始の閾値を示す。オーディオ再生システム1では、上記のようにRAMにバッファを設けてバッファリングを行うことにより、あるまとまった処理単位でデータ転送を行うことができるので、処理効率を向上させることができる。また、イーサネット(登録商標)5が何らかの理由で混み合っていてデータ転送中に転送が滞ることがあった場合でも、データのオーバフローを防止できる。さらに、CPU15は、データ転送のみを行っているのではなく他の処理も行っているので、他のタスクを実行中にデータがオーバフローするのを防止できる。
しかしながら、オーディオクライアント3において、図2に示す経路(1)では、MDプレーヤ9でMDを再生すると一定時間毎に一定量のオーディオデータがバッファ32bへ送られてくるため、バッファオーバフローの防止対策が必要である。そこで、オーディオクライアント3では、バッファの最大容量が大きなものを採用するとともに、オーディオデータの転送処理を開始する閾値を低く設定して、バッファ32bに蓄積されたデータ量の増加をできるだけ抑えて、バッファ32bができるだけ空になるように制御する。
図4(A)における期間1は、データ転送が滞りなく順調に行われている場合を示す。この状態では、経路(1)を通じて送られてきたオーディオデータがRAM32のバッファ32bに蓄積される。CPU35は、バッファ残量を監視しており、バッファのオーディオデータ量が閾値Buffer_thlに達すると、経路(2)にてバッファ32bからLAN通信31へデータ転送を行う。期間1では、この処理を繰り返し行っている。
一方、図4(A)おける期間2は、何らかの理由で経路(2)におけるデータ転送が滞った場合を示している。例えば、イーサネット(登録商標)を流れるデータが混み合っている場合や、CPU35が他のタスク処理に時間を取られている場合などである。この場合には、経路(1)では一定時間毎に一定量のデータが転送されるが、経路(2)のデータ転送が捗らないため、バッファ32bでは蓄積されるデータが閾値Buffer_thlに達してもデータ転送を行うことができず、この閾値を超えてさらにデータが蓄積される。CPU35は、イーサネット(登録商標)を流れるデータ量が減ったり、他のタスク処理が完了して経路(2)のデータ転送処理を行うことができるようになったりすると、バッファ32bのデータ量をできるだけ削減すべく転送処理を行う(実線の処理)。
一方、CPU35は、引き続き、経路(2)におけるデータ転送が実施できない場合には、図4(A)において点線で示すように、バッファ32bのデータ量が最大バッファサイズBuffer_full に達してしまう可能性がある。このとき、バッファ32bのサイズをできるだけ大きくしておくことで、バッファオーバフローエラーの発生を防止することが可能となる。
しかしながら、引き続き経路(1)においてデータが転送されると、バッファ32bがオーバフローしてオーディオデータの記録が失敗となる。この場合には、CPU35は、バッファオーバフローエラーが発生したために録音が失敗したことを通知する内容を表示部37に表示させる。
オーディオサーバ2においては、経路(3)のデータ転送レートが、平均的にみて経路(1)のデータ転送レートと同じ値になる。そのため、オーディオサーバ2は、オーディオクライアント3と同様にバッファリングを行えばよい。但し、オーディオサーバ2は、オーディオクライアント3が複数接続されており、同時に複数のオーディオクライアント3へオーディオデータをストリーミング配信することがある。また、オーディオサーバ2は、光ディスクドライブ11でCDに記録されたオーディオデータを読み出したり、再生したオーディオデータの録音処理を行ったりする場合があり、これらの場合にはオーディオサーバ2における負荷が重くなる。そのため、オーディオサーバ2におけるバッファサイズBuffer_full や閾値Buffer_thlの値は、オーディオクライアント3のバッファとは異なる値を設定する必要がある。
また、オーディオ再生システム1では、オーディオサーバ2からオーディオクライアント3の外部入力を録音する際に、オーディオサーバ2で、その音声データを再生してスピーカ7から音声を放音しながら録音することができる。この場合には、音切れが発生するのを防止するために、ある程度オーディオデータをバッファに蓄積した状態でオーディオデータを再生する必要がある。また、オーディオクライアント3において、外部接続機器や光ディスクドライブ34でCDなどの楽曲を少し再生してから録音を開始したくなった場合に、最初からもう一度再生をやり直さなくても楽曲の最初から録音が可能な遡り録音(過去録音)機能を設けた場合には、楽曲の最初から数秒〜数分程度のオーディオデータをバッファに蓄積しておく必要がある。これらの場合には、前記図4(A)に基づいて説明した方法とは異なり、以下のようにバッファ管理を行う。
図4(B)に示すように、オーディオ再生システム1では、音切れが発生するのを防止するために、常に一定量のデータを蓄積した状態でバッファリングを行う。すなわち、図4(A)において、単純にオフセットが加わったような形になり、バッファ32bの閾値Buffer_thlの値は、図4(A)よりも大きくなる。
また、バッファ制御を適正に行うことで、遡り録音も可能になる。この場合には、バッファサイズに応じて、楽曲の始めを再生してからいつまで録音可能であるかが変化するが、例えば、3分程度のオーディオデータをバッファリングできるようにバッファサイズの大きなメモリを設定すると、楽曲を再生してから3分以内に録音操作を開始することで、オーディオデータを最初からもう一度再生し直さなくても、楽曲の最初からオーディオデータを録音することができる。
なお、オーディオクライアント3において、光ディスクドライブ34でCDなどの楽曲を再生途中に録音を開始する場合には、再生用のデータを読み出してバッファリングし、光ディスクドライブ34でCDなどの光ディスクから楽曲のオーディオデータの先頭からの読み出しと、再生用データの読み出しと、を交互に行うようにしても、遡り録音は可能である。
以上の説明では、MDプレーヤ9でMDを再生した場合について説明したが、本発明はこれに限るものではなく、A/Dコンバータに接続したアナログ出力の外部接続機器で再生したオーディオデータや、光ディスクドライブ34で再生したオーディオデータを記録することも可能である。オーディオクライアント3において、A/Dコンバータ38に接続されたカセットプレーヤ8などの外部接続機器が出力するアナログオーディオデータをオーディオサーバ2で録音する場合には、A/Dコンバータ38がアナログオーディオデータをPCM形式のディジタルオーディオデータに変換し、CPU35がバッファ32bにオーディオデータを蓄積する。そして、MDプレーヤ9でMDから読み出したオーディオデータを処理する場合と同様に処理を行う。
また、オーディオクライアント3では、CDやDVDなどの光ディスクに記録された楽曲のオーディオデータを録音する場合には、光ディスクドライブ34が光ディスクからオーディオデータを読み出してCPU35へ出力し、CPU35がバッファ32bにオーディオデータを蓄積する。そして、MDプレーヤ9でMDから読み出したオーディオデータを処理する場合と同様に処理を行う。
ここで、オーディオクライアント3では、光ディスクドライブ34で光ディスクのオーディオデータを再生するのでなければ、すなわち、光ディスクからオーディオデータを読み出すだけであれば、バッファ32bの状態に応じて光ディスクドライブ34におけるオーディオデータの読み出しを一時的に停止することが可能である。つまり、オーディオクライアント3においてバッファ32bがオーバフローするおそれがある場合には、光ディスクドライブ34におけるオーディオデータの読み出しを停止することで、オーバフローを未然に防ぐことができる。したがって、バッファ32bのサイズを小型化しても、問題なくオーバフローを防止することができる。
また、オーディオ再生システム1では、オーディオクライアント3の光ディスクドライブ34でCDやDVDに記録された楽曲を再生すると、全ての楽曲のオーディオデータをオーディオサーバ2に転送して、HDD13に記録するように設定することが可能である。この場合には、図3に示したように、管理テーブル101に予め公開情報を設定しておく必要がある。
次に、楽曲のオーディオデータの記録手順について、フローチャートに基づいて説明する。図5は、オーディオ再生システムのオーディオデータの記録手順を説明するためのフローチャートである。ここで、オーディオ再生システム1で利用可能なオーディオデータの圧縮形式としては、前記のようにMP3に限るものではなく他の圧縮形式を用いることも可能であるが、以下の説明では圧縮形式としてMP3形式のみを利用するように設定している場合について説明する。
ユーザは、オーディオ再生システム1の設置及び初期設定が完了すると、オーディオクライアント3dの光ディスクドライブ34にCDをセットし、操作部36を操作してCDに記録されたオーディオデータを、オーディオサーバ2のHDD13へ記録させる操作(録音操作)を行う。オーディオクライアント3dのCPU35は、光ディスクドライブ34にCDがセットされて、操作部36で録音操作が行われたことを検出すると(s1)、公開情報を設定するか否かを確認する内容を表示部37に表示させて、操作部36で公開情報が設定されるまで待機する(s2)。CPU35は、操作部36において公開情報の設定を行わない旨の操作が行われたことを検出すると、オーディオデータの送信時の形式を確認する内容を表示部37に表示させる(s7)。
一方、CPU35は、公開情報を設定する旨の操作が行われたことを検出すると、オーディオサーバ2が現在オーディオデータを配信可能な全オーディオクライアント3のリストの送信要求をLAN通信部31からオーディオサーバ2へ送信する(s3)。
オーディオサーバ2は、オーディオクライアント3dからの送信要求をLAN通信部16で受信すると(s21)、現在オーディオデータを配信可能な全オーディオクライアント3のリストを、LAN通信部16からオーディオクライアント3dへ送信する(s22)。
オーディオクライアント3dは、このリストをLAN通信部31で受信すると(s4)、公開情報の設定を促す内容を表示部37に表示させる(s5)。ユーザは、表示に従い操作部36を操作して楽曲を公開するオーディオクライアント3を設定する。CPU35は、操作部36から公開情報が設定されたことを検出すると(s6)、続いて、オーディオデータの送信時の形式を確認する内容を表示部37に表示させる(s7)。ユーザは、表示に従い操作部36を操作して楽曲をPCM形式またはMP3形式のいずれで送信するかを設定する。
CPU35は、操作部36からPCM形式のオーディオデータを送信するように設定されたか、またはMP3形式にエンコードしてオーディオデータを送信するように設定されたかを確認して(s8)、録音処理を開始する(s9)。すなわち、光ディスクドライブ34は、ユーザが指定した楽曲のオーディオデータ(PCMデータ)をCDから読み出してCPU35へ出力する。CPU35は、光ディスクドライブ34から送信されたオーディオデータを、バッファ32bに一時的に記憶させる(s9)。例えば、160kbpsのMP3形式でエンコードするように設定されている場合には、CPU35は、PCM形式のオーディオデータを160kbpsのMP3形式でオーディオデータにエンコードして、RAM32へ出力する。また、CPU35は、PCM形式のオーディオデータを送信する場合には、そのままRAM32へ出力する。
CPU35は、RAM32のバッファ32bにおけるオーディオデータ量を監視しており、バッファ32bのデータ量が閾値Buf_thl に達すると、LAN通信部31からオーディオサーバ2へMP3形式またはPCM形式のオーディオデータを一定量ずつ、オーディオクライアント3dのID情報とともに出力する(s10)。
オーディオサーバ2は、ユーザが指定した楽曲のオーディオデータの送信が終了するまで(s11)、ステップs9〜s11の処理を楽曲毎に行う。
一方、オーディオサーバ2のCPU15は、LAN通信部16でMP3形式またはPCM形式のオーディオデータ及びオーディオクライアント3dのID情報を受信すると(s23)、RAM14のバッファ14bに一時的に記憶させる(s24)。そして、CPU15は、バッファ14bに一定量のオーディオデータが蓄積されると、このオーディオデータを読み出してHDD13にオーディオデータを記録する(s25)。CPU15は、オーディオクライアント3からのオーディオデータの送信が完了するまで(s26)、このステップs23〜s26の処理を繰り返し行う。CPU15は、HDD13へのオーディオデータの記録処理が終了すると(s26)、HDD13に設けられている楽曲情報データベース100を検索して(s27)、HDD13に記録したオーディオデータについて、検索結果である楽曲情報と、属性情報と、オーディオクライアント3dのID情報と、を対応付けて、HDD13の管理テーブル101にセットする(s28)。管理テーブル101では、各楽曲情報(曲名、アルバム名、アーティスト名、ジャンル名など)と、オーディオデータファイルの属性情報(ファイル名、フォーマットやビットレートなどの圧縮方式情報、HDD13上のオーディオデータファイルの格納場所を示すアドレスなど)と、オーディオクライアント3dのID情報と、を対応付けて管理される。
以上の処理により、オーディオサーバ2では、MP3形式やPCM形式のオーディオデータが、楽曲毎にHDD13に格納され、管理テーブル101により管理される。
(2)楽曲の配信・再生手順
次に、オーディオ再生システム1におけるオーディオデータの配信・再生手順を説明する。オーディオクライアント3で楽曲を再生するためには、まず、オーディオサーバ2から楽曲リストを受け取る。そして、楽曲リストの中から所望の楽曲を選択して配信要求を行って、オーディオサーバ2からストリーミング配信された楽曲のオーディオデータを再生する。
オーディオクライアント3では、自装置から記録(録音)した楽曲のみの楽曲リストを送信するように要求することも、また、配信可能な楽曲のリストを送信するように要求することもできる。オーディオサーバ2は、オーディオクライアント3から楽曲リストの送信要求を受信すると、管理テーブル101の送信元情報や公開情報を参照してその要求内容に当てはまる楽曲を選出して楽曲リストを作成する。そして、CPU15は、この楽曲リストをオーディオクライアント3へ送信する。
例えば、オーディオサーバ2のCPU15は、オーディオクライアント3aが自装置から記録した楽曲のみの楽曲リストの送信要求を受信した場合には、管理テーブル101の送信元情報からオーディオクライアント3aが送信元である楽曲をピックアップして楽曲リストを作成する。
また、CPU15は、オーディオクライアント3aに対して配信可能な楽曲のリストの送信要求を受けた場合には、管理テーブル101の公開情報フラグやグループテーブルを確認して、オーディオクライアント3aが自装置から記録した楽曲、及び他のオーディオクライアント3がオーディオクライアント3aに対して公開している楽曲をピックアップして、楽曲リストを作成する。
そして、オーディオサーバ2のCPU15は、作成した楽曲リストをLAN通信部16からオーディオクライアント3aへ送信する。これにより、オーディオクライアント3aでは、楽曲リストに基づいて所望の楽曲の配信要求を行って、オーディオサーバ2からストリーミング配信される楽曲のオーディオデータを再生することができる。
以下の説明では、オーディオクライアント3aから楽曲リストの送信要求があり、オーディオサーバ2が配信要求のあった楽曲のオーディオデータをストリーミング配信する場合を例に挙げて説明する。
ユーザは、オーディオクライアント3aで楽曲のオーディオデータを再生する際には、まず、操作部36において、オーディオサーバ2から楽曲リストを取得する操作を行う。このとき、ユーザは、操作部の操作により現在配信可能な楽曲のリストを取得することができる。また、ユーザは、自分が使用するオーディオクライアント3から記録した楽曲のみのリストを取得する操作を行うことができる。さらに、アーティスト名やジャンル名などを指定することで、さらに選択範囲を限定した楽曲リストを取得する操作を行うこともできる。
図6は、オーディオ再生システムのオーディオデータの再生手順を説明するためのフローチャートである。オーディオクライアント3aのユーザは、オーディオクライアント3で楽曲の再生を行うために、操作部36を操作して楽曲リストを表示部37に表示させる操作を行う。オーディオクライアント3のCPU35は、操作部36が操作されたこと検出すると(s31)、その内容に応じた楽曲リストの送信要求をLAN通信部31からオーディオサーバ2へ送信させる(s32)。すなわち、CPU35は、オーディオクライアント3aで記録処理を行った楽曲のリストの送信要求、または、オーディオクライアント3aに公開されている楽曲のリストの送信要求を送信させる。
オーディオサーバ2のCPU15は、楽曲リストの送信要求を受信すると(s41)、HDD13の管理テーブル101などを検索して、送信元情報や公開情報に基づいて、要求のあった楽曲リストを作成する(s42)。そして、CPU15は、LAN通信部16にオーディオクライアント3aへ、作成した楽曲リストを送信させる(s43)。
オーディオクライアント3のCPU35は、LAN通信部31が楽曲リストを受信すると(s33)、RAM32に一時的に記憶させるとともに、表示部37に楽曲リストの内容を表示させる(s34)。
ユーザは、オーディオクライアント3の表示部37に楽曲リストが表示されると、操作部36を操作して再生させたい楽曲を指定する。このとき、アーティスト名やジャンル名で表示部37に表示させる楽曲をさらに絞り込むことも可能である。オーディオクライアント3のCPU35は、操作部36で上記の操作が行われたことを検出すると(s35)、指定された楽曲の配信要求をLAN通信部31からオーディオサーバ2へ送信させる(s36)。
オーディオサーバ2のCPU15は、LAN通信部16で楽曲の配信要求を受信すると(s44)、HDD13の管理テーブルを参照して配信要求のあった楽曲のオーディオデータをHDD13から読み出して、LAN通信部16からこの楽曲のオーディオデータをストリーミング配信する(s45)。
オーディオクライアント3のCPU35は、LAN通信部31でストリーミング配信された楽曲のオーディオデータを受信すると(s37)、この圧縮オーディオデータをRAM32に一時的に格納させる。そして、CPU35は、RAM32から読み出したオーディオデータがMP3形式の場合にはPCM形式にデコードして、またRAM32から読み出したオーディオデータがPCM形式の場合には、デコードせずにPCMオーディオデータをD/Aコンバータ41でアナログ化して、アンプ42で増幅してスピーカ43から楽曲の音声を放音させる(s38)。
このように、本発明の実施形態に係るオーディオ再生システム1では、オーディオクライアント3からオーディオデータの記録処理を行うことができ、また、各オーディオデータは、記録を行ったオーディオクライアント3を示す送信元情報とともに管理される。したがって、各オーディオクライアント3のユーザは、手元のオーディオクライアント3で録音した楽曲を再生したい場合には、容易に検索を行うことができる。また、オーディオサーバ2においても、HDD13に記録した楽曲数が膨大になった場合でも、各楽曲がどのオーディオクライアント3で記録されたものを容易に判別できる。さらに、オーディオサーバ2に記録する楽曲に公開情報を設定できるので、他のオーディオクライアント3やオーディオサーバ2に対して、楽曲の公開を制限することができる。