説明

エコーキャンセル装置、カラオケ装置、エコーキャンセル方法およびプログラム

【課題】ステレオ方式において、Lチャンネル、Rチャンネルのスピーカからマイクへの伝達関数を少ない演算数で算出することが可能なエコーキャンセル装置、カラオケ装置、エコーキャンセル方法およびプログラムを提供すること。
【解決手段】本発明の実施形態に係るカラオケ装置1は、2つのタイミングでの収音内容を示すオーディオ信号と、各スピーカ16−L、16−Rに供給されるオーディオ信号とに基づいて、生成される複素ベクトルを用いて所定の演算を行い、この演算を複数回行って平均を用いることにより、ステレオ状態であっても各スピーカ16−L、16−Rからマイクロフォン17−Mへの伝達関数HL、HRを少ない演算数で簡易に算出することができる。また、モノラル状態における伝達関数HAを算出することにより、ステレオ状態とモノラル状態とを切り替えて、エコーキャンセル機能を実現することもできる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、エコーキャンセルの技術に関する。
【背景技術】
【0002】
カラオケ装置においては、歌唱者の歌唱の巧拙を採点するための方法として様々な方法が提案されている。例えば、歌唱者の歌唱のピッチを検出し、歌唱のピッチと手本となるリファレンスのピッチとの比較に基づいて採点する方法がある(例えば、特許文献1)。
【特許文献1】特開2005−107330号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
歌唱者の歌唱は、マイクによって収音されるが、この収音にはスピーカから放音されるカラオケの伴奏も一緒に収音される場合がある。このような場合には、マイクによって収音された歌唱者の歌唱とカラオケの伴奏に基づいてピッチを検出することになり、歌唱者の歌唱のピッチが正確に検出されないことがあった。
【0004】
このような場合に、様々なエコーキャンセル技術を用いてカラオケの伴奏部分を除去することができる。このようなエコーキャンセル技術は、適応型のFIR(Finite impulse response)フィルタの係数を逐次修正する方法(以下、FIR方式という)、FFT(Fast Fourier transform)を使い伝達関数を求める方式(以下、FFT方式という)がある。
【0005】
FIR方式によるタップ数はFFT方式のFFTサイズに対応するものであり、その数値が大きくなればモデル化の精度が高くなる。サンプルごとの演算回数は、概ねFIR方式の場合はタップ数に比例するが、FFT方式の場合はFFTサイズの対数に比例するため、タップ数またはFFTサイズが大きくなると、FFT方式の演算数が少なくなる利点がある。一方、スピーカからの放音がステレオ方式である場合には、LチャンネルとRチャンネルで相関があるため、それぞれのスピーカからマイクへの伝達関数の測定は困難であった。
【0006】
本発明は、上述の事情に鑑みてなされたものであり、ステレオ方式において、Lチャンネル、Rチャンネルのスピーカからマイクへの伝達関数を少ない演算数で算出することが可能なエコーキャンセル装置、カラオケ装置、エコーキャンセル方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上述の課題を解決するため、本発明は、供給される第1のオーディオ信号を放音する第1の放音手段と、供給される第2のオーディオ信号を放音する第2の放音手段と、入力される音を入力信号として出力する収音手段と、前記第1の放音手段に供給される第1のオーディオ信号、前記第2の放音手段に供給される第2のオーディオ信号および前記収音手段から出力される入力信号を、所定のタイミングでフーリエ変換を行うことにより、それぞれ周波数領域の複素ベクトルL、R、Mを生成する処理を複数回行う変換手段と、前記変換手段によって生成された複素ベクトルL、R、Mを、フーリエ変換が行われたタイミングごとに組にして記憶する記憶手段と、前記記憶手段に記憶される複数の複素ベクトルの組から2つの組を選択する処理を、複数回行う選択手段と、前記選択手段における選択が行われるたびに、所定の数式を用いて当該選択した2つの組に対応する値を算出し、当該算出された複数の値の平均に基づいて、第1の伝達関数HLおよび第2の伝達関数HRを算出する算出手段とを具備することを特徴とするエコーキャンセル装置を提供する。
【0008】
また、別の好ましい態様において、前記算出手段は、以下の数式により第1の伝達関数HLおよび第2の伝達関数HRを算出してもよい。
HL=Ave((R2*M1−R1*M2)*C)/Ave(C*C
HR=Ave((L1*M2−L2*M1)*C)/Ave(C*C
ただし、
L1、R1、M1:前記選択手段が選択した2つの組のうち、一方の組の複素ベクトル
L2、R2、M2:前記選択手段が選択した2つの組のうち、もう一方の組の複素ベクトル
X*Y:複素ベクトルXとYとの対応する要素ごとの積
X/Y:複素ベクトルXとYとの対応する要素ごとの商
C=L1*R2−L2*R1
:Cの共役複素数
Ave(Z):前記選択手段が2つの組を選択するたびに計算される複素ベクトルZの平均
【0009】
また、別の好ましい態様において、前記第1の放音手段に供給される第1のオーディオ信号と前記第2の放音手段に供給される第2のオーディオ信号とを加算して第3のオーディオ信号を出力する加算手段と、前記第3のオーディオ信号および前記収音手段から出力される入力信号を、所定のタイミングでフーリエ変換を行うことにより、それぞれ周波数領域の複素ベクトルA、Mを生成する処理を複数回行う第2の変換手段と、前記第2の変換手段によって生成された複素ベクトルA、Mを、フーリエ変換が行われたタイミングごとに組にして記憶する第2の記憶手段と、所定の数式を用いて前記第2の記憶手段に記憶された複数の組の各々に対応する値を算出し、当該算出された複数の値の平均に基づいて、第3の伝達関数HAを算出する第2の算出手段と、前記第2の算出手段が算出した第3の伝達関数HAと前記加算手段から出力される第3のオーディオ信号とに基づいてモノラルキャンセル信号を生成するモノラルキャンセル信号生成手段と、前記算出手段が算出した第1の伝達関数HLと前記第1の放音手段に供給される第1のオーディオ信号とに基づいて第1のキャンセル信号を生成し、前記算出手段が算出した第2の伝達関数HRと前記第2の放音手段に供給される第2のオーディオ信号とに基づいて第2のキャンセル信号を生成し、当該生成した第1のキャンセル信号と第2のキャンセル信号とを加算してステレオキャンセル信号を生成するステレオキャンセル信号生成手段と、前記第1の放音手段に供給される第1のオーディオ信号と前記第2の放音手段に供給される第2のオーディオ信号とに基づいて、当該第1のオーディオ信号と当該第2のオーディオ信号との違いの程度を示す相違度Pを算出し、当該算出した相違度Pが所定値以上であるか否かにより、ステレオ状態かモノラル状態かを判定する判定手段と、前記判定手段がステレオ状態と判定した場合には、前記収音手段から出力された入力信号から前記ステレオキャンセル信号を減算した信号を出力し、前記判定手段がモノラル状態と判定した場合には、前記収音手段から出力された入力信号から前記モノラルキャンセル信号を減算した信号を出力する出力手段とを具備してもよい。
【0010】
また、別の好ましい態様において、前記第2の算出手段は、以下の数式により第1の伝達関数HLおよび第2の伝達関数HRを算出してもよい。
HA=Ave(M*A)/Ave(A*A
ただし、
X*Y:複素ベクトルXとYとの対応する要素ごとの積
X/Y:複素ベクトルXとYとの対応する要素ごとの商
:Aの共役複素数
Ave(Z):前記第2の記憶手段に記憶された組ごとに計算される複素ベクトルZの平均
【0011】
また、別の好ましい態様において、前記判定手段は、以下の数式により相違度Pを算出してもよい。
P=Ave(L1*R2−L2*R1)/Ave(L1*R2+L2*R1)
但し、
X*Y:複素ベクトルXとYとの対応する要素ごとの積
X/Y:複素ベクトルXとYとの対応する要素ごとの商
Ave(Z):前記選択手段が2つの組を選択するたびに計算される複素ベクトルZの平均
【0012】
また、別の好ましい態様において、前記算出手段が算出した第1の伝達関数HLと前記第1の放音手段に供給される第1のオーディオ信号とに基づいて第1のキャンセル信号を生成し、前記算出手段が算出した第2の伝達関数HRと前記第2の放音手段に供給される第2のオーディオ信号とに基づいて第2のキャンセル信号を生成し、当該生成した第1のキャンセル信号と第2のキャンセル信号とを加算してステレオキャンセル信号を生成するステレオキャンセル信号生成手段と、前記収音手段から出力された入力信号からステレオキャンセル信号を減算して出力する出力手段とをさらに具備してもよい。
【0013】
また、本発明は、上記に記載のエコーキャンセル装置と、前記出力手段から出力された信号に基づいて、ピッチを算出するピッチ算出手段とを具備することを特徴とするカラオケ装置を提供する。
【0014】
また、本発明は、供給される第1のオーディオ信号を放音する第1の放音過程と、供給される第2のオーディオ信号を放音する第2の放音過程と、入力される音を入力信号として出力する収音過程と、前記第1の放音過程において供給される第1のオーディオ信号、前記第2の放音過程において供給される第2のオーディオ信号および前記収音過程によって出力される入力信号を、所定のタイミングでフーリエ変換を行うことにより、それぞれ周波数領域の複素ベクトルL、R、Mを生成する処理を複数回行う変換過程と、前記変換過程によって生成された複素ベクトルL、R、Mを、フーリエ変換が行われたタイミングごとに組にして記憶手段に記憶する記憶過程と、前記記憶手段に記憶される複数の複素ベクトルの組から2つの組を選択する処理を、複数回行う選択過程と、前記選択過程における選択が行われるたびに、所定の数式を用いて当該選択した2つの組に対応する値を算出し、当該算出された複数の値の平均に基づいて、第1の伝達関数HLおよび第2の伝達関数HRを算出する算出過程とを備えることを特徴とするエコーキャンセル方法を提供する。
【0015】
また、本発明は、コンピュータに、供給される第1のオーディオ信号を放音する第1の放音機能と、供給される第2のオーディオ信号を放音する第2の放音機能と、入力される音を入力信号として出力する収音機能と、前記第1の放音機能において供給される第1のオーディオ信号、前記第2の放音機能において供給される第2のオーディオ信号および前記収音機能によって出力される入力信号を、所定のタイミングでフーリエ変換を行うことにより、それぞれ周波数領域の複素ベクトルL、R、Mを生成する処理を複数回行う変換機能と、前記変換機能によって生成された複素ベクトルL、R、Mを、フーリエ変換が行われたタイミングごとに組にして記憶手段に記憶する記憶機能と、前記記憶手段に記憶される複数の複素ベクトルの組から2つの組を選択する処理を、複数回行う選択機能と、前記選択機能における選択が行われるたびに、所定の数式を用いて当該選択した2つの組に対応する値を算出し、当該算出された複数の値の平均に基づいて、第1の伝達関数HLおよび第2の伝達関数HRを算出する算出機能とを実現するためのプログラムを提供する。
【発明の効果】
【0016】
本発明によれば、ステレオ方式において、Lチャンネル、Rチャンネルのスピーカからマイクへの伝達関数を少ない演算数で算出することが可能なエコーキャンセル装置、カラオケ装置、エコーキャンセル方法およびプログラムを提供することができる。
【発明を実施するための最良の形態】
【0017】
以下、本発明の一実施形態について説明する。
【0018】
<実施形態>
本発明の実施形態に係るカラオケ装置1は、後述するようなエコーキャンセル機能を有している。図1に示すように、各スピーカ16−L、16−Rからの放音をマイクロフォン17−Mで収音し、各スピーカ16−L、16−Rに供給されるオーディオ信号と、マイクロフォン17−Mの収音内容に基づいて、スピーカ16−Lからマイクロフォン17−Mへの伝達関数HL、スピーカ16−Rからマイクロフォン17−Mへの伝達関数HRを計算することによって、エコーキャンセル機能を実現する。
【0019】
カラオケ装置1のハードウエアの構成について、図2を用いて説明する。図2は、カラオケ装置1のハードウエアの構成を示すブロック図である。
【0020】
CPU(Central Processing Unit)11は、記憶部12に記憶されたプログラムをRAM(Random Access Memory)13にロードして実行する。これにより、CPU11が、バス10を介して、カラオケ装置1の各部について制御する。また、RAM13は、CPU11が各データの加工などを行う際のワークエリアとして機能する。
【0021】
記憶部12は、ハードディスク、ROM(Read Only Memory)、不揮発性メモリなどの記憶手段であって、上述したプログラム、各種情報を記憶する。
【0022】
操作部14は、例えばキーボード、マウス、リモコンなどであり、カラオケ装置1の利用者が操作部14を操作すると、その操作内容を表す情報がCPU11へ出力される。
【0023】
表示部15は、液晶ディスプレイなどの表示デバイスであって、CPU11によって入力される映像データに基づく表示、カラオケ装置1を操作するためのメニュー画面などの各種画面の表示を行う。また、CPU11の制御に基づいて、操作部14の操作に対応するポインタなどの表示を行う。
【0024】
音声出力部16は、スピーカ16−L、16−Rを有し、各々に入力されるオーディオ信号に基づいて放音する。
【0025】
音声入力部17は、収音を行うマイクロフォン17−Mを有し、マイクロフォンの収音に基づいたオーディオ信号(以下、入力信号という)を生成して出力する。
【0026】
通信部18は、有線、無線などによって、配信サーバなどとデータの送受信を行う通信手段である。通信部18は、利用者が操作部14を操作することによって、選択されるカラオケ曲を示す情報を送信し、この情報に対応したカラオケ曲の伴奏を示すMIDI(Musical Instrument Digital Interface)形式などの演奏データ、カラオケ曲の歌詞を示す歌詞テキストデータおよび色替え指示を示すワイプデータなどの歌詞表示データを受信する。
【0027】
そして、CPU11は、通信部18が受信した歌詞表示データに基づいて、映像データを生成して表示部15に出力することにより、表示部15にカラオケ曲の歌詞などを表示させる。また、CPU11は、通信部18が受信した演奏データに基づいて、オーディオ信号を生成する。このオーディオ信号は、多チャンネルの形式であり、本実施形態においては、2チャンネル(Lch、Rch)とする。以下、Lch、Rchのオーディオ信号を区別して表記するときには、Lchのオーディオ信号を伴奏信号Lch、Rchのオーディオ信号を伴奏信号Rchという。CPU11は、生成したオーディオ信号を音声出力部16に供給する。そして、音声出力部16は、スピーカ16−Lに伴奏信号Lchを、スピーカ16−Rに伴奏信号Rchを供給する。以上が、カラオケ装置1のハードウエアの構成の説明である。
【0028】
次に、カラオケ装置1のCPU11が記憶部12に記憶されたプログラムを実行することによって実現する機能のうち、エコーキャンセル機能について、図3を用いて説明する。図3は、CPU11が実現する機能を示したソフトウエアの構成を示すブロック図である。
【0029】
判定部101は、スピーカ16−L、16−Rに供給される伴奏信号Lchと伴奏信号Rchとが入力され、これらの信号に基づいて、各スピーカ16−L、16−Rの放音が、ステレオ状態になっているか、モノラル状態になっているかを判定する。すなわち、伴奏信号Lchと伴奏信号Rchとの違いの程度を示す相違度Pを算出し、この相違度Pの大きさが所定値以上であれば、伴奏信号Lchと伴奏信号Rchはステレオ状態であると判定し、それ以外であれば、伴奏信号Lchと伴奏信号Rchとはほぼ同一であるとしてモノラル状態と判定する。そして、判定した状態を示す判定信号を切替部108に出力する。判定部101の詳細構成について、図4を用いて説明する。図4は、判定部101の構成を示すブロック図である。
【0030】
FFT部1011は、伴奏信号Lchが入力され、入力された伴奏信号LchにFFTを施して、所定のタイミングごとに周波数領域の複素ベクトルLを生成する。また、伴奏信号Rchについても同様にして複素ベクトルRを生成する。そして、生成した複素ベクトルLと複素ベクトルRとを組にして順次バッファ部1012に記憶させる。
【0031】
バッファ部1012は、上述のように、FFT部1011から出力された複素ベクトルL、Rを、生成されるタイミングごとに組にして記憶する。
【0032】
選択部1013は、バッファ部1012に記憶された複素ベクトルL、Rの組から2つの組を選択して読み出し、算出部1014に出力する。そして、2つの組の選択を複数回(本実施形態においてはn回とする)繰り返す。このような2つの組選択は、所定のアルゴリズムによって定められた方法で行われる。例えば、バッファ部1012に記憶された複素ベクトルの組のうち、ランダムに2つの組を選択するものであってもよいし、早い時刻に生成された順に2つずつの組を選択するものであってもよいし、一方の組は固定して、もう一方の組を適宜選択するものであってもよく、選択された2つの組が同一でなければ、どのようなアルゴリズムで行なわれてもよい。以下、読み出した2つの組に係る複素ベクトルは、複素ベクトルL1、R1、および複素ベクトルL2、R2という。
【0033】
算出部1014は、選択部1013から出力された複素ベクトルL1、R1、および複素ベクトルL2、R2を用いた以下の数式(1)、(2)によってPam、Pbmを算出し、算出したPam、Pbmを平均化部1015に出力する。
Pam=(L1m*R2m−L2m*R1m)・・・(1)
Pbm=(L1m*R2m+L2m*R1m)・・・(2)
ただし、「X*Y」は、複素ベクトルXとYとの対応する要素(周波数領域)ごとの積(以下の数式においても同じ)を示す。例えば、複素ベクトルXが{x1,x2,x3}という要素で表され、Yが{y1,y2,y3}という要素で表される場合には、「X*Y」は、{x1×y1,x2×y2,x3×y3}という要素で表されるベクトルになるような演算を行うものである。また、m=1、2、・・・、nであり、L1mは、選択部1013においてm回目に選択された2つの組の一方の組の複素ベクトルL1を示す。L2m、R1m、R2m、また、後述するAm,MmについてもL1mと同様である。
【0034】
平均化部1015は、算出部1014から出力されたPamおよびPbmを用いた以下の数式(3)によって相違度Pを算出し、評価部1016に出力する。
P=Ave(Pam)/Ave(Pbm)・・・(3)
ただし、「X/Y」は、複素ベクトルXとYとの対応する要素ごとの商(以下の数式においても同じ)を示す。例えば、複素ベクトルXが{x1,x2,x3}という要素で表され、Yが{y1,y2,y3}という要素で表される場合には、「X/Y」は、{x1/y1,x2/y2,x3/y3}という要素で表されるベクトルになるような演算を行うものである。「Ave(Zm)」は、m=1〜nの複素ベクトルZの平均(以下の数式においても同じ)であり、Ave(Zm)=(Z1+Z2+・・・+Zn)/nを示す。
【0035】
評価部1016は、平均化部1015から入力された相違度Pが予め定められた所定値以上であればステレオ状態と判定し、それ以外の場合、すなわちPが所定値より小さい場合には、複素ベクトルLとRとがほぼ同一であり、モノラル状態と判定する。そして、評価部1016は、ステレオ状態かモノラル状態かを示す判定信号を切替部108に出力する。以上が、判定部101の構成の説明である。
【0036】
図3に戻る。ステレオ伝達関数算出部102は、音声入力部17によって生成された入力信号と、スピーカ16−L、16−Rに供給される伴奏信号Lchと伴奏信号Rchとに基づいて、スピーカ16−Lからマイクロフォン17−Mへの伝達関数HLと、スピーカ16−Rからマイクロフォン17−Mへの伝達関数HRとを算出する。そして、算出した伝達関数HL、HRをステレオキャンセル信号生成部103に出力する。なお、スピーカ16−L、16−Rの放音がステレオ状態である場合を想定しているから、判定部101の判定がステレオ状態であるときのみ、ステレオ伝達関数算出部102、および後述するステレオキャンセル信号生成部103が機能するようにしてもよい。以下、ステレオ伝達関数算出部102の詳細構成について図5を用いて説明する。図5は、ステレオ伝達関数算出部102の構成を示すブロック図である。
【0037】
FFT部1021は、FFT部1011と同様に、伴奏信号Lch、伴奏信号Rchが入力され、所定のタイミングごとにFFTを施して各々の複素ベクトルL、Rを生成する。さらに、FFT部1021には、マイクロフォン17−Mの収音によって音声入力部17によって生成された入力信号が入力され、この入力信号についても所定のタイミングごとにFFTを施し、周波数領域の複素ベクトルMを生成する。そして、生成した複素ベクトルLと複素ベクトルRと複素ベクトルMとを組にして順次バッファ部1022に記憶させる。
【0038】
バッファ部1022は、上述のように、FFT部1021から出力された複素ベクトルL、R、Mを、生成されるタイミングごとに組にして記憶する。
【0039】
選択部1023は、バッファ部1022に記憶された複素ベクトルL、R、Mの組から2つの組を選択して読み出し、算出部1024に出力する。そして、2つの組の選択を複数回(本実施形態においてはn回とする)繰り返す。このような2つの組選択は、所定のアルゴリズムによって定められた方法で行われ、選択部1013と同様に様々なアルゴリズムを用いることができる。以下、読み出した2つの組に係る複素ベクトルは、複素ベクトルL1、R1、M1および複素ベクトルL2、R2、M2という。
【0040】
算出部1024は、選択部1023から出力された複素ベクトルL1、R1、M1、および複素ベクトルL2、R2、M2を用いた以下の数式(4)〜(6)によってHLm、HRm、Cmを算出し、算出したHLm、HRm、Cmを平均化部1025に出力する。
HLm=(R2m*M1m−R1m*M2m)・・・(4)
HRm=(L1m*M2m−L2m*M1m)・・・(5)
Cm=(L1m*R2m−L2m*R1m)・・・(6)
【0041】
平均化部1025は、算出部1024から出力されたHLm、HRm、Cmを用いた以下の数式(7)(8)によって、伝達関数HL、伝達関数HRを算出し、ステレオキャンセル信号生成部103に出力する。
HL=Ave(HLm*Cm)/Ave(Cm*Cm)・・・(7)
HR=Ave(HRm*Cm)/Ave(Cm*Cm)・・・(8)
ただし、「Cm」は、Cmの共役複素数(以下の数式においても同じ)である。
【0042】
ここで、上記方法により伝達関数HL、HRが計算できる根拠について説明する。まず、入力信号は、スピーカ16−Lとスピーカ16−Rからの放音が、マイクロフォン17−Mによって収音されたものとノイズ信号とをあわせた信号であるから、選択部1023で選択される2つの組である複素ベクトルL1、R1、M1、L2、R2、M2、および各組のタイミングにおいて想定されるノイズ信号を示す複素ベクトルE1、E2(仮の値であって計算により導出されるものではない)は、以下の数式(9)(10)が成り立つ。
M1=HL*L1+HR*R1+E1・・・(9)
M2=HL*L2+HR*R2+E2・・・(10)
【0043】
数式(9)、(10)をHL、HRを未知数とした2元連立方程式と考え、まずHLを導出する。数式(9)の両辺にR2を乗算したものから、数式(10)の両辺にR1を乗算したものを減算すると、以下の数式(11)が得られる。
HL=(R2*(M1−E1)−R1*(M2−E2))/(L1*R2−L2*R1)
・・・(11)
【0044】
次に、数式(11)の分母(L1*R2−L2*R1)をCとし、その共役複素数Cを数式(11)の分母分子に乗算すると、以下の数式(12)が得られる。
HL=((R2*(M1−E1)−R1*(M2−E2))*C)/(C*C
=((R2*M1*C)−(R2*E1*C)−(R1*M2*C)+(R1*E2*C))/(C*C)・・・(12)
【0045】
数式(12)を様々な2つの組の複素ベクトルL、R、Mで計算し、分母分子をそれぞれ平均すると、分子の第2項(R2*E1*C)、第4項(R1*E2*C)は、相関の無いクロススペクトルの平均であるから、「0」となり、以下の数式(13)が得られる。
HL=Ave((R2*M1−R1*M2)*C)/Ave(C*C)・・・(13)
【0046】
同様にして、HRを導出すると、以下の数式(14)が得られる。
HR=Ave((L1*M2−L2*M1)*C)/Ave(C*C)・・・(14)
【0047】
このように、複素ベクトルL、R、Mを組にしてバッファ部1022に所定数の組を記憶し、バッファ部1022に記憶された複素ベクトルの組から2つを選択して伝達関数HL、HRを算出する際に、複数回の算出を行って平均化処理を行うことにより、ノイズ信号を示す複素ベクトルE1、E2については計算上から消去され、HL、HRの算出を行うことができる。以上が、ステレオ伝達関数算出部102の構成の説明である。
【0048】
図3に戻る。ステレオキャンセル信号生成部103は、ステレオ伝達関数算出部102から伝達関数HL、伝達関数HRが入力されると、別途、異なる伝達関数が入力されるまでは、この伝達関数を現状の伝達関数であるものとして設定する。
【0049】
そして、ステレオキャンセル信号生成部103は、スピーカ16−Lに供給される伴奏信号Lchと、設定した伝達関数HLとに基づいて、スピーカ16−Lからの音をマイクロフォン17−Mが収音すると想定される信号を示すキャンセル信号Lchを生成する。また、同様にして、スピーカ16−Rに供給される伴奏信号Rchと、設定された伝達関数HRとに基づいて、キャンセル信号Rchを生成する。
【0050】
具体的には、伴奏信号LchにFFTを施した複素ベクトルLと伝達関数HLとの積(L*HL)を算出し、この算出結果に対して逆FFTを行うことで、キャンセル信号Lchを生成する。また、伴奏信号RchにFFTを施した複素ベクトルRと伝達関数HRとの積(R*HR)を算出し、この算出結果に対して逆FFTを行って、キャンセル信号Rchを生成する。
【0051】
加算部104は、ステレオキャンセル信号生成部103において生成されたキャンセル信号Lchとキャンセル信号Rchとを加算し、ステレオキャンセル信号として切替部108に出力する。
【0052】
加算部105は、スピーカ16−L、16−Rに供給される伴奏信号Lchと伴奏信号Rchとを加算して、伴奏信号Aとしてモノラル伝達関数算出部106およびモノラルキャンセル信号生成部107に出力する。
【0053】
モノラル伝達関数算出部106は、音声入力部17によって生成された入力信号と、加算部105から出力された伴奏信号Aとに基づいて、2つのスピーカ16−L、16−Rからマイクロフォン17−Mへの伝達関数HAを算出する。そして、算出した伝達関数HAをモノラルキャンセル信号生成部107に出力する。なお、スピーカ16−L、16−Rの放音がモノラル状態である場合を想定しているから、判定部101の判定がモノラル状態であるときのみ、モノラル伝達関数算出部106、および後述するモノラルキャンセル信号生成部107が機能するようにしてもよい。以下、モノラル伝達関数算出部106の詳細構成について図6を用いて説明する。図6は、モノラル伝達関数算出部106の構成を示すブロック図である。
【0054】
FFT部1061は、伴奏信号Aが入力され、FFT部1011、1021と同様に、所定のタイミングごとにFFTを施して各々の複素ベクトルAを生成する。さらに、FFT部1021と同様に、FFT部1061には、マイクロフォン17−Mの収音によって音声入力部17によって生成された入力信号が入力され、この入力信号についても所定のタイミングごとにFFTを施し、周波数領域の複素ベクトルMを生成する。そして、生成した複素ベクトルAと複素ベクトルMとを組にして順次バッファ部1062に記憶させる。
【0055】
バッファ部1062は、上述のように、FFT部1061から出力された複素ベクトルA、Mを、生成されるタイミングごとに組にして記憶する。
【0056】
選択部1063は、バッファ部1062に記憶された複素ベクトルA、Mの組から1つの組を選択して読み出して、平均化部1065に出力する。そして、1つの組の選択を複数回(本実施形態においてはn回とする)繰り返す。このような組選択は、所定のアルゴリズムによって定められた方法で行われ、選択部1013、1023と同様に、ランダムに選択、生成された順に選択など様々なアルゴリズムを用いることができる。
【0057】
平均化部1065は、選択部1063によって選択された組の複素ベクトルA、Mを用いた以下の数式(15)によって、伝達関数HAを算出し、モノラルキャンセル信号生成部107に出力する。
HA=Ave(Mm*Am)/Ave(Am*Am)・・・(15)
【0058】
ここで、上記方法により伝達関数HAが計算できる根拠について説明する。伝達関数HL、HRの計算と同様に、入力信号は、スピーカ16−Lとスピーカ16−Rからの放音が、マイクロフォン17−Mによって収音されたものとノイズ信号とをあわせた信号であるから、選択部1063で選択される1つの組である複素ベクトルA、M、および各組のタイミングにおいて想定されるノイズ信号を示す複素ベクトルE(仮の値であって計算により導出されるものではない)は、以下の数式(16)が成り立つ。
M=HA*A+E・・・(16)
よって、
HA=(M−E)/A・・・(17)
となる。
【0059】
次に、数式(17)の分母Aの共役複素数Aを数式(17)の分母分子に乗算すると、以下の数式(18)が得られる。
HA=((M−E)*A)/A*A
=((M*A)−(E*A))/(A*A)・・・(18)
【0060】
数式(18)を様々な組の複素ベクトルA、Mで計算し、分母分子をそれぞれ平均すると、分子の第2項(E*A)は、相関の無いクロススペクトルの平均であるから、「0」となり、以下の数式(19)が得られる。
HA=Ave(M*A)/Ave(A*A)・・・(19)
【0061】
モノラル状態である場合には、ステレオ状態と同様な計算を行うと、ほぼL=Rであることから、伝達関数算出の式の分母(L1*R2−L2*R1)がほぼ「0」になってしまい、計算ができない場合がある。このような場合に、上述のようなモノラル伝達関数算出部106による処理を行うことで、モノラル状態であっても、ステレオ状態のときと同様に、伝達関数HAの算出を行うことができる。以上が、モノラル伝達関数算出部106の構成の説明である。
【0062】
図3に戻る。モノラルキャンセル信号生成部107は、モノラル伝達関数算出部106から伝達関数HAが入力されると、別途、異なる伝達関数が入力されるまでは、この伝達関数を現状の伝達関数であるものとして設定する。
【0063】
モノラルキャンセル信号生成部107は、加算部105から出力された伴奏信号Aと、設定した伝達関数HAとに基づいて、各スピーカ16−L、16−Rからの音をマイクロフォン17−Mが収音すると想定される信号を示すモノラルキャンセル信号を生成する。
【0064】
具体的には、伴奏信号AにFFTを施した複素ベクトルAと伝達関数HAとの積(A*HA)を算出し、この算出結果に対して逆FFTを行うことで、モノラルキャンセル信号を生成し、切替部108に出力する。
【0065】
切替部108は、判定部101から入力された判定信号がステレオ状態を示している場合には、加算部104から入力されるステレオキャンセル信号を減算部109に出力する。一方、判定部101から入力された判定信号がモノラル状態を示している場合には、モノラルキャンセル信号生成部107から入力されるモノラルキャンセル信号を減算部109に出力する。なお、上述したように、ステレオ伝達関数算出部102、モノラル伝達関数算出部106が、各々ステレオ状態、モノラル状態である場合にのみ、機能するようになっている場合には、ステレオキャンセル信号とモノラルキャンセル信号との双方が同時に切替部108に入力されることがなくなるから、これらのいずれか入力された信号について減算部109に出力するようにしてもよい。
【0066】
減算部109は、音声入力部17において生成された入力信号と、切替部108から出力されるステレオキャンセル信号またはモノラルキャンセル信号とが入力される。そして、減算部109は、入力信号から、ステレオキャンセル信号またはモノラルキャンセル信号を減算した出力信号を出力する。このような出力信号は、マイクロフォン17−Mが収音した内容が、スピーカ16−L、16−Rからの放音のみである場合には、その放音が低減または消去されたようなオーディオ信号となる。一方、歌唱者の歌唱をマイクロフォン17−Mで収音した場合には、スピーカ16−L、16−Rからの音が低減または消去されることにより、出力信号は、ほぼ歌唱者の歌唱を示すオーディオ信号となる。
【0067】
次に、本実施形態に係るカラオケ装置1の動作について説明する。まず、カラオケ装置1の利用者(以下、歌唱者という)は操作部14を操作して、カラオケ曲を選択する。そして、カラオケ曲に係る各種データを通信部18によって受信すると、カラオケ曲の前奏が開始される。この前奏の期間において、上述した伝達関数の算出が行われる。なお、前奏の期間については、マイクロフォン17−Mの収音内容(音量、波形など)からCPU11が判断してもよいしCPU11が、歌詞表示データを解析して、曲の開始からワイプが開始される直前までの期間としてもよい。また、伝達関数の算出を行う期間は、前奏の期間だけではなく間奏の期間でもよく、歌唱者の歌唱がマイクロフォン17−Mによって収音されていないとき、すなわちダブルトーク状態でないときであればどのような期間であってもよく、そのような期間は、上述同様に判断すればよい。
【0068】
そして、ステレオ伝達関数算出部102、モノラル伝達関数算出部106は、上記期間で伝達関数HL、HR、HAを算出し、ステレオキャンセル信号生成部103、モノラルキャンセル信号生成部107に伝達関数HL、HR、HAを設定する。
【0069】
前奏期間が終了して歌唱者の歌唱が始まると、判定部101は、ステレオ状態かモノラル状態かを判定しながら判定信号を出力する。そして、切替部108は、判定信号に応じて、ステレオキャンセル信号またはモノラルキャンセル信号のいずれかを出力する。これにより、出力信号は、歌唱者の歌唱とスピーカ16−L、16−Rからの音とを含む入力信号から、スピーカ16−L、16−Rからの音が低減または消去された音を示すオーディオ信号となる。
【0070】
そして、歌唱者の歌唱の巧拙を評価するために、例えば、CPU11によってピッチ検出が行われる構成であるときには、この出力信号を用いてピッチの検出を行うようにする。これにより、音声入力部17が生成した入力信号をそのまま用いてピッチの検出をするよりも、スピーカ16−L、16−Rからの音が低減または消去されることにより、ほぼ歌唱者の歌唱を反映した出力信号を用いてピッチの検出をすることにより、より精密な検出をすることができる。
【0071】
このように、本発明の実施形態に係るカラオケ装置1は、2つのタイミングでの収音内容を示すオーディオ信号と、各スピーカ16−L、16−Rに供給されるオーディオ信号とに基づいて、生成される複素ベクトルを用いて所定の演算を行い、これを複数回行った平均を用いることにより、ノイズ信号の成分によらず、ステレオ方式であっても各スピーカ16−L、16−Rからマイクロフォン17−Mへの伝達関数HL、HRを少ない演算数で簡易に算出することができる。また、モノラル状態における伝達関数HAを算出することにより、ステレオ状態とモノラル状態とを切り替えて、エコーキャンセル機能を実現することもできる。
【0072】
以上、本発明の実施形態について説明したが、本発明は以下のように、さまざまな態様で実施可能である。
【0073】
<変形例1>
上述した実施形態においては、判定部101、ステレオ伝達関数算出部102、モノラル伝達関数算出部106のFFT部1011、1021、1061およびバッファ部1012、1022、1062についてはは、各々別々に機能するものとしていたが、これらを共通化したFFT部、バッファ部を設けるようにしてもよい。この場合には、共通化したFFT部は、共通のタイミングで入力信号、伴奏信号Lch、伴奏信号Rch、伴奏信号AについてのFFTを行って、これらの複素ベクトルM、L、R、Aをそのタイミングごとにまとめて組にして、共通化したバッファ部に記憶させるようにすればよい。そして、判定部101、ステレオ伝達関数算出部102、モノラル伝達関数算出部106の選択部1013、1023、1063は、複素ベクトルの組を選択するときには、共通化したバッファから、選択した組を構成する複素ベクトルのうち必要な複素ベクトル、例えば選択部1013であれば、選択した組を構成する複素ベクトルのうち複素ベクトルL、Rを抽出するようにすればよい。このようにすれば、CPU11の処理負担を低減することができる。
【0074】
<変形例2>
実施形態においては、判定部101は、上述したように複素ベクトルを用いた所定の数式を用いて相違度Pを算出し、相違度Pに基づいてステレオ状態かモノラル状態かの判定を行っていたが、これ以外の方法によって判定を行なってもよい。例えば、伴奏信号Lchと伴奏信号Rchとの差または比に基づいて相違度Pを算出してもよい。また、通信部18が受信する演奏データがステレオ方式であるか否かを示す情報を有するようにすれば、判定部101は、この情報を用いてステレオ状態かモノラル状態かを判定してもよい。また、このような情報がなくても、判定部101は、演奏データを解析してステレオ状態かモノラル状態かを判定するようにしてもよい。このように、判定部101は、ステレオ状態かモノラル状態かの判定の際に、伴奏信号Lchと伴奏信号Rchとがステレオ方式の信号か否かを判定できればよいから、様々な方法で判定を行うことができる。
【0075】
<変形例3>
実施形態においては、音声出力部16が有するスピーカはスピーカ16−L、16−Rの2つであったが、より多くの数であってもよい。この場合には、選択部1023において選択する組の数をスピーカの数に応じて増加させればよい。例えば、スピーカが3つであれば、3元連立方程式を解くことで計算可能であるから、バッファ部1022に記憶された複数の複素ベクトルの組から3つの組を選択し、所定のアルゴリズムで計算を行い、この計算結果の平均を算出するようにすればよい。
【0076】
このように、算出したい伝達関数を未知数とした連立方程式を解くために、少なくとも未知数に応じた数の複素ベクトルの組を選択するようにすればよい。そして、ノイズ信号に相当する部分を消去するために、伝達関数の計算において平均化を行うようにすればよい。
【0077】
すなわち、このようなエコーキャンセル装置は、各々供給されるオーディオ信号を放音する複数の放音手段と、入力される音を入力信号として出力する収音手段と、前記各放音手段に供給されるオーディオ信号および前記収音手段から出力される入力信号を、所定のタイミングでフーリエ変換を行うことにより、それぞれ周波数領域の複素ベクトルを生成する処理を複数回行う変換手段と、前記変換手段によって生成された各複素ベクトルを、フーリエ変換が行われたタイミングごとに組にして記憶する記憶手段と、前記記憶手段に記憶される複数の複素ベクトルの組から、前記放音手段の数の組を選択する処理を複数回行う選択手段と、前記選択手段における選択が行われるたびに、所定の数式によって当該選択した組に基づく値を算出し、当該算出された複数の値の平均に基づいて、前記放音手段の数の伝達関数を算出する算出手段とを具備することを特徴としている。
【0078】
<変形例4>
実施形態においては、マイクロフォン17−Mは1つであったが、複数であってもよい。この場合には、各スピーカ16−L、16−Rからそれぞれのマイクロフォン17−Mへの伝達関数を算出し、算出した伝達関数と伴奏信号Lch、伴奏信号Rchとに基づいて生成される各キャンセル信号を、対応するマイクロフォン17−Mに係る入力信号から減算するようにすればよい。
【図面の簡単な説明】
【0079】
【図1】実施形態に係る伝達関数HL、伝達関数HRについての説明図である。
【図2】実施形態に係るカラオケ装置のハードウエアの構成を示すブロック図である。
【図3】実施形態に係るカラオケ装置のエコーキャンセル機能に係るソフトウエアの構成を示すブロック図である。
【図4】実施形態に係る判定部の構成を示すブロック図である。
【図5】実施形態に係るステレオ伝達関数算出部の構成を示すブロック図である。
【図6】実施形態に係るモノラル伝達関数算出部の構成を示すブロック図である。
【符号の説明】
【0080】
1…カラオケ装置、10…バス、11…CPU、12…記憶部、13…RAM、14…操作部、15…表示部、16…音声出力部、16−L,16−R…スピーカ、17…音声入力部、17−M…マイクロフォン、18…通信部、101…判定部、102…ステレオ伝達関数算出部、103…ステレオキャンセル信号生成部、104,105…加算部、106…モノラル伝達関数算出部、107…モノラルキャンセル信号生成部、108…切替部、109…減算部、1011,1021,1061…FFT部、1012,1022,1062…バッファ部、1013,1023,1063…選択部、1014,1024…算出部、1015,1025,1065…平均化部、1016…評価部

【特許請求の範囲】
【請求項1】
供給される第1のオーディオ信号を放音する第1の放音手段と、
供給される第2のオーディオ信号を放音する第2の放音手段と、
入力される音を入力信号として出力する収音手段と、
前記第1の放音手段に供給される第1のオーディオ信号、前記第2の放音手段に供給される第2のオーディオ信号および前記収音手段から出力される入力信号を、所定のタイミングでフーリエ変換を行うことにより、それぞれ周波数領域の複素ベクトルL、R、Mを生成する処理を複数回行う変換手段と、
前記変換手段によって生成された複素ベクトルL、R、Mを、フーリエ変換が行われたタイミングごとに組にして記憶する記憶手段と、
前記記憶手段に記憶される複数の複素ベクトルの組から2つの組を選択する処理を、複数回行う選択手段と、
前記選択手段における選択が行われるたびに、所定の数式を用いて当該選択した2つの組に対応する値を算出し、当該算出された複数の値の平均に基づいて、第1の伝達関数HLおよび第2の伝達関数HRを算出する算出手段と
を具備することを特徴とするエコーキャンセル装置。
【請求項2】
前記算出手段は、以下の数式により第1の伝達関数HLおよび第2の伝達関数HRを算出する
HL=Ave((R2*M1−R1*M2)*C)/Ave(C*C
HR=Ave((L1*M2−L2*M1)*C)/Ave(C*C
ただし、
L1、R1、M1:前記選択手段が選択した2つの組のうち、一方の組の複素ベクトル
L2、R2、M2:前記選択手段が選択した2つの組のうち、もう一方の組の複素ベクトル
X*Y:複素ベクトルXとYとの対応する要素ごとの積
X/Y:複素ベクトルXとYとの対応する要素ごとの商
C=L1*R2−L2*R1
:Cの共役複素数
Ave(Z):前記選択手段が2つの組を選択するたびに計算される複素ベクトルZの平均
ことを特徴とする請求項1に記載のエコーキャンセル装置。
【請求項3】
前記第1の放音手段に供給される第1のオーディオ信号と前記第2の放音手段に供給される第2のオーディオ信号とを加算して第3のオーディオ信号を出力する加算手段と、
前記第3のオーディオ信号および前記収音手段から出力される入力信号を、所定のタイミングでフーリエ変換を行うことにより、それぞれ周波数領域の複素ベクトルA、Mを生成する処理を複数回行う第2の変換手段と、
前記第2の変換手段によって生成された複素ベクトルA、Mを、フーリエ変換が行われたタイミングごとに組にして記憶する第2の記憶手段と、
所定の数式を用いて前記第2の記憶手段に記憶された複数の組の各々に対応する値を算出し、当該算出された複数の値の平均に基づいて、第3の伝達関数HAを算出する第2の算出手段と、
前記第2の算出手段が算出した第3の伝達関数HAと前記加算手段から出力される第3のオーディオ信号とに基づいてモノラルキャンセル信号を生成するモノラルキャンセル信号生成手段と、
前記算出手段が算出した第1の伝達関数HLと前記第1の放音手段に供給される第1のオーディオ信号とに基づいて第1のキャンセル信号を生成し、前記算出手段が算出した第2の伝達関数HRと前記第2の放音手段に供給される第2のオーディオ信号とに基づいて第2のキャンセル信号を生成し、当該生成した第1のキャンセル信号と第2のキャンセル信号とを加算してステレオキャンセル信号を生成するステレオキャンセル信号生成手段と、
前記第1の放音手段に供給される第1のオーディオ信号と前記第2の放音手段に供給される第2のオーディオ信号とに基づいて、当該第1のオーディオ信号と当該第2のオーディオ信号との違いの程度を示す相違度Pを算出し、当該算出した相違度Pが所定値以上であるか否かにより、ステレオ状態かモノラル状態かを判定する判定手段と、
前記判定手段がステレオ状態と判定した場合には、前記収音手段から出力された入力信号から前記ステレオキャンセル信号を減算した信号を出力し、前記判定手段がモノラル状態と判定した場合には、前記収音手段から出力された入力信号から前記モノラルキャンセル信号を減算した信号を出力する出力手段と
を具備する
ことを特徴とする請求項1または請求項2に記載のエコーキャンセル装置。
【請求項4】
前記第2の算出手段は、以下の数式により第1の伝達関数HLおよび第2の伝達関数HRを算出する
HA=Ave(M*A)/Ave(A*A
ただし、
X*Y:複素ベクトルXとYとの対応する要素ごとの積
X/Y:複素ベクトルXとYとの対応する要素ごとの商
:Aの共役複素数
Ave(Z):前記第2の記憶手段に記憶された組ごとに計算される複素ベクトルZの平均
ことを特徴とする請求項3に記載のエコーキャンセル装置。
【請求項5】
前記判定手段は、以下の数式により相違度Pを算出する
P=Ave(L1*R2−L2*R1)/Ave(L1*R2+L2*R1)
但し、
X*Y:複素ベクトルXとYとの対応する要素ごとの積
X/Y:複素ベクトルXとYとの対応する要素ごとの商
Ave(Z):前記選択手段が2つの組を選択するたびに計算される複素ベクトルZの平均
ことを特徴とする請求項3または請求項4に記載のエコーキャンセル装置。
【請求項6】
前記算出手段が算出した第1の伝達関数HLと前記第1の放音手段に供給される第1のオーディオ信号とに基づいて第1のキャンセル信号を生成し、前記算出手段が算出した第2の伝達関数HRと前記第2の放音手段に供給される第2のオーディオ信号とに基づいて第2のキャンセル信号を生成し、当該生成した第1のキャンセル信号と第2のキャンセル信号とを加算してステレオキャンセル信号を生成するステレオキャンセル信号生成手段と、
前記収音手段から出力された入力信号からステレオキャンセル信号を減算して出力する出力手段と
をさらに具備する
ことを特徴とする請求項1または請求項2に記載のエコーキャンセル装置。
【請求項7】
請求項3乃至請求項6のいずれかに記載のエコーキャンセル装置と、
前記出力手段から出力された信号に基づいて、ピッチを算出するピッチ算出手段と
を具備することを特徴とするカラオケ装置。
【請求項8】
供給される第1のオーディオ信号を放音する第1の放音過程と、
供給される第2のオーディオ信号を放音する第2の放音過程と、
入力される音を入力信号として出力する収音過程と、
前記第1の放音過程において供給される第1のオーディオ信号、前記第2の放音過程において供給される第2のオーディオ信号および前記収音過程によって出力される入力信号を、所定のタイミングでフーリエ変換を行うことにより、それぞれ周波数領域の複素ベクトルL、R、Mを生成する処理を複数回行う変換過程と、
前記変換過程によって生成された複素ベクトルL、R、Mを、フーリエ変換が行われたタイミングごとに組にして記憶手段に記憶する記憶過程と、
前記記憶手段に記憶される複数の複素ベクトルの組から2つの組を選択する処理を、複数回行う選択過程と、
前記選択過程における選択が行われるたびに、所定の数式によって当該選択した2つの組に基づく値を算出し、当該算出された複数の値の平均に基づいて、第1の伝達関数HLおよび第2の伝達関数HRを算出する算出過程と
を備えることを特徴とするエコーキャンセル方法。
【請求項9】
コンピュータに、
供給される第1のオーディオ信号を放音する第1の放音機能と、
供給される第2のオーディオ信号を放音する第2の放音機能と、
入力される音を入力信号として出力する収音機能と、
前記第1の放音機能において供給される第1のオーディオ信号、前記第2の放音機能において供給される第2のオーディオ信号および前記収音機能によって出力される入力信号を、所定のタイミングでフーリエ変換を行うことにより、それぞれ周波数領域の複素ベクトルL、R、Mを生成する処理を複数回行う変換機能と、
前記変換機能によって生成された複素ベクトルL、R、Mを、フーリエ変換が行われたタイミングごとに組にして記憶手段に記憶する記憶機能と、
前記記憶手段に記憶される複数の複素ベクトルの組から2つの組を選択する処理を、複数回行う選択機能と、
前記選択機能における選択が行われるたびに、所定の数式を用いて当該選択した2つの組に対応する値を算出し、当該算出された複数の値の平均に基づいて、第1の伝達関数HLおよび第2の伝達関数HRを算出する算出機能と
を実現するためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate