JP2009150920A - エコーキャンセル装置、カラオケ装置、エコーキャンセル方法およびプログラム - Google Patents
エコーキャンセル装置、カラオケ装置、エコーキャンセル方法およびプログラム Download PDFInfo
- Publication number
- JP2009150920A JP2009150920A JP2007326094A JP2007326094A JP2009150920A JP 2009150920 A JP2009150920 A JP 2009150920A JP 2007326094 A JP2007326094 A JP 2007326094A JP 2007326094 A JP2007326094 A JP 2007326094A JP 2009150920 A JP2009150920 A JP 2009150920A
- Authority
- JP
- Japan
- Prior art keywords
- frequency
- complex vector
- complex
- selection
- transfer function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Reverberation, Karaoke And Other Acoustics (AREA)
Abstract
【課題】歌唱者の歌唱中であってもスピーカからマイクへの伝達関数を算出することが可能なエコーキャンセル装置、カラオケ装置、エコーキャンセル方法およびプログラムを提供すること。
【解決手段】本発明の実施形態に係るカラオケ装置1は、音声入力部17において生成される入力信号に基づいて、入力信号の各周波数においてダブルトーク状態であるかシングルトーク状態であるかを判定し、シングルトーク状態である周波数の入力信号に基づいて、伝達関数を算出することができる。ここで、歌唱の基本周波数は随時変化することにより、シングルトーク状態である周波数も随時変化するから、所定時間経過するうちには、伝達関数算出に必要な全ての周波数がシングルトーク状態となり、歌唱中であっても、各周波数における伝達関数を算出することができる。
【選択図】図2
【解決手段】本発明の実施形態に係るカラオケ装置1は、音声入力部17において生成される入力信号に基づいて、入力信号の各周波数においてダブルトーク状態であるかシングルトーク状態であるかを判定し、シングルトーク状態である周波数の入力信号に基づいて、伝達関数を算出することができる。ここで、歌唱の基本周波数は随時変化することにより、シングルトーク状態である周波数も随時変化するから、所定時間経過するうちには、伝達関数算出に必要な全ての周波数がシングルトーク状態となり、歌唱中であっても、各周波数における伝達関数を算出することができる。
【選択図】図2
Description
本発明は、エコーキャンセルの技術に関する。
カラオケ装置においては、歌唱者の歌唱の巧拙を採点するための方法として様々な方法が提案されている。例えば、歌唱者の歌唱のピッチを検出し、歌唱のピッチと手本となるリファレンスのピッチとの比較に基づいて採点する方法がある(例えば、特許文献1)。
特開2005−107330号公報
歌唱者の歌唱は、マイクによって収音されるが、この収音にはスピーカから放音されるカラオケの伴奏も一緒に収音される場合がある。このような場合には、マイクによって収音された歌唱者の歌唱とカラオケの伴奏に基づいてピッチを検出することになり、歌唱者の歌唱のピッチが正確に検出されないことがあった。
このような場合に、様々なエコーキャンセル技術を用いてカラオケの伴奏部分を除去することができる。このようなエコーキャンセル技術は、適応型のFIR(Finite impulse response)フィルタの係数を逐次修正する方法(以下、FIR方式という)、FFT(Fast Fourier transform)を使い伝達関数を求める方式(以下、FFT方式という)がある。
FIR方式によるタップ数はFFT方式のFFTサイズに対応するものであり、その数値が大きくなればモデル化の精度が高くなる。サンプルごとの演算回数は、概ねFIR方式の場合はタップ数に比例するが、FFT方式の場合はFFTサイズの対数に比例するため、タップ数またはFFTサイズが大きくなると、FFT方式の演算数が少なくなる利点がある。
カラオケ装置などにエコーキャンセル技術を適用した場合、歌唱者は、マイクを持って歌唱することが多く、その位置や向きが変化することがあり、伝達関数を随時算出して更新することが望ましい。しかしながら、歌唱者の歌唱中は、カラオケの伴奏部分と歌唱者の歌唱部分をマイクが収音してしまう状態(以下、ダブルトーク状態という)では、このようなエコーキャンセル技術を用いることが難しく、歌唱者が歌唱しない前奏中、間奏中など、カラオケの伴奏部分だけがマイクに収音される状態(以下、シングルトーク状態という)である期間において伝達関数を算出し、歌唱者の歌唱中はこの伝達関数を使用しなくてはならなかった。
本発明は、上述の事情に鑑みてなされたものであり、歌唱者の歌唱中であってもスピーカからマイクへの伝達関数を算出することが可能なエコーキャンセル装置、カラオケ装置、エコーキャンセル方法およびプログラムを提供することを目的とする。
上述の課題を解決するため、本発明は、供給されるオーディオ信号を放音する放音手段と、入力される音を入力信号として出力する収音手段と、前記収音手段から出力される入力信号および前記放音手段に供給されるオーディオ信号を、所定のタイミングでフーリエ変換を行うことにより、それぞれ周波数領域の複素ベクトルA、Bを生成する処理を複数回行う変換手段と、前記変換手段によって生成された複素ベクトルA、Bを、フーリエ変換が行われたタイミングごとに対応させて記憶する記憶手段と、前記記憶手段に記憶された複数の複素ベクトルAから1つの複素ベクトルAを選択する処理を、複数回行う選択手段と、前記選択手段に選択された複素ベクトルAに係る各周波数の要素のうち、シングルトーク状態とみなせる所定の条件を満たす要素に対応する周波数を特定する処理を、前記選択手段による選択のたびに行う特定手段と、前記特定手段によって特定された周波数ごとに、前記選択手段に選択された複素ベクトルAと当該複素ベクトルAに対応する複素ベクトルBとを用いた所定の演算を前記選択手段による選択のたびに行うことによって、周波数ごとに複数の演算結果を取得し、当該複数の演算結果の周波数ごとの平均に基づいて、各周波数の伝達関数を算出する伝達関数算出手段とを具備することを特徴とするエコーキャンセル装置を提供する。
また、別の好ましい態様において、前記伝達関数算出手段は、前記特定手段によって特定された周波数ごとに、前記選択手段に選択された複素ベクトルAと当該複素ベクトルAに対応する複素ベクトルBの共役複素数とを乗算する処理を、前記選択手段による選択のたびに行って、周波数ごとに複数の第1の演算結果を取得し、前記特定手段によって特定された周波数ごとに、前記選択手段に選択された複素ベクトルAに対応する複素ベクトルBと当該複素ベクトルBの共役複素数とを乗算する処理を、前記選択手段による選択のたびに行って、周波数ごとに複数の第2の演算結果を取得し、前記複数の第1の演算結果の平均を周波数ごとに算出した値から、前記複数の第2の演算結果の平均を周波数ごとに算出した値を、周波数ごとに除算することにより、各周波数の伝達関数を算出してもよい。
また、別の好ましい態様において、前記特定手段が特定する周波数は、前記選択手段に選択された複素ベクトルAに係る各周波数の要素のうち、前記各周波数の要素から当該複素ベクトルAに対応する複素ベクトルBに係る各周波数の要素を周波数ごとに除算することによって得られる演算結果の絶対値が予め定められたしきい値以下となる要素に対応する周波数であってもよい。
また、別の好ましい態様において、前記特定手段が特定する周波数は、前記選択手段に選択された複素ベクトルAの各周波数の要素のうち、前記各周波数の要素の絶対値が予め定められたしきい値以下となる要素に対応する周波数であってもよい。
また、別の好ましい態様において、前記予め定められたしきい値は、周波数ごとに異なるしきい値であってもよい。
また、別の好ましい態様において、前記伝達関数算出手段が算出した伝達関数と前記放音手段に供給されるオーディオ信号とに基づいてキャンセル信号を生成するキャンセル信号生成手段と、前記収音手段から出力された入力信号から前記キャンセル信号を減算して出力する出力手段とをさらに具備してもよい。
また、本発明は、上記記載のエコーキャンセル装置と、前記出力手段から出力された信号に基づいて、ピッチを算出するピッチ算出手段とを具備することを特徴とするカラオケ装置を提供する。
また、本発明は、供給されるオーディオ信号を放音する放音過程と、入力される音を入力信号として出力する収音過程と、前記収音過程によって出力される入力信号および前記放音過程に供給されるオーディオ信号を、所定のタイミングでフーリエ変換を行うことにより、それぞれ周波数領域の複素ベクトルA、Bを生成する処理を複数回行う変換過程と、前記変換過程によって生成された複素ベクトルA、Bを、フーリエ変換が行われたタイミングごとに対応させて記憶手段に記憶する記憶過程と、前記記憶手段に記憶された複数の複素ベクトルAから1つの複素ベクトルAを選択する処理を、複数回行う選択過程と、前記選択過程によって選択された複素ベクトルAに係る各周波数の要素のうち、シングルトーク状態とみなせる所定の条件を満たす要素に対応する周波数を特定する処理を、前記選択過程による選択のたびに行う特定過程と、前記特定過程によって特定された周波数ごとに、前記選択過程において選択された複素ベクトルAと当該複素ベクトルAに対応する複素ベクトルBとを用いた所定の演算を前記選択過程による選択のたびに行うことによって、周波数ごとに複数の演算結果を取得し、当該複数の演算結果の周波数ごとの平均に基づいて、各周波数の伝達関数を算出する伝達関数算出過程とを備えることを特徴とするエコーキャンセル方法を提供する。
また、本発明は、コンピュータに、供給されるオーディオ信号を放音する放音機能と、入力される音を入力信号として出力する収音機能と、前記収音機能において出力される入力信号および前記放音機能において供給されるオーディオ信号を、所定のタイミングでフーリエ変換を行うことにより、それぞれ周波数領域の複素ベクトルA、Bを生成する処理を複数回行う変換機能と、前記変換機能によって生成された複素ベクトルA、Bを、フーリエ変換が行われたタイミングごとに対応させて記憶手段に記憶する記憶機能と、前記記憶手段に記憶された複数の複素ベクトルAから1つの複素ベクトルAを選択する処理を、複数回行う選択機能と、前記選択機能によって選択された複素ベクトルAに係る各周波数の要素のうち、シングルトーク状態とみなせる所定の条件を満たす要素に対応する周波数を特定する処理を、前記選択機能による選択のたびに行う特定機能と、前記特定機能によって特定された周波数ごとに、前記選択機能において選択された複素ベクトルAと当該複素ベクトルAに対応する複素ベクトルBとを用いた所定の演算を前記選択機能による選択のたびに行うことによって、周波数ごとに複数の演算結果を取得し、当該複数の演算結果の周波数ごとの平均に基づいて、各周波数の伝達関数を算出する伝達関数算出機能とを実現するためのプログラムを提供する。
本発明によれば、歌唱者の歌唱中であってもスピーカからマイクへの伝達関数を算出することが可能なエコーキャンセル装置、カラオケ装置、エコーキャンセル方法およびプログラムを提供することができる。
以下、本発明の一実施形態について説明する。
<実施形態>
本発明の実施形態に係るカラオケ装置1は、後述するようなエコーキャンセル機能を有している。カラオケ装置1のハードウエアの構成について、図1を用いて説明する。図1は、カラオケ装置1のハードウエアの構成を示すブロック図である。
本発明の実施形態に係るカラオケ装置1は、後述するようなエコーキャンセル機能を有している。カラオケ装置1のハードウエアの構成について、図1を用いて説明する。図1は、カラオケ装置1のハードウエアの構成を示すブロック図である。
このカラオケ装置1は、後述する音声出力部16が有するスピーカからの放音を音声入力部17が有するマイクロフォンで収音し、音声出力部16のスピーカに供給されるオーディオ信号と、後述する音声入力部17のマイクロフォンの収音内容に基づいて、スピーカからマイクロフォンへの伝達関数Hを計算することによって、エコーキャンセル機能を実現する。
CPU(Central Processing Unit)11は、記憶部12に記憶されたプログラムをRAM(Random Access Memory)13にロードして実行する。これにより、CPU11が、バス10を介して、カラオケ装置1の各部について制御する。また、RAM13は、CPU11が各データの加工などを行う際のワークエリアとして機能する。
記憶部12は、ハードディスク、ROM(Read Only Memory)、不揮発性メモリなどの記憶手段であって、上述したプログラム、各種情報を記憶する。
操作部14は、例えばキーボード、マウス、リモコンなどであり、カラオケ装置1の利用者が操作部14を操作すると、その操作内容を表す情報がCPU11へ出力される。
表示部15は、液晶ディスプレイなどの表示デバイスであって、CPU11によって入力される映像データに基づく表示、カラオケ装置1を操作するためのメニュー画面などの各種画面の表示を行う。また、CPU11の制御に基づいて、操作部14の操作に対応するポインタなどの表示を行う。
音声出力部16は、スピーカを有し、入力されるオーディオ信号に基づいて放音する。
音声入力部17は、収音を行うマイクロフォンを有し、マイクロフォンの収音に基づいたオーディオ信号(以下、入力信号という)を生成して出力する。
通信部18は、有線、無線などによって、配信サーバなどとデータの送受信を行う通信手段である。通信部18は、利用者が操作部14を操作することによって、選択されるカラオケ曲を示す情報を送信し、この情報に対応したカラオケ曲の伴奏を示すMIDI(Musical Instrument Digital Interface)形式などの演奏データ、カラオケ曲の歌詞を示す歌詞テキストデータおよび色替え指示を示すワイプデータなどの歌詞表示データを受信する。
そして、CPU11は、通信部18が受信した歌詞表示データに基づいて、映像データを生成して表示部15に出力することにより、表示部15にカラオケ曲の歌詞などを表示させる。また、CPU11は、通信部18が受信した演奏データに基づいて、オーディオ信号(以下、伴奏信号という)を生成する。CPU11は、生成したオーディオ信号である伴奏信号を音声出力部16に供給して放音させる。以上が、カラオケ装置1のハードウエアの構成の説明である。
次に、カラオケ装置1のCPU11が記憶部12に記憶されたプログラムを実行することによって実現する機能のうち、エコーキャンセル機能について、図2を用いて説明する。図2は、CPU11が実現する機能を示したソフトウエアの構成を示すブロック図である。
ダブルトーク判定部101は、音声出力部16に供給される伴奏信号と、音声入力部17によって生成された入力信号とが入力され、これらの信号に対してFFTを施して生成した周波数領域の複素ベクトルを出力するとともに、これらを用いて、ダブルトーク状態か否かを周波数ごとに判定し、判定結果を示す判定情報を生成する。ダブルトーク判定部101の詳細構成について、図3を用いて説明する。図3は、ダブルトーク判定部101の構成を示すブロック図である。
FFT部1011は、入力信号が入力され、入力された入力信号にFFTを施して、所定のタイミングごとに周波数領域の複素ベクトルAを生成する。また、伴奏信号についても同様にして複素ベクトルBを生成する。そして、生成した複素ベクトルAと複素ベクトルBとを対応させて組にしてバッファ部1012に記憶させる。そして、複素ベクトルAと複素ベクトルBとを生成するたびに、これらを対応させてバッファ部1012に記憶させる。
バッファ部1012は、上述のように、FFT部1011から出力された複素ベクトルA、Bを、生成されるタイミングごとに対応させて組にして記憶する。
選択部1013は、バッファ部1012に記憶された複素ベクトルAから1つの複素ベクトルAを選択し、この複素ベクトルAと、これに対応する複素ベクトルBの組を読み出して、信号比算出部1014に出力する。そして、この選択を複数回(本実施形態においてはN回とする)繰り返す。このような選択は、所定のアルゴリズムによって定められた方法で行われる。例えば、バッファ部1012に記憶された複素ベクトルの組から、ランダムに選択するものであってもよいし、早い時刻に生成された順に選択するものであってもよく、どのようなアルゴリズムで行なわれてもよい。本実施形態においては、早い時刻に生成された順に選択するものとする。
信号比算出部1014は、選択部1013によって選択された組の複素ベクトルA、Bを用いた以下の数式(1)によって、信号比Pを算出する。
Pm=|Am/Bm|・・・(1)
ただし、「X/Y」は、複素ベクトルXとYとの対応する要素ごとの商を要素とする複素ベクトルを示し、|Z|は複素ベクトルZの絶対値(以下の数式においても同じ)を示す。また、m=1、2、・・・、Nであり、Am、Bmは、選択部1013においてm回目に選択された組の複素ベクトルA、Bを示し、Pmはm回目に選択された組の複素ベクトルA、Bによって算出された信号比Pである。ここで、複素ベクトルA、Bは、生成された順に選択されているから、mが大きくなるほど、後の時刻において生成された複素ベクトルであることを示している。言い換えれば、mは、FFTが行われる時間間隔を単位とした時刻を示している。
Pm=|Am/Bm|・・・(1)
ただし、「X/Y」は、複素ベクトルXとYとの対応する要素ごとの商を要素とする複素ベクトルを示し、|Z|は複素ベクトルZの絶対値(以下の数式においても同じ)を示す。また、m=1、2、・・・、Nであり、Am、Bmは、選択部1013においてm回目に選択された組の複素ベクトルA、Bを示し、Pmはm回目に選択された組の複素ベクトルA、Bによって算出された信号比Pである。ここで、複素ベクトルA、Bは、生成された順に選択されているから、mが大きくなるほど、後の時刻において生成された複素ベクトルであることを示している。言い換えれば、mは、FFTが行われる時間間隔を単位とした時刻を示している。
このように算出された信号比Pmは、特定の時刻mにおいて、各周波数(Fk:k=1、2、・・・、n)における入力信号の伴奏信号に対する割合(以下、信号比率という)を示し、例えば、図4(a)に示すようになっている。上述したように、信号比P1、P2、・・・とmが大きくなるほど、後の時刻における入力信号と伴奏信号との信号比率を示すから、図4(b)に示すように、周波数ごとの信号比率の時刻変化として表すこともできる。図4(b)は、mによって示される時刻と信号比率との関係にして、各周波数Fk別に示したものである。
そして、信号比算出部1014は、算出した信号比Pmを評価部1015に出力するとともに、伝達関数算出部102に、複素ベクトルAm、Bmを出力する。
評価部1015は、入力された信号比Pmに基づいて、周波数Fkごとに入力信号がダブルトーク状態か否(シングルトーク状態)を判断する。上述のように、信号比率は入力信号の伴奏信号に対する割合であるから、信号比率が大きいほど入力信号が大きい、すなわち音声入力部17が伴奏音以外の音(この場合には歌唱者の歌唱)を多く収音していることになり、ダブルトーク状態と判定する。
具体的には、評価部1015は、入力された信号比Pmにおいて、各周波数Fkのうち所定のしきい値以上の信号比率に対応する周波数をダブルトーク状態である周波数として検出し、それ以外(所定のしきい値未満)である周波数をダブルトーク状態でない周波数、すなわちシングルトーク状態である周波数として判定する。例えば、時刻m=1におけるダブルトーク状態と検出される周波数の範囲を図4(a)に示した。また、周波数Fkごとの信号比率の時刻変化として表した場合について、周波数F1におけるダブルトーク状態となる期間を図4(b)に示した。
そして、評価部1015は、上述のように、信号比Pmの各周波数の信号比率のうち、時刻mにおけるシングルトーク状態とみなせる所定の条件を満たす信号比率に対応する周波数Fkを特定し、特定された周波数(以下、周波数Fpという)を示す判定情報Cmを伝達関数算出部102に出力する。以上が、ダブルトーク判定部101の構成の説明である。
図2に戻る。伝達関数算出部102は、複素ベクトルAm、Bm、および判定情報Cmが入力され、これらに基づいて周波数ごとの伝達関数H(Fk)を算出する。伝達関数算出部102の詳細構成について、図5を用いて説明する。図5は、伝達関数算出部102の構成を示すブロック図である。
算出部1021は、複素ベクトルAm、Bm、および判定情報Cmが入力される。そして、以下の数式(2)(3)によってHam、Hbmを算出する。
Ham=(Am*Bm*)・・・(2)
Hbm=(Bm*Bm*)・・・(3)
ただし、「X*Y」は、複素ベクトルXとYとの対応する要素ごとの積を要素とする複素ベクトル(以下の数式においても同じ)を示す。また「Bm*」はBmの共役複素数(以下の数式においても同じ)である。
Ham=(Am*Bm*)・・・(2)
Hbm=(Bm*Bm*)・・・(3)
ただし、「X*Y」は、複素ベクトルXとYとの対応する要素ごとの積を要素とする複素ベクトル(以下の数式においても同じ)を示す。また「Bm*」はBmの共役複素数(以下の数式においても同じ)である。
そして算出部1021は、算出したHam、Hbmの各周波数の要素Ham(Fk)、Hbm(Fk)のうち、判定情報Cmが示す周波数Fpに対応する要素を抽出したHam(Fp)、Hbm(Fp)をバッファ部1022に出力して、周波数ごとに分類させて記憶させる。
バッファ部1022は、算出部1021から出力されたHam(Fp)、Hbm(Fp)を周波数Fk別に分類して記憶する。バッファ部1022は、図6に示すように、Ham(Fp)を記憶するHaバッファと、Hbm(Fp)を記憶するHbバッファとを有し、HaバッファおよびHbバッファは、それぞれFkバッファ(F1バッファ、F2バッファ、・・・、Fnバッファ)を有し、周波数Fpに応じて分類される。例えば、p=1であれば、F1バッファに記憶される。また、Fkバッファは、所定数(以下、qという)の値を記憶でき、q個を超えた場合には、最も古い時刻に記憶された値から消去していく。すなわち、Fkバッファに記憶された値は、最新のq個の値となる。
そして、バッファ部1022は、HaバッファおよびHbバッファにおけるFkバッファにおいて記憶した値が、全ての周波数でq個に達すると、各Fkバッファに記憶された値Haj(Fk)、Hbj(Fk)(j=1〜q、k=1〜n)を平均化部1023に出力する。なお、各Fkバッファにおいて記憶した値が、全ての周波数でq個に達することにより、後述するように、これらの値に基づいて伝達関数が算出できるから、ダブルトーク判定部101におけるFFT部1011の処理を停止させてもよく、例えば、カラオケ曲の最後の方などに達したことにより、新たに伝達関数の算出が必要でない場合などにおいて停止させるようにすればよい。
平均化部1023は、Haj(Fk)、Hbj(Fk)が入力され、以下の数式(4)によって周波数ごとの伝達関数H(Fk)を算出し、キャンセル信号生成部103に出力する。
H(Fk)=Ave(Haj(Fk))/Ave(Hbj(Fk))・・・(4)
ただし「Ave(Haj(Fk))」は、複素数であるHaj(Fk)のj=1〜qを平均して得られる複素数(以下の数式においても同じ)を示す。
H(Fk)=Ave(Haj(Fk))/Ave(Hbj(Fk))・・・(4)
ただし「Ave(Haj(Fk))」は、複素数であるHaj(Fk)のj=1〜qを平均して得られる複素数(以下の数式においても同じ)を示す。
ここで、上記方法により伝達関数Hが計算できる根拠について説明する。入力信号は、音声出力部16のスピーカからの放音が、音声入力部17のマイクロフォンによって収音されたものとノイズ信号とをあわせた信号であるから、選択部1013で選択される1つの組である複素ベクトルA、B、および当該組に対応するタイミングにおいて想定されるノイズ信号を示す複素ベクトルE(仮の値であって計算により導出されるものではない)は、以下の数式(5)が成り立つ。
A=H*B+E・・・(5)
よって、
H=(A−E)/B・・・(6)
となる。
A=H*B+E・・・(5)
よって、
H=(A−E)/B・・・(6)
となる。
次に、数式(6)の分母Bの共役複素数B*を数式(6)の分母分子に乗算すると、以下の数式(7)が得られる。
H=((A−E)*B*)/B*B*
=((A*B*)−(E*B*))/(B*B*)・・・(7)
H=((A−E)*B*)/B*B*
=((A*B*)−(E*B*))/(B*B*)・・・(7)
数式(7)を様々な組の複素ベクトルA、Bで計算し、分母分子をそれぞれ平均すると、分子の第2項(E*B*)は、相関の無いクロススペクトルの平均であるから、「0」となり、以下の数式(8)が得られ、これを周波数の要素ごとに表わすと数式(9)となる。
H=Ave(A*B*)/Ave(B*B*)・・・(8)
H(Fk)=Ave(A(Fk)*B*(Fk))/Ave(B(Fk)*B*(Fk)) ・・・(9)
ただし、Ave(A(Fk)*B*(Fk))は、周波数Fkにおいてシングルトーク状態と判定された周波数のA(Fp)とB(Fp)の共役複素数との積から算出した時間平均である。
H=Ave(A*B*)/Ave(B*B*)・・・(8)
H(Fk)=Ave(A(Fk)*B*(Fk))/Ave(B(Fk)*B*(Fk)) ・・・(9)
ただし、Ave(A(Fk)*B*(Fk))は、周波数Fkにおいてシングルトーク状態と判定された周波数のA(Fp)とB(Fp)の共役複素数との積から算出した時間平均である。
このように、各周波数Fkにおいてシングルトーク状態と判定された期間における入力信号と伴奏信号とに基づいて、周波数Fk別に伝達関数H(Fk)を算出することができる。ここで、歌唱者の歌唱中はダブルトーク状態となるが、マイクロフォンによって収音される歌唱者の歌唱の周波数分布は、その歌唱の基本周波数およびその倍音付近に分布することになるから、これらの周波数においてはダブルトーク状態となっても、それ以外のほとんどの周波数においては、シングルトーク状態であることになる。
このため、シングルトーク状態である周波数を抜き出せば、この周波数における伝達関数を算出できる。一方、ダブルトーク状態である周波数においては、伝達関数を算出することができないが、歌唱の基本周波数は曲のメロディなどに合わせて変化していくことにより、ダブルトーク状態と判定される周波数は逐次変化していくから、一定期間内には全ての周波数Fkにおいてシングルトーク状態と判定される期間を得ることができる。これにより、歌唱者が歌唱を続けていても全ての周波数Fkにおける伝達関数H(Fk)を算出することができる。以上が、伝達関数算出部102の構成の説明である。
図2に戻る。キャンセル信号生成部103は、伝達関数算出部102において算出された伝達関数H(Fk)が入力されると、別途、異なる伝達関数が入力されるまでは、この伝達関数を現状の伝達関数であるものとして設定する。以下、この周波数領域の伝達関数を伝達関数Hという。
そして、キャンセル信号生成部103は、音声出力部16のスピーカに供給される伴奏信号と、設定された伝達関数とに基づいて、このスピーカからの音を音声入力部17のマイクロフォンが収音すると想定される信号を示すキャンセル信号を生成する。具体的には、伴奏信号にFFTを施した複素ベクトルBと伝達関数Hとの要素ごとの積(B*H)を算出し、この算出結果に対して逆FFTを行うことで、キャンセル信号を生成する。
減算部104は、音声入力部17において生成された入力信号と、キャンセル信号生成部103において生成されたキャンセル信号とが入力される。そして、減算部104は、入力信号からキャンセル信号を減算した出力信号を出力する。このような出力信号は、音声入力部17のマイクロフォンが収音した内容が、音声出力部16のスピーカからの放音のみである場合には、その放音が低減または消去されたようなオーディオ信号となる。一方歌唱者の歌唱を音声入力部17のマイクロフォンで収音した場合には、音声出力部16のスピーカからの音が低減または消去されることにより、出力信号は、ほぼ歌唱者の歌唱を示すオーディオ信号となる。
次に、本実施形態に係るカラオケ装置1の動作について説明する。まず、カラオケ装置1の利用者(以下、歌唱者という)は操作部14を操作して、カラオケ曲を選択する。そして、カラオケ曲に係る各種データを通信部18によって受信すると、カラオケ曲が開始される。そして、歌唱者は、カラオケ曲にあわせて歌唱を行う。
カラオケ装置1は、ダブルトーク判定部101において、歌唱者の歌唱によって生成された入力信号について、周波数ごとにダブルトーク状態かシングルトーク状態かを判定する。そして、伝達関数算出部102は、入力信号から生成される複素ベクトルAと伴奏信号から生成される複素ベクトルBの各要素のうち、シングルトーク状態である周波数に対応する要素に基づいて、各周波数の伝達関数H(Fk)を算出する。このとき歌唱の基本周波数は随時変化することにより、シングルトーク状態である周波数は随時変化する。これにより、所定時間経過すると伝達関数算出に必要な全ての周波数がシングルトーク状態となり、各周波数において伝達関数を算出することができる。
また、カラオケ装置1は、このような伝達関数の算出が歌唱中であっても可能であるから、この算出を定期的に行うことにより、歌唱者が利用する音声入力部17のマイクロフォンの向きや位置が変化しても、その位置に応じた伝達関数を算出することができる。
そして、キャンセル信号生成部103は、算出された伝達関数が設定されると、伴奏信号と設定された伝達関数とに基づいて、キャンセル信号が生成され、減算部104において入力信号から減算されることにより、出力信号が出力される。この出力信号は、歌唱者の歌唱と音声出力部16のスピーカからの音とを含む入力信号から、このスピーカからの音が低減または消去された音を示すオーディオ信号となる。このとき、キャンセル信号生成部103は、定期的に伝達関数が算出されるたびに、設定される伝達関数が更新されるから、最新の状況に近い伝達関数を用いたキャンセル信号を生成することができる。
そして、歌唱者の歌唱の巧拙を評価するために、例えば、CPU11によってピッチ検出が行われる構成であるときには、この出力信号を用いてピッチの検出を行うようにする。これにより、音声入力部17が生成した入力信号をそのまま用いてピッチの検出をするよりも、音声出力部16のスピーカからの音が低減または消去されることにより、ほぼ歌唱者の歌唱を反映した出力信号を用いてピッチの検出をすることにより、より精密な検出をすることができる。
このように、本発明の実施形態に係るカラオケ装置1は、音声入力部17において生成される入力信号に基づいて、入力信号の各周波数においてダブルトーク状態であるかシングルトーク状態であるかを判定し、シングルトーク状態である周波数の入力信号に基づいて、伝達関数を算出することができる。ここで、歌唱の基本周波数は随時変化することにより、シングルトーク状態である周波数も随時変化するから、所定時間経過するうちには、伝達関数算出に必要な全ての周波数がシングルトーク状態となり、各周波数における伝達関数を算出することができる。このように、歌唱中であっても伝達関数を算出することができるから、定期的に伝達関数を算出することにより、最新の状況に近い伝達関数を用いた精密なエコーキャンセル機能を実現することができる。
以上、本発明の実施形態について説明したが、本発明は以下のように、さまざまな態様で実施可能である。
<変形例1>
上述した実施形態においては、ダブルトーク判定部101は、入力信号と伴奏信号との周波数ごとの信号比率からダブルトーク状態か否かを判定していたが、入力信号の周波数ごとの信号強度から判定してもよい。この場合には、時刻mにおける周波数ごとの複素ベクトルAmの絶対値が、所定のしきい値以上であれば、ダブルトーク状態として判定するようにすればよい。
上述した実施形態においては、ダブルトーク判定部101は、入力信号と伴奏信号との周波数ごとの信号比率からダブルトーク状態か否かを判定していたが、入力信号の周波数ごとの信号強度から判定してもよい。この場合には、時刻mにおける周波数ごとの複素ベクトルAmの絶対値が、所定のしきい値以上であれば、ダブルトーク状態として判定するようにすればよい。
ここで、所定のしきい値は、予め定められた値でもよいし、時刻mより前の所定時間の信号強度に基づいて定められた値、例えば、その期間内の最大値に対する所定割合などとして随時変更されるようにしてもよい。このように、ダブルトーク判定部101は、複素ベクトルAのみに基づいてダブルトーク状態か否かの判定を行うようにしてもよい。
<変形例2>
上述した実施形態、変形例1において、ダブルトーク状態か否かの判定に係る所定のしきい値については、周波数ごとに異なる値としてもよい。例えば、入力信号の高周波数帯域においては、歌唱者の歌唱の倍音成分が多くなるが、倍音成分の信号強度は低くなりやすいため、そのような周波数帯域においては、所定のしきい値を他の周波数帯域に比べて低くしてもよい。
上述した実施形態、変形例1において、ダブルトーク状態か否かの判定に係る所定のしきい値については、周波数ごとに異なる値としてもよい。例えば、入力信号の高周波数帯域においては、歌唱者の歌唱の倍音成分が多くなるが、倍音成分の信号強度は低くなりやすいため、そのような周波数帯域においては、所定のしきい値を他の周波数帯域に比べて低くしてもよい。
<変形例3>
上述した実施形態においては、伝達関数の算出は定期的に行われるものとしたが、一定時間の間隔で行なわれることに限られない。例えば、バッファ部1022はが、HaバッファおよびHbバッファにおけるFkバッファにおいて記憶した値が、全ての周波数でq個に達すると、各Fkバッファに記憶された値を平均化部1023に出力するときに、全てのFkバッファに記憶された内容を一旦消去する。そして、改めてFkバッファにおいて記憶した値が全ての周波数でq個に達したときに、各Fkバッファに記憶された値を平均化部1023に出力するようにして伝達関数の算出が行われるようにすればよい。このようにすると、歌唱の内容によっては、各周波数におけるシングルトーク状態と判定される比率が変わってくるから、Fkバッファにおいて記憶した値が全ての周波数でq個に達するまでの時間が変わってくることになり、伝達関数の算出が一定時間ごとに行われるとは限らない。
上述した実施形態においては、伝達関数の算出は定期的に行われるものとしたが、一定時間の間隔で行なわれることに限られない。例えば、バッファ部1022はが、HaバッファおよびHbバッファにおけるFkバッファにおいて記憶した値が、全ての周波数でq個に達すると、各Fkバッファに記憶された値を平均化部1023に出力するときに、全てのFkバッファに記憶された内容を一旦消去する。そして、改めてFkバッファにおいて記憶した値が全ての周波数でq個に達したときに、各Fkバッファに記憶された値を平均化部1023に出力するようにして伝達関数の算出が行われるようにすればよい。このようにすると、歌唱の内容によっては、各周波数におけるシングルトーク状態と判定される比率が変わってくるから、Fkバッファにおいて記憶した値が全ての周波数でq個に達するまでの時間が変わってくることになり、伝達関数の算出が一定時間ごとに行われるとは限らない。
また、通信端末18が受信する演奏データに伝達関数の算出を行うタイミングを示す情報が含まれるようにして、このタイミングに基づいて伝達関数の算出が行われるようにしてもよい。このようにすると、例えば、カラオケ曲のフレーズの切り替わりなど特定のタイミングにおいて伝達関数の算出が行われるようにすることができ、また、曲調などに応じて伝達関数の算出の頻度を変えることもできる。
<変形例4>
上述した実施形態においては、伝達関数算出部102は、全ての周波数の伝達関数H(Fk)を算出してからキャンセル信号生成部103に出力していたが、周波数ごとに伝達関数を算出してキャンセル信号生成部103に出力するようにしてもよい。この場合は、バッファ部1022は、全ての周波数におけるFkバッファに記憶された値がq個に達しなくても、q個に達したFkバッファがあれば、そのFkバッファに記憶された値を平均化部1023に出力し、その周波数の伝達関数の算出を行なうようにすればよい。そして、算出した特定の周波数の伝達関数をキャンセル信号生成部103に出力し、キャンセル信号生成部103は、設定された伝達関数の周波数のうち、入力された周波数の伝達関数を更新するようにすればよい。このようにすると、シングルトーク状態と判定される比率の高い周波数においては、伝達関数の更新が頻繁に行われ、より最新の状態に近い伝達関数を用いたエコーキャンセル機能を実現することができる。
上述した実施形態においては、伝達関数算出部102は、全ての周波数の伝達関数H(Fk)を算出してからキャンセル信号生成部103に出力していたが、周波数ごとに伝達関数を算出してキャンセル信号生成部103に出力するようにしてもよい。この場合は、バッファ部1022は、全ての周波数におけるFkバッファに記憶された値がq個に達しなくても、q個に達したFkバッファがあれば、そのFkバッファに記憶された値を平均化部1023に出力し、その周波数の伝達関数の算出を行なうようにすればよい。そして、算出した特定の周波数の伝達関数をキャンセル信号生成部103に出力し、キャンセル信号生成部103は、設定された伝達関数の周波数のうち、入力された周波数の伝達関数を更新するようにすればよい。このようにすると、シングルトーク状態と判定される比率の高い周波数においては、伝達関数の更新が頻繁に行われ、より最新の状態に近い伝達関数を用いたエコーキャンセル機能を実現することができる。
<変形例5>
上述した実施形態において、伝達関数を算出する周波数、また周波数の範囲を設定するようにしてもよい。例えば、歌唱などのピッチが不安定な音とは対照的に、伴奏信号の音に係る周波数分布において、強度の大きい周波数は、その音程(基本周波数)、音色(倍音成分)などに応じた周波数に限られる場合がある。この様な場合には、通信部18において受信される演奏データが、カラオケ曲の伴奏音において強度が大きくなると想定される周波数を示す情報を含むようにして、この周波数、またその周波数範囲に限定した伝達関数を算出するように、FFT部1011におけるFFT処理を行うようにしてもよい。このようにすると、伝達関数の算出に係る演算量を低減することができる。
上述した実施形態において、伝達関数を算出する周波数、また周波数の範囲を設定するようにしてもよい。例えば、歌唱などのピッチが不安定な音とは対照的に、伴奏信号の音に係る周波数分布において、強度の大きい周波数は、その音程(基本周波数)、音色(倍音成分)などに応じた周波数に限られる場合がある。この様な場合には、通信部18において受信される演奏データが、カラオケ曲の伴奏音において強度が大きくなると想定される周波数を示す情報を含むようにして、この周波数、またその周波数範囲に限定した伝達関数を算出するように、FFT部1011におけるFFT処理を行うようにしてもよい。このようにすると、伝達関数の算出に係る演算量を低減することができる。
1…カラオケ装置、10…バス、11…CPU、12…記憶部、13…RAM、14…操作部、15…表示部、16…音声出力部、17…音声入力部、18…通信部、101…ダブルトーク判定部、102…伝達関数算出部、103…キャンセル信号生成部、104…減算部、1011…FFT部、1012…バッファ部、1013…選択部、1014…信号比算出部、1015…評価部、1021…算出部、1022…バッファ部、1023…平均化部
Claims (9)
- 供給されるオーディオ信号を放音する放音手段と、
入力される音を入力信号として出力する収音手段と、
前記収音手段から出力される入力信号および前記放音手段に供給されるオーディオ信号を、所定のタイミングでフーリエ変換を行うことにより、それぞれ周波数領域の複素ベクトルA、Bを生成する処理を複数回行う変換手段と、
前記変換手段によって生成された複素ベクトルA、Bを、フーリエ変換が行われたタイミングごとに対応させて記憶する記憶手段と、
前記記憶手段に記憶された複数の複素ベクトルAから1つの複素ベクトルAを選択する処理を、複数回行う選択手段と、
前記選択手段に選択された複素ベクトルAに係る各周波数の要素のうち、シングルトーク状態とみなせる所定の条件を満たす要素に対応する周波数を特定する処理を、前記選択手段による選択のたびに行う特定手段と、
前記特定手段によって特定された周波数ごとに、前記選択手段に選択された複素ベクトルAと当該複素ベクトルAに対応する複素ベクトルBとを用いた所定の演算を前記選択手段による選択のたびに行うことによって、周波数ごとに複数の演算結果を取得し、当該複数の演算結果の周波数ごとの平均に基づいて、各周波数の伝達関数を算出する伝達関数算出手段と
を具備することを特徴とするエコーキャンセル装置。 - 前記伝達関数算出手段は、
前記特定手段によって特定された周波数ごとに、前記選択手段に選択された複素ベクトルAと当該複素ベクトルAに対応する複素ベクトルBの共役複素数とを乗算する処理を、前記選択手段による選択のたびに行って、周波数ごとに複数の第1の演算結果を取得し、
前記特定手段によって特定された周波数ごとに、前記選択手段に選択された複素ベクトルAに対応する複素ベクトルBと当該複素ベクトルBの共役複素数とを乗算する処理を、前記選択手段による選択のたびに行って、周波数ごとに複数の第2の演算結果を取得し、
前記複数の第1の演算結果の平均を周波数ごとに算出した値から、前記複数の第2の演算結果の平均を周波数ごとに算出した値を、周波数ごとに除算することにより、各周波数の伝達関数を算出する
ことを特徴とする請求項1に記載のエコーキャンセル装置。 - 前記特定手段が特定する周波数は、前記選択手段に選択された複素ベクトルAに係る各周波数の要素のうち、前記各周波数の要素から当該複素ベクトルAに対応する複素ベクトルBに係る各周波数の要素を周波数ごとに除算することによって得られる演算結果の絶対値が予め定められたしきい値以下となる要素に対応する周波数である
ことを特徴とする請求項1または請求項2に記載のエコーキャンセル装置。 - 前記特定手段が特定する周波数は、前記選択手段に選択された複素ベクトルAの各周波数の要素のうち、前記各周波数の要素の絶対値が予め定められたしきい値以下となる要素に対応する周波数である
ことを特徴とする請求項1または請求項2に記載のエコーキャンセル装置。 - 前記予め定められたしきい値は、周波数ごとに異なるしきい値である
ことを特徴とする請求項3または請求項4に記載のエコーキャンセル装置。 - 前記伝達関数算出手段が算出した伝達関数と前記放音手段に供給されるオーディオ信号とに基づいてキャンセル信号を生成するキャンセル信号生成手段と、
前記収音手段から出力された入力信号から前記キャンセル信号を減算して出力する出力手段と
をさらに具備する
ことを特徴とする請求項1乃至請求項5のいずれかに記載のエコーキャンセル装置。 - 請求項6に記載のエコーキャンセル装置と、
前記出力手段から出力された信号に基づいて、ピッチを算出するピッチ算出手段と
を具備することを特徴とするカラオケ装置。 - 供給されるオーディオ信号を放音する放音過程と、
入力される音を入力信号として出力する収音過程と、
前記収音過程において出力される入力信号および前記放音過程において供給されるオーディオ信号を、所定のタイミングでフーリエ変換を行うことにより、それぞれ周波数領域の複素ベクトルA、Bを生成する処理を複数回行う変換過程と、
前記変換過程によって生成された複素ベクトルA、Bを、フーリエ変換が行われたタイミングごとに対応させて記憶手段に記憶する記憶過程と、
前記記憶手段に記憶された複数の複素ベクトルAから1つの複素ベクトルAを選択する処理を、複数回行う選択過程と、
前記選択過程によって選択された複素ベクトルAに係る各周波数の要素のうち、シングルトーク状態とみなせる所定の条件を満たす要素に対応する周波数を特定する処理を、前記選択過程による選択のたびに行う特定過程と、
前記特定過程によって特定された周波数ごとに、前記選択過程において選択された複素ベクトルAと当該複素ベクトルAに対応する複素ベクトルBとを用いた所定の演算を前記選択過程による選択のたびに行うことによって、周波数ごとに複数の演算結果を取得し、当該複数の演算結果の周波数ごとの平均に基づいて、各周波数の伝達関数を算出する伝達関数算出過程と
を備えることを特徴とするエコーキャンセル方法。 - コンピュータに、
供給されるオーディオ信号を放音する放音機能と、
入力される音を入力信号として出力する収音機能と、
前記収音機能によって出力される入力信号および前記放音機能に供給されるオーディオ信号を、所定のタイミングでフーリエ変換を行うことにより、それぞれ周波数領域の複素ベクトルA、Bを生成する処理を複数回行う変換機能と、
前記変換機能によって生成された複素ベクトルA、Bを、フーリエ変換が行われたタイミングごとに対応させて記憶手段に記憶する記憶機能と、
前記記憶手段に記憶された複数の複素ベクトルAから1つの複素ベクトルAを選択する処理を、複数回行う選択機能と、
前記選択機能によって選択された複素ベクトルAに係る各周波数の要素のうち、シングルトーク状態とみなせる所定の条件を満たす要素に対応する周波数を特定する処理を、前記選択機能による選択のたびに行う特定機能と、
前記特定機能によって特定された周波数ごとに、前記選択機能において選択された複素ベクトルAと当該複素ベクトルAに対応する複素ベクトルBとを用いた所定の演算を前記選択機能による選択のたびに行うことによって、周波数ごとに複数の演算結果を取得し、当該複数の演算結果の周波数ごとの平均に基づいて、各周波数の伝達関数を算出する伝達関数算出機能と
を実現するためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007326094A JP2009150920A (ja) | 2007-12-18 | 2007-12-18 | エコーキャンセル装置、カラオケ装置、エコーキャンセル方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007326094A JP2009150920A (ja) | 2007-12-18 | 2007-12-18 | エコーキャンセル装置、カラオケ装置、エコーキャンセル方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009150920A true JP2009150920A (ja) | 2009-07-09 |
Family
ID=40920149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007326094A Pending JP2009150920A (ja) | 2007-12-18 | 2007-12-18 | エコーキャンセル装置、カラオケ装置、エコーキャンセル方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009150920A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7928307B2 (en) * | 2008-11-03 | 2011-04-19 | Qnx Software Systems Co. | Karaoke system |
JP2013519107A (ja) * | 2010-02-02 | 2013-05-23 | クリエイティブ、テクノロジー、リミテッド | カラオケ可能な装置 |
-
2007
- 2007-12-18 JP JP2007326094A patent/JP2009150920A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7928307B2 (en) * | 2008-11-03 | 2011-04-19 | Qnx Software Systems Co. | Karaoke system |
JP2013519107A (ja) * | 2010-02-02 | 2013-05-23 | クリエイティブ、テクノロジー、リミテッド | カラオケ可能な装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6177253B2 (ja) | ハーモニシティベースの単一チャネルスピーチ品質評価 | |
US9087501B2 (en) | Sound signal analysis apparatus, sound signal analysis method and sound signal analysis program | |
JP6035702B2 (ja) | 音響処理装置および音響処理方法 | |
JP6690181B2 (ja) | 楽音評価装置及び評価基準生成装置 | |
JP2017090671A (ja) | 調律推定装置、評価装置およびデータ処理装置 | |
WO2007010638A1 (ja) | 自動採譜装置及びプログラム | |
US10242697B2 (en) | Pitch information generation device, pitch information generation method, and computer-readable recording medium therefor | |
JP2007333895A (ja) | 和音推定装置及び方法 | |
JP2009150920A (ja) | エコーキャンセル装置、カラオケ装置、エコーキャンセル方法およびプログラム | |
JP2010220087A (ja) | 音響処理装置およびプログラム | |
JP6281211B2 (ja) | 音響信号のアライメント装置、アライメント方法及びコンピュータプログラム | |
JP5034920B2 (ja) | エコーキャンセル装置、カラオケ装置、エコーキャンセル方法およびプログラム | |
JP4483561B2 (ja) | 音響信号分析装置、音響信号分析方法及び音響信号分析プログラム | |
CN111415681B (zh) | 一种基于音频数据确定音符的方法及装置 | |
JP5169753B2 (ja) | 共鳴音付加装置および電子楽器 | |
JP4877076B2 (ja) | 共鳴音付加装置および共鳴音付加プログラム | |
JP5585320B2 (ja) | 歌唱音声評価装置 | |
JP4630983B2 (ja) | 音高推定装置、音高推定方法およびプログラム | |
JP5618743B2 (ja) | 歌唱音声評価装置 | |
JP2003167584A (ja) | 能動型消音装置 | |
JP6597062B2 (ja) | 雑音低減装置、雑音低減方法、雑音低減プログラム | |
JP5131172B2 (ja) | 周期特定装置およびプログラム | |
JP5697395B2 (ja) | 歌唱音声評価装置およびプログラム | |
JP4548516B2 (ja) | Firフィルタ装置、音響装置およびfirフィルタプログラム | |
JP4930608B2 (ja) | 音響信号分析装置、音響信号分析方法及び音響信号分析プログラム |