(57)【特許請求の範囲】
【請求項１】
デジタル音声信号を入力し、入力したデジタル音声信号と１サンプル前のデジタル音声信号との差分を算出して該差分を記憶する差分記憶手段と、
前記デジタル音声信号が連続してクリップしている回数をカウントするカウント手段と、
クリップ状態にあるデジタル音声信号から、前記カウント手段によりカウントされたサンプル数に基づいて定められた所定数だけ前の音声信号について求められた差分を前記差分記憶手段から読み出し、該差分に基づいて、前記クリップ状態にあるデジタル音声信号を補正して、出力する補正手段と、
を備えることを特徴とする音声信号補正装置。
【請求項２】
前記補正手段は、
クリップ状態にあるデジタル音声信号について、前記カウントされたサンプル数に基づいて定められた所定数だけ前のデジタル音声信号について算出された差分に基づいて補正値を生成する補正値生成手段と、
クリップ状態にあるデジタル音声信号に、前記補正値生成手段により生成された補正値を加算する加算手段と、
を備える、ことを特徴とする請求項１に記載の音声信号補正装置。
【請求項３】
前記補正手段は、前記デジタル音声信号のビット幅よりも大きいビット幅のデータを処理する能力を有し、前記デジタル音声信号を下位にビットシフトし、ビットシフト後のデジタル音声信号を処理する、ことを特徴とする請求項１又は２に記載の音声信号補正装置。
【請求項４】
前記補正手段は、
前記デジタル音声信号のビット幅よりも大きいビット幅のデータを処理する能力を有し、
前記デジタル音声信号をアナログ信号に変換する第１の変換手段と、
クリップ時の前記補正後の音声信号をアナログ信号に変換する第２の変換手段と、
前記第２の変換手段の出力を増幅する増幅手段と、
前記第１の変換手段の出力と前記増幅手段の出力とを加算して出力する加算手段と、
を備える、
ことを特徴とする請求項１又は２に記載の音声信号補正装置。
【請求項５】
音量を示すデータを入力し、入力したデータと１サンプル前のデータとの差分を算出して記憶し、
前記入力したデータが連続してクリップしている回数をカウントし、
クリップ状態にあるデータから、カウントされたサンプル数に基づいて定められた所定数だけ前のデータについて求められた差分を読み出し、該差分に基づいて、クリップ状態にあるデータを補正して出力する、
ことを特徴とする音声信号補正方法。
【請求項６】
コンピュータに、
音量を示すデータを入力し、入力したデータと１サンプル前のデータとの差分を算出して記憶する処理と、
前記入力したデータが連続してクリップしている回数をカウントする処理と、
クリップ状態にあるデータから、カウントされたサンプル数に基づいて定められた所定数だけ前のデータについて求められた差分を読み出し、該差分に基づいて、クリップ状態にあるデータを補正して出力する処理と、
を実行させる、ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クリップしている音声波形を改善する音声信号補正装置、音声信号補正方法及びプログラムに関する。
【背景技術】
【０００２】
オーディオ再生装置により再生される音楽（特に、ポップス）は、生演奏（ライブ）において感じ取られる臨場感や迫力感と同等であることが望まれる。これは、オーディオ再生装置により再生される音量（レベル）を大きくすることで実現することができることが知られている。
しかし、音楽をＣＤ、ＤＶＤ等の記録媒体に保存する場合、再生可能な音量（レベル）の大きさには限界がある。これは、ＣＤ、ＤＶＤ等では、音楽データが、１６ビットの固定小数点方式で表現され、−１（データとしては０ｘ７ＦＦＦ）〜＋１（データとしては０ｘ８０００）の範囲の音量（レベル）で表現され、これを超える音量（レベル）の音については、＋１又は−１を記録せざるを得ないからである。そして、記録が可能な音量（レベル）を超えた音が連続すると、再生音が、音割れしていたり、歪んでいたり、ノイズが多く聞こえるというクリップと言われている現象が発生する。
【０００３】
この問題を解決するため、ミキシングエンジニアがリミッター機能を使用して音声信号をミキシングし、クリップを目立たなくすることが行われている。ただし、この手法はミキシングエンジニアの技量的なものであり、技術的観点からの改善が求められる。
【０００４】
このような状況に対応するため、連続してフルスケールになる音声データの個数と前後の音声データのレベルの変化量とに対応したサンプルデータを予め記憶しておき、サンプルデータにより音声データを補正することにより、クリップを目立たなくする補正方法が提案されている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−１１０１４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の補正方法は、予め記憶しているサンプルデータにより音声データを補正する。このため、音楽に合った音調となるよう音声データが補正されるとは限らない。このため、視取者に違和感を与えるおそれがある。よって、連続してフルスケールになる音声データを、音楽に合った音調となるように補正し、クリップを目立たなくすることができる技術が望まれている。
【０００７】
本発明は、上記実情に鑑みてなされたものであり、クリップを目立たなくする音声信号補正装置、音声信号補正方法及びプログラムを提供することを目的とする。
また、本発明は、連続してフルスケールになる音声データを、音楽に合った音調となるように補正する技術を提供することを他の目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の観点にかかる音声信号補正装置は、
デジタル音声信号を入力し、入力したデジタル音声信号と１サンプル前のデジタル音声信号との差分を算出して該差分を記憶する差分記憶手段と、
前記デジタル音声信号が連続してクリップしている回数をカウントするカウント手段と、
クリップ状態にあるデジタル音声信号から、前記カウント手段によりカウントされたサンプル数に基づいて定められた所定数だけ前の音声信号について求められた差分を前記差分記憶手段から読み出し、該差分に基づいて、前記クリップ状態にあるデジタル音声信号を補正して、出力する補正手段と、
を備えることを特徴とする。
【０００９】
前記補正手段は、例えば、クリップ状態にあるデジタル音声信号について、前記カウントされたサンプル数に基づいて定められた所定数だけ前のデジタル音声信号について算出された差分に基づいて補正値を生成する補正値生成手段と、
クリップ状態にあるデジタル音声信号に、前記補正値生成手段により生成された補正値を加算する加算手段と、を備える。
【００１０】
前記補正手段は、例えば、前記デジタル音声信号のビット幅よりも大きいビット幅のデータを処理する能力を有し、前記デジタル音声信号を下位にビットシフトし、ビットシフト後のデジタル音声信号を処理する。
【００１１】
前記補正手段は、例えば、前記デジタル音声信号のビット幅よりも大きいビット幅のデータを処理する能力を有し、前記デジタル音声信号をアナログ信号に変換する第１の変換手段と、クリップ時の前記補正後の音声信号をアナログ信号に変換する第２の変換手段と、前記第２の変換手段の出力を増幅する増幅手段と、前記第１の変換手段の出力と前記増幅手段の出力とを加算して出力する加算手段と、を備える。
【００１２】
本発明の第２の観点にかかる音声信号補正方法は、
音量を示すデータを入力し、入力したデータと１サンプル前のデータとの差分を算出して記憶し、
前記入力したデータが連続してクリップしている回数をカウントし、
クリップ状態にあるデータから、カウントされたサンプル数に基づいて定められた所定数だけ前のデータについて求められた差分を読み出し、該差分に基づいて、クリップ状態にあるデータを補正して出力する、
ことを特徴とする。
【００１３】
本発明の第３の観点にかかるプログラムは、
コンピュータに、
音量を示すデータを入力し、入力したデータと１サンプル前のデータとの差分を算出して記憶する処理と、
前記入力したデータが連続してクリップしている回数をカウントする処理と、
クリップ状態にあるデータから、カウントされたサンプル数に基づいて定められた所定数だけ前のデータについて求められた差分を読み出し、該差分に基づいて、クリップ状態にあるデータを補正して出力する処理と、
を実行させる。
【発明の効果】
【００１４】
本発明によれば、デジタル音声信号自体を用いてクリップ波形を補正するので、クリップを目立たなくするだけでなく、音楽に合った音調となるように補正することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１実施形態に係るオーディオ装置の構成を示すブロック図である。
【図２】図１のオーティオ装置におけるＤＳＰの機能構成の一例を示すブロック図である。
【図３】デジタル音声信号の波形一例を示す図である。
【図４】ＤＳＰの動作を説明するための図であり、入力データ、差分、補正値、出力データの変化の一例を示す図である。
【図５】補正後のデジタル音声信号の波形の一例を示す図である。
【図６】（ａ）は、音声データの構造の一例を示す図であり、（ｂ）は、本発明の第２実施形態に係るオーディオ装置の構成を示すブロック図である。
【図７】本発明の第３実施形態に係るオーディオ装置の構成を示すブロック図である。
【図８】ＤＳＰの機能構成の他の例を示すブロック図である。
【図９】クリップ波形改善処理についてのフローチャートである。
【発明を実施するための形態】
【００１６】
（第１の実施形態）
以下に、本発明の実施形態に係るクリップ波形改善機能（音声信号補正機能）を備えるオーディオ再生装置１について図１を参照して説明する。
オーディオ再生装置１は、音源装置１００、デコーダ１１０、ＤＳＰ１２０、ＤＡＣ１３０、スピーカ１４０から構成されている。
【００１７】
音源装置１００は、ＣＤプレーヤ、ＤＶＤプレーヤ等から構成され、左（Ｌ）チャネル用と右（Ｒ）チャネル用のデジタル音声信号を出力する。デジタル音声信号を構成する各データ（信号素片）は、−１（データとしては０ｘ７ＦＦＦ）〜＋１（データとしては０ｘ８０００）の範囲内の値を有する。
【００１８】
デコーダ１１０は、音源装置１００から送信された左チャネル用と右チャネル用のデジタル音声信号をデコードし、ＤＳＰ１２０に出力する。
【００１９】
ＤＳＰ（Digital Signal Processor）１２０は、デジタル信号処理を行うための演算処理装置であり、デコーダ１１０により伸長されたＬチャネルとＲチャネルのデジタル音声信号に含まれるクリップ波形を改善する処理を行い、補正後のデジタル音声信号をＤＡＣ１３０に出力する。
【００２０】
ＤＡＣ（Digital Analog Converter）１３０は、ＤＳＰ１２０が出力したＬチャネルとＲチャネルのデジタル音声信号を、それぞれ、アナログ音声信号に変換し、スピーカ１４０に出力する。
【００２１】
スピーカ１４０は、入力されたアナログ音声信号を実際の音に変換して放音する。
【００２２】
ここで、ＤＳＰ１２０の機能構成について、図２を参照して詳しく説明する。
ＤＳＰ１２０は、入力された左チャネルと右チャネルのデジタル音声信号Ｓ、それぞれについて、図２に示す構成のクリップ波形改善回路（音声信号補正回路）を備える。
【００２３】
このクリップ波形改善回路は、入力デジタル音声信号のクリップを改善する処理を行うものであり、クリップが発生している間におけるデジタル音声信号Ｓのデータ（信号素片）数をカウントするクリップカウンタ１２１、デジタル音声信号Ｓのｎサンプル前のデータを出力する遅延素子１２２、デジタル音声信号Ｓの１サンプル前のデータを出力する遅延素子１２３、入力データを−１倍するバッファ１２４、入力データを＋１倍するバッファ１２５、バッファ１２４と１２５の出力データを加算する加算器１２６、遅延素子１２２から出力されるデータＳ（ｔ−ｎ）の補正値Ｙ（ｔ−ｎ）を生成して出力する補正部１２７、遅延素子１２２の出力データＳ（ｔ−ｎ）と補正部１２７の出力する補正値Ｙ（ｔ−ｎ）とを加算し、データＯ（ｔ−ｎ）を出力する加算器１２８を備える。
【００２４】
上述の各部の構成をより詳細に説明する。
なお、タイミングｔにおける入力データ（信号素片）をＳ（ｔ）、そのｎサンプリング期間前のデータをＳ（ｔ−ｎ）、そのｍサンプリング期間後のデータをＳ（ｔ＋ｍ）、と表現することとする。
【００２５】
クリップカウンタ１２１は、デジタル音声信号Ｓ（ｔ）にクリップが発生しているか否かを判別し、発生している場合に、クリップしているデータの数をカウントする。ここで、入力データが＋１〜−１の範囲内の数値を有することから、値が＋１又は−１のデータが連続した場合に、クリップしたデータであると判別し、連続した＋１又は−１の数ｑをカウントする。クリップカウンタ１２１は、クリップしていると判別したデータの識別情報ＩＤ（例えば、データのタイミング情報ｔ）と最終的なカウント数ｑとを、補正部１２７に通知する。
例えば、デジタル音声信号が、｛．．．，Ｓ（ｉ）＝＋０．７，Ｓ（ｉ＋１）＝＋０．８，Ｓ（ｉ＋２）＝＋１，Ｓ（ｉ＋３）＝＋１，Ｓ（ｉ＋４）＝＋０．９．．．｝と変化している場合には、Ｓ（ｉ＋２）とＳ（ｉ＋３）で＋１が２回連続するので、Ｓ（ｉ＋３）＝＋１を検出した段階でクリップが発生していると判断し、最終的なカウント数（データ数）ｑは２となる。この場合、クリップカウンタ１２１は、例えば、（ｔ＝ｉ＋２，ｑ＝２）、（ｔ＝ｉ＋３，ｑ＝２）を補正部１２７に通知する。
同様に、デジタル音声信号が、｛．．．，Ｓ（ｊ）＝−０．９，Ｓ（ｊ＋１）＝−０．９，Ｓ（ｊ＋２）＝−１，Ｓ（ｊ＋３）＝−１，Ｓ（ｊ＋４）＝−１，Ｓ（ｊ＋５）＝＋０．８，．．．｝と変化している場合には、Ｓ（ｉ＋２）とＳ（ｉ＋３）で−１が２回連続するので、Ｓ（ｊ＋３）を検出した段階でクリップが発生していると判断し、最終的なカウント数ｑは３となる。この場合、クリップカウンタ１２１は、例えば、（ｔ＝ｊ＋２，ｑ＝３）、（ｔ＝ｊ＋３，ｑ＝３）、（ｔ＝ｊ＋４，ｑ＝３）を補正部１２７に通知する。
【００２６】
遅延素子１２２は、入力データＳ（ｔ）を記憶し、ｎサンプル期間前のデータＳ（ｔ−ｎ）を出力する。なお、ｎは、例えば、予想されるクリッピングの連続回数の最大値よりも大きい自然数である。
【００２７】
遅延素子１２３は、入力データＳ（ｔ）を記憶し、１サンプル期間前の音声データＳ（ｔ−１）を出力する。
【００２８】
バッファ１２４は、入力データＳ（ｔ）を−１倍して、データ−Ｓ（ｔ）を出力する。
バッファ１２５は、遅延素子１２３の出力データＳ（ｔ−１）を＋１倍して、データ＋Ｓ（ｔ−１）を出力する。
【００２９】
加算器１２６は、バッファ１２４の出力データ−Ｓ（ｔ）とバッファ１２５の出力データ＋Ｓ（ｔ−１）を加算し、データ｛Ｓ（ｔ−１）−Ｓ（ｔ）｝を出力する。これは、デジタル音声信号Ｓの１サンプル期間における音量（レベル）の差分を求めることに相当する。
【００３０】
補正部１２７は、加算器１２６の出力である差分ｘ（ｔ）＝｛Ｓ（ｔ−１）−Ｓ（ｔ）｝を順次記憶する。記憶された差分ｘの履歴は、音量の変化量の履歴を表す。
補正部１２７は、クリップカウンタ１２１から供給されるクリップしていると判別されたデータのＩＤと連続数ｑの組を順次記憶する。
【００３１】
さらに、補正部１２７は、時刻ｔにおいて、補正値Ｙ（ｔ−ｎ）として次の値を出力する。
（ｉ）  クリップカウンタ１２１が、データＳ（ｔ−ｎ）がクリップしていないと判断した場合：Ｙ（ｔ−ｎ）＝０、
（ii）  クリップカウンタ１２１が、データＳ（ｔ−ｎ）がクリップしており、＋１又は−１がｑデータ連続したと判別した場合：Ｙ（ｔ−ｎ）＝ｘ（ｔ−ｎ−ｑ）。
【００３２】
加算器１２８は、遅延素子１２２の出力データＳ（ｔ−ｎ）と補正部１２７の出力データＹ（ｔ−ｎ）とを加算し、ＤＳＰ１２０の出力データＯ（ｔ−ｎ）とする。
【００３３】
次に、オーディオ再生装置１の動作について説明する。
【００３４】
音源装置１００は、左（Ｌ）チャネルと右（Ｒ）チャネルの音声データを出力する。
【００３５】
デコーダ１１０は、音源装置１００からの左（Ｌ）チャネルと右（Ｒ）チャネルの音声データをデコードしてＤＳＰ１２０に入力する。
【００３６】
タイミングｔで、ＤＳＰ１２０の左チャネル又は右チャネルにデータＳ（ｔ）が入力されると、バッファ１２４は、このデータＳ（ｔ）を−１倍して、データ−Ｓ（ｔ）を出力する。一方、遅延素子１２３は、入力したデータＳ（ｔ）を記憶すると共に記憶している１サンプリング期間前のデータＳ（ｔ−１）を出力する。バッファ１２５は、遅延素子１２３の出力データＳ（ｔ−１）を＋１倍し、データ＋Ｓ（ｔ−１）を出力する。
バッファ１２４の出力データ−Ｓ（ｔ）とバッファ１２５の出力データ＋Ｓ（ｔ−１）は、加算器１２６により加算され、差分ｘ（ｔ）＝＋Ｓ（ｔ−１）−Ｓ（ｔ）となる。即ち、タイミングｔで入力されたデータＳ（ｔ）について、１サンプル前のデータＳ（ｔ−１）との差分ｘ（ｔ）が得られる。
【００３７】
加算器１２６は差分ｘ（ｔ）を補正部１２７に出力し、補正部１２７は差分ｘ（ｔ）を記憶する。こうして、補正部１２７には、差分ｘの履歴が蓄積される。蓄積される差分ｘの数は、例えば、ｎ個以上である。
【００３８】
クリップカウンタ１２１は、入力データＳ（ｔ）について、値が＋１又は−１であるか否かを判別する。クリップカウンタ１２１は、デジタル音声信号Ｓの値が＋１又は−１であると判別すると、＋１又は−１のカウントを開始し、クリップの発生が終了したことを検出すると、カウントを終了する。クリップカウンタ１２１は、こうして、デジタル音声信号Ｓの＋１又は−１の連続数（ｑ個）をカウントし、クリップしている（＋１又は−１が２個以上連続している）と判別したデータのＩＤ（タイミングｔを特定する情報）と、カウント数（クリップしていると判別した連続するデジタル音声データの数ｑ）を補正部１２７に出力する。
【００３９】
補正部１２７は、クリップカウンタ１２１から通知されたデータＩＤとカウント数ｑとの組を記憶する。
【００４０】
補正部１２７は、記憶したデータＩＤとカウント数ｑとの組に基づいて、タイミングｔにおいて、以下の動作を行う。
データＩＤに基づいて、データＳ（ｔ−ｎ）がクリップしているか否かを判別する。即ち、クリップしているデータのＩＤとして、（ｔ−ｎ）が記憶されているか否かを判別する。
補正部１２７は、データＳ（ｔ−ｎ）がクリップしていないと判別した場合、補正値Ｙ（ｔ−ｎ）＝０を出力する。
一方、補正部１２７は、データＳ（ｔ−ｎ）がクリップしていると判別した場合には、記憶しているｘの履歴のうちから、ｘ（ｔ−ｎ−ｑ）を読み出し、これを補正値Ｙ（ｔ−ｎ）とする。
即ち、補正値Ｙ（ｔ−ｎ）＝ｘ（ｔ−ｎ−ｑ）を出力する。
【００４１】
加算器１２８は、遅延素子１２２の出力するｎクロック期間前の入力データＳ（ｔ−ｎ）と補正部１２７の出力する補正値Ｙ（ｔ−ｎ）とを加算し、Ｓ（ｔ−ｎ）＋Ｙ（ｔ−ｎ）を、ＤＳＰ１２０の出力データＯ（ｔ−ｎ）として出力する。
【００４２】
図１に示すＤＡＣ１３０は、加算器１２８により出力されたデータＯ（ｔ−ｎ）をアナログ信号に変換してスピーカ１４０に出力する。スピーカ１４０はこのアナログ信号を実際の音に変換して音声を出力、放音する。
【００４３】
次に、実際の信号波形等を使用して、クリップ波形がどのように改善（加工）されるかを説明する。
【００４４】
図３は、実際に音楽がクリップしているときの信号波形の一例を示している。Ｔｉｍｅが０．０１２〜０．０１４の付近でＬｅｖｅｌが連続して−１であり、クリップしていることが分かる。
【００４５】
図４は、図３の信号波形のＴｉｍｅが０．０１２〜０．０１４の付近でクリップが発生しているときのタイミングｔ（データＩＤ）と、クリップしているデータの連続数Ｌと、加工前のデータＳ（ｔ）と、加算器１２６の出力する差分ｘ（ｔ）と、補正回路１２７の出力する補正値Ｙ（ｔ）と、加算器１２８の出力するデータＯ（ｔ）とを対応付けて表にしたものである。表で「加工処理」と示されている部分、即ち、ｔ＝２６〜５０のデータＳ（ｔ）の値が−１であり且つ２つ以上連続しているため、クリップが発生していることがわかる。この場合、データの連続数ｑは２５（ｔ＝２６〜５０）である。
【００４６】
クリップが発生していない、ｔ＝０〜２５，５１〜のデータに関しては、補正値Ｙ（ｔ）は０となる。
なお、ｔ＝２２のデータＳ（２２）は、−１であるが、−１が連続していないため、クリップしているとはみなされず、補正値Ｙ（２２）＝０である。
【００４７】
一方、クリップが発生している、ｔ＝２６〜５０のデータに関しては、補正値Ｙ（ｔ）＝ｘ（ｔ−ｑ）＝ｘ（ｔ−２５）となる。このため、例えば、ｔ＝２６に関しては、Ｙ（２６）＝ｘ（１）＝−０．０１６９１、．．．ｔ＝５０に関しては、Ｙ（５０）＝ｘ（２５）＝−０．００４７となる。
【００４８】
補正部１２７は、遅延素子１２２から供給されるデータＳ（ｔ−ｎ）のタイミングに合わせて、対応する補正値Ｙ（ｔ−ｎ）を読み出し、加算器１２８に供給する。
【００４９】
加算器１２８は、遅延素子１２２が出力するデータＳ（ｔ−ｎ）と補正部１２７から供給される補正値Ｙ（ｔ−ｎ）とを加算し、ＤＳＰ１２０の出力データＯ(ｔ−ｎ）とする。
従って、クリップしていない、Ｓ（０）〜Ｓ（２４）及びＳ（５１）〜Ｓ（５３）は、そのまま出力データＯ（０）〜Ｏ（２４）及びＯ（５１）〜Ｏ（５３）として出力される。
【００５０】
一方、クリップが発生しているｔ＝２６に関しては、Ｙ（２６）＝ｘ（２６−２５）＝ｘ（１）＝−０．０１６９１となり、Ｏ（２６）＝Ｓ（２６）＋Ｙ（２６）＝−１−０．０１６９１＝−１．０１６９１となる。さらに、ｔ＝２７に関しては、Ｙ（２７）＝ｘ（２７−２５）＝ｘ（２）＝−０．０１０６５となり、Ｏ（２７）＝Ｓ（２７）＋Ｙ（２７）＝−１−０．０１０６５＝−１．０１０６５となる。また、例えば、ｔ＝５０に関しては、Ｙ（５０）＝ｘ（５０−２５）＝ｘ（２５）＝−０．００４７となり、Ｏ（５０）＝Ｓ（５０）＋Ｙ（５０）＝−１−０．００４７＝−１．００４７となる。
【００５１】
このようにして、補正された信号波形、つまり、図３に示す信号波形の音声信号データがＤＳＰ１２０に入力された場合のＤＡＣ１３０から出力される信号波形を図５に示す。図５を参照すると、図３においてクリップが発生していたＴｉｍｅ０．０１２〜０．０１４の付近で音声信号波形が補正され、クリップ波形が改善されていることが分かる。
【００５２】
以上の通り、本実施形態によれば、デジタル音声信号自体を用いてクリップ波形を補正するので、クリップを目立たなくすることができる。音楽は反射・残響音が繰り返し鳴ることにより周期的に同じ波形が繰り返す傾向がある。本実施形態によれば、このことに基づきクリップ波形を改善し、再生される音楽が、音割れしていたり、音が歪んでいたりして、ノイズが多く聞こえることがなく、音調に適合した補正を行うようにすることができる。
【００５３】
（変形例）
上記実施形態においては、差分ｘ（ｔ）＝Ｓ（ｔ−１）−Ｓ（ｔ）としたが、差分ｘ（ｔ）＝Ｓ（ｔ）−Ｓ（ｔ−１）としてもよい。さらに、差分ｘ（ｔ）＝Ｓ（ｔ＋１）−Ｓ（ｔ）、（ｔ）＝Ｓ（ｔ）−Ｓ（ｔ＋１）としてもよい。
また、出力データＯ（ｔ）＝Ｓ（ｔ）＋Ｙ（ｔ）としたが、出力データＯ（ｔ）＝Ｓ（ｔ）−Ｙ（ｔ）としてもよい。さらに、出力データＯ（ｔ）＝Ｓ（ｔ）＋ｋ・Ｙ（ｔ）或いはＯ（ｔ）＝Ｓ（ｔ）−ｋ・Ｙ（ｔ）としてもよい。ここでｋは、０以外の任意の定数でも、関数、例えば、時間の関数でもよい。
【００５４】
（第２の実施形態）
第１の実施形態において、ＤＳＰ１２０は、−１（データとしては０ｘ７ＦＦＦ）以下、及び、＋１（データとしては０ｘ８０００）以上の数値を処理できるものとして説明したが、固定小数点型のＤＳＰのほとんどは、処理可能な数値が−１〜＋１の範囲に限られている。
このような場合には、例えば、固定小数点２４ビット処理をするＤＳＰを使用すればよい。
【００５５】
ただし、この場合でも、処理対象の数値を、−１〜＋１の範囲を超える表現は出来ないので、例えば、図６（ａ）に示すように、ＤＳＰ１２０で処理する２４ビットの下位１６ビットに、デコーダ１１０から供給された１６ビットの音声データＳ（ｔ）を格納し、上位に０に相当する値（補正データ）を挿入して、２４ビットにすればよい。
【００５６】
例えば、入力データがＳ（ｔ）＝０ｘ８０００（１１１１００００００００００００）であるとすれば、上位８ビットに０ｘ００を挿入して、２４ビットのＳ（ｔ）＝０ｘ００８０００（００００００００１１１１００００００００００００）に変換し、これを２４ビット固定小数点型のＤＳＰ１２０に入力し、処理を行えばよい。
なお、ＤＳＰ１２０は、入力データ（ｔ）＝０ｘ００８０００又は０ｘ００７ＦＦＦが連続したときに、クリップが発生していると判別する。
【００５７】
ただし、処理結果をそのまま出力すると、出力データＯ（ｔ）の値が小さくなりすぎるおそれがある。そこで、例えば、ＤＳＰ１２０から出力する直前に、処理済のデータＯ（ｔ）を７ビットＭＳＢ側にシフトしてから出力する等してもよい。また、例えば、図６（ｂ）に示すように、ＤＡＣ１３０にてアナログ信号に変換後、バッファ１５０にて８ビットシフト分の補正（増幅）を行い、スピーカ１４０に出力しても良い。
【００５８】
また、図６の構成に限定されず、例えば、図７に示すように構成してもよい。
図７においては、入力データＳ（ｔ）は、第１のＤＡＣ１３１にそのまま出力される。
一方、ＤＳＰ１２０には、２４ビットに変換された入力信号Ｓ（ｔ）が供給される。
ＤＳＰ１２０は、２４ビットに変換された入力データＳ（ｔ）を処理し、２４ビットの補正値Ｙ（ｔ）を、第２のＤＡＣ１３２に出力する。バッファ１５１は、第２のＤＡＣ１３２から出力された２４ビットの補正値Ｙ（ｔ）に相当するアナログ信号を、８ビット分増幅して、１６ビットの補正値Ｙ（ｔ）に相当するレベルとする。
加算器１６０は、データＳ（ｔ）に相当するアナログ信号と補正値Ｙ（ｔ）に相当するアナログ信号を加算し、スピーカ１４０に出力する。
【００５９】
上記実施形態では、クリップの連続数がｑのときに、クリップ中の入力データＳ（ｔ）にｑ個前の差分ｘ（ｔ−ｑ）を加算して補正する例を示したが、クリップ期間中に入力データＳ（ｔ）に加算（又は減算）する値は、連続数ｑに基づいて定められた所定のサンプリングクロック前のタイミングの差分ｘでもよい。例えば、クリップ中の入力データＳ（ｔ）に差分ｘ（ｔ−ｑ−ｄ）を加算するようにしてもよい。ここで、ｄは任意の自然数である。このような構成でも、クリップを目立たなくすることができる。
【００６０】
実質的に同一の機能を実現できるならば、回路構成を変更することも可能である。例えば、ＤＳＰ１２０の機能構成を、図８に示す構成とすることも可能である。
図８の構成において、スイッチＳＷは、データＳ（ｔ−ｎ）がクリップしていないときは、データＳ（ｔ−ｎ）を選択して、出力データＯ（ｔ−ｎ）として出力し、一方、データＳ（ｔ−ｎ）がクリップしているときは、加算器１２８から供給されるデータＳ（ｔ−ｎ）＋Ｙ（ｔ−ｎ）を選択して、出力データＯ（ｔ−ｎ）として出力する。出力データＯ（ｔ−ｎ）は、第１の実施形態のＤＳＰ１２０の出力データと同一となる。
第１実施形態では、クリップが起こっていないときには、補正値Ｙ（ｔ）を０に設定したが、図８の構成では、クリップが起こっていないときの補正値Ｙ（ｔ）は任意である。
【００６１】
（第３の実施形態）
第１及び第２の実施形態では、ＤＳＰ１２０によりクリップ改善処理を行う例を示したが、図２に示す回路を、複数の回路素子の組み合わせからなるディスクリート回路で構成し、同様の処理を行っても良い。
【００６２】
（第４の実施形態）
上記実施形態１〜３においては、ＤＳＰやディスクリート回路により補正処理を実行する例を示したが、一般のＣＰＵを使用して補正処理を行うことも可能である。
この場合の、オーディオ再生装置１の構成は図１と図６において、ＤＳＰ１２０をＣＰＵに置換する以外同一である。
【００６３】
以下、ＣＰＵが実行するクリップ波形改善処理について説明する。
【００６４】
まず、ＣＰＵは、動作を開示すると、入データＳを特定する変数ｔに０を、クリップしている音声データの連続数をカウントするための変数Ｌに１を代入する（ステップＳ１０１）。
【００６５】
続いて、ＣＰＵは、デコータ１１０から、第ｔの入力データＳ（ｔ）を取得する（ステップＳ１０２）。
【００６６】
ＣＰＵは、今回の音声データＳ（ｔ）と１サンプル前の音声データＳ（ｔ−１）との差分ｘ（ｔ）＝Ｓ（ｔ）−Ｓ（ｔ−１）を算出する（ステップＳ１０３）。なお、第１の実施形態と同様に、ｘ（ｔ）＝Ｓ（ｔ−１）−Ｓ（ｔ）でもよい。
なお、ｔ＝０の場合には、１サンプル前の音声データＳ（ｔ−１）が存在しないため、ステップＳ１０３をスキップする。
【００６７】
ＣＰＵは、変数ｔ、入力データＳ（ｔ）、差分ｘ（ｔ）を対応付けて記憶する（ステップＳ１０４）。
次に、ＣＰＵは、デジタル音声信号がクリッピングしているか否かを判別する（ステップＳ１０５）。具体的には、ＣＰＵは、入力データＳ（ｔ）の値が＋１（データとしては、０ｘ８０００）又は−１（データとしては０ｘ７ＦＦＦ）で、且つ、その値が連続している（即ちｘ（ｔ）＝０）であるか否かを判別する（ステップＳ１０５）。
【００６８】
ＣＰＵは、音声データＳ（ｔ）がクリップしている、即ち、音声データＳ（ｔ）の値が＋１又は−１であり且つ直前の音声データＳ（ｔ−１）との差分ｘ（ｔ）が０あると判別した場合（ステップＳ１０５：ＹＥＳ）、クリップしている音声データの連続数を表す変数Ｌを＋１する（ステップＳ１０６）。
【００６９】
一方、ステップＳ１０５で、データＳ（ｔ）がクリップしていないと判別した場合（ステップＳ１０６；Ｎｏ）、即ち、入力データＳ（ｔ）の値が＋１又は−１でなく及び／又は差分ｘ（ｔ）が０ではないと判別した場合（ステップＳ１０５：Ｎｏ）、データＳ（ｔ）が、直前までクリップした状態にあって、今回クリップしていない状態に変化したのか否か（クリップ状態が解消したのか否か）を判別する（ステップＳ１０７）。
【００７０】
クリップ状態が解消した、即ち、直前のデータＳ（ｔ−１）が＋１又は−１で、直前の差分ｘ（ｔ−１）が０あると判別した場合（ステップＳ１０７；Ｙｅｓ）、継続数を示すカウント値Ｌを継続数ｑに代入し（ステップＳ１０８）、以後のカウントのためにカウント値Ｌを１に初期化し（ステップＳ１０９）、続いて、継続数ｑと、クリッピング発生から終了までの変数ｔとを対応付けて記憶する（ステップＳ１１０）。
【００７１】
一方、ステップＳ１０７で、クリップ状態が解消した場面ではないと判別した場合（ステップＳ１０７；Ｎｏ）、ステップＳ１１１に進む。
【００７２】
ステップＳ１０６でカウント値Ｌを更新した後、ステップＳ１１０でデータ識別子ｔと継続数ｑを格納した後、或いは、ステップＳ１０７で、Ｎｏと判別された場合、出力対象の音声データの有無を判別するため、ｔ≧ｎであるか否かを判別する（ステップＳ１１１）。
【００７３】
ＣＰＵは、ｔ＜ｎの場合（ステップＳ１１１；Ｎｏ）、出力すべきデータが存在しないので、変数ｔを＋１して（ステップＳ１１２）、ステップＳ１０２に処理を戻し、同様の処理を繰り返す。
ＣＰＵは、ｔ≧ｎの場合（ステップＳ１１１；Ｙｅｓ）、出力すべき音声データが存在するので、出力対象の第（ｔ−ｎ）番目のデータＳ（ｔ−ｎ）がクリップしていたか否かを、ステップＳ１１０で記憶したｔ、ｑ等から判別する（ステップＳ１１３）。データＳ（ｔ−ｎ）がクリップしていたと判別した場合（ステップＳ１１３；Ｙｅｓ）、クリップ波形を改善するため、データＳ（ｔ−ｎ）にｑ個前の差分ｘ（ｔ−ｎ−ｑ）を加算して補正する（ステップ１１４）。一方、データＳ（ｔ−ｎ）がクリップしていなかったと判別した場合（ステップＳ１１３；Ｎｏ）、クリップ波形を改善する必要が無いので、ステップＳ１１４をスキップする。
その後、ＣＰＵは、音声データＳ（ｔ−ｎ）をＤＡＣ１３０に出力し（ステップＳ１１５）、変数ｔを＋１して（ステップＳ１１２）、ステップＳ１０２に処理を戻し、同様の処理を繰り返す。
【００７４】
図４の例を参照して具体的に図９の処理を説明する。ここでは、ｔ＝１から、データが供給されるものとする。
ｔ＝１〜２６に関しては、Ｓ１０５でＮｏ，Ｓ１０７でＮｏと判別される。一方、ｔ＝２７で、Ｓ（ｔ）＝−１且つｘ（ｔ）＝０と判別され、Ｌ＝２とされ（ステップＳ１０６）、ｔが更新され（ステップＳ１１２）、以後、ｔ＝５０まで、同様の処理が繰り返され、Ｌが順次更新される（ステップＳ１０６）。
一方、ｔ＝５１になると、ステップＳ１０５でＮｏと判別され、ステップＳ１０７では、クリップ状態が解消したと判別される。このため、このときのＬ＝２５が連続数ｑに代入される（ステップＳ１０８）。続いて、データがクリップしていたときのデータ識別子（ｔ−ｑ〜ｔ−１）、即ち、ｔ２６〜５０とクリップの連続数ｑ＝２５が記憶される（ステップＳ１０９）。
【００７５】
一方、ｔ−ｎ＝１〜２５の期間は、Ｓ（ｔ−ｎ）はクリップしていないと判別され（ステップＳ１１３；Ｎｏ）、ステップＳ１１５で、入力データＳ（ｔ−ｎ）がそのまま出力される。
その後、ｔ−ｎ＝２６のタイミングになると、ステップＳ１１０で記録したデータ識別子からデータＳ（ｔ−ｎ）がクリップしていると判別され（ステップＳ１１３；Ｙｅｓ）、差分ｘ（（ｔ−ｎ）−ｑ）＝ｘ（１））が読み出され、Ｓ（２６）＝−１に加算され、Ｓ（２６）＝−１．１６９１が出力される。
以後、ｔ−ｎ＝５０となるまで同様の処理が繰り返され、補正されたデータＳ（２７）〜Ｓ（５０）が順次出力される。
【００７６】
以上説明したように、本実施形態においても、デジタル音声信号自体を用いてクリップ波形を改善し、再生される音楽が、音割れしていたり、音が歪んでいたりして、ノイズが多く聞こえることがなく、音調に適合した補正を行うようにすることができる。
【００７７】
なお、この発明は上記実施形態に限定されるものではなく、実質的に同一の機能を実現できるならば、回路構成や手順を変更することも可能である。
【符号の説明】
【００７８】
１      オーディオ再生装置
１００      音源装置
１１０      デコーダ
１２０      ＤＳＰ
１２１      クリップカウンタ
１２２、１２３    遅延素子
１２４、１２５、１５０、１５１      バッファ
１２６、１２８、１６０    加算器
１２７      補正部
１３０、１３１      ＤＡＣ
１４０      スピーカ
【図１】
0005569436.tif 000002
【図２】
0005569436.tif 000003
【図３】
0005569436.tif 000004
【図４】
0005569436.tif 000005
【図５】
0005569436.tif 000006
【図６】
0005569436.tif 000007
【図７】
0005569436.tif 000008
【図８】
0005569436.tif 000009
【図９】
0005569436.tif 000010