JP3645364B2 - 周波数検出装置 - Google Patents
周波数検出装置 Download PDFInfo
- Publication number
- JP3645364B2 JP3645364B2 JP20053996A JP20053996A JP3645364B2 JP 3645364 B2 JP3645364 B2 JP 3645364B2 JP 20053996 A JP20053996 A JP 20053996A JP 20053996 A JP20053996 A JP 20053996A JP 3645364 B2 JP3645364 B2 JP 3645364B2
- Authority
- JP
- Japan
- Prior art keywords
- period
- data
- frequency
- signal
- input
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Reverberation, Karaoke And Other Acoustics (AREA)
- Electrophonic Musical Instruments (AREA)
Description
【産業上の利用分野】
この発明は、入力された音声信号の周波数(周期)を検出する周波数検出装置に関する。
【0002】
【従来の技術】
現在実用化されているカラオケ装置などでは、歌唱を盛り上げるため、または、歌唱を上手く聞かせるために歌唱者の歌唱音声信号に対して3度や5度上のハーモニー音声信号を生成して出力する機能を備えたものがある。このハーモニー音声信号の付加機能においては、歌唱者の歌唱音声とよく似た音色で且つ同じテンポのハーモニー音声を作るため、マイクから入力された歌唱音声信号を周波数シフトしてハーモニー音声信号を形成するものが一般的である。
【0003】
このハーモニー音声信号の付加機能を実現するためには、歌唱音声信号の周波数(周期)を検出し、この周波数をハーモニー旋律の周波数にシフトするという作業が必要である。歌唱音声信号の周波数を検出する方式としては、図11に示す手法が従来より用いられていた。この方式は、入力信号が0レベル線を通過して負の値から正の値に反転するタイミングをゼロクロスタイミングとして監視し、直前のゼロクロスタイミングから今回のゼロクロスタイミングまでの間隔(ゼロクロス間隔)を1周期として測定する方式である。実際には、ディジタル化処理によりサンプリング周期で離散化された信号が入力されるため、各サンプリングタイミングに得られるサンプリング値を監視し、このサンプリング値が負の値から正の値に転じたときをゼロクロスタイミングとしてサンプリング周期単位(整数値)で計測している。
【0004】
【発明が解決しようとする課題】
しかし、この周波数検出方式では、精度がサンプリング周期によって制限されてしまうという問題点がある。すなわち、図11においてサンプリング周波数をFs Hz ,サンプリング周期Tsはその逆数でTs=1/Fs sec とし、入力信号の真の周期をTin sec とすると、真のゼロクロス間隔P0 samples は、
P0 =Tin/Ts
である。しかし、実際に計測される値Pはサンプリング周波数のカウント値(整数値)であり、
P1 =(Tin/Tsの小数点以下を切り捨てた値)
または
P2 =(Tin/Tsの小数点以下を切り上げた値)=P1 +1
になる。
【0005】
ゼロクロスが計測される毎に、P1 またはP2 が得られるが、この検出される周波数(周期)にはP2 /P1 =1+1/P1 の変動が生じる。例えば、
Fs=44.1kHz
で、信号周波数が500 Hz の場合は、
P0 =88.2
P1 =88
P2 =89
であり、検出される周波数の変動は、周波数比で89/88、セントに換算すると19.56 セント という大きな値になる。これをもとにハーモニー音声信号を生成すると、ハーモニー音声信号のピッチが19.56セントもずれるため主旋律とうなりを生じ、このために音質が劣化する。入力される音声信号の周波数が高いほどP1 が小さく、このピッチ変動1+1/P1 が大きくなる。
【0006】
この発明は、サンプリングクロックのカウント値で音声信号の周期をカウントしつつ、その精度を向上した周波数検出装置を提供することを目的とする。
【0007】
この出願の請求項1の発明は、所定のサンプリングクロックでディジタル化された音声信号を入力する入力手段と、該音声信号の周期(ゼロクロス間隔)を前記サンプリングクロックのカウント値で測定するカウント手段と、所定期間内に前記カウント手段を繰り返し実行し、これによって得られた複数のカウント値を加重平均することによって前記音声信号の周波数を確定する加重平均手段と、を備えた周波数検出装置において、前記加重平均手段は、前記複数のカウント値の変動が小さいとき古いカウント値から新しいカウント値への重み付け係数の変化率を小さくし、前記複数のカウント値の変動が大きいとき前記重み付け係数の変化率を大きくすることを特徴とする。
【0008】
この出願の請求項2の発明は、上記発明において、前記加重平均手段は、前記所定期間内に音声信号の入力がない期間があったとき、加重平均を行わずに前記カウント手段の最新のカウント値から周波数を算出することを特徴とする。
【0009】
この出願の請求項3の発明は、前記加重平均手段を、前記所定期間内に音声信号の入力がない期間があったとき、音声信号が入力された期間のみで加重平均を行う手段としたことを特徴とする。
【0010】
この出願の請求項4の発明では、加重平均手段は、前記複数のカウント値における最大値と最小値との比を計算し、この比を用いて前記複数のカウント値の変動の大きさを判断することを特徴とする。
【0011】
【発明の実施の形態】
図面を参照してこの発明の実施形態である周波数検出装置を備えたカラオケ装置について説明する。このカラオケ装置は、カラオケ歌唱者の歌唱音声信号に対するハーモニー音声信号を付加するハーモニー付加機能を備えている。このハーモニー付加機能は、マイク27から入力されるカラオケ歌唱者の歌唱音声信号をA/Dコンバータ29でディジタル変換し、音声処理用DSP30でこの周波数を検出して、主旋律(もとの歌唱音声信号)から3度または5度の音程のハーモニー音声信号に変換する。そして、これをもとの歌唱音声信号と一緒に出力することによって、ハーモニーが付加されたカラオケ歌唱を行うことを可能にした機能である。
【0012】
図1は同カラオケ装置のブロック図である。装置全体の動作を制御するCPU10には、バスを介してROM11,RAM12,ハードディスク記憶装置(HDD)17,ISDNコントローラ16,リモコン受信機13,表示パネル14,パネルスイッチ15,音源装置18,音声データ処理部19,効果用DSP20,文字表示部23,LDチェンジャ24,表示制御部25および音声処理用DSP30が接続されている。
【0013】
ROM11には、システムプログラム,アプリケーションプログラム,ローダおよびフォントデータが記憶されている。システムプログラムは、この装置の基本動作や周辺機器とのデータ送受を制御するプログラムである。アプリケーションプログラムは周辺機器制御プログラム,シーケンスプログラムなどである。カラオケ演奏時にはシーケンスプログラムがCPU10によって実行され、楽曲データに基づいた楽音の発生,映像の再生が行われる。ローダは、ホストステーションから楽曲データをダウンロードするためのプログラムである。フォントデータは、歌詞や曲名などを表示するためのものであり、明朝体やゴジック体などの複数種類の文字種のフォントが記憶されている。また、RAM12には、ワークエリアが設定される。HDD17には楽曲データファイルが設定される。
【0014】
ISDNコントローラ16は、ISDN回線を介してホストステーションと交信するためのコントローラである。ISDNコントローラ16はホストステーションから楽曲データなどをダウンロードする。また、ISDNコントローラ16はDMA回路を内蔵しており、ダウンロードされた楽曲データやアプリケーションプログラムをCPU10を介さずに直接HDD17に書き込む。
【0015】
リモコン受信機13はリモコン31から送られてくる赤外線信号を受信してデータを復元する。リモコン31は選曲スイッチなどのコマンドスイッチやテンキースイッチなどを備えており、利用者がこれらのスイッチを操作するとその操作に応じたコードで変調された赤外線信号を送信する。表示パネル14はこのカラオケ装置の前面に設けられており、現在演奏中の曲コードや予約曲数などを表示するものである。パネルスイッチ15はカラオケ装置の前面操作部に設けられており、曲コード入力スイッチやキーチェンジスイッチなどを含んでいる。
【0016】
音源装置18は、カラオケ演奏時にCPU10から入力されるイベントデータに基づいて楽音信号を形成する。イベントデータは楽曲データの楽音トラックに記憶されている。楽音トラックは図7に示すように複数設定されているため、イベントデータも複数系統が並行して入力される。音源装置18は、これらのデータを受信して複数の楽音信号を同時に形成する。音声データ処理部19は、楽曲データに含まれるADPCMデータである音声データに基づき、指定された長さ,指定された音高の音声信号を形成する。音声データは、バックコーラスや模範歌唱音などの音源装置18で電子的に発生しにくい信号波形をそのままディジタル化して記憶したものである。
【0017】
一方、歌唱用のマイク27から入力された歌唱の音声信号はプリアンプ28で増幅されA/Dコンバータ29でディジタル信号に変換されたのち効果用DSP20および音声処理用DSP30に入力される。音声処理用DSP30には、このほかCPU10からハーモニー情報が入力される。音声処理用DSP30は、歌唱音声信号の周波数(周期)を検出して波形要素データを切り出し、この波形要素データをハーモニー情報の周波数で合成することによってハーモニー音声信号を形成する。このハーモニー音声信号は効果用DSP20に出力される。
【0018】
効果用DSP20には、音源装置18が形成した楽音信号、音声データ処理部19が形成した音声信号、A/Dコンバータがディジタル変換した歌唱音声信号および音声処理用DSP30が形成したハーモニー音声信号が入力される。効果用DSP20は、これら入力された音声信号や楽音信号に対してリバーブやエコーなどの効果を付与する。効果用DSP20が付与する効果の種類や程度は、楽曲データの効果トラックのイベントデータ(DSPコントロールデータ)に基づいて制御される。DSPコントロールデータはDSPコントロール用シーケンスプログラムに基づき、CPU10が所定のタイミングに効果用DSP20に入力する。効果が付与された楽音信号,音声信号はD/Aコンバータ21でアナログ信号に変換されたのちアンプ・スピーカ22に出力される。アンプ・スピーカ22はこの信号を増幅したのち放音する。
【0019】
文字表示部23は入力される文字データに基づいて、曲名や歌詞などの文字パターンを生成する。また、LDチェンジャ24は入力された映像選択データ(チャプタナンバ)に基づき、対応するLDの背景映像を再生する。映像選択データは当該カラオケ曲のジャンルデータなどに基づいて決定される。ジャンルデータは楽曲データのヘッダに書き込まれており、カラオケ演奏スタート時にCPU10によって読み出される。CPU10はジャンルデータに基づいてどの背景映像を再生するかを決定し、その背景映像を指定する映像選択データをLDチェンジャ24に対して出力する。LDチェンジャ24には、5枚(120シーン)程度のレーザディスクが内蔵されており約120シーンの背景映像を再生することができる。映像選択データによってこのなかから1つの背景映像が選択され、映像データとして出力される。文字パターン,映像データは表示制御部25に入力される。表示制御部25ではこれらのデータをスーパーインポーズで合成してモニタ26に表示する。
【0020】
ここで、図6〜図8を参照して同カラオケ装置においてカラオケ演奏に用いられる楽曲データの構成について説明する。図6は楽曲データの構成を示す図である。また、図7,図8は楽曲データの詳細な構成を示す図である。
【0021】
図6において、1つの楽曲データは、ヘッダ,楽音トラック,主旋律トラック,ハーモニートラック,歌詞トラック,音声トラック,効果トラックおよび音声データ部からなっている。
【0022】
ヘッダは、この楽曲データに関する種々のデータが書き込まれる部分であり、曲名,ジャンル,発売日,曲の演奏時間(長さ)などのデータが書き込まれている。CPU10は、メインシーケンスプログラムの実行時にジャンルデータに基づいてモニタ26に表示する背景映像を決定し、LDチェンジャ24に対してその映像のチャプタナンバを送信する。背景映像の決定方式は、冬をテーマにした演歌の場合には雪国の映像を選択し、ポップスの場合には外国の映像を選択するなどである。
【0023】
楽音トラック〜効果トラックの各トラックは図7,図8に示すように複数のイベントデータと各イベントデータ間の時間間隔を示すデュレーションデータΔtからなるシーケンスデータで構成されている。各トラックのイベントデータはカラオケ演奏中にシーケンスプログラムに基づきCPU10によって読み出される。シーケンスプログラムは、所定のテンポクロックでΔtをカウントし、Δtをカウントアップしたときこれに続くイベントデータの読出タイミングであるとして、これを読み出して所定の処理部へ出力するプログラムである。
【0024】
楽音トラックには、メロディトラック,リズムトラックを初めとして種々のパートのトラックが形成されている。CPU10は、楽音シーケンスプログラムによって読み出したイベントデータを音源装置18に出力する。音源装置18はそのイベントデータに含まれているチャンネル指定データに基づいて発音チャンネルを選択し、その発音チャンネルについてそのイベントを実行する。
【0025】
主旋律トラックには、このカラオケ曲の主旋律すなわち歌唱者が歌うべき旋律のシーケンスデータが書き込まれている。カラオケ装置はこの主旋律データに基づいてガイドメロディを発音する。また、ハーモニートラックの構成も主旋律トラックと同様であり、このカラオケ曲のハーモニー旋律のシーケンスデータが書き込まれている。このデータもCPU10から音声処理用DSP30に入力される。音声処理用DSP30はこのデータに基づいてハーモニー音声信号の周波数(音高)を決定する。
【0026】
歌詞トラックは、モニタ26上に歌詞を表示するためのシーケンスデータを記憶したトラックである。このシーケンスデータは楽音データではないが、インプリメンテーションの統一をとり、作業工程を容易にするためこのトラックもMIDIデータ形式で記述されている。データ種類は、システム・エクスクルーシブ・メッセージである。歌詞トラックのデータ記述において、通常は1行の歌詞を1つの歌詞表示データとして扱っている。歌詞表示データは1行の歌詞の文字データ(文字コードおよびその文字の表示座標)、この歌詞の表示時間(通常は30秒前後)、および、ワイプシーケンスデータからなっている。ワイプシーケンスデータとは、曲の進行に合わせて歌詞の表示色を変更してゆくためのシーケンスデータであり、表示色を変更するタイミング(この歌詞が表示されてからの時間)と変更位置(座標)が1行分の長さにわたって順次記録されているデータである。
【0027】
音声トラックは、音声データ部に記憶されている音声データn(n=1,2,3,‥‥)の発生タイミングなどを指定するシーケンストラックである。音声データ部には、音源装置18で合成しにくいバックコーラスやハーモニー歌唱などの人声が記憶されている。音声トラックには、音声指定データと、音声指定データの読み出し間隔、すなわち、音声データを音声データ処理部19に出力して音声信号形成するタイミングを指定するデュレーションデータΔtが書き込まれている。音声指定データは、音声データ番号,音程データおよび音量データからなっている。音声データ番号は、音声データ部に記録されている各音声データの識別番号nである。音程データ,音量データは、形成すべき音声データの音程や音量を指示するデータである。すなわち、言葉を伴わない「アー」や「ワワワワッ」などのバックコーラスは、音程や音量を変化させれば何度も利用できるため、基本的な音程,音量で1つ記憶しておき、このデータに基づいて音程や音量をシフトして繰り返し使用する。音声データ処理部19は音量データに基づいて出力レベルを設定し、音程データに基づいて音声データの読出間隔を変えることによって音声信号の音程を設定する。
【0028】
効果トラックには、効果用DSP20を制御するためのDSPコントロールデータが書き込まれている。効果用DSP20は音源装置18,音声データ処理部19,音声処理用DSP30から入力される信号に対してリバーブなどの残響系の効果を付与する。DSPコントロールデータは、このような効果の種類を指定するデータおよびその変化量データなどからなっている。
【0029】
図2は前記音声処理用DSP30の機能を説明する図である。音声処理用DSP30は内蔵されているマイクロプログラムに基づき入力された歌唱音声信号に対するハーモニー音声信号を形成するが、このマイクロプログラムをブロック化するとこの図のように表すことができる。
【0030】
マイク27から入力されアンプ28で増幅されA/Dコンバータ29でディジタル信号に変換された歌唱音声信号は、この音声処理用DSP30の周期検出部40,ピーク検出部41,音素検出部42,平均音量検出部43および乗算器45に入力される。
【0031】
周期検出部40は入力された歌唱音声信号の波形に基づきその周期Tを検出する(図9(A)参照)。周期検出部40は検出した周期情報をピーク検出部41および窓関数発生部44に出力する。この周期検出部40の機能の詳細は、後で図3〜図5を参照しながら詳述する。
【0032】
ピーク検出部41は入力された歌唱音声信号の1つの周期内におけるローカルピークを検出する(図9(A)参照)。周期検出部40から入力される周期情報によって1周期の間隔が決定される。ピーク検出部41は検出したピークタイミング情報を窓関数発生部44に出力する。
【0033】
音素検出部42は、入力された歌唱音声信号のレベルの切れ目や周波数成分の変化によって音素の切れ目を検出する。ここで音素とは発音を個別の子音と母音に分割した区間をいうものとする。図9(B)において、歌詞「あかしやの」は、それぞれ「あ」「か」「し」「や」「の」の5個の音節からなっており、これらの音節は「a」「k」「a」「sh」「i」「y」「a」「n」「o」の9個の音素に分割することができる。各音節間にはレベルが低下する切れ目があり、子音がホワイトノイズ的な非周期波形であるのに対し、母音が周期波形であることなどに基づいて音素の分割を行う。音素検出部42は音素の切れ目を検出すると、切れ目である旨を表示する情報を窓関数発生部44に出力する。
【0034】
平均音量検出部43は入力された歌唱音声信号の振幅レベルを平滑して平均音量を検出する。平均音量検出部43は検出した平均音量情報を音量制御部50に出力する。
【0035】
窓関数発生部44は図9(C)に示すような窓関数を出力する。この窓関数は乗算器45に出力される。乗算器45には上述したように歌唱音声信号が入力されているため、歌唱音声信号がこの窓関数の部分のみ切り取られることになる(図9(C)参照)。窓関数としては、開始から終了まで微分的に連続な関数を使用することが望ましい。微分的に連続な関数を使用すると、歌唱音声信号の一部(1周期)のみを切り出しても、切り出しの境界でノイズを発生することがない。このため、このDSP30では、sin2 (ωt/2)(t=0〜T:Tは歌唱音声信号の1周期)を使用している。この式からも明らかなように、窓関数の長さは歌唱音声信号の1周期である。1周期の長さは周期検出部40から入力される周期情報によって与えられる。また、窓関数発生部44は、数十ms〜100msの適当な間隔で繰り返し窓関数を発生する。このようにある程度時間をあけて窓関数を発生するのは、同じ波形要素データをある程度継続しないと、その波形要素データの音色が聴取者に認識されないからである。一方、音素検出部42から音素の切れ目を表示する情報が入力されたときには必ず窓関数を発生して新たな音素の波形要素データの切り出しを行う。これは、音素が切り換わると音色が全く変わるため、これに追従するためである。また、窓関数の開始タイミングは、ピーク検出部41から入力されたピークが窓関数の中央に来るように、ピークと次のピークの中間点すなわち最もレベルの低い点となるように制御される。上記のような窓関数で切り出された波形要素データは、歌唱音声信号の音色すなわちフォルマント(倍音成分)をほぼそのまま保存したものとなる。
【0036】
窓関数発生部44は、窓関数を発生すると同時に、窓関数を発生する旨およびその長さに関する情報を書込制御部47に出力する。書込制御部47は、この情報に対応して窓関数の開始から終了までの間、サンプリングクロック(44.1kHz)に同期して歩進する書込アドレスをメモリ46に入力する。この書込アドレスの入力により、乗算器45で切り出された波形要素データはメモリ46に記憶される。
【0037】
以上の構成により、メモリ46には、そのときの歌唱音声信号の1周期分の波形要素データが記憶される。この波形要素データを任意の周期で繰り返し読み出すことにより、その任意の周期の基本周波数を有し、波形要素データすなわち歌唱音声信号の音色(倍音構成)を備えた音声信号を合成することができる。そこで、この波形要素データを歌唱音声信号から3度,5度など協和する周波数関係にあるハーモニー周波数の周期で繰り返し読み出すことにより、その周波数で且つ歌唱音声信号と同じ音色のハーモニー音声信号を形成することができる。
【0038】
このメモリ46の読出制御は読出制御部48が行う。読出制御部48にはCPU10からハーモニーデータが入力されている。このハーモニーデータは、楽音データのハーモニートラックから読み出されたイベントデータである。読出制御部48はこのハーモニーデータの周波数でメモリ46を繰り返しアクセスする。すなわち、1秒間にハーモニーデータの周波数回だけ波形要素データを繰り返して読み出す。このハーモニーの旋律が主旋律よりも周波数が低い場合には、ハーモニー音声信号は、図10(A)に示すように波形要素データがデータ長Tよりも長いT1の間隔をおいて配列された波形となる。このハーモニー旋律が主旋律よりも周波数が高い場合には、ハーモニー音声信号は、図10(B)に示すように波形要素データがデータ長Tよりも短いT2の間隔で互いに重なりあって配列された波形となる。これにより、ハーモニー音声信号の基本周波数は1/T1および1/T2となるが各波形要素データ中の倍音成分はそのまま保存されているため、歌唱音声信号と同様のフォルマントが形成される。また、窓関数が微分的に連続であるためノイズが発生することはない。
【0039】
上記のようにメモリ46から波形要素データを繰り返し読み出すことによって形成されたハーモニー音声信号は切換器49を経て乗算器51に入力される。乗算器51は音量制御部50から音量制御データが入力される。音量制御部50は前記平均音量検出部43から歌唱音声信号の平均音量情報を入力しており、この平均音量情報に基づいて音量制御データを発生する。音量制御データは、たとえば平均音量情報の80パーセントの値に設定される。乗算器51で音量制御をされたハーモニー音声信号は効果用DSP20に出力される。なお、切換器49はフレーズの切れ目などで強制的に出力を0にするとき使用される。
【0040】
図3は前記周期検出部40の構成を示す図である。ここで、この周期検出部40は入力された歌唱音声信号の周期を検出するが、周期と周波数とは逆数関係で同値のものであるため、この周期検出部は周波数検出部と同等のものである。すなわち、検出された周期を逆数にすれば容易に周波数を検出することができる。周期検出部40はノイズ性判断部60,ローパスフィルタ(LPF)61およびカウント演算部62からなっている。ノイズ性判断部60は歌唱音声信号のゼロクロスの周期性を判断し、あまり短時間・不定期にゼロクロスを繰り返すようであればノイズ信号であると判断する。LPF61はノイズ信号や高調波成分を除去して歌唱音声信号の基本周波数をカウント演算部62に供給するものである。カウント演算部62は、入力された歌唱音声信号のゼロクロス間隔をサンプリングクロックの周期でカウントし、複数のゼロクロス間隔を加重平均する機能部である。平均するゼロクロス間隔の数は一定ではなく、直前の一定時間に発生したゼロクロスの時間的間隔を全て平均するようにしている。これにより、高い周波数の場合には1つのゼロクロス間隔が短いため多くのゼロクロス間隔を平均し、低い周波数の場合には1つのゼロクロス間隔が長いため少ないゼロクロス間隔を平均することになる。このことは、高い周波数の場合にはゼロクロス間隔に占めるサンプリングクロックの離散化誤差が大きいため多数の平均が必要であり、低い周波数の場合にはゼロクロス間隔に占めるサンプリングクロックの離散化誤差が小さいため多数の平均をとる必要がないことと一致している。音声信号の周波数(周期)を検出する場合、加重平均の期間としては20ms程度が適当である。
【0041】
そして、このカウント演算部62は図4に示すようなレジスタを備えている。vflagは周期(周波数)を検出していることを示すフラグである。また、zcoldは前回のゼロクロスのタイミング(サンプリングクロックのフリーランカウント値)を記憶するレジスタである。また、P(0)〜P(N−1)はN個までゼロクロス間隔のカウント値を記憶することができるレジスタである。このNは加重平均に必要になりうるデータ数より大きい値とする。
【0042】
図5は周期検出部40の動作を示すフローチャートである。まず、入力信号がピッチのある周期的信号であるかノイズ性の信号であるかを判断する(s1)。ノイズ性の信号の場合は短時間に多くのゼロクロスがあるため、これを利用してノイズ性の信号を判断することができる。例えば、10ms以内に100回以上のゼロクロスがあった場合、ノイズ性の信号と判断する。入力信号がノイズ性の信号だった場合は、周期的信号の入力があることを示すvflagをクリアし、アドレスnのレジスタP(n)に0を書き込んでリターンする(s12)。以上の処理はノイズ性判断部60が行う。
【0043】
ノイズ性の信号でない場合には、ローパスフィルタ(LPF)61を通過しノイズ成分や高調波成分を除去した入力信号に対して以下の処理を行う。以下の処理はカウント演算部62によって実行される。まず、LPF61を通過した定常的な信号があるかを判断する(s2)。これは入力信号の振幅レベルがある値より大きいかどうかで判断することができる。振幅レベルが閾値よりも大きい場合は信号ありと判断し、小さい場合は信号なしと判断する。入力信号がなかった場合は、ノイズ性信号が入力された場合と同様、vflagをクリアし、P(n)に0を書き込んでリターンする(s12)。
【0044】
一方、信号ありの場合、ゼロクロスが新たに生じたかどうかを判断する(s3)。このゼロクロスは負→正のゼロクロスであり、サンプリング値が負値から正値へ移行したことで判断することができる(図10参照)。ゼロクロスがなかった場合は何もせずにリターンする。ゼロクロスが生じた場合は、現在のvflagの値を調べる(s4)。vflagが0(リセット)の場合は、入力信号ありと判断されたのち始めてのゼロクロスであり、これより前のゼロクロスがないためゼロクロス間隔を計測できない。この場合には、vflagをセットして現在時刻をzcoldに書き込む。この現在時刻はフリーランでカウントしているサンプリングクロックのカウント値が用いられる。そして確定周波数情報Paveとして無効な値0を返す(s5)。このPaveが周期情報Tとして窓関数発生部44に出力されるが、その値が0の場合には窓関数発生部44は周期未検出であるとして窓関数を発生しない。すなわち、ハーモニー音声信号の形成を行わない。
【0045】
s4でvflagが既にセットされていた場合、ゼロクロス間隔のカウント値を記憶するレジスタP(n)のアドレスnを1つカウントアップする。カウントアップの結果アドレスがNになった場合はアドレスを0にする。現在時刻と前回ゼロクロス時刻zcoldとの差を計算し、それをゼロクロス間隔としてレジスタP(n)に書き込む。こののち、現在時刻をzoldに書き込む(s6)。
【0046】
次に加重平均を行なう。まず初期値として、Psum=0,Asum=0,c=0,i=nをセットする(s7)。ここで、Psumはゼロクロス間隔の和、Asumは加重平均をするための重み付け係数の和、c は加算したゼロクロス間隔の個数、i はメモリアドレスを示す。まず、P(i)=0かどうか調べる。0であった場合は、加重平均算出期間内に信号がない期間またはノイズ性信号が入力されていた期間があることを示している。このような場合には、加重平均をとっても精度の高い周期情報Paveを求めることができないとして最新のゼロクロス間隔のカウント値P(n)を確定周波数情報Pave(周期T)として出力して(s13)リターンする。
【0047】
P(i)が0でなければ、次の計算を行なう。
【0048】
Psum=Psum+a(c)×P(i)
Asum=Asum+a(c)
c=c+1
i=i−1 ただしi<0になったらi=N−1
以上の動作はPsumが加重平均の期間L(20msのサンプリングクロックカウント値)を超えるまで繰り返し実行する(s10)。この期間内に1回でもP(i)=0があればs8の判断でs13に進む。P(i)=0が一度もない場合には、加重平均期間における重み付けされたゼロクロス間隔の総和Psumと重み付け係数の総和Asumが算出される。すなわち、
Psum =a(0) ×P(n) +a(1) ×P(n-1) +a(2) ×P(n-2) +……
となる。なお、加重平均の期間をTL(=20ms)とすると、
L=TL×TS
である。ここで、TSはサンプリングクロック周波数である。最後に
Pave=Psum/Asum
を行なえば、ゼロクロス間隔の加重平均値である周期情報Paveを算出することができる(s11)。この確定周波数情報Paveを周期情報Tとして窓関数発生部44に出力して歌唱音声信号のピッチ変換に用いる。
【0049】
なお、信号の立ち上がりのときなど、加重平均期間内に信号がない期間がある場合、この例では加重平均をやめて最新のゼロクロス間隔のカウント値P(n)を出力するようにしているが、加重平均期間内の周期的信号がある期間のみを抽出して加重平均を行ってもよい。
【0050】
重み付け係数a(c)は、
a(0) >a(1) >a(2) > …
というように、現在に近い信号ほど重みを大きくし、過去になるほど重みを小さくして、入力信号の周波数が変化に対する追従性を高めるようにすればよい。、また入力信号の性質を利用して、それにより動的に変更しても良い。すなわち、a(k) =α**kとすると、入力信号の周波数がが安定しているときは、αを大きな値(1に近い値)にして単純平均に近づけ、入力信号の周波数が変動しているときには、その変化に応じて自動的にαを小さな値に変更するようにすればよい。
【0051】
具体的には、加重平均を行うまえに、加重平均を行うのと同じ期間で計測されたゼロクロス間隔P(n)の最大値と最小値の比を計算し、この比が小さいときは入力信号の周波数が安定していて、比が大きいときは入力信号の周波数が変化している、または、安定していないと判断し、これによってαの値を決定するようにすればよい。
【0052】
たとえば、R(=Pmax/Pmin)とすると、
R≦1.03 ならば α=1.0
1.03<R≦1.06 ならば α=0.95
1.06<R≦1.09 ならば α=0.90
1.09<R≦1.12 ならば α=0.85
1.12<R ならば α=0.80
のように決定する。このようにRに応じて重み付け係数を決定することにより、入力信号の周波数が安定しているときには、単純平均に近くなり周波数(周期)の計算精度を高くすることができる。また、入力信号の周波数が変動しているときは検出精度よりも周波数追従性が要求されるため、現在に近いデータの重み大きくなって変化によく追従できるようになる。なお、α=1.0の場合には全ての重み付け係数が等しくなり、単純平均と同じになる。
【0053】
なお、上記実施形態では歌唱音声信号の周波数(周期)の検出について説明したが、楽器など他の音声周波数信号の周波数検出にこれを用いてもよい。
【0054】
【発明の効果】
請求項1の発明によれば、複数のカウント値を平均化することにより、入力された音声信号の真の周波数(周期)から端数を切り捨てて求められたカウント値と端数を切り上げて求められたカウント値とが相殺されるため、誤差が少なくなり精度の高い周波数(周期)の検出を行うことができる。また、複数のカウント値を加重平均する場合に、古いカウント値に対して新しいカウント値の重みを大きくすることにより、入力音声信号の周波数が変動している場合の追従性を良くすることができる。また、請求項1の発明によれば、複数のカウント値の変動が小さいときすなわち入力信号の周波数変動が小さいときには、重み付け係数の変化率を小さくして単純平均に近づけてゆくことにより平均の精度を高くする。また、入力信号の周波数変動が大きい場合には、重み付け係数の変化率を大きくして新しいカウント値の重みを大きくする。これにより、確定される周波数値の入力信号に対する追従性が良くなる。
【0055】
請求項2の発明によれば、発音開始時や発音の中断などによって信号が入力しなくなったとき、このような場面ではもとより周波数が不安定であるため、平均値ではなく1回のカウント値を用いることにより無駄な演算をなくすことができる。
【0056】
請求項3の発明によれば、何らかの事情で信号が入力されなかった場合でも、入力された信号によるカウント値のみで平均をとることにより、確定周波数情報の出力を継続することができる。
【図面の簡単な説明】
【図1】この発明の実施形態であるカラオケ装置のブロック図
【図2】同カラオケ装置の音声処理用DSPの構成を示す図
【図3】同音声処理用DSPの一部である周期検出部の構成を示す図
【図4】同周期検出部に設けられるレジスタの構成を示す図
【図5】同周期検出部の動作を示すフローチャート
【図6】前記カラオケ装置に用いられる楽曲データの構成を示す図
【図7】同カラオケ装置に用いられる楽曲データの構成を示す図
【図8】同カラオケ装置に用いられる楽曲データの構成を示す図
【図9】歌唱音声信号から波形要素データの切り出し方式を説明する図
【図10】ハーモニー音声信号の形成方式を説明する図
【図11】周期検出の原理を示す図
【符号の説明】
30…音声処理用DSP、40…周期検出部、44…窓関数発生部、
60…ノイズ性判断部、61…ローパスフィルタ、62…カウント演算部
Claims (4)
- 所定のサンプリングクロックでディジタル化された音声信号を入力する入力手段と、
該音声信号の周期を前記サンプリングクロックのカウント値で測定するカウント手段と、
所定期間内に前記カウント手段を繰り返し実行し、これによって得られた複数のカウント値を加重平均することによって前記音声信号の周波数を確定する加重平均手段と、
を備えた周波数検出装置において、
前記加重平均手段は、前記複数のカウント値の変動が小さいとき古いカウント値から新しいカウント値への重み付け係数の変化率を小さくし、前記複数のカウント値の変動が大きいとき前記重み付け係数の変化率を大きくすることを特徴とする周波数検出装置。 - 前記加重平均手段は、前記所定期間内に音声信号の入力がない期間があったとき、加重平均を行わずに前記カウント手段の最新のカウント値から周波数を算出する請求項1に記載の周波数検出装置。
- 前記加重平均手段は、前記所定期間内に音声信号の入力がない期間があったとき、音声信号が入力された期間のみで加重平均を行う手段である請求項1に記載の周波数検出装置。
- 前記加重平均手段は、前記複数のカウント値における最大値と最小値との比を計算し、この比を用いて前記複数のカウント値の変動の大きさを判断することを特徴とする請求項1〜3の何れかに記載の周波数検出装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20053996A JP3645364B2 (ja) | 1996-07-30 | 1996-07-30 | 周波数検出装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20053996A JP3645364B2 (ja) | 1996-07-30 | 1996-07-30 | 周波数検出装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1049148A JPH1049148A (ja) | 1998-02-20 |
JP3645364B2 true JP3645364B2 (ja) | 2005-05-11 |
Family
ID=16425996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20053996A Expired - Fee Related JP3645364B2 (ja) | 1996-07-30 | 1996-07-30 | 周波数検出装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3645364B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006113416A (ja) * | 2004-10-18 | 2006-04-27 | New Japan Radio Co Ltd | 周波数検出方法および装置 |
JP4826999B2 (ja) * | 2005-07-12 | 2011-11-30 | 株式会社安川電機 | 振動周波数測定装置 |
JP5098404B2 (ja) * | 2006-10-27 | 2012-12-12 | ソニー株式会社 | 音声処理方法および音声処理装置 |
JP5235390B2 (ja) * | 2007-11-27 | 2013-07-10 | 三菱電機株式会社 | インバータ制御装置並びに空気調和装置 |
JP2012060505A (ja) * | 2010-09-10 | 2012-03-22 | On Semiconductor Trading Ltd | 振動スピーカの駆動制御回路 |
JP5687909B2 (ja) * | 2011-01-24 | 2015-03-25 | 日置電機株式会社 | 測定装置および測定方法 |
-
1996
- 1996-07-30 JP JP20053996A patent/JP3645364B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1049148A (ja) | 1998-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2921428B2 (ja) | カラオケ装置 | |
JP3718919B2 (ja) | カラオケ装置 | |
US7582824B2 (en) | Tempo detection apparatus, chord-name detection apparatus, and programs therefor | |
JP3598598B2 (ja) | カラオケ装置 | |
US6316710B1 (en) | Musical synthesizer capable of expressive phrasing | |
US7579546B2 (en) | Tempo detection apparatus and tempo-detection computer program | |
JP3293745B2 (ja) | カラオケ装置 | |
US5703311A (en) | Electronic musical apparatus for synthesizing vocal sounds using format sound synthesis techniques | |
US5428708A (en) | Musical entertainment system | |
US20060246407A1 (en) | System and Method for Grading Singing Data | |
JP2838977B2 (ja) | カラオケ装置 | |
JP3996565B2 (ja) | カラオケ装置 | |
JP4204941B2 (ja) | カラオケ装置 | |
JP3645364B2 (ja) | 周波数検出装置 | |
JP3116937B2 (ja) | カラオケ装置 | |
JP3760833B2 (ja) | カラオケ装置 | |
JP4900017B2 (ja) | ビブラート検出装置、ビブラート評価装置、ビブラート検出方法、ビブラート評価方法およびプログラム | |
KR100278825B1 (ko) | 음악적 오락 시스템 | |
JPH08286689A (ja) | 音声信号処理装置 | |
JP3430814B2 (ja) | カラオケ装置 | |
JP3261990B2 (ja) | カラオケ装置 | |
JP3613859B2 (ja) | カラオケ装置 | |
JP4048249B2 (ja) | カラオケ装置 | |
JP2000330580A (ja) | カラオケ装置 | |
JPH1069216A (ja) | カラオケ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041228 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050203 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080210 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090210 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090210 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100210 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110210 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120210 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130210 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140210 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |