JP2008096844A - 自動採譜装置及び方法 - Google Patents
自動採譜装置及び方法 Download PDFInfo
- Publication number
- JP2008096844A JP2008096844A JP2006280650A JP2006280650A JP2008096844A JP 2008096844 A JP2008096844 A JP 2008096844A JP 2006280650 A JP2006280650 A JP 2006280650A JP 2006280650 A JP2006280650 A JP 2006280650A JP 2008096844 A JP2008096844 A JP 2008096844A
- Authority
- JP
- Japan
- Prior art keywords
- frequency
- weblet
- level
- coefficient group
- time
- 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
- Electrophonic Musical Instruments (AREA)
- Auxiliary Devices For Music (AREA)
Abstract
【課題】採譜において周波数解析精度を向上させるようにする。
【解決手段】 波形データ記憶部32に記憶されたWAVEデータに対して、離散ウェブレット変換を行うことにより、異なる目的周波数帯をもつ少なくとも2レベルのウェブレット係数群を取得するWT処理部34と、ウェブレット係数群のそれぞれに対して、より低い目的周波数帯を持つ高レベルのウェブレット係数群に対する周波数分解能が、より高い目的周波数帯を持つ低レベルのウェブレット係数群に対する周波数分解能よりも高くなるように、短期間フーリエ変換を行って、どの時間位置に、どの周波数成分が存在するかを示す周波数情報を取得するSTFT処理部35と、周波数情報に基づいて音譜情報を生成する音譜情報生成部39とを有するように構成する。
【選択図】図2
【解決手段】 波形データ記憶部32に記憶されたWAVEデータに対して、離散ウェブレット変換を行うことにより、異なる目的周波数帯をもつ少なくとも2レベルのウェブレット係数群を取得するWT処理部34と、ウェブレット係数群のそれぞれに対して、より低い目的周波数帯を持つ高レベルのウェブレット係数群に対する周波数分解能が、より高い目的周波数帯を持つ低レベルのウェブレット係数群に対する周波数分解能よりも高くなるように、短期間フーリエ変換を行って、どの時間位置に、どの周波数成分が存在するかを示す周波数情報を取得するSTFT処理部35と、周波数情報に基づいて音譜情報を生成する音譜情報生成部39とを有するように構成する。
【選択図】図2
Description
本発明は、音響(音声)信号から自動的に採譜するための装置及び方法に関する。
採譜(楽譜情報(伝統的な譜面情報だけでなく、MIDIデータなども含む)を生成すること)という分野においては、未だ人間の感覚に頼った作業が中心となっており、音楽に対する知識・経験が要求される。また、知識・経験が豊富であったとしても、時間・労力が必要となる。これらの問題をコンピュータによる自動化によって解消することが求められている。採譜のための音響信号解析には、時間と周波数の解析が可能な短時間フーリエ変換(STFT: Short Time Fourier Transform)が利用されることが多い(特許文献1)。STFTでは、解析対象の音響信号を或る幅(時間長)をもつ時間窓に分割し、時間窓ごとにフーリエ変換を行なうことで、時間情報と周波数情報が同時に得られる。
特開2003−124816号公報
しかし、STFTでは、信号周波数の高低に関係なく、同じ幅の時間窓で解析を行なう。時間分解能を良くするためには、時間窓の幅を狭く(時間長を短く)しなければならないが、幅を狭くするほど、周期の長い低周波数の周波数分解能が落ちてしまうという問題がある。また、和音・倍音・テンポなどについては未だ解決していない課題が多い。特に、倍音を完全に除去し、基本波のみを抽出するプロセスは確立されていない。
従って、本発明の目的は、採譜において周波数解析精度を向上させることにある。
別の目的は、倍音除去と和音抽出の性能を向上させることにある。
上記目的達成のため、本発明の第1の態様に係る自動採譜装置は、音声波形データを記憶する記憶手段と、記憶手段に記憶された音声波形データに基づいて、離散ウェブレット変換を行うことにより、異なる目的周波数帯をもつ少なくとも2レベルのウェブレット係数群を取得するウェブレット処理手段と、少なくとも2レベルのウェブレット係数群のそれぞれに対して、より低い目的周波数帯を持つ高レベルのウェブレット係数群に対する周波数分解能が、より高い目的周波数帯を持つ低レベルのウェブレット係数群に対する周波数分解能よりも高くなるように、短期間フーリエ変換を行って、少なくとも2レベルのウェブレット係数群のそれぞれから、多数の時間位置中のどの時間位置に、多数の周波数成分中のどの周波数成分が存在するかを示す周波数情報を取得する短時間フーリエ解析手段と、少なくとも2レベルのウェブレット係数群のそれぞれから取得された周波数情報に基づいて、音譜情報を生成する音譜情報生成手段とを有する。
係る自動採譜装置によると、音声波形データから異なる目的周波数帯をもつ少なくとも2レベルのウェブレット係数群を取得し、より低い目的周波数帯を持つ高レベルのウェブレット係数群に対する周波数分解能が、より高い目的周波数帯を持つ低レベルのウェブレット係数群に対する周波数分解能よりも高くなるように、短期間フーリエ変換を行って、少なくとも2レベルのウェブレット係数群のそれぞれから、どの時間位置に、どの周波数成分が存在するかを示す周波数情報を取得するようにしているので、より低い周波数成分について、より高精度に周波数の情報を収集して、音譜情報を生成することができる。
また、上記自動採譜装置の短時間フーリエ解析手段において、高レベルのウェブレット係数群に対する周波数分解能が、低レベルのウェブレット係数群に対する周波数分解能よりも高くなるように高レベルのウェブレット係数群に対する短時間フーリエ変換の観測窓の時間長に相当するウェブレット係数の数と、低レベルのウェブレット係数群に対する短時間フーリエ変換の観測窓の時間長に相当するウェブレット係数の数とが設定されていてもよい。係る自動採譜装置によると、より低い目的周波数帯を持つ高レベルのウェブレット係数群に対する周波数分解能が、より高い目的周波数帯を持つ低レベルのウェブレット係数群に対する周波数分解能よりも高くすることができる。
また、上記自動採譜装置の短時間フーリエ解析手段において、高レベルのウェブレット係数群に対する短時間フーリエ変換の観測窓の時間長に相当するウェブレット係数の数と、低レベルのウェブレット係数群に対する短時間フーリエ変換の観測窓の時間長に相当するウェブレット係数の数とが同じであってもよい。係る自動採譜装置によると、異なる目的周波数帯を持つウェブレット係数群に対する短時間フーリエ変換の一部の処理を共通化することができる。
また、上記自動採譜装置の短時間フーリエ解析手段において、低レベルのウェブレット係数群に対する短時間フーリエ変換から得られる多数の時間位置に、高レベルのウェブレット係数群に対する短時間フーリエ変換から得られる多数の時間位置と同じ時間位置が含まれるように、高レベルのウェブレット係数群に対する短時間フーリエ変換の或る観測窓の先頭のウェブレット係数から次の観測窓の先頭のウェブレット係数までのシフト量と、低レベルのウェブレット係数群に対する短時間フーリエ変換の或る観測窓の先頭のウェブレット係数から次の観測窓の先頭のウェブレット係数までのシフト量とが設定されていてもよい。係る自動採譜装置によると、高レベルのウェブレット係数群から得られる時間位置に、低レベルのウェブレット係数群から得られる時間位置が含まれるようになっているので、低レベルのウェブレット係数群から得られた時間位置と、高レベルのウェブレット係数群から得られた時間位置とを用いた比較処理を容易且つ適切に行うことができる。
また、上記自動採譜装置の短時間フーリエ解析手段において、高レベルのウェブレット係数群に対するシフト量と、低レベルのウェブレット係数群に対するシフト量とが、同一時間間隔であってもよい。係る自動採譜装置によると、高レベルのウェブレット係数群から得られる時間位置と、低レベルのウェブレット係数群から得られた時間位置とが同一となるので、高レベルのウェブレット係数群から得られた周波数情報と、低レベルのウェブレット係数群から得られた周波数情報とを用いた時間位置に関する処理を容易に行うことができる。
また、上記自動採譜装置において、短時間フーリエ解析手段は、多数の周波数成分のそれぞれの多数の時間位置のそれぞれでのパワー値又は強度値を算出する値算出手段を備え、自動採譜装置は、高レベルのウェブレット係数群から連続する複数の時間位置を含む或る時間区間にて第1周波数成分が得られ、低レベルのウェブレット係数群から或る時間区間にて第1周波数成分の整数倍の周波数を有する第2周波数成分が得られた場合、第2周波数成分の或る時間区間における最大のパワー値又は強度値に基づいて、第2周波数成分が倍音であるか否かを判定する倍音判定手段と、短時間フーリエ解析手段により取得された周波数情報から、倍音と判定された第2周波数成分の情報を削除する倍音削除手段とを更に備え、音譜情報生成手段は、第2周波数成分の情報が削除された後の周波数情報に基づいて、音譜情報を生成するようにしてもよい。係る自動採譜装置によると、最大のパワー値又は強度値に基づいて適切に倍音か否かを判定することができ、倍音と考えられる周波数の成分を適切に削除した音譜情報を作成することができる。
また、上記自動採譜装置において、倍音判定手段は、第2周波数成分の最大のパワー値又は強度値が、第1周波数成分の或る時間区間における最大のパワー値又は強度値に基づいて決定される閾値以下であれば、当該第2周波数成分を倍音であると判定するようにしてもよい。係る自動採譜装置によると、倍音と考えられる周波数の成分を適切に削除した音譜情報を作成することができる。係る自動採譜装置によると、より高精度に倍音か否かを判定することができ、倍音と考えられる周波数の成分を適切に削除した音譜情報を作成することができる。
また、上記自動採譜装置において、少なくとも2レベルのウェブレット係数群のそれぞれから得られた周波数情報から、それぞれのウェブレット係数群の目的周波数帯の周波数成分と異なる周波数成分の情報を削除する周波数成分削除手段を更に有し、音譜情報生成手段は、周波数成分削除手段により周波数成分の情報が削除された後の周波数情報に基づいて、音譜情報を生成するようにしてもよい。係る自動採譜装置によると、雑音と考えられる成分を各ウェブレット係数群の目的周波数帯毎に適切に削除することができる。
また、上記目的達成のため、本発明の第2の態様に係る自動採譜プログラムは、コンピュータを、少なくとも2レベルのウェブレット係数群のそれぞれに対して、より低い目的周波数帯を持つ高レベルのウェブレット係数群に対する周波数分解能が、より高い目的周波数帯を持つ低レベルのウェブレット係数群に対する周波数分解能よりも高くなるように、短期間フーリエ変換を行って、前記少なくとも2レベルのウェブレット係数群のそれぞれから、多数の時間位置中のどの時間位置に、多数の周波数成分中のどの周波数成分が存在するかを示す周波数情報を取得する短時間フーリエ解析手段と、少なくとも2レベルのウェブレット係数群のそれぞれから取得された周波数情報に基づいて、音譜情報を生成する音譜情報生成手段として機能させる。
係る自動採譜プログラムによると、コンピュータに実行させることにより、音声波形データから異なる目的周波数帯をもつ少なくとも2レベルのウェブレット係数群を取得し、より低い目的周波数帯を持つ高レベルのウェブレット係数群に対する周波数分解能が、より高い目的周波数帯を持つ低レベルのウェブレット係数群に対する周波数分解能よりも高くなるように、短期間フーリエ変換を行って、少なくとも2レベルのウェブレット係数群のそれぞれから、多数の時間位置中のどの時間位置に、多数の周波数成分中のどの周波数成分が存在するかを示す周波数情報を取得するようにしているので、より低い周波数成分について、より高精度に周波数の情報を収集して、音譜情報を生成することができる。
また、上記目的達成のため、本発明の第3の態様に係る自動採譜方法は、音声波形データを記憶する記憶手段を有する自動採譜装置による自動採譜方法であって、自動採譜装置のウェブレット処理手段が、記憶手段に記憶された音声波形データに基づいて、離散ウェブレット変換を行うことにより、異なる目的周波数帯をもつ少なくとも2レベルのウェブレット係数群を取得するウェブレット処理ステップと、自動採譜装置の短時間フーリエ解析手段が、少なくとも2レベルのウェブレット係数群のそれぞれに対して、より低い目的周波数帯を持つ高レベルのウェブレット係数群に対する周波数分解能が、より高い目的周波数帯を持つ低レベルのウェブレット係数群に対する周波数分解能よりも高くなるように、短期間フーリエ変換を行って、少なくとも2レベルのウェブレット係数群のそれぞれから、どの時間位置に、どの周波数成分が存在するかを示す周波数情報を取得する短時間フーリエ解析ステップと、自動採譜装置の音譜情報生成手段が、少なくとも2レベルのウェブレット係数群のそれぞれから取得された周波数情報に基づいて、音譜情報を生成する音譜情報生成ステップと、を有する。
係る自動採譜方法によると、音声波形データから異なる目的周波数帯をもつ少なくとも2レベルのウェブレット係数群を取得し、より低い目的周波数帯を持つ高レベルのウェブレット係数群に対する周波数分解能が、より高い目的周波数帯を持つ低レベルのウェブレット係数群に対する周波数分解能よりも高くなるように、短期間フーリエ変換を行って、少なくとも2レベルのウェブレット係数群のそれぞれから、どの時間位置に、どの周波数成分が存在するかを示す周波数情報を取得するようにしているので、より低い周波数成分について、より高精度に周波数の情報を収集して、音譜情報を生成することができる。
本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
まず、本発明の一実施形態に係る自動採譜システムについて説明する。
図1は、本発明の一実施形態に係る自動採譜システムのハードウエア構成図である。
自動採譜システム1は、自動採譜を行う自動採譜装置2と、音声を出力する電子鍵盤楽器3及びスピーカ4とを有する。電子鍵盤楽器3は、それぞれ所定の音高の音を出力するための複数の鍵盤が設けられており、ユーザによって鍵盤が押下された場合には、押下された鍵盤に対応する音高の音がスピーカ4から出力される。
自動採譜装置2は、装置本体10と、表示装置11と、入力装置12と、マイクロフォン13とを有する。表示装置11は、例えば、液晶ディスプレイや、CRTディスプレイ等の画像を表示する装置である。入力装置12は、例えば、マウス、キーボード等のユーザからの入力を受け付けるための装置である。マイクロフォン13は、外部の音をアナログの音声波形信号に変換する。
装置本体10において、CPU(Central Processing Unit)14と、ROM(Read Only Memory)15と、RAM(Random Access Memory)16と、ハードディスクドライブ17と、表示処理部18と、入力インターフェース部(入力I/F部)19と、音声処理部20と、コンボドライブ21と、通信インターフェース部(通信I/F部)22とがバス23を介して接続されている。
CPU14は、ROM15の基本プログラムやハードディスクドライブ17に格納されているOSや後述する自動採譜処理を実行するためのプログラムをRAM16に読み出して実行することにより各種処理を実行する。また、CPU14は、各部14〜22の動作を制御する。ROM15は、ブートプログラム等の基本プログラムを記憶する。RAM16は、プログラムやデータを記憶する領域として、或いは、CPU14による処理に使用しているデータを格納する作業領域として利用される。ハードディスクドライブ17は、OS(オペレーティングシステム)や、各種プログラムや、各種データベースを読み出し可能に記憶する。表示処理部18は、CPU14の制御により、表示装置11に画像を表示させるための表示用のデータを生成し、表示装置11に出力する。入力I/F部19は、入力装置12と接続されており、入力装置12からの信号をデータとして、CPU14に渡す。
音声処理部20は、マイクロフォン13と接続されており、マイクロフォン13により変換された音声波形信号をデジタル形式に変換して、CPU14に渡す。本実施形態では、例えば、アナログからデジタルに変換する際には、量子化Bitを、例えば、16bitとし、リニアPCM(Pulse Code Modulation)とし、モノラル形式とし、サンプリングレートを、例えば22050Hzとしている。コンボドライブ21は、複数種類の記録媒体24からのデータ、プログラムの読み込み、記録媒体24へのデータ等の書き込みを行う。記録媒体24としては、例えば、CD−ROM、DVD−ROM、DVD−RAM等がある。通信I/F部22は、図示しないネットワークを介して、外部の装置とのデータのやりとりの仲介を行う。
次に、図1に示すハードウエアによって実現される自動採譜装置2の機能構成を説明する。
図2は、本発明の一実施形態に係る自動採譜装置の機能ブロック図である。
自動採譜装置2は、マイクロフォン13と、波形データ生成部31と、波形データ記憶部32と、入出力処理部33と、ウェブレット処理手段の一例としてのウェブレット処理部(WT処理部)34と、短時間フーリエ解析手段及び値算出手段の一例としての短時間フーリエ変換処理部(STFT処理部)35と、周波数成分削除手段の一例としての雑音除去部37と、倍音判定手段及び倍音削除手段の一例としての倍音処理部38と、音譜情報生成手段の一例としての音譜情報生成部39と、音譜情報記憶部40と、テンポ設定部41と、楽譜作成部42と、MIDI作成部43と、MIDI記憶部44とを有する。ここで、波形データ記憶部32、音譜情報記憶部40、及びMIDI記憶部44は、ハードディスクドライブ17によって構成され、波形データ生成部31は、音声処理部20及びCPU14によって構成され、入出力処理部33は、表示処理部18、入力I/F部、及びCPU14によって構成され、WT処理部34、STFT処理部35、雑音除去部37、倍音処理部38、音譜情報生成部39、テンポ設定部41、楽譜作成部42、及びMIDI作成部43は、CPU14が所定のプログラムを実行することによって構成される。
波形データ生成部31は、マイクロフォン13によって外部から取り込まれたアナログ形式の音声波形信号を、デジタル形式の音声波形データに変換し、所定の形式(例えば、WAVE形式)にして波形データ記憶部32に記憶させる。
本実施形態では、楽譜の再現等を確認するために、電子鍵盤楽器3によって、所定の楽譜に従って演奏した際にスピーカ4から出力される音声を、マイクロフォン13を介して収集して波形データ生成部31により音声波形データに変換させて波形データ記憶部32に記憶させている。なお、本実施形態では、電子鍵盤楽器3をテンポ60で演奏するようにしている。
図3は、本発明の一実施形態に係る音声波形データを作成する基となった楽譜を示す図である。
図3(1)に示す楽譜においては、C3〜C4間での各音階が4部音符で記述され、C3〜C4間の各音階が2分音符で記述されている。また、図3(2)に示す楽譜においては、C3とC4の和音が2分音符N1、N2で記述され、C3とC4の和音が2分音符N3、N4で記述され、C3が2分音符N5で記述され、C4が2分音符N6で記述されている。
図2に戻り、入出力処理部33は、各種画面を表示装置11に表示させる。本実施形態では、入出力処理部33は、自動採譜処理を行う際には、図4に示す自動採譜ウインドウ101を表示させる。また、入出力処理部33は、自動採譜ウインドウ101に対してのユーザの入力装置12による操作に応じて各種指示を受け付け、指示に応じて、所定の処理を実行する。
図4は、本発明の一実施形態に係る自動採譜ウインドウの一例を示す図である。
自動採譜ウインドウ101は、楽譜を表示させる楽譜表示領域102を有する。楽譜表示領域102には、入力された音声波形データを解析した結果に基づいて得られた楽譜が表示される。楽譜表示領域102には、スクロールバー103が表示され、スクロールバー103にカーソル109を合わせた状態で、入力装置12の一例であるマウスの左ボタンを押下した状態で動かす(ドラッグする)ことにより、表示させる楽譜部分を変えることができるようになっている。
自動採譜ウインドウ101には、更に、自動採譜の処理対象のWAVEファイル名を表示する表示領域104と、処理対象のWAVEファイルを選択する指示を行う選択ボタン105と、自動採譜処理を開始させる指示を行う実行ボタン106と、MIDIデータを作成する指示を行うMIDI作成ボタン107と、処理の終了を指示する終了ボタン108とが表示される。
自動採譜ウインドウ101において、カーソル109を選択ボタン105にあわせて、マウスの左ボタンが押下(クリック)されると、自動採譜の処理対象のWAVEファイルを選択するためのウインドウを表示させ、そのウインドウを利用して、WAVEファイルを選択させることができるようになっている。なお、選択されたWAVEファイルのファイル名は、表示領域104に表示される。また、自動採譜ウインドウ101において、WAVEファイルが選択されている状態で、カーソル109を実行ボタン105にあわせて、マウスの左ボタンがクリックされると、選択されているWAVEファイル名をWT処理部33に通知し、後述する自動採譜処理を実行するようになっている。また、自動採譜ウインドウ101において、WAVEファイルの楽譜が表示された状態で、カーソル109をMIDI作成ボタン107にあわせて、マウスの左ボタンがクリックされると、MIDI作成部43にMIDIファイルを作成する指示を通知し、現在表示されている楽譜に対応するMIDIデータの作成を開始するようになっている。また、自動採譜ウインドウ101において、カーソル109を終了ボタン108にあわせてマウスの左ボタンがクリックされると、自動採譜プログラムを終了するようになっている。
図2に戻り、WT処理部34は、波形データ記憶部32に記憶されているWAVEファイルに対して離散ウェブレット変換を行い、異なる目的周波数帯を持つ複数レベルのウェブレット係数群を取得する。
ここで、ウェブレット変換について説明するとともに、WT処理部34の処理をより詳細に説明する。
ウェブレット変換とは、局在的様子を調べるための局在的な基本参照波、すなわち、マザーウェブレットΨ(t)を拡大し又は縮小し、平行移動したいくつかの参照波(ウェブレット:Wavelet)を用いて、所定の信号データ列x(t)との照らし合わせを行って局在的な性質を求めるものである。
ウェブレットは、数式(1)によって表すことができる。ここで、aは、拡大縮小パラメータ(スケールファクタ)であり、bは、平行移動パラメータ(シフトファクタ)を示す。
更に、ウェブレット変換は、数式(2)によって表される。
簡単に言うと、連続ウェブレット変換(Continuous Wavelet Transform)は、信号データにウェブレットの参照波を乗算し、時間領域で和を計算して、スケールと位置の関数であるウェブレット係数を作成することを意味する。
しかしながら、全ての拡大縮小パラメータ、平行移動パラメータを利用してWavelet係数を計算することは、大量のデータを必要とし、処理の負荷が大きい。高速フーリエ変換(FFT:Fast Fourier Transform)に処理量減少させた離散フーリエ変換(DFT:Discrete Fourier Transform)があるように、ウェブレット変換にも、処理量を減少させることのできる離散ウェブレット変換(DWT:Discrete Wavelet Transform)がある。なお、DWTに用いられるマザーウェブレットΨ(t)は、以下に示す数式(3)〜(5)に示す3条件を満たす必要がある。
ここで、Lはウェブレットの長さ(サポート)を表す。数式(3)は、要素を加算すると0になることを表し、数式(4)は、ウェブレットのエネルギーを1に標準化していることを表している。また、数式(5)は、偶数倍シフトした要素がもとの要素と直行することを表しており、数式(4)は、シフトしない場合、内積が1になることを表している。この2つの条件を合わせて正規直交性の条件という。
DWTを行うにあたって、ウェブレット関数Ψ(t)と対をなす、スケーリング関数Φ(t)が必要になる。これら2つの関数の関係は以下に示す数式(6)、(7)に示すようになっている。
数式(7)によると、ウェブレット関数Ψ(t)と、スケーリング関数Φ(t)とが偶数倍のシフトに対して互いに直交関係になっていることがわかる。ウェブレット関数が山と谷が組となった周期の短い高周波数を通すハイパスフィルタなのに対して、スケーリング関数はなだらかな山となり、周期の長い低周波を通すローパスフィルタとなっている。
ここで、もっともポピュラーなウェブレットに、ハールウェブレットと、ドベシィウェブレットとがある。本実施形態では、例えば、ドベシィウェブレットを利用している。ドベシィウェブレットは、複数のサポートがあり、例えば、サポートが4の場合には、例えば、数式(8)に示すようになっている。
本実施形態では、WT処理部34は、以下に示すピラミッドアルゴリズムを用いている。
このピラミッドアルゴリズムの第一段階では、波形信号の原系列xをウェブレット関数Ψに通してウェブレット係数群w1を得る。ウェブレット係数群w1を構成する各ウェブレット係数w1,tは、以下に示す数式(9)によって表される。
ここで、Nは、原系列xの長さを示し、tは1からN/2までの整数を示している。また、AmodNは、AからNの倍数を引く、或いは足して、0〜N−1の整数を作る演算を示している。
同様にして、原系列xをスケーリング関数Φに通して、スケーリング係数群v1を得る。スケーリング係数群v1を構成する各スケーリング係数v1,tは、以下に示す数式(10)によって表される。
ウェブレット関数、又はスケーリング関数を通す際に、使用される原系列のデータは、2個づつ進むこととなるので、出力されるウェブレット係数群と、スケーリング係数群の長さは、原系列の半分となる。なお、両方の係数を併せればN個の出力が得られていることになるので、全体としての情報量は失われない。
この後、ピラミッドアルゴリズムの第2段階へと進む。第1段階によって得られたウェブレット係数群には、原系列の変動のうち、周期が2(スケール2)の部分を捉えたものが含まれている。一方、スケーリング係数群には、周期2よりも長い原系列の全ての動きが混在したものとなっている。そこで、第2段階においては、第1段階で得られたスケーリング係数群v1をその中で周期の短い動きw2と、周期の長い動きv2に分解する処理を行う。このような処理を複数段階行う。
このようなDWTについて、各段階における処理を一般形で記述すると以下のようになる。
まず、レベルi―1のスケーリング係数群vi-1をウェブレット関数Ψに通して、レベルiのウェブレット係数群wiを得る。なお、スケーリング係数v0は、原系列のデータを意味する。ウェブレット係数群wiを構成する各ウェブレット係数wi,tは、以下に示す数式(11)によって表される。
次に、レベルi―1のスケーリング係数群vi-1をスケーリング関数Φに通して、レベルiのスケーリング係数群viを得る。なお、スケーリング係数v0は、原系列のデータを意味する。スケーリング係数群viを構成する各スケーリング係数vi,tは、以下に示す数式(12)によって表される。
ここで、各レベルにおける係数の長さについて説明する。
まず、原系列のサンプリングレートが22050Hzの場合には、レベル1のウェブレット係数群及びスケーリング係数群の長さは、1秒につき、22050/21=11025となる。同様に、レベル2では、22050/22=5512.5となり、レベル3では、22050/23=2756.25となり、レベル4では、22050/24=1378.125となり、レベル5では、22050/25=689.0625となる。すなわち、レベルiでは、N/2iとなる。
この場合において、サンプリング定理より、各レベルのウェブレット係数群は、次のような目的周波数帯を持つこととなる。すなわち、レベル1のウェブレット係数群は、2756.25〜5512.5Hzの目的周波数帯を持ち、レベル2のウェブレット係数群は、1378.125〜2756.25Hzの目的周波数帯を持ち、レベル3のウェブレット係数群は、689.0625〜1378.125Hzの目的周波数帯を持ち、レベル4のウェブレット係数群は、およそ344.5〜689.0625Hzの目的周波数帯を持ち、レベル5のウェブレット係数群は、およそ172.2〜344.5Hzの目的周波数帯を持つ。ここで、レベルに付いた数が大きいほど、レベルが高い、すなわち、高レベルであるということとする。
本実施形態では、楽音周波数C3(261Hz)〜C4(522Hz)を採譜の対象としており、サンプリング定数を考慮すると、レベル4及びレベル5のウェブレット係数群を利用することによって、対象となる周波数の解析を行うことができる。
従って、本実施形態においては、WT処理部34は、上記したピラミッドアルゴリズムによってレベル4のウェブレット係数群と、レベル5のウェブレット係数群とを取得するようにしている。
STFT処理部35は、WT処理部34から少なくとも2レベルのウェブレット係数群を取得し、少なくとも2レベルのウェブレット係数群のそれぞれに対して、より低い目的周波数帯を持つ高レベルのウェブレット係数群に対する周波数分解能が、より高い目的周波数帯を持つ低レベルのウェブレット係数群に対する周波数分解能よりも高くなるように、短期間フーリエ変換を行って、少なくとも2レベルのウェブレット係数群のそれぞれから、どの時間位置に、どの周波数成分が存在するかを示す周波数情報を取得する。
ここで、STFTについて説明するとともに、STFT処理部35の処理をより詳細に説明する。
フーリエ変換によって、信号のなかにどの周波数成分がどれだけ含まれているかを抽出ことができる。このようなフーリエ変換において、入力波形をいくつかのグループに分けて計算し、DFTの対象性に注目するという計算順序の工夫によって計算量を大幅に減少させたFFTが知られている。
FFTを利用して、データの周波数分布(スペクトル特性)を推定する場合には、ある時間Tに限って観測することが行われる。この場合、観測時間という窓(観測窓)から見える観測パターンのスペクトルを推定することになる。このように短時間にデータを切り出してスペクトル解析を行う手法をSTFTという。
データを切り出す際には、両端の影響を考慮しなければならない。すなわち、DFTではデータの周期性が仮定されているため、データ数が基本周期と一致しない場合には、両端のデータ値が大きく異なって、急峻に変化しているような影響が現れてしまうことがあり、実在しない高周波数成分(高調波成分)が発生する可能性がある。
そこで、データを切り出すために、窓関数を利用することが行われている。窓関数には、方形窓、ハニング窓、ハミング窓、ブラックマン窓等が知られており、窓関数は用途に応じて使い分けることが重要である。本実施形態では、以下の理由により、数式(13)で表されるハニング窓を用いている。
すなわち、本実施形態では、音声波形データは、非定常データであるため高ダイナミックレンジが望まれ、また、解析対象としている楽音周波数においては、STFT処理部35における周波数分解能が隣り合う音階の差に比べてごく小さいため複数の信号の解析に支障がないという理由により、ハニング窓を用いている。
本実施形態では、STFT処理部35は、WT処理部34によって取得された、レベル4とレベル5のウェブレット係数群に対して、STFTを行っている。各レベルに対するSTFTの観測窓の時間長(変換単位)に相当するウェブレット係数のデータ点数は、512点としており、レベル4における観測窓のシフト量、すなわち、STFTを行った一の観測窓におけるウェブレット係数の先頭から、次のSTFTを行う観測窓のウェブレット係数の先頭に至るまでのシフト量を28点とし、レベル5におけるサンプルのシフト量は、14点としている。このように、レベル5におけるシフト量をレベル4におけるシフト量を半分にすることによって、STFTによって得られる各サンプルの時間間隔をレベル4とレベル5とで同じにすることができ、時間に関する処理を容易にすることができる。
図5は、本発明の一実施形態に係るSTFTにおける周波数分解能を説明する図である。
同図に示すように、レベル4のウェブレット係数群に対してSTFTを行った場合の周波数分解能は、約2.69Hzであり、レベル5のウェブレット係数群に対してSTFTを行った場合の周波数分解能は、約1.34Hzであり、低周波数の含まれているレベル5のウェブレット係数群に対して周波数の分解能を高精度にすることができる。また、従来のように原信号をSTFTのみにより解析した場合に比して、周波数分解能を高精度にすることができる。また、上述したように、約2.69Hzと、約1.34Hzの周波数分解能は、楽音周波数における隣り合う音階の差よりも小さいため、ハニング窓を用いても支障がないことが明確である。
図1に戻り、STFT処理部35では、ウェブレット係数群の先頭から始まる512点の係数に対して数式(14)を適用することにより、存在する各周波数の振幅を求め、各周波数のパワー値を算出する。パワー値は、数式(14)を数式(15)に示すように表した場合には、数式(16)によって算出することができる。
ここで、kは、周波数の順番を示し、pは、ウェブレット係数群における変換単位の先頭からの位置を示し、h(p)は、位置pのウェブレット係数を示し、w(p)は、位置pの窓関数を示し、jは虚数単位を示し、Nは、サンプル点数(本実施形態では、512)を示し、Xkは、k番目の周波数の振幅を示し、Xcosは、振幅のcos成分を示し、Xsinは、振幅のsin成分を示し、Pkは、k番目の周波数のパワー値を示している。
また、STFT処理部35は、各レベルに応じたシフト量に従って観測窓の先頭をシフトして、当該シフトした位置から始まる観測窓の時間長に相当する係数、すなわち、512点の係数に対して上記同様な処理を実行する。本実施形態では、レベル4におけるシフト量を28点とし、レベル5におけるシフト量を14点としている。
このようにして、STFT処理部35は、どの時間位置に、どの周波数成分が存在するかを示す周波数情報を取得する。本実施形態では、STFT処理部35は、各レベルのウェブレット係数群に対して各観測窓において含まれる周波数及びパワー値を算出し、各観測窓の代表の時間位置(例えば、観測窓の先頭の係数に対応付けられている時間)、周波数、及びパワー値のデータを、これらを算出したウェブレット係数群のレベルと対応させた周波数情報を、例えば、RAM16に記憶させる。
図6は、本発明の一実施形態に係るSTFTによる解析結果を説明する図である。
同図は、図3(2)に示す楽譜に基づいた演奏から作成されたWAVEファイルに対する処理によって、WT処理部34から得られた、レベル4及びレベル5のウェブレット係数群のそれぞれに対して、STFT変換部35による処理を行った結果を併せて表示したものである。
同図に示すように、STFT処理部35による処理の結果中には、雑音である周波数成分201、202,203等と、図3(2)の音符N1に対応する周波数成分203、音符N2に対応する周波数成分204、音符N3に対応する周波数成分205、音符N4に対応する周波数成分206、音符N5に対応する周波数成分207、音符N6に対応する周波数成分209、音符N5を演奏する際に発生した倍音である周波数成分208が含まれている。ここで、周波数成分204、206、208、209は、レベル4のウェブレット係数群に対する処理により得られたものであり、周波数成分203、205、207は、レベル5のウェブレット係数群に対する処理により得られたものである。
図2に戻り、雑音除去部37は、STFT処理部35によって算出された各データから、楽器によって一般的に出力される音の周波数帯(楽音周波数帯)である20Hz〜4200Hz以外の周波数成分のデータを削除する。また、雑音除去部37は、STFT処理部35によって算出された各データから、最大パワースペクトルの1/20以下の周波数のデータを削除する。また、雑音除去部37は、STFT処理部35によって算出された各データから、データが算出されたレベルのウェブレット係数群の目的周波数帯に含まれない周波数のデータを削除する。例えば、レベル4のウェブレット係数群から得られたデータであれば、約345Hz〜約689Hz以外の周波数を削除し、レベル5のウェブレット係数群から得られたデータであれば、約172Hz〜約345Hz以外の周波数のデータを削除する。これによって、採譜に関係のない周波数のデータを適切に削除することができる。
倍音処理部38は、高レベルのウェブレット係数群から連続する複数の時間位置を含む或る時間区間にて第1周波数成分が得られ、低レベルのウェブレット係数群から或る時間区間にて第1周波数成分の整数倍の周波数を有する第2周波数成分が得られた場合、第2周波数成分の或る時間区間における最大のパワー値又は強度値に基づいて決定される閾値(例えば、第1周波数成分の或る時間区間での最大パワー値の50パーセントの値)以下であれば、或る時間区間の第2周波数成分を倍音であると判定する。また、倍音処理部38は、STFT処理部35により算出された各データから、倍音と判定された第2周波数成分の情報を削除する。本実施形態では、倍音と判定された時間的に連続する第2周波数成分の全てを削除するようにしている。
図7は、本発明の一実施形態に係る倍音成分の削除を説明する図である。
同図は、図3(2)に示す楽譜に基づいた演奏から作成されたWAVEファイルを用いた処理により得られた結果を示しており、レベル4のウェブレット係数群に対する処理により得られた結果を図中左側に示し、レベル5のウェブレット係数群に対する処理により得られた結果を図中右側に示している。
同図中において、複数の時間位置において検出された同一周波数成分の集合を棒グラフによって示している。周波数集合301は、図3(2)の音符N2に対応する音の周波数の集合であり、当該周波数集合301のパワー値は、線P1に示すようになっている。周波数集合302は、音符N4に対応する集合であり、当該周波数集合302のパワー値は、線P2に示すようになっている。周波数集合303は、音符N5の倍音に対応する集合であり、当該周波数集合303のパワー値は、線P3に示すようになっている。周波数集合304は、音符N6に対応する集合であり、当該周波数集合304のパワー値は、線P4に示すようになっている。周波数集合305は、音符N1に対応する集合であり、当該周波数集合305のパワー値は、線P5に示すようになっている。周波数集合306は、音符N3に対応する集合であり、当該周波数集合306のパワー値は、線P6に示すようになっている。周波数集合307は、音符N5に対応する集合であり、当該周波数集合307のパワー値は、線P7に示すようになっている。これら周波数集合の中で、周波数集合301と周波数集合305、周波数集合302と周波数集合306、周波数集合303と周波数集合307は、同時期に発生している。ここで、倍音である周波数集合303の最大のパワー値は、当該倍音を発生させるもとの音の周波数の集合、すなわち、周波数集合307の線P7で示されるパワー値の最大の50パーセントよりも低くなっている。
本実施形態では、倍音処理部38は、より低い目的周波数帯のレベル5のウェブレット係数群から得られた周波数集合307の最大パワー値の50パーセントを閾値とし、レベル4のウェブレット係数群から得られた同時期に発生し、且つ、周波数集合307の周波数の数倍の周波数の集合である周波数集合303の最大パワー値が閾値以下であるので、周波数集合303の全てのデータを削除する。
図8は、本発明の一実施形態に係る雑音等を削除した後の周波数を示す図である。
同図は、図6に示すデータに対して、雑音除去部37及び倍音処理部38によって雑音及び倍音の除去をした結果を示している。
図8に示すように、図6には、データとして含まれていた雑音である周波数成分201、202、203等と、倍音である周波数成分208とを適切に削除することができ、実際に演奏した音符に相当する周波数成分203、204、205、206、207、209を適切に残すことができる。
音譜情報生成部39は、倍音処理部38による倍音の周波数集合のデータを削除した後に残っている周波数のデータに基づいて、音譜情報を生成し、当該音譜情報を音譜情報記憶部40に格納する。
図9は、本発明の一実施形態に係る音譜情報の一例を示す図である。
図9(1)は、レベル4のウェブレット係数群から抽出された音譜情報を示し、図9(2)は、レベル5のウェブレット係数群から抽出された音譜情報を示している。
図9に示すように、本実施形態では、音譜情報として、音高を示す情報の一例である周波数と、当該周波数の音を発生する期間である発音期間と、当該周波数の音を発生させる所定の基準時間からの時間である発音時間と、当該音の発生を終了する時間である消音時間との情報とを対応付けたものとしている。ここで、発音期間は、同一の周波数が連続したデータに現れているその期間であり、容易に生成することができる。なお、後述の処理の迅速化を図るため消音時間も対応付けるようにしているが、消音時間は、発音時間と発音期間とを加算することにより得られるので、対応付けておかなくてもよい。音譜情報によると、例えば、C4に対応する522Hzの音は、発音時間が0秒(sec)であり、発音期間が0.213秒であり、消音時間が0.213秒であることがわかる。なお、本実施形態では、レベル4とレベル5のウェブレット係数群から得られたデータを併合し、例えば発音時間が昇順となるように並び換えた音譜情報を音譜情報記憶部40に格納している。
テンポ決定部41は、音声波形データが示す演奏におけるテンポを決定する。ここで、テンポとは、1分間に4分音符がいくつ入るかを示す値である。
本実施形態では、テンポ決定部41は、まず、音譜情報に含まれる各音を音長に基づいて複数のクラスに分け、各クラスに属する音の発音期間の合計を求め、発音期間の平均を算出する。
図10は、本発明の一実施形態に係る音長分けテーブルの一例を示す図である。
図10に示すように本実施形態では、テンポ60における各音符の音長に基づいて複数のクラスに分けている。
全音符クラス401は、音長が3.5秒以上の音が分類されるクラスであり、付点2分音符クラス402は、音長が2.5〜3.5秒の音が分類されるクラスであり、2分音符クラス403は、音長が1.75〜2.5秒の音が分類されるクラスであり、付点4分音符クラス404は、音長が1.25〜1.75秒の音が分類されるクラスであり、4分音符クラス405は、音長が0.75〜1.25秒の音が分類されるクラスであり、8分音符クラス406は、音長が0.25〜0.75秒の音が分類されるクラスであり、無音クラス407は、音長が0.25秒未満の音が分類されるクラスである。
図11は、本発明の一実施形態に係る音長分けの結果を示す図である。
同図は、図3(1)に示す楽曲を演奏したWAVEファイルに対して処理を行った場合に得られた結果を示している。
同図において、4部音符クラスには、8つの音が分類され、その発音期間の合計は、7.77秒であり、発音期間平均は、0.971である。また、付点4分音符クラスには、1つの音が分類され、発音期間合計は、1.57秒であり、発音期間平均は、1.57秒である。また、2分音符クラスには、7つの音が分類され、その発音期間の合計は、13.76秒であり、発音期間平均は、1.97秒である。
テンポ決定部41は、最も多くの音が分類されたクラスに属する音が4部音符であると決定し、数式(17)によりテンポを算出する。
ここで、Tは、テンポ60の4分音符の長さ、すなわち、1秒であり、tは、最も多くの音が分類されたクラスにおける発音期間平均の秒数である。
図11に示したように音長分けがされた場合には、テンポ決定部41は、テンポを(1/0.971)×60=61.8と算出する。
楽譜作成部42は、音譜情報記憶部40に記憶された音譜情報と、テンポ決定部41によって決定されたテンポとに基づいて、楽譜を作成する。
具体的には、楽譜作成部42は、音譜情報の周波数に基づいて音高を決定し、発音期間及びテンポに基づいて音符の種類を決定し、発音時間に基づいて五線譜上の時間軸方向の位置を決定し、これら決定した内容に基づいて、五線譜の画像データを作成し、入出力処理部33に出力する。これにより、自動採譜ウインドウ101には、作成された五線譜が表示される。
図12は、本発明の一実施形態に係る音譜情報から作成された楽譜を含む自動採譜ウインドウの一例を示す図である。
同図は、図3(2)に示す楽曲を演奏した際のWAVEファイルに対して処理を行った際のウインドウを示している。
自動採譜ウインドウ101の楽譜表示領域102には、C3の2分音符501が表示されるとともに、同時点に、C4の2分音符502が表示されている。次に、C3の2分音符503が表示され、ほぼ同じ時点にC4の2分音符504が表示されている。そして、次に、C3の2分音符505が表示され、C4の2分音符506が表示されている。このように、図3(2)に示す楽譜とほぼ同じ楽譜を再現することができる。
MIDI作成部43は、音譜情報記憶部40に記憶された音譜情報と、テンポ決定部41によって決定されたテンポとに基づいて、MIDIデータを作成し、MIDI記憶部44に格納する。
図13は、本発明の一実施形態に係るMIDIデータの構成を説明する図である。
図13(1)は、ヘッダチャンク600の構成を示し、図13(2)は、トラックチャンク610の構成を示している。
MIDIデータは、1つのヘッダチャンク600と、1つ又は複数のトラックチャンク610とによって構成される。ヘッダチャンク600は、チャンクタイプフィールド601と、データ長フィールド602と、フォーマットフィールド603と、トラック数フィールド604と、時間単位フィールド605とを有する。
チャンクタイプフィールド601は、4バイトであり、ヘッダチャンクであることを示すアスキー文字列"MThd"が格納される。データ長フィールド602は、4バイトであり、フォーマットフィールド603、トラック数フィールド604、及び時間単位フィールド605のデータ長を示す"6"が格納される。フォーマットフィールド603は、2バイトであり、フォーマットの形式を示す。フォーマット形式が"0"の場合は、トラック数が1であり、フォーマット形式が"1"又は"2"の場合には、トラック数は、1以上の任意数となる。トラック数フィールド604は、2バイトであり、トラックチャンクの数が格納される。時間単位フィールド605は、2バイトであり、4分音符分のデルタタイム、又はタイムコードに基づいた1秒の分数が格納される。
トラックチャンク610は、チャンクタイプフィールド611と、データ長フィールド612と、データフィールド613と、データ終了フィールド614とを有する。
チャンクタイプフィールド611は、4バイトであり、トラックチャンクであることを示すアスキー文字列"MTrk"が格納される。データ長フィールド612は、4バイトであり、データ部のデータ長を示す情報が格納される。データフィールド613は、任意のバイトであり、各種イベントが格納される。データ終了フィールド614は、4バイトであり、終了を示す"00 FF 2F 00"が格納される。
データフィールド613においては、各イベントの相対的位置(相対時間)を示すために用いられるデルタタイムと、コマンドが対応付けられたイベントが格納される。
コマンドとしては、例えば、音の発生を行うイベントであるノートオンコマンドと、音の停止をするノートオフコマンドとがある。
コマンドとしては、例えば、音の発生を行うイベントであるノートオンコマンドと、音の停止をするノートオフコマンドとがある。
ノートオンコマンドは、"9nH"で示され、ノートオフコマンドは、"8nH"で示される。ここで、nは、ノートナンバーを表し、0〜127が割り当てされている。標準的なピアノの中央のドであるC3が60であり、これに対して半音上がるごとに1ずつ加算された値となり、半音下がるごとに1ずつ減算された値となる。また、Hは、ベロシティであり、音の強弱を示している。ベロシティはピアニッシモpppからフォルテッシモfffまで1〜127の127段階に分けられている。本実施形態では、一律に100としている。
このような構成のMIDIデータを作成するために、MIDI作成部43は、例えば、音譜情報記憶部40に記憶された音譜情報の周波数に基づいて、音程を決定し、当該音程に対応するノートナンバーを決定し、発音時間及びテンポに基づいて、前のイベントとのデルタタイムを決定し、発音期間及び決定されたテンポに基づいて、ノートオフコマンドのデルタタイムを決定する等して、そのイベントの内容等を含むMIDIデータを作成する。
次に、自動採譜装置2による自動採譜処理の流れを説明する。
図14は、本発明の一実施形態に係る自動採譜処理を説明するフローチャートである。
なお、自動採譜処理を行うに先立って、自動採譜をするために利用する音声波形データを録音等により用意しているものとする。
自動採譜ウインドウ101において、ユーザによる入力装置12に対する操作により、自動採譜対象のWAVEファイルが指定され、実行ボタン106が押下されると、入出力処理部33が、指定されたWAVEファイルをWT処理部34に通知する、指定を受けたWT処理部34は、該当するWAVEファイルを波形データ記憶部32から取得し(ステップS1)、変数iを0に設定し(ステップS2)、変数iに1を加算する(ステップS3)。次いで、WT処理部34は、レベルiのウェブレット係数群を取得し(ステップS4)、レベルiのスケーリング係数群を取得する(ステップS5)。次いで、WT変換部34は、解析対象の音程の範囲に必要なレベルのウェブレット係数群を取得したか否か、本実施形態では、レベル5のウェブレット係数群を取得したか否かを判定し(ステップS6)、必要なレベルのウェブレット係数群を取得していない場合には、上記したステップS3からのステップを繰り返し実行する。
一方、必要なレベルのウェブレット係数群を取得した場合には、STFT処理部35にその旨を通知し、通知を受けたSTFT処理部35は、処理対象の1つのレベルのウェブレット係数群をRAM16から取得し(ステップS7)、取得したレベルのウェブレット係数群に対してSTFTを行って、時間、周波数、及びパワー値の情報を取得する(ステップS8)。
次いで、STFT処理部35は、処理対象の全レベル(本実施形態では、レベル4とレベル5)のウェブレット係数群に対してステップS8を実行したか否かを判定し(ステップS9)、終了していない場合には、未処理のレベルのウェブレット係数群に対する処理(ステップS7からの処理)を実行する。
一方、全処理対象のレベルのウェブレット係数群に対して処理を終了した場合(ステップS9のYES)には、雑音除去部37がSTFT処理部35から得られたデータから雑音に関する周波数成分のデータを削除し(ステップS10)、倍音処理部38が、倍音に関する周波数成分のデータを削除し(ステップS11)、音譜情報生成部39が雑音や倍音が除去されたデータに基づいて音譜情報を生成して、音譜情報記憶部40に格納する(ステップS12)。
次いで、テンポ決定部41が音譜情報に基づいて、テンポを決定し(ステップS13)、楽譜作成部42が、音譜情報とテンポ情報に基づいて楽譜を作成し、入出力処理部33が、作成された楽譜を自動採譜ウインドウ101に表示させる(ステップS14)。
次いで、入出力処理部33がユーザの入力装置12による操作により、MIDI作成ボタン107が押下されたか否かを判定し(ステップS15)、押下されていない場合には処理を終了する一方、押下されている場合には、MIDI作成部43は、音譜情報記憶部40に記憶された音譜情報と、テンポ決定部41によって決定されたテンポとに基づいて、MIDIデータを作成し、MIDI記憶部44に格納する(ステップS16)。
図15は、本発明の一実施形態に係る解析結果と、STFTのみによる解析結果との比較を説明する図である。
同図は、図3(1)に示す楽譜の演奏から得られた音声波形データを本実施形態により解析した結果と、従来のSTFTのみでの解析した結果とを比較して示している。
同図に示すように、従来のSTFTのみの解析によると、周波数の低い方の音程では、理論値から1〜5パーセントも誤差が生じている一方、本実施形態による解析によると、C3〜C4の各音程にわたって、音程の理論値の周波数との誤差を0.1〜0.4パーセントの範囲に収めることができる。
以上、本発明の実施形態を説明したが、この実施形態は本発明の説明のための例示にすぎず、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。
例えば、上記実施形態では、倍音成分を除去するために、倍音を発生させる可能性のある低い周波数成分の最大のパワー値に基づいて決定された閾値に基づいて、倍音か否かを判断し、倍音であると判断した場合には、該当する周波数成分の情報を削除するようにしていたが、本発明はこれに限られず、例えば、倍音となる可能性がある周波数が含まれるウェブレット係数群から得られた解析結果から、当該ウェブレット係数群の倍音となる可能性のある周波数成分についてのパワー値の平均値(平均パワー値)を算出し、当該平均値の所定の割合(例えば、50パーセント)の値を閾値として決定し、当該閾値よりも低いパワー値となっている周波数成分の情報を削除するようにしてもよく、このようにしても、倍音を効果的に削除することができる。
また、上記実施形態では、パワー値に基づいて倍音か否かを判定するようにしていたが、本発明はこれに限られず、周波数の強度(振幅)に基づいて倍音か否かを判定するようにしてもよい。
また、上記実施形態では、異なるレベルのウェブレット係数群に対するSTFT変換の観測窓の時間長に相当するウェブレット係数の数を同数としていたが、本発明はこれに限られず、異なる数であってもよく、要は、より低い目的周波数帯を持つ高レベルのウェブレット係数群に対する周波数分解能が、より高い目的周波数帯を持つ低レベルのウェブレット係数群に対する周波数分解能よりも高くなるように設定すればよい。
また、上記実施形態では、異なるレベルのウェブレット係数群に対するシフト量を同一時間間隔としていたが、本発明はこれに限られず、低レベルのウェブレット係数群に対する短時間フーリエ変換から得られる時間位置に、高レベルのウェブレット係数群に対する短時間フーリエ変換から得られる時間位置と同じ時間位置が含まれるように、各レベルのウェブレット係数群に対するシフト量を設定すればよい。
また、上記実施形態では、サンプリング周波数22050HzとしたWAVEファイルにおいて、C3〜C4の音程を解析するようにしていたために、レベル4、5とのウェブレット係数群を解析するようにしていたが、本発明はこれに限られず、例えば、より広い音程を解析するようにしてもよく、要は、サンプリング周波数と、解析する対象となる音高の周波数の範囲とに基づいて、解析対象の音程の周波数帯を包含可能な複数のレベルのウェブレット係数群に対してSTFTによる解析を行うようにすればよい。
また、上記実施形態では、自動採譜装置2がマイクロフォン13により取り込んだ音声波形データに対して自動採譜処理を行うようにしていたが、本発明はこれに限られず、外部で生成された音声波形データを自動採譜装置2に読み込んで、当該音声波形データを利用して自動採譜処理を行うようにしてもよい。
1 自動採譜システム、2 自動採譜装置、3 電子鍵盤楽器、4 スピーカ、10 装置本体、11 表示装置、12 入力装置、13 マイクロフォン、14 CPU、15 ROM、16 RAM、17 ハードディスクドライブ、18 表示処理部、19 入力I/F部、20 音声処理部、21 コンボドライブ、22 通信I/F部、23 バス、24 記録媒体、31 波形データ生成部、32 波形データ記憶部、33 入出力処理部、34 WT処理部、35 STFT処理部、37 雑音除去部、38 倍音処理部、39 音譜情報生成部、40 音譜情報記憶部、41 テンポ決定部、42 楽譜作成部、43 MIDI作成部、44 MIDI記憶部。
Claims (10)
- 音声波形データを記憶する記憶手段と、
前記記憶手段に記憶された前記音声波形データに基づいて、離散ウェブレット変換を行うことにより、異なる目的周波数帯をもつ少なくとも2レベルのウェブレット係数群を取得するウェブレット処理手段と、
前記少なくとも2レベルのウェブレット係数群のそれぞれに対して、より低い目的周波数帯を持つ高レベルのウェブレット係数群に対する周波数分解能が、より高い目的周波数帯を持つ低レベルのウェブレット係数群に対する周波数分解能よりも高くなるように、短期間フーリエ変換を行って、前記少なくとも2レベルのウェブレット係数群のそれぞれから、多数の時間位置中のどの時間位置に、多数の周波数成分中のどの周波数成分が存在するかを示す周波数情報を取得する短時間フーリエ解析手段と、
前記少なくとも2レベルのウェブレット係数群のそれぞれから取得された前記周波数情報に基づいて、音譜情報を生成する音譜情報生成手段と
を有する自動採譜装置。 - 前記短時間フーリエ解析手段において、前記高レベルのウェブレット係数群に対する周波数分解能が、前記低レベルのウェブレット係数群に対する周波数分解能よりも高くなるように、前記高レベルの前記ウェブレット係数群に対する短時間フーリエ変換の観測窓の時間長に相当するウェブレット係数の数と、前記低レベルの前記ウェブレット係数群に対する短時間フーリエ変換の観測窓の時間長に相当するウェブレット係数の数とが設定されている
ことを特徴とする請求項1に記載の自動採譜装置。 - 前記短時間フーリエ解析手段において、前記高レベルの前記ウェブレット係数群に対する短時間フーリエ変換の前記観測窓の時間長に相当するウェブレット係数の数と、前記低レベルの前記ウェブレット係数群に対する短時間フーリエ変換の前記観測窓の時間長に相当するウェブレット係数の数とが同じである
ことを特徴とする請求項2に記載の自動採譜装置。 - 前記短時間フーリエ解析手段において、前記低レベルの前記ウェブレット係数群に対する短時間フーリエ変換から得られる前記多数の時間位置に、前記高レベルの前記ウェブレット係数群に対する短時間フーリエ変換から得られる前記多数の時間位置と同じ時間位置が含まれるように、前記高レベルの前記ウェブレット係数群に対する短時間フーリエ変換の或る観測窓の先頭のウェブレット係数から次の観測窓の先頭のウェブレット係数までのシフト量と、前記低レベルの前記ウェブレット係数群に対する短時間フーリエ変換の或る観測窓の先頭のウェブレット係数から次の観測窓の先頭のウェブレット係数までのシフト量とが設定されている
ことを特徴とする請求項1乃至3のいずれか一項に記載の自動採譜装置。 - 前記短時間フーリエ解析手段において、前記高レベルの前記ウェブレット係数群に対する前記シフト量と、前記低レベルの前記ウェブレット係数群に対する前記シフト量とが、同一時間間隔である
ことを特徴とする請求項4に記載の自動採譜装置。 - 前記短時間フーリエ解析手段は、前記多数の周波数成分のそれぞれの前記多数の時間位置のそれぞれでのパワー値又は強度値を算出する値算出手段を備え、
前記自動採譜装置は、
前記高レベルのウェブレット係数群から連続する複数の時間位置を含む或る時間区間にて第1周波数成分が得られ、前記低レベルのウェブレット係数群から前記或る時間区間にて前記第1周波数成分の整数倍の周波数を有する第2周波数成分が得られた場合、前記第2周波数成分の前記或る時間区間における最大のパワー値又は強度値に基づいて、前記第2周波数成分が倍音であるか否かを判定する倍音判定手段と、
前記短時間フーリエ解析手段により取得された前記周波数情報から、前記倍音と判定された前記第2周波数成分の情報を削除する倍音削除手段とを更に備え、
前記音譜情報生成手段は、前記第2周波数成分の情報が削除された後の前記周波数情報に基づいて、前記音譜情報を生成する
ことを特徴とする請求項1乃至請求項5のいずれか一項に記載の自動採譜装置。 - 前記倍音判定手段は、前記第2周波数成分の最大のパワー値又は強度値が、前記第1周波数成分の前記或る時間区間における最大のパワー値又は強度値に基づいて決定される閾値以下であれば、当該第2周波数成分を倍音であると判定する
ことを特徴とする請求項6に記載の自動採譜装置。 - 前記少なくとも2レベルのウェブレット係数群のそれぞれから得られた前記周波数情報から、それぞれの前記ウェブレット係数群の目的周波数帯の周波数成分と異なる周波数成分の情報を削除する周波数成分削除手段を更に有し、
前記音譜情報生成手段は、周波数成分削除手段により前記周波数成分の情報が削除された後の前記周波数情報に基づいて、前記音譜情報を生成する
ことを特徴とする請求項1乃至請求項7のいずれか一項に記載の自動採譜装置。 - コンピュータに音譜情報を作成させるための自動採譜プログラムであって、
前記コンピュータを、
前記少なくとも2レベルのウェブレット係数群のそれぞれに対して、より低い目的周波数帯を持つ高レベルのウェブレット係数群に対する周波数分解能が、より高い目的周波数帯を持つ低レベルのウェブレット係数群に対する周波数分解能よりも高くなるように、短期間フーリエ変換を行って、前記少なくとも2レベルのウェブレット係数群のそれぞれから、多数の時間位置中のどの時間位置に、多数の周波数成分中のどの周波数成分が存在するかを示す周波数情報を取得する短時間フーリエ解析手段と、
前記少なくとも2レベルのウェブレット係数群のそれぞれから取得された前記周波数情報に基づいて、音譜情報を生成する音譜情報生成手段と
して機能させる自動採譜プログラム。 - 音声波形データを記憶する記憶手段を有する自動採譜装置による自動採譜方法であって、
前記自動採譜装置のウェブレット処理手段が、前記記憶手段に記憶された前記音声波形データに基づいて、離散ウェブレット変換を行うことにより、異なる目的周波数帯をもつ少なくとも2レベルのウェブレット係数群を取得するウェブレット処理ステップと、
前記自動採譜装置の短時間フーリエ解析手段が、前記少なくとも2レベルのウェブレット係数群のそれぞれに対して、より低い目的周波数帯を持つ高レベルのウェブレット係数群に対する周波数分解能が、より高い目的周波数帯を持つ低レベルのウェブレット係数群に対する周波数分解能よりも高くなるように、短期間フーリエ変換を行って、前記少なくとも2レベルのウェブレット係数群のそれぞれから、多数の時間位置中のどの時間位置に、多数の周波数成分中のどの周波数成分が存在するかを示す周波数情報を取得する短時間フーリエ解析ステップと、
前記自動採譜装置の音譜情報生成手段が、前記少なくとも2レベルのウェブレット係数群のそれぞれから取得された前記周波数情報に基づいて、音譜情報を生成する音譜情報生成ステップと、
を有する自動採譜方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006280650A JP2008096844A (ja) | 2006-10-13 | 2006-10-13 | 自動採譜装置及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006280650A JP2008096844A (ja) | 2006-10-13 | 2006-10-13 | 自動採譜装置及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008096844A true JP2008096844A (ja) | 2008-04-24 |
Family
ID=39379734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006280650A Pending JP2008096844A (ja) | 2006-10-13 | 2006-10-13 | 自動採譜装置及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008096844A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190004215A (ko) * | 2017-07-03 | 2019-01-11 | (주) 유지엘소프트 | 시창평가 시스템 및 그것을 이용한 시창평가방법 |
US20220293072A1 (en) * | 2021-03-12 | 2022-09-15 | Daegu Gyeongbuk Institute Of Science And Technology | Spiral curve type music sheet, apparatus and method for providing spiral curve type music sheet |
-
2006
- 2006-10-13 JP JP2006280650A patent/JP2008096844A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190004215A (ko) * | 2017-07-03 | 2019-01-11 | (주) 유지엘소프트 | 시창평가 시스템 및 그것을 이용한 시창평가방법 |
KR102077642B1 (ko) * | 2017-07-03 | 2020-02-14 | (주)주스 | 시창평가 시스템 및 그것을 이용한 시창평가방법 |
US20220293072A1 (en) * | 2021-03-12 | 2022-09-15 | Daegu Gyeongbuk Institute Of Science And Technology | Spiral curve type music sheet, apparatus and method for providing spiral curve type music sheet |
KR20220128168A (ko) * | 2021-03-12 | 2022-09-20 | 재단법인대구경북과학기술원 | 나선 악보, 나선 악보 제공 장치 및 방법 |
KR102479314B1 (ko) * | 2021-03-12 | 2022-12-19 | 재단법인대구경북과학기술원 | 나선 악보, 나선 악보 제공 장치 및 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6140568A (en) | System and method for automatically detecting a set of fundamental frequencies simultaneously present in an audio signal | |
JP4207902B2 (ja) | 音声合成装置およびプログラム | |
US6182042B1 (en) | Sound modification employing spectral warping techniques | |
JP4645241B2 (ja) | 音声処理装置およびプログラム | |
WO2004051622A1 (ja) | 楽曲データ作成装置及び方法 | |
JP6123574B2 (ja) | コード抽出装置、方法、およびプログラム | |
Jensen | The timbre model | |
JP4132362B2 (ja) | 音響信号の符号化方法およびプログラム記録媒体 | |
JP6281211B2 (ja) | 音響信号のアライメント装置、アライメント方法及びコンピュータプログラム | |
JP2005202354A (ja) | 信号解析方法 | |
JP3795201B2 (ja) | 音響信号の符号化方法およびコンピュータ読み取り可能な記録媒体 | |
JP2008096844A (ja) | 自動採譜装置及び方法 | |
JP4037542B2 (ja) | 音響信号の符号化方法 | |
JP3447221B2 (ja) | 音声変換装置、音声変換方法、および音声変換プログラムを記録した記録媒体 | |
JP4331289B2 (ja) | 音響信号の符号化方法 | |
JP5552794B2 (ja) | 音響信号の符号化方法および装置 | |
JP3801029B2 (ja) | 演奏情報生成方法、演奏情報生成装置およびプログラム | |
JP4695781B2 (ja) | 音響信号の符号化方法 | |
JP4268328B2 (ja) | 音響信号の符号化方法 | |
JP2008257020A (ja) | メロディーの類似度算出方法及び類似度算出装置 | |
JP7224013B2 (ja) | コード認識方法、コード認識プログラム、及びコード認識システム | |
JP6515945B2 (ja) | コード抽出装置、および方法 | |
JP4152502B2 (ja) | 音響信号の符号化装置および符号データの編集装置 | |
JP2003216147A (ja) | 音響信号の符号化方法 | |
JP3776782B2 (ja) | 音響信号の符号化方法 |