説明

音声信号補正装置、音声信号補正方法及びプログラム

【課題】デジタル音声信号を、音楽に合った音調となるように補正して、クリップを目立たなくする。
【解決手段】クリップを改善する音声信号補正装置は、データS(t)について、1サンプル前のデータS(t−1)との差分x(t)を算出して該差分を記憶し、音声信号のクリップが連続する回数qをカウントし、クリップ状態にある音声信号S(t)から、カウントされたサンプル数qだけ前の音声信号についての差分x(t−q)を読み出し、該差分(t−q)と前記クリップ状態にあるデータS(t)とを加算することで音声信号を補正する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クリップしている音声波形を改善する音声信号補正装置、音声信号補正方法及びプログラムに関する。
【背景技術】
【0002】
オーディオ再生装置により再生される音楽(特に、ポップス)は、生演奏(ライブ)において感じ取られる臨場感や迫力感と同等であることが望まれる。これは、オーディオ再生装置により再生される音量(レベル)を大きくすることで実現することができることが知られている。
しかし、音楽をCD、DVD等の記録媒体に保存する場合、再生可能な音量(レベル)の大きさには限界がある。これは、CD、DVD等では、音楽データが、16ビットの固定小数点方式で表現され、−1(データとしては0x7FFF)〜+1(データとしては0x8000)の範囲の音量(レベル)で表現され、これを超える音量(レベル)の音については、+1又は−1を記録せざるを得ないからである。そして、記録が可能な音量(レベル)を超えた音が連続すると、再生音が、音割れしていたり、歪んでいたり、ノイズが多く聞こえるというクリップと言われている現象が発生する。
【0003】
この問題を解決するため、ミキシングエンジニアがリミッター機能を使用して音声信号をミキシングし、クリップを目立たなくすることが行われている。ただし、この手法はミキシングエンジニアの技量的なものであり、技術的観点からの改善が求められる。
【0004】
このような状況に対応するため、連続してフルスケールになる音声データの個数と前後の音声データのレベルの変化量とに対応したサンプルデータを予め記憶しておき、サンプルデータにより音声データを補正することにより、クリップを目立たなくする補正方法が提案されている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2001−110143号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に記載の補正方法は、予め記憶しているサンプルデータにより音声データを補正する。このため、音楽に合った音調となるよう音声データが補正されるとは限らない。このため、視取者に違和感を与えるおそれがある。よって、連続してフルスケールになる音声データを、音楽に合った音調となるように補正し、クリップを目立たなくすることができる技術が望まれている。
【0007】
本発明は、上記実情に鑑みてなされたものであり、クリップを目立たなくする音声信号補正装置、音声信号補正方法及びプログラムを提供することを目的とする。
また、本発明は、連続してフルスケールになる音声データを、音楽に合った音調となるように補正する技術を提供することを他の目的とする。
【課題を解決するための手段】
【0008】
本発明の第1の観点にかかる音声信号補正装置は、
デジタル音声信号を入力し、入力したデジタル音声信号と1サンプル前のデジタル音声信号との差分を算出して該差分を記憶する差分記憶手段と、
前記デジタル音声信号が連続してクリップしている回数をカウントするカウント手段と、
クリップ状態にあるデジタル音声信号から、前記カウント手段によりカウントされたサンプル数に基づいて定められた所定数だけ前の音声信号について求められた差分を前記差分記憶手段から読み出し、該差分に基づいて、前記クリップ状態にあるデジタル音声信号を補正して、出力する補正手段と、
を備えることを特徴とする。
【0009】
前記補正手段は、例えば、クリップ状態にあるデジタル音声信号について、前記カウントされたサンプル数に基づいて定められた所定数だけ前のデジタル音声信号について算出された差分に基づいて補正値を生成する補正値生成手段と、
クリップ状態にあるデジタル音声信号に、前記補正値生成手段により生成された補正値を加算する加算手段と、を備える。
【0010】
前記補正手段は、例えば、前記デジタル音声信号のビット幅よりも大きいビット幅のデータを処理する能力を有し、前記デジタル音声信号を下位にビットシフトし、ビットシフト後のデジタル音声信号を処理する。
【0011】
前記補正手段は、例えば、前記デジタル音声信号のビット幅よりも大きいビット幅のデータを処理する能力を有し、前記デジタル音声信号をアナログ信号に変換する第1の変換手段と、クリップ時の前記補正後の音声信号をアナログ信号に変換する第2の変換手段と、前記第2の変換手段の出力を増幅する増幅手段と、前記第1の変換手段の出力と前記増幅手段の出力とを加算して出力する加算手段と、を備える。
【0012】
本発明の第2の観点にかかる音声信号補正方法は、
音量を示すデータを入力し、入力したデータと1サンプル前のデータとの差分を算出して記憶し、
前記入力したデータが連続してクリップしている回数をカウントし、
クリップ状態にあるデータから、カウントされたサンプル数に基づいて定められた所定数だけ前のデータについて求められた差分を読み出し、該差分に基づいて、クリップ状態にあるデータを補正して出力する、
ことを特徴とする。
【0013】
本発明の第3の観点にかかるプログラムは、
コンピュータに、
音量を示すデータを入力し、入力したデータと1サンプル前のデータとの差分を算出して記憶する処理と、
前記入力したデータが連続してクリップしている回数をカウントする処理と、
クリップ状態にあるデータから、カウントされたサンプル数に基づいて定められた所定数だけ前のデータについて求められた差分を読み出し、該差分に基づいて、クリップ状態にあるデータを補正して出力する処理と、
を実行させる。
【発明の効果】
【0014】
本発明によれば、デジタル音声信号自体を用いてクリップ波形を補正するので、クリップを目立たなくするだけでなく、音楽に合った音調となるように補正することができる。
【図面の簡単な説明】
【0015】
【図1】本発明の第1実施形態に係るオーディオ装置の構成を示すブロック図である。
【図2】図1のオーティオ装置におけるDSPの機能構成の一例を示すブロック図である。
【図3】デジタル音声信号の波形一例を示す図である。
【図4】DSPの動作を説明するための図であり、入力データ、差分、補正値、出力データの変化の一例を示す図である。
【図5】補正後のデジタル音声信号の波形の一例を示す図である。
【図6】(a)は、音声データの構造の一例を示す図であり、(b)は、本発明の第2実施形態に係るオーディオ装置の構成を示すブロック図である。
【図7】本発明の第3実施形態に係るオーディオ装置の構成を示すブロック図である。
【図8】DSPの機能構成の他の例を示すブロック図である。
【図9】クリップ波形改善処理についてのフローチャートである。
【発明を実施するための形態】
【0016】
(第1の実施形態)
以下に、本発明の実施形態に係るクリップ波形改善機能(音声信号補正機能)を備えるオーディオ再生装置1について図1を参照して説明する。
オーディオ再生装置1は、音源装置100、デコーダ110、DSP120、DAC130、スピーカ140から構成されている。
【0017】
音源装置100は、CDプレーヤ、DVDプレーヤ等から構成され、左(L)チャネル用と右(R)チャネル用のデジタル音声信号を出力する。デジタル音声信号を構成する各データ(信号素片)は、−1(データとしては0x7FFF)〜+1(データとしては0x8000)の範囲内の値を有する。
【0018】
デコーダ110は、音源装置100から送信された左チャネル用と右チャネル用のデジタル音声信号をデコードし、DSP120に出力する。
【0019】
DSP(Digital Signal Processor)120は、デジタル信号処理を行うための演算処理装置であり、デコーダ110により伸長されたLチャネルとRチャネルのデジタル音声信号に含まれるクリップ波形を改善する処理を行い、補正後のデジタル音声信号をDAC130に出力する。
【0020】
DAC(Digital Analog Converter)130は、DSP120が出力したLチャネルとRチャネルのデジタル音声信号を、それぞれ、アナログ音声信号に変換し、スピーカ140に出力する。
【0021】
スピーカ140は、入力されたアナログ音声信号を実際の音に変換して放音する。
【0022】
ここで、DSP120の機能構成について、図2を参照して詳しく説明する。
DSP120は、入力された左チャネルと右チャネルのデジタル音声信号S、それぞれについて、図2に示す構成のクリップ波形改善回路(音声信号補正回路)を備える。
【0023】
このクリップ波形改善回路は、入力デジタル音声信号のクリップを改善する処理を行うものであり、クリップが発生している間におけるデジタル音声信号Sのデータ(信号素片)数をカウントするクリップカウンタ121、デジタル音声信号Sのnサンプル前のデータを出力する遅延素子122、デジタル音声信号Sの1サンプル前のデータを出力する遅延素子123、入力データを−1倍するバッファ124、入力データを+1倍するバッファ125、バッファ124と125の出力データを加算する加算器126、遅延素子122から出力されるデータS(t−n)の補正値Y(t−n)を生成して出力する補正部127、遅延素子122の出力データS(t−n)と補正部127の出力する補正値Y(t−n)とを加算し、データO(t−n)を出力する加算器128を備える。
【0024】
上述の各部の構成をより詳細に説明する。
なお、タイミングtにおける入力データ(信号素片)をS(t)、そのnサンプリング期間前のデータをS(t−n)、そのmサンプリング期間後のデータをS(t+m)、と表現することとする。
【0025】
クリップカウンタ121は、デジタル音声信号S(t)にクリップが発生しているか否かを判別し、発生している場合に、クリップしているデータの数をカウントする。ここで、入力データが+1〜−1の範囲内の数値を有することから、値が+1又は−1のデータが連続した場合に、クリップしたデータであると判別し、連続した+1又は−1の数qをカウントする。クリップカウンタ121は、クリップしていると判別したデータの識別情報ID(例えば、データのタイミング情報t)と最終的なカウント数qとを、補正部127に通知する。
例えば、デジタル音声信号が、{...,S(i)=+0.7,S(i+1)=+0.8,S(i+2)=+1,S(i+3)=+1,S(i+4)=+0.9...}と変化している場合には、S(i+2)とS(i+3)で+1が2回連続するので、S(i+3)=+1を検出した段階でクリップが発生していると判断し、最終的なカウント数(データ数)qは2となる。この場合、クリップカウンタ121は、例えば、(t=i+2,q=2)、(t=i+3,q=2)を補正部127に通知する。
同様に、デジタル音声信号が、{...,S(j)=−0.9,S(j+1)=−0.9,S(j+2)=−1,S(j+3)=−1,S(j+4)=−1,S(j+5)=+0.8,...}と変化している場合には、S(i+2)とS(i+3)で−1が2回連続するので、S(j+3)を検出した段階でクリップが発生していると判断し、最終的なカウント数qは3となる。この場合、クリップカウンタ121は、例えば、(t=j+2,q=3)、(t=j+3,q=3)、(t=j+4,q=3)を補正部127に通知する。
【0026】
遅延素子122は、入力データS(t)を記憶し、nサンプル期間前のデータS(t−n)を出力する。なお、nは、例えば、予想されるクリッピングの連続回数の最大値よりも大きい自然数である。
【0027】
遅延素子123は、入力データS(t)を記憶し、1サンプル期間前の音声データS(t−1)を出力する。
【0028】
バッファ124は、入力データS(t)を−1倍して、データ−S(t)を出力する。
バッファ125は、遅延素子123の出力データS(t−1)を+1倍して、データ+S(t−1)を出力する。
【0029】
加算器126は、バッファ124の出力データ−S(t)とバッファ125の出力データ+S(t−1)を加算し、データ{S(t−1)−S(t)}を出力する。これは、デジタル音声信号Sの1サンプル期間における音量(レベル)の差分を求めることに相当する。
【0030】
補正部127は、加算器126の出力である差分x(t)={S(t−1)−S(t)}を順次記憶する。記憶された差分xの履歴は、音量の変化量の履歴を表す。
補正部127は、クリップカウンタ121から供給されるクリップしていると判別されたデータのIDと連続数qの組を順次記憶する。
【0031】
さらに、補正部127は、時刻tにおいて、補正値Y(t−n)として次の値を出力する。
(i) クリップカウンタ121が、データS(t−n)がクリップしていないと判断した場合:Y(t−n)=0、
(ii) クリップカウンタ121が、データS(t−n)がクリップしており、+1又は−1がqデータ連続したと判別した場合:Y(t−n)=x(t−n−q)。
【0032】
加算器128は、遅延素子122の出力データS(t−n)と補正部127の出力データY(t−n)とを加算し、DSP120の出力データO(t−n)とする。
【0033】
次に、オーディオ再生装置1の動作について説明する。
【0034】
音源装置100は、左(L)チャネルと右(R)チャネルの音声データを出力する。
【0035】
デコーダ110は、音源装置100からの左(L)チャネルと右(R)チャネルの音声データをデコードしてDSP120に入力する。
【0036】
タイミングtで、DSP120の左チャネル又は右チャネルにデータS(t)が入力されると、バッファ124は、このデータS(t)を−1倍して、データ−S(t)を出力する。一方、遅延素子123は、入力したデータS(t)を記憶すると共に記憶している1サンプリング期間前のデータS(t−1)を出力する。バッファ125は、遅延素子123の出力データS(t−1)を+1倍し、データ+S(t−1)を出力する。
バッファ124の出力データ−S(t)とバッファ125の出力データ+S(t−1)は、加算器126により加算され、差分x(t)=+S(t−1)−S(t)となる。即ち、タイミングtで入力されたデータS(t)について、1サンプル前のデータS(t−1)との差分x(t)が得られる。
【0037】
加算器126は差分x(t)を補正部127に出力し、補正部127は差分x(t)を記憶する。こうして、補正部127には、差分xの履歴が蓄積される。蓄積される差分xの数は、例えば、n個以上である。
【0038】
クリップカウンタ121は、入力データS(t)について、値が+1又は−1であるか否かを判別する。クリップカウンタ121は、デジタル音声信号Sの値が+1又は−1であると判別すると、+1又は−1のカウントを開始し、クリップの発生が終了したことを検出すると、カウントを終了する。クリップカウンタ121は、こうして、デジタル音声信号Sの+1又は−1の連続数(q個)をカウントし、クリップしている(+1又は−1が2個以上連続している)と判別したデータのID(タイミングtを特定する情報)と、カウント数(クリップしていると判別した連続するデジタル音声データの数q)を補正部127に出力する。
【0039】
補正部127は、クリップカウンタ121から通知されたデータIDとカウント数qとの組を記憶する。
【0040】
補正部127は、記憶したデータIDとカウント数qとの組に基づいて、タイミングtにおいて、以下の動作を行う。
データIDに基づいて、データS(t−n)がクリップしているか否かを判別する。即ち、クリップしているデータのIDとして、(t−n)が記憶されているか否かを判別する。
補正部127は、データS(t−n)がクリップしていないと判別した場合、補正値Y(t−n)=0を出力する。
一方、補正部127は、データS(t−n)がクリップしていると判別した場合には、記憶しているxの履歴のうちから、x(t−n−q)を読み出し、これを補正値Y(t−n)とする。
即ち、補正値Y(t−n)=x(t−n−q)を出力する。
【0041】
加算器128は、遅延素子122の出力するnクロック期間前の入力データS(t−n)と補正部127の出力する補正値Y(t−n)とを加算し、S(t−n)+Y(t−n)を、DSP120の出力データO(t−n)として出力する。
【0042】
図1に示すDAC130は、加算器128により出力されたデータO(t−n)をアナログ信号に変換してスピーカ140に出力する。スピーカ140はこのアナログ信号を実際の音に変換して音声を出力、放音する。
【0043】
次に、実際の信号波形等を使用して、クリップ波形がどのように改善(加工)されるかを説明する。
【0044】
図3は、実際に音楽がクリップしているときの信号波形の一例を示している。Timeが0.012〜0.014の付近でLevelが連続して−1であり、クリップしていることが分かる。
【0045】
図4は、図3の信号波形のTimeが0.012〜0.014の付近でクリップが発生しているときのタイミングt(データID)と、クリップしているデータの連続数Lと、加工前のデータS(t)と、加算器126の出力する差分x(t)と、補正回路127の出力する補正値Y(t)と、加算器128の出力するデータO(t)とを対応付けて表にしたものである。表で「加工処理」と示されている部分、即ち、t=26〜50のデータS(t)の値が−1であり且つ2つ以上連続しているため、クリップが発生していることがわかる。この場合、データの連続数qは25(t=26〜50)である。
【0046】
クリップが発生していない、t=0〜25,51〜のデータに関しては、補正値Y(t)は0となる。
なお、t=22のデータS(22)は、−1であるが、−1が連続していないため、クリップしているとはみなされず、補正値Y(22)=0である。
【0047】
一方、クリップが発生している、t=26〜50のデータに関しては、補正値Y(t)=x(t−q)=x(t−25)となる。このため、例えば、t=26に関しては、Y(26)=x(1)=−0.01691、...t=50に関しては、Y(50)=x(25)=−0.0047となる。
【0048】
補正部127は、遅延素子122から供給されるデータS(t−n)のタイミングに合わせて、対応する補正値Y(t−n)を読み出し、加算器128に供給する。
【0049】
加算器128は、遅延素子122が出力するデータS(t−n)と補正部127から供給される補正値Y(t−n)とを加算し、DSP120の出力データO(t−n)とする。
従って、クリップしていない、S(0)〜S(24)及びS(51)〜S(53)は、そのまま出力データO(0)〜O(24)及びO(51)〜O(53)として出力される。
【0050】
一方、クリップが発生しているt=26に関しては、Y(26)=x(26−25)=x(1)=−0.01691となり、O(26)=S(26)+Y(26)=−1−0.01691=−1.01691となる。さらに、t=27に関しては、Y(27)=x(27−25)=x(2)=−0.01065となり、O(27)=S(27)+Y(27)=−1−0.01065=−1.01065となる。また、例えば、t=50に関しては、Y(50)=x(50−25)=x(25)=−0.0047となり、O(50)=S(50)+Y(50)=−1−0.0047=−1.0047となる。
【0051】
このようにして、補正された信号波形、つまり、図3に示す信号波形の音声信号データがDSP120に入力された場合のDAC130から出力される信号波形を図5に示す。図5を参照すると、図3においてクリップが発生していたTime0.012〜0.014の付近で音声信号波形が補正され、クリップ波形が改善されていることが分かる。
【0052】
以上の通り、本実施形態によれば、デジタル音声信号自体を用いてクリップ波形を補正するので、クリップを目立たなくすることができる。音楽は反射・残響音が繰り返し鳴ることにより周期的に同じ波形が繰り返す傾向がある。本実施形態によれば、このことに基づきクリップ波形を改善し、再生される音楽が、音割れしていたり、音が歪んでいたりして、ノイズが多く聞こえることがなく、音調に適合した補正を行うようにすることができる。
【0053】
(変形例)
上記実施形態においては、差分x(t)=S(t−1)−S(t)としたが、差分x(t)=S(t)−S(t−1)としてもよい。さらに、差分x(t)=S(t+1)−S(t)、(t)=S(t)−S(t+1)としてもよい。
また、出力データO(t)=S(t)+Y(t)としたが、出力データO(t)=S(t)−Y(t)としてもよい。さらに、出力データO(t)=S(t)+k・Y(t)或いはO(t)=S(t)−k・Y(t)としてもよい。ここでkは、0以外の任意の定数でも、関数、例えば、時間の関数でもよい。
【0054】
(第2の実施形態)
第1の実施形態において、DSP120は、−1(データとしては0x7FFF)以下、及び、+1(データとしては0x8000)以上の数値を処理できるものとして説明したが、固定小数点型のDSPのほとんどは、処理可能な数値が−1〜+1の範囲に限られている。
このような場合には、例えば、固定小数点24ビット処理をするDSPを使用すればよい。
【0055】
ただし、この場合でも、処理対象の数値を、−1〜+1の範囲を超える表現は出来ないので、例えば、図6(a)に示すように、DSP120で処理する24ビットの下位16ビットに、デコーダ110から供給された16ビットの音声データS(t)を格納し、上位に0に相当する値(補正データ)を挿入して、24ビットにすればよい。
【0056】
例えば、入力データがS(t)=0x8000(1111000000000000)であるとすれば、上位8ビットに0x00を挿入して、24ビットのS(t)=0x008000(000000001111000000000000)に変換し、これを24ビット固定小数点型のDSP120に入力し、処理を行えばよい。
なお、DSP120は、入力データ(t)=0x008000又は0x007FFFが連続したときに、クリップが発生していると判別する。
【0057】
ただし、処理結果をそのまま出力すると、出力データO(t)の値が小さくなりすぎるおそれがある。そこで、例えば、DSP120から出力する直前に、処理済のデータO(t)を7ビットMSB側にシフトしてから出力する等してもよい。また、例えば、図6(b)に示すように、DAC130にてアナログ信号に変換後、バッファ150にて8ビットシフト分の補正(増幅)を行い、スピーカ140に出力しても良い。
【0058】
また、図6の構成に限定されず、例えば、図7に示すように構成してもよい。
図7においては、入力データS(t)は、第1のDAC131にそのまま出力される。
一方、DSP120には、24ビットに変換された入力信号S(t)が供給される。
DSP120は、24ビットに変換された入力データS(t)を処理し、24ビットの補正値Y(t)を、第2のDAC132に出力する。バッファ151は、第2のDAC132から出力された24ビットの補正値Y(t)に相当するアナログ信号を、8ビット分増幅して、16ビットの補正値Y(t)に相当するレベルとする。
加算器160は、データS(t)に相当するアナログ信号と補正値Y(t)に相当するアナログ信号を加算し、スピーカ140に出力する。
【0059】
上記実施形態では、クリップの連続数がqのときに、クリップ中の入力データS(t)にq個前の差分x(t−q)を加算して補正する例を示したが、クリップ期間中に入力データS(t)に加算(又は減算)する値は、連続数qに基づいて定められた所定のサンプリングクロック前のタイミングの差分xでもよい。例えば、クリップ中の入力データS(t)に差分x(t−q−d)を加算するようにしてもよい。ここで、dは任意の自然数である。このような構成でも、クリップを目立たなくすることができる。
【0060】
実質的に同一の機能を実現できるならば、回路構成を変更することも可能である。例えば、DSP120の機能構成を、図8に示す構成とすることも可能である。
図8の構成において、スイッチSWは、データS(t−n)がクリップしていないときは、データS(t−n)を選択して、出力データO(t−n)として出力し、一方、データS(t−n)がクリップしているときは、加算器128から供給されるデータS(t−n)+Y(t−n)を選択して、出力データO(t−n)として出力する。出力データO(t−n)は、第1の実施形態のDSP120の出力データと同一となる。
第1実施形態では、クリップが起こっていないときには、補正値Y(t)を0に設定したが、図8の構成では、クリップが起こっていないときの補正値Y(t)は任意である。
【0061】
(第3の実施形態)
第1及び第2の実施形態では、DSP120によりクリップ改善処理を行う例を示したが、図2に示す回路を、複数の回路素子の組み合わせからなるディスクリート回路で構成し、同様の処理を行っても良い。
【0062】
(第4の実施形態)
上記実施形態1〜3においては、DSPやディスクリート回路により補正処理を実行する例を示したが、一般のCPUを使用して補正処理を行うことも可能である。
この場合の、オーディオ再生装置1の構成は図1と図6において、DSP120をCPUに置換する以外同一である。
【0063】
以下、CPUが実行するクリップ波形改善処理について説明する。
【0064】
まず、CPUは、動作を開示すると、入データSを特定する変数tに0を、クリップしている音声データの連続数をカウントするための変数Lに1を代入する(ステップS101)。
【0065】
続いて、CPUは、デコータ110から、第tの入力データS(t)を取得する(ステップS102)。
【0066】
CPUは、今回の音声データS(t)と1サンプル前の音声データS(t−1)との差分x(t)=S(t)−S(t−1)を算出する(ステップS103)。なお、第1の実施形態と同様に、x(t)=S(t−1)−S(t)でもよい。
なお、t=0の場合には、1サンプル前の音声データS(t−1)が存在しないため、ステップS103をスキップする。
【0067】
CPUは、変数t、入力データS(t)、差分x(t)を対応付けて記憶する(ステップS104)。
次に、CPUは、デジタル音声信号がクリッピングしているか否かを判別する(ステップS105)。具体的には、CPUは、入力データS(t)の値が+1(データとしては、0x8000)又は−1(データとしては0x7FFF)で、且つ、その値が連続している(即ちx(t)=0)であるか否かを判別する(ステップS105)。
【0068】
CPUは、音声データS(t)がクリップしている、即ち、音声データS(t)の値が+1又は−1であり且つ直前の音声データS(t−1)との差分x(t)が0あると判別した場合(ステップS105:YES)、クリップしている音声データの連続数を表す変数Lを+1する(ステップS106)。
【0069】
一方、ステップS105で、データS(t)がクリップしていないと判別した場合(ステップS106;No)、即ち、入力データS(t)の値が+1又は−1でなく及び/又は差分x(t)が0ではないと判別した場合(ステップS105:No)、データS(t)が、直前までクリップした状態にあって、今回クリップしていない状態に変化したのか否か(クリップ状態が解消したのか否か)を判別する(ステップS107)。
【0070】
クリップ状態が解消した、即ち、直前のデータS(t−1)が+1又は−1で、直前の差分x(t−1)が0あると判別した場合(ステップS107;Yes)、継続数を示すカウント値Lを継続数qに代入し(ステップS108)、以後のカウントのためにカウント値Lを1に初期化し(ステップS109)、続いて、継続数qと、クリッピング発生から終了までの変数tとを対応付けて記憶する(ステップS110)。
【0071】
一方、ステップS107で、クリップ状態が解消した場面ではないと判別した場合(ステップS107;No)、ステップS111に進む。
【0072】
ステップS106でカウント値Lを更新した後、ステップS110でデータ識別子tと継続数qを格納した後、或いは、ステップS107で、Noと判別された場合、出力対象の音声データの有無を判別するため、t≧nであるか否かを判別する(ステップS111)。
【0073】
CPUは、t<nの場合(ステップS111;No)、出力すべきデータが存在しないので、変数tを+1して(ステップS112)、ステップS102に処理を戻し、同様の処理を繰り返す。
CPUは、t≧nの場合(ステップS111;Yes)、出力すべき音声データが存在するので、出力対象の第(t−n)番目のデータS(t−n)がクリップしていたか否かを、ステップS110で記憶したt、q等から判別する(ステップS113)。データS(t−n)がクリップしていたと判別した場合(ステップS113;Yes)、クリップ波形を改善するため、データS(t−n)にq個前の差分x(t−n−q)を加算して補正する(ステップ114)。一方、データS(t−n)がクリップしていなかったと判別した場合(ステップS113;No)、クリップ波形を改善する必要が無いので、ステップS114をスキップする。
その後、CPUは、音声データS(t−n)をDAC130に出力し(ステップS115)、変数tを+1して(ステップS112)、ステップS102に処理を戻し、同様の処理を繰り返す。
【0074】
図4の例を参照して具体的に図9の処理を説明する。ここでは、t=1から、データが供給されるものとする。
t=1〜26に関しては、S105でNo,S107でNoと判別される。一方、t=27で、S(t)=−1且つx(t)=0と判別され、L=2とされ(ステップS106)、tが更新され(ステップS112)、以後、t=50まで、同様の処理が繰り返され、Lが順次更新される(ステップS106)。
一方、t=51になると、ステップS105でNoと判別され、ステップS107では、クリップ状態が解消したと判別される。このため、このときのL=25が連続数qに代入される(ステップS108)。続いて、データがクリップしていたときのデータ識別子(t−q〜t−1)、即ち、t26〜50とクリップの連続数q=25が記憶される(ステップS109)。
【0075】
一方、t−n=1〜25の期間は、S(t−n)はクリップしていないと判別され(ステップS113;No)、ステップS115で、入力データS(t−n)がそのまま出力される。
その後、t−n=26のタイミングになると、ステップS110で記録したデータ識別子からデータS(t−n)がクリップしていると判別され(ステップS113;Yes)、差分x((t−n)−q)=x(1))が読み出され、S(26)=−1に加算され、S(26)=−1.1691が出力される。
以後、t−n=50となるまで同様の処理が繰り返され、補正されたデータS(27)〜S(50)が順次出力される。
【0076】
以上説明したように、本実施形態においても、デジタル音声信号自体を用いてクリップ波形を改善し、再生される音楽が、音割れしていたり、音が歪んでいたりして、ノイズが多く聞こえることがなく、音調に適合した補正を行うようにすることができる。
【0077】
なお、この発明は上記実施形態に限定されるものではなく、実質的に同一の機能を実現できるならば、回路構成や手順を変更することも可能である。
【符号の説明】
【0078】
1 オーディオ再生装置
100 音源装置
110 デコーダ
120 DSP
121 クリップカウンタ
122、123 遅延素子
124、125、150、151 バッファ
126、128、160 加算器
127 補正部
130、131 DAC
140 スピーカ

