(57)【要約】【課題】伸長したデータ数を取得する手段のない音声再生装置において、圧縮音声データの再生開始からの経過時間を比較的正確に算出する。【解決手段】圧縮ファイルのデータ先頭位置Ａから音声出力開始時間Ｄに対応する再生開始時のデータ位置Ｂまでのデータ量をオフセットＣとし、再生中のデータ位置ＥからオフセットＣを差し引いたデータ量に基づいて、一定の更新間隔で再生中の表示時間Ｆを計算して表示する。圧縮ファイルのデータ末尾位置Ｇに達した後は、実際の音声出力終了時間Ｈまでの間、圧縮ファイルの読み出しは行わず、このデータ末尾位置ＧからオフセットＣを差し引き、その後の経過時間に応じた補正値Ｋを加算したデータ量に基づいて、一定の更新間隔で再生中の表示時間Ｆを計算して表示する。【選択図】図１
2009139531.tif 000002
【特許請求の範囲】
【請求項１】
与えられた圧縮音声データを伸長して音声信号に変換する音声再生回路と、記憶装置から前記圧縮音声データを読み出して前記音声再生回路に転送する制御回路とを備えた音声再生装置において音声出力開始からの経過時間を表示するための音声再生時間算出方法であって、
前記音声再生回路から前記音声信号が出力されるまでの間に、前記制御回路から該音声再生回路に転送した前記圧縮音声データの量を第１データ量として算出する処理と、
前記制御回路から前記音声再生回路に転送した前記圧縮音声データの量の累計を第２データ量として求める処理と、
前記記憶装置に読み出し対象の圧縮音声データが存在する間、前記第２データ量から前記第１データ量を差し引いたデータ量に基づいて音声再生時間を算出する処理と、
前記記憶装置から読み出し対象の圧縮音声データをすべて読み出して前記音声再生回路に転送した後、その時点からの経過時間に再生されるべき圧縮音声データの量に対応する第３データ量を計算し、前記第２データ量から前記第１データ量を差し引いて該第３データ量を加算したデータ量に基づいて音声再生時間を算出する処理とを、
行うことを特徴とする音声再生時間算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、固定ビットレート形式で圧縮されたＭＰ３等の圧縮音声データを再生する装置において、音声出力開始からの経過時間を表示するための音声再生時間算出方法に関するものである。
【背景技術】
【０００２】
図２は、ＭＰ３(MPEG  audio  layer  3)による圧縮データの形式を示す構成図である。
ＭＰ３形式の圧縮データファイルは、フレームに区分された構成になっており、各フレームは、ヘッダ情報と圧縮データ本体とで構成されている。ヘッダ情報は、同期符号、ビットレート（データ転送速度）、サンプリングレート、チャネル数等を含む３２ビットの情報である。圧縮データ本体は、ＭＰ３形式で圧縮された音声データで、１５００バイト程度のサイズとなっている。
【０００３】
図３は、ＭＰ３再生装置の一例を示す構成図である。
このＭＰ３再生装置は、記憶装置１０、マイクロコントローラ（以下、「マイコン」という）２０、音声再生ＩＣ３０、音声出力装置４０及び表示装置５０等で構成されている。記憶装置１０は、ＭＰ３形式の圧縮データを記憶するもので、ハードディスクやフラッシュメモリ等が用いられる。マイコン２０は、記憶装置１０から圧縮データを順番に読み出して音声再生ＩＣ３０に与えると共に、表示装置５０に対して音声出力開始からの経過時間等を表示するものである。音声再生ＩＣ３０は、マイコン２０から与えられる圧縮データを伸長し、アナログの音声信号に変換してスピーカやヘッドホン等の音声出力装置４０に与えるものである。
【０００４】
音声再生ＩＣ３０は、入力バッファ３１、デコーダ３２、出力バッファ３３、デジタル・アナログ変換器（以下、「ＤＡＣ」という）３４及びデータ検出部３５で構成されている。
【０００５】
入力バッファ３１は、マイコン２０から与えられる圧縮データをデコーダ３２による伸長処理までの間、一時的に保持するＦＩＦＯ(first  in  first  out)型のバッファである。デコーダ３２は、入力バッファ３１から圧縮データを順番に読み出し、ＰＣＭ(Pulse  Code  Modulation)データに伸長するものである。出力バッファ３３は、デコーダ３２で生成されたＰＣＭデータをＤＡＣ３４による音声出力処理までの間、一時的に保持するＦＩＦＯ型のバッファである。ＤＡＣ３４は、サンプリングレートに従って出力バッファ３３からＰＣＭデータを順次読み出し、アナログの音声信号に変換するものである。データ検出部３５は、出力バッファ３３にＰＣＭデータが存在するか否かを検出し、その検出結果の検出信号ＤＥＴをマイコン２０に出力するものである。
【０００６】
このＭＰ３再生装置では、図示しない操作部からの指示に従い、マイコン２０は記憶装置１０から圧縮データを読み出し、入力バッファ３１へ転送する。なお、入力バッファ３１の状態はマイコン２０に出力され、満杯になるとマイコン２０は圧縮データの転送を中止する。
【０００７】
デコーダ３２は、入力バッファ３１から圧縮データを順番に読み出してＰＣＭデータを生成し、その生成したＰＣＭデータを出力バッファ３３に書き込む。ＤＡＣ３４は、出力バッファ３３からＰＣＭデータを読み出し、アナログの音声信号に変換する。アナログの音声信号は音声出力装置４０に与えられ、可聴音に変換されて出力される。
【０００８】
一方、データ検出部３５は、出力バッファ３３にＰＣＭデータが存在するか否かを検出し、その検出信号ＤＥＴをマイコン２０に出力する。入力バッファ３１にＭＰ３データが無くなった旨の信号がマイコン２０に出力されると、マイコン２０は、記憶装置１０から圧縮データを読み出し、入力バッファ３１へ転送する。マイコン２０は、指定されたすべての圧縮データを入力バッファ３１へ転送すると、出力バッファ３３が空になることを監視し、空になった時点で再生を完了する。
【０００９】
なお、音声信号の再生中、マイコン２０は、入力バッファ３１へ転送したデータ量（バイト）とビットレート（ｂｐｓ）から、次式に従って再生時間（音声出力開始からの経過時間）を算出し、表示装置５０に出力する。
再生時間（ｓ）＝データ量／（ビットレート／８）
【００１０】
【特許文献１】特開２００２−７４９２０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、前記ＭＰ３再生装置では、出力バッファ３３から出力されるＰＣＭデータの数をマイコン２０で取得する手段が無いため、マイコン２０から入力バッファ３１へ転送した圧縮データのデータ量に基づいて再生時間を算出している。このため、圧縮データやＰＣＭデータが入力バッファ３１や出力バッファ３４に蓄積されている時間が無視されており、実際に音声出力装置４０から出力されるタイミングが異なり、表示される再生時間の誤差が大きいという課題が有った。
【００１２】
本発明は、音声再生ＩＣ３０で生成されるＰＣＭデータの数をマイコン２０で取得する手段が無い場合であっても、比較的正確に再生時間を算出することを目的としている。
【課題を解決するための手段】
【００１３】
本発明は、与えられた圧縮音声データを伸長して音声信号に変換する音声再生回路と、記憶装置から前記圧縮音声データを読み出して前記音声再生回路に転送する制御回路とを備えた音声再生装置において音声出力開始からの経過時間を表示するための音声再生時間算出方法であって、前記音声再生回路から前記音声信号が出力されるまでの間に、前記制御回路から該音声再生回路に転送した前記圧縮音声データの量を第１データ量として算出する処理と、前記制御回路から前記音声再生回路に転送した前記圧縮音声データの量の累計を第２データ量として求める処理と、前記記憶装置に読み出し対象の圧縮音声データが存在する間、前記第２データ量から前記第１データ量を差し引いたデータ量に基づいて音声再生時間を算出する処理と、前記記憶装置から読み出し対象の圧縮音声データをすべて読み出して前記音声再生回路に転送した後、その時点からの経過時間に再生されるべき圧縮音声データの量に対応する第３データ量を計算し、前記第２データ量から前記第１データ量を差し引いて該第３データ量を加算したデータ量に基づいて音声再生時間を算出する処理とを行うことを特徴としている。
【発明の効果】
【００１４】
本発明では、音声出力開始までに制御回路から音声再生回路に転送した圧縮音声データのデータ量（第１データ量）と、制御回路から音声再生回路に転送した圧縮音声データのデータ量（第２データ量）に加えて、データ転送完了後の経過時間に再生されるべき圧縮音声データのデータ量（第３データ量）を使って再生時間を算出するようにしている。これにより、音声再生回路で伸長された音声データの数を制御回路で取得する手段が無い場合であっても、比較的正確に再生時間を算出することができるという利点がある。
【発明を実施するための最良の形態】
【００１５】
この発明の前記並びにその他の目的と新規な特徴は、次の好ましい実施例の説明を添付図面と照らし合わせて読むと、より完全に明らかになるであろう。但し、図面は、もっぱら解説のためのものであって、この発明の範囲を限定するものではない。
【実施例１】
【００１６】
図１は、本発明の実施例を示す再生時間表示動作の説明図である。この動作は、図３のＭＰ３再生装置において、音声再生ＩＣ３０のデータ検出部３５から出力される検出信号ＤＥＴに従って、マイコン２０によって行われるものである。以下、この図１に基づいて、マイコン２０による再生時間算出処理に必要なパラメータを説明する。
Ａ：データ先頭位置＝ＭＰ３ファイルの先頭データ位置（単位：バイト）
Ｂ：再生開始時のデータ位置＝データ検出部３５からＰＣＭデータが存在する旨の検出信号ＤＥＴが出力されたときに、マイコン２０から音声再生ＩＣ３０へ転送しているＭＰ３ファイルのデータ位置（単位：バイト）
Ｃ：オフセット＝データ先頭位置Ａから再生開始時のデータ位置Ｂまでに、音声再生ＩＣ３０へ転送したＭＰ３データ数（単位：バイト）
Ｄ：音声出力開始時間＝ＰＣＭデータが存在する旨の検出信号ＤＥＴが出力された時間（単位：秒）
Ｅ：再生中のデータ位置＝再生中にマイコン２０から音声再生ＩＣ３０へ転送しているＭＰ３ファイルのデータ位置（単位：バイト）
Ｆ：再生中の表示時間＝再生中のデータ位置ＥからオフセットＣを減算したＭＰ３データ位置に基づいて算出した再生時間（単位：秒）、なお、再生中の表示時間Ｆは、一定の更新間隔（例えば３００ｍｓ）で更新される。
Ｇ：データ末尾位置＝ＭＰ３ファイルの終端位置（単位：バイト）
Ｈ：音声出力終了時間＝ＰＣＭデータが無くなった旨の検出信号ＤＥＴが出力された時間（単位：秒）
Ｉ：補正バイト数＝表示時間の更新間隔（例えば３００ｍｓ）で消費されるＭＰ３データのバイト数
Ｊ：補正開始位置＝音声再生ＩＣ３０へ転送するＭＰ３ファイルのデータが無くなった状態で、初めて表示時間の更新間隔が経過した位置（単位：バイト）
Ｋ：補正値＝補正開始位置Ｊ以後の補正バイト数Ｉを更新間隔毎に加算した値
【００１７】
図４は、本発明の実施例を示す再生時間算出方法のフローチャートである。以下、この図４に基づき、図１のパラメータを使用して再生時間算出方法を説明する。
【００１８】
操作部からＭＰ３ファイルの再生指示が与えられると、ステップＳ１において、マイコン２０は指定された圧縮データを記憶装置１０から読み出し、そのヘッダ情報からビットレート、サンプリングレート等のデータを取得して記憶する。
【００１９】
ステップＳ２において、記憶装置１０から読み出したＭＰ３データを音声再生ＩＣ３０へ転送する。転送されたＭＰ３データは、音声再生ＩＣ３０の入力バッファ３１に一時的に保持される。なお、入力バッファ３１に保持されたＭＰ３データは、デコーダ３２によって読み出され、ＰＣＭデータに変換されて出力バッファ３３に書き込まれる。
【００２０】
ステップＳ３において、音声再生ＩＣ３０のデータ検出部３５から出力される検出信号ＤＥＴをチェックし、出力バッファ３３にＰＣＭデータが存在するか否かを判定する。ＰＣＭデータが存在しなければ、ステップＳ２へ戻り、ＰＣＭデータが存在すれば、ステップＳ４へ進む。
【００２１】
ステップＳ４において、補正バイト数Ｉを次式によって算出する。
補正バイト数Ｉ＝（ビットレート／８）×表示時間の更新間隔
【００２２】
例えば、ビットレートが８ｋｂｐｓで、表示時間の更新間隔が３００ｍｓの場合、補正バイト数Ｉは３００バイトとなる。この補正バイト数Ｉは、データ末尾位置ＧのＭＰ３データを音声再生ＩＣ３０中の入力バッファ３１に転送した後、その時点からの表示時間の更新間隔毎に再生されるべきＭＰ３データの量に対応するものである。
【００２３】
ステップＳ５において、変数“前回データ位置”を０にする。以上のステップＳ１〜Ｓ５により、音声の再生が開始されると共に、次のステップＳ６以降の再生時間表示処理が開始される。
【００２４】
ステップＳ６において、表示時間の更新間隔が経過したか否が判定され、経過していればステップＳ７へ進む。
【００２５】
ステップＳ７において、再生中のデータ位置Ｅを取得する。
ステップＳ８において、記憶装置１０から読み出すべきＭＰ３データがまだ存在するか否かを判定する。読み出すべきＭＰ３データがまだ存在する場合は、ステップＳ９へ進む。読み出すべきＭＰ３データが無くなった場合は、補正処理を行うためのステップＳ１０へ進む。
【００２６】
ステップＳ９では、読み出すべきＭＰ３データがまだ存在し、継続して記憶装置１０からＭＰ３データを読み出している状態であるので、補正値Ｋに０を代入し、ステップＳ１１へ進む。一方、ステップＳ１０では、読み出すべきＭＰ３データが無くなって、音声再生ＩＣ３０中の入力バッファ３１や出力バッファ３３に残存する音声データを再生している状態であるので、補正値Ｋに補正バイト数Ｉを加算する。従って、補正値Ｋは、補正バイト数ＩをステップＳ１０の実行回数だけ加算した値となり、これは、読み出すべきＭＰ３データが終了した時点からの経過時間に（ビットレート／８）を掛けたものに相当する。ステップＳ１０の後、ステップＳ１１へ進む。
【００２７】
ステップＳ１１において、変数“前回データ位置”に開始時点から現在までの間に、音声再生ＩＣ３０へ転送したデータ量（バイト数）を代入する。
【００２８】
ステップＳ１２において、再生時間（単位：秒）を次式によって算出する。
再生時間＝（データ転送数−オフセットＣ＋補正値Ｋ）／（ビットレート／８）
なお、データ転送数は、開始時点から現在までの間に、音声再生ＩＣ３０へ転送したデータ量（単位：バイト）の累計である。
【００２９】
上記算出式によれば、読み出すべきＭＰ３データがまだ存在する時点では、補正値Ｋは０であるので、データ転送数からオフセットＣを差し引いたデータ量を、データ転送速度で割り算した値が再生時間となる。また、読み出すべきＭＰ３データが終了した時点では、データ転送数からオフセットＣを差し引いた値に、音声再生ＩＣ３０中のバッファから出力される音声データの量を補正バイト数として加算し、これをデータ転送速度で割り算した値が再生時間となる。
【００３０】
ステップＳ１３において、表示装置５０に表示している再生時間をステップ１２で算出した値に更新する。
【００３１】
ステップＳ１４において、データ検出部３５から出力される検出信号ＤＥＴをチェックし、出力バッファ３３にＰＣＭデータが存在するか否かを判定する。ＰＣＭデータが存在すれば、ステップＳ６に戻り、ＰＣＭデータが存在しなければ、再生時間表示処理は終了する。
【００３２】
以上のように、本実施例の再生時間算出方法は、マイコン２０から音声再生ＩＣ３０に転送したＭＰ３データ量に加えて、再生開始までのオフセットと、データ転送完了後の補正値を使って再生時間を算出するようにしている。これにより、音声再生ＩＣ３０で生成されたＰＣＭデータの数をマイコン２０で取得する手段が無い場合であっても、比較的正確に再生時間を算出することができるという利点がある。
【００３３】
なお、本発明は、上記実施例に限定されず、種々の変形が可能である。この変形例としては、例えば、次のようなものがある。
（ａ）  圧縮音声データとしてＭＰ３ファイルを例に説明したが、固定ビットレートの圧縮音声データであれば、ＷＭＡ(Windows  Media  Audio)形式等にも同様に適用可能である。
（ｂ）  図４のフローチャートは一例である。例えば、ステップＳ６では、表示時間の更新間隔が経過したか否かを判定しているが、タイマーを用いて更新間隔毎にステップＳ７を起動するようにしても良い。
（ｃ）  ステップＳ１２における再生時間の算出式中の補正値Ｋは、読み出すべきＭＰ３データが終了した時点からの経過時間に（ビットレート／８）を掛けたものであり、再生時間は補正値Ｋを（ビットレート／８）で割り算している。即ち、この算出式で計算される再生時間は、データ末尾位置Ｇに対応する再生時間に、それ以後の経過時間を加算したものである。従って、ステップＳ１２における再生時間の計算方法をそのように変更しても良い。
（ｄ）  通常の実時間再生の場合は、音声再生ＩＣ３０に実際に転送したデータ量に応じて再生時間を計算するが、早送りや早戻しの場合には、ＭＰ３ファイルのデータ読み出し位置に基づいて再生時間を計算することにより、早送りや早戻しでの再生時間表示も可能である。
【図面の簡単な説明】
【００３４】
【図１】本発明の実施例を示す再生時間表示動作の説明図である。
【図２】ＭＰ３による圧縮データの形式を示す構成図である。
【図３】ＭＰ３再生装置の一例を示す構成図である。
【図４】本発明の実施例を示す再生時間算出方法のフローチャートである。
【符号の説明】
【００３５】
１０    記憶装置
２０    マイクロコントローラ
３０    音声再生ＩＣ
３１    入力バッファ
３２    デコーダ
３３    出力バッファ
３４    ＤＡＣ
３５    データ検出部
４０    音声出力装置
５０    表示装置
【図１】
2009139531.tif 000003
【図２】
2009139531.tif 000004
【図３】
2009139531.tif 000005
【図４】
2009139531.tif 000006