(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-28
(45)【発行日】2022-12-06
(54)【発明の名称】オーディオ装置
(51)【国際特許分類】
G10K 15/02 20060101AFI20221129BHJP
【FI】
G10K15/02
(21)【出願番号】P 2018238071
(22)【出願日】2018-12-20
【審査請求日】2021-10-21
(32)【優先日】2018-01-15
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000004075
【氏名又は名称】ヤマハ株式会社
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】利谷 匡史
(72)【発明者】
【氏名】飯田 尚
(72)【発明者】
【氏名】末光 祐希
【審査官】岩田 淳
(56)【参考文献】
【文献】特開平09-233098(JP,A)
【文献】特開平11-017668(JP,A)
【文献】特開2006-330541(JP,A)
【文献】特開2000-244473(JP,A)
【文献】米国特許第06751228(US,B1)
【文献】米国特許出願公開第2009/0135854(US,A1)
【文献】米国特許出願公開第2008/0298532(US,A1)
【文献】米国特許出願公開第2008/0298399(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G10K 15/00-15/12
G06F 13/00
H04N 7/10
7/14- 7/173
7/20- 7/56
21/00-21/858
H04R 3/00- 3/14
H04S 1/00- 7/00
(57)【特許請求の範囲】
【請求項1】
他の装置からオーディオデータを受信するオーディオ装置であって、
コンピュータへの命令と所定の長さを有するパルスデータを保存するメモリと、
前記メモリに保存された命令を実行するプロセッサと、を含み、
前記プロセッサは、
前記オーディオデータと
、前記オーディオデータに添付され
前記オーディオデータの再生要求タイミングを示すタイムスタンプ
と、を受信し、
前記オーディオ装置が前記オーディオデータを受信した時に、前記所定の長さを有するパルスデータを出力し、
前記パルスデータの終了時刻を検出し、
前記パルスデータの終了時刻と前記タイムスタンプとを比較し、
前記比較の結果に基づいて
前記オーディオデータの出力時刻が前記他の装置と同期するように前記オーディオデータを調整し、
前記パルスデータが出力された後に前記調整されたオーディオデータを出力する、
ことを特徴とするオーディオ装置。
【請求項2】
請求項1に記載のオーディオ装置であって、
前記プロセッサは、前記パルスデータの振幅が所定値増加する点を、前記パルスデータの開始時刻として検出し、前記開始時刻と前記所定の長さに基づいて前記終了時刻を検出する、
ことを特徴とするオーディオ装置。
【請求項3】
請求項1
に記載のオーディオ装置であって、
前記パルスデータの振幅が所定値増加する点を、前記パルスデータの開始時刻として検出するエッジ検出モジュールを更に含み、
前記エッジ検出モジュールは、前記プロセッサとは別個に
設けられ、
前記プロセッサは、前記エッジ検出モジュールから前記パルスデータの開始時刻を読み出し、前記開始時刻と前記所定の長さに基づいて前記終了時刻を検出する、
ことを特徴とするオーディオ装置。
【請求項4】
請求項1
から3の何れかに記載のオーディオ装置であって、
前記メモリは、無音データを保存しており、
前記プロセッサは、前記タイムスタンプが前記パルスデータの終了時刻より遅い場合、前記タイムスタンプと前記パルスデータの終了時刻の差に対応する期間で前記無音データを出力し、前記無音データが出力された後に前記オーディオデータを出力する、
ことを特徴とするオーディオ装置。
【請求項5】
請求項
4に記載のオーディオ装置であって、
前記プロセッサは、前記タイムスタンプが前記パルスデータの終了時刻より早い場合、前記タイムスタンプと前記パルスデータの終了時刻の差に対応する
期間の前記オーディオデータをカットして前記オーディオデータを調整し、前記調整されたオーディオデータを出力する、
ことを特徴とするオーディオ装置。
【請求項6】
他の装置からオーディオデータを受信するオーディオ装置であって、
コンピュータへの命令を保存するメモリと、
前記メモリに保存された命令を実行するプロセッサと、を含み、
前記プロセッサは、
前記オーディオデータと
、前記オーディオデータに添付され
前記オーディオデータの再生要求タイミングを示すタイムスタンプ
と、を受信し、前記オーディオデータとオーディオクロックを出力し、
前記
プロセッサから出力されるオーディオクロックと前記タイムスタンプ
に基づき、前記プロセッサから出力されるオーディオクロックと前記他の装置のオーディオクロックの位相差を計算し、
前記
計算された結果に基づいて前記
プロセッサから出力されるオーディオクロックの速度を調整し、前記位相差が無くなるようにする、
ことを特徴とするオーディオ装置。
【請求項7】
請求項6に記載のオーディオ装置であって、
前記プロセッサは、前記
プロセッサから出力されるオーディオクロックの振幅が所定値増加する点を、前記
プロセッサから出力されるオーディオクロックのエッジ時刻として検出し、
前記タイムスタンプと前記エッジ時刻との差を前記位相差として計算し、前記エッジ時刻と前記タイムスタンプが一致するように前記プロセッサから出力されるオーディオクロックの速度を調整する、
ことを特徴とするオーディオ装置。
【請求項8】
請求項
7に記載のオーディオ装置であって、
前記
プロセッサから出力されるオーディオクロックは、所定のエッジ数を有し、
前記プロセッサは、複数のエッジ時刻を
検出し、
前記プロセッサは、前記プロセッサが前記エッジ時刻を検出する毎に前記位相差が少なくなるように前記
プロセッサから出力されるオーディオクロックの速度を調整する、
ことを特徴とするオーディオ装置。
【請求項9】
請求項6
に記載のオーディオ装置であって、
前記
プロセッサから出力されるオーディオクロックの振幅が所定値増加する点を前記
プロセッサから出力されるオーディオクロックのエッジ時刻として検出するエッジ検出モジュールを更に含み、
前記エッジ検出モジュールは、前記プロセッサとは別個に
設けられ、
前記プロセッサは、前記エッジ検出モジュールから前記エッジ時刻を読み出し、
前記タイムスタンプと前記エッジ時刻との差を前記位相差として計算し、前記エッジ時刻と前記タイムスタンプが一致するように前記プロセッサから出力されるオーディオクロックの速度を調整する、
ことを特徴とするオーディオ装置。
【請求項10】
請求項
9に記載のオーディオ装置であって、
前記
プロセッサから出力されるオーディオクロックは、所定のエッジ数を有し、
前記エッジ検出モジュールは、複数のエッジ時刻を
検出し、
前記プロセッサは、前記エッジ検出モジュールが前記エッジ時刻を検出する毎に前記位相差が少なくなるように前記
プロセッサから出力されるオーディオクロックの速度を調整する、
ことを特徴とするオーディオ装置。
【請求項11】
請求項7
から10の何れかに記載のオーディオ装置であって、
前記プロセッサは、前記エッジ時刻が前記タイムスタンプより早い場合には前記
プロセッサから出力されるオーディオクロックの速度を遅くし、前記タイムスタンプが前記エッジ時刻より早い場合には、前記
プロセッサから出力されるオーディオクロックの速度を速める、
ことを特徴とするオーディオ装置。
【請求項12】
他の装置からオーディオデータを受信するオーディオ装置であって、
コンピュータへの命令と
所定の長さを有するパルスデータを保存するメモリと、
前記メモリに保存された命令を実行するプロセッサと、を含み、
前記プロセッサは、
前記オーディオデータと
、前記オーディオデータに添付され
前記オーディオデータの再生要求タイミングを示すタイムスタンプ
と、を受信し、
前記オーディオ装置が前記オーディオデータを受信した時に、前記
所定の長さを有するパルスデータを出力し、
前記パルスデータの終了時刻を検出し、
前記パルスデータの終了時刻と前記タイムスタンプを比較し、
前記比較の結果に基づいて
前記オーディオデータの出力時刻が前記他の装置と同期するようにオーディオデータを調整し、
前記調整されたオーディオデータとオーディオクロックを出力し、
前記
プロセッサから出力されるオーディオクロックと前記タイムスタンプ
に基づき、前記プロセッサから出力されるオーディオクロックと前記他の装置のオーディオクロックの位相差を計算し、
前記計算された結果に基づいて前記
プロセッサから出力されるオーディオクロックの速度を調整し、
前記調整されたオーディオデータは、前記パルスデータが出力された後に出力される、
ことを特徴とするオーディオ装置。
【請求項13】
請求項12
に記載のオーディオ装置であって、
前記プロセッサは、前記
プロセッサから出力されるオーディオクロックの振幅が
所定値増加する点を、前記
プロセッサから出力されるオーディオクロックのエッジ時刻として検出し、
前記プロセッサは、
前記タイムスタンプと前記エッジ時刻との差を前記位相差として計算し、前記エッジ時刻と前記タイムスタンプが一致するように前記プロセッサから出力されるオーディオクロックの速度を調整する、
ことを特徴とするオーディオ装置。
【請求項14】
請求項
13に記載のオーディオ装置であって、
前記プロセッサは、前記パルスデータの開始時刻を検出し、前記開始時刻と前記所定の長さに基づいて前記終了時刻を検出する、
ことを特徴とするオーディオ装置。
【請求項15】
請求項
14に記載のオーディオ装置であって、
前記プロセッサは、前記パルスデータの振幅が
所定値増加する点を前記パルスデータの開始時刻として検出する、
ことを特徴とするオーディオ装置。
【請求項16】
請求項12に記載のオーディオ装置であって、
前記プロセッサとは別
個に設けられたエッジ検出モジュールを更に含み、
前記エッジ検出モジュールは、前記
プロセッサから出力されるオーディオクロックの振幅が所定値増加する点を前記オーディオクロックのエッジ時刻として検出し、
前記プロセッサは、前記エッジ検出モジュールから前記エッジ時刻を読み出し、
前記タイムスタンプと前記エッジ時刻との差を前記位相差として計算し、前記エッジ時刻と前記タイムスタンプが一致するように前記プロセッサから出力されるオーディオクロックの速度を調整する、
ことを特徴とするオーディオ装置。
【請求項17】
請求項
16に記載のオーディオ装置であって、
前記エッジ検出モジュールは、前記パルスデータの振幅が
所定値増加する点を前記パルスデータの開始時刻として検出し、
前記プロセッサは、前記エッジ検出モジュールから前記パルスデータの開始時刻を読み出し、前記開始時刻と前記所定の長さに基づいて前記終了時刻を検出する、
ことを特徴とするオーディオ装置。
【請求項18】
請求項
13から17の何れかに記載のオーディオ装置であって、
前記プロセッサは、前記エッジ時刻が前記タイムスタンプより早い場合には前記
プロセッサから出力されるオーディオクロックの速度を減少し、前記タイムスタンプが前記エッジ時刻より早い場合には前記
プロセッサから出力されるオーディオクロックの速度を速める、
ことを特徴とするオーディオ装置。
【請求項19】
請求項12から18の何れかに記載のオーディオ装置であって、
前記メモリは、無音データを保存しており、
前記プロセッサは、前記タイムスタンプが前記パルスデータの終了時刻より遅い場合、前記タイムスタンプと前記パルスデータの終了時刻の差に相当する期間前記無音データを出力し、前記無音データが出力された後に前記オーディオデータを出力する、
ことを特徴とするオーディオ装置。
【請求項20】
請求項19に記載のオーディオ装置であって、
前記プロセッサは、前記タイムスタンプが前記パルスデータの終了時刻より早い場合、前記タイムスタンプと前記パルスデータの終了時刻の差に相当する
期間の前記オーディオデータをカットして前記オーディオデータを調整し、前記調整されたオーディオデータを出力する、
ことを特徴とするオーディオ装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、通信ネットワークを通じて接続された他の装置とオーディオデータの再生を同期させるオーディオ装置に関する。また、通信ネットワークを通じて接続された他の装置とオーディオクロックを同期させるオーディオ装置に関する。
【背景技術】
【0002】
図1に示されるようなサーバ1とサーバ1からオーディオデータを受信するクライアント装置2を含むシステムにおいては、サーバ1とクライアント装置2に間においてオーディオデータの同期を行うための方策が講じられている。そして、サーバ1とクライアント装置2の間でオーディオデータの同期を図るためには、クライアント装置2からオーディオデータの出力タイミングあるいはクライアント装置2内での遅れを検出することが重要である。即ち、サーバ1からクライアント装置2にオーディオデータを配信するシステムにおいては、クライアント装置2において、オーディオデータを受信して(即ち、オーディオデータがバッファメモリに書き込まれて)から外部へ出力するまでに遅れが生じる。これは、主にクライアント装置2のソフトウエア処理によるものであり、遅れの時間はCPU等の制御ユニット23の処理時間に相当する。この遅れ時間は予想することはできるが、正確に算出することは難しい。したがって、この問題を解決するためには、クライアント装置内での出力遅れを正確に計測する、あるいは、クライアント装置からの出力時刻の正確な検出が必要である。
【0003】
制御ユニット23からオーディオデータやオーディオクロックを受信し、処理したオーディオデータをスピーカー4に出力するデジタル‐アナログ変換回路(DAC:Digital to Analog Converter)3内においても遅れは生じる。しかしながら、DAC3内の遅れは特定のハードウエアによるものであり、したがって、遅れの時間は一定であり固定である。したがって、クライアント装置2の遅れに対処することがより重要である。
【0004】
加えて、サーバ1とクライアント装置2はそれぞれオーディオクロックを生成し、各オーディオクロックに基づいてオーディオデータを再生する。したがって、サーバ1のオーディオクロックとクライアント装置2のオーディオクロックとの間に位相差がある場合、サーバ1による再生とクライアント装置2による再生との間にタイムラグが生じる。
【0005】
これまで、二つ以上の装置間でオーディオデータの同期を図るための方策を講じている先行文献がある。例えば、下記特許文献1は、サーバがサーバクロック信号のクロックパルス数を計算して、それをクライアント装置に送信することを開示している。クライアント装置もクライアントクロック信号のクロックパルス数を計算し、サーバから受信したサーバクロック信号のクロックパルス数と、計算したクライアントクロック信号のクロックパルス数とを比較する。そして、比較結果に基づいて、クライアント装置がクライアントクロック信号の周波数を調整する。
【0006】
また、下記特許文献2は、サーバがオーディオフレームをクライアント装置に送信した時刻T_TIMEと、クライアント装置がオーディオフレームを受信した時刻R_TIMEとの差に基づいて、クライアント装置が分周器を調整することを開示している。また、オーディオデータに付与された時刻P_TIMEと、クライアント装置がそれを受信した時刻R_TIMEとの差に基づいて、オーディオクロックの周波数を調整することも開示されている。
【先行技術文献】
【特許文献】
【0007】
【文献】特開2004-357096号公報
【文献】特開2011-160272号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
本出願の目的は、オーディオデータの出力時刻が正確に検出され、検出された出力時刻に基づいてオーディオデータが調整され、それによって、オーディオデータの再生開始が同期されるオーディオ装置を提供することにある。他の目的は、出力されるオーディオクロックのタイミングが定常的に検出され、そして、検出されたタイミングに基づいてオーディオクロックの速度が調整され、それによって、当初のオーディオクロックが出力されてから所定時間内に、オーディオデータに付与されたタイムスタンプとオーディオクロックの位相差が解消されるオーディオ装置を提供することにある。他の目的は、データのエッジ時刻を検出するエッジ検出メカニズムを提供し、それによって、オーディオ装置からの出力時刻の正確な検出を保証し、そして、クライアント装置における上記結果を達成することにある。他の目的は、サーバとクライアント装置を同期させるうえで、サーバは何ら手段を講じる必要がないオーディオ装置を提供することにある。
【課題を解決するための手段】
【0009】
上記目的を達成するために、本発明の一態様に係るオーディオ装置は、他の装置からオーディオデータを受信するオーディオ装置であって、前記オーディオ装置は、命令と所定の長さを有するパルスデータを保存するメモリと、前記メモリに保存された命令を実行するプロセッサを含み、前記プロセッサは、前記オーディオデータと前記オーディオデータに添付されたタイムスタンプを受信し、前記オーディオ装置が前記オーディオデータを受信した時に、前記所定の長さを有するパルスデータを出力し、前記パルスデータの終了時刻を検出し、前記パルスデータの終了時刻と前記タイムスタンプを比較し、前記比較の結果に基づいてオーディオデータを調整し、前記パルスデータが出力された後に前記調整されたオーディオデータを出力する。
【0010】
本発明の1つの観点のオーディオ装置は、他の装置からオーディオデータを受信するオーディオ装置であって、前記オーディオ装置は、命令を保存するメモリと、前記メモリに保存された命令を実行するプロセッサを含み、前記プロセッサは、前記オーディオデータと前記オーディオデータに添付されたタイムスタンプを受信し、前記オーディオデータとオーディオクロックを出力し、前記オーディオクロックのエッジ時刻を検出し、前記オーディオクロックのエッジ時刻と前記タイムスタンプの間に位相差があるか否か決定し、前記決定の結果に基づいて前記オーディオクロックの速度を調整し、前記オーディオクロックのエッジ時刻と前記タイムスタンプの間の位相差がなくなるようにする。
【0011】
本発明の一態様に係るオーディオ装置は、他の装置からオーディオデータを受信するオーディオ装置であって、前記オーディオ装置は、命令と所定の長さを有するパルスデータを保存するメモリと、前記メモリに保存された命令を実行するプロセッサを含み、前記プロセッサは、前記オーディオデータと前記オーディオデータに添付されたタイムスタンプを受信し、前記オーディオ装置が前記オーディオデータを受信した時に、前記所定の長さを有するパルスデータを出力し、前記パルスデータの終了時刻を検出し、前記パルスデータの終了時刻と前記タイムスタンプを比較し、前記比較の結果に基づいてオーディオデータを調整し、前記調整されたオーディオデータとオーディオクロックを出力し、前記調整されたオーディオデータは前記パルスデータが出力された後に出力され、そして、前記オーディオクロックと前記タイムスタンプの間に位相差がある場合には、前記オーディオクロックの速度を調整する。
【0012】
他の目的や発明の他の態様は、発明の詳細な説明から理解できる。
【図面の簡単な説明】
【0013】
【
図3A】エッジ検出モジュールがどのように機能するかの例を示す図である。
【
図3B】エッジ検出モジュールがどのように機能するかの例を示す図である。
【
図4】エッジ検出モジュールの他の実施例を示す図である。
【
図6】サーバとクライアン装置間でオーディオデータの出力時刻を同期させるステップを示す図である。
【
図8A】オーディオデータをどのように調整するのかの例を示す図である。
【
図8B】オーディオデータをどのように調整するのかの例を示す図である。
【
図8C】オーディオデータをどのように調整するのかの例を示す図である。
【
図9】オーディオクロックとタイムスタンプの位相差を示す図である。
【
図10】位相合わせプロセスの一例を示す図である。
【
図12】位相差とPLL制御による制御の一例を示す図である。
【発明を実施するための形態】
【0014】
[システムの全体構成]
図2はシステムの全体構成を示す。サーバ1はオーディオデータとオーディオデータに添付されたタイムスタンプを、通信ネットワーク11(無線又は有線の通信ネットワーク)を通じてクライアント装置2に送信する。クライアント装置2は、オーディオデータと、オーディオデータに添付されたタイムスタンプとを、ネットワークインターフェイス21を介して受信し、オーディオデータの出力時刻がサーバ1と同期するようにオーディオデータを調整する。クライアント装置2はオーディオデータの再生タイミングを示すオーディオクロックを生成する。クライアント装置2はオーディオクロックの速度を変更し、タイムスタンプとオーディオクロックの位相差が無くなるようにする。これらのプロセスの詳細は後述する。オーディオクロックと処理されたオーディオデータは、オーディオインターフェイス22を通じて、デジタル‐アナログ変換回路 (DAC:Digital to Analog Converter)3に送信される。DAC3は、受信したオーディオデータを、オーディオクロックで示されたタイミングのアナログオーディオ信号に変換する。DAC3でオーディオデータが処理された後、オーディオデータは再生のためにスピーカ(図示なし)に送信される。更に、サーバ1はクライアント装置2にオーディオデータを出力するとともに、再生のためのオーディオデータを出力する。
【0015】
図2に示されるように、クライアント装置2は、1つ以上の制御ユニット23(例えばCPU:Central Processing Unit)、及びプログラムや必要なデータが保存されたROMやRAMなどのメモリ24を含んでいる。制御ユニット23は、メモリ24に保存されたプログラムを実行することによって、クライアント装置2の機能を果たす。例えば、制御ユニット23は、オーディオデータの前に出力されるパルスデータのエッジ時刻を検出し、またオーディオクロックのエッジ時刻も検出する、エッジ検出モジュール25を含んでいる。また、制御ユニット23は、オーディオクロックを生成し、オーディオクロックの速度を調整する位相同期ループ(PLL:Phase Locked Loop)26を含んでいる。加えて、制御ユニット23は、オーディオクロックのエッジ時刻とパルスデータのエッジ時刻を検出するのに使用されるクロック27を含んでいる。クロック27は、システム全体に使用されるクロックとは異なる。オーディオデータは、エッジ検出モジュール25の検出結果を踏まえて、
図2の「オーディオデータ調整」セクションで処理される。制御ユニット23の詳細な機能は後述する。
【0016】
サーバ1はクライアント装置2と同様なハードウエア構成を有している。サーバ1のクロックとクライアント装置2のクロック27は共通の時刻情報を有し、サーバ1のクロックとクライアント装置2のクロック27は、両クロックが同時刻を示すように調整される。例えば、サーバ1は周期的に、時刻情報を含む同期信号をクライアント装置2に送信する。そして、クライアント装置2のクロック27は、同期信号に含まれる時刻情報に基づいて調整される。
【0017】
制御ユニット23はCPUに限定されるものではなく、プロセッサやマイクロコンピュータも制御ユニット23として用いてよい。
【0018】
本開示では、エッジ検出モジュール25及びPLL26は重要な機能を果たし、以下で説明される。
【0019】
[エッジ検出モジュール]
エッジ検出モジュール25は、データ信号の振幅を継続して監視し、データ信号の振幅が0から所定値(例えば0から+1)へ変化する点を検出する。そして、エッジ検出モジュール25は、データの振幅が所定値だけ増加する前記点をエッジと判断する。ここで、本開示の一例として、所定値はゼロではない。故に、例えば
図3Aにおいては、エッジ検出モジュール25は、A点をエッジと判断する。そして、クロック27を参照して、エッジ検出モジュール25はA点の時刻を検出する(即ち、パルスデータDpのエッジ時刻を検出する)。
【0020】
したがって、本開示では、エッジ検出モジュール25はこの機能を使用して、(i)オーディオデータの頭出しの位置を決めるために使用されるパルスデータのエッジを検出する(
図3Aは、パルスデータDPの一例を示す)。そして、エッジ検出モジュール25は、クロック27を参照してパルスデータのエッジ時刻を検出する。また、エッジ検出モジュール25は、(ii)オーディオクロックのエッジを検出し、そして、クロック27を参照してオーディオクロックのエッジ時刻を検出する(
図3Bは、オーディオクロックCaの一例を示す)。検出されたオーディオクロックのエッジ時刻とオーディオデータに付加されたタイムスタンプは、当該タイムスタンプとオーディオクロックとの位相差の決定に用いられるものであり、詳細は後述する。
【0021】
データが複数のエッジを有する場合、エッジ検出モジュール25は各エッジの時刻を検出することも可能である。また、エッジ検出モジュール25は、所定の間隔毎のエッジ時刻を検出することもできる。例えば、
図3Bに見られるように、オーディオクロックCaが48000Hzであれば、エッジ検出モジュール25は、48000エッジ毎にエッジ時刻を検出することができる。従って、
図3Bでは、エッジ検出モジュール25は、T1とT2を検出する。
【0022】
エッジ検出モジュール25はCPUのような制御ユニット23には含まれなくてもよく、クライアント装置2では、エッジ検出モジュール25が制御ユニットとしてのCPU23とは別に設けても良い。
図4は、エッジ検出モジュール25を制御ユニットとしてのCPU23とは別に設けた例を示す。
図4に見られるように、エッジ検出モジュール25はオーディオクロックのエッジとパルスデータのエッジとを検出し、そして、クロック27を参照して、オーディオクロックのエッジ時刻とパルスデータのエッジ時刻とを検出する。そして、検出結果であるエッジ時刻はレジスターに送られる。CPU23はエッジ検出モジュール25を制御し、レジスターを通じて検出結果(エッジ時刻)を読み込む。
図4に示されるように、エッジ検出モジュール25をCPU23とは別に設ける場合、エッジ検出モジュール25を既存の装置のCPUに接続してもよい。即ち、既存のクライアント装置を用いてエッジ検出機能を有するクライアント装置2をより簡単に構成することができる。また、制御ユニット23は、2つのCPUからなり、1つのCPUはエッジ検出モジュール25(あるいは、エッジ検出機能)を有し、他のCPUがPLL26を有してもよい。この場合にも上述の利点(即ち、既存のクライアント装置を用いてエッジ検出機能を有するクライアント装置2を構成することができると言う利点)は得られる。プロセッサやマイクロコンピュータもCPUの変わりに制御ユニットとして使用することもできる。
【0023】
クロック27はパルスデータのエッジ時刻とオーディオクロックのエッジ時刻を検出する際に使用され、システムの全体に使用されるクロックとは異なる。各クライアント装置2はそれぞれクロック27を有している。クロック27はエッジ検出モジュール25の外部に設けることもできる。
【0024】
[位相同期ループ(PLL)]
位相同期ループ(PLL:phase locked loop)26は、オーディオクロックの速度(換言すれば、周波数)を制御する機能を有し、可変なオーディオクロックを生成する。即ち、PLL26は、オーディオデータのタイミング情報であるオーディオクロック(例えば、1,0,1,0,1,0,1,0,・・・)を生成し出力する。
図3Bは、オーディオクロックCAの一例を示す。オーディオクロックCaは既定の周波数(例えば、48kHz)を有する。そして、オーディオデータに添付されたタイムスタンプとオーディオクロックのエッジ時刻(例えば、T1)との間で位相差がある場合、PLLはオーディオクロックの速度(換言すれば、周波数)を調整して、タイムスタンプとオーディオクロックのエッジ時刻が所定時間内に同期する様にする。なお、上述のように、エッジ検出モジュール25がオーディオクロックCaのエッジ時刻(例えば、T1)と、オーディオデータに付加されたタイムスタンプとを検出する。
【0025】
[同期の考え方]
本開示においては、サーバ1とクライアント装置2間での音声再生の同期は以下の2つの観点から行われる。(i)オーディオデータの出力時刻を同期させ、それによって、サーバ1とクライアント装置2間での再生開始を同期させる。(ii)サーバ1から出力されるオーディオデータとクライアント装置2で調整されたオーディオデータとの位相差を無くし、所定時間内に音を同期させる。これらの観点での同期は複数のクライアント装置2の間でも可能である。
【0026】
図5Aと
図5Bは、本開示における同期の例を示す。オーディオデータの出力時刻の同期化では、サーバ1のオーディオデータを出力と、クライアント装置2のオーディオデータの出力とが同時に行われるように、クライアント装置2におけるオーディオデータの再生のタイミングが調整される。
図5A、
図5Bに示すように、サーバ1とクライアント装置2による音声データの再生が同じ時刻(t=t0)に開始される。
図5Aはサーバ1におけるオーディオデータの再生の開始時刻がt0であることを示し、
図5Bはクライアント装置2におけるオーディオデータの再生の開始時刻がt0であることを示している。
【0027】
また、サーバ1及びクライアント装置2は、それぞれオーディオクロックを生成するため、サーバ1のオーディオクロックとクライアント装置2のオーディオクロックとの間に位相差が生じやすい。サーバ1とクライアント装置2との間で同じタイミングで音を発音させる(即ち、位相差を無くす)には、クライアント装置2から出力されるオーディオクロックの速度を制御して、オーディオデータに添付されたタイムスタンプと、オーディオクロックのエッジ時刻との位相差が所定時間内に無くなるようにされる。これにより、
図5Aおよび
図5Bに示されるように、サーバ1及びクライアント装置2は、所定時間(t=tn)内において同じ音を発生する。
【0028】
次に、サーバ1とクライアント装置2間でオーディオデータの出力時刻の同期(即ち、オーディオデータの再生の開始時刻の同期)のためのステップと、サーバ1とクライアント装置2間の位相差を除去するステップについて説明する。
【0029】
[オーディオデータの出力時刻の同期ステップ]
図6は、サーバ1とクライアント装置2との間でオーディオデータの出力時刻を同期させるステップを示す。これらのステップでは、クライアント装置2がサーバ1と同じ時刻にオーディオデータを出力する(または、クライアント装置2が音声データの出力を開始する際に同期を発生させる)ために、受信したオーディオデータがどのように調整されるかのステップが示されており、それにより、サーバ1とクライアント装置2との間でオーディオデータの再生の開始時刻を同期させる。本実施例では、制御ユニットとしてのCPU23がメモリ24に保存されたプログラムを実施することにより、各ステップを実行するものとしている。各ステップは以下の様に進む。
【0030】
ステップ1において、サーバ1はタイムスタンプTsが付されたオーディオデータDaを送信する。ステップ2において、クライアント装置2は、サーバ1から送信されたタイムスタンプTs付きのオーディオデータDaを受信する(
図8A,8B,8Cの「要求データタイミング」を参照)。
【0031】
ステップ3において、クアイアント装置2は、タイムスタンプTs付きのオーディオデータDaを受信すると、
図7に示されるようなパルスデータDp(1,0,0,0,・・・)出力する。パルスデータDpは、開始点Aおよび終了点Bからなる所定の長さTpを有する。後述するように、パルスデータDpは、クライアント装置2からのオーディオデータの出力時刻を決定するために用いられる。パルスデータDpの長さTpは、過去のオーディオデータのタイムスタンプに基づいて決定される。パルスデータDpの長さTpの一例は、10ミリ秒である。しかしながら、パルスデータDpの長さTpはこの長さに限定される必要はなく、意図する目的を果す長さであれば、どのような長さでも構わない。パルスデータDpはメモリ24に保存されており、クライアント装置2がタイムスタンプTs付きのオーディオデータDaをサーバ1から受信したときに出力される。
【0032】
図7(
図3Aも参照)に示されるように、開始点AではパルスデータDpの振幅は0から+1に増加する(即ち、振幅は+1増加する)。そこで、ステップ4において、エッジ検出モジュール25は、パルスデータDpの開始点Aがエッジであると判断し、クロック27を参照してパルスデータDpのエッジ時刻Tdを検出する。エッジ時刻TdはパルスデータDpの開始時刻である。このステップはエッジ時刻Tdが検出されるまで繰り返される。エッジ時刻Tdが検出されると、ステップ5に進む。
【0033】
ステップ5において、CPU23は、オーディオデータに付されたタイムスタンプTsと、(Td+Tp)とを比較して、Ts<(Td+Tp)であるか否かを判断する。ここで、(Td+Tp)はパルスデータDpの終了点Bの時刻である。即ち、(Td+Tp)はパルスデータDpの終了時刻である。したがって、このステップ5では、タイムスタンプTs がパルスデータDpの終了時刻(Td+Tp)よりも早いか否かが判断される。パルスデータDpの終了時刻(Td+Tp)は開始時刻Tdに所定の長さTpを加えることによって得られる。以下説明するように、パルスデータDpの終了時刻(Td+Tp)は、調整されたオーディオデータの出力時刻を決定するために使用される。
【0034】
ステップ6において、Ts<(Td+Tp)の場合、CPU23は、(Td+Tp)-Tsの期間に対応するオーディオデータをカットする。ここで、Ts<(Td+Tp)は、
図8Aに示されるように、オーディオデータに付与されたタイプスタンプTsがパルスデータDpの終了時刻(Td+Tp)よりも早いという意味である。
【0035】
図8Aは、ステップ6におけるオーディオデータの調整方法の一例を示している。
図8Aは、クライアント装置2が受信したオーディオデータDa(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)(「要求データタイミング」を参照)と、クライアント装置2が出力するオーディオデータDa(a5,a6,a7,a8,a9,a10,a11)と、パルスデータDpが開示されている(「出力データ」を参照)。これらのデータはクロック27の時間(t)に沿って示されている。オーディオデータDa(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)に付与されたタイムスタンプTsは、オーディオデータの再生要求タイミングを示している。
図8Aに示されるように、タイムスタンプTsはパルスデータDpの終了時刻(Td+Tp)よりも早く、また、a0,a1,a2,a3,a4([(Td+Tp)-Ts]の期間に相当する)のオーディオデータDaが[(Td+Tp)-Ts]に対応する。したがって、a0,a1,a2,a3,a4のオーディオデータDaはカットされ、a5,a6,a7,a8,a9,a10,a11のオーディオデータDaがパルスデータDpの後に出力される(「出力データ」を参照)。a0,a1,a2,a3,a4をカットすることにより、クライアント装置2におけるオーディオデータDa(a5,a6,a7,a8,a9,a10,a11)の出力時刻は、パルスデータDpの終了時刻(Td+Tp)にセットされる(「出力データ」参照)。したがって、パルスデータDpの終了時刻(Td+Tp)からサーバ1とクライアント装置2との間でオーディオデータDa(a5,a6,a7,a8,a9,a10,a11)の出力時刻が一致する。これにより、オーディオデータDa(a5,a6,a7,a8,a9,a10,a11)の再生のタイミングがサーバ1とクライアント装置2との間で同期する。また、パルスデータDpの終了時刻(Td+Tp)は、クライアント装置2でオーディオデータDa(a5,a6,a7,a8,a9,a10,a11)を出力する実際の開始時刻あり、したがって、クライアント装置2がオーディオデータDa(a5,a6,a7,a8,a9,a10,a11)の出力を開始した時点からサーバ1との同期が計られている。
【0036】
複数のクライント装置2が存在する場合であっても同期を取ることができる、各クライアント装置2が独自の状況に応じてオーディオデータDaの出力時刻を調整できるためである。
【0037】
ステップ7はTs>(Td+Tp)の場合を示しており、CPU23は[Ts-(Td+Tp)]の期間に相当する無音データを追加する。無音データとは再生時に音声を生じないデータのことである。ここで、Ts>(Td+Tp)とは、
図8B示されるようにオーディオデータDaに付与されたタイプスタンプTsがパルスデータDpの終了時刻(Td+Tp)よりも遅い状態である。
【0038】
図8Bと
図8Cは、ステップ7におけるオーディオデータの調整方法の一例を示している。
図8Bは、クライアント装置2が受信するオーディオデータDa(a0,a1,a2,a3,a4)に付されているタイムスタンプTs(「要求データタイミング」を参照)が、パルスデータDpの終了時刻(Td+Tp)より遅い場合を示している(「パルスデータ」 およびクロック27の時刻を参照)。そこで、この場合、
図8Cに示されるように、CPU23は、[Ts-(Td+Tp)]の期間に相当する無音データDsをオーディオデータDa(a0,a1,a2,a3,a4)の前に追加する。そして、パルスデータDpの後に出力される無音データDsを出力した後にオーディオデータDa(a0,a1,a2,a3,a4)を出力する。したがって、無音データDsを追加することにより、クライアント装置2は、サーバ1と同じ時刻(即ち、Ts)にオーディオデータDa(a0,a1,a2,a3,a4)を出力することができ、再生開始時刻をサーバ1と同期させることができる。無音データDsは最初はメモリ24に保存されており、必要に応じて出力される。クライント装置2が複数ある場合にも、各クライアント装置2が独自の状況に応じてオーディオデータの再生開始時刻を調整できるので、同期させることができる。
【0039】
ステップ8は、Ts =(Td+Tp)の場合を示す。この場合、オーディオデータDaのタイムスタンプTsがパルスデータDpの終了時刻(Td+Tp)に相当するため、オーディオデータDaを調整する必要はない。したがって、CPU23はオーディオデータDpを調整することなく出力する。
【0040】
ステップ6,7,8は、
図2の「オーディオデータ調整」セクションで行なわれる。
【0041】
ステップ9において、CPU23は、ステップ6,7,8から受けたオーディオデータDaを、
図2に示したオーディオインターフェイス22から出力する。 上述したように、オーディオデータDaには無音データDsが含まれていてもよいし、オーディオデータDaの先頭部分がカットされていてもよい。このステップでは、タイプスタンプTsとオーディオクロックの位相差Dfは調整されていない(以下のステップで行われる)。
【0042】
上述の通り、パルスデータDpを用いることにより、クライアント装置2では、パルスデータDpの終了時刻(Td+Tp)を基に、オーディオデータDaの出力時刻を正確に調整できる。したがって、オーディオデータDaの再生の開始時刻をサーバ1とクライアント装置2との間で同期させることができる。更に、エッジ検出モジュール25がパルスデータDpのエッジ時刻(即ち、開始点の時刻)を検出し、その後、その時刻はパルスデータDpの終了時刻(Td+Tp)の計算に用いられる。したがって、エッジ検出モジュール25は上述の結果を保証する。
【0043】
クライント装置2が複数ある場合にも、各クライアント装置2が独自の状況に応じてオーディオデータの出力時刻を調整できるので、同期を取ることができ、そして、サーバ1では何ら手段を講じる必要がない。更に、上述のように、プロセッサやマイクロコンピュータを制御ユニットとすることもできる。したがって、CPUに代えて、プロセッサやマイクロコンピュータがクライアント装置2で上述の機能を果してもよい。
【0044】
[位相同期ステップ]
オーディオデータに付与されているタイムスタンプは、サーバ1からの再生の要求タイミングである。オーディオクロックのエッジ時刻は、クライアント装置2からのオーディオデータの実際の再生時刻を示すタイミング情報である。従って、オーディオクロックのエッジ時刻がタイムスタンプに一致しない場合に位相差が生じる。
【0045】
図9は位相差Df(即ち、タイムスタンプTsとエッジ時刻Teとの差)を示しており、この位相差Dfはエッジ検出モジュール25を使用することによって計算される。エッジ検出モジュール25は、オーディオクロックCaのエッジ時刻Teをクロック27を参照して
検出する。そして、CPU23はタイムスタンプTsとエッジ時刻Teとの差を計算する。このタイムスタンプTsとエッジ時刻Teの差が位相差Dfとなる。
【0046】
ここで、位相差DfはTs-(Td+Tp)あるいは(Td+Tp)-Tsを用いて以下のように表される。
((Td+Tp)-Ts)mod(1/Fs)または(Ts-(Td+Tp))mod(1/Fs)。ここで、modはモジュロ演算(「モジュラス」と呼ばれることもある)であり、Fsはオーディオデータの周波数であり、固定の定数である。したがって、上述のステップ9では、CPU23は、上述の式で表される位相差Dfを有するオーディオデータを出力する。
【0047】
更に、位相差Dfは、エッジ時刻TeとタイムスタンプTsの差であるため、位相差DfはオーディオクロックCaの速度に依存する。したがって、CPU23は、PLL26を制御して、エッジ時刻TeとタイムスタンプTsが一致するようにオーディオクロックCaの速度を調整する。
【0048】
図10は位相同期ステップの一例を示す。ここでは、オーディオクロックCaのエッジ時刻TeがタイムスタンプTsに一致するようにオーディオクロックの速度を調整することにより、サーバ1とクライアント装置2との間で位相差を無くす例を示している。この実施例では、当初のオーディオクロックが出力されてからn秒後(nは整数で、n≧2)に、オーディオクロックのエッジ時刻Teがタイムスタンプ(Ts+n)と一致することを想定している。オーディオクロックは48kHzであり、これは一秒間に48000エッジあることを意味している。エッジ検出モジュール25は、48000エッジ毎にエッジ時刻を検出する(
図3Bを参照)。即ち、エッジ検出モジュール25は、1秒毎にエッジ時刻を検出する。
【0049】
また、本実施例では、CPU23が制御ユニットとしてメモリ24に保存されたプログラムを実施することにより、各ステップを実行するものとしている。ステップは以下の様に進む。
【0050】
ステップ11において、エッジ検出モジュール25はクロック27を参照して、t=0におけるオーディオクロックCaのエッジ時刻Teを検出し、位相差Dfを決定する。そして、CPU23は、t=0における位相差DfをAcc(0)とする。
【0051】
図11Aは、正の位相差を示す。これは、オーディオクロックCaが「1」のレベルである間にタイムスタンプTsが発生した場合であり、エッジ時刻Te(即ち、オーディオクロックCa)がタイムスタンプTsより早い場合である。そして、位相差は+Dfとなる。
【0052】
一方、
図11Bは負の位相差を示している。オーディオクロックCaが「0」のレベルである間にタイムスタンプTsが発生した場合、エッジ時刻Te(即ち、オーディオクロックCa)がタイムスタンプTsより遅いので、位相差は-Dfとなる。
【0053】
図11A,11Bに示されるように、本実施例では、正の位相差(+Df)と負の位相差(-Df)を設定することにより、初期の位相差Dfを1サンプル内に収めることができる。
【0054】
ステップ12において、CPU23は位相調整処理(即ち、位相差の同期プロセス)をn=0だけ開始する。ステップ13において、CPU23はエッジ時刻T(n)が取得されたか否か判断する。エッジ時刻T(n)が取得できない場合には、このステップをエッジ時刻T(n)が取得できるまで繰り返す。取得された場合、処理はステップ14に進む。ステップ14において、CPUは、n=0であるか否かを判定する。n=0であれば処理はステップ15に進む。n=0でなければステップ16に進む。ステップ15において、CPU23はnに1を加算して、ステップ13に進む。
【0055】
ステップ16において、CPU23は、エッジ時刻T(n)とエッジ時刻T(n-1)との間に調整された位相差(d)を算出する。エッジ時刻は1秒毎に検出されるので、調整された位相差(d)は以下の様に表される。
d=T(n)-T(n-1)-1(秒)
【0056】
ステップ17では、CPU23は、調整された位相差(d)に基づいて、n秒後の位相差を計算する。:Acc=(Acc(n-1)+d)
【0057】
ステップ18では、CPU23は、Acc=0であるか否かを判定する。Acc=0であれば処理はステップ15に戻る。また、Acc=0でなければ処理はステップ19に進む。
【0058】
ステップ19では、CPU23は、Acc>0であるか否かを判定する。これは、t=nにおけるオーディオクロックCaがタイムスタンプTsより早いか否かをCPU23が判定することを意味している。Acc>0であれば処理はステップ20に進み、Acc>0でなければ処理はステップ21に進む。
【0059】
ステップ20,21においては、CPU23は、ステップ19の結果を踏まえ、位相差Dfが無くなるように、PLL26を制御してオーディオクロックCaの速度を調整する。
【0060】
ステップ20は、Acc(n)>0である場合、即ち、位相差Acc(n)が正である場合を示す。即ち、
図11Aに示されるように、エッジ時刻Te(換言すると、オーディオクロックCa)はタイムスタンプTsよりも早い。したがって、CPU23は、PLLを操作してオーディオクロックCaの速度を遅くする。即ち、PLL26はオーディオクロックCaの周波数を下げる。そして、処理はステップ15に戻る。
【0061】
ステップ21はAcc(n)<0である場合、
図11Bに示されるようにエッジ時刻Te(換言すると、オーディオクロックCa)がタイムスタンプTsより遅い場合を示す。CPU23は、PLL26を制御することによりオーディオクロックCaの速度を早くする。即ち、PLL26はオーディオクロックCaの周波数を高くする。そして、処理はステップ15に戻る。
【0062】
以上の様に、エッジ検出モジュール25は、オーディオクロックCaのエッジ時刻TeとタイムスタンプTsとを所定のインターバルで継続的に検出することで、位相差Dfの検出を確実なものとしている。そして、位相差Dfに基づいて、PLL26がオーディオクロックCaの速度を調整することによって(換言すると、オーディオクロックCaの周波数を調整することによって)、サーバ1とクライアント装置2間の位相差Dfが無くなるように除去される。
【0063】
PLL26は可変オーディオクロックを生成し、PLLパラメータ値を変更することによって、オーディオクロックの速度又は周波数を変えることができる。PLL26は、以下のパラメータによってオーディオデータの周波数を変更することができる。(i)正のパラメータ値:そのパラメータ値に従ってオーディオクロックの速度が増加する、あるいは、(ii)負のパラメータ値:そのパラメータ値に従ってオーディオクロックの速度が低減する。ステップ20では、PLL26のパラメータは負の値に設定され、ステップ21ではPLLのパラメータは正の値に設定される。
【0064】
適切なパラメータ値を設定することにより、ステップ18で位相差Acc=0となるように設計されている。即ち、適切なパラメータ値を設定することにより、当初の位相差をある時点でゼロにすることができる。
【0065】
例えば、初期のオーディオクロックを出力してからn秒経過後の調整量PLL(n) は、以下のように表すことができる。
PLL(n)=A×P×(Acc(n)+Constant)+B×PLL(n-1)+C×PLL(n-2)。ここで、A,B,C はフィルタ係数であり、P,Constantは位相差Accと調整量PLL(n)との間の関係を示す。
【0066】
ここで一例として、位相差Accと調整量PLL(n)の関係を線形とし、P=1,Constant=0とする。また、A=1/4,B=1/2,C=1/4とする。すると、調整量PLL(n)の一例は、以下のように定義される。
PLL(n)=(1/4)×Acc(n)+(1/2)×PLL(n-1)+(1/4)×PLL(n-2)
ここで、PLL(-1)=PLL(-2)=PLL(0)=0とする。
【0067】
図12は、位相差Acc(n)とPLL制御による調整値PLL(n)との関係の一例を示す。
図12において、線Aは位相差Acc(n)を示し、線Bは上記の式で表される調整料PLL(n)を示す。
図12は調整値PLL(n)がどのように位相差Acc(n)に到達するかを示している。
図12に示されるように、調整値PLL(n)は徐々に増えていくため、オーディオクロックの速度も徐々に変化し、位相差Acc(n)と調整量PLL(n)との差が徐々に減っている。そして、ある時点(例えば、約40秒後の時点)で調整値PLL(n)は位相差Acc(n)と等しくなり、これにより位相差が除去される。
図12では、位相差が1000ナノ秒の例を示している。しかしながら、位相差が異なる値の場合には、上述の式PLL(n)を適用することができる。また、上述の概念は、位相差が正の値の場合と位相差が負の値の場合との両者に適用できる。
【0068】
上述の実施例では、オーディオクロックCaは48kHzであり、エッジ検出モジュール25は、48000エッジ毎にエッジ時刻を検出する(即ち、エッジ検出モジュール25は、1秒毎にエッジ時刻を検出する)。しかしながら、オーディオクロックCaの周波数は48kHzに限定されない。代わりに、意図する目的を果すことができる限り、オーディオクロックCaは異なる周波数を有してもよく、異なるインターバルでエッジ時刻が検出されてもよい。さらに、上述したように、CPUに代えてプロセッサやマイクロコンピュータが上述のスッテップを実行してもよい。
【0069】
[効果]
以上説明したように、クライアント装置2は、特定の時刻(即ち、パルスデータの終了時刻)を設定し、その特定時刻に基づいてオーディオデータの出力開始時刻を決定することができる。したがって、クライアント装置内の遅延に拘わらず、オーディオデータの出力時刻を正確に決定することができる。また、オーディオデータに添付されているタイムスタンプが特定時刻より早いか遅いかに拘わらず、オーディオデータの出力開始時刻が決定される。また、クライアント装置2はオーディオデータの出力を開始した時点から、オーディオデータの出力時刻をサーバ1に同期させることができる。これにより、サーバ1とクライアント装置2との間でオーディオデータの再生を同時に開始することができる。また、クライント装置2が複数ある場合にも、各クライアント装置2が独自の状況に応じてオーディオデータの出力時刻を調整できるので、同期を取ることができる。
【0070】
さらに、オーディオクロックとタームスタンプの当初の位相差は1サイクル内に制限される(
図11A及び
図11Bを参照)。その後、オーディオクロックとタームスタンプの位相差を継続的に監視し、PLLがオーディオクロックの速度を調整することで、所定期間内にサーバ1とクライアント装置2との間の位相差を無くす(同期させる)ことができる。出力されたオーディオクロックの速度が監視されるので、監視結果はオーディオクロックの実際の状況を反映している。したがって、オーディオクロックの実際の状況を基にしてオーディオクロックの速度を調整することにより、より信頼性のある同期が図ることができる。このことは、クライント装置2が複数ある場合にも達成される、各クライアント装置2が独自の状況に応じてオーディオクロックの速度を調整できるためである。
【0071】
また、オーディオデータの出力時刻と位相差をサーバ1とクライアント装置2との間で同期させる場合、エッジ検出モジュールを用いることができる。エッジ検出モジュールは、パルスデータのエッジ時刻とオーディオクロックのエッジ時刻とを正確に測ることにより、オーディオデータの正確な出力時刻を設定し、正確な位相差を検出することを保証する。
【0072】
そして、以上の結果は、サーバ1に対する追加や愚弟的な変更を必要とせずに、クライアント装置2のみで実現可能である。従って、上述の特徴は、複数のクライアント装置2が存在する場合にも得ることができる。
【0073】
従って、本開示は、クライアント装置2内のソフトウエア処理によって引き起こされる遅延に関する技術的問題に対して、特定の解決策を与えている。
【0074】
以上の実施例では、クライアント装置2はDAC3を含むが、スピーカーを含んでいない。しかしながら、クライアント装置、DAC、及びスピーカーは一体的に単一の装置として形成されてもよい。また、クライアント装置2とDAC3とを別々に構成してもよい。また、サーバ1とクライアント装置2を多くの技術分野で応用できる。例えば、サーバ1とクライアント装置2とをそれぞれ右出力用と左出力用のステレオに接続することができる。また、サーバ1とクライアント装置2とをそれぞれ別々の部屋に置き、それぞれの聴衆が同期してオーディオデータを聴くこともできる。オーディオデータには音楽であってもよい。しかしながら、オーディオデータは音楽に限定されることはなく、他のタイプのオーディオデータも使うこともできる。また、サーバ1からクライアント装置2にオーディオデータのみを配信する必要はなく、本開示の趣旨はクライアント装置2に他のデータ(例えば画像データ)と一緒に送られるオーディオデータにも適用できる。
【0075】
本発明の特定の実施例について詳細に開示、説明し、発明の趣旨を説明したが、本発明は、本発明の趣旨を逸脱しない範囲において種々の変更が可能である。本発明は本明細書に開示された特定の実施例に限定されることはなく、添付の特許請求の範囲によって規定されるものと解される。
【符号の説明】
【0076】
1 サーバ、2 クライアント装置、3 DAC、4 スピーカー、11 通信ネットワーク、21 ネットワークインターフェイス、22 オーディオインターフェイス、23 制御ユニット(CPU)、24 メモリ、25 エッジ検出モジュール、26 PLL、 27 クロック