【特許請求の範囲】
【請求項1】
デジタル音声信号を入力し、入力したデジタル音声信号と1サンプル前のデジタル音声信号との差分を算出して該差分を記憶する差分記憶手段と、
前記デジタル音声信号が連続してクリップしている回数をカウントするカウント手段と、
クリップ状態にあるデジタル音声信号から、前記カウント手段によりカウントされたサンプル数に基づいて定められた所定数だけ前の音声信号について求められた差分を前記差分記憶手段から読み出し、該差分に基づいて、前記クリップ状態にあるデジタル音声信号を補正して、出力する補正手段と、
を備えることを特徴とする音声信号補正装置。
【請求項2】
前記補正手段は、
クリップ状態にあるデジタル音声信号について、前記カウントされたサンプル数に基づいて定められた所定数だけ前のデジタル音声信号について算出された差分に基づいて補正値を生成する補正値生成手段と、
クリップ状態にあるデジタル音声信号に、前記補正値生成手段により生成された補正値を加算する加算手段と、
を備える、ことを特徴とする請求項1に記載の音声信号補正装置。
【請求項3】
前記補正手段は、前記デジタル音声信号のビット幅よりも大きいビット幅のデータを処理する能力を有し、前記デジタル音声信号を下位にビットシフトし、ビットシフト後のデジタル音声信号を処理する、ことを特徴とする請求項1又は2に記載の音声信号補正装置。
【請求項4】
前記補正手段は、
前記デジタル音声信号のビット幅よりも大きいビット幅のデータを処理する能力を有し、
前記デジタル音声信号をアナログ信号に変換する第1の変換手段と、
クリップ時の前記補正後の音声信号をアナログ信号に変換する第2の変換手段と、
前記第2の変換手段の出力を増幅する増幅手段と、
前記第1の変換手段の出力と前記増幅手段の出力とを加算して出力する加算手段と、
を備える、
ことを特徴とする請求項1又は2に記載の音声信号補正装置。
【請求項5】
音量を示すデータを入力し、入力したデータと1サンプル前のデータとの差分を算出して記憶し、
前記入力したデータが連続してクリップしている回数をカウントし、
クリップ状態にあるデータから、カウントされたサンプル数に基づいて定められた所定数だけ前のデータについて求められた差分を読み出し、該差分に基づいて、クリップ状態にあるデータを補正して出力する、
ことを特徴とする音声信号補正方法。
【請求項6】
コンピュータに、
音量を示すデータを入力し、入力したデータと1サンプル前のデータとの差分を算出して記憶する処理と、
前記入力したデータが連続してクリップしている回数をカウントする処理と、
クリップ状態にあるデータから、カウントされたサンプル数に基づいて定められた所定数だけ前のデータについて求められた差分を読み出し、該差分に基づいて、クリップ状態にあるデータを補正して出力する処理と、
を実行させる、ことを特徴とするコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−185329(P2012−185329A)
【公開日】平成24年9月27日(2012.9.27)
【国際特許分類】
【出願番号】特願2011−48382(P2011−48382)
【出願日】平成23年3月4日(2011.3.4)
【出願人】(308036402)株式会社JVCケンウッド (1,152)