JP3888372B2 - 音信号分析装置及び方法 - Google Patents

音信号分析装置及び方法 Download PDF

Info

Publication number
JP3888372B2
JP3888372B2 JP2004217686A JP2004217686A JP3888372B2 JP 3888372 B2 JP3888372 B2 JP 3888372B2 JP 2004217686 A JP2004217686 A JP 2004217686A JP 2004217686 A JP2004217686 A JP 2004217686A JP 3888372 B2 JP3888372 B2 JP 3888372B2
Authority
JP
Japan
Prior art keywords
section
pitch
note
sound signal
interval
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
Application number
JP2004217686A
Other languages
English (en)
Other versions
JP2004334240A (ja
Inventor
知之 船木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2004217686A priority Critical patent/JP3888372B2/ja
Publication of JP2004334240A publication Critical patent/JP2004334240A/ja
Application granted granted Critical
Publication of JP3888372B2 publication Critical patent/JP3888372B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)
  • Auxiliary Devices For Music (AREA)

Description

この発明は、マイクロフォン等によって入力した音声信号や楽音信号等、そのピッチまたはノートが未確定の音信号に基づいて、音楽的な音が存在する区間(有効区間)やその音楽的な音の定常部分を分析し、そのノート(音階の音名)や音符長を自動的に分析することができるようにした音信号分析装置及び方法に関し、更に、そのためのプログラムを記憶した記録媒体に関する。
この発明に従う分析結果は、必要に応じてMIDI情報等の形態の電子的楽譜情報として出力することができるものであり、従って、この発明は人間の音声等で入力した可聴的なメロディを自動的に楽譜化することができる技術に関するものである。
最近、コンピュータ等を用いて、MIDI情報等の演奏情報を発生し、その演奏情報に基づいて演奏音を再生するコンピュータ演奏システムが新たな楽音演奏装置として注目されている。
この種のコンピュータ演奏システムでは、演奏情報を発生するためのデータを入力する方式として、リアルタイム入力方式、ステップ入力方式、数値入力方式、楽譜入力方式等がある。
リアルタイム入力方式は、テープレコーダのように演奏者が実際に演奏した鍵盤等の演奏操作子の操作情報をリアルタイムに演奏情報に変換する方式である。数値入力方式は、音高(ピッチ)、音の長さ、音の強弱等の演奏情報をコンピュータのキーボードから直接数値データとして入力する方式である。楽譜入力方式は、コンピュータのファンクションキーやマウス等を用いてディスプレイ上の楽譜(5線譜)に単純化した音譜記号等を配置していく方式である。ステップ入力方式は、音譜をMIDI鍵盤やソフトウェア鍵盤で入力し、音の長さをコンピュータのファンクションキーやマウス等を用いて入力する方式である。
上述の各入力方式のうち、リアルタイム入力方式は、実際の演奏操作状態をそのまま演奏情報として記憶することができるので、人間的な微妙な演奏上のニュアンスを表現し易く、また短時間入力が可能であるという利点を有する。しかし、この方式は演奏者自身に高度の楽器演奏能力が必要であり、初心者等には不向きな入力方式である。
そこで、リアルタイム入力方式の利点を生かし、初心者でも短時間で簡単に演奏情報を入力できるようにした演奏情報発生装置として、人声音又は自然楽器の楽音をマイクを介して直接入力し、その入力音に応じて演奏情報を発生するものがある。すなわち、これは、人声音やギター等の音(単音)をマイクから入力するだけで、簡単にMIDI信号を発生することができ、MIDIキーボード等を使用しなくてもMIDI機器を制御できる。
従来の演奏情報発生装置では、マイクからの入力音のピッチ変化に対して、次のような処理を行ってMIDI情報を発生している。すなわち、第1の方法はピッチ変化を半音単位で検出し、そのピッチのノート情報のみを発生する。第2の方法はピッチ変化を半音単位で検出し、そのピッチのノート情報と、その間のピッチ変化に関するピッチベンド情報(音高変化情報)とを発生する。第3の方法はノート検出することなく、入力信号のピッチを上下1オクターブの範囲で変化し得るピッチベンド情報として発生する。また、ノート情報(ノートオン又はノートオフ)を発生するのに、入力音のレベルを所定の基準値と比較し、その基準値よりも入力音のレベルが大きくなった時点でノートオンを、小さくなった時点でノートオフを発生している。
しかしながら、上記第1及び第2の方法のようにピッチ変化を半音単位で検出する場合において、入力音のピッチが微妙にゆれると意図しないノート情報(ノートオン又はノートオフ)が多数発生するという問題がある。また、第3の方法のようにピッチ変化をピッチベンド情報で発生する場合は、ピッチ変化をピッチベンド情報で忠実に追従させることができるが、採譜のような目的には適さない。さらに、入力レベルに応じてノート情報を発生すると、入力音のレベルのゆれに応じて意図しないノート情報が多数発生するという問題がある。
ところで、リアルタイム入力方式においては、複数の音が任意の時間間隔で時系列的にマイクに入力されるので、音の存在する部分に対して効率的な分析を行うことが要求される。すなわち、マイク入力された信号に対してピッチ等の分析を絶えず行うようにしていたのでは、実際には音が入力されていない時間においても無駄な分析処理をすることになるので好ましくない。そこで、マイク入力された信号から実際に音が存在している区間(有効区間)を抽出し、抽出された有効区間についてのみピッチ分析等の複雑な分析処理を施すようにするのが効率的である。そのための従来の有効区間の抽出法は、単純に所定基準レベルと入力信号レベルを比較して有効区間の抽出を行っていたので、入力音のレベルが微妙に変動するような場合、特に基準レベル付近で変動した場合には有効区間の抽出が不正確になると問題があった。
この発明は、マイク等からの入力音に基づき音楽的な音の定常部分すなわち1つの音符に相当する部分を分析することのできる音信号分析装置及び方法を提供することを目的とする。例えば、マイク等からの入力音のピッチ又はレベルが微妙にゆれた場合でも、そのゆれた部分以外の音楽的な音の定常部分すなわち1つの音符に相当する部分を分析することのできる音信号分析装置及び方法を提供する。詳しくは、入力された音信号からその定常部分を有効に分析し、これに基づき音のピッチを正確に分析できるようにするものである。しかして、この分析結果を必要に応じてMIDI情報等の形態の電子的楽譜情報として出力することができるようにし、人間の音声や実際の楽器演奏等で入力した可聴的なメロディを自動的に楽譜化することを正確に行うことができるようにした技術を提供しようとするものである。
請求項1に記載の本発明の音信号分析装置は、1又は複数の音符の時系列的連なりからなる任意の音信号を入力するための入力手段と、前記入力手段から入力された音信号のサンプル振幅値の所定サンプル数にわたる平均値をそれぞれ求め、その結果を時系列的な平均レベル情報として出力する演算手段と、前記演算手段によって求められた平均レベル情報が所定値以上の区間を有効区間として検出する有効区間検出手段と、検出した有効区間の中から、前記平均レベル情報の傾きに基づき、安定区間を検出する安定区間検出手段と、検出した安定区間に基づき1つ1つの音符に相当すると推量される音程区間をそれぞれ検出する音程区間検出手段と、前記検出された音程区間を、その時系列に従って、所定の音符長に対応する時間間隔で分割されたグリッド上にそれぞれ配置し、各音程区間の開始又は終了端部のうち所定の一方の端部に最も近い1つのグリッド位置を各音程区間に対してそれぞれ割り当て、その結果同じグリッド位置に複数の音程区間が割り当てられた場合には最も時間長の長い1つの音程区間を有効な音符として選択する手段とを具備したしたものである。
本発明によれば、入力手段から入力される音信号の各サンプル振幅値の所定サンプル数にわたる平均値をそれぞれ求めているので、入力された音信号のレベル変動に応答して滑らかに変化する平均レベル情報を得ることができ、音楽的な音の存在を示す有効区間を適切に検出することができるものであり、また、かかる有効区間を対象にして、その中から更に前記平均レベル情報の傾きに基づき、安定区間を検出し、さらに、検出した安定区間に基づき1つ1つの音符に相当すると推量される音程区間をそれぞれ検出し、更に、検出された各音程区間をその時系列に従って所定の音符長に対応する時間間隔で分割されたグリッド上にそれぞれ配置することに基づき適切な音程区間を有効な音符として選択するようにしているので、音信号分析に適した1つ1つの音符に相当する区間を適切に検出することができる。このように、複数段階の区間分析によって音信号分析用の1つ1つの音符に相当する区間を検出するようにしたので、音分析、特にピッチ検出、の精度を向上させることができる。入力された音信号の中から1つ1つの音符に相当すると推量される音程区間をそれぞれ検出する場合、検出された音程区間が全て有効な音符に相当しているとは限らず、その中には、無効なものもあり得る。無効な区間を判定するために、所定の音符長(例えば許容される最小音符長)に対応する時間間隔で分割されたグリッドを、有利に使用するようにしている。すなわち、検出された各音程区間を、その時系列に従って、所定の音符長に対応する時間間隔で分割されたグリッド上にそれぞれ配置し、各音程区間の開始端部に最も近い1つのグリッド位置を各音程区間に対してそれぞれ割り当て、その結果同じグリッド位置に複数の音程区間が割り当てられた場合には最も時間長の長い1つの音程区間を有効なものとして選択するようにしている。
請求項2に記載の本発明の音信号分析装置は、1又は複数の音符の時系列的連なりからなる任意の音信号を入力するための入力手段と、前記入力手段から入力された音信号のサンプル振幅値の所定サンプル数毎にその最大値を検出し、検出された最大値を補間することによって補助波形を作成する波形作成手段と、前記波形作成手段によって作成された補助波形が所定値以上の区間を第1の区間として検出する第1区間検出手段と、前記第1の区間内における前記音信号のサンプル振幅値に基づいて音信号分析用の第2の区間を、該第1の区間の中から検出する第2区間検出手段と、前記第2の区間内における前記音信号中の隣接する波形同士の一致度合いを分析し、一致していると分析された連続する複数の波形からなる区間を第3の区間として検出する第3区間検出手段と、検出した第3の区間に基づき1つ1つの音符に相当すると推量される音程区間をそれぞれ検出する音程区間検出手段と、前記検出された音程区間を、その時系列に従って、所定の音符長に対応する時間間隔で分割されたグリッド上にそれぞれ配置し、各音程区間の開始又は終了端部のうち所定の一方の端部に最も近い1つのグリッド位置を各音程区間に対してそれぞれ割り当て、その結果同じグリッド位置に複数の音程区間が割り当てられた場合には最も時間長の長い1つの音程区間を有効な音符として選択する手段とを具備したものである。
これによれば、入力された音信号のサンプル振幅値の所定サンプル数毎にその最大値を検出し、検出された最大値を補間することによって補助波形を作成し、この補助波形が所定値以上の区間を第1の区間として検出することで、音の存在する有効区間を検出している。すなわち、この補間波形は音信号波形の各ピークレベル間を結ぶ振幅エンベロープ波形に類似した波形として得られるもので、音信号の振幅レベルの傾向を示しているので、検出した第1の区間は、音の存在する有効区間に相当している。このような補間波形の算出は、平均レベル情報の演算よりも素早く行えるので、処理速度を早くすることができ、各区間の検出速度を向上することができ、音信号の分析時間を短縮し、かつそのための演算装置の負担を軽減することができる、という効果をもたらす。また、第3の区間では波形の一致度合いを分析するようにすることで求めているので、特にピッチ検出に適した安定した区間を適切に検出することができる。また、上述と同様に、第3の区間に基づき検出された各音程区間をその時系列に従って所定の音符長に対応する時間間隔で分割されたグリッド上にそれぞれ配置することに基づき適切な音程区間を有効な音符として選択するようにしているので、音信号分析に適した1つ1つの音符に相当する区間を適切に検出することができる。このように、複数段階の区間分析によって音信号分析用の1つ1つの音符に相当する区間を検出するようにしたので、音分析、特にピッチ検出、の精度を向上させることができる。
更に、本発明においては、上述した各構成すなわち発明は、音声分析装置の装置発明として構成することができるのみならず、音声分析方法の方法発明として構成することができる。また、本発明の実施は、コンピュータプログラムの形態で実施することができ、そのようなコンピュータプログラムを記憶した記録媒体の形態で本発明を実施することもできるし、それも本出願における本発明の範囲に含まれる。
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
図2はこの発明に係る楽音情報分析装置及び演奏情報発生装置を内蔵した電子楽器の構成を示すハードブロック図である。
電子楽器は、マイクロプロセッサユニット(CPU)1、プログラムメモリ2及びワーキングメモリ3からなるマイクロコンピュータによって制御される。
CPU1は、この電子楽器全体の動作を制御するものである。このCPU1に対して、データ及びアドレスバス1Eを介してプログラムメモリ2、ワーキングメモリ3、演奏データメモリ4、押鍵検出回路5、マイクインターフェイス6、スイッチ検出回路7、表示回路8及び音源回路9がそれぞれ接続されている。
プログラムメモリ2はCPU1の各種プログラム(システムプログラムや動作プログラムなど)、各種データ等を格納するものであり、リードオンリーメモリ(ROM)で構成されている。
ワーキングメモリ3は、演奏情報やCPU1がプログラムを実行する際に発生する各種データを一時的に記憶するものであり、ランダムアクセスメモリ(RAM)の所定のアドレス領域がそれぞれ割り当てられ、レジスタ、フラグ、バッファ、テーブル等などとして利用される。
演奏データメモリ4は、マイク等からの入力音に基づいて発生された演奏情報(MIDIデータ)などを記憶するものである。
また、CPU1には、ハードディスク装置1Hなどを接続して、そこに自動演奏データやコード進行データ等の各種データを記憶していてもよく、更に、前記動作プログラムを記憶するようにしてもよい。また、前記ROM2に動作プログラムを記憶せずに、ハードディスク装置1Hにこれらの動作プログラムを記憶させておき、それをRAM3に読み込むことにより、ROM2に動作プログラムを記憶したときと同様の動作をCPU1に行わせることができる。このようにすると、動作プログラムの追加やバージョンアップ等が容易に行える。また、着脱自在な外部記憶媒体1G、例えばCD−ROM等、を設けてもよい。この外部記憶媒体1G例えばCD−ROMには、各種データ及び任意の動作プログラムを記憶していてもよい。このCD−ROMに記憶されている動作プログラムや各種データは、CD−ROMドライブ(図示せず)によって、読み出され、ハードディスク装置1Hに転送記憶させることができる。これにより、動作プログラムの新規のインストールやバージョンアップを容易に行うことができる。
なお、通信インターフェイス1Fをデータ及びアドレスバス1Eに接続し、この通信インターフェイス1Fを介してLAN(ローカルエリアネットワーク)やインターネットなどの種々の通信ネットワーク上に接続可能とし、他のサーバコンピュータとの間でデータのやりとりを行うようにしてもよい。これにより、ハードディスク装置1H内に動作プログラムや各種データが記憶されていないような場合には、サーバコンピュータからその動作プログラムや各種データをダウンロードすることができる。この場合、クライアントとなる楽音生成装置である電子楽器から、通信インターフェイス及び通信ネットワークを介してサーバコンピュータに動作プログラムや各種データのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドに応じて、所定の動作プログラムやデータを、通信ネットワークを介して電子楽器1に送信する。電子楽器では、通信インターフェイスを介してこれらの動作プログラムやデータを受信して、ハードディスク装置にこれらを蓄積する。これによって、動作プログラム及び各種データのダウンロードが完了する。
鍵盤10は、発音すべき楽音の音高を選択するための複数の鍵を備えており、各鍵に対応してキースイッチを有しており、また必要に応じて押鍵速度検出装置や押圧力検出装置等のタッチ検出手段を有している。
押鍵検出回路5は、発生すべき楽音の音高を指定する鍵盤10のそれぞれの鍵に対応して設けられた複数のキースイッチからなる回路を含んで構成されており、新たな鍵が押圧されたときはキーオンイベントを出力し、鍵が新たに離鍵されたときはキーオフイベントを出力する。また、鍵押し下げ時の押鍵操作速度又は押圧力等を判別してタッチデータを生成する処理を行い、生成したタッチデータをベロシティデータとして出力する。このようにキーオン、キーオフイベント及びベロシティなどのデータはMIDI規格に準拠したデータ(以下「MIDIデータ」とする)で表現されておりキーコードと割当てチャンネルを示すデータも含んでいる。
マイクロフォン1Aは、音声信号や楽器音を電圧信号に変換して、マイクインターフェイス6に出力する。マイクインターフェイス6は、マイクロフォン1Aからのアナログの電圧信号をディジタル信号に変換してデータ及びアドレスバス1Eを介してCPU1に出力する。
テンキー&各種スイッチ1Bは、数値データ入力用のテンキーや文字データ入力用のキーボード、音符化処理(音信号分析処理及び演奏情報発生処理)のスタート/ストップスイッチなどの各種の操作子を含んで構成される。なお、この他にも音高、音色、効果等を選択・設定・制御するための各種操作子を含むが、その詳細については公知なので説明を省略する。
スイッチ検出回路7は、テンキー&各種スイッチ1Bの各操作子の操作状態を検出し、その操作状態に応じたスイッチ情報をデータ及びアドレスバス1Eを介してCPU1に出力する。
表示回路8はCPU1の制御状態、設定データの内容等の各種の情報をディスプレイ1Cに表示するものである。ディスプレイ1Cは液晶表示パネル(LCD)やCRT等から構成され、表示回路8によってその表示動作を制御されるようになっている。
このテンキー&各種スイッチ1B、並びにディスプレイ1CによってGUI(Graphical User Interface)が構成される。
音源回路9は、複数チャンネルで楽音信号の同時発生が可能であり、データ及びアドレスバス1Eを経由して与えられた楽音トラック上のMIDIデータを入力し、このデータに基づいた楽音信号を生成し、それをサウンドシステム1Dに出力する。
音源回路9において複数チャンネルで楽音信号を同時に発音させる構成としては、1つの回路を時分割で使用することによって複数の発音チャンネルを形成するようなものや、1つの発音チャンネルが1つの回路で構成されるような形式のものであってもよい。また、音源回路9における楽音信号発生方式はいかなるものを用いてもよい。例えば、発生すべき楽音の音高に対応して変化するアドレスデータに応じて波形メモリに記憶した楽音波形サンプル値データを順次読み出すメモリ読み出し方式(波形メモリ方式)、又は上記アドレスデータを位相角パラメータデータとして所定の周波数変調演算を実行して楽音波形サンプル値データを求めるFM方式、あるいは上記アドレスデータを位相角パラメータデータとして所定の振幅変調演算を実行して楽音波形サンプル値データを求めるAM方式等の公知の方式を適宜採用してもよい。また、これらの方式以外にも、自然楽器の発音原理を模したアルゴリズムにより楽音波形を合成する物理モデル方式、基本波に複数の高調波を加算することで楽音波形を合成する高調波合成方式、特定のスペクトル分布を有するフォルマント波形を用いて楽音波形を合成するフォルマント合成方式、VCO、VCF及びVCAを用いたアナログシンセサイザ方式等を採用してもよい。また、専用のハードウェアを用いて音源回路を構成するものに限らず、DSPとマイクロプログラムを用いて音源回路を構成するようにしてもよいし、CPUとソフトウェアのプログラムで音源回路を構成するようにしてもよい。
音源回路9から発生された楽音信号は、アンプ及びスピーカからなるサウンドシステム1Dを介して発音される。
次に、この発明に係る電子楽器が音信号分析装置及び演奏情報発生装置として動作する場合の一例を説明する。
図1は図2の電子楽器が演奏情報発生装置として動作する際のメインフローを示す図である。メインフローは次のようなステップで順番に実行される。
ステップ11:まず、初期設定処理を行い、図2のワーキングメモリ3内の各レジスタ及びフラグなどに初期値を設定したりする。
このとき、テンキー&各種スイッチ1B上の音符化処理スタートスイッチがオン操作された場合に、ステップ12〜ステップ18までの一連の処理を行う。
ステップ12:このステップは音符化処理スタートスイッチのオン操作有りと判定された場合に行われるものであり、ここでは、そのオン操作に対応して、マイクインターフェイス6を介してマイクロフォン1Aから入力される音声信号や楽器音の電圧波形を所定周期(例えば44.1kHz)でサンプリング処理し、それをディジタルサンプル信号としてワーキングメモリ3内の所定領域に記憶する。このサンプリング処理は従来の公知の方法で行うので、ここでは詳細は省略する。
ステップ13からステップ16までが音符化処理スタートスイッチのオン操作に対応した音符化処理である。この音符化処理ではサンプリングされた音声信号や楽器音のディジタルサンプル信号を種々分析してそれを音高列すなわち楽譜表示可能なMIDIデータに変換する。
ステップ13:ステップ12の音声サンプリング処理の結果得られたディジタルサンプル信号に基づいて音楽的な音が存在する区間すなわち有効区間がどこにあるのかを検出するための有効区間検出処理を行う。この有効区間検出処理の詳細については後述する。
ステップ14:ステップ13の有効区間検出処理の結果、検出された各有効区間をさらにレベルの安定している安定区間に細分化するための安定区間検出処理を行う。この安定区間検出処理の詳細についは後述する。
ステップ15:ステップ14の安定区間検出処理の結果、検出された各安定区間内に存在する音楽的な音の定常部分(1つの音符に相当する部分)を検出する定常区間検出処理を行う。この定常区間検出処理の詳細についは後述する。
ステップ16:ステップ13〜ステップ15の処理の結果、得られた各定常区間毎に最も最適な音符を割り当てる音高列決定処理を行う。すなわち、このステップではMIDIデータを発生する。この音高列決定処理の詳細については後述する。
ステップ17:ステップ16の処理によって発生されたMIDIデータに基づいて楽譜を作成する楽譜作成処理を行う。この楽譜作成処理は従来の技術によって容易に実現可能なので詳細は省略する。
ステップ18:ステップ16の処理によって発生されたMIDIデータに基づいた自動演奏処理を行う。この自動演奏処理についても従来の技術によって容易に実現可能なので詳細は省略する。
図3は図1のステップ13の有効区間検出処理の詳細を示す図である。以下、ステップ12によって求められたディジタルサンプル信号からどのようにして有効区間が検出されるのか、この有効区間検出処理の動作を図7及び図8を用いて説明する。
ステップ31:ステップ12によって求められたディジタルサンプル信号に基づいて平均音圧レベルを算出する。図7は、サンプリング周波数44.1kHzでサンプリングされた音声信号すなわちディジタルサンプル信号の波形値の一例を示す図である。図7では、約20ポイント分の波形値が示されている。ステップ31では、所定のサンプル数(例えば、10msec相当の時間に対応するサンプル数)にわたるサンプル振幅値の平均を求め、それを平均音圧レベルとする。従って、サンプリング周期44.1kHzの場合においては、この所定サンプル数は『441個』であり、あるサンプルポイントの平均値は、そのポイントを最終ポイントとする10msec分前の各ポイントの合計値、すなわち最終ポイントから441ポイント分前の波形値の合計を441で除した値となる。なお、0ポイントから440ポイントまでは、441ポイント分の波形値が存在しないので、0ポイントからその該当ポイントまでの波形値の平均をそのポイントの平均値とする。こうして、時系列的な平均音圧レベル情報が各サンプルタイミング毎に得られる。
図7では、説明の便宜上15ポイント分の波形値の平均値を平均音圧レベルとして算出する場合を図示している。従って、最初の15ポイントまではそれまでの波形値の合計値をそのポイント数で除する形になっている。また、波形値の合計は、その絶対値を合計することによって求める。
図8(A)はこのようにして求められた平均音圧レベルの値を、サンプリングポイントを横軸とした場合をグラフ化して示したものである。以下、図8(A)の平均音圧レベルによって形成される曲線を平均音圧レベルカーブと称する。
なお、図7のように15ポイント毎に平均音圧レベルを求める場合には、カットオフ周波数10Hz程度のローパスフィルタを掛けて、レベル変動を滑らかにしている。従って、実際に441ポイント分の波形値の平均を取る場合には、カットオフ周波数80〜100Hz程度のローパスフィルタを掛けて、そのレベル変動を滑らかにするのが望ましい。
また、ここでは、あるサンプリングポイントの平均値を求めるのに、そのポイントより前の所定数のポイントの波形値を合計して平均音圧レベルを求める場合について説明したが、あるサンプリングポイントを中心として前後に所定数のポイントの波形値を合計してもよいし、サンプリングポイントから後に所定数のポイントの波形値を合計してもよい。
ステップ32:前記ステップ31で求められた図8(A)のような平均音圧レベルカーブを、所定のしきい値に基づいて有効区間又は無効区間にそれぞれ分類する。この処理では、しきい値として、その平均音圧レベルカーブの中の最大波形値の20パーセントの値をしきい値とする。これ以外の値をしいき値としてもよいことは言うまでもない。例えば、平均音圧レベルカーブの平均値をしきい値としたり、又はその平均値の80パーセントをしきい値としたり、平均音圧レベルカーブの最大値の半分の値をしきい値としたりしてもよい。
しきい値は図8(B)のような点線で示される。従って、この点線(しきい値)と平均音圧レベルカーブとの交点位置が有効区間及び無効区間の境界となり、この点線(しきい値)よりも大きい区間が有効区間となり、小さい区間が無効区間となる。図8(B)では、有効区間を○印で示し、無効区間を×印で示す。
ステップ33:人間が音高を認知できる必要な最低長を0.05msecとした場合に、前記ステップ32で決定された無効区間の中からこの最低長よりも小さな無効区間を有効区間に変更する。例えば、サンプリング周期が44.1kHzの場合にはサンプリング数で2205個以下の無効区間を有効区間に変更する。図8(B)においては、左側から第3番目及び第5番目の無効区間がこの短い無効区間に相当する。従って、ステップ33の処理の結果、図8(B)は図8(C)のようになり、有効区間が拡張される。なお、この処理において、全区間内の始まりと終わりの部分に存在する無効区間は、短い無効区間に相当するが、短いからといって有効区間に変更しない特別な領域として△印を用いて表現している。
ステップ34:前記ステップ33の処理の結果、得られた有効区間及び無効区間のパターンの中から0.05msec以下の短い有効区間を無効区間に変更する処理を行う。この処理は前記ステップ33と同様の処理にて行う。図8(C)においては、右端の有効区間がこの短い有効区間に該当する。従って、ステップ34の処理の結果、図8(C)は図8(D)のようになる。図8(D)から明らかなように、有効区間は第1区間から第4区間までの全部の4つの区間となる。なお、区間の終わりの部分の△印は第4の有効区間とみなされる。
ステップ35:ステップ34で特定された有効区間の平均音圧レベルカーブの平均値を求め、それが所定値よりも小さい場合にその部分を無効区間とする最終的な有効区間のチェックを行う。この平均値はその有効区間に存在する各ポイントの平均音圧レベル値の合計をその有効区間長で除することによって得られる。このようにして得られた平均音圧レベルの平均値が図8(D)の各区間の下側に示してある。第1区間は60、第2区間は25、第3区間は45、第4区間は15である。この平均音圧レベルの平均値がその区間の最大波形値の30パーセントを下回った場合は、その区間を無効区間とする。ここでは、第2区間及び第4区間が該当するので、それぞれの区間が無効区間になる。図8(E)はこのステップ35の有効区間チェック処理によって特定された有効区間と無効区間を示す図である。
ステップ36:ステップ31〜ステップ35までの処理によって特定された有効区間を拡張する処理を行う。例えば、図8(F)に示すように最大波形値の15パーセントを拡張許可レベルとして、そこの部分に線を引き、有効区間を特定する境界線をその拡張許可レベルの線のところまで拡張する。すなわち、各有効区間の端から外側に向かって平均音圧レベルカーブの上昇下降をチェックしながら、そのカーブが拡張許可レベルを下回ったかどうかのチェックを行いながら拡張処理を行う。このとき、下降が上昇に反転した場合や拡張許可レベルを下回った場合には、そこまでを有効区間とする。
また、図8(G)は、この有効区間拡張処理の別の例を示す図である。拡張許可レベルを最大波形値の5パーセントとし、平均音圧レベルカーブの下降が終了した位置を有効区間の末端とする。又は、上昇が始まった位置を末端としてもいい。この拡張処理によれば、図8(F)の場合よりも第1区間及び第3区間の拡張幅が大きくなる。このようにして、人間が音高として認知することの可能な有効区間が最終的に決定することになる。
なお、拡張許可レベルが低く、かつ、有効区間が近い距離にある場合には、ある有効区間の末尾側の拡張位置と次の有効区間の先頭側の拡張位置とが接近することもあれば、また同じ位置になることもある。また、下降が終わる部分と上昇が始まる部分のいずれを区切りにするかによっても境界位置が変わる。この拡張処理の結果、有効区間同士が重複した場合には、両方の中間位置を境界位置とすればよい。
なお、図8(F)及び(G)では、有効区間の拡張を前後に行う場合について説明したが、前方向又は後方向のみにしてもよい。また、前後に拡張する場合に、前方向と後方向とで拡張許可レベルを異ならせるようにしてもよい。
図4は図1のステップ14の安定区間検出処理の詳細を示す図である。以下、ステップ13によって求められた有効区間内の平均音圧レベルカーブに対して、レベルの安定した領域を検出するための安定区間検出処理を行う。この安定区間検出処理の動作を図9を用いて説明する。図9は、図8のA点からB点までの第1の有効区間について、安定区間を検出する場合について示してある。
ステップ41:図3で検出された有効区間内の平均音圧レベルカーブに基づいて、その傾斜度数を算出する。この処理では、図9(B)に示すように、傾斜を算出するための算出幅を例えば100ポイントとし、その算出幅のシフト量を例えば50ポイントとして、A点からB点に向かって順次シフトしながら、その傾斜度数を算出する。A点がサンプルポイント『000』だとすると、サンプルポイント『000』と『100』との間の傾斜を求め、次にそれをそれぞれ50ポイントずつシフトしたサンプルポイント『050』と『150』との間の傾斜度数を求める。例えば、サンプルポイント『000』の平均音圧レベルが『325』で、サンプルポイント『100』の平均音圧レベルが『1576』である場合、その傾斜度数は(1576−325)/100=12.51となる。以後、サンプルポイント『100』と『200』との間、『150』と『250』との間、『200』と『300』との間のように、順番にその傾斜度数を算出する。算出された傾斜度数の一例を図9(B)に示す。図から明らかなように、サンプルポイント『000』,『100』間の傾斜度数は12.51、サンプルポイント『050』,『150』間の傾斜度数は32.42、サンプルポイント『100』,『200』間の傾斜度数は20.12、サンプルポイント『150』,『250』間の傾斜度数は11.84、サンプルポイント『200』,『300』間の傾斜度数は5.24、サンプルポイント『250』,『350』間の傾斜度数は4.82、サンプルポイント『300』,『400』間の傾斜度数は2.34、サンプルポイント『350』,『450』間の傾斜度数は3.89、サンプルポイント『400』,『500』間の傾斜度数は5.36となる。これらの傾斜度数は前者のサンプルポイントにおける傾斜度数として記憶されることになる。すなわち、サンプルポイント『000』の傾斜度数は12.51、サンプルポイント『050』の傾斜度数は32.42として、それぞれのサンプルポイント毎に傾斜度数が記憶される。
このようにしてA点からB点までの全区間における傾斜度数を算出し、次のステップ42の安定区間抽出処理を行う。
ステップ42:前記ステップ41で算出された傾斜度数に基づいて今度は安定区間の抽出を行う。すなわち、各サンプルポイントにおける傾斜度数の中から所定値(例えば10)以下のものを安定部分とみなし、この安定部分とみなされたサンプルポイントの数が所定数以上すなわち所定時間だけ継続している場合にその連続した安定部分を安定区間とする。この所定時間は、テンポも考慮に入れて、例えば、約2000サンプルポイント程度とする。図9(A)のような平均音圧レベルカーブの場合は、図9(C)のようなa,b,cの3ヵ所が安定区間として探索されることになる。
ステップ43:前記ステップ42によって抽出された安定区間の存在に基づいて人間は初めてその安定区間の開始点付近に音符のトリガである音の開始点があることに気付く。ここでは、その音符の開始点付近を決定するために、前記ステップ42で抽出された安定区間を拡張する。
この安定区間を拡張する場合、すなわち音符の開始点を決定する場合、最初の安定区間aについては、必然的にA点がその安定区間aの音符の開始点となり、最後の安定区間cについては、必然的にB点がその安定区間cの音符の終了点となる。ところが、安定区間aの音符終了点、安定区間bの音符開始点は容易に求めることができない。そこで、安定区間の終了点から次の安定区間の開始点までの間における傾斜度数の最も大きいサンプルポイントをその安定区間の音符終了点及び次の安定区間の音符開始点とすることにした。各安定区間aの音符終了点及び安定区間bの音符開始点は図9(D)のようにC点となり、安定区間bの音符終了点及び安定区間cの音符開始点はD点となる。
なお、上述の説明では、傾斜度数の最も大きいサンプルポイントを安定区間の音符開始点及び次の安定区間の音符終了点とする場合について説明したが、これに限らず、安定区間の終了点から次の安定区間の開始点までの間で安定度数が所定の値(しきい値)を最初に越えた場合のサンプルポイントを音符終了点(音符開始点)としてもよいし、安定区間の開始点の直前で所定の値(しいき値)を下回った場合のサンプルポイントを音符終了点(音符開始点)としてもよいし、以上の3つの方法で求められたサンプルポイントを複合的に計算して新たに音符終了点(音符開始点)を求めるようにしてもよい。このようにして求められた区間AC,CD,DBがそれぞれのレベルに対応した安定区間になる。すなわち、図9の場合、安定区間aのレベルに対応した安定区間はACとなり、安定区間bのレベルの対応した安定区間はCDとなり、安定区間cのレベルに対応した安定区間はDBとなる。
図5は図1のステップ15の定常区間検出処理の詳細を示す図である。ステップ14によって求められた安定区間の中から定常区間がどのようにして検出されるのか、その定常区間検出処理の詳細を図10から図17までの図面を用いて説明する。
音声や楽音などの音楽的なオーディオ信号を分析する場合、定常部がどこにあるかを知ることは重要なことである。リズム系以外の音色では、定常部の周期性によって音高が決定され、定常部を骨格として音価が決定されるからである。この実施の形態では、定常部は、楽譜として表した時に一つの音符に相当する区間のことであり、音色、音高、ベロシティという音の3大要素の変化に注目し、人間が一つの音として認識する区間を時間軸上で検出しようとすることをいう。
以下、図5のステップに従って、この定常区間検出処理について説明する。
定常区間を検出するためには、まず音信号波形の周期の基準位置を検出することが必要である。この基準位置の検出方法には大きく分けて、0クロス位置検出法とピーク位置検出法のいずれか一方を用いるのが一般的である。0クロス位置検出法によって周期の基準位置を検出するためには、フィルタ等で倍音をできるだけ取り除かないと検出は困難であり、それに帯域分割も必要である。ピーク位置検出法の場合も倍音をできるだけ取り除くことが望ましいが、0クロス位置検出ほどはシビアでないため、音声や楽器の発音可能周波数帯をカットオフ周波数としてバンドパスフィルタを掛けるだけでよく、帯域分割などの処理を特に行う必要はない。従って、ピーク位置検出法の方が手順が簡単で、そこそこの結果が得られる方法であり、望ましい。従って、この実施の形態では、ピーク位置検出法のよって周期の基準位置を検出する場合について説明する。
ステップ51:第1次バンドパスフィルタ(第1次BPF)を通過させて、所定の倍音を削除する。これは、発音可能な帯域をカットオフ周波数として、バンドパスフィルタを掛けることである。音声の場合、人間の発音可能な帯域は80〜1000Hz程度であり、ユーザを限定せずに、オールマイティに分析するにはこれくらいが必要である。但し、ユーザが限定されている場合には、発音可能な帯域をある程度絞ることによって、倍音による間違いを減少させて、検出精度を向上させることができる。ギターなら、80〜700Hz程度であるが、これも予め音高枠を決めておくと精度が上がる。楽器ごとの違いなども予め設定しておくと精度が向上する。図10(A)は、第1次BPF処理後の音声波形の一部を示すものである。
ステップ52:ステップ51の第1次BPF処理によって得られた楽音波形信号に対してピーク位置検出法を用いて1周期の基準となるピーク基準位置検出処理を行う。このピーク位置検出方法は公知の手法によって行う。楽音波形のピークレベルを検知して、これを所定の時定数回路で保持し、その保持されている値をスレッシュルドホールド電圧として次にこのスレッシュルドホールド電圧以上になった場合を次のピークレベルとして保持し、それを順次繰り返すことによって、図10(A)のようなピーク位置を検出することができる。図10(A)はこのピーク位置を検出する際のスレッシュルドホールド電圧の様子を示す図である。
図10(A)の音声波形からは、図10(B)のようなピーク位置が検出されることになる。図10(B)ではピーク基準位置P1,P2,P3,P6は共に規則正しく所定の位置で現れているが、ピーク基準位置P4,P5については、音声波形の若干の乱れによって誤差を含む位置にピークが現れている。
これは、ステップ51の第1次BPF処理のカットオフ周波数の帯域が広い範囲を網羅しているため、図10(A)のようにピーク位置が連続して表れたからである。
ステップ53:前記ステップ52で検出されたピーク基準位置に基づいて、あるピーク基準位置から始まる基本区間と、その基本区間の直後の次のピーク基準位置までの区間(以下、移動区間とする)との間の2つの区間の波形について波形が同じであるか否かの比較を行う。
図10(B)に示されるピーク基準位置について考察すると、ピーク基準位置P1からピーク基準位置P2までが区間d、ピーク基準位置P2からピーク基準位置P3までが区間eとなる。このとき、両区間d,eは帯域最低長よりも大きく、帯域最高長よりも小さいので、区間dが基本区間となり、区間eが移動区間となり、後述する波形比較処理の対象となる。
次に、区間eが基本区間となり、ピーク基準位置P3からピーク基準位置P4までが区間fとなる。このとき、両区間e,fは帯域最低長よりも大きく、帯域最高長よりも小さいので、今度は区間eが基本区間となり、区間fが移動区間となり、後述する波形比較処理の対象となる。
ところが、ピーク基準位置P4からピーク基準位置P5までの区間は帯域最低長よりも小さいので、比較対象の区間とはならずに、次のピーク基準位置P5からピーク基準位置P6までの区間gが区間fとの波形比較対象となる。
なお、波形比較処理の結果、区間f及び区間gは他の区間dや区間eとは異なった波形として認識されることになる。まず、ワーキングメモリ(RAM)には、ピーク基準位置情報をアドレスとして、そこに一致フラグ又は不一致フラグがそれぞれ書き込まれるデータ領域が設けられる。そして、図10(B)のような場合には、区間dと区間eとは一致すると判定されるので、区間eに対応するピーク基準位置情報P2に関するデータ領域には一致フラグが書き込まれる。一方、区間eと区間fとは一致しないと判定されるので、区間fに対応するピーク基準位置情報P3に関するデータ領域には不一致フラグが書き込まれる。ピーク基準位置P4からピーク基準位置P5までの区間は帯域最低長よりも小さいので、ピーク基準位置情報P4及びP5に関するデータ領域には不一致フラグが書き込まれる。なお、ピーク基準位置情報P1及びP6に関するデータ領域には一致フラグが書き込まれているものとする。このようにして順次ピーク基準位置情報と共に書き込まれた一致フラグ及び不一致フラグの様子が図10(C)に示されている。
波形比較処理は後述する誤差率を算出する方法によって行われる。
図13はこの波形比較処理の中で行われる誤差率の算出方法を説明するための図である。
まず、誤差率の算出対象となる2つの波形が図12の示すような比較波1Xと比較波2Xであるとする。この波形は図10のピーク基準位置によって区切られた範囲となる。まず、比較波1X及び比較波2Xについて、最大振幅値が100パーセントとなるようにその振幅値の正規化を行う。まず、比較波1Xは比較波1Yとなり、比較波2Xは比較波2Yとなる。ここで、比較波2Xは比較波1Xに比べて時間軸(横軸)方向の長さが短いので、比較波2Xを比較波1Xと同じ時間幅となるように伸長する。すなわち、比較波2Yの時間軸を伸長して比較波2Zにする。
この比較波1Yと比較波2Zとの間で誤差率の計算が行われる。
図13は、比較波1Yと比較波2Zとの間の誤差率を算出する場合の具体的な値を示す図である。図では、比較波1Yと比較波2Zの最初の1周期の波形すなわちサンプリング数で24個分について誤差率を算出する場合について説明する。
比較波1Yと比較波2Zの同じサンプリング位置についてその差分を算出し、その差分の絶対値の合計を求める。図13の場合には絶対値の合計値は122である。これをサンプリング数24で除することによって、誤差率が求まる。この場合には誤差率は5となる。そこで、同じ波形がどうかのしいき値を10とすれば、図13の場合の誤差率5は10以下なので、同じ波形として処理されることになる。なお、図13において、各波形は1000を最大レベルとして正規化されている。
ステップ54:ステップ53の波形比較処理の結果を利用して、誤差率が所定値(例えば10)よりも小さな区間同士を繋げて、それを疑似的な一致区間とし、各一致区間から抽出されるピッチの最大値と最小値を検出し、それに基づいてカットオフ周波数帯を決定する。例えば、波形比較処理の結果得られた複数の一致区間の中のピッチの最小値が235ポイントで、最大値が365ポイントだとする。この一致区間にやや余裕を持たせるために、最小値を1割減とし、最大値を1割増しとすると、一致区間は約212ポイントから約402ポイントになる。これは、サンプリング周波数が44.1kHzだと、110Hzから208Hzのオーディオ信号の周波数帯に相当する。従って、この110Hzから208Hzをカットオフ周波数帯とする。
ステップ55:ステップ54で決定された新たなカットオフ周波数帯を用いて、第2次バンドパスフィルタ(第2次BPF)を通過させて、不要な倍音を除去する。例えば、前述の場合には、カットオフ周波数帯は110Hzから208Hzの範囲となる。これによって、倍音による間違いを減少させて、検出精度を向上させることができる。
ステップ56:ステップ52のピーク基準位置検出処理と同じ処理を行う。
ステップ57:ステップ53の波形比較処理と同じ処理を行う。
ステップ55からステップ57までの一連の処理によって、誤差の原因となる低周波や高調波がカットされてより精度の高いピーク基準位置検出処理及び波形比較処理が可能となり、前回よりも精度の高い一致区間が得られる。ステップ57の波形比較処理によって、図10(C)のように一致フラグ及び不一致フラグによって特徴付けられた有効区間の波形は、図10(D)のような三つの定常区間X,Y,Zのようなピッチ列が求められる。
ステップ58:ステップ57までの処理によって得られた図10(D)のようなピッチ列を用いても良いが、さらに精度を高めるために、各ピーク基準位置におけるピッチデータを補間して、1サンプルポイント毎に1ピッチデータとなるように補間する。この場合に、図10(A)から明らかなように最初のピーク基準位置より前のサンプルポイント及び最後のピーク基準位置より後のサンプルポイントについては、補間するためのピッチデータが存在しないためピッチの補間を行うことができない。そこで、最初のピーク基準位置より前のサンプルポイントについては最初のピーク位置におけるピッチデータを、最後のピーク基準位置より後のサンプルポイントについては最後のピーク位置におけるピッチデータをそのまま適用することにした。そして、それぞれのピーク基準位置間においては、両者のピッチデータの値を直線補間して適用する。例えば、図10(B)において、ピーク基準位置P1のピッチデータがPD1、ピーク基準位置P2のピッチデータがPD2であるとすれば、ピーク基準位置P1とP2との間の任意のサンプルポイントPVにおけるピッチデータは、次式によって求められる。
(PD2−PD1)×(PV−PA)/(P2−P1)
ステップ59:ステップ58の処理によって求められた各サンプルポイント毎のピッチデータを用いてバンドパスフィルタ処理を行う。すなわち、ピッチデータは時間経過と共に変化するので、カットオフ周波数帯も時間的に変動する、いわやる時変動バンドパスフィルタ(BPF)処理を行う。これによって、楽音波形信号はサイン波形に近い波形に変形されるので、このような波形に対してピーク位置検出処理を行うことによって、理想的なピーク位置検出を行うことができる。また、これを基準に比較処理を行えるので、誤差が最小限に抑えられるようになるため、高精度で同波形(同母音)区間を見つけることが可能となる。
ステップ5A:ステップ59の時変動BPF処理を経た楽音波形に対して、ステップ52のピーク基準位置検出処理と同じ処理を行う。
ステップ5B:ステップ59の時変動BPF処理を経た楽音波形に対して、ステップ53の波形比較処理と同じ処理を行う。
上述の説明では、図5の定常区間検出処理のステップ52、56及び5Aでは、楽音波形のプラス側だけに注目してピーク基準位置を検出する場合について説明したが、音声音や楽器音などのようにピッチを有する楽音波形は、プラス側、マイナス側、又はプラス側マイナス側の両側に強いピークが現れることがある。従って、前述のようにプラス側にピークが強く現れている場合にはプラス側に注目してピーク基準位置を検出することによって、ピッチの検出が可能である。この場合、鋭いピークが両側に現れている場合も問題ないが、マイナス側に偏って強く現れる場合がある。このような場合には、その強く現れる側に注目してピーク基準位置の検出を行う方が良いことは言うまでもない。仮に、ピーク基準位置の検出をピークが弱く現れる方向に注目して行ったとすると、ピーク基準位置の検出自体が曖昧になり、思ったようにピッチを検出することができなくなるというおそれが生じる。ピークがプラス側マイナス側のどちらかに偏って現れるという現象は、発音する人間や楽器のその時々の条件に応じて種々変化するものなので、一概にどちら側に注目してピーク基準位置を検出したらよいかということは言えないのが現状である。
そこで、強いピークがどちら側に現れてもよいように、予め楽音波形をチェックして、ピークがプラス側又はマイナス側のどちらに強く現れているかを検出し、検出された側の楽音波形に基づいてピーク基準位置の検出及びピッチ検出を行うようにすればよい。例えば、図5のステップ51の第1次BPF処理後における安定区間の楽音波形が図11のようであったとする。この楽音波形の場合、強いピークはマイナス側に現れ、弱いピークがプラス側に現れている。この楽音波形の両側についてピーク基準位置の検出処理を施した場合、ピークの強さは異なるがどちら側にも安定したピークが現れているので、プラス側でもマイナス側でもほぼ変わりなく規則的なピーク基準位置を検出することは可能である。従って、この楽音波形の場合には、プラス側に注目して図5の定常区間検出処理を行ってもなんら支障はないことになる。しかしながら、楽音波形によっては、周期が比較的短かくて、長く繰り返す波形などの場合には、徐々にそのピークが鈍ることもあり、プラス側だけに注目して定常区間処理を行った場合に、正確なピーク基準位置を検出できなくなることがある。従って、図11のような波形の場合でも、できるだけ強いピークの現れるマイナス側に注目することが望ましい。
そこで、図4の安定区間検出処理によって検出された安定区間毎に、その区間全体で楽音波形の絶対値の最大がプラス側又はマイナス側のどちらに存在するかを検出し、検出する側に注目してピーク基準位置の検出を行うようにすればよい。図11の場合にはマイナス側に絶対値の最大が存在するので、マイナス側に注目してピーク基準位置の検出が行うことが望ましいことになる。これによって、倍音などに惑わされることなくピーク基準位置を検出することができる。
なお、上述の実施の形態では、楽音波形のピークレベルを検知して、これを所定の時定数回路で保持し、その保持されている値をスレッシュルドホールド電圧として次にこのスレッシュルドホールド電圧以上になった場合を次のピークレベルとして保持し、それを順次繰り返すことによって、ピーク位置を検出していた。しかしながら、この方法だと、時定数をどの程度に設定するかによって、所望のピーク基準位置を検出することができるか否かが決定していたので、倍音を相当な帯域で含む音声音や楽器音の場合には、整然としたピークがなかなか出現しない場合が多いという問題を有していた。そこで、上述の実施の形態では、検出されたピーク基準位置が後の周波数帯決定処理に用いることのできる正確なものであるか否かの判定を、検出されたピーク位置に基づいた波形比較処理によって行っていた。このことは、前述のピーク基準位置検出処理によって検出されたピーク位置がさほど正確なものでもなくてもよいということを意味するものである。 そこで、楽音波形のピークレベルを検知する場合に、時定数をある程度小さめに設定しておき、楽音波形からピーク基準位置として可能性のあるものを多数抽出し、抽出されたピーク基準位置に基づいて波形比較処理を行って、ピーク基準位置を順次決定していくようにしてもよい。この場合、図14のような楽音波形のプラス側に注目してピーク位置を検出すれば、各ピーク位置は1周期内で3箇所抽出される。この1周期当たり3箇所のピーク位置に基づいてそれぞれ波形比較処理を行うと、その処理に要する時間は大変なものとなる。故に、ここでは、まず、同波形であると認定された区間に基づいて、これ以降の同波形区間の検出処理を効率的に行うようにした。
例えば、図14のような楽音波形の場合、ピーク位置としてPa〜Poが検出されることになる。従って、最初に波形比較処理されるのは、ピーク位置Paを起点とした以下の16通りの組み合わせについてである。
(Pa−Pb)と(Pb−Pc)、(Pa−Pb)と(Pb−Pd)、
(Pa−Pb)と(Pb−Pe)、(Pa−Pb)と(Pb−Pf)、
(Pa−Pc)と(Pc−Pd)、(Pa−Pc)と(Pc−Pe)、
(Pa−Pc)と(Pc−Pf)、(Pa−Pc)と(Pc−Pg)、
(Pa−Pd)と(Pd−Pe)、(Pa−Pd)と(Pd−Pf)、
(Pa−Pd)と(Pd−Pg)、(Pa−Pd)と(Pd−Ph)、
(Pa−Pe)と(Pe−Pf)、(Pa−Pe)と(Pe−Pg)、
(Pa−Pe)と(Pe−Ph)、(Pa−Pe)と(Pe−Pi)
この結果、区間(Pa−Pd)と区間(Pd−Pg)の波形が一致すると判定される。この結果、ピーク位置Paはピッチ基準位置PPaとなり、他のピーク位置Pb,Pcは候補から除外される。そして、次はピーク位置Pdを起点として同じようして16通りの組み合わせについて波形比較処理を行い、ピーク位置Pdがピッチ基準位置PPdとなる。以下、同様にして、ピッチ基準位置が次々と検出されることになる。
なお、16通りの中から同波形区間を検出する場合には、16通り全ての誤差率を算出し、その中で所定値(例えば10)以下の誤差率で最小のものを同波形区間としてもよいし、順次算出された誤差率の中で所定値(例えば10)以下のものが現れた時点でそれを同波形区間としてもよい。
このように同波形区間を抽出するのに多数の組み合わせについて誤差率の算出処理を行っていると、相当の時間を要することになるので、ここでは、前述のように同波形であると認定された区間に基づいて、これ以降の同波形区間の検出処理を行う。すなわち、前述の16通りの組み合わせの中でも、
(Pa−Pb)と(Pb−Pd)、(Pa−Pb)と(Pb−Pe)、
(Pa−Pb)と(Pb−Pf)、(Pa−Pc)と(Pc−Pd)、
(Pa−Pc)と(Pc−Pg)、(Pa−Pd)と(Pd−Pe)、
(Pa−Pd)と(Pd−Pf)、(Pa−Pe)と(Pe−Pf)、
(Pa−Pe)と(Pe−Pg)
の9通りについては比較処理を行わない。これは比較対象の波形区間長の比が2倍近いので、比較するまでもなく同波形とはなりえないので、事前にそれらの比較を行わないようにするためである。
従って、ここでは、次の7通りの組み合わせについて波形比較処理を行う。
(Pa−Pb)と(Pb−Pc)、(Pa−Pc)と(Pc−Pe)、
(Pa−Pc)と(Pc−Pf)、(Pa−Pd)と(Pd−Pg)、
(Pa−Pd)と(Pd−Ph)、(Pa−Pe)と(Pe−Ph)、
(Pa−Pe)と(Pe−Pi)
すると、前述の場合と同じく区間(Pa−Pd)と区間(Pd−Pg)の波形が一致すると判定される。この結果、ピーク位置Paはピッチ基準位置PPaとなり、他のピーク位置Pb,Pcは候補から除外される。そして、次はピーク位置Pdを起点として同じようして7通りの組み合わせについて波形比較処理を行うことになるが、ここでは、区間(Pd−Pg)に基づいて、次の比較対象となる区間を限定する。すなわち、区間(Pd−Pg)の区間長に±αとなるような区間(Pg−Pi)、(Pg−Pj)、(Pg−Pk)に対して波形比較処理を行う。ここで、αとして、例えば、区間(Pa−Pd)の約4分の1の長さを用いる。なお、αにはこれ以外の適当な値を用いてもよいことはいうまでもない。この波形比較処理の結果、区間(Pd−Pg)と区間(Pg−Pj)が同波形区間と判定される。従って、これ以降は3通りの組み合わせについて波形比較処理を行えばよいので、演算処理が非常に楽になる。
ステップ5C:ステップ51からステップ5Bまでの処理によって得られた定常区間を拡張する。すなわち、ステップ51からステップ5Bまでの処理を行った結果、各定常区間X,Y,Zが図10(D)のように1個の不一致区間によって区切られている場合はよいが、図10(C)のように定常区間が複数の不一致区間によって区切られている場合には、各不一致区間を定常区間に接続して、定常区間を拡張しなければならない。このステップ5Cはこの定常区間の拡張処理を行うものである。
例えば、ステップ51からステップ5Bまでの処理によって、1つの安定区間が図15のように第1同母音部XXと第2同母音部YYという同波形区間すなわち定常区間が決定された場合、その安定区間の先頭部分に接する第1同母音部XXの先頭周期区間S1と、安定区間の末尾部分に接する第2同母音部YYの最終周期区間E2とは、その安定区間に沿って拡張すればよい。ところが、第1同母音部XXと第2同母音部YYとの間の不一致区間N1〜N6については単純に拡張することはできないので、次のように拡張する。
まず、前記ステップ53、57及び5Bの波形比較処理よりも誤差率の許容度の大きい拡張用誤差率に基づいて、第1同母音部XXの最終周期区間E1と不一致区間N1、N2、N3、N4、N5、N6の順に比較し、拡張用誤差率よりも小さいと判断された不一致区間を第1同母音部XXに組み込んで拡張する。同じく第2同母音部YYの先頭周期区間S2と不一致区間N6、N5、N4、N3、N2、N1の順に比較し、拡張用誤差率よりも小さいと判断された不一致区間を両方の同母音部XX、YYに組み込んで拡張する。図15(A)の場合は、不一致区間N1,N2が第1同母音部XXに組み込まれ、不一致区間N6が第2同母音部YYに組み込まれ、結果として、図15(B)のようになったとする。
なお、各同母音区間に組み込まれずに残った不一致区間N3,N4,N5は次のようにして、いずれかの同母音区間に組み込むようにする。不一致区間N3と、第1同母音部XXに組み込まれた不一致区間N2との間の波形比較処理を行って誤差率を求め、不一致区間N5と、第2同母音区間YYに組み込まれた不一致区間N6との波形比較処理を行って誤差率を求め、両方の誤差率を比較して、誤差率の小さい方(一致する度合いの高い方)をその同母音部として組み込み、拡張する。この結果、不一致区間N2と不一致区間N3との誤差率の方が小さいので、図15(C)のように、不一致区間N3が第1同母音部XXに組み込まれる。今度は、不一致区間N2と不一致区間N4との誤差率を求め、不一致区間N6と不一致区間N5との誤差率と比べ、同じく誤差率の小さい方を組み込む。このようにして、図15(C)のように不一致区間N3,N4が第1同母音部XXに組み込まれ、不一致区間N5は第2同母音部YYに組み込まれる。
なお、前述のように不一致区間N3が第1同母音区間に組み込まれた時点で、図15(D)のように、この不一致区間N3を第1同母音区間とみなして、次の誤差率算出の際の不一致区間N4と不一致区間N3とを比較対象区間としてもよいことはいうまでもない。
また、この誤差率の小さいほうをいずれかの同母音区間に組み込む際に、誤差率に上限値を設け、誤差率がその上限値を越えた場合には、その不一致区間は同母音区間に組み込まないようにしてもよい。
以上のようにして、すき間区間を両側の同母音区間に組み込み、定常区間の拡張処理を終了する。
なお、前述の波形比較処理では、ステップ59の時変動BPF処理の施された楽音波形に対して、ステップ5Bの波形比較処理を行う場合について説明したが、この場合だと、BPF処理後のサイン波形に近い波形に対して比較処理を行うことになるので、母音毎の特徴までもがフィルタリングされてしまい同母音区間を抽出するという意義が薄れてしまう恐れがある。そこで、ピーク位置検出用と波形比較処理用の波形を別途用意して、それに基づいてそれぞれピーク位置検出及び波形比較処理を行うようにしてもよい。すなわち、ピーク位置検出用の波形としては時変動BPF処理後の波形をそのまま用い、波形比較処理用としてはその時変動BPF処理に用いた周波数成分の数倍周期の周波数帯波形を残すようなBPF処理を行った波形を用いるようにする。
例えば、ステップ5Aのピーク基準位置検出処理によって検出されたピーク基準位置に基づいてそれぞれの波形区間長の周波数を求めた場合、次のような周波数列になったとする。
134.6Hz、135.2Hz、145.7Hz、135.7Hz、・・・
従って、この周波数列を基本周波数列として、その整数倍の周波数帯を今度はカットオフ周波数とする時変動BPF処理をそれぞれの周波数帯毎に行い、それによって得られた波形を合成する。すなわち、上記のような周波数列の場合には、基本周波数列の2倍の周波数列として、
269.2Hz、270.4Hz、291.4Hz、271.4Hz、・・・
3倍の周波数列として、
403.8Hz、405.6Hz、437.1Hz、407.1Hz、・・・
4倍の周波数列として、
538.4Hz、540.8Hz、582.8Hz、542.8Hz、・・・
のように、それぞれ基本周波数列の整数倍の周波数列をカットオフ周波数とする時変動BPF処理をそれぞれ別々に行う。
このようにして得られた各周波数列に対応したBPF処理後の波形を合成して得られた合成波形をステップ5Bの波形比較処理の対象波形として使用する。
これによって、同母音区間の検出時には、音色(母音)の変化に従った正確な同母音区間の検出を行うことができるようになる。
なお、基本周波数を最低周波数とし、基本周波数の整数倍を最高周波数とするバンドパスフィルタ処理を行い、それを波形比較処理の対象波形として使用してもよいことはいうまでもない。
ステップ5D:ステップ51からステップ5Cまでの処理によって得られた定常区間について今度は音高の変化や安定性を考慮して細分化処理を行い、最終的な定常区間を決定する。ステップ5Cまでの定常区間検出処理では、波形を引き延ばして比較しているため、『ああ』などのような連続母音による音声波形の音高変化であっても、それを1つの同じ音としてとらえるような仕組みになっている。従って、楽器音の楽音波形の場合には、持続系の楽器音の音高変化を見つけ出せないような事態も起こる。そこで、この実施の形態では、ステップ5Cまでの処理によって得られた定常部区間ごとに音高変化の状態を調べて、その状態に応じてさらに分割する必要があるかどうかの判定を行い。必要があると判定された場合には、定常部区間をさらに細かな定常区間に分割する。
すなわち、ある定常区間の中におけるピーク基準位置間の長さ(周期長)を計算し、それでサンプリング周波数を割ることによってそのピーク基準位置における周波数が算出される。各定常区間を構成する各波形の周波数の値に基づいて、その波形区間の周波数f1と前波形区間の周波数f0との差分(すなわち比)を、ノートに対応したリニア軸で数値化した値すなわち「音程のセント値」に基づいた相対値xで表わすと、下記式のようになる。
1/f0 = 2(x/12)
これを対数で表わして、xを解くと、
x = log(f1/f0)/log(12√2)
なる式によって求められる。なお、「12√2」は、2の12乗根である。周知のように、これは、2つの周波数の差すなわち比(すなわち音程)をセント値に変換する公式に対応している。ただし、一般的なセント値の表現では半音の音程が100セントで表現されるが、上記式に従うxは数値「1」が半音の音程に相当しており、半音の音程を「1」とする、小数点以下の値を含む値である。しかし、これは小数点の位取りの仕方の問題でしかないので、上記相対値xは、実質的にセント値に相当するものであると考えてもよく、要するに、相対的な音程情報のことである。上記式では、この相対値xは、f1とf0のどちらが大きいかによってプラス又はマイナスの符号を持つことになるが、ピッチ安定区間の検出のためにはこの正負符号は不要であるから、これを除去した絶対値表現|x|で表わしたものを「ノート距離」ということにする。図16(A)は、このようにして求められる「ノート距離」の時間的変化の関数(以下、ノート距離変動曲線という)の一例を示すもので、縦軸が「ノート距離」、横軸が時間である。このノート距離変動曲線がフラットである区間が、ピッチが安定している区間に相当する。
図16(A)のようなノート距離変動曲線を微分してその立下り又は立上りの大きい部分を区切りとすれば、2箇所のピッチ安定区間PS1及びPS2が検出される。
なお、このようにしてピッチ安定区間を求めてもよいが、この実施の形態では、動的ボーダ曲線を算出し、それに基づいてピッチ安定区間を検出するようにした。ここで、動的ボーダ曲線は、ノート距離変動曲線に基づいて算出されるものであり、例えば、あるサンプルポイントPXにおける動的ボーダは、開始位置からサンプルポイントPXまでのノート距離変動曲線の平均値を求め、それに所定の定数を乗じたものである。なお、これにオフセット値を加算してもよい。図16(A)の場合は、動的ボーダ曲線は曲線AC1のようになる。この動的ボーダ曲線AC1とノート距離変動曲線NC1とを比較して、ノート距離変動曲線NC1が動的ボーダ曲線AC1よりも小さな区間をピッチ安定区間とする。なお、このとき、動的ボーダ曲線AC1がノート距離変動曲線NC1よりも小さくなった時点で、動的ボーダ曲線AC1の演算を停止し、その値を保持し続けて、ノート距離変動曲線NC1とその保持していた値とが等しくなった時点で前回までの動的ボーダ曲線AC1の値をリセットして、再び最初から同じように動的ボーダ曲線AC1の演算を開始する。このようすが図16(B)に示されている。すると、図16(B)のようなピッチ安定区間PS3及びPS4が求まることになる。図16のようなノート距離変動曲線NC1の場合は、微分処理によって検出されたピッチ安定区間も、動的ボーダ曲線によって検出されたピッチ安定区間もさほど変わりはない。しかしながら、図17のようにノート距離変動曲線NC2の場合には、明確な違いが現れる。
図17のノート距離変動曲線NC2の場合は、同母音区間の後半部分でピッチが不安定になっているため、曲線NC2の傾きでピッチ安定区間を検出すると、図17(A)のようにピッチ安定区間PS5,PS6,PS7,PS8が多数現れてしまう。しかしながら、図17のノート距離変動曲線の場合、人間の耳はピッチが不安定な部分でそのピッチ変化に対して鈍く(疎く)反応するようになるので、実際には図17(A)のような多数のピッチ安定区間を感じとることはなく、図16(B)のような大まかな2つのピッチ安定区間を感じ取ることになる。
一方、前述の動的ボーダ曲線によってピッチ安定区間を検出すれば、人間の耳と同じような反応を行わせることが可能となる。すなわち、図17のノート距離変動曲線NC2の動的ボーダ曲線を求めると、図17(B)のような曲線AC2になる。従って、この動的ボーダ曲線AC2よりも小さなノート距離変動曲線NC2の部分がピッチ安定区間PS9及びPSAとなり、図16のような大まかな2区間として把握されるようになる。すなわち、音程が安定している区間(図17の安定区間PS9)では、その後にそれなりの音程変化が発生すると音の区割りが変わったこと、つまり新しい音が始まったということを人間は感じる。逆に、音程が不安定な区間(図17の安定区間PSA)では多少の音程の変化は人間の耳にはあまり感じ取られなくなり、新しい音すなわち区間として認識しない。従って、音程が不安定な区間ではそれなりの大きな音程の変化でないと、音程の変化として認められなくなる。このような人間の耳に近いピッチ安定区間の検出を可能とするために、上述のような動的ボーダを曲線を用い、一連の処理で安定区間又は不安定区間を動的に検出し、区間分けを行っている。
このようにして検出されたピッチ安定区間が図5の定常区間検出処理によって最終的に検出された定常区間すなわち楽譜として表した時に一つの音符に相当する区間になる。
図6は図1のステップ16の音高列決定処理の詳細を示す図である。音高列決定処理は、ステップ15によって検出された各定常区間に対して最適な音高列を決定するための処理である。以下、この音高列決定処理について図18及び図19を用いて説明する。
音声や楽音などを最終的に音符情報に変換する場合、ある特定周波数をどの音高に丸めるかによってメロディが大幅に変わってしまい、思ったような検出ができない場合が多い。そこで、この実施の形態では、相対音を主体として音高を決定し、さらにそれに調を利用して一番ふさわしい音高遷移を選択することによって音高列を決定するようにした。
この音高列決定処理の一例を図6のフローチャートに従って説明する。
ステップ61:ステップ15(図5)の定常区間検出処理によって得られた各定常区間に対してその区間の代表周波数を決定する。図19(A)は、最終的に得られた定常区間の一例を示す図である。ここでは全部で12個の区間が検出されたものとして、各区間に括弧記号で囲まれた〔0〕〜〔12〕の区間番号を割り当ててある。
各定常区間の代表周波数を決定する場合に重要なことは、各定常区間の周期位置から周波数の動向を洗い出して、その区間固有の周波数を1つに決定することである。そのための方法として、第1の方法は定常区間全体の平均周波数をその区間の代表周波数とする。第2の方法は定常区間の丁度中間付近の周期(周波数)をその区間の代表周波数とする。第3の方法はピッチが安定している部分の平均周波数をその区間の代表周波数とする。
なお、この実施の形態では、図5のステップ5Dのノート距離による細分化処理の際に使用したノート距離変動曲線、及びその時に検出されたピッチ安定区間を用いて代表周波数を算出する。すなわち、図5のステップ5Dの細分化処理によって細分化された区間すなわちピッチ安定区間におけるノート距離変動曲線の平均値を求める。この平均値を静的ボーダとする。例えば、図17のようなノート距離変動曲線NC2の場合には、ピッチ区間PS9における静的ボーダはSB1となり、ピッチ区間PSAにおける静的ボーダはSB2となる。そして、各ピッチ区間PS9及びPSAにおけるノート距離変動曲線NC2がこの静的ボーダSB1及びSB2よりも小さい区間を代表周波数検出区間F1及びF2として、その代表周波数検出区間F1及びF2に存在する各波形のピッチに基づいてその定常区間(ピッチ安定区間)PS9及びPSAの代表周波数を決定する。
例えば、図18の代表周波数検出区間F1を構成する波形区間が図19(B)のような12個であり、各波形区間の周期長は図示の通りとする。この場合、この代表周波数検出区間F1における周期長の平均値は、255.833となる。ここで、周期長はサンプリング数で表されているので、サンプリング周波数が44.1kHzだから、この代表周波数検出区間F1の代表周波数は、その周期長の平均値でサンプリング周波数を除することによって得られるので、図19(B)の場合には172.38Hzとなる。この場合、代表周波数の値は小数点2桁を有効として扱う。図19(C)はこのようにして図19(A)のような各定常区間の代表周波数を算出した結果を示す図である。
ステップ62:ステップ61の処理によって各定常区間の代表周波数が決定されると、今度はその代表周波数に基づいて各定常区間の相前後する定常区間番号同士のノート距離を決定する。ノート距離の決定は図5のステップ5Dで用いた演算式と同様にして求める。図19(C)にはこのようにして算出されたノート距離の一例が示されている。
ステップ63:算出されたノート距離の小数点以下一桁を四捨五入して、ノート距離を12音階上の各音高へ丸め込む。例えば、図19(C)の場合には、各ノート距離は四捨五入されて、右欄の整数のようになる。この整数は、前音高からのノート番号上の差を示すことになるので、最初の音高を決定することによって、音高列データを完成することが可能となる。図19(C)の最右欄に示す音高列データが最初の音高を0とした場合の音高遷移のようすを示すデータである。
すなわち、図19(C)の場合には0−2−4−5−2−3・・・となる。
ステップ64:第1音の音高を決定する。まず、最も簡単な方法は、第1音にデフォルト値として60のノートナンバ(ノートネームC4)音を割り当てる。すなわち、MIDI規格の場合、ノートナンバの限界は0〜127なので、第1音の音高として、ノートナンバ60(ノートネームC4)の音を割り当てる。これによって、高音側(プラス側)には67半音分、低音側(マイナス側)には60半音分だけ音高を振ることができる。
このようにすると図19(C)の最右欄の音高列を示すデータは、60(C4)−62(D4)−64(E4)−65(F4)−62(D4)−63(D#4)・・・・となる。
ステップ65:ステップ64で決定された音高列データを修正する。すなわち、ステップ64で決定された音高列データの振れ幅を検出し、それが低音側(マイナス側)に−60以下に振れている場合には、その最小振れ幅に合わせてデフォルト値60を修正する。この修正は、最小振れ幅のノートが0以上となるようにデフォルト値を上側にシフトすることによって行う。例えば、最小振れ幅が−64の場合には、計算式−60−(−64)=4の結果に従って、デフォルト値60を4ノート分上側にシフトして、第1音として64を割当てる。高音側(プラス側)に+67以上振れている場合にも同様に最大振れ幅に合わせてデフォルト値60を修正すればよい。なお、低音側(マイナス側)及び高音(プラス側)の両方において振れ幅がオーバーすることは人間の発声帯域から判断してあり得ないので、そのような場合は除外する。なお、このようなことが起こり得るような場合には、特別に音域を0〜256の範囲で設定するようにしてもよい。
なお、ステップ64では、第1音の音高をデフォルト値(例えば60)として決定し、音高列データを作成する場合について説明したが、これに限らず、最初の定常区間の代表周波数に最も近い純正率音階の周波数を検出し、その音階に当てはめるようにしてもよい。
例えば、図19(C)の場合には、区間番号〔0〕の代表周波数は172.38Hzなので、第1音の音高をそれに最も近いノートナンバ53(ノートネームF3)に決定する。
これによって、図19(C)の音高列を示すデータは、53(F3)−55(G3)−57(A3)−58(A#3)−55(G3)−56(G#3)・・・・となる。
なお、これ以外にも種々の方法で音程列を割り当ててもよいことは言うまでもない。
次に、この発明に係る電子楽器が音信号分析装置及び演奏情報発生装置として動作する場合の第2の実施の形態について説明する。
この第2の実施の形態に係る電子楽器が音信号分析装置及び演奏情報発生装置として動作する際のメインフローは図1と同じなので、その説明は省略する。ただし、メインフローの中のステップ13〜ステップ15の各処理の内容が前述の第1の実施の形態のものとは異なるので、以下その異なる点について詳細に説明する。
図20は図1のステップ13の有効区間検出処理の詳細を示す図であり、図3に対応したものである。有効区間検出処理は、ステップ12の音声サンプリング処理の結果得られたディジタルサンプル信号に基づいて音楽的な音が存在する区間すなわち有効区間を検出するための処理である。以下、この有効区間検出処理の詳細を図23を用いて説明する。
ステップ201:ステップ12によって求められたディジタルサンプル信号を所定のサンプル数毎に区切る処理を行う。図23(A)は、サンプリング周波数44.1kHzでサンプリングされた音声信号すなわちディジタルサンプル信号の波形値の一例を示す図である。図23(A)には、約4408ポイント分の波形値が示されている。図23(D)には、その2倍の約8816ポイント分の波形値が示されている。ステップ201では、所定のサンプル数(例えば、音声の最低周波数を80Hzとした場合におけるその最大周期に対応するサンプル数)でディジタルサンプル信号を区切る。従って、サンプリング周期44.1kHzの場合には、この所定サンプル数は『551=44100/80』である。図23(B)は図23(A)の波形値に対応しており、この波形値が551サンプル数毎に区切られた場合の各波形区間S1〜S8の様子を示す図である。
ステップ202:ステップ201によって区切られた区間毎に、その区間内に存在するディジタルサンプル信号波形の最大値を抽出する。図23(C)には、図23(A)のディジタルサンプル信号波形が点線で示され、その各区間S1〜S8内における各波形の最大値が黒点で示されている。
ステップ203:ステップ202で求められた各区間の最大値を補間(例えば直線補間)し、補助波形を作成する。図23(D)は、図23(A)〜(C)の約2倍の区間に相当する補助波形を示すものであり、各区間の最大値を直線補間することによって得られた補助波形を示している。なお、図23(A)のディジタルサンプル信号波形は点線で示されている。
次のステップ204〜ステップ206では、このようにして得られた補助波形に基づいて有効区間の抽出処理が行われる。
ステップ204:前記ステップ203で求められた図23(D)のような補助波形を、所定のしきい値Thに基づいて有効区間又は無効区間にそれぞれ分類する。この処理では、しきい値Thとして、最大波形値の約3分の1の値をしきい値とする。これ以外の値をしきい値Thとしてもよいことは言うまでもない。例えば、図23(D)の実線波形の平均値をしきい値Thとしたり、又はその平均値の80パーセントをしきい値Thとしたりしてもよい。
従って、このしきい値Thと補助波形との交点位置が有効区間及び無効区間の境界となり、このしきい値Thよりも大きい区間が有効区間となり、小さい区間が無効区間となる。
ステップ205:人間が音高を認知できる必要な最低長を0.05msecとした場合に、前記ステップ202で決定された無効区間の中からこの最低長よりも小さな無効区間を有効区間に変更する。例えば、サンプリング周期が44.1kHzの場合にはサンプリング数で2205個以下の無効区間が、人間が音高を認知できる必要な最低長である0.05msec以下の無効期間に対応するので、そのような無効区間を有効区間に変更する。図23(D)の無効区間は、波形区間で3個分(サンプリング数で約1653個分)なので、この最低長よりも小さな無効区間に相当するので、このステップ205の処理によって有効区間に変更される。
ステップ206:前記ステップ205の処理の結果、得られた有効区間及び無効区間のパターンの中から0.05msec以下の短い有効区間を無効区間に変更する処理を行う。この処理は前記ステップ205と同様の処理にて行う。
図21は図1のステップ14の安定区間検出処理の詳細を示す図であり、図4に対応したものである。以下、図20の有効区間検出処理によって求められた有効区間内のディジタルサンプリング信号に対して、レベルの安定した領域を検出するための安定区間検出処理を行う。この安定区間検出処理の動作を図24〜図26を用いて説明する。
ステップ211:図20の有効区間検出処理によって検出された有効区間内のディジタルサンプリング信号に基づいて、波形のピークが強く出ているサイドを検出する。すなわち、図24(A)のように有効区間内のディジタルサンプリング信号のプラス(+)側の波形のピーク値maxとマイナス(−)側の波形のピーク値minのそれぞれの絶対値を取り、どちらの絶対値が大きいかによって、ピークの強く出ているサイドを決定する。なお、これ以外の方法でピークの強く出ているサイドを決定するようにしてもよい。例えば、上位3〜5個のピーク値の絶対値の合計を比較して決定するようにしてもよい。
ステップ212:ステップ211でピークの検出されたサイドにおいて、前方(時間経過方向)に向けてエンベロープを取り、そのピーク部を検出する。すなわち、図24(B)のように、プラス側の波形に対して前方にエンベロープを取り、そのピーク部を検出する。この結果、図24(B)の場合、ピーク部としてP1〜P4の4点が検出される。
ステップ213:今度はステップ212とは逆の方向(時間経過とは逆方向)に向けてエンベロープを取り、そのピーク部を検出する。すると、図24(C)のように、同じ位置にピーク部P1〜P4が検出されるが、波形によってはこれ以外にもピーク部PPが検出される。このことは、徐々にレベルが上がっている波形においては、いずれか一方向だけでエンベロープ検出を行った場合には、倍音ピークをピッチのピークとして取り間違え、実際にピークでない箇所(ピーク部PPなどのようなもの)を誤ってピークとして検出してしまうことがある。従って、ステップ212及びステップ213のように、異なる方向でエベロープを取り、ピーク部を検出することによって、ピーク部の検出精度を向上することができる。
ステップ214:ステップ212及びステップ213の処理によって検出されたピーク部を直線補間し、新たな波形を生成する。図24(D)は、ステップ212及びステップ213によって検出されたピーク部P1〜P4を直線補間することによって生成された新たなピーク値補間曲線を示している。なお、図24(D)において図24(A)のディジタルサンプル信号波形は点線で示されている。
ステップ215:以上の処理によって生成されたピーク値補間曲線に基づいて、ピーク間の合計傾斜を算出する。この処理では、図24(D)に示すように、傾斜を算出するための算出幅を例えば200ポイントとし、その算出幅のシフト量を例えば100ポイントとして、このシフト量に相当するポイントを順次シフトしながら、その傾斜を算出する。有効区間の最初のサンプルポイントa1が『100』だとすると、そのサンプルポイント『100』と『300』との間の傾斜b1は、算式:(a3 −a1)/200によって求められる。次にそれぞれのポイントを100ポイントずつシフトしたサンプルポイント『200』と『400』との間の傾斜b2を求める。
このようにして算出された傾斜の一例を図25に示す。図から明らかなように、サンプルポイント『100』−『300』間の傾斜b1は0.03、サンプルポイント『200』−『400』間の傾斜b2は0.15、サンプルポイント『300』−『500』間の傾斜b3は0.25、サンプルポイント『400』−『600』間の傾斜b4は0.50、サンプルポイント『500』−『700』間の傾斜b5は0.90、サンプルポイント『600』−『800』間の傾斜b6は1.80、サンプルポイント『700』−『900』間の傾斜b7は1.90、サンプルポイント『800』−『1000』間の傾斜b8は2.00、サンプルポイント『900』−『1100』間の傾斜b9は1.70、『1000』−『1200』間の傾斜b10は1.20、『1100』−『1300』間の傾斜b11は0.70となる。
これらの傾斜b1〜b11は前者のサンプルポイントa1〜a11における傾斜として記憶される。すなわち、サンプルポイントa1の傾斜b1が0.03、サンプルポイントa2の傾斜b2が0.15として、それぞれのサンプルポイント毎に傾斜が記憶される。
次に、このようにして求められた傾斜b1〜b11の値に基づいて、合計傾斜を求める。合計傾斜はそのサンプルポイントを基準に後ろ5つの傾斜を合計することによって得られるものであり、そのサンプルポイント付近の傾斜の度合いを示すものである。例えば、サンプルポイントa1の合計傾斜c1は、そのサンプルポイントa1の傾斜b1と、それから4つ後ろの傾斜b2〜b5とを合計することによって算出される。すなわち、c1=b1+b2+b3+b4+b5によって算出される。図25の場合には、サンプルポイントa1の合計傾斜c1は1.83、サンプルポイントa2の合計傾斜は3.60、サンプルポイントa3の合計傾斜c3は5.35、サンプルポイントa4の合計傾斜は7.10、サンプルポイントa5の合計傾斜は8.30、サンプルポイントa6の合計傾斜c6は8.60、サンプルポイントa7の合計傾斜は7.50である。
このようにして全区間における合計傾斜を算出し、次のステップ216の処理を行う。なお、ここでは、5ポイントの合計をその先頭の合計傾斜とする場合について説明したが、これに限らず、5ポイントの中間の合計傾斜としてもよい。すなわち、合計傾斜c1をサンプルポイントa1〜a5の中間すなわちサンプルポイントa3の値としてもよい。また、これ以外に5ポイントにおける位置が明確であれば、合計傾斜をどのポイントの値としてもよいことは言うまでもない。また、5ポイントに限らず、それ以上でもそれ以下でもよいことは言うまでもない。
このように合計傾斜を用いることで、一時的な傾きにだまされることなく、適切な傾斜部分が見つけ出せるので、適切な安定箇所を発見することができるようになる。
ステップ216:前記ステップ215で算出された合計傾斜に基づいて今度は安定区間の抽出を行う。すなわち、各サンプルポイントにおける合計傾斜を直線補間又はその他の補間によって結ぶことによって形成された合計傾斜曲線の中で所定値(例えば、合計傾斜値5)以下の箇所を安定区間とし、それ以外の箇所は不安定区間とする。
ステップ217:ステップ216の処理によって安定区間とみなされた区間毎に波形の最大値すなわちピーク値補間曲線の最大値を検出し、その最大値が所定値以下の場合にはその安定区間は削除し、不安定区間に変更する。
ステップ218:このようにして抽出された安定区間の存在に基づいて人間は初めてその安定区間の開始点付近に音符のトリガである音の開始点があることに気付く。そこで、その音符の開始点付近を決定するために、ステップ216及びステップ217で安定区間と認定された部分の音符開始点を検出し、それに応じて安定区間の拡張を行う。
図26はステップ216からステップ218までの処理の概念を示すものである。有効区間内の合計傾斜曲線が図26に示すような場合、それを所定値で区切ることによって3つの安定区間d1〜d3が検出される。なお、安定区間d2についてはステップ217の処理の結果、ピーク値補間曲線の最大値が所定値以下であるために削除される。従って、図26の有効区間の場合には2つの安定区間d1,d3が存在することになり、2つの安定区間d1,d3の間には削除された安定区間d2を含む不安定区間が存在することになる。この不安定区間を安定区間d1,d3に接続して、それぞれの安定区間d1,d3の拡張処理を行う必要がある。
安定区間d1については、必然的に有効区間の開始点がその安定区間d1の音符の開始点となり、安定区間d3については、必然的に有効区間の最終点がその安定区間d3の音符の終了点となる。そして、安定区間d3の音符開始点及び安定区間d1の最終点は次のようにして求められる。すなわち、ステップ216で検出された不安定区間の中から、音符開始点の検出対象となる安定区間に近い方の不安定区間を決定し、その不安定区間内の合計傾斜曲線のピーク値に相当するサンプルポイントをその安定区間の音符開始点とするようにした。従って、図26のように安定区間d2が削除されて不安定区間が2箇所存在する場合には、音符開始点の検出対象となる安定区間d3に近い方の不安定区間において、合計傾斜のピーク値に相当するサンプルポイントf2が安定区間d3の音符開始点となる。従って、安定区間d1の音符終了点はサンプルポイントf2となるので、最終的に、安定区間d1は拡張安定区間e1となり、安定区間d2は拡張安定区間e3となる。
なお、図26の場合に、安定区間d2がステップ217の処理で削除されなかった場合には、サンプルポイントf1が安定区間d1の音符終了点及び安定区間d2の音符開始点となり、サンプルポイントf2が安定区間d2の音符終了点及び安定区間d3の音符開始点となる。
図22は図1のステップ15の定常区間検出処理の詳細を示す図であり、図5に対応したものである。図21の安定区間検出処理によって求められた安定区間の中から定常区間がどのようにして検出されるのか、その定常区間検出処理の詳細を説明する。なお、図22の定常区間処理の内、ステップ221〜ステップ229は図5に示したステップ51〜ステップ59とほとんど同じなので、その部分については簡単に説明し、これ以外について詳細に説明する。
ステップ221:第1次バンドパスフィルタ(第1次BPF)を通過させて、所定の倍音を削除する。
ステップ222:ステップ221の第1次BPF処理によって得られた楽音波形信号に対してピーク位置検出法を用いて1周期の基準となるピーク基準位置検出処理を行う。
ステップ223:前記ステップ222で検出されたピーク基準位置に基づいて、あるピーク基準位置から始まる基本区間と、その基本区間の直後の次のピーク基準位置までの区間(以下、移動区間とする)との間の2つの区間の波形について波形が同じであるか否かの比較を図13に示すような誤差率算出方法によって行う。
ステップ224:ステップ223の波形比較処理の結果を利用して、誤差率が所定値(例えば10)よりも小さな区間同士を繋げて、それを疑似的な一致区間とし、各一致区間から抽出されるピッチの最大値と最小値を検出し、それに基づいてカットオフ周波数帯を決定する。
ステップ225:ステップ224で決定された新たなカットオフ周波数帯を用いて、第2次バンドパスフィルタ(第2次BPF)を通過させて、不要な倍音を除去する。
ステップ226:ステップ222のピーク基準位置検出処理と同じ処理を行う。
ステップ227:ステップ223の波形比較処理と同じ処理を行う。
ステップ225からステップ227までの一連の処理によって、誤差の原因となる低周波や高調波がカットされて、より精度の高いピーク基準位置検出処理及び波形比較処理が可能となり、前回よりも精度の高い一致区間が得られる。
ステップ228:ステップ227までの処理によって得られた各ピーク基準位置におけるピッチデータを補間して、1サンプルポイント毎に1ピッチデータとなるように直線補間する。
ステップ229:ステップ228の処理によって求められた各サンプルポイント毎のピッチデータを用いて時変動バンドパスフィルタ(BPF)処理を行う。
ステップ22A:ステップ229の時変動バンドパスフィルタ処理を経た楽音波形に対して、ピークが強く出ているサイドを決定し、ステップ228で得られた周波数変化に基づいて決定されるピリオド区間によって楽音波形を区切り、各区切り区間内で最大となる位置を検出し、そこをピーク基準位置とする。すなわち、ステップ229の時変動バンドパスフィルタ処理によって得られた楽音波形が図27に示すようなものである場合、その周波数変化に基づいて決定されるピリオド区間PR1〜PR5によって各楽音波形を区切る。この区切られた区間PR1〜PR5における最大値P1〜P6がピーク基準位置となる。ステップ222(ステップ52)やステップ226(ステップ56)のようなピーク基準位置検出処理によってピーク基準位置を検出すると、図10(A)に示すような波形の場合、明らかに誤った位置にピーク基準位置P4,P5が出現してしまうという問題があるが、このステップ22Aのようにピリオド区間によって楽音波形を区切り、その中でピーク基準位置を検出する場合だと、そのような明らかに誤ったピーク基準位置が検出されることはなくなり、ピーク基準位置検出精度が向上する。
ステップ22B:ステップ22Aのピーク基準位置検出処理によって検出されたピーク基準位置に基づいて波形の有声区間検出処理を行う。すなわち、この有声区間検出処理では、ステップ223と同様に、ステップ22Aで検出されたピーク基準位置に基づいて、あるピーク基準位置から始まる基本区間と、その基本区間の直後の次のピーク基準位置までの区間(以下、移動区間とする)との間の2つの区間の波形について波形が同じであるか否かの比較を図13に示すような誤差率算出方法によって行う。そのために、この有声区間検出処理では、基本区間と移動区間とが不一致と判定された場合、その部分を直ちに有声区間の区切りとしないで、不一致が所定回数以上連続して発生した場合に有声区間の区切りとする。これによって、「あ〜い〜う〜」や「あ〜あ〜あ〜」等のように「母音が連続する部分」を有声区間として検出することができる。
例えば、図28の場合、ピーク基準位置P1からピーク基準位置P2までを基本区間P12とすると、ピーク基準位置P2からピーク基準位置P3までが移動区間P23となる。この場合、基本区間P12と移動区間23は一致すると判定されたとする。区間P23と区間P34についても同様に一致と判定されたとする。次の区間P34と区間P45が不一致と判定された場合、その区間P34と、区間P45の次の区間P56との間で波形比較処理を行う。その結果、区間P34と区間P56が一致と判定された場合には、区間P45と区間56が不一致であっても、区間P34、区間P45、区間P56は一致するものとして次の区間P56と区間P67(図示せず)の判定に進む。このとき、区間P34と区間P45、区間P34と区間P56、区間P34と区間P67(図示せず)、区間P34と区間P78(図示せず)、区間P34と区間P89(図示せず)がそれぞれ不一致と判定された場合、すなわち所定回数(例えば5回)以上不一致が連続して発生した場合には、その区間P34を有声区間の区切りとし、次の区間P45と区間P56について同様の判定を行う。区間P45と区間P56が不一致の場合には、区間P45と区間P67(図示へせず)について判定を行う。なお、区間45と区間P56が不一致の場合、不一致が連続するがどうかの処理を行わずに、次の区間P56と区間P67について判定を行い、隣合う区間が一致したときに始めて前述と同様の一致処理を行うようにしてもよい。
このようにして、有声区間が決定したら、今度はその有声区間の中で所定長以下のもの(短い有声区間)を削除する。
以上の処理によって、安定区間は、図29に示すように不安定区間によって分離された有声区間V1〜V3のように分類される。なお、この有声区間V1〜V3は隣接比較誤差曲線の値の低い安定した部分に対応し、隣接比較誤差曲線の値の高い部分が不安定区間に対応している。従って、この隣接比較誤差曲線に基づいて、安定区間V1〜V3の拡張処理を行う。この拡張処理は、安定区間の開始点及び終了点に接する有効区間については無条件にその安定区間の開始点及び終了点まで拡張し、二つの有声区間に挟まれた不安定区間については隣接比較誤差の最大値を区切り点として、有効区間の拡張を行う。従って、図29に示すような隣接比較誤差曲線の場合には、各有声区間V1〜V3は拡張処理によって拡張有声区間V1E〜V3Eのようになる。なお、図29では、拡張有声区間内の隣接比較誤差の傾きが0となる部分(底辺部分)が一か所の場合のみが示されているが、実際には隣接比較誤差の傾きが0となる部分(底辺部分)は複数箇所存在する場合があることは言うまでもない。
ステップ22C:ステップ221からステップ22Bまでの処理によって得られた各拡張有声区間について、隣合う区間の誤差すなわち隣接比較誤差の傾きが0となる部分(底辺部分)を検出し、そこを母音の基準位置とし、その母音の発音に対応した区間を音色区間として検出する処理を行う。
この音色区間を検出する処理では、底辺部分に相当する波形区間を基本区間として固定し、その前後に存在する複数の波形区間を移動区間として順次波形比較処理を行い、その比較誤差を求める。このようにして求めた比較誤差を基準比較誤差と呼ぶ。
すなわち、図30(A)に示すように隣接比較誤差の底辺部分に相当する波形区間m0を基本区間とし、この基本区間とその両側に存在する複数の移動区間m1,m−1,m2,m−2,m3,m−3,m4,m−4・・・との間で波形比較処理を行う。基本区間は隣接比較誤差の最低値に相当するもの、すなわち、波形比較処理の結果、一致度が高いと認定された波形区間のことである。このようにして得られた比較誤差が図30(B)のような基準比較誤差曲線となる。この基準比較誤差曲線は波形区間m0を基準にして波形比較処理を行っている関係上、波形区間m0の近傍では隣接比較誤差曲線と同じような傾向を示すが、比較的離れた部分では誤差率は大きくなり、誤差率最大に収束する。
そして、この基準比較誤差曲線の値(誤差率)が所定値以下の部分の波形区間が音色区間TS1となる。
なお、基準比較誤差曲線を求める場合にも、ステップ22Bの有声区間検出処理のように、基準比較誤差曲線の値が所定値よりも大きくなった場合にそこを直ちに音色区間の区切りとしないで、所定値よりも大きい値が所定回数以上連続して発生した場合に音色区間の区切りとする。
このようにして音色区間が決定した場合に、拡張有声区間内でこの音色区間以外の未決定区間長が所定長以上の場合には、決定した音色区間以外の拡張音声区間について同様の処理を行う。すなわち、図30の場合には、図30(B)のような音色区間TS1が決定した場合、この音色区間TS1以外の拡張有声区間すなわち未決定区間長が所定長以上なので、この未決定区間長についても同様に、図30(C)に示すような隣接比較誤差の底辺部分に相当する波形区間n0を基本区間とし、この基本区間とその前後に存在する複数の移動区間n1,n−1,n2,n−2,n3,n−3,n4,n−4・・・との間で波形比較処理を行う。このようにして得られた比較誤差が図30(D)のような基準比較誤差曲線となる。この基準比較誤差曲線の値(誤差率)が所定値以下の部分の波形区間が今度は音色区間TS2となる。従って、図30の拡張有声区間の場合には2つの音色区間TS1,TS2が検出されることになる。
ステップ22D:ステップ22Cの処理によって得られた音色区間をステップ5Cの定常区間拡張処理と同じようにして拡張する。すなわち、ステップ221からステップ22Cまでの処理を行った結果、検出された音色区間ST1と音声区間ST2との間が1個の波形区間によって区切られている場合にはそのままその波形区間を音色区間ST1及びST2の区切りとすればよいが、隣合う音色区間同士が複数の波形区間によって区切られている場合には、これらの波形区間を前後の音色区間に接続して、音色区間を拡張しなければならない。この音色区間を拡張する処理は、図15と同様の処理によって行われる。
なお、この場合もBPF処理後のサイン波形に近い波形に対して比較処理を行うことになるので、母音毎の特徴までもがフィルタリングされてしまい同母音区間すなわち同じ音色を抽出するという意義が薄れてしまう恐れがある。そこで、ピーク位置検出用と波形比較処理用の波形を別途用意して、それに基づいてそれぞれピーク位置検出及び波形比較処理を行うようにしてもよい。すなわち、ピーク位置検出用の波形としては時変動BPF処理後の波形をそのまま用い、波形比較処理用としてはその時変動BPF処理に用いた周波数成分の数倍周期の周波数帯波形を残すようなBPF処理を行った波形を用いるようにする。
なお、基本周波数を最低周波数とし、基本周波数の整数倍を最高周波数とするバンドパスフィルタ処理を行い、それを波形比較処理の対象波形として使用してもよいことはいうまでもない。
このようにした拡張された音色区間について今度は音高の変化や安定性を考慮して細分化処理を行い、最終的な音程区間を決定する。ステップ22Cまでの音色区間検出処理では、波形を引き延ばして比較しているため、『ああ』などのような連続母音による音声波形の音高変化であっても、それを1つの同じ音としてとらえるような仕組みになっている。従って、楽器音の楽音波形の場合には、持続系の楽器音の音高変化を見つけ出せないような事態も起こる。そこで、この実施の形態では、ステップ22Cまでの処理によって得られた音色区間ごとに音高変化の状態を調べて、その状態に応じてさらに分割する必要があるかどうかの判定を行い。必要があると判定された場合には、音色区間をさらに細かな音程区間に分割する。この音色区間を音程区間に分割する処理は、図16に示すようなノート距離変動曲線を用いて行う。
ステップ22E:ステップ22Dの処理によって検出された音程区間の中には、音符として存在しえないほど短いものが含まれていたりする場合がある。故に、このステップでは1小節を所定の音符長(例えば8分音符長)を単位としたグリッドに均等に分割し、このグリッドに前述の音程区間を当てはめて、音価を決定するようにしている。各音程区間の先頭が最も近いグリッドにその音程区間を当てはめるようにしているが、1つのグリッドに対して2つ以上の音程区間が最も近いという場合には、それらの音程区間の中で音長の長いものをそのグリッドに当てはめるようにした。
例えば、図31は8分音符長で分割された1小節分に該当する音程区間の一例を示す図である。図において、ステップ22Dによって最終的に決定された音程区間はPT1〜PT5のようになったとする。この場合、音程区間PT1はグリッドG2に、音程区間PT2はグリッドG4に、音程区間PT3はグリッドG5に当てはまる。しかしながら、グリッドG6に関しては、音程区間PT4と音程区間PT5の2つがグリッドG6に最も近い音程区間である。従って、この場合には、音程区間PT4と音程区間PT5の音長の長い方、すなわち音程区間PT5がグリッグG6に当てはめられることになる。
なお、グリッドG5に音程区間PT3が当てはめられている関係上、音程区間PT2の音長はクリッドG4からグリッドG5までとなるが、このときに、音程区間PT3が存在しない場合には、その音程区間PT2の音長の最終位置をそのまま採用してもよいし、音程区間PT2の末尾が最も近いグリッドにその音程区間を当てはめるようにしてもよい。この場合、音程区間の存在しない部分にノートオフ(休符)を当てはめるようにしてもよい。
また、音程区間PT3が存在しない場合には、その音程区間PT2の音長の最終位置を次の音程区間PT5の開始位置であるグリッドG6までとしてもよい。この場合には、ノートオフ(休符)などは存在しないことになる。
このように図22の定常区間検出処理によって音価が決定された後は、図1のステップ16の音高列決定処理によって、各音価に最適な音高列が割り当てられる。この音高列決定処理は第1の実施の形態と同じなので説明は省略する。
上記実施例に係る音信号分析装置によれば、マイク等からの入力音のピッチ又はレベルが微妙にゆれた場合でも、そのゆれた部分以外の音楽的な音の定常部分すなわち1つの音符に相当する部分を分析することのできる音信号分析装置を提供することができる。
図2の電子楽器が演奏情報発生装置として動作する際のメインフローを示す図である。 この発明に係る楽音情報分析装置及び演奏情報発生装置を内蔵した電子楽器の構成を示すハードブロック図である。 図1のステップ13の有効区間検出処理の詳細を示す図である。 図1のステップ14の安定区間検出処理の詳細を示す図である。 図1のステップ15の定常区間検出処理の詳細を示す図である。 図1のステップ16の音高列決定処理の詳細を示す図である。 サンプリング周波数44.1kHzでサンプリングされた音声信号すなわちディジタルサンプル信号の波形値の一例を示す図である。 図3の有効区間検出処理の動作例の概念を示す図である。 図4の安定区間検出処理の動作例の概念を示す図である。 図5の第1次及び第2次BPF処理並びに波形比較処理による動作例の概念を示す図である。 図5のステップ51の第1次BPF処理後における安定区間の楽音波形の強いピークがマイナス側に現れ、弱いピークがプラス側に現れる場合の波形例を示す図である。 図5の波形比較処理の中で行われる誤差率の算出方法がどのように行われるのか、その具体例を2個の比較波を用いて示した図である。 図5の波形比較処理によって、図11の2個の比較波からどのようにして誤差率が算出されるのか、具体的な数値を示す図である。 時定数を小さめに設定した場合に図5のピーク基準位置検出処理によってピーク基準位置がどのように抽出されるか、その具体例を示す図である。 図5のステップ5Cの定常区間拡張処理の動作例を示す図である。 図5のステップ5Dのノート距離による細分化処理の動作例を示す図である。 図5のステップ5Dのノート距離による細分化処理の別の動作例を示す図である。 図6のステップ61の各定常区間の代表周波数決定処理を行う場合に、定常区間のどの部分から代表周波数を検出するのかその動作例を示す図である。 図6のステップ61の各定常区間からどのようにして代表周波数が検出されるのかその動作例を示す図である。 図1のステップ13の有効区間検出処理の別の実施の形態に係るものの詳細を示す図である。 図1のステップ14の安定区間検出処理の別の実施の形態に係るものの詳細を示す図である。 図1のステップ15の定常区間検出処理の別の実施の形態に係るものの詳細を示す図である。 図20の有効区間検出処理の動作例の概念を示す図である。 図21のステップ211からステップ215までの処理の動作例の概念を示す図である。 図21のステップ215の合計傾斜の算出例を示す図である。 図21のステップ216及びステップ218の処理の動作例の概念を示す図である。 図22のステップ22Aのピーク基準位置検出処理の動作例の概念を示す図である。 図22のステップ22Bの有声区間検出処理における動作例の概念の前半部分を示す図である。 図22のステップ22Bの有声区間検出処理における動作例の概念の後半部分を示す図である。 図22のステップ22Cの音色区間検出処理における動作例の概念を示す図である。 図22のステップ22Eの音価決定処理における動作例の概念を示す図である。
符号の説明
1…CPU、2…プログラムメモリ、3…ワーキングメモリ、4…演奏データメモリ、5…押鍵検出回路、6…マイクインターフェイス、7…スイッチ検出回路、8…表示回路、9…音源回路、10…鍵盤、1A…マイクロフォン、1B…テンキー&各種スイッチ、1C…ディスプレイ、1D…サウンドシステム、1E…データ及びアドレスバス

Claims (6)

  1. 1又は複数の音符の時系列的連なりからなる任意の音信号を入力するための入力手段と、
    前記入力手段から入力された音信号のサンプル振幅値の所定サンプル数にわたる平均値をそれぞれ求め、その結果を時系列的な平均レベル情報として出力する演算手段と、
    前記演算手段によって求められた平均レベル情報が所定値以上の区間を有効区間として検出する有効区間検出手段と、
    検出した有効区間の中から、前記平均レベル情報の傾きに基づき、安定区間を検出する安定区間検出手段と、
    検出した安定区間に基づき1つ1つの音符に相当すると推量される音程区間をそれぞれ検出する音程区間検出手段と、
    前記検出された音程区間を、その時系列に従って、所定の音符長に対応する時間間隔で分割されたグリッド上にそれぞれ配置し、各音程区間の開始又は終了端部のうち所定の一方の端部に最も近い1つのグリッド位置を各音程区間に対してそれぞれ割り当て、その結果同じグリッド位置に複数の音程区間が割り当てられた場合には最も時間長の長い1つの音程区間を有効な音符として選択する手段と
    を具備した音信号分析装置。
  2. 1又は複数の音符の時系列的連なりからなる任意の音信号を入力するための入力手段と、
    前記入力手段から入力された音信号のサンプル振幅値の所定サンプル数毎にその最大値を検出し、検出された最大値を補間することによって補助波形を作成する波形作成手段と、
    前記波形作成手段によって作成された補助波形が所定値以上の区間を第1の区間として検出する第1区間検出手段と、
    前記第1の区間内における前記音信号のサンプル振幅値に基づいて音信号分析用の第2の区間を、該第1の区間の中から検出する第2区間検出手段と、
    前記第2の区間内における前記音信号中の隣接する波形同士の一致度合いを分析し、一致していると分析された連続する複数の波形からなる区間を第3の区間として検出する第3区間検出手段と、
    検出した第3の区間に基づき1つ1つの音符に相当すると推量される音程区間をそれぞれ検出する音程区間検出手段と、
    前記検出された音程区間を、その時系列に従って、所定の音符長に対応する時間間隔で分割されたグリッド上にそれぞれ配置し、各音程区間の開始又は終了端部のうち所定の一方の端部に最も近い1つのグリッド位置を各音程区間に対してそれぞれ割り当て、その結果同じグリッド位置に複数の音程区間が割り当てられた場合には最も時間長の長い1つの音程区間を有効な音符として選択する手段と
    を具備した音信号分析装置。
  3. 1又は複数の音符の時系列的連なりからなる任意の音信号を入力するステップと、
    前記入力された音信号のサンプル振幅値の所定サンプル数にわたる平均値をそれぞれ求め、その結果を時系列的な平均レベル情報として出力するステップと、
    前記求められた平均レベル情報が所定値以上の区間を有効区間として検出するステップと、
    検出した有効区間の中から、前記平均レベル情報の傾きに基づき、安定区間を検出するステップと、
    検出した安定区間に基づき1つ1つの音符に相当すると推量される音程区間をそれぞれ検出するステップと、
    前記検出された音程区間を、その時系列に従って、所定の音符長に対応する時間間隔で分割されたグリッド上にそれぞれ配置し、各音程区間の開始又は終了端部のうち所定の一方の端部に最も近い1つのグリッド位置を各音程区間に対してそれぞれ割り当て、その結果同じグリッド位置に複数の音程区間が割り当てられた場合には最も時間長の長い1つの音程区間を有効な音符として選択するステップと
    を具備する音信号を分析するための方法。
  4. 1又は複数の音符の時系列的連なりからなる任意の音信号を入力するためのステップと、
    前記入力された音信号のサンプル振幅値の所定サンプル数毎にその最大値を検出し、検出された最大値を補間することによって補助波形を作成するステップと、
    前記作成された補助波形が所定値以上の区間を第1の区間として検出するステップと、
    前記第1の区間内における前記音信号のサンプル振幅値に基づいて音信号分析用の第2の区間を、該第1の区間の中から検出するステップと、
    前記第2の区間内における前記音信号中の隣接する波形同士の一致度合いを分析し、一致していると分析された連続する複数の波形からなる区間を第3の区間として検出するステップと、
    検出した第3の区間に基づき1つ1つの音符に相当すると推量される音程区間をそれぞれ検出するステップと、
    前記検出された音程区間を、その時系列に従って、所定の音符長に対応する時間間隔で分割されたグリッド上にそれぞれ配置し、各音程区間の開始又は終了端部のうち所定の一方の端部に最も近い1つのグリッド位置を各音程区間に対してそれぞれ割り当て、その結果同じグリッド位置に複数の音程区間が割り当てられた場合には最も時間長の長い1つの音程区間を有効な音符として選択するステップと
    を具備する音信号を分析するための方法。
  5. コンピュータによって読み取り可能な記録媒体であって、該コンピュータによって実行される音信号を分析するためのプログラムについての命令群をその記憶内容として有しており、前記音信号を分析するためのプログラムは、前記コンピュータに、
    1又は複数の音符の時系列的連なりからなる任意の音信号入力を受け付ける手順と、
    前記入力された音信号のサンプル振幅値の所定サンプル数にわたる平均値をそれぞれ求め、その結果を時系列的な平均レベル情報として出力する手順と、
    前記求められた平均レベル情報が所定値以上の区間を有効区間として検出する手順と、
    検出した有効区間の中から、前記平均レベル情報の傾きに基づき、安定区間を検出する手順と、
    検出した安定区間に基づき1つ1つの音符に相当すると推量される音程区間をそれぞれ検出する手順と、
    前記検出された音程区間を、その時系列に従って、所定の音符長に対応する時間間隔で分割されたグリッド上にそれぞれ配置し、各音程区間の開始又は終了端部のうち所定の一方の端部に最も近い1つのグリッド位置を各音程区間に対してそれぞれ割り当て、その結果同じグリッド位置に複数の音程区間が割り当てられた場合には最も時間長の長い1つの音程区間を有効な音符として選択する手順
    実行させるプログラムであることを特徴とする記録媒体。
  6. コンピュータによって読み取り可能な記録媒体であって、該コンピュータによって実行される音信号を分析するためのプログラムについての命令群をその記憶内容として有しており、前記音信号を分析するためのプログラムは、前記コンピュータに、
    1又は複数の音符の時系列的連なりからなる任意の音信号の入力を受け付ける手順と、
    前記入力された音信号のサンプル振幅値の所定サンプル数毎にその最大値を検出し、検出された最大値を補間することによって補助波形を作成する手順と、
    前記作成された補助波形が所定値以上の区間を第1の区間として検出する手順と、
    前記第1の区間内における前記音信号のサンプル振幅値に基づいて音信号分析用の第2の区間を、該第1の区間の中から検出する手順と、
    前記第2の区間内における前記音信号中の隣接する波形同士の一致度合いを分析し、一致していると分析された連続する複数の波形からなる区間を第3の区間として検出する手順と、
    検出した第3の区間に基づき1つ1つの音符に相当すると推量される音程区間をそれぞれ検出する手順と、
    前記検出された音程区間を、その時系列に従って、所定の音符長に対応する時間間隔で分割されたグリッド上にそれぞれ配置し、各音程区間の開始又は終了端部のうち所定の一方の端部に最も近い1つのグリッド位置を各音程区間に対してそれぞれ割り当て、その結果同じグリッド位置に複数の音程区間が割り当てられた場合には最も時間長の長い1つの音程区間を有効な音符として選択する手順と
    を実行させるプログラムであることを特徴とする記録媒体。
JP2004217686A 1996-11-20 2004-07-26 音信号分析装置及び方法 Expired - Fee Related JP3888372B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004217686A JP3888372B2 (ja) 1996-11-20 2004-07-26 音信号分析装置及び方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP32477596 1996-11-20
JP2004217686A JP3888372B2 (ja) 1996-11-20 2004-07-26 音信号分析装置及び方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP33632897A Division JP3669129B2 (ja) 1996-11-20 1997-11-20 音信号分析装置及び方法

Publications (2)

Publication Number Publication Date
JP2004334240A JP2004334240A (ja) 2004-11-25
JP3888372B2 true JP3888372B2 (ja) 2007-02-28

Family

ID=33512773

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004217686A Expired - Fee Related JP3888372B2 (ja) 1996-11-20 2004-07-26 音信号分析装置及び方法

Country Status (1)

Country Link
JP (1) JP3888372B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5549166B2 (ja) * 2009-09-18 2014-07-16 ブラザー工業株式会社 音声処理装置、プログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6083983A (ja) * 1983-10-15 1985-05-13 日本ビクター株式会社 音符表示装置
JPS60262197A (ja) * 1984-06-08 1985-12-25 シャープ株式会社 周期的信号の基本周波数および位相検出回路
JPS61123897A (ja) * 1984-11-20 1986-06-11 ブラザー工業株式会社 音声の始端決定装置
JP2604412B2 (ja) * 1988-02-29 1997-04-30 日本電気ホームエレクトロニクス株式会社 自動採譜方法及び装置
JP2604411B2 (ja) * 1988-02-29 1997-04-30 日本電気ホームエレクトロニクス株式会社 自動採譜方法及び装置
JP2653456B2 (ja) * 1988-02-29 1997-09-17 日本電気ホームエレクトロニクス株式会社 自動採譜方法及び装置
JP2604404B2 (ja) * 1988-02-29 1997-04-30 日本電気ホームエレクトロニクス株式会社 自動採譜方法及び装置
JPH01288900A (ja) * 1988-05-16 1989-11-21 Nec Corp 歌声伴奏装置
JP3149466B2 (ja) * 1991-07-26 2001-03-26 カシオ計算機株式会社 ピッチ抽出装置及びそれを用いた電子楽器
JP3104350B2 (ja) * 1991-12-19 2000-10-30 カシオ計算機株式会社 採譜装置
JPH05241597A (ja) * 1992-02-27 1993-09-21 Kawai Musical Instr Mfg Co Ltd ピッチ周期抽出方法
JP2969138B2 (ja) * 1992-12-21 1999-11-02 ヤマハ株式会社 ピッチ検出装置
JP2591417B2 (ja) * 1993-03-01 1997-03-19 ヤマハ株式会社 自動演奏データ修正装置
JP3024447B2 (ja) * 1993-07-13 2000-03-21 日本電気株式会社 音声圧縮装置

Also Published As

Publication number Publication date
JP2004334240A (ja) 2004-11-25

Similar Documents

Publication Publication Date Title
JP4672613B2 (ja) テンポ検出装置及びテンポ検出用コンピュータプログラム
JP4767691B2 (ja) テンポ検出装置、コード名検出装置及びプログラム
US8735709B2 (en) Generation of harmony tone
JPH08500452A (ja) 音声和音発生方法及び装置
WO2017082061A1 (ja) 調律推定装置、評価装置、およびデータ処理装置
US6525255B1 (en) Sound signal analyzing device
JP3669129B2 (ja) 音信号分析装置及び方法
JP5229998B2 (ja) コード名検出装置及びコード名検出用プログラム
JP2806351B2 (ja) 演奏情報分析装置及びそれを用いた自動編曲装置
EP2775475B1 (en) Music synthesizer with correction of tones during a pitch bend, based on played chord and on pitch conversion harmony rules.
JP4134961B2 (ja) 音信号分析装置及び方法
JP3279204B2 (ja) 音信号分析装置及び演奏情報発生装置
JP4932614B2 (ja) コード名検出装置及びコード名検出用プログラム
JP5005445B2 (ja) コード名検出装置及びコード名検出用プログラム
JP2000261322A (ja) 音響信号の符号化方法およびプログラム記録媒体
JP3888372B2 (ja) 音信号分析装置及び方法
JP3888371B2 (ja) 音信号分析装置及び方法
JP3888370B2 (ja) 音信号分析装置及び方法
JP2017173655A (ja) 音評価装置および音評価方法
JP5088179B2 (ja) 音処理装置およびプログラム
JP2011197564A (ja) 電子音楽装置及びプログラム
JP5659501B2 (ja) 電子音楽装置及びプログラム
JP6036800B2 (ja) 音信号生成装置及びプログラム
JP5776205B2 (ja) 音信号生成装置及びプログラム
JP2006154526A5 (ja)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060619

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060828

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061120

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: 20101208

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101208

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111208

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111208

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121208

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees