採点機能を有するカラオケ装置
【課題】精度の高い採点が可能なカラオケ装置を実現する。
【解決手段】楽器音情報、楽曲演奏進行情報、減衰時間データを用いて、音高ピッチ情報の取得に悪影響を及ぼす所定の楽器音が発音されていない期間を特定し、特定した期間に取得した音高ピッチ情報に基いて、歌唱者のピッチ周波数を決定する。決定されたピッチ周波数に対応するフィルタを用いて入力された音声をフィルタ処理し、フィルタ処理された入力音声信号を採点する。
【解決手段】楽器音情報、楽曲演奏進行情報、減衰時間データを用いて、音高ピッチ情報の取得に悪影響を及ぼす所定の楽器音が発音されていない期間を特定し、特定した期間に取得した音高ピッチ情報に基いて、歌唱者のピッチ周波数を決定する。決定されたピッチ周波数に対応するフィルタを用いて入力された音声をフィルタ処理し、フィルタ処理された入力音声信号を採点する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、精度の高い採点が可能な採点機能を有するカラオケ装置に関する。
【背景技術】
【0002】
従来、採点機能を有するカラオケ装置が広く知られている。マイクなどから入力されたカラオケ演奏中の歌唱者の音声を分析し、分析によって得られた特徴量を所定の手法で評価し、数値化して、その数値を採点結果として歌唱者に報知するものである。また、採点処理に用いられる特徴量としては、歌唱音声の音高を抽出した音高ピッチの周波数を特徴量とする情報(音高ピッチ情報)が一般的である。下記特許文献1においては、デュエット曲に対し、男女のパート毎に採点するものが開示されている。また、下記特許文献2においては、男女音声の周波数特性の違いを利用して入力音声の性別を判別するものが開示されている。
【特許文献1】特開平11−282478号公報
【特許文献2】特開2001−56699号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、カラオケ演奏中の入力歌唱音声を分析(採点)する場合、高精度の採点結果を得るためには、入力歌唱音声以外の音響信号を除去することが望ましい。しかしながら、歌唱者のマイクには、歌唱者の歌唱音声のみならず、楽音再生装置から出力されるカラオケ演奏中の楽曲音も一部入力されることになる。
【0004】
そのため、従来、周波数帯域フィルタなどを利用したフィルタ処理によって上記楽曲音を除去する試みが行われているが、この場合、歌唱者の入力歌唱音声は除去せずに、楽曲音のみを除去するためのフィルタ処理を施すには、入力歌唱音声には影響を及ぼさないようなフィルタ処理を行うよう留意する必要がある。
【0005】
このとき、男声と女声とでは歌唱音声の周波数帯域が異なる(一般的に、男声を発する男性の音声は、女声を発する女性の音声よりも低い周波数帯域である。)ため、男声と女声に対して同じフィルタ処理を施すことは、高精度の分析結果を得る観点からは好ましくない。
【0006】
この点について、ドラム音、女性、男声それぞれの周波数分布について図を用いて説明する。以下に説明する図においては、横軸は対数周波数であり、縦軸はデシベルである。図1〜図3は、ドラム音の周波数分布の例を示すものである。ドラム音は、ドン、ドンという打音である。図1では、70Hz付近に第1のピークがある。図2では、60Hz付近に第1のピークがある。図3では、80Hz付近にピークがある。これらの図によれば、一般的に、ドラム音は、100Hz以下の帯域に、第1のピークが存在することがわかる。
【0007】
図4〜図6は、女声の周波数分布の例を示すものである。図4では、300Hz付近に第1のピークがある。図5では、400Hz付近に第1のピークがある。図6では、500Hz付近に第1のピークがある。
【0008】
図7、図8は、男声の周波数分布の例を示すものである。図7では、80Hz付近に第1のピークがある。図8では、100〜200Hzの間に第1のピークがある。
【0009】
これらの図によれば、女声の周波数帯域と男声の周波数帯域とで大きな差があることがわかる。また、低い声の男声の第1のピークは、ドラム音の第1のピークに近いことがわかる。
【0010】
また、これらの図が示すとおり、男声に合わせてフィルタ(例えば、ローカットフィルタ)を設定し、そのフィルタをそのまま用いて女声に対しフィルタ処理した場合、ドラム音の帯域が除去できないため、女声の音高ピッチ情報の取得に悪影響を及ぼすことになる。また、女声に合わせてフィルタを設定し、そのフィルタをそのまま男声に対しをフィルタ処理した場合、男声自体にもフィルタ処理が施されてしまい、男声の音高ピッチ情報の取得に悪影響を及ぼす。
【0011】
さらに、ドラム音以外の楽器音であっても、発音帯域が男声または女声の帯域と近い楽器音は、音高ピッチ情報の取得に悪影響を及ぼすため、この楽器音の発音時に採点処理を行うと、採点精度が下がる原因となる。したがって、採点に悪影響を及ぼす楽器音を特定し、採点精度に悪影響を及ぼさないタイミングで音高ピッチ情報を取得する必要がある。
【0012】
図9は、ピアノ音(発音コード:A1(基本波の周波数は55Hz付近))のアタック(発音)直後の周波数分布を示すものである。この図が示すとおり、ピアノ音には、50〜60Hzの間に1つのピークが存在し、また、100〜110Hzの間の2ヵ所にピークが存在することがわかる。
【0013】
図10は、エレキベース音(発音コード:A1(基本波の周波数は55Hz付近))のアタック(発音)直後の周波数分布を示すものである。この図が示すとおり、エレキベース音には、50〜60Hzの間に1つのピークが存在し、また、100〜400Hzの間に複数のピークが存在することがわかる。
【0014】
図11は、チューバ音(発音コード:A1(基本波の周波数は55Hz付近))のアタック(発音)直後の周波数分布を示すものである。この図が示すとおり、チューバ音には、50〜60Hzの間に1つのピークが存在し、また、100〜400Hzの間に複数のピークが存在することがわかる。
【0015】
図12は、コントラバス音(発音コード:A1(基本波の周波数は55Hz付近))のアタック(発音)直後の周波数スペクトルを示すものである。この図が示すとおり、コントラバス音には、50〜60Hzの間に1つのピークが存在し、また、100Hz以降、複数のピークが存在することがわかる。
【0016】
ここで、ピアノ音及びエレキベース音は、発音直後から徐々に音量が減衰する楽器音であり、チューバ音及びコントラバス音は減衰しない楽器音である。図9〜12が示すとおり、減衰する楽器音、減衰しない楽器音に関わらず、人の声のピークと類似する帯域にピークが存在しうる。そのため、これらの楽器音が発音している区間を特定する必要がある。
【0017】
また、男声/女声でフィルタを切り替える場合、入力音声が男声であるか女声であるかを判別する必要がある。カラオケ演奏時に歌唱者に性別を選択させることもできるが、このような選択動作は歌唱者に負担を課すことになる。また、男声/女声の判別を装置が自動的に行う場合は、例えばセキュリティシステムに用いられるような精度の高い判別が必要となる。一般的に、精度の高い音声認識技術を、ワンチップCPU等を用いたカラオケ用採点装置で実行した場合は、認識処理に時間がかかるため、娯楽として用いられるカラオケ装置には採用しがたい面がある。
【0018】
そこで、本発明は、上記問題点を解消し、歌唱者に何らの負担を課すことなく、楽曲演奏中に男声/女声を正確に、かつ、容易に判別し、男声女声別に適正なフィルタ処理を行うことによって、精度の高い採点処理ができるカラオケ用採点装置の実現を目的とする。
【課題を解決するための手段】
【0019】
上記目的を達成するため、請求項1に係る発明は、歌唱者音声入力手段、楽曲再生手段、制御手段、記憶手段、採点手段を備えた採点機能を有するカラオケ装置において、上記記憶手段には、楽器音ごとの減衰時間が定義された減衰時間データと、ピッチ周波数と周波数帯域フィルタとが関連付けられた関連データと、歌唱者音程情報、楽器音情報、楽曲演奏進行情報を含んだ楽曲データと、が記憶されており、上記制御手段は、前記楽曲データに基く楽曲の演奏中に、上記楽器音情報、上記楽曲演奏進行情報、上記減衰時間データに基いて、設定された所定の楽器音が発音されていないかどうかを判断し、上記楽器音が発音されていない期間において上記歌唱者音声入力手段に入力された入力音声から歌唱者のピッチ周波数を特定し、特定されたピッチ周波数及び上記関連データに基いて、周波数帯域フィルタを特定し、特定した周波数帯域フィルタによって上記入力音声をフィルタ処理し、上記採点手段は、上記歌唱者音程情報を用いて前記フィルタ処理された後の入力音声を採点することを特徴とする。
【0020】
請求項2に係る発明は、請求項1の採点機能を有するカラオケ装置において、上記楽曲は、MIDIデータを含む楽曲データに基いて演奏され、上記制御手段は、上記所定の楽器音を発音させるための命令が出力されたタイミングを起点として、当該所定の楽器音の減衰時間が経過するまでの期間、または、当該所定の楽器音の発音を止めるための命令が出力されるまでの期間のうち、短い方の期間を、当該所定の楽器音が発音されている期間と判断し、上記楽器音が発音されていない期間から除外することを特徴とする。
【0021】
請求項3に係る発明は、請求項1または2の採点機能を有するカラオケ装置において、上記楽曲は、MIDIデータを含む楽曲データに基いて演奏され、上記制御手段は、所定値より小さいノートナンバを含むノートオン信号を検出し、当該ノートオン信号のチャネルに対応する楽器音を、上記所定の楽器音として設定することを特徴とする。
【0022】
請求項4に係る発明は、請求項1〜3いずれかの採点機能を有するカラオケ装置において、蓄積手段をさらに有し、上記発音されていない期間において取得した上記入力音声の音高ピッチ情報は、上記蓄積手段に記憶され、所定時間分の音高ピッチ情報が蓄積されると平均処理によって上記歌唱者のピッチ周波数を特定することを特徴とする。
【0023】
請求項5に係る発明は、請求項1、2または4いずれかの採点機能を有するカラオケ装置において、上記楽曲データには、上記所定の楽器音を特定可能にする情報が付されており、上記制御手段は、上記情報に基いて上記所定の楽器音を設定することを特徴とする。
【0024】
請求項6に係る発明は、請求項1、2または4いずれかの採点機能を有するカラオケ装置において、上記所定の楽器音が予め定められていることを特徴とする。
【0025】
請求項7に係る発明は、請求項6の採点機能を有するカラオケ装置において、上記制御手段は、上記楽曲の演奏開始後所定の時間内に上記一時メモリに所定時間分のピッチが蓄積されなかった場合に、所定の情報を利用者に報知することを特徴とする。
【0026】
請求項8に係る発明は、請求項1〜7いずれかの採点機能を有するカラオケ装置において、前記楽器音ごとの減衰時間は、4バイトのデータであることを特徴とする。
【発明の効果】
【0027】
請求項1に係る発明によれば、楽器音ごとの減衰時間を用いて所定の楽器音が発音されていない期間において入力された入力音声に基いて歌唱者のピッチ周波数を特定し、その結果に基いてフィルタを設定し、設定したフィルタを用いてフィルタ処理を行った音声に基いて採点を行うので、音高ピッチ情報の抽出に悪影響を及ぼす楽器を所定の楽器音として設定することにより、精度の高い採点処理を実現することができる。
【0028】
請求項2に係る発明によれば、さらに、楽器音ごとの減衰時間及び楽器音の発音を止めるための命令を用いて、所定の楽器音が発音されていない期間を決定するので、楽器音の種類(減衰する楽器、減衰しない楽器)によらず上記発音されていない期間を適切に決定することができる。
【0029】
請求項3に係る発明によれば、さらに、所定値より小さいノートナンバを含むノートオン信号のチャネルに対応する楽器音を採点に悪影響を及ぼす楽器として設定することができるので、採点に悪影響を及ぼす楽器音を適切に決定することができる。
【0030】
請求項4に係る発明によれば、さらに、所定時間分の音高ピッチ情報を利用して、歌唱者のピッチ周波数を特定するので、特定したピッチ周波数の精度を高めることができる。
【0031】
請求項5に係る発明によれば、さらに、上記所定の楽器音を特定可能にする情報が楽曲データに付されているから、楽曲ごとに、音高ピッチ情報の取得に悪影響を及ぼす楽器音を特定することが可能となるため、音高ピッチ情報の取得のための適切な区間を決定することできる。
【0032】
請求項6に係る発明によれば、さらに、上記所定の楽器音が予め定められているから、既存の楽曲データを利用して精度の高い採点処理を行うことができる。
【0033】
請求項7に係る発明によれば、さらに、楽曲の演奏開始後所定の時間内に所定時間分のピッチが蓄積できなかった場合にその旨を報知するので、男声/女声判別が正しく行われたか否かを演奏中の早い段階で歌唱者に報知することができる。
【0034】
請求項8に係る発明によれば、さらに、減衰時間を4バイトで表現するので、ミスアラインメントを防止するとともに、適切なデータ量で減衰時間を表現することができる。
【発明を実施するための最良の形態】
【0035】
本発明に係るカラオケ装置を具体化した実施形態について、図面を参照しつつ詳細に説明する。なお、以下の説明においては、採点に影響のある楽器音を「影響音」ということがあり、また、採点に影響のある楽器音のトラックを「影響音トラック」ということがある。
【0036】
図13は、本実施形態のカラオケ装置における制御装置の内部構成、及び、その周辺機器を示すブロック図である。
【0037】
制御装置10は、通信回線を介してホストコンピュータ(図示せず)に接続されており、通信回線を介して楽曲データを通信I/F15を介して受信する。受信されたカラオケ曲データは、記憶装置12に記憶される。
【0038】
ここで、楽曲データには、楽曲の再生用データに加えて、カラオケ曲のタイトルデータ、カラオケ曲に対応する映像データ等が含まれることもある。
【0039】
コントローラ11は、制御装置10全体の制御を行う。また、種々のプログラムを実行する。
記憶装置12は、楽曲データ等を記憶する。また、記憶装置12は、動的記憶媒体(HDD等)で構成される。また、必要に応じて静的記憶媒体で構成してもよい。
【0040】
操作パネル13は、操作者が選曲番号等の各種情報を入力するために用いられる。また、リモコン13aを介して各種の情報を入力してもよい。
【0041】
RAM14は、種々の制御に必要な情報が記憶される一時記憶メモリである。RAM14は、マルチスレッドプロセスにおいては、共有メモリとして機能する。なお、本発明における共有メモリとしての使用方法については、後述する。
【0042】
通信I/F15は、図示しないホストコンピュータとの通信を、通信回線を介して行う。ここで、通信回線は、有線無線を問わない。
【0043】
採点回路16は、マイク17より入力された音声の採点を行う。また、本実施形態においては、採点の対象となる音声は、後述するフィルタ処理が施されている。なお、図13においては、マイクの数は2つであるが、マイクの数はいくつでもよい。なお、図13においては、コントローラ11と採点回路16を別個の構成として図示しているが、コントローラ11が、フィルタ処理及び採点処理を行ってもよい。また、フィルタ処理を別の回路が行ってもよい。
【0044】
音源18は、アンプ19に接続されている。楽曲データは、音源18を介して音声信号に変換され、アンプ19で増幅された後、スピーカ20によって音声出力される。なお、本実施形態においては、音源18は、MIDI音源である。また、アンプ19は、マイク17より入力された音声についても増幅する。
【0045】
映像制御回路21は、モニタ22に接続されている。記憶装置12または通信回線より取得した映像データと、楽曲データに含まれた歌詞情報とを、映像制御回路21を介して楽曲のカラオケ再生時の背景映像と歌詞として、モニタ22に表示する。また、映像データが、符号化されている場合は、復号処理を映像制御回路21で行ってもよい。
【0046】
なお、上述した内部構成は、本発明の説明に必要なものを主に記載したものであり、上述した構成以外にも、種々の回路や要素が含まれることはもちろんである。
【0047】
なお、本実施形態におけるカラオケ装置の外観は、本発明において何ら限定されるものではない。また、本実施形態においては、上述したカラオケ装置の内部構成として示した一部の要素を、外部に備えてよい。一部の構成要素の機能を、ネットワークに接続されたサーバで実現することも可能である。
【0048】
本実施形態で用いる楽曲データは、楽器音情報、楽曲演奏進行情報、歌唱者音程情報等を有するものである。代表的なものとしてMIDIデータを挙げることができるが、本実施形態は、MIDIデータに限定されるものではなく、本実施形態を実施可能な限度においてその他のデータであってもよい。また、MIDIデータにおいては、チャネル番号によって楽器音が指定され、楽器音の発音のオン/オフは、例えば、ノートオン/ノートオフ信号で制御される。また、歌唱者音程情報は、ボーカルトラックのノートナンバを用いることができる。
【0049】
図14は、本実施形態における楽曲データの一例を示すものである。図14に示すとおり、MIDIデータのトラックヘッダに、減衰時間を定義するためのデータエリアが設けられている。減衰時間の詳細については後述する。また、減衰しない楽器音(オルガン等)のトラックについては、減衰しないことを示す所定値(例えば、4バイトデータであれば、FFFFFFFFh)を上記データエリアに設定することができる。また、減衰する楽器であるか否かを示すためのデータエリアをトラックヘッダに別途に設けてもよい。
【0050】
図15は、共有メモリの内部構成を示す図である。図15が示すとおり、共有メモリには、影響音トラックにおけるノートオン信号が出力された時刻を記憶するための領域(時刻領域)と、ボーカルトラックのノートナンバを記憶するための領域とからなる。図15においては、影響音トラックとして2つのトラックが設定された場合の共有メモリの内容を示している。また、本実施形態においては、設定される影響音トラックの数は任意に設定可能であるから、共有メモリに設定される時刻領域の数も任意に設定可能である。
【0051】
次に、本実施形態におけるカラオケ装置の処理の流れについて図を参照しつつ説明する。図16は、本実施形態におけるカラオケ装置の採点用プロセスのフローチャートであり、図17は、本実施形態におけるカラオケ装置の演奏用プロセスのフローチャートである。ここで、採点用プロセスと演奏用プロセスとは、マルチスレッドとして処理される。すなわち、上記両プロセスは、並列で処理される。マルチスレッド処理については公知であるので説明を省略する。
【0052】
上記両プロセスは、実行中に共有メモリにアクセスすることによって、両プロセス間で情報のやり取りが可能となっている。
【0053】
[採点用プロセス]
まず、採点用プロセスについて図16を参照にしつつ説明する。楽曲の再生がスタートすると、採点用プロセスは実行開始される。
S1において、取得ピッチ保持エリアを初期化する。取得ピッチ保持エリアは、RAM14内に形成される。
【0054】
S2において、ローカットフィルタをオフにする。なお、本実施形態においては、フィルタとしてローカットフィルタを用いる例を説明するが、バンドパスフィルタ等を用いても本実施形態は実現可能であることはもちろんである。また、フィルタをデジタルフィルタで構成してもよいし、アナログフィルタで構成してもよい。
【0055】
S3において、取得ピッチ保持エリア内に音高ピッチ情報がFULLになったか否かを判断する。取得ピッチ保持エリアに記憶する音高ピッチ情報の量は適宜設定可能であり、入力音声のピッチ周波数を正確に算出できる量とする。音高情報ピッチ情報がFULLになっていないと判断した場合は(S3:NO)、S4に進む。
【0056】
S4において、楽曲の演奏が終了したか否かを判別する。演奏が終了したと判断した場合(S4:YES)は、S11に進む。演奏が終了していないと判断した場合(S4:NO)は、S5に進む。
【0057】
S5において、演奏開始から一定時間が経過したか否かを判断する。一定時間が経過したと判断した場合は(S5:YES)、S11に進む。この一定時間は、適宜設定可能である。一定時間が経過したとの判断は、音高ピッチ情報が所定時間内に所定量取得できなかったと判断したことを意味する。
【0058】
S11において、楽曲の演奏を終了し、採点ができなかった旨をモニタ22に表示する。また、S5及びS11における処理は、必要に応じ省略してもよい。
【0059】
S5において、演奏開始から一定時間が経過していない場合は(S5:NO)は、S6に進む。
S6において、音高ピッチ情報が取得できたか否かを判断する。音高ピッチ情報が取得できないと判断した場合は(S6:NO)、S3に戻る。音高ピッチ情報が取得できたと判断した場合は(S6:YES)、S7に進む。なお、音高ピッチ情報の取得の手法については、公知の種々の技術を採用することができる。
【0060】
S7において、S6で取得した音高ピッチ情報の取得タイミングにおける入力音量が所定以上であるか否かを判断する。入力音量が所定以上でない場合は(S7:NO)、当該タイミングにおいてマイク17により音声が入力されていなかったと判断してS3に戻る。入力音量が所定以上である場合は(S7:YES)、S8に進む。
【0061】
S8において、現在時刻を取得する。この現在時刻は、S6で取得した音高ピッチ情報を取得した時刻を表すものである。その後、S9に進む。
【0062】
S9において、いずれかの影響音トラックが発音中か否かが判断される。S9の処理について具体的に説明する。まず、S8で取得した時刻と、共有メモリに記憶されている時刻との時間差を算出する。このとき、共有メモリに複数の時刻が記憶されている(すなわち、影響音トラックが複数存在する)場合は、それぞれの時刻との時間差が算出される。その後、上記時間差(複数存在する場合は、それぞれの時間差)が、対応する影響音の減衰時間以上であるか否かが判断される。
【0063】
この点について、ドラムトラックとピアノトラックとが影響音トラックである場合を例にして説明する。共有メモリには、ドラムトラック用の時刻領域と、ピアノトラック用の時刻領域が確保されることになる。S8で取得した時刻をTc、ドラムトラック用の時刻領域に記憶されている時刻をNd、ピアノトラック用の時刻領域に記憶されている時刻をNp、ドラム音源のデータトラックに記載されている減衰時間をAd、ピアノ音源のデータトラックに記載されている減衰時間をApとすれば、ドラムトラックにおける時間差Dd、ピアノトラックにおける時間差Dpは、それぞれ、
Dd=Tc−Nd
Dp=Tc−Np
として算出される。
そして、Dd>Ad、かつ、Dp>Apの場合に限って、いずれの影響音トラックも発音中ではない、すなわち、S9において「No」と判断される。
【0064】
いずれかの影響音トラックが発音中であると判断した場合は(S9:YES)、S3に戻る。いずれの影響音トラックも発音中ではないと判断した場合は(S9:NO)、S10に進む。ここで、時刻領域に記憶されている時刻は、後述する演奏用プロセスにおいて書き込まれた影響音トラックのノートオン信号が出力された時刻、もしくは、所定値(ゼロ値)である。この点については、演奏用プロセスの説明中において詳細に説明する。
【0065】
なお、S9における「発音中ではない」かどうかの判断は、採点に影響を及ぼす音量での発音がなされていないという基準で行われる。すなわち、たとえ影響音が発音されていても、その音量が採点に影響を及ぼさない大きさであれば、「発音中ではない」と判断される。
【0066】
S10において、S6で取得した音高ピッチ情報を取得ピッチ保持エリアに書き込む。そして、S3に戻る。
【0067】
一方、S3において、取得ピッチ保持エリアがFULLになっていると判断した場合は(S3:YES)は、S12に進む。
S12において、取得ピッチ保持エリア内の全データの平均値を算出し、平均ピッチ情報を入力音声のピッチ周波数として取得する。その後、S13に進む。
【0068】
S13において、算出したピッチ周波数が、所定ピッチ以下であるか否かを判別する。ピッチ周波数が所定ピッチ以下である場合(S13:YES)は、マイク17に入力された音声は男声であると判断して、S14に進む。
S14において、ローカットフィルタを男声用に設定する。
【0069】
ピッチ周波数が所定ピッチ量以下ではない場合(S13:NO)は、マイク17に入力された音声は女声であると判断して、S15に進む。
S15において、ローカットフィルタを女声用に設定する。
【0070】
なお、S13〜S15の処理においては、マイク17に入力された音声のピッチ情報を2つのピッチ周波数(男声・女声)に分類し、それぞれのピッチ周波数に対してフィルタを設定したが、ピッチ周波数を3つ以上に分類して、それぞれの周波数に対しフィルタを設定してもよい。また、周波数と設定されるフィルタとの関係は、予めデータテーブルとして有してもよいし、プログラム上で処理(すなわち、IF/THEN処理)してもよい。また、男声と判断した場合は、フィルタ処理をしないように構成してもよい。
【0071】
S16において、採点値を初期化する。なお、本実施形態においては、減点法によって処理を行うため、初期値として例えば1000点を設定できるが、加点法や、その他周知の採点値設定法を適宜適用可能であることはいうまでもない。なお、その場合は、初期値は1000点ではなく異なる値となることはいうまでもない。また、減点法以外の採点手法を採用する場合は、以下に説明するS22の処理が異なる点はいうまでもない。
【0072】
S17において、楽曲の演奏が終了したか否かを判断する。楽曲の演奏が終了したと場合は(S17:YES)、S18に進み、採点結果をモニタ22に表示する。なお、楽曲の演奏中においても、適宜採点結果(途中結果)を表示するよう構成してもよい。楽曲の演奏が終了していない場合は(S17:NO)、S19に進む。
【0073】
S19において、音高ピッチ情報を取得できたか否かを判断する。音高ピッチ情報が取得できなかった場合は(S19:NO)、S17に戻る。音高ピッチ情報が取得できたと判断した場合は(S19:YES)、S20に進む。
【0074】
S20において、S19で取得した音高ピッチ情報の取得タイミングにおける入力音量が所定以上であるか否かを判断する。入力音量が所定以上でない場合は(S20:NO)、当該タイミングにおいてマイク17により音声が入力されていなかったと判断してS17に戻る。入力音量が所定以上である場合は(S20:YES)、S21に進む。
【0075】
S21において、S19で取得した音高ピッチ情報と、共有メモリに記憶されているMIDIデータにおけるボーカルトラックのノートナンバとの差分を算出する。本実施形態においては、MIDIデータにおけるボーカルトラックのノートナンバを採点の基準としている。また、MIDIデータにおけるボーカルトラックは、歌唱時において、ガイドメロディとしても利用される。共有メモリへの書き込みについては、演奏用プロセスにおいて詳細に説明する。その後、S22に進む。
【0076】
S22において、現在の採点値からS21で求めた差分の絶対値を減算する。ここで、マイクから入力された音高ピッチ情報が共有メモリに記憶されているノートナンバが示すピッチ情報と同じであれば、マイク17から入力された音声信号の音高ピッチ情報は正しいものなので、減算されないことになる。
【0077】
なお、S21及びS22における採点手法においては、歌唱音声がガイドメロディに対して時間方向にずれている場合にも採点値に影響を及ぼす。そこで、所定時間分のガイドメロディ(ボーカルトラック)のノートナンバー(ピッチ情報)を共有メモリに記憶しておき、入力音声における音高ピッチ情報とDPマッチング等を利用して採点処理を行うことにより、時間方向のずれが採点値に影響を及ぼすことを低減できる。
【0078】
[演奏用プロセス]
次に、演奏用プロセスについて図17を参照しつつ説明する。楽曲の再生がスタートすると、演奏用プロセスは実行開始される。演奏用プロセスでは、楽曲データであるMIDIデータが有する複数のトラックのうち、影響音トラック及びボーカルトラックが処理対象となる。また、どのトラックが影響音トラックであるか否かは、予め設定されているものとする。
【0079】
まず、S31において、トラックデータを取得する。そして、取得したトラックデータが影響音トラックであるか否かを判断する。影響音トラックでないと判断した場合は(S31:NO)、他のトラックを処理の対象とするため、当該トラックに対しては処理を行なわず、S37に進む。
【0080】
影響音トラックであると判断した場合は(S31:YES)、S32に進む。
S32において、S31で取得したデータにノートオン情報が存在するか否かを判断する。ノートオン情報が含まれていないと判断した場合は(S32:NO)、影響音の発音開始タイミングではないと判断してS35に進む。
ノートオン情報が含まれていると判断した場合は(S32:YES)、影響音の発音開始タイミングであると判断し、S33に進む。
【0081】
S33において、現在時刻を取得する。この現在時刻は、影響音の発音開始時刻を意味するものである。なお、この現在時刻としては、システム起動からの時間を利用することができるが、その他の時刻情報でもよい。その後、S34に進む。
【0082】
S34において、S33で取得した現在時刻を、共有メモリ上の、S31で特定した影響音トラックに対応する時刻領域にセットする。この時刻領域の内容は、S33で現在時刻が取得される度に更新されるものである。
【0083】
S35において、S31で取得したデータにノートオフ情報が存在するか否かを判断する。ノートオフ情報が含まれていないと判断した場合は(S35:NO)、影響音の発音停止タイミングではないと判断してS37に進む。ノートオフ情報が含まれていると判断した場合は(S35:YES)、影響音の発音停止タイミングであると判断し、S36に進む。
【0084】
S36において、所定値を共有メモリ上のS31で特定した影響音トラックに対応する時刻領域にセットする。この所定値としては、現在時刻をシステムの起動時からの経過時間で定義している場合は、「0」をセットすることができる。「0」がセットされることにより、図16のS9における時間差は必ず減衰時間よりも大きくなる。また、現在時刻を、時/分/秒で定義している場合は、例えば、本楽曲の演奏開始時刻を所定値としてもよい。
【0085】
S36の処理により、図16のS9において、影響音を発音させるための命令が出力されたタイミングを起点として、該影響音の減衰時間が経過するまでの期間、または、該影響音の発音を止めるための命令が出力されるまでの期間のうち、短い方の期間を、該影響音が発音されている期間と判断することができる。
【0086】
S37において、取得したトラックのデータがボーカルトラックであるか否かを判断する。ボーカルトラックでないと判断した場合は(S37:NO)は、他のトラックを処理の対象とするため、当該トラックに対しては処理を行わずS42に進む。
【0087】
ボーカルトラックであると判断した場合は(S37:YES)は、S38に進む。S38において、取得したデータにノートオン情報が存在するか否かを判断する。ノートオン情報が含まれていないと判断した場合は(S38:NO)、ボーカル発声開始タイミングではないと判断してS40に進む。ノートオン情報が含まれていると判断した場合は(S38:YES)、ボーカル発声開始タイミングであると判断して、S39に進む。
【0088】
S39において、ノートナンバをノートナンバ用共有メモリにセットする。この内容は、採点用プロセスにおいて、採点の基準として用いられる。
【0089】
S40において、取得したトラックデータにノートオフ指示情報が存在するか否かを判断する。ノートオフ情報が含まれていないと判断した場合は(S40:NO)、S42に進む。ノートオフ情報が含まれていると判断した場合は(S40:YES)、S41に進む。
S41において、ノートナンバ用共有メモリをクリアする。これにより、ボーカル発声期間のみ、ノートナンバ用共有メモリに情報が記憶されることになる。
【0090】
S42において、MIDIデータを音源に送出する。これにより、楽音データに基いて演奏が制御されることになる。
【0091】
上記処理においては、影響音トラック及びボーカルトラックに対する処理の後にMIDIデータを音源に送出するよう構成したが、先にMIDIデータを音源に送出し、その後ドラムトラック及びボーカルトラックに対する処理を行うよう構成してもよい。
【0092】
なお、採点用プロセス及び演奏用プロセスとして説明した上記フローチャートは単なる一例であり、上記処理と同等の結果を得ることできる処理であれば、他のフローチャートによって処理を実現してもよい。
【0093】
次に、上述した採点用プロセス及び演奏用プロセス実行時における、音高ピッチ情報が取得される様子を、図18を用いて説明する。
図18は、ドラムトラックのノートオン、ノートオフのタイミング、システム起動からの時間、取得したピッチ情報の関係を示す。なお、横軸は時間軸である。
【0094】
図18においては、ドラム音の発音開始から、20msを減衰時間として設定しているが、この時間間隔は適宜設定可能である。システム時間80010(単位であるmsは省略する。以下同じ。)の時点でドラム音がノートオンされたので、80010から80030までに取得された音高ピッチ情報は破棄される。そのため、ピッチ情報1は、取得ピッチ保持エリアに記憶されることなく破棄される。
【0095】
また、ピッチ情報2、3は、80030以降に取得され、また、次のドラム音の発音開始前であるので、取得ピッチ保持エリアに書き込まれることになる。以下同様にして、ピッチ情報4、8は破棄され、ピッチ情報5〜7、9〜11は取得ピッチ保持エリアに書き込まれる。なお、図18においては、ドラムトラックのノートオフ指示情報は利用していない。取得ピッチ保持エリアに所定時間分のピッチ情報が蓄積されると、ピッチ周波数が算出されることになる。
【0096】
上述したとおり、本実施形態においては、演奏開始後、影響音の音源が演奏されていない期間で取得した音高ピッチ情報に基いて男声/女声を判断し、判断した性別に応じたフィルタを設定し、設定されたフィルタを用いて入力音声をフィルタ処理し、フィルタ処理された音声を採点対象とするので、精度の高い採点を行うことができる。また、楽器音ごとの減衰時間及び楽器音の発音を止めるための命令を用いて、所定の楽器音が発音されていない期間を決定するので、楽器音の種類(減衰する楽器、減衰しない楽器)によらず上記発音されていない期間を適切に決定することができる。さらに、楽曲の演奏開始が所定時間内に所定量の音高ピッチ情報が取得できなかった場合は、その旨が演奏の早い段階で報知することができる。
【0097】
なお、上記処理においては、共有メモリを利用してメモリ内のボーカルトラックの情報を随時変更していたが、共有メモリを用いることなく処理することもできる。すなわち、採点用プロセスにおいて、直接楽曲データに含まれるボーカルトラックのノートナンバをアクセスするよう構成してもよい。
【0098】
上記実施形態においては、影響音トラックを予め指定し、影響音トラックであればノートナンバに関係なく採点に悪影響及ぼすものとして処理を行っていたが、影響音トラックを予め設定することなく処理することもできる。具体的には、取得したトラックのデータにノートオン情報が含まれ、かつ、ノートナンバが所定値以下である場合に、その発音は採点に悪影響を及ぼすものと判断し、その発音中は採点しないように処理することができる。この場合、所定値のノートナンバは適宜設定可能であり、採点に悪影響を及ぼすと考えられる周波数に基いて決定することができる。
【0099】
また、楽曲データがMIDIデータの場合、プログラム・チェンジコマンドを利用することにより、任意の楽器音のトラックが、演奏途中に影響音の楽器音のトラックとして指定されることがある。
図19に、楽曲データの別の形態を示す。図19の例においては、プログラム・チェンジコマンドに減衰時間が付され、トラック16のプログラム・チェンジコマンドの実行後においては、トラック16は影響音のトラックとして機能する。また、トラック16における楽器音の減衰時間は、プログラム・チェンジコマンドに付された減衰時間となる。なお、コントラバストラック→ピアノトラックのように、影響音トラックから別の影響音トラックに変更することも可能である。
【0100】
上述した実施形態に示した構成を採れば、楽曲データ作成時に、楽曲データ作成者側で、予め楽曲ごとに音高ピッチ情報取得に悪影響を及ぼす影響音を特定することができるので、前記楽曲データを用いたカラオケ用採点装置は、歌唱者に何らの負担を課すことなく、楽曲演奏中の楽器音種類と時間的流れとに応じて、男声/女声を正確に、かつ、容易に判別できるようになり、男声女声別に適正なフィルタ処理を行えるので、楽曲ごとに精度の高い採点ができる。
【0101】
また、カラオケ装置において予め影響音として決定しておくこともできる。この場合は、既存の楽曲データを何ら加工することなく、本発明を実現できる。この構成では、楽曲によっては、音高ピッチ情報が正しく取得できないことも想定されるが、上述した採点用プロセスにおいては、楽曲の演奏開始後所定時間内に所定時間分の音高ピッチ情報が取得できなかった旨を報知するので、利用者は、演奏中に採点が正しく行われなかったことを把握することができる。
【0102】
上記実施形態においては、男声/女声の判断を行い、フィルタが決定されるまでにマイク17に入力された音声は採点処理の対象としなかったが、この期間の音声信号をバッファ等に蓄えておき、フィルタ決定後にこれら入力音声をフィルタ処理して採点結果に反映させることもできる。
【0103】
図20は、バッファに上記期間の入力音声を記憶しておき、フィルタ決定後に用いる処理(以下、「一時記憶用プロセス」という。)のフローチャートを示すものである。
【0104】
一時記憶用プロセスは、採点用プロセス及び演奏用プロセスと並列して処理される。一時記憶用プロセスは、楽曲の開始がスタートすると実行開始される。
【0105】
S51において、楽曲の演奏が終了したか否かを判断する。楽曲の演奏が終了したと判断した場合は(S51:YES)、一時記憶用プロセスを終了する。楽曲の演奏が終了していないと判断した場合は(S51:NO)、S52に進む。
【0106】
S52において、採点用プロセスにおいてフィルタが設定されたか否かを判断する。フィルタが設定されたと判断した場合は(S54:YES)、S54に進む。フィルタが設定されていないと判断した場合は(S54:NO)、S53に進む。
【0107】
S53において、マイク17に入力された音声信号を、バッファに書き込む。S51〜S53の処理を繰り返すことにより、採点用プロセスにおいてフィルタが設定されるまでの入力音声は、バッファに書き込まれることになる。
【0108】
S54において、バッファに記憶した入力音声信号を順次読み出す。その後、S55に進む。
S55において、読み出した入力音声信号に対し採点用プロセスにおいて設定されたフィルタを利用してフィルタ処理を行う。その後、S56に進む。
【0109】
S56において、フィルタ処理された音声信号に対し、採点処理を行う。この採点処理自体は、採点用プロセスで行われるものと同じであるので説明を省略する。
なお、S54〜S56の処理は、互いに並列に行ってもよい。すなわち、バッファから読み出した音声をフィルタ処理している最中に、次の入力音声をバッファから読み出してもよい。
【0110】
S57において、本プロセスで算出した採点値を、採点用プロセスにおける採点結果に反映させる。なお、反映させるタイミングは適宜設定可能である。
【0111】
上述した本実施形態においては、フィルタが設定されるまでにマイク17に入力された音声についても採点結果に反映されることができる。なお、上記フローチャートは単なる一例であり、上記処理と同等の結果を得ることできる処理であれば、他のフローチャートによって処理を実現してもよい。
【0112】
[減衰時間を4バイトで表現する技術的意義]
上述した実施形態においては、影響音の種類によって減衰時間が異なるため、減衰時間を定義するためのデータ領域が必要である。ここで、それぞれの減衰時間の示すデータは、ミスアラインメント(ミスアライメント)を防ぐため、3バイト、5バイト、7バイトではなく、2バイト、4バイト、8バイトのいずれかにすることが望ましい。この点、例えば、特開2006−18536号公報、特開平08−030505号公報、特開平09−044397号公報にも記載されている。
【0113】
また、減衰時間の解像度については、減衰時間より充分に小さい時間分解能が必要であるから、減衰時間が1〜2秒であれば、秒単位でなく、少なくともミリ秒単位で管理することが望ましい。したがって、楽曲データの時間情報も少なくともミリ秒単位で管理すればよい。この点は、MIDIデータにおいて、TMP(テンポ値)=125、TimeBase=48である場合に、1tick=10ミリ秒、すなわち、分解能がミリ秒オーダーとなることからも明らかである。
【0114】
以下に、1tick=10となる根拠を示す。
TMP=125(bpm:Beat Per Minute)であれば、1分間(60000(mS))に4分音符の発生頻度は60000/125=480(mS)に1回となるので、4分音符1周期の時間は、=480(mS)となる。
また、タイムベース値=48であるとき、1つの4分音符は48クロックで構成されることとなる。
つまり、 TMP=125、TimeBase=48である場合、1周期480(mS)の四分音符が、48クロックで構成される。
ここで、1つの4分音符の解像度の単位をtick とするならば、1つの4分音符(480(mS))は48個のtickから構成される。そして、4分音符1周期の時間を、tick1周期への時間に置き換えると、tick1周期の時間は 480/48=10(mS)となる。
【0115】
ここで、4バイト(FFFFFFFFh)で扱うことができる最大数は、4294967295である。したがって、ミリ秒を分解能とした場合、4バイトのデータで扱うことができる最大値は、4294967295ミリ秒であるから、最大71583分まで扱うことができる。また、更に高精度に管理するためにマイクロ秒を分解能とした場合では、71.6分まで扱うことができる。通常、カラオケ演奏に用いる楽曲の演奏時間は3〜6分であるから、減衰時間を定義するためのデータ領域は4バイトであれば、ミリ秒、マイクロ秒いずれの分解能にも対応できる。
【0116】
ところが、前記データ領域が2バイトであると、ミリ秒を分解能とした場合、2バイトのデータで扱うことができる最大値は、1.09分となり、1楽曲の演奏時間には足りない。また、8バイトであると、マイクロ秒を分解能とした場合、8バイトのデータで扱うことができる最大値は、307445734562分であるので、楽曲の演奏時間に比べて余りにも長く、楽曲を管理する上では不必要に長い時間長であり、メモリ(データ領域)が無駄になる。
【0117】
したがって、通常の楽曲が3〜6分であるカラオケ用途においては、減衰時間のデータを4バイトで扱うことが、データ容量及びミスアラインメントを考慮した場合に最も適しているものと考えられる。
【0118】
[減衰時間の具体例]
減衰時間の例について示す。図21は、ピアノ音の減衰の様子を示した図である。採点に影響を及ぼさない音量の閾値を、「発音直後の音量(0dB)から−12dB減衰したとき」とした場合、図21においては、発音後約1.3秒で閾値以下の音量となっている。したがって、ピアノ音の減衰時間として、1.3秒とすることができる。なお、図21に示した減衰の様子は単なる一例であり、また、上記閾値も適宜設定可能である。また、ピアノ音に対するノートオフ信号が、ピアノ音の発音開始後1.3秒よりも早いタイミングで発生した場合(例えば、ピアノ音の発音持続時間が1秒)は、発音開始からその時点までが「採点に影響を及ぼす期間」となる。すなわち、ピアノ音については、減衰時間とノートオフ信号とを用いて「採点に影響を及ぼす期間」が決定されることになる。
【0119】
図22は、エレキベース音の減衰の様子を示した図である。採点に影響を及ぼさない音量の閾値を、「発音直後の音量(0dB)から−12dB減衰したとき」とした場合、図22においては、発音後0.4秒で閾値以下の音量となっている。したがって、エレキベース音の減衰時間として、0.4秒とすることができる。なお、図22に示した減衰の様子は単なる一例であり、また、上記閾値も適宜設定可能である。エレキベース音についても、ピアノ音と同様に、減衰時間とノートオフ信号とを用いて「採点に影響を及ぼす期間」が決定される。
【0120】
図23は、コントラバス音の減衰の様子を示した図である。この図が示すとおり、コントラバス音は減衰しないことがわかる。したがって、減衰時間を設定することはできない。そのため、コントラバス音については、減衰時間は用いずノートオフ信号を用いて「採点に影響を及ぼす期間」が決定されることになる。
【0121】
本発明は上述した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の改良、変形が可能であることは勿論である。また、上述した処理を実行するためのカラオケ装置における採点方法としても本発明は実現可能である。さらに、当該カラオケ装置における採点方法をコンピュータで実行させるためのプログラム、及び、そのプログラムが記録された記録媒体としても本発明は実現可能である。
【図面の簡単な説明】
【0122】
【図1】ドラム音の周波数分布の一例を示した図である。
【図2】ドラム音の周波数分布の一例を示した図である。
【図3】ドラム音の周波数分布の一例を示した図である。
【図4】女声の周波数分布の一例を示した図である。
【図5】女声の周波数分布の一例を示した図である。
【図6】女声の周波数分布の一例を示した図である。
【図7】男声の周波数分布の一例を示した図である。
【図8】男声の周波数分布の一例を示した図である。
【図9】ピアノ音の周波数分布の一例を示した図である。
【図10】エレキベース音の周波数分布の一例を示した図である。
【図11】チューバ音の周波数分布の一例を示した図である。
【図12】コントラバス音の周波数分布の一例を示した図である。
【図13】制御装置の内部構成及びその周辺要素を示した図である。
【図14】楽曲データの構成の一例を示した図である。
【図15】共有メモリの内部構造を示した図である。
【図16】採点用プロセスのフローチャートである。
【図17】演奏用プロセスのフローチャートである。
【図18】ドラム音の発音タイミング、システム起動からの時間、取得された音高ピッチ情報を示したタイミング図である。
【図19】楽曲データの構成の一例を示した図である。
【図20】一時記憶用プロセスのフローチャートである。
【図21】ピアノ音の減衰の様子の一例を示した図である。
【図22】エレキベース音の減衰の様子の一例を示した図である。
【図23】コントラバス音の減衰の様子の一例を示した図である。
【符号の説明】
【0123】
10 制御装置
11 コントローラ
12 記憶装置
13 操作パネル
13a リモコン
14 RAM
15 通信I/F
16 採点回路
17 マイク
18 音源
19 アンプ
20 スピーカ
21 映像制御回路
22 モニタ
【技術分野】
【0001】
本発明は、精度の高い採点が可能な採点機能を有するカラオケ装置に関する。
【背景技術】
【0002】
従来、採点機能を有するカラオケ装置が広く知られている。マイクなどから入力されたカラオケ演奏中の歌唱者の音声を分析し、分析によって得られた特徴量を所定の手法で評価し、数値化して、その数値を採点結果として歌唱者に報知するものである。また、採点処理に用いられる特徴量としては、歌唱音声の音高を抽出した音高ピッチの周波数を特徴量とする情報(音高ピッチ情報)が一般的である。下記特許文献1においては、デュエット曲に対し、男女のパート毎に採点するものが開示されている。また、下記特許文献2においては、男女音声の周波数特性の違いを利用して入力音声の性別を判別するものが開示されている。
【特許文献1】特開平11−282478号公報
【特許文献2】特開2001−56699号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、カラオケ演奏中の入力歌唱音声を分析(採点)する場合、高精度の採点結果を得るためには、入力歌唱音声以外の音響信号を除去することが望ましい。しかしながら、歌唱者のマイクには、歌唱者の歌唱音声のみならず、楽音再生装置から出力されるカラオケ演奏中の楽曲音も一部入力されることになる。
【0004】
そのため、従来、周波数帯域フィルタなどを利用したフィルタ処理によって上記楽曲音を除去する試みが行われているが、この場合、歌唱者の入力歌唱音声は除去せずに、楽曲音のみを除去するためのフィルタ処理を施すには、入力歌唱音声には影響を及ぼさないようなフィルタ処理を行うよう留意する必要がある。
【0005】
このとき、男声と女声とでは歌唱音声の周波数帯域が異なる(一般的に、男声を発する男性の音声は、女声を発する女性の音声よりも低い周波数帯域である。)ため、男声と女声に対して同じフィルタ処理を施すことは、高精度の分析結果を得る観点からは好ましくない。
【0006】
この点について、ドラム音、女性、男声それぞれの周波数分布について図を用いて説明する。以下に説明する図においては、横軸は対数周波数であり、縦軸はデシベルである。図1〜図3は、ドラム音の周波数分布の例を示すものである。ドラム音は、ドン、ドンという打音である。図1では、70Hz付近に第1のピークがある。図2では、60Hz付近に第1のピークがある。図3では、80Hz付近にピークがある。これらの図によれば、一般的に、ドラム音は、100Hz以下の帯域に、第1のピークが存在することがわかる。
【0007】
図4〜図6は、女声の周波数分布の例を示すものである。図4では、300Hz付近に第1のピークがある。図5では、400Hz付近に第1のピークがある。図6では、500Hz付近に第1のピークがある。
【0008】
図7、図8は、男声の周波数分布の例を示すものである。図7では、80Hz付近に第1のピークがある。図8では、100〜200Hzの間に第1のピークがある。
【0009】
これらの図によれば、女声の周波数帯域と男声の周波数帯域とで大きな差があることがわかる。また、低い声の男声の第1のピークは、ドラム音の第1のピークに近いことがわかる。
【0010】
また、これらの図が示すとおり、男声に合わせてフィルタ(例えば、ローカットフィルタ)を設定し、そのフィルタをそのまま用いて女声に対しフィルタ処理した場合、ドラム音の帯域が除去できないため、女声の音高ピッチ情報の取得に悪影響を及ぼすことになる。また、女声に合わせてフィルタを設定し、そのフィルタをそのまま男声に対しをフィルタ処理した場合、男声自体にもフィルタ処理が施されてしまい、男声の音高ピッチ情報の取得に悪影響を及ぼす。
【0011】
さらに、ドラム音以外の楽器音であっても、発音帯域が男声または女声の帯域と近い楽器音は、音高ピッチ情報の取得に悪影響を及ぼすため、この楽器音の発音時に採点処理を行うと、採点精度が下がる原因となる。したがって、採点に悪影響を及ぼす楽器音を特定し、採点精度に悪影響を及ぼさないタイミングで音高ピッチ情報を取得する必要がある。
【0012】
図9は、ピアノ音(発音コード:A1(基本波の周波数は55Hz付近))のアタック(発音)直後の周波数分布を示すものである。この図が示すとおり、ピアノ音には、50〜60Hzの間に1つのピークが存在し、また、100〜110Hzの間の2ヵ所にピークが存在することがわかる。
【0013】
図10は、エレキベース音(発音コード:A1(基本波の周波数は55Hz付近))のアタック(発音)直後の周波数分布を示すものである。この図が示すとおり、エレキベース音には、50〜60Hzの間に1つのピークが存在し、また、100〜400Hzの間に複数のピークが存在することがわかる。
【0014】
図11は、チューバ音(発音コード:A1(基本波の周波数は55Hz付近))のアタック(発音)直後の周波数分布を示すものである。この図が示すとおり、チューバ音には、50〜60Hzの間に1つのピークが存在し、また、100〜400Hzの間に複数のピークが存在することがわかる。
【0015】
図12は、コントラバス音(発音コード:A1(基本波の周波数は55Hz付近))のアタック(発音)直後の周波数スペクトルを示すものである。この図が示すとおり、コントラバス音には、50〜60Hzの間に1つのピークが存在し、また、100Hz以降、複数のピークが存在することがわかる。
【0016】
ここで、ピアノ音及びエレキベース音は、発音直後から徐々に音量が減衰する楽器音であり、チューバ音及びコントラバス音は減衰しない楽器音である。図9〜12が示すとおり、減衰する楽器音、減衰しない楽器音に関わらず、人の声のピークと類似する帯域にピークが存在しうる。そのため、これらの楽器音が発音している区間を特定する必要がある。
【0017】
また、男声/女声でフィルタを切り替える場合、入力音声が男声であるか女声であるかを判別する必要がある。カラオケ演奏時に歌唱者に性別を選択させることもできるが、このような選択動作は歌唱者に負担を課すことになる。また、男声/女声の判別を装置が自動的に行う場合は、例えばセキュリティシステムに用いられるような精度の高い判別が必要となる。一般的に、精度の高い音声認識技術を、ワンチップCPU等を用いたカラオケ用採点装置で実行した場合は、認識処理に時間がかかるため、娯楽として用いられるカラオケ装置には採用しがたい面がある。
【0018】
そこで、本発明は、上記問題点を解消し、歌唱者に何らの負担を課すことなく、楽曲演奏中に男声/女声を正確に、かつ、容易に判別し、男声女声別に適正なフィルタ処理を行うことによって、精度の高い採点処理ができるカラオケ用採点装置の実現を目的とする。
【課題を解決するための手段】
【0019】
上記目的を達成するため、請求項1に係る発明は、歌唱者音声入力手段、楽曲再生手段、制御手段、記憶手段、採点手段を備えた採点機能を有するカラオケ装置において、上記記憶手段には、楽器音ごとの減衰時間が定義された減衰時間データと、ピッチ周波数と周波数帯域フィルタとが関連付けられた関連データと、歌唱者音程情報、楽器音情報、楽曲演奏進行情報を含んだ楽曲データと、が記憶されており、上記制御手段は、前記楽曲データに基く楽曲の演奏中に、上記楽器音情報、上記楽曲演奏進行情報、上記減衰時間データに基いて、設定された所定の楽器音が発音されていないかどうかを判断し、上記楽器音が発音されていない期間において上記歌唱者音声入力手段に入力された入力音声から歌唱者のピッチ周波数を特定し、特定されたピッチ周波数及び上記関連データに基いて、周波数帯域フィルタを特定し、特定した周波数帯域フィルタによって上記入力音声をフィルタ処理し、上記採点手段は、上記歌唱者音程情報を用いて前記フィルタ処理された後の入力音声を採点することを特徴とする。
【0020】
請求項2に係る発明は、請求項1の採点機能を有するカラオケ装置において、上記楽曲は、MIDIデータを含む楽曲データに基いて演奏され、上記制御手段は、上記所定の楽器音を発音させるための命令が出力されたタイミングを起点として、当該所定の楽器音の減衰時間が経過するまでの期間、または、当該所定の楽器音の発音を止めるための命令が出力されるまでの期間のうち、短い方の期間を、当該所定の楽器音が発音されている期間と判断し、上記楽器音が発音されていない期間から除外することを特徴とする。
【0021】
請求項3に係る発明は、請求項1または2の採点機能を有するカラオケ装置において、上記楽曲は、MIDIデータを含む楽曲データに基いて演奏され、上記制御手段は、所定値より小さいノートナンバを含むノートオン信号を検出し、当該ノートオン信号のチャネルに対応する楽器音を、上記所定の楽器音として設定することを特徴とする。
【0022】
請求項4に係る発明は、請求項1〜3いずれかの採点機能を有するカラオケ装置において、蓄積手段をさらに有し、上記発音されていない期間において取得した上記入力音声の音高ピッチ情報は、上記蓄積手段に記憶され、所定時間分の音高ピッチ情報が蓄積されると平均処理によって上記歌唱者のピッチ周波数を特定することを特徴とする。
【0023】
請求項5に係る発明は、請求項1、2または4いずれかの採点機能を有するカラオケ装置において、上記楽曲データには、上記所定の楽器音を特定可能にする情報が付されており、上記制御手段は、上記情報に基いて上記所定の楽器音を設定することを特徴とする。
【0024】
請求項6に係る発明は、請求項1、2または4いずれかの採点機能を有するカラオケ装置において、上記所定の楽器音が予め定められていることを特徴とする。
【0025】
請求項7に係る発明は、請求項6の採点機能を有するカラオケ装置において、上記制御手段は、上記楽曲の演奏開始後所定の時間内に上記一時メモリに所定時間分のピッチが蓄積されなかった場合に、所定の情報を利用者に報知することを特徴とする。
【0026】
請求項8に係る発明は、請求項1〜7いずれかの採点機能を有するカラオケ装置において、前記楽器音ごとの減衰時間は、4バイトのデータであることを特徴とする。
【発明の効果】
【0027】
請求項1に係る発明によれば、楽器音ごとの減衰時間を用いて所定の楽器音が発音されていない期間において入力された入力音声に基いて歌唱者のピッチ周波数を特定し、その結果に基いてフィルタを設定し、設定したフィルタを用いてフィルタ処理を行った音声に基いて採点を行うので、音高ピッチ情報の抽出に悪影響を及ぼす楽器を所定の楽器音として設定することにより、精度の高い採点処理を実現することができる。
【0028】
請求項2に係る発明によれば、さらに、楽器音ごとの減衰時間及び楽器音の発音を止めるための命令を用いて、所定の楽器音が発音されていない期間を決定するので、楽器音の種類(減衰する楽器、減衰しない楽器)によらず上記発音されていない期間を適切に決定することができる。
【0029】
請求項3に係る発明によれば、さらに、所定値より小さいノートナンバを含むノートオン信号のチャネルに対応する楽器音を採点に悪影響を及ぼす楽器として設定することができるので、採点に悪影響を及ぼす楽器音を適切に決定することができる。
【0030】
請求項4に係る発明によれば、さらに、所定時間分の音高ピッチ情報を利用して、歌唱者のピッチ周波数を特定するので、特定したピッチ周波数の精度を高めることができる。
【0031】
請求項5に係る発明によれば、さらに、上記所定の楽器音を特定可能にする情報が楽曲データに付されているから、楽曲ごとに、音高ピッチ情報の取得に悪影響を及ぼす楽器音を特定することが可能となるため、音高ピッチ情報の取得のための適切な区間を決定することできる。
【0032】
請求項6に係る発明によれば、さらに、上記所定の楽器音が予め定められているから、既存の楽曲データを利用して精度の高い採点処理を行うことができる。
【0033】
請求項7に係る発明によれば、さらに、楽曲の演奏開始後所定の時間内に所定時間分のピッチが蓄積できなかった場合にその旨を報知するので、男声/女声判別が正しく行われたか否かを演奏中の早い段階で歌唱者に報知することができる。
【0034】
請求項8に係る発明によれば、さらに、減衰時間を4バイトで表現するので、ミスアラインメントを防止するとともに、適切なデータ量で減衰時間を表現することができる。
【発明を実施するための最良の形態】
【0035】
本発明に係るカラオケ装置を具体化した実施形態について、図面を参照しつつ詳細に説明する。なお、以下の説明においては、採点に影響のある楽器音を「影響音」ということがあり、また、採点に影響のある楽器音のトラックを「影響音トラック」ということがある。
【0036】
図13は、本実施形態のカラオケ装置における制御装置の内部構成、及び、その周辺機器を示すブロック図である。
【0037】
制御装置10は、通信回線を介してホストコンピュータ(図示せず)に接続されており、通信回線を介して楽曲データを通信I/F15を介して受信する。受信されたカラオケ曲データは、記憶装置12に記憶される。
【0038】
ここで、楽曲データには、楽曲の再生用データに加えて、カラオケ曲のタイトルデータ、カラオケ曲に対応する映像データ等が含まれることもある。
【0039】
コントローラ11は、制御装置10全体の制御を行う。また、種々のプログラムを実行する。
記憶装置12は、楽曲データ等を記憶する。また、記憶装置12は、動的記憶媒体(HDD等)で構成される。また、必要に応じて静的記憶媒体で構成してもよい。
【0040】
操作パネル13は、操作者が選曲番号等の各種情報を入力するために用いられる。また、リモコン13aを介して各種の情報を入力してもよい。
【0041】
RAM14は、種々の制御に必要な情報が記憶される一時記憶メモリである。RAM14は、マルチスレッドプロセスにおいては、共有メモリとして機能する。なお、本発明における共有メモリとしての使用方法については、後述する。
【0042】
通信I/F15は、図示しないホストコンピュータとの通信を、通信回線を介して行う。ここで、通信回線は、有線無線を問わない。
【0043】
採点回路16は、マイク17より入力された音声の採点を行う。また、本実施形態においては、採点の対象となる音声は、後述するフィルタ処理が施されている。なお、図13においては、マイクの数は2つであるが、マイクの数はいくつでもよい。なお、図13においては、コントローラ11と採点回路16を別個の構成として図示しているが、コントローラ11が、フィルタ処理及び採点処理を行ってもよい。また、フィルタ処理を別の回路が行ってもよい。
【0044】
音源18は、アンプ19に接続されている。楽曲データは、音源18を介して音声信号に変換され、アンプ19で増幅された後、スピーカ20によって音声出力される。なお、本実施形態においては、音源18は、MIDI音源である。また、アンプ19は、マイク17より入力された音声についても増幅する。
【0045】
映像制御回路21は、モニタ22に接続されている。記憶装置12または通信回線より取得した映像データと、楽曲データに含まれた歌詞情報とを、映像制御回路21を介して楽曲のカラオケ再生時の背景映像と歌詞として、モニタ22に表示する。また、映像データが、符号化されている場合は、復号処理を映像制御回路21で行ってもよい。
【0046】
なお、上述した内部構成は、本発明の説明に必要なものを主に記載したものであり、上述した構成以外にも、種々の回路や要素が含まれることはもちろんである。
【0047】
なお、本実施形態におけるカラオケ装置の外観は、本発明において何ら限定されるものではない。また、本実施形態においては、上述したカラオケ装置の内部構成として示した一部の要素を、外部に備えてよい。一部の構成要素の機能を、ネットワークに接続されたサーバで実現することも可能である。
【0048】
本実施形態で用いる楽曲データは、楽器音情報、楽曲演奏進行情報、歌唱者音程情報等を有するものである。代表的なものとしてMIDIデータを挙げることができるが、本実施形態は、MIDIデータに限定されるものではなく、本実施形態を実施可能な限度においてその他のデータであってもよい。また、MIDIデータにおいては、チャネル番号によって楽器音が指定され、楽器音の発音のオン/オフは、例えば、ノートオン/ノートオフ信号で制御される。また、歌唱者音程情報は、ボーカルトラックのノートナンバを用いることができる。
【0049】
図14は、本実施形態における楽曲データの一例を示すものである。図14に示すとおり、MIDIデータのトラックヘッダに、減衰時間を定義するためのデータエリアが設けられている。減衰時間の詳細については後述する。また、減衰しない楽器音(オルガン等)のトラックについては、減衰しないことを示す所定値(例えば、4バイトデータであれば、FFFFFFFFh)を上記データエリアに設定することができる。また、減衰する楽器であるか否かを示すためのデータエリアをトラックヘッダに別途に設けてもよい。
【0050】
図15は、共有メモリの内部構成を示す図である。図15が示すとおり、共有メモリには、影響音トラックにおけるノートオン信号が出力された時刻を記憶するための領域(時刻領域)と、ボーカルトラックのノートナンバを記憶するための領域とからなる。図15においては、影響音トラックとして2つのトラックが設定された場合の共有メモリの内容を示している。また、本実施形態においては、設定される影響音トラックの数は任意に設定可能であるから、共有メモリに設定される時刻領域の数も任意に設定可能である。
【0051】
次に、本実施形態におけるカラオケ装置の処理の流れについて図を参照しつつ説明する。図16は、本実施形態におけるカラオケ装置の採点用プロセスのフローチャートであり、図17は、本実施形態におけるカラオケ装置の演奏用プロセスのフローチャートである。ここで、採点用プロセスと演奏用プロセスとは、マルチスレッドとして処理される。すなわち、上記両プロセスは、並列で処理される。マルチスレッド処理については公知であるので説明を省略する。
【0052】
上記両プロセスは、実行中に共有メモリにアクセスすることによって、両プロセス間で情報のやり取りが可能となっている。
【0053】
[採点用プロセス]
まず、採点用プロセスについて図16を参照にしつつ説明する。楽曲の再生がスタートすると、採点用プロセスは実行開始される。
S1において、取得ピッチ保持エリアを初期化する。取得ピッチ保持エリアは、RAM14内に形成される。
【0054】
S2において、ローカットフィルタをオフにする。なお、本実施形態においては、フィルタとしてローカットフィルタを用いる例を説明するが、バンドパスフィルタ等を用いても本実施形態は実現可能であることはもちろんである。また、フィルタをデジタルフィルタで構成してもよいし、アナログフィルタで構成してもよい。
【0055】
S3において、取得ピッチ保持エリア内に音高ピッチ情報がFULLになったか否かを判断する。取得ピッチ保持エリアに記憶する音高ピッチ情報の量は適宜設定可能であり、入力音声のピッチ周波数を正確に算出できる量とする。音高情報ピッチ情報がFULLになっていないと判断した場合は(S3:NO)、S4に進む。
【0056】
S4において、楽曲の演奏が終了したか否かを判別する。演奏が終了したと判断した場合(S4:YES)は、S11に進む。演奏が終了していないと判断した場合(S4:NO)は、S5に進む。
【0057】
S5において、演奏開始から一定時間が経過したか否かを判断する。一定時間が経過したと判断した場合は(S5:YES)、S11に進む。この一定時間は、適宜設定可能である。一定時間が経過したとの判断は、音高ピッチ情報が所定時間内に所定量取得できなかったと判断したことを意味する。
【0058】
S11において、楽曲の演奏を終了し、採点ができなかった旨をモニタ22に表示する。また、S5及びS11における処理は、必要に応じ省略してもよい。
【0059】
S5において、演奏開始から一定時間が経過していない場合は(S5:NO)は、S6に進む。
S6において、音高ピッチ情報が取得できたか否かを判断する。音高ピッチ情報が取得できないと判断した場合は(S6:NO)、S3に戻る。音高ピッチ情報が取得できたと判断した場合は(S6:YES)、S7に進む。なお、音高ピッチ情報の取得の手法については、公知の種々の技術を採用することができる。
【0060】
S7において、S6で取得した音高ピッチ情報の取得タイミングにおける入力音量が所定以上であるか否かを判断する。入力音量が所定以上でない場合は(S7:NO)、当該タイミングにおいてマイク17により音声が入力されていなかったと判断してS3に戻る。入力音量が所定以上である場合は(S7:YES)、S8に進む。
【0061】
S8において、現在時刻を取得する。この現在時刻は、S6で取得した音高ピッチ情報を取得した時刻を表すものである。その後、S9に進む。
【0062】
S9において、いずれかの影響音トラックが発音中か否かが判断される。S9の処理について具体的に説明する。まず、S8で取得した時刻と、共有メモリに記憶されている時刻との時間差を算出する。このとき、共有メモリに複数の時刻が記憶されている(すなわち、影響音トラックが複数存在する)場合は、それぞれの時刻との時間差が算出される。その後、上記時間差(複数存在する場合は、それぞれの時間差)が、対応する影響音の減衰時間以上であるか否かが判断される。
【0063】
この点について、ドラムトラックとピアノトラックとが影響音トラックである場合を例にして説明する。共有メモリには、ドラムトラック用の時刻領域と、ピアノトラック用の時刻領域が確保されることになる。S8で取得した時刻をTc、ドラムトラック用の時刻領域に記憶されている時刻をNd、ピアノトラック用の時刻領域に記憶されている時刻をNp、ドラム音源のデータトラックに記載されている減衰時間をAd、ピアノ音源のデータトラックに記載されている減衰時間をApとすれば、ドラムトラックにおける時間差Dd、ピアノトラックにおける時間差Dpは、それぞれ、
Dd=Tc−Nd
Dp=Tc−Np
として算出される。
そして、Dd>Ad、かつ、Dp>Apの場合に限って、いずれの影響音トラックも発音中ではない、すなわち、S9において「No」と判断される。
【0064】
いずれかの影響音トラックが発音中であると判断した場合は(S9:YES)、S3に戻る。いずれの影響音トラックも発音中ではないと判断した場合は(S9:NO)、S10に進む。ここで、時刻領域に記憶されている時刻は、後述する演奏用プロセスにおいて書き込まれた影響音トラックのノートオン信号が出力された時刻、もしくは、所定値(ゼロ値)である。この点については、演奏用プロセスの説明中において詳細に説明する。
【0065】
なお、S9における「発音中ではない」かどうかの判断は、採点に影響を及ぼす音量での発音がなされていないという基準で行われる。すなわち、たとえ影響音が発音されていても、その音量が採点に影響を及ぼさない大きさであれば、「発音中ではない」と判断される。
【0066】
S10において、S6で取得した音高ピッチ情報を取得ピッチ保持エリアに書き込む。そして、S3に戻る。
【0067】
一方、S3において、取得ピッチ保持エリアがFULLになっていると判断した場合は(S3:YES)は、S12に進む。
S12において、取得ピッチ保持エリア内の全データの平均値を算出し、平均ピッチ情報を入力音声のピッチ周波数として取得する。その後、S13に進む。
【0068】
S13において、算出したピッチ周波数が、所定ピッチ以下であるか否かを判別する。ピッチ周波数が所定ピッチ以下である場合(S13:YES)は、マイク17に入力された音声は男声であると判断して、S14に進む。
S14において、ローカットフィルタを男声用に設定する。
【0069】
ピッチ周波数が所定ピッチ量以下ではない場合(S13:NO)は、マイク17に入力された音声は女声であると判断して、S15に進む。
S15において、ローカットフィルタを女声用に設定する。
【0070】
なお、S13〜S15の処理においては、マイク17に入力された音声のピッチ情報を2つのピッチ周波数(男声・女声)に分類し、それぞれのピッチ周波数に対してフィルタを設定したが、ピッチ周波数を3つ以上に分類して、それぞれの周波数に対しフィルタを設定してもよい。また、周波数と設定されるフィルタとの関係は、予めデータテーブルとして有してもよいし、プログラム上で処理(すなわち、IF/THEN処理)してもよい。また、男声と判断した場合は、フィルタ処理をしないように構成してもよい。
【0071】
S16において、採点値を初期化する。なお、本実施形態においては、減点法によって処理を行うため、初期値として例えば1000点を設定できるが、加点法や、その他周知の採点値設定法を適宜適用可能であることはいうまでもない。なお、その場合は、初期値は1000点ではなく異なる値となることはいうまでもない。また、減点法以外の採点手法を採用する場合は、以下に説明するS22の処理が異なる点はいうまでもない。
【0072】
S17において、楽曲の演奏が終了したか否かを判断する。楽曲の演奏が終了したと場合は(S17:YES)、S18に進み、採点結果をモニタ22に表示する。なお、楽曲の演奏中においても、適宜採点結果(途中結果)を表示するよう構成してもよい。楽曲の演奏が終了していない場合は(S17:NO)、S19に進む。
【0073】
S19において、音高ピッチ情報を取得できたか否かを判断する。音高ピッチ情報が取得できなかった場合は(S19:NO)、S17に戻る。音高ピッチ情報が取得できたと判断した場合は(S19:YES)、S20に進む。
【0074】
S20において、S19で取得した音高ピッチ情報の取得タイミングにおける入力音量が所定以上であるか否かを判断する。入力音量が所定以上でない場合は(S20:NO)、当該タイミングにおいてマイク17により音声が入力されていなかったと判断してS17に戻る。入力音量が所定以上である場合は(S20:YES)、S21に進む。
【0075】
S21において、S19で取得した音高ピッチ情報と、共有メモリに記憶されているMIDIデータにおけるボーカルトラックのノートナンバとの差分を算出する。本実施形態においては、MIDIデータにおけるボーカルトラックのノートナンバを採点の基準としている。また、MIDIデータにおけるボーカルトラックは、歌唱時において、ガイドメロディとしても利用される。共有メモリへの書き込みについては、演奏用プロセスにおいて詳細に説明する。その後、S22に進む。
【0076】
S22において、現在の採点値からS21で求めた差分の絶対値を減算する。ここで、マイクから入力された音高ピッチ情報が共有メモリに記憶されているノートナンバが示すピッチ情報と同じであれば、マイク17から入力された音声信号の音高ピッチ情報は正しいものなので、減算されないことになる。
【0077】
なお、S21及びS22における採点手法においては、歌唱音声がガイドメロディに対して時間方向にずれている場合にも採点値に影響を及ぼす。そこで、所定時間分のガイドメロディ(ボーカルトラック)のノートナンバー(ピッチ情報)を共有メモリに記憶しておき、入力音声における音高ピッチ情報とDPマッチング等を利用して採点処理を行うことにより、時間方向のずれが採点値に影響を及ぼすことを低減できる。
【0078】
[演奏用プロセス]
次に、演奏用プロセスについて図17を参照しつつ説明する。楽曲の再生がスタートすると、演奏用プロセスは実行開始される。演奏用プロセスでは、楽曲データであるMIDIデータが有する複数のトラックのうち、影響音トラック及びボーカルトラックが処理対象となる。また、どのトラックが影響音トラックであるか否かは、予め設定されているものとする。
【0079】
まず、S31において、トラックデータを取得する。そして、取得したトラックデータが影響音トラックであるか否かを判断する。影響音トラックでないと判断した場合は(S31:NO)、他のトラックを処理の対象とするため、当該トラックに対しては処理を行なわず、S37に進む。
【0080】
影響音トラックであると判断した場合は(S31:YES)、S32に進む。
S32において、S31で取得したデータにノートオン情報が存在するか否かを判断する。ノートオン情報が含まれていないと判断した場合は(S32:NO)、影響音の発音開始タイミングではないと判断してS35に進む。
ノートオン情報が含まれていると判断した場合は(S32:YES)、影響音の発音開始タイミングであると判断し、S33に進む。
【0081】
S33において、現在時刻を取得する。この現在時刻は、影響音の発音開始時刻を意味するものである。なお、この現在時刻としては、システム起動からの時間を利用することができるが、その他の時刻情報でもよい。その後、S34に進む。
【0082】
S34において、S33で取得した現在時刻を、共有メモリ上の、S31で特定した影響音トラックに対応する時刻領域にセットする。この時刻領域の内容は、S33で現在時刻が取得される度に更新されるものである。
【0083】
S35において、S31で取得したデータにノートオフ情報が存在するか否かを判断する。ノートオフ情報が含まれていないと判断した場合は(S35:NO)、影響音の発音停止タイミングではないと判断してS37に進む。ノートオフ情報が含まれていると判断した場合は(S35:YES)、影響音の発音停止タイミングであると判断し、S36に進む。
【0084】
S36において、所定値を共有メモリ上のS31で特定した影響音トラックに対応する時刻領域にセットする。この所定値としては、現在時刻をシステムの起動時からの経過時間で定義している場合は、「0」をセットすることができる。「0」がセットされることにより、図16のS9における時間差は必ず減衰時間よりも大きくなる。また、現在時刻を、時/分/秒で定義している場合は、例えば、本楽曲の演奏開始時刻を所定値としてもよい。
【0085】
S36の処理により、図16のS9において、影響音を発音させるための命令が出力されたタイミングを起点として、該影響音の減衰時間が経過するまでの期間、または、該影響音の発音を止めるための命令が出力されるまでの期間のうち、短い方の期間を、該影響音が発音されている期間と判断することができる。
【0086】
S37において、取得したトラックのデータがボーカルトラックであるか否かを判断する。ボーカルトラックでないと判断した場合は(S37:NO)は、他のトラックを処理の対象とするため、当該トラックに対しては処理を行わずS42に進む。
【0087】
ボーカルトラックであると判断した場合は(S37:YES)は、S38に進む。S38において、取得したデータにノートオン情報が存在するか否かを判断する。ノートオン情報が含まれていないと判断した場合は(S38:NO)、ボーカル発声開始タイミングではないと判断してS40に進む。ノートオン情報が含まれていると判断した場合は(S38:YES)、ボーカル発声開始タイミングであると判断して、S39に進む。
【0088】
S39において、ノートナンバをノートナンバ用共有メモリにセットする。この内容は、採点用プロセスにおいて、採点の基準として用いられる。
【0089】
S40において、取得したトラックデータにノートオフ指示情報が存在するか否かを判断する。ノートオフ情報が含まれていないと判断した場合は(S40:NO)、S42に進む。ノートオフ情報が含まれていると判断した場合は(S40:YES)、S41に進む。
S41において、ノートナンバ用共有メモリをクリアする。これにより、ボーカル発声期間のみ、ノートナンバ用共有メモリに情報が記憶されることになる。
【0090】
S42において、MIDIデータを音源に送出する。これにより、楽音データに基いて演奏が制御されることになる。
【0091】
上記処理においては、影響音トラック及びボーカルトラックに対する処理の後にMIDIデータを音源に送出するよう構成したが、先にMIDIデータを音源に送出し、その後ドラムトラック及びボーカルトラックに対する処理を行うよう構成してもよい。
【0092】
なお、採点用プロセス及び演奏用プロセスとして説明した上記フローチャートは単なる一例であり、上記処理と同等の結果を得ることできる処理であれば、他のフローチャートによって処理を実現してもよい。
【0093】
次に、上述した採点用プロセス及び演奏用プロセス実行時における、音高ピッチ情報が取得される様子を、図18を用いて説明する。
図18は、ドラムトラックのノートオン、ノートオフのタイミング、システム起動からの時間、取得したピッチ情報の関係を示す。なお、横軸は時間軸である。
【0094】
図18においては、ドラム音の発音開始から、20msを減衰時間として設定しているが、この時間間隔は適宜設定可能である。システム時間80010(単位であるmsは省略する。以下同じ。)の時点でドラム音がノートオンされたので、80010から80030までに取得された音高ピッチ情報は破棄される。そのため、ピッチ情報1は、取得ピッチ保持エリアに記憶されることなく破棄される。
【0095】
また、ピッチ情報2、3は、80030以降に取得され、また、次のドラム音の発音開始前であるので、取得ピッチ保持エリアに書き込まれることになる。以下同様にして、ピッチ情報4、8は破棄され、ピッチ情報5〜7、9〜11は取得ピッチ保持エリアに書き込まれる。なお、図18においては、ドラムトラックのノートオフ指示情報は利用していない。取得ピッチ保持エリアに所定時間分のピッチ情報が蓄積されると、ピッチ周波数が算出されることになる。
【0096】
上述したとおり、本実施形態においては、演奏開始後、影響音の音源が演奏されていない期間で取得した音高ピッチ情報に基いて男声/女声を判断し、判断した性別に応じたフィルタを設定し、設定されたフィルタを用いて入力音声をフィルタ処理し、フィルタ処理された音声を採点対象とするので、精度の高い採点を行うことができる。また、楽器音ごとの減衰時間及び楽器音の発音を止めるための命令を用いて、所定の楽器音が発音されていない期間を決定するので、楽器音の種類(減衰する楽器、減衰しない楽器)によらず上記発音されていない期間を適切に決定することができる。さらに、楽曲の演奏開始が所定時間内に所定量の音高ピッチ情報が取得できなかった場合は、その旨が演奏の早い段階で報知することができる。
【0097】
なお、上記処理においては、共有メモリを利用してメモリ内のボーカルトラックの情報を随時変更していたが、共有メモリを用いることなく処理することもできる。すなわち、採点用プロセスにおいて、直接楽曲データに含まれるボーカルトラックのノートナンバをアクセスするよう構成してもよい。
【0098】
上記実施形態においては、影響音トラックを予め指定し、影響音トラックであればノートナンバに関係なく採点に悪影響及ぼすものとして処理を行っていたが、影響音トラックを予め設定することなく処理することもできる。具体的には、取得したトラックのデータにノートオン情報が含まれ、かつ、ノートナンバが所定値以下である場合に、その発音は採点に悪影響を及ぼすものと判断し、その発音中は採点しないように処理することができる。この場合、所定値のノートナンバは適宜設定可能であり、採点に悪影響を及ぼすと考えられる周波数に基いて決定することができる。
【0099】
また、楽曲データがMIDIデータの場合、プログラム・チェンジコマンドを利用することにより、任意の楽器音のトラックが、演奏途中に影響音の楽器音のトラックとして指定されることがある。
図19に、楽曲データの別の形態を示す。図19の例においては、プログラム・チェンジコマンドに減衰時間が付され、トラック16のプログラム・チェンジコマンドの実行後においては、トラック16は影響音のトラックとして機能する。また、トラック16における楽器音の減衰時間は、プログラム・チェンジコマンドに付された減衰時間となる。なお、コントラバストラック→ピアノトラックのように、影響音トラックから別の影響音トラックに変更することも可能である。
【0100】
上述した実施形態に示した構成を採れば、楽曲データ作成時に、楽曲データ作成者側で、予め楽曲ごとに音高ピッチ情報取得に悪影響を及ぼす影響音を特定することができるので、前記楽曲データを用いたカラオケ用採点装置は、歌唱者に何らの負担を課すことなく、楽曲演奏中の楽器音種類と時間的流れとに応じて、男声/女声を正確に、かつ、容易に判別できるようになり、男声女声別に適正なフィルタ処理を行えるので、楽曲ごとに精度の高い採点ができる。
【0101】
また、カラオケ装置において予め影響音として決定しておくこともできる。この場合は、既存の楽曲データを何ら加工することなく、本発明を実現できる。この構成では、楽曲によっては、音高ピッチ情報が正しく取得できないことも想定されるが、上述した採点用プロセスにおいては、楽曲の演奏開始後所定時間内に所定時間分の音高ピッチ情報が取得できなかった旨を報知するので、利用者は、演奏中に採点が正しく行われなかったことを把握することができる。
【0102】
上記実施形態においては、男声/女声の判断を行い、フィルタが決定されるまでにマイク17に入力された音声は採点処理の対象としなかったが、この期間の音声信号をバッファ等に蓄えておき、フィルタ決定後にこれら入力音声をフィルタ処理して採点結果に反映させることもできる。
【0103】
図20は、バッファに上記期間の入力音声を記憶しておき、フィルタ決定後に用いる処理(以下、「一時記憶用プロセス」という。)のフローチャートを示すものである。
【0104】
一時記憶用プロセスは、採点用プロセス及び演奏用プロセスと並列して処理される。一時記憶用プロセスは、楽曲の開始がスタートすると実行開始される。
【0105】
S51において、楽曲の演奏が終了したか否かを判断する。楽曲の演奏が終了したと判断した場合は(S51:YES)、一時記憶用プロセスを終了する。楽曲の演奏が終了していないと判断した場合は(S51:NO)、S52に進む。
【0106】
S52において、採点用プロセスにおいてフィルタが設定されたか否かを判断する。フィルタが設定されたと判断した場合は(S54:YES)、S54に進む。フィルタが設定されていないと判断した場合は(S54:NO)、S53に進む。
【0107】
S53において、マイク17に入力された音声信号を、バッファに書き込む。S51〜S53の処理を繰り返すことにより、採点用プロセスにおいてフィルタが設定されるまでの入力音声は、バッファに書き込まれることになる。
【0108】
S54において、バッファに記憶した入力音声信号を順次読み出す。その後、S55に進む。
S55において、読み出した入力音声信号に対し採点用プロセスにおいて設定されたフィルタを利用してフィルタ処理を行う。その後、S56に進む。
【0109】
S56において、フィルタ処理された音声信号に対し、採点処理を行う。この採点処理自体は、採点用プロセスで行われるものと同じであるので説明を省略する。
なお、S54〜S56の処理は、互いに並列に行ってもよい。すなわち、バッファから読み出した音声をフィルタ処理している最中に、次の入力音声をバッファから読み出してもよい。
【0110】
S57において、本プロセスで算出した採点値を、採点用プロセスにおける採点結果に反映させる。なお、反映させるタイミングは適宜設定可能である。
【0111】
上述した本実施形態においては、フィルタが設定されるまでにマイク17に入力された音声についても採点結果に反映されることができる。なお、上記フローチャートは単なる一例であり、上記処理と同等の結果を得ることできる処理であれば、他のフローチャートによって処理を実現してもよい。
【0112】
[減衰時間を4バイトで表現する技術的意義]
上述した実施形態においては、影響音の種類によって減衰時間が異なるため、減衰時間を定義するためのデータ領域が必要である。ここで、それぞれの減衰時間の示すデータは、ミスアラインメント(ミスアライメント)を防ぐため、3バイト、5バイト、7バイトではなく、2バイト、4バイト、8バイトのいずれかにすることが望ましい。この点、例えば、特開2006−18536号公報、特開平08−030505号公報、特開平09−044397号公報にも記載されている。
【0113】
また、減衰時間の解像度については、減衰時間より充分に小さい時間分解能が必要であるから、減衰時間が1〜2秒であれば、秒単位でなく、少なくともミリ秒単位で管理することが望ましい。したがって、楽曲データの時間情報も少なくともミリ秒単位で管理すればよい。この点は、MIDIデータにおいて、TMP(テンポ値)=125、TimeBase=48である場合に、1tick=10ミリ秒、すなわち、分解能がミリ秒オーダーとなることからも明らかである。
【0114】
以下に、1tick=10となる根拠を示す。
TMP=125(bpm:Beat Per Minute)であれば、1分間(60000(mS))に4分音符の発生頻度は60000/125=480(mS)に1回となるので、4分音符1周期の時間は、=480(mS)となる。
また、タイムベース値=48であるとき、1つの4分音符は48クロックで構成されることとなる。
つまり、 TMP=125、TimeBase=48である場合、1周期480(mS)の四分音符が、48クロックで構成される。
ここで、1つの4分音符の解像度の単位をtick とするならば、1つの4分音符(480(mS))は48個のtickから構成される。そして、4分音符1周期の時間を、tick1周期への時間に置き換えると、tick1周期の時間は 480/48=10(mS)となる。
【0115】
ここで、4バイト(FFFFFFFFh)で扱うことができる最大数は、4294967295である。したがって、ミリ秒を分解能とした場合、4バイトのデータで扱うことができる最大値は、4294967295ミリ秒であるから、最大71583分まで扱うことができる。また、更に高精度に管理するためにマイクロ秒を分解能とした場合では、71.6分まで扱うことができる。通常、カラオケ演奏に用いる楽曲の演奏時間は3〜6分であるから、減衰時間を定義するためのデータ領域は4バイトであれば、ミリ秒、マイクロ秒いずれの分解能にも対応できる。
【0116】
ところが、前記データ領域が2バイトであると、ミリ秒を分解能とした場合、2バイトのデータで扱うことができる最大値は、1.09分となり、1楽曲の演奏時間には足りない。また、8バイトであると、マイクロ秒を分解能とした場合、8バイトのデータで扱うことができる最大値は、307445734562分であるので、楽曲の演奏時間に比べて余りにも長く、楽曲を管理する上では不必要に長い時間長であり、メモリ(データ領域)が無駄になる。
【0117】
したがって、通常の楽曲が3〜6分であるカラオケ用途においては、減衰時間のデータを4バイトで扱うことが、データ容量及びミスアラインメントを考慮した場合に最も適しているものと考えられる。
【0118】
[減衰時間の具体例]
減衰時間の例について示す。図21は、ピアノ音の減衰の様子を示した図である。採点に影響を及ぼさない音量の閾値を、「発音直後の音量(0dB)から−12dB減衰したとき」とした場合、図21においては、発音後約1.3秒で閾値以下の音量となっている。したがって、ピアノ音の減衰時間として、1.3秒とすることができる。なお、図21に示した減衰の様子は単なる一例であり、また、上記閾値も適宜設定可能である。また、ピアノ音に対するノートオフ信号が、ピアノ音の発音開始後1.3秒よりも早いタイミングで発生した場合(例えば、ピアノ音の発音持続時間が1秒)は、発音開始からその時点までが「採点に影響を及ぼす期間」となる。すなわち、ピアノ音については、減衰時間とノートオフ信号とを用いて「採点に影響を及ぼす期間」が決定されることになる。
【0119】
図22は、エレキベース音の減衰の様子を示した図である。採点に影響を及ぼさない音量の閾値を、「発音直後の音量(0dB)から−12dB減衰したとき」とした場合、図22においては、発音後0.4秒で閾値以下の音量となっている。したがって、エレキベース音の減衰時間として、0.4秒とすることができる。なお、図22に示した減衰の様子は単なる一例であり、また、上記閾値も適宜設定可能である。エレキベース音についても、ピアノ音と同様に、減衰時間とノートオフ信号とを用いて「採点に影響を及ぼす期間」が決定される。
【0120】
図23は、コントラバス音の減衰の様子を示した図である。この図が示すとおり、コントラバス音は減衰しないことがわかる。したがって、減衰時間を設定することはできない。そのため、コントラバス音については、減衰時間は用いずノートオフ信号を用いて「採点に影響を及ぼす期間」が決定されることになる。
【0121】
本発明は上述した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の改良、変形が可能であることは勿論である。また、上述した処理を実行するためのカラオケ装置における採点方法としても本発明は実現可能である。さらに、当該カラオケ装置における採点方法をコンピュータで実行させるためのプログラム、及び、そのプログラムが記録された記録媒体としても本発明は実現可能である。
【図面の簡単な説明】
【0122】
【図1】ドラム音の周波数分布の一例を示した図である。
【図2】ドラム音の周波数分布の一例を示した図である。
【図3】ドラム音の周波数分布の一例を示した図である。
【図4】女声の周波数分布の一例を示した図である。
【図5】女声の周波数分布の一例を示した図である。
【図6】女声の周波数分布の一例を示した図である。
【図7】男声の周波数分布の一例を示した図である。
【図8】男声の周波数分布の一例を示した図である。
【図9】ピアノ音の周波数分布の一例を示した図である。
【図10】エレキベース音の周波数分布の一例を示した図である。
【図11】チューバ音の周波数分布の一例を示した図である。
【図12】コントラバス音の周波数分布の一例を示した図である。
【図13】制御装置の内部構成及びその周辺要素を示した図である。
【図14】楽曲データの構成の一例を示した図である。
【図15】共有メモリの内部構造を示した図である。
【図16】採点用プロセスのフローチャートである。
【図17】演奏用プロセスのフローチャートである。
【図18】ドラム音の発音タイミング、システム起動からの時間、取得された音高ピッチ情報を示したタイミング図である。
【図19】楽曲データの構成の一例を示した図である。
【図20】一時記憶用プロセスのフローチャートである。
【図21】ピアノ音の減衰の様子の一例を示した図である。
【図22】エレキベース音の減衰の様子の一例を示した図である。
【図23】コントラバス音の減衰の様子の一例を示した図である。
【符号の説明】
【0123】
10 制御装置
11 コントローラ
12 記憶装置
13 操作パネル
13a リモコン
14 RAM
15 通信I/F
16 採点回路
17 マイク
18 音源
19 アンプ
20 スピーカ
21 映像制御回路
22 モニタ
【特許請求の範囲】
【請求項1】
歌唱者音声入力手段、楽曲再生手段、制御手段、記憶手段、採点手段を備えた採点機能を有するカラオケ装置において、
上記記憶手段には、
楽器音ごとの減衰時間が定義された減衰時間データと、
ピッチ周波数と周波数帯域フィルタとが関連付けられた関連データと、
歌唱者音程情報、楽器音情報、楽曲演奏進行情報を含んだ楽曲データと、
が記憶されており、
上記制御手段は、前記楽曲データに基く楽曲の演奏中に、
上記楽器音情報、上記楽曲演奏進行情報、上記減衰時間データに基いて、設定された所定の楽器音が発音されていないかどうかを判断し、
上記楽器音が発音されていない期間において上記歌唱者音声入力手段に入力された入力音声から歌唱者のピッチ周波数を特定し、
特定されたピッチ周波数及び上記関連データに基いて、周波数帯域フィルタを特定し、
特定した周波数帯域フィルタによって上記入力音声をフィルタ処理し、
上記採点手段は、上記歌唱者音程情報を用いて前記フィルタ処理された後の入力音声を採点する、
ことを特徴とする採点機能を有するカラオケ装置。
【請求項2】
上記楽曲は、MIDIデータを含む楽曲データに基いて演奏され、
上記制御手段は、上記所定の楽器音を発音させるための命令が出力されたタイミングを起点として、当該所定の楽器音の減衰時間が経過するまでの期間、または、当該所定の楽器音の発音を止めるための命令が出力されるまでの期間のうち、短い方の期間を、当該所定の楽器音が発音されている期間と判断し、上記楽器音が発音されていない期間から除外する、
ことを特徴とする請求項1の採点機能を有するカラオケ装置。
【請求項3】
上記楽曲は、MIDIデータを含む楽曲データに基いて演奏され、
上記制御手段は、所定値より小さいノートナンバを含むノートオン信号を検出し、当該ノートオン信号のチャネルに対応する楽器音を、上記所定の楽器音として設定する、
ことを特徴とする請求項1または2の採点機能を有するカラオケ装置。
【請求項4】
蓄積手段をさらに有し、
上記発音されていない期間において取得した上記入力音声の音高ピッチ情報は、上記蓄積手段に記憶され、
所定時間分の音高ピッチ情報が蓄積されると平均処理によって上記歌唱者のピッチ周波数を特定する、
ことを特徴とする請求項1〜3いずれかの採点機能を有するカラオケ装置。
【請求項5】
上記楽曲データには、上記所定の楽器音を特定可能にする情報が付されており、
上記制御手段は、上記情報に基いて上記所定の楽器音を設定する、
ことを特徴とする請求項1、2または4いずれかの採点機能を有するカラオケ装置。
【請求項6】
上記所定の楽器音が予め定められている、
ことを特徴とする請求項1、2または4いずれかの採点機能を有するカラオケ装置。
【請求項7】
上記制御手段は、上記楽曲の演奏開始後所定の時間内に上記一時メモリに所定時間分のピッチが蓄積されなかった場合に、所定の情報を利用者に報知する、
ことを特徴とする請求項6の採点機能を有するカラオケ装置。
【請求項8】
前記楽器音ごとの減衰時間は、4バイトのデータである、
ことを特徴とする請求項1〜7いずれかの採点機能を有するカラオケ装置。
【請求項1】
歌唱者音声入力手段、楽曲再生手段、制御手段、記憶手段、採点手段を備えた採点機能を有するカラオケ装置において、
上記記憶手段には、
楽器音ごとの減衰時間が定義された減衰時間データと、
ピッチ周波数と周波数帯域フィルタとが関連付けられた関連データと、
歌唱者音程情報、楽器音情報、楽曲演奏進行情報を含んだ楽曲データと、
が記憶されており、
上記制御手段は、前記楽曲データに基く楽曲の演奏中に、
上記楽器音情報、上記楽曲演奏進行情報、上記減衰時間データに基いて、設定された所定の楽器音が発音されていないかどうかを判断し、
上記楽器音が発音されていない期間において上記歌唱者音声入力手段に入力された入力音声から歌唱者のピッチ周波数を特定し、
特定されたピッチ周波数及び上記関連データに基いて、周波数帯域フィルタを特定し、
特定した周波数帯域フィルタによって上記入力音声をフィルタ処理し、
上記採点手段は、上記歌唱者音程情報を用いて前記フィルタ処理された後の入力音声を採点する、
ことを特徴とする採点機能を有するカラオケ装置。
【請求項2】
上記楽曲は、MIDIデータを含む楽曲データに基いて演奏され、
上記制御手段は、上記所定の楽器音を発音させるための命令が出力されたタイミングを起点として、当該所定の楽器音の減衰時間が経過するまでの期間、または、当該所定の楽器音の発音を止めるための命令が出力されるまでの期間のうち、短い方の期間を、当該所定の楽器音が発音されている期間と判断し、上記楽器音が発音されていない期間から除外する、
ことを特徴とする請求項1の採点機能を有するカラオケ装置。
【請求項3】
上記楽曲は、MIDIデータを含む楽曲データに基いて演奏され、
上記制御手段は、所定値より小さいノートナンバを含むノートオン信号を検出し、当該ノートオン信号のチャネルに対応する楽器音を、上記所定の楽器音として設定する、
ことを特徴とする請求項1または2の採点機能を有するカラオケ装置。
【請求項4】
蓄積手段をさらに有し、
上記発音されていない期間において取得した上記入力音声の音高ピッチ情報は、上記蓄積手段に記憶され、
所定時間分の音高ピッチ情報が蓄積されると平均処理によって上記歌唱者のピッチ周波数を特定する、
ことを特徴とする請求項1〜3いずれかの採点機能を有するカラオケ装置。
【請求項5】
上記楽曲データには、上記所定の楽器音を特定可能にする情報が付されており、
上記制御手段は、上記情報に基いて上記所定の楽器音を設定する、
ことを特徴とする請求項1、2または4いずれかの採点機能を有するカラオケ装置。
【請求項6】
上記所定の楽器音が予め定められている、
ことを特徴とする請求項1、2または4いずれかの採点機能を有するカラオケ装置。
【請求項7】
上記制御手段は、上記楽曲の演奏開始後所定の時間内に上記一時メモリに所定時間分のピッチが蓄積されなかった場合に、所定の情報を利用者に報知する、
ことを特徴とする請求項6の採点機能を有するカラオケ装置。
【請求項8】
前記楽器音ごとの減衰時間は、4バイトのデータである、
ことを特徴とする請求項1〜7いずれかの採点機能を有するカラオケ装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2009−80429(P2009−80429A)
【公開日】平成21年4月16日(2009.4.16)
【国際特許分類】
【出願番号】特願2007−251333(P2007−251333)
【出願日】平成19年9月27日(2007.9.27)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】
【公開日】平成21年4月16日(2009.4.16)
【国際特許分類】
【出願日】平成19年9月27日(2007.9.27)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】
[ Back to top ]