(57)【要約】【課題】オーディオデータの再生開始が同期されるオーディオ装置を提供する。【解決手段】他の装置からオーディオデータを受信するオーディオ装置は、コンピュータへの命令を保存するメモリと、メモリに保存された命令を実行するプロセッサを含む。プロセッサは、オーディオデータとオーディオデータに添付されたタイムスタンプを受信し、所定の長さのパルスデータを出力し、パルスデータの終了時刻を検出し、パルスデータの終了時刻とタイムスタンプとを比較し、比較の結果に基づいてオーディオデータを調整して出力する。【選択図】図２
2019124926.tif 000002
【特許請求の範囲】
【請求項１】
他の装置からオーディオデータを受信するオーディオ装置であって、
コンピュータへの命令と所定の長さを有するパルスデータを保存するメモリと、
前記メモリに保存された命令を実行するプロセッサと、を含み、
前記プロセッサは、
前記オーディオデータと前記オーディオデータに添付されたタイムスタンプを受信し、
前記オーディオ装置が前記オーディオデータを受信した時に、前記所定の長さを有するパルスデータを出力し、
前記パルスデータの終了時刻を検出し、
前記パルスデータの終了時刻と前記タイムスタンプとを比較し、
前記比較の結果に基づいて前記オーディオデータを調整し、
前記パルスデータが出力された後に前記調整されたオーディオデータを出力する、
ことを特徴とするオーディオ装置。
【請求項２】
請求項１に記載のオーディオ装置であって、
前記プロセッサは、（ｉ）前記パルスデータの振幅が所定値増加する点を、前記パルスデータの開始時刻として検出し、（ｉｉ）前記開始時刻と前記所定の長さに基づいて前記終了時刻を検出する、
ことを特徴とするオーディオ装置。
【請求項３】
請求項１または２に記載のオーディオ装置であって、
前記メモリは、無音データを保存しており、
前記プロセッサは、前記タイムスタンプが前記パルスデータの終了時刻より遅い場合、（ｉ）前記タイムスタンプと前記パルスデータの終了時刻の差に対応する期間で前記無音データを出力し、（ｉｉ）前記無音データが出力された後に前記オーディオデータを出力する、
ことを特徴とするオーディオ装置。 
【請求項４】
請求項３に記載のオーディオ装置であって、
前記プロセッサは、前記タイムスタンプが前記パルスデータの終了時刻より早い場合、（ｉ）前記タイムスタンプと前記パルスデータの終了時刻の差に対応する量の前記オーディオデータをカットして前記オーディオデータを調整し、（ｉｉ）前記調整されたオーディオデータを出力する、
ことを特徴とするオーディオ装置。 
【請求項５】
請求項１から４の何れかに記載のオーディオ装置であって、
前記パルスデータの振幅が所定値増加する点を、前記パルスデータの開始時刻として検出するエッジ検出モジュールを更に含み、
前記エッジ検出モジュールは、前記プロセッサとは別個に形成され、
前記プロセッサは、（ｉ）前記エッジ検出モジュールから前記パルスデータの開始時刻を読み出し、（ｉｉ）前記開始時刻と前記所定の長さに基づいて前記終了時刻を検出する、
ことを特徴とするオーディオ装置。
【請求項６】
他の装置からオーディオデータを受信するオーディオ装置であって、
コンピュータへの命令を保存するメモリと、
前記メモリに保存された命令を実行するプロセッサと、を含み、
前記プロセッサは、
前記オーディオデータと前記オーディオデータに添付されたタイムスタンプを受信し、
前記オーディオデータとオーディオクロックを出力し、
前記オーディオクロックと前記タイムスタンプの間に位相差があるか否かを判定し、
前記判定された結果に基づいて前記オーディオクロックの速度を調整し、前記位相差が無くなるようにする、
ことを特徴とするオーディオ装置。
【請求項７】
請求項６に記載のオーディオ装置であって、
前記プロセッサは、（ｉ）前記オーディオクロックの振幅が所定値増加する点を、前記オーディオクロックのエッジ時刻として検出し、（ｉｉ）前記エッジ時刻と前記タイムスタンプとが一致しない場合、前記オーディオクロックと前記タイムスタンプの間に前記位相差があると決定する、
ことを特徴とするオーディオ装置。
【請求項８】
請求項７に記載のオーディオ装置であって、
前記プロセッサは、前記エッジ時刻が前記タイムスタンプより早い場合には前記オーディオクロックの速度を遅くし、前記タイムスタンプが前記エッジ時刻より早い場合には、前記オーディオクロックの速度を速める、
ことを特徴とするオーディオ装置。
【請求項９】
請求項８に記載のオーディオ装置であって、
前記オーディオクロックは、所定のエッジ数を有し、
前記プロセッサは、複数のエッジ時刻を検索し、
前記プロセッサは、前記プロセッサが前記エッジ時刻を検出する毎に前記位相差が少なくなるように前記オーディオクロックの速度を調整する、
ことを特徴とするオーディオ装置。
【請求項１０】
請求項６から９の何れかに記載のオーディオ装置であって、
前記オーディオクロックの振幅が所定値増加する点を前記オーディオクロックのエッジ時刻として検出するエッジ検出モジュールを更に含み、
前記エッジ検出モジュールは、前記プロセッサとは別個に形成され、
前記プロセッサは、（ｉ）前記エッジ検出モジュールから前記エッジ時刻を読み出し、（ｉｉ）前記エッジ時刻と前記タイムスタンプが一致しない場合、前記オーディオクロックと前記タイムスタンプの間に前記位相差があると決定する、
ことを特徴とするオーディオ装置。
【請求項１１】
請求項１０に記載のオーディオ装置であって、
前記オーディオクロックは、所定のエッジ数を有し、
前記エッジ検出モジュールは、複数のエッジ時刻を検索し、
前記プロセッサは、前記エッジ検出モジュールが前記エッジ時刻を検出する毎に前記位相差が少なくなるように前記オーディオクロックの速度を調整する、
ことを特徴とするオーディオ装置。
【請求項１２】
他の装置からオーディオデータを受信するオーディオ装置であって、
コンピュータへの命令と一定の長さを有するパルスデータを保存するメモリと、
前記メモリに保存された命令を実行するプロセッサと、を含み、
前記プロセッサは、
前記オーディオデータと前記オーディオデータに添付されたタイムスタンプを受信し、
前記オーディオ装置が前記オーディオデータを受信した時に、前記一定の長さを有するパルスデータを出力し、
前記パルスデータの終了時刻を検出し、
前記パルスデータの終了時刻と前記タイムスタンプを比較し、
前記比較の結果に基づいてオーディオデータを調整し、
前記調整されたオーディオデータとオーディオクロックを出力し、
前記オーディオクロックと前記タイムスタンプの間に位相差がある場合、前記オーディオクロックの速度を調整し、
前記調整されたオーディオデータは、前記パルスデータが出力された後に出力される、
ことを特徴とするオーディオ装置。
【請求項１３】
請求項１２に記載のオーディオ装置であって、
前記プロセッサとは別項に設けられたエッジ検出モジュールを更に含み、
前記エッジ検出モジュールは、前記オーディオクロックの振幅が所定値増加する点を前記オーディオクロックのエッジ時刻として検出し、
前記プロセッサは、（ｉ）前記エッジ検出モジュールから前記エッジ時刻を読み出し、（ｉｉ）前記エッジ時刻と前記タイムスタンプが一致しない場合、前記オーディオクロックと前記タイムスタンプの間に前記位相差があると決定する、
ことを特徴とするオーディオ装置。
【請求項１４】
請求項１３に記載のオーディオ装置であって、
前記エッジ検出モジュールは、前記パルスデータの振幅が一定値増加する点を前記パルスデータの開始時刻として検出し、
前記プロセッサは、（ｉ）前記エッジ検出モジュールから前記パルスデータの開始時刻を読み出し、（ｉｉ）前記開始時刻と前記所定の長さに基づいて前記終了時刻を検出する、
ことを特徴とするオーディオ装置。
【請求項１５】
請求項１２から１４の何れかに記載のオーディオ装置であって、
前記プロセッサは、前記オーディオクロックの振幅が一定値増加する点を、前記オーディオクロックのエッジ時刻として検出し、
前記プロセッサは、前記エッジ時刻と前記タイムスタンプが一致しない場合、前記オーディオクロックと前記タイムスタンプの間に前記位相差があると決定する、
ことを特徴とするオーディオ装置。
【請求項１６】
請求項１５に記載のオーディオ装置であって、
前記プロセッサは、（ｉ）前記パルスデータの開始時刻を検出し、（ｉｉ）前記開始時刻と前記所定の長さに基づいて前記終了時刻を検出する、
ことを特徴とするオーディオ装置。
【請求項１７】
請求項１６に記載のオーディオ装置であって、
前記プロセッサは、前記パルスデータの振幅が一定値増加する点を前記パルスデータの開始時刻として検出する、
ことを特徴とするオーディオ装置。
【請求項１８】
請求項１５から１７の何れかに記載のオーディオ装置であって、
前記プロセッサは、前記エッジ時刻が前記タイムスタンプより早い場合には前記オーディオクロックの速度を減少し、前記タイムスタンプが前記エッジ時刻より早い場合には前記オーディオクロックの速度を速める、
ことを特徴とするオーディオ装置。
【請求項１９】
請求項１２から１８の何れかに記載のオーディオ装置であって、
前記メモリは、無音データを保存しており、
前記プロセッサは、前記タイムスタンプが前記パルスデータの終了時刻より遅い場合、（ｉ）前記タイムスタンプと前記パルスデータの終了時刻の差に相当する期間前記無音データを出力し、（ｉｉ）前記無音データが出力された後に前記オーディオデータを出力する、
ことを特徴とするオーディオ装置。
【請求項２０】
請求項１９に記載のオーディオ装置であって、
前記プロセッサは、前記タイムスタンプが前記パルスデータの終了時刻より早い場合、（ｉ）前記タイムスタンプと前記パルスデータの終了時刻の差に相当する量の前記オーディオデータをカットして前記オーディオデータを調整し、（ｉｉ）前記調整されたオーディオデータを出力する、
ことを特徴とするオーディオ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、通信ネットワークを通じて接続された他の装置とオーディオデータの再生を同期させるオーディオ装置に関する。また、通信ネットワークを通じて接続された他の装置とオーディオクロックを同期させるオーディオ装置に関する。
【背景技術】
【０００２】
図１に示されるようなサーバ１とサーバ１からオーディオデータを受信するクライアント装置２を含むシステムにおいては、サーバ１とクライアント装置２に間においてオーディオデータの同期を行うための方策が講じられている。そして、サーバ１とクライアント装置２の間でオーディオデータの同期を図るためには、クライアント装置２からオーディオデータの出力タイミングあるいはクライアント装置２内での遅れを検出することが重要である。即ち、サーバ１からクライアント装置２にオーディオデータを配信するシステムにおいては、クライアント装置２において、オーディオデータを受信して（即ち、オーディオデータがバッファメモリに書き込まれて）から外部へ出力するまでに遅れが生じる。これは、主にクライアント装置２のソフトウエア処理によるものであり、遅れの時間はＣＰＵ等の制御ユニット２３の処理時間に相当する。この遅れ時間は予想することはできるが、正確に算出することは難しい。したがって、この問題を解決するためには、クライアント装置内での出力遅れを正確に計測する、あるいは、クライアント装置からの出力時刻の正確な検出が必要である。
【０００３】
制御ユニット２３からオーディオデータやオーディオクロックを受信し、処理したオーディオデータをスピーカー４に出力するデジタル‐アナログ変換回路（ＤＡＣ：Digital to Analog Converter）３内においても遅れは生じる。しかしながら、ＤＡＣ３内の遅れは特定のハードウエアによるものであり、したがって、遅れの時間は一定であり固定である。したがって、クライアント装置２の遅れに対処することがより重要である。
【０００４】
加えて、サーバ１とクライアント装置２はそれぞれオーディオクロックを生成し、各オーディオクロックに基づいてオーディオデータを再生する。したがって、サーバ１のオーディオクロックとクライアント装置２のオーディオクロックとの間に位相差がある場合、サーバ１による再生とクライアント装置２による再生との間にタイムラグが生じる。
【０００５】
これまで、二つ以上の装置間でオーディオデータの同期を図るための方策を講じている先行文献がある。例えば、下記特許文献１は、サーバがサーバクロック信号のクロックパルス数を計算して、それをクライアント装置に送信することを開示している。クライアント装置もクライアントクロック信号のクロックパルス数を計算し、サーバから受信したサーバクロック信号のクロックパルス数と、計算したクライアントクロック信号のクロックパルス数とを比較する。そして、比較結果に基づいて、クライアント装置がクライアントクロック信号の周波数を調整する。
【０００６】
また、下記特許文献２は、サーバがオーディオフレームをクライアント装置に送信した時刻Ｔ＿ＴＩＭＥと、クライアント装置がオーディオフレームを受信した時刻Ｒ＿ＴＩＭＥとの差に基づいて、クライアント装置が分周器を調整することを開示している。また、オーディオデータに付与された時刻Ｐ＿ＴＩＭＥと、クライアント装置がそれを受信した時刻Ｒ＿ＴＩＭＥとの差に基づいて、オーディオクロックの周波数を調整することも開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−３５７０９６号公報
【特許文献２】特開２０１１−１６０２７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本出願の目的は、オーディオデータの出力時刻が正確に検出され、検出された出力時刻に基づいてオーディオデータが調整され、それによって、オーディオデータの再生開始が同期されるオーディオ装置を提供することにある。他の目的は、出力されるオーディオクロックのタイミングが定常的に検出され、そして、検出されたタイミングに基づいてオーディオクロックの速度が調整され、それによって、当初のオーディオクロックが出力されてから所定時間内に、オーディオデータに付与されたタイムスタンプとオーディオクロックの位相差が解消されるオーディオ装置を提供することにある。他の目的は、データのエッジ時刻を検出するエッジ検出メカニズムを提供し、それによって、オーディオ装置からの出力時刻の正確な検出を保証し、そして、クライアント装置における上記結果を達成することにある。他の目的は、サーバとクライアント装置を同期させるうえで、サーバは何ら手段を講じる必要がないオーディオ装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明の一態様に係るオーディオ装置は、他の装置からオーディオデータを受信するオーディオ装置であって、前記オーディオ装置は、命令と所定の長さを有するパルスデータを保存するメモリと、前記メモリに保存された命令を実行するプロセッサを含み、前記プロセッサは、前記オーディオデータと前記オーディオデータに添付されたタイムスタンプを受信し、前記オーディオ装置が前記オーディオデータを受信した時に、前記所定の長さを有するパルスデータを出力し、前記パルスデータの終了時刻を検出し、前記パルスデータの終了時刻と前記タイムスタンプを比較し、前記比較の結果に基づいてオーディオデータを調整し、前記パルスデータが出力された後に前記調整されたオーディオデータを出力する。
【００１０】
本発明の１つの観点のオーディオ装置は、他の装置からオーディオデータを受信するオーディオ装置であって、前記オーディオ装置は、命令を保存するメモリと、前記メモリに保存された命令を実行するプロセッサを含み、前記プロセッサは、前記オーディオデータと前記オーディオデータに添付されたタイムスタンプを受信し、前記オーディオデータとオーディオクロックを出力し、前記オーディオクロックのエッジ時刻を検出し、前記オーディオクロックのエッジ時刻と前記タイムスタンプの間に位相差があるか否か決定し、前記決定の結果に基づいて前記オーディオクロックの速度を調整し、前記オーディオクロックのエッジ時刻と前記タイムスタンプの間の位相差がなくなるようにする。
【００１１】
本発明の一態様に係るオーディオ装置は、他の装置からオーディオデータを受信するオーディオ装置であって、前記オーディオ装置は、命令と所定の長さを有するパルスデータを保存するメモリと、前記メモリに保存された命令を実行するプロセッサを含み、前記プロセッサは、前記オーディオデータと前記オーディオデータに添付されたタイムスタンプを受信し、前記オーディオ装置が前記オーディオデータを受信した時に、前記所定の長さを有するパルスデータを出力し、前記パルスデータの終了時刻を検出し、前記パルスデータの終了時刻と前記タイムスタンプを比較し、前記比較の結果に基づいてオーディオデータを調整し、前記調整されたオーディオデータとオーディオクロックを出力し、前記調整されたオーディオデータは前記パルスデータが出力された後に出力され、そして、前記オーディオクロックと前記タイムスタンプの間に位相差がある場合には、前記オーディオクロックの速度を調整する。
【００１２】
他の目的や発明の他の態様は、発明の詳細な説明から理解できる。
【図面の簡単な説明】
【００１３】
【図１】関連技術を示す図である。
【図２】システムの全体構図を示す図である。
【図３Ａ】エッジ検出モジュールがどのように機能するかの例を示す図である。
【図３Ｂ】エッジ検出モジュールがどのように機能するかの例を示す図である。
【図４】エッジ検出モジュールの他の実施例を示す図である。
【図５Ａ】同期の例を示す図である。
【図５Ｂ】同期の例を示す図である。
【図６】サーバとクライアン装置間でオーディオデータの出力時刻を同期させるステップを示す図である。
【図７】パルスデータの一例を示す図である。
【図８Ａ】オーディオデータをどのように調整するのかの例を示す図である。
【図８Ｂ】オーディオデータをどのように調整するのかの例を示す図である。
【図８Ｃ】オーディオデータをどのように調整するのかの例を示す図である。
【図９】オーディオクロックとタイムスタンプの位相差を示す図である。
【図１０】位相合わせプロセスの一例を示す図である。
【図１１Ａ】正の位相差を示す図である。
【図１１Ｂ】負の位相差を示す図である。
【図１２】位相差とＰＬＬ制御による制御の一例を示す図である。
【発明を実施するための形態】
【００１４】
［システムの全体構成］
図２はシステムの全体構成を示す。サーバ１はオーディオデータとオーディオデータに添付されたタイムスタンプを、通信ネットワーク１１（無線又は有線の通信ネットワーク）を通じてクライアント装置２に送信する。クライアント装置２は、オーディオデータと、オーディオデータに添付されたタイムスタンプとを、ネットワークインターフェイス２１を介して受信し、オーディオデータの出力時刻がサーバ１と同期するようにオーディオデータを調整する。クライアント装置２はオーディオデータの再生タイミングを示すオーディオクロックを生成する。クライアント装置２はオーディオクロックの速度を変更し、タイムスタンプとオーディオクロックの位相差が無くなるようにする。これらのプロセスの詳細は後述する。オーディオクロックと処理されたオーディオデータは、オーディオインターフェイス２２を通じて、デジタル‐アナログ変換回路 (ＤＡＣ：Digital to Analog Converter)３に送信される。ＤＡＣ３は、受信したオーディオデータを、オーディオクロックで示されたタイミングのアナログオーディオ信号に変換する。ＤＡＣ３でオーディオデータが処理された後、オーディオデータは再生のためにスピーカ（図示なし）に送信される。更に、サーバ１はクライアント装置２にオーディオデータを出力するとともに、再生のためのオーディオデータを出力する。
【００１５】
図２に示されるように、クライアント装置２は、１つ以上の制御ユニット２３（例えばＣＰＵ：Central Processing Unit）、及びプログラムや必要なデータが保存されたＲＯＭやＲＡＭなどのメモリ２４を含んでいる。制御ユニット２３は、メモリ２４に保存されたプログラムを実行することによって、クライアント装置２の機能を果たす。例えば、制御ユニット２３は、オーディオデータの前に出力されるパルスデータのエッジ時刻を検出し、またオーディオクロックのエッジ時刻も検出する、エッジ検出モジュール２５を含んでいる。また、制御ユニット２３は、オーディオクロックを生成し、オーディオクロックの速度を調整する位相同期ループ（ＰＬＬ：Phase Locked Loop）２６を含んでいる。加えて、制御ユニット２３は、オーディオクロックのエッジ時刻とパルスデータのエッジ時刻を検出するのに使用されるクロック２７を含んでいる。クロック２７は、システム全体に使用されるクロックとは異なる。オーディオデータは、エッジ検出モジュール２５の検出結果を踏まえて、図２の「オーディオデータ調整」セクションで処理される。制御ユニット２３の詳細な機能は後述する。
【００１６】
サーバ１はクライアント装置２と同様なハードウエア構成を有している。サーバ１のクロックとクライアント装置２のクロック２７は共通の時刻情報を有し、サーバ１のクロックとクライアント装置２のクロック２７は、両クロックが同時刻を示すように調整される。例えば、サーバ１は周期的に、時刻情報を含む同期信号をクライアント装置２に送信する。そして、クライアント装置２のクロック２７は、同期信号に含まれる時刻情報に基づいて調整される。
【００１７】
制御ユニット２３はＣＰＵに限定されるものではなく、プロセッサやマイクロコンピュータも制御ユニット２３として用いてよい。
【００１８】
本開示では、エッジ検出モジュール２５及びＰＬＬ２６は重要な機能を果たし、以下で説明される。
【００１９】
［エッジ検出モジュール］
エッジ検出モジュール２５は、データ信号の振幅を継続して監視し、データ信号の振幅が０から所定値（例えば０から＋１）へ変化する点を検出する。そして、エッジ検出モジュール２５は、データの振幅が所定値だけ増加する前記点をエッジと判断する。ここで、本開示の一例として、所定値はゼロではない。故に、例えば図３Ａにおいては、エッジ検出モジュール２５は、Ａ点をエッジと判断する。そして、クロック２７を参照して、エッジ検出モジュール２５はＡ点の時刻を検出する（即ち、パルスデータＤｐのエッジ時刻を検出する）。
【００２０】
したがって、本開示では、エッジ検出モジュール２５はこの機能を使用して、（ｉ）オーディオデータの頭出しの位置を決めるために使用されるパルスデータのエッジを検出する（図３Ａは、パルスデータＤＰの一例を示す）。そして、エッジ検出モジュール２５は、クロック２７を参照してパルスデータのエッジ時刻を検出する。また、エッジ検出モジュール２５は、（ｉｉ）オーディオクロックのエッジを検出し、そして、クロック２７を参照してオーディオクロックのエッジ時刻を検出する（図３Ｂは、オーディオクロックＣａの一例を示す）。検出されたオーディオクロックのエッジ時刻とオーディオデータに付加されたタイムスタンプは、当該タイムスタンプとオーディオクロックとの位相差の決定に用いられるものであり、詳細は後述する。
【００２１】
データが複数のエッジを有する場合、エッジ検出モジュール２５は各エッジの時刻を検出することも可能である。また、エッジ検出モジュール２５は、所定の間隔毎のエッジ時刻を検出することもできる。例えば、図３Ｂに見られるように、オーディオクロックＣａが４８０００Ｈｚであれば、エッジ検出モジュール２５は、４８０００エッジ毎にエッジ時刻を検出することができる。従って、図３Ｂでは、エッジ検出モジュール２５は、Ｔ１とＴ２を検出する。
【００２２】
エッジ検出モジュール２５はＣＰＵのような制御ユニット２３には含まれなくてもよく、クライアント装置２では、エッジ検出モジュール２５が制御ユニットとしてのＣＰＵ２３とは別に設けても良い。図４は、エッジ検出モジュール２５を制御ユニットとしてのＣＰＵ２３とは別に設けた例を示す。図４に見られるように、エッジ検出モジュール２５はオーディオクロックのエッジとパルスデータのエッジとを検出し、そして、クロック２７を参照して、オーディオクロックのエッジ時刻とパルスデータのエッジ時刻とを検出する。そして、検出結果であるエッジ時刻はレジスターに送られる。ＣＰＵ２３はエッジ検出モジュール２５を制御し、レジスターを通じて検出結果（エッジ時刻）を読み込む。図４に示されるように、エッジ検出モジュール２５をＣＰＵ２３とは別に設ける場合、エッジ検出モジュール２５を既存の装置のＣＰＵに接続してもよい。即ち、既存のクライアント装置を用いてエッジ検出機能を有するクライアント装置２をより簡単に構成することができる。また、制御ユニット２３は、２つのＣＰＵからなり、１つのＣＰＵはエッジ検出モジュール２５（あるいは、エッジ検出機能）を有し、他のＣＰＵがＰＬＬ２６を有してもよい。この場合にも上述の利点（即ち、既存のクライアント装置を用いてエッジ検出機能を有するクライアント装置２を構成することができると言う利点）は得られる。プロセッサやマイクロコンピュータもＣＰＵの変わりに制御ユニットとして使用することもできる。
【００２３】
クロック２７はパルスデータのエッジ時刻とオーディオクロックのエッジ時刻を検出する際に使用され、システムの全体に使用されるクロックとは異なる。各クライアント装置２はそれぞれクロック２７を有している。クロック２７はエッジ検出モジュール２５の外部に設けることもできる。
【００２４】
［位相同期ループ（ＰＬＬ）］
位相同期ループ（ＰＬＬ：phase locked loop）２６は、オーディオクロックの速度（換言すれば、周波数）を制御する機能を有し、可変なオーディオクロックを生成する。即ち、ＰＬＬ２６は、オーディオデータのタイミング情報であるオーディオクロック（例えば、１，０，１，０，１，０，１，０,・・・）を生成し出力する。図３Ｂは、オーディオクロックＣＡの一例を示す。オーディオクロックＣａは既定の周波数（例えば、４８ｋＨｚ）を有する。そして、オーディオデータに添付されたタイムスタンプとオーディオクロックのエッジ時刻（例えば、Ｔ１）との間で位相差がある場合、ＰＬＬはオーディオクロックの速度（換言すれば、周波数）を調整して、タイムスタンプとオーディオクロックのエッジ時刻が所定時間内に同期する様にする。なお、上述のように、エッジ検出モジュール２５がオーディオクロックＣａのエッジ時刻（例えば、Ｔ１）と、オーディオデータに付加されたタイムスタンプとを検出する。
【００２５】
［同期の考え方］
本開示においては、サーバ１とクライアント装置２間での音声再生の同期は以下の２つの観点から行われる。（ｉ）オーディオデータの出力時刻を同期させ、それによって、サーバ１とクライアント装置２間での再生開始を同期させる。（ｉｉ）サーバ１から出力されるオーディオデータとクライアント装置２で調整されたオーディオデータとの位相差を無くし、所定時間内に音を同期させる。これらの観点での同期は複数のクライアント装置２の間でも可能である。
【００２６】
図５Ａと図５Ｂは、本開示における同期の例を示す。オーディオデータの出力時刻の同期化では、サーバ１のオーディオデータを出力と、クライアント装置２のオーディオデータの出力とが同時に行われるように、クライアント装置２におけるオーディオデータの再生のタイミングが調整される。図５Ａ、図５Ｂに示すように、サーバ１とクライアント装置２による音声データの再生が同じ時刻（ｔ=ｔ０）に開始される。図５Ａはサーバ１におけるオーディオデータの再生の開始時刻がｔ０であることを示し、図５Ｂはクライアント装置２におけるオーディオデータの再生の開始時刻がｔ０であることを示している。
【００２７】
また、サーバ１及びクライアント装置２は、それぞれオーディオクロックを生成するため、サーバ１のオーディオクロックとクライアント装置２のオーディオクロックとの間に位相差が生じやすい。サーバ１とクライアント装置２との間で同じタイミングで音を発音させる（即ち、位相差を無くす）には、クライアント装置２から出力されるオーディオクロックの速度を制御して、オーディオデータに添付されたタイムスタンプと、オーディオクロックのエッジ時刻との位相差が所定時間内に無くなるようにされる。これにより、図５Ａおよび図５Ｂに示されるように、サーバ１及びクライアント装置２は、所定時間（ｔ=ｔｎ）内において同じ音を発生する。
【００２８】
次に、サーバ１とクライアント装置２間でオーディオデータの出力時刻の同期（即ち、オーディオデータの再生の開始時刻の同期）のためのステップと、サーバ１とクライアント装置２間の位相差を除去するステップについて説明する。
【００２９】
［オーディオデータの出力時刻の同期ステップ］
図６は、サーバ１とクライアント装置２との間でオーディオデータの出力時刻を同期させるステップを示す。これらのステップでは、クライアント装置２がサーバ１と同じ時刻にオーディオデータを出力する（または、クライアント装置２が音声データの出力を開始する際に同期を発生させる）ために、受信したオーディオデータがどのように調整されるかのステップが示されており、それにより、サーバ１とクライアント装置２との間でオーディオデータの再生の開始時刻を同期させる。本実施例では、制御ユニットとしてのＣＰＵ２３がメモリ２４に保存されたプログラムを実施することにより、各ステップを実行するものとしている。各ステップは以下の様に進む。
【００３０】
ステップ１において、サーバ１はタイムスタンプＴｓが付されたオーディオデータＤａを送信する。ステップ２において、クライアント装置２は、サーバ１から送信されたタイムスタンプＴｓ付きのオーディオデータＤａを受信する（図８Ａ，８Ｂ，８Ｃの「要求データタイミング」を参照）。
【００３１】
ステップ３において、クアイアント装置２は、タイムスタンプＴｓ付きのオーディオデータＤａを受信すると、図７に示されるようなパルスデータＤｐ（１，０，０，０，・・・）出力する。パルスデータＤｐは、開始点Ａおよび終了点Ｂからなる所定の長さＴｐを有する。後述するように、パルスデータＤｐは、クライアント装置２からのオーディオデータの出力時刻を決定するために用いられる。パルスデータＤｐの長さＴｐは、過去のオーディオデータのタイムスタンプに基づいて決定される。パルスデータＤｐの長さＴｐの一例は、１０ミリ秒である。しかしながら、パルスデータＤｐの長さＴｐはこの長さに限定される必要はなく、意図する目的を果す長さであれば、どのような長さでも構わない。パルスデータＤｐはメモリ２４に保存されており、クライアント装置２がタイムスタンプＴｓ付きのオーディオデータＤａをサーバ１から受信したときに出力される。
【００３２】
図７（図３Ａも参照）に示されるように、開始点ＡではパルスデータＤｐの振幅は０から＋１に増加する（即ち、振幅は＋１増加する）。そこで、ステップ４において、エッジ検出モジュール２５は、パルスデータＤｐの開始点Ａがエッジであると判断し、クロック２７を参照してパルスデータＤｐのエッジ時刻Ｔｄを検出する。エッジ時刻ＴｄはパルスデータＤｐの開始時刻である。このステップはエッジ時刻Ｔｄが検出されるまで繰り返される。エッジ時刻Ｔｄが検出されると、ステップ５に進む。
【００３３】
ステップ５において、ＣＰＵ２３は、オーディオデータに付されたタイムスタンプＴｓと、（Ｔｄ＋Ｔｐ）とを比較して、Ｔｓ＜（Ｔｄ＋Ｔｐ）であるか否かを判断する。ここで、（Ｔｄ＋Ｔｐ）はパルスデータＤｐの終了点Ｂの時刻である。即ち、（Ｔｄ＋Ｔｐ）はパルスデータＤｐの終了時刻である。したがって、このステップ５では、タイムスタンプＴｓ がパルスデータＤｐの終了時刻（Ｔｄ＋Ｔｐ）よりも早いか否かが判断される。パルスデータＤｐの終了時刻（Ｔｄ＋Ｔｐ）は開始時刻Ｔｄに所定の長さＴｐを加えることによって得られる。以下説明するように、パルスデータＤｐの終了時刻（Ｔｄ＋Ｔｐ）は、調整されたオーディオデータの出力時刻を決定するために使用される。
【００３４】
ステップ６において、Ｔｓ＜（Ｔｄ＋Ｔｐ）の場合、ＣＰＵ２３は、（Ｔｄ＋Ｔｐ）−Ｔｓの期間に対応するオーディオデータをカットする。ここで、Ｔｓ＜（Ｔｄ＋Ｔｐ）は、図８Ａに示されるように、オーディオデータに付与されたタイプスタンプＴｓがパルスデータＤｐの終了時刻（Ｔｄ＋Ｔｐ）よりも早いという意味である。
【００３５】
図８Ａは、ステップ６におけるオーディオデータの調整方法の一例を示している。図８Ａは、クライアント装置２が受信したオーディオデータＤａ（ａ０，ａ１，ａ２，ａ３，ａ４，ａ５，ａ６，ａ７，ａ８，ａ９，ａ１０，ａ１１）（「要求データタイミング」を参照）と、クライアント装置２が出力するオーディオデータＤａ（ａ５，ａ６，ａ７，ａ８，ａ９，ａ１０，ａ１１）と、パルスデータＤｐが開示されている（「出力データ」を参照）。これらのデータはクロック２７の時間（ｔ）に沿って示されている。オーディオデータＤａ（ａ０，ａ１，ａ２，ａ３，ａ４，ａ５，ａ６，ａ７，ａ８，ａ９，ａ１０，ａ１１）に付与されたタイムスタンプＴｓは、オーディオデータの再生要求タイミングを示している。図８Ａに示されるように、タイムスタンプＴｓはパルスデータＤｐの終了時刻（Ｔｄ＋Ｔｐ）よりも早く、また、ａ０，ａ１，ａ２，ａ３，ａ４（［（Ｔｄ＋Ｔｐ）−Ｔｓ］の期間に相当する）のオーディオデータＤａが［（Ｔｄ＋Ｔｐ）−Ｔｓ］に対応する。したがって、ａ０，ａ１，ａ２，ａ３，ａ４のオーディオデータＤａはカットされ、ａ５，ａ６，ａ７，ａ８，ａ９，ａ１０，ａ１１のオーディオデータＤａがパルスデータＤｐの後に出力される（「出力データ」を参照）。ａ０，ａ１，ａ２，ａ３，ａ４をカットすることにより、クライアント装置２におけるオーディオデータＤａ（ａ５，ａ６，ａ７，ａ８，ａ９，ａ１０，ａ１１）の出力時刻は、パルスデータＤｐの終了時刻（Ｔｄ＋Ｔｐ）にセットされる（「出力データ」参照）。したがって、パルスデータＤｐの終了時刻（Ｔｄ＋Ｔｐ）からサーバ１とクライアント装置２との間でオーディオデータＤａ（ａ５，ａ６，ａ７，ａ８，ａ９，ａ１０，ａ１１）の出力時刻が一致する。これにより、オーディオデータＤａ（ａ５，ａ６，ａ７，ａ８，ａ９，ａ１０，ａ１１）の再生のタイミングがサーバ１とクライアント装置２との間で同期する。また、パルスデータＤｐの終了時刻（Ｔｄ＋Ｔｐ）は、クライアント装置２でオーディオデータＤａ（ａ５，ａ６，ａ７，ａ８，ａ９，ａ１０，ａ１１）を出力する実際の開始時刻あり、したがって、クライアント装置２がオーディオデータＤａ（ａ５，ａ６，ａ７，ａ８，ａ９，ａ１０，ａ１１）の出力を開始した時点からサーバ１との同期が計られている。
【００３６】
複数のクライント装置２が存在する場合であっても同期を取ることができる、各クライアント装置２が独自の状況に応じてオーディオデータＤａの出力時刻を調整できるためである。
【００３７】
ステップ７はＴｓ＞（Ｔｄ＋Ｔｐ）の場合を示しており、ＣＰＵ２３は［Ｔｓ−（Ｔｄ＋Ｔｐ）］の期間に相当する無音データを追加する。無音データとは再生時に音声を生じないデータのことである。ここで、Ｔｓ＞（Ｔｄ＋Ｔｐ）とは、図８Ｂ示されるようにオーディオデータＤａに付与されたタイプスタンプＴｓがパルスデータＤｐの終了時刻（Ｔｄ＋Ｔｐ）よりも遅い状態である。
【００３８】
図８Ｂと図８Ｃは、ステップ７におけるオーディオデータの調整方法の一例を示している。図８Ｂは、クライアント装置２が受信するオーディオデータＤａ（ａ０，ａ１，ａ２，ａ３，ａ４）に付されているタイムスタンプＴｓ（「要求データタイミング」を参照）が、パルスデータＤｐの終了時刻（Ｔｄ＋Ｔｐ）より遅い場合を示している（「パルスデータ」 およびクロック２７の時刻を参照）。そこで、この場合、図８Ｃに示されるように、ＣＰＵ２３は、［Ｔｓ−（Ｔｄ＋Ｔｐ）］の期間に相当する無音データＤｓをオーディオデータＤａ（ａ０，ａ１，ａ２，ａ３，ａ４）の前に追加する。そして、パルスデータＤｐの後に出力される無音データＤｓを出力した後にオーディオデータＤａ（ａ０，ａ１，ａ２，ａ３，ａ４）を出力する。したがって、無音データＤｓを追加することにより、クライアント装置２は、サーバ１と同じ時刻（即ち、Ｔｓ）にオーディオデータＤａ（ａ０，ａ１，ａ２，ａ３，ａ４）を出力することができ、再生開始時刻をサーバ１と同期させることができる。無音データＤｓは最初はメモリ２４に保存されており、必要に応じて出力される。クライント装置２が複数ある場合にも、各クライアント装置２が独自の状況に応じてオーディオデータの再生開始時刻を調整できるので、同期させることができる。
【００３９】
ステップ８は、Ｔｓ ＝（Ｔｄ＋Ｔｐ）の場合を示す。この場合、オーディオデータＤａのタイムスタンプＴｓがパルスデータＤｐの終了時刻（Ｔｄ＋Ｔｐ）に相当するため、オーディオデータＤａを調整する必要はない。したがって、ＣＰＵ２３はオーディオデータＤｐを調整することなく出力する。
【００４０】
ステップ６，７，８は、図２の「オーディオデータ調整」セクションで行なわれる。
【００４１】
ステップ９において、ＣＰＵ２３は、ステップ６，７，８から受けたオーディオデータＤａを、図２に示したオーディオインターフェイス２２から出力する。 上述したように、オーディオデータＤａには無音データＤｓが含まれていてもよいし、オーディオデータＤａの先頭部分がカットされていてもよい。このステップでは、タイプスタンプＴｓとオーディオクロックの位相差Ｄｆは調整されていない（以下のステップで行われる）。
【００４２】
上述の通り、パルスデータＤｐを用いることにより、クライアント装置２では、パルスデータＤｐの終了時刻（Ｔｄ＋Ｔｐ）を基に、オーディオデータＤａの出力時刻を正確に調整できる。したがって、オーディオデータＤａの再生の開始時刻をサーバ１とクライアント装置２との間で同期させることができる。更に、エッジ検出モジュール２５がパルスデータＤｐのエッジ時刻（即ち、開始点の時刻）を検出し、その後、その時刻はパルスデータＤｐの終了時刻（Ｔｄ＋Ｔｐ）の計算に用いられる。したがって、エッジ検出モジュール２５は上述の結果を保証する。
【００４３】
クライント装置２が複数ある場合にも、各クライアント装置２が独自の状況に応じてオーディオデータの出力時刻を調整できるので、同期を取ることができ、そして、サーバ１では何ら手段を講じる必要がない。更に、上述のように、プロセッサやマイクロコンピュータを制御ユニットとすることもできる。したがって、ＣＰＵに代えて、プロセッサやマイクロコンピュータがクライアント装置２で上述の機能を果してもよい。
【００４４】
［位相同期ステップ］
オーディオデータに付与されているタイムスタンプは、サーバ１からの再生の要求タイミングである。オーディオクロックのエッジ時刻は、クライアント装置２からのオーディオデータの実際の再生時刻を示すタイミング情報である。従って、オーディオクロックのエッジ時刻がタイムスタンプに一致しない場合に位相差が生じる。
【００４５】
図９は位相差Ｄｆ（即ち、タイムスタンプＴｓとエッジ時刻Ｔｅとの差）を示しており、この位相差Ｄｆはエッジ検出モジュール２５を使用することによって計算される。エッジ検出モジュール２５は、オーディオクロックＣａのエッジ時刻Ｔｅをクロック２７を参照して検索する。そして、ＣＰＵ２３はタイムスタンプＴｓとエッジ時刻Ｔｅとの差を計算する。このタイムスタンプＴｓとエッジ時刻Ｔｅの差が位相差Ｄｆとなる。
【００４６】
ここで、位相差ＤｆはＴｓ−（Ｔｄ＋Ｔｐ）あるいは（Ｔｄ＋Ｔｐ）−Ｔｓを用いて以下のように表される。
（（Ｔｄ＋Ｔｐ）−Ｔｓ)ｍｏｄ（１／Ｆｓ）または（Ｔｓ−（Ｔｄ＋Ｔｐ））ｍｏｄ（１／Ｆｓ）。ここで、ｍｏｄはモジュロ演算（「モジュラス」と呼ばれることもある）であり、Ｆｓはオーディオデータの周波数であり、固定の定数である。したがって、上述のステップ９では、ＣＰＵ２３は、上述の式で表される位相差Ｄｆを有するオーディオデータを出力する。
【００４７】
更に、位相差Ｄｆは、エッジ時刻ＴｅとタイムスタンプＴｓの差であるため、位相差ＤｆはオーディオクロックＣａの速度に依存する。したがって、ＣＰＵ２３は、ＰＬＬ２６を制御して、エッジ時刻ＴｅとタイムスタンプＴｓが一致するようにオーディオクロックＣａの速度を調整する。
【００４８】
図１０は位相同期ステップの一例を示す。ここでは、オーディオクロックＣａのエッジ時刻ＴｅがタイムスタンプＴｓに一致するようにオーディオクロックの速度を調整することにより、サーバ１とクライアント装置２との間で位相差を無くす例を示している。この実施例では、当初のオーディオクロックが出力されてからｎ秒後（ｎは整数で、ｎ≧２）に、オーディオクロックのエッジ時刻Ｔｅがタイムスタンプ（Ｔｓ＋ｎ）と一致することを想定している。オーディオクロックは４８ｋHzであり、これは一秒間に４８０００エッジあることを意味している。エッジ検出モジュール２５は、４８０００エッジ毎にエッジ時刻を検出する（図３Ｂを参照）。即ち、エッジ検出モジュール２５は、１秒毎にエッジ時刻を検出する。
【００４９】
また、本実施例では、ＣＰＵ２３が制御ユニットとしてメモリ２４に保存されたプログラムを実施することにより、各ステップを実行するものとしている。ステップは以下の様に進む。
【００５０】
ステップ１１において、エッジ検出モジュール２５はクロック２７を参照して、ｔ＝０におけるオーディオクロックＣａのエッジ時刻Ｔｅを検出し、位相差Ｄｆを決定する。そして、ＣＰＵ２３は、ｔ＝０における位相差ＤｆをＡｃｃ（０）とする。
【００５１】
図１１Ａは、正の位相差を示す。これは、オーディオクロックＣａが「１」のレベルである間にタイムスタンプＴｓが発生した場合であり、エッジ時刻Ｔｅ（即ち、オーディオクロックＣａ）がタイムスタンプＴｓより早い場合である。そして、位相差は＋Ｄｆとなる。
【００５２】
一方、図１１Ｂは負の位相差を示している。オーディオクロックＣａが「０」のレベルである間にタイムスタンプＴｓが発生した場合、エッジ時刻Ｔｅ（即ち、オーディオクロックＣａ）がタイムスタンプＴｓより遅いので、位相差は−Ｄｆとなる。
【００５３】
図１１Ａ，１１Ｂに示されるように、本実施例では、正の位相差（＋Ｄｆ）と負の位相差（−Ｄｆ）を設定することにより、初期の位相差Ｄｆを１サンプル内に収めることができる。
【００５４】
ステップ１２において、ＣＰＵ２３は位相調整処理（即ち、位相差の同期プロセス）をｎ＝０だけ開始する。ステップ１３において、ＣＰＵ２３はエッジ時刻Ｔ（ｎ）が取得されたか否か判断する。エッジ時刻Ｔ（ｎ）が取得できない場合には、このステップをエッジ時刻Ｔ（ｎ）が取得できるまで繰り返す。取得された場合、処理はステップ１４に進む。ステップ１４において、ＣＰＵは、ｎ＝０であるか否かを判定する。ｎ＝０であれば処理はステップ１５に進む。ｎ＝０でなければステップ１６に進む。ステップ１５において、ＣＰＵ２３はｎに１を加算して、ステップ１３に進む。
【００５５】
ステップ１６において、ＣＰＵ２３は、エッジ時刻Ｔ（ｎ）とエッジ時刻Ｔ（ｎ−１）との間に調整された位相差（ｄ）を算出する。エッジ時刻は１秒毎に検出されるので、調整された位相差（ｄ）は以下の様に表される。
ｄ＝Ｔ（ｎ）−Ｔ（ｎ−１）−１（秒）
【００５６】
ステップ１７では、ＣＰＵ２３は、調整された位相差（ｄ）に基づいて、ｎ秒後の位相差を計算する。：Ａｃｃ＝（Ａｃｃ（ｎ−１）＋ｄ）
【００５７】
ステップ１８では、ＣＰＵ２３は、Ａｃｃ＝０であるか否かを判定する。Ａｃｃ＝０であれば処理はステップ１５に戻る。また、Ａｃｃ＝０でなければ処理はステップ１９に進む。
【００５８】
ステップ１９では、ＣＰＵ２３は、Ａｃｃ＞０であるか否かを判定する。これは、ｔ＝ｎにおけるオーディオクロックＣａがタイムスタンプＴｓより早いか否かをＣＰＵ２３が判定することを意味している。Ａｃｃ＞０であれば処理はステップ２０に進み、Ａｃｃ＞０でなければ処理はステップ２１に進む。
【００５９】
ステップ２０，２１においては、ＣＰＵ２３は、ステップ１９の結果を踏まえ、位相差Ｄｆが無くなるように、ＰＬＬ２６を制御してオーディオクロックＣａの速度を調整する。
【００６０】
ステップ２０は、Ａｃｃ（ｎ）＞０である場合、即ち、位相差Ａｃｃ（ｎ）が正である場合を示す。即ち、図１１Ａに示されるように、エッジ時刻Ｔｅ（換言すると、オーディオクロックＣａ）はタイムスタンプＴｓよりも早い。したがって、ＣＰＵ２３は、ＰＬＬを操作してオーディオクロックＣａの速度を遅くする。即ち、ＰＬＬ２６はオーディオクロックＣａの周波数を下げる。そして、処理はステップ１５に戻る。
【００６１】
ステップ２１はＡｃｃ（ｎ）＜０である場合、図１１Ｂに示されるようにエッジ時刻Ｔｅ（換言すると、オーディオクロックＣａ）がタイムスタンプＴｓより遅い場合を示す。ＣＰＵ２３は、ＰＬＬ２６を制御することによりオーディオクロックＣａの速度を早くする。即ち、ＰＬＬ２６はオーディオクロックＣａの周波数を高くする。そして、処理はステップ１５に戻る。
【００６２】
以上の様に、エッジ検出モジュール２５は、オーディオクロックＣａのエッジ時刻ＴｅとタイムスタンプＴｓとを所定のインターバルで継続的に検出することで、位相差Ｄｆの検出を確実なものとしている。そして、位相差Ｄｆに基づいて、ＰＬＬ２６がオーディオクロックＣａの速度を調整することによって（換言すると、オーディオクロックＣａの周波数を調整することによって）、サーバ１とクライアント装置２間の位相差Ｄｆが無くなるように除去される。
【００６３】
ＰＬＬ２６は可変オーディオクロックを生成し、ＰＬＬパラメータ値を変更することによって、オーディオクロックの速度又は周波数を変えることができる。ＰＬＬ２６は、以下のパラメータによってオーディオデータの周波数を変更することができる。（ｉ）正のパラメータ値：そのパラメータ値に従ってオーディオクロックの速度が増加する、あるいは、（ｉｉ）負のパラメータ値：そのパラメータ値に従ってオーディオクロックの速度が低減する。ステップ２０では、ＰＬＬ２６のパラメータは負の値に設定され、ステップ２１ではＰＬＬのパラメータは正の値に設定される。
【００６４】
適切なパラメータ値を設定することにより、ステップ１８で位相差Ａｃｃ＝０となるように設計されている。即ち、適切なパラメータ値を設定することにより、当初の位相差をある時点でゼロにすることができる。
【００６５】
例えば、初期のオーディオクロックを出力してからｎ秒経過後の調整量ＰＬＬ（ｎ） は、以下のように表すことができる。
ＰＬＬ（ｎ）＝Ａ×Ｐ×（Ａｃｃ（ｎ）＋Ｃｏｎｓｔａｎｔ）＋Ｂ×ＰＬＬ（ｎ−１）＋Ｃ×ＰＬＬ（ｎ−２）。ここで、Ａ，Ｂ，Ｃ はフィルタ係数であり、Ｐ,Ｃｏｎｓｔａｎｔは位相差Ａｃｃと調整量ＰＬＬ（ｎ）との間の関係を示す。
【００６６】
ここで一例として、位相差Ａｃｃと調整量ＰＬＬ（ｎ）の関係を線形とし、Ｐ＝１，Ｃｏｎｓｔａｎｔ＝０とする。また、Ａ＝１／４，Ｂ＝１／２，Ｃ＝１／４とする。すると、調整量ＰＬＬ（ｎ）の一例は、以下のように定義される。
ＰＬＬ（ｎ）＝（１／４）×Ａｃｃ（ｎ）＋（１／２）×ＰＬＬ（ｎ−１）＋（１／４）×ＰＬＬ（ｎ−２）
ここで、ＰＬＬ（−１）＝ＰＬＬ（−２）＝ＰＬＬ（０）＝０とする。
【００６７】
図１２は、位相差Ａｃｃ（ｎ）とＰＬＬ制御による調整値ＰＬＬ（ｎ）との関係の一例を示す。図１２において、線Ａは位相差Ａｃｃ（ｎ）を示し、線Ｂは上記の式で表される調整料ＰＬＬ（ｎ）を示す。図１２は調整値ＰＬＬ（ｎ）がどのように位相差Ａｃｃ（ｎ）に到達するかを示している。図１２に示されるように、調整値ＰＬＬ（ｎ）は徐々に増えていくため、オーディオクロックの速度も徐々に変化し、位相差Ａｃｃ（ｎ）と調整量ＰＬＬ（ｎ）との差が徐々に減っている。そして、ある時点（例えば、約４０秒後の時点）で調整値ＰＬＬ（ｎ）は位相差Ａｃｃ（ｎ）と等しくなり、これにより位相差が除去される。図１２では、位相差が１０００ナノ秒の例を示している。しかしながら、位相差が異なる値の場合には、上述の式ＰＬＬ（ｎ）を適用することができる。また、上述の概念は、位相差が正の値の場合と位相差が負の値の場合との両者に適用できる。
【００６８】
上述の実施例では、オーディオクロックＣａは４８ｋＨｚであり、エッジ検出モジュール２５は、４８０００エッジ毎にエッジ時刻を検出する（即ち、エッジ検出モジュール２５は、１秒毎にエッジ時刻を検出する）。しかしながら、オーディオクロックＣａの周波数は４８ｋＨｚに限定されない。代わりに、意図する目的を果すことができる限り、オーディオクロックＣａは異なる周波数を有してもよく、異なるインターバルでエッジ時刻が検出されてもよい。さらに、上述したように、ＣＰＵに代えてプロセッサやマイクロコンピュータが上述のスッテップを実行してもよい。
【００６９】
［効果］
以上説明したように、クライアント装置２は、特定の時刻（即ち、パルスデータの終了時刻）を設定し、その特定時刻に基づいてオーディオデータの出力開始時刻を決定することができる。したがって、クライアント装置内の遅延に拘わらず、オーディオデータの出力時刻を正確に決定することができる。また、オーディオデータに添付されているタイムスタンプが特定時刻より早いか遅いかに拘わらず、オーディオデータの出力開始時刻が決定される。また、クライアント装置２はオーディオデータの出力を開始した時点から、オーディオデータの出力時刻をサーバ１に同期させることができる。これにより、サーバ１とクライアント装置２との間でオーディオデータの再生を同時に開始することができる。また、クライント装置２が複数ある場合にも、各クライアント装置２が独自の状況に応じてオーディオデータの出力時刻を調整できるので、同期を取ることができる。
【００７０】
さらに、オーディオクロックとタームスタンプの当初の位相差は１サイクル内に制限される（図１１Ａ及び図１１Ｂを参照）。その後、オーディオクロックとタームスタンプの位相差を継続的に監視し、ＰＬＬがオーディオクロックの速度を調整することで、所定期間内にサーバ１とクライアント装置２との間の位相差を無くす（同期させる）ことができる。出力されたオーディオクロックの速度が監視されるので、監視結果はオーディオクロックの実際の状況を反映している。したがって、オーディオクロックの実際の状況を基にしてオーディオクロックの速度を調整することにより、より信頼性のある同期が図ることができる。このことは、クライント装置２が複数ある場合にも達成される、各クライアント装置２が独自の状況に応じてオーディオクロックの速度を調整できるためである。
【００７１】
また、オーディオデータの出力時刻と位相差をサーバ１とクライアント装置２との間で同期させる場合、エッジ検出モジュールを用いることができる。エッジ検出モジュールは、パルスデータのエッジ時刻とオーディオクロックのエッジ時刻とを正確に測ることにより、オーディオデータの正確な出力時刻を設定し、正確な位相差を検出することを保証する。
【００７２】
そして、以上の結果は、サーバ１に対する追加や愚弟的な変更を必要とせずに、クライアント装置２のみで実現可能である。従って、上述の特徴は、複数のクライアント装置２が存在する場合にも得ることができる。
【００７３】
従って、本開示は、クライアント装置２内のソフトウエア処理によって引き起こされる遅延に関する技術的問題に対して、特定の解決策を与えている。
【００７４】
以上の実施例では、クライアント装置２はＤＡＣ３を含むが、スピーカーを含んでいない。しかしながら、クライアント装置、ＤＡＣ、及びスピーカーは一体的に単一の装置として形成されてもよい。また、クライアント装置２とＤＡＣ３とを別々に構成してもよい。また、サーバ１とクライアント装置２を多くの技術分野で応用できる。例えば、サーバ１とクライアント装置２とをそれぞれ右出力用と左出力用のステレオに接続することができる。また、サーバ１とクライアント装置２とをそれぞれ別々の部屋に置き、それぞれの聴衆が同期してオーディオデータを聴くこともできる。オーディオデータには音楽であってもよい。しかしながら、オーディオデータは音楽に限定されることはなく、他のタイプのオーディオデータも使うこともできる。また、サーバ１からクライアント装置２にオーディオデータのみを配信する必要はなく、本開示の趣旨はクライアント装置２に他のデータ（例えば画像データ）と一緒に送られるオーディオデータにも適用できる。
【００７５】
本発明の特定の実施例について詳細に開示、説明し、発明の趣旨を説明したが、本発明は、本発明の趣旨を逸脱しない範囲において種々の変更が可能である。本発明は本明細書に開示された特定の実施例に限定されることはなく、添付の特許請求の範囲によって規定されるものと解される。
【符号の説明】
【００７６】
１  サーバ、２  クライアント装置、３  ＤＡＣ、４  スピーカー、１１  通信ネットワーク、２１  ネットワークインターフェイス、２２  オーディオインターフェイス、２３  制御ユニット（ＣＰＵ）、２４  メモリ、２５  エッジ検出モジュール、２６  ＰＬＬ、  ２７  クロック
【図１】
2019124926.tif 000003
【図２】
2019124926.tif 000004
【図３Ａ】
2019124926.tif 000005
【図３Ｂ】
2019124926.tif 000006
【図４】
2019124926.tif 000007
【図５Ａ】
2019124926.tif 000008
【図５Ｂ】
2019124926.tif 000009
【図６】
2019124926.tif 000010
【図７】
2019124926.tif 000011
【図８Ａ】
2019124926.tif 000012
【図８Ｂ】
2019124926.tif 000013
【図８Ｃ】
2019124926.tif 000014
【図９】
2019124926.tif 000015
【図１０】
2019124926.tif 000016
【図１１Ａ】
2019124926.tif 000017
【図１１Ｂ】
2019124926.tif 000018
【図１２】
2019124926.tif 000019