JP2015043014A - 基音可視化装置、基音可視化方法およびプログラム - Google Patents

基音可視化装置、基音可視化方法およびプログラム Download PDF

Info

Publication number
JP2015043014A
JP2015043014A JP2013174238A JP2013174238A JP2015043014A JP 2015043014 A JP2015043014 A JP 2015043014A JP 2013174238 A JP2013174238 A JP 2013174238A JP 2013174238 A JP2013174238 A JP 2013174238A JP 2015043014 A JP2015043014 A JP 2015043014A
Authority
JP
Japan
Prior art keywords
fundamental
power
fundamental tone
sound
cpu
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.)
Granted
Application number
JP2013174238A
Other languages
English (en)
Other versions
JP6307814B2 (ja
Inventor
南高 純一
Junichi Minamitaka
純一 南高
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2013174238A priority Critical patent/JP6307814B2/ja
Publication of JP2015043014A publication Critical patent/JP2015043014A/ja
Application granted granted Critical
Publication of JP6307814B2 publication Critical patent/JP6307814B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Auxiliary Devices For Music (AREA)

Abstract

【課題】人間による音響波形データ(音響信号)の中にあるピッチ(基音)の認識を補助すること。
【解決手段】本実施形態の基音可視化装置100は、複数の音源から供給される音響波形データ(音響信号)を所定時間単位毎に周波数分析することで、当該所定時間単位のパワースペクトルを取得し、前記パワー取得手段により取得された前記所定時間単位の前記パワースペクトルに基づいて、前記音源毎の基音を推定する。そして、取得された前記所定時間単位の前記パワースペクトルについて、推定された基音のパワーを強調し、パワーが強調された基音を含むパワースペクトルを、所定時間単位毎に表示する制御を実行する。
【選択図】図18

Description

本発明は、基音可視化装置、基音可視化方法およびプログラムに関する。
従来より、様々な特性を持つ音響信号からピッチ(基音)を抽出するピッチ抽出技術が知られている。このようなピッチ抽出技術としては、単音を対象とするもの、複音を対象とするもの等、対象によっていくつかの方法が提案されている。ピッチ抽出技術としては、自己相関関数、ケプストラム(Cepstrum)、高速フーリエ変換(FFT;Fast Fourier Transform)、フィルタリング後のゼロクロス(zero−crossing)検出等、様々な技術が利用されている(例えば、特許文献1、特許文献2参照)。
特開2011−180417号公報 特開平9−212194号公報
しかしながら、特許文献1及び2を含め従来のピッチ抽出技術は、特定の特性を有する音響信号に対しては良い抽出結果を得ることができるものの、音響信号の種類は多様であるため全ての音響信号に対し良い抽出結果を得ることはできず、万能ではない。
即ち、ピッチ(基音)の確認という点においては、機械的に自動でピッチを抽出するよりもユーザ(人間)が大局的に確認した方が優れている点が未だ多い。
また、困難な課題、例えば、ノイズの影響、複音の場合のオクターブ誤り、ミッシング・ファンダメンタル(missing fundamental)等についても、人間の確認に頼らざるを得ない状況である。
本発明は、このような状況に鑑みてなされたものであり、音響信号の中にあるピッチの人間による確認を支援することを目的とする。
上記目的を達成するため、本発明の基音可視化装置は、
複数の音源から供給される音響波形データを所定時間単位毎に周波数分析することで、当該所定時間単位のパワースペクトルを取得するパワー取得手段と、
前記パワー取得手段により取得された前記所定時間単位の前記パワースペクトルに基づいて、前記音源毎の基音を推定する基音推定手段と、
前記パワー取得手段により取得された前記所定時間単位の前記パワースペクトルについて、前記基音推定手段により推定された前記基音のパワーを強調する強調手段と、
前記強調手段によりパワーが強調された前記基音を含む前記パワースペクトルを、前記所定時間単位毎に表示する制御を実行する表示制御手段と、
を備えることを特徴とする。
本発明によれば、音響信号の中にあるピッチの人間による確認を支援する人間による音響波形データ(音響信号)の中にあるピッチ(基音)の認識を補助することができる。
本発明の一実施形態による基音可視化装置の全体構成を示すブロック図である。 図1の構成を有する基音可視化装置のRAMのワークエリアの構成を示すメモリマップである。 図1の構成を有する基音可視化装置が実行するメインフロー処理の流れの一例を示すフローチャートである。 図1の構成を有する基音可視化装置が実行する分析処理の流れの一例を示すフローチャートである。 図1の構成を有する基音可視化装置が実行する表示処理の流れの一例を示すフローチャートである。 図1の構成を有する基音可視化装置が実行する基音抽出処理の流れの一例を示すフローチャートである。 図1の構成を有する基音可視化装置が実行する基音抽出処理の流れの一例を示すフローチャートである。 図1の構成を有する基音可視化装置が実行するポインタセット処理の流れの一例を示すフローチャートである。 図8のポインタセット処理に基づきセットされるポインタの模式図である。 図1の構成を有する基音可視化装置が実行する音程チェック処理の流れの一例を示すフローチャートである。 図1の構成を有する基音可視化装置が実行する基音パワー計算処理の流れの一例を示すフローチャートである。 図1の構成を有する基音可視化装置が実行する基音パワー計算処理の流れの一例を示すフローチャートである。 図1の構成を有する基音可視化装置が実行する倍音パワー計算処理の流れの一例を示すフローチャートである。 図1の構成を有する基音可視化装置が実行する倍音パワー計算処理の流れの一例を示すフローチャートである。 図1の構成を有する基音可視化装置が実行する倍音パワー計算処理の流れの一例を示すフローチャートである。 図1の構成を有する基音可視化装置が実行するパワー補正処理の流れの一例を示すフローチャートである。 図1の構成を有する基音可視化装置が実行するパワー補正処理の流れの一例を示すフローチャートである。 図1の構成を有する基音可視化装置により可視化された基音の表示例を示す図である。
本発明の一実施形態による基音可視化装置は、ピッチを可視化することで、ユーザ(人間)によるピッチの確認を容易なものとする。
本実施形態の基音可視化装置は、音響信号の調波構造によってピッチが生じるという前提のもとに、ピッチを推定する。具体的には、本実施形態の基音可視化装置は、音源の音楽タイプや音源の特徴を利用して、調波構造と捉えた音のパワーの大きさやパターンとの比率に基づいて、ピッチを推定する。そして、本実施形態の基音可視化装置は、その推定されたピッチ(ピッチの候補)を強調表示することで、ピッチを可視化する。
ユーザは、可視化されたピッチ(ピッチの候補の強調表示)をみることで、音響波形データ(音響信号)の中にあるピッチの特徴を掴み取りやすくなり、ピッチを視覚的に捉えることができるようになる。
以下、このような本実施形態の基音可視化装置について、図面を参照してさらに詳しく説明する。
なお、以下の説明では、ピッチを「基音」と適宜呼ぶ。
[構成]
図1は、本発明の一実施形態による基音可視化装置100の全体構成を示すブロック図である。
基音可視化装置100は、CPU(Central Processing Unit)10、ROM(Read Only Memory)11、RAM(Random Access Memory)12、入力手段13、表示手段14、音響出力手段15および音響入力手段16を備える。
CPU10は、ROM11に記録されているプログラム、又は、RAM12にロードされたプログラムに従って各種の処理を実行する。
RAM12には、CPU10が各種の処理を実行する上において必要なデータ等も適宜記憶される。
例えば、CPU10は、入力手段13を介してユーザにより入力されるコマンドに応じて装置各部を制御する。ユーザにより入力されるコマンドの種類には、処理終了を指示する終了コマンド、再生機能の実行を指示する再生コマンド、音響入力機能の実行を指示する音響入力コマンド、演奏入力機能の実行を指示する演奏入力コマンドがある。
再生機能とは、後述する音響入力機能により取り込んだ音響波形データ(曲データ)や、後述する演奏入力機能により取り込んだ演奏データ(MIDIデータ)を、音響出力手段15から再生出力させる機能である。
音響入力機能とは、音響入力手段14によって、ステレオ音場として収音したステレオ成分の音響信号をサンプリングし、これにより得られる音響波形データ(Lチャンネル;Lch)、(Rチャンネル;Rch)をRAM12の波形データエリアに保存する機能である。
演奏入力機能とは、入力手段13を介して外部MIDI楽器から入力される演奏データ(MIDIデータ)を取り込んでRAM12の演奏データエリアに保存する機能である。
基音表示機能とは、音響波形データ(音響信号)に周波数分析(高速フーリエ変換FFT)を施して得たLチャンネルおよびRチャンネルのパワースペクトルから、調波構造を持つ対象の音源毎に基音を推定し、推定された基音(基音の候補)のパワーを強調して、当該パワースペクトル表示する機能である。
このようにして、推定された基音が強調されたパワースペクトルの時間推移が表示されるので、基音についてのユーザの確認を支援することが容易にできる。
ROM11には、上述した再生機能、音響入力機能、演奏入力機能および基音表示機能を具現化する各種プログラム(後述するメインフロー処理、分析処理、表示処理、基音抽出処理ポインタセット処理、音程チェック処理、基音パワー計算処理、倍音パワー計算処理およびパワー補正処理を含む)が記憶される。
RAM12は、音響入力機能によって取り込まれた音響波形データ(Lチャンネル、Rチャンネル)を保存する音響波形データエリアや、演奏入力機能によって取り込まれた演奏データ(MIDIデータ)を保存するデータエリア(不図示)の他、CPU10の作業エリアとして各種レジスタ・フラグデータを一時記憶するワークエリアWEを備える。
入力手段13は、前述した各種コマンド(終了コマンド、再生コマンド、音響入力コマンド、演奏入力コマンド)を入力する各種操作子や、演奏入力用の鍵盤およびMIDIインタフェースを備える。
表示手段14は、CPU10から供給される表示制御信号に基づき、定位情報panに応じて表示色が変化するパワースペクトルを時系列順に画面表示する。なお、表示画面は、後述するように、横軸を時間軸、縦軸を対数周波数軸とする。時間軸の長さは分析対象とした音楽一曲分に相当し、対数周波数軸の範囲は、88鍵のピアノにおける半音分の周波数を分解能res100centとする為、都合88×分解能res100cent以上の表示領域となる。
音響出力手段15は、音源装置、D/A変換器、ノイズ除去用のフィルタ、アンプおよびステレオ再生用スピーカから構成される。
音響出力手段15は、音響波形データを再生する場合には、CPU10の制御の下にRAM12のデータエリアから読み出される音響波形データ(Lチャンネル、Rチャンネル)をD/A変換器にてアナログ信号形式に変換した後、ノイズ除去用のフィルタおよびアンプを介してステレオ再生用スピーカから放音出力する。
一方、音響出力手段15は、演奏データを再生する場合には、CPU10の制御の下にRAM12のデータエリアから読み出される演奏データに基づき音源装置が楽音波形データを発生し、この楽音波形データをD/A変換器にてアナログ信号形式に変換した後、ノイズ除去用のフィルタおよびアンプを介してステレオ再生用スピーカから放音出力する。
音響入力手段16は、ステレオ録音用のマイク、アンプおよびA/D変換器から構成される。
音響入力手段16は、CPU10の制御の下に、ステレオ音場として収音したステレオ成分の音響信号をサンプリングし、これにより得られる音響波形データ(Lチャンネル、Rチャンネル)をRAM12の波形データエリアに記憶する。
[動作]
次に、上記構成による基音可視化装置100の動作、即ち、CPU10が実行する処理について説明する。
CPU10は、処理を実行する上で、RAM12のワークエリアWEに複数の機能グループ毎に一時記憶される主要なレジスタのデータ(変数)を用いる。そこで、先ず、これらのレジスタについて、図2を参照して説明する。
次に、図3〜図17を参照して、CPUが実行する処理の流れについて説明する。本実施形態位においてCPU10が実行する処理としては、メインフロー処理、分析処理、表示処理、基音抽出処理、ポインタセット処理、音程チェック処理、基音パワー計算処理、倍音パワー計算処理およびパワー補正処理が存在する。
先ず、図2を参照して、RAM12が備えるワークエリアWEに複数の機能グループ毎に一時記憶される主要なレジスタデータ(変数)について説明する。
複数の機能グループとは、基音表示機能を具現化する際に必要な体系的な共通点をもつ群であり、本実施形態においては、「パワースペクトル」、「基音推定用」、「音色スペクトルパターン比較用」、「音域」、「高調波の数」、「音程チェック用」、「サイドバンド幅定義用」、「ステレオ情報」、「抽出された基音」といった機能グループが含まれる。
図2には、主に基音表示機能を具現する際に使われる複数のグループの各レジスタの説明が示されている。
「パワースペクトル」の機能グループに含まれるレジスタとして、レジスタa[n]、レジスタm、レジスタfsがある。レジスタa[n]には、周波数nの1フレームのパワーがストアされる。但し、レジスタa[n]の前半(0〜iFrame2−1)には、Rチャンネルのパワーがストアされ、レジスタa[n]の後半(iFrame2〜iFrame2×2)には、Lチャンネルのパワーがストアされる。レジスタmには、1フレームのサイズの値がストアされる。レジスタfsには、サンプリング周波数の値がストアされる。
「基音推定用」の機能グループに含まれるレジスタとして、レジスタpoly、レジスタmtype、レジスタssource[mtype][poly]、レジスタinstがある。ピッチ(基音)の推定は、倍音構造を含む調波構造の基音の位置を推定することにより行われる。レジスタpolyには、与えられた音響信号から推定する基音(推定基音)の数の値がストアされる。レジスタmtypeには、音楽タイプの値がストアされる。レジスタssource[mtype][poly]には、音楽タイプから音源種類を定義する値がストアされる。レジスタinstには、音源の種類の番号用変数(音源種番号の値)がストアされる。
「音色スペクトルパターン比較用」の機能グループに含まれるレジスタとして、レジスタspctr[ssource][n]、レジスタsimile、レジスタsimilemin、レジスタminvalue[n]、レジスタhmin、レジスタhminvalue[n]がある。レジスタspctr[ssource][n]には、音源毎のスペクトルパターン(基音と各倍音の比率がわかるもの)の値がストアされる。レジスタsimileには、スペクトルパターンとの比較評価値(値が小さい程似ている)がストアされる。レジスタsimileminには、評価値の最小値がストアされる。レジスタminvalue[n]には、評価値の最小値(保存用)がストアされる。
「音域」の機能グループに含まれるレジスタとして、レジスタkrange[ssource][n]と、レジスタiMaxPointと、レジスタiMinPointがある。レジスタkrange[ssource][n]には、音源の種類から想定される音源毎の音域(下限と上限)を定義する値がストアされる。レジスタiMaxPointには、上限の周波数表現の値がストアされる。レジスタiMinPointには、下限の周波数表現の値がストアされる。
「高調波の数」の機能グループに含まれるレジスタとして、レジスタiOrderws[ssource]と、レジスタiOrderがある。レジスタiOrderws[ssource]には、音源毎の高調波の数の値がストアされる。レジスタiOrderには、妥当な高調波の数の値がストアされる。
「音程チェック用」の機能グループに含まれるレジスタとして、レジスタcentchk[ssource][ccn]と、レジスタcentと、レジスタcent2と、レジスタalreadyがある。レジスタcentchk[ssource][ccn]には、音源毎の重複禁止音程の定義用の値がストアされる。レジスタcentには、確定済み基音の音程の値がストアされる。レジスタcent2には、抽出対象の基音の音程の値がストアされる。レジスタalreadyには、禁止音程フラグの値がストアされる。
「サイドバンド幅定義用」に対応するレジスタとして、レジスタbandnと、レジスタdo50cents[ssource]と、レジスタdo50centと、レジスタp50centと、レジスタm50centがある。レジスタbandnには、サイドバンド数の値がストアされる。レジスタdo50cents[ssource]には、音源毎のサイドバンド幅の値がストアされる。レジスタdo50centには、サイドバンド幅の値がストアされる。レジスタp50centには、サイドバンド幅の周波数表現の値がストアされる。レジスタm50centには、サイドバンド幅の周波数表現の値がストアされる。
「ステレオ情報」の機能グループに含まれるレジスタとして、レジスタpan, pan2と、レジスタpanadjと、レジスタpanadjratioがある。レジスタpan, pan2には、定位値がストアされる。レジスタpanadjには、定位値による補正値がストアされる。レジスタpanadjratioには、定位値による補正割合の値がストアされる。
「抽出された基音」の機能グループに含まれるレジスタとして、レジスタpt[poly]が含まれる。レジスタpt[poly]には、基音と推定された周波数位置の値がストアされる。
[メインフロー処理]
次に、基音可視化装置100が実行するメインフロー処理について説明する。メインフロー処理では、処理の終了が指示された場合を除き、各種指示に基づいて音響波形データの読み込み、分析処理、表示処理等が行われる。
図3は、図1の基音可視化装置100が実行するメインフロー処理の流れの一例を示すフローチャートである。
基音可視化装置100がパワーオン(電源投入)されると、CPU10は図3に図示するメインフロー処理を実行する。
ステップS11において、CPU10は、基音可視化装置10の各部を含むシステム全体の初期化を行う。
ステップS12において、CPU10は、終了指示を受けたか否かを判定する。終了指示を受けた場合には、ステップS12においてYESであると判定されて、メインフロー処理は終了となる。これに対し、終了指示を受けていない場合には、ステップS12においてNOであると判定されて、処理はステップS13に進む。
続いて、ステップS13〜S16において、CPU10は、入力手段13を介してユーザ操作により入力されるコマンドの種類(終了コマンド、再生コマンド、音響入力コマンド、演奏入力コマンドおよび選曲コマンド)を判定する。
コマンド入力がなければ、ステップS13〜S16の各判定結果が何れも「NO」となるので、ステップS13〜S16の各判定処理が繰り返されることで、コマンド入力待ちの状態となる。
何れかのコマンドが入力されると、次のような処理が実行される。
例えば再生コマンドが入力された場合には、ステップS13においてYESであると判定されて、処理はステップS17に進む。
ステップS17において、CPU10は、再生処理を行う。即ち、CPU10は、後述のステップS18(音響入力処理)にて取り込んだ音響波形データ(曲データ)や、後述のステップS19(演奏入力処理)にて取り込んだ演奏データ(MIDIデータ)を、音響出力手段15から再生出力する再生処理を実行する。
この処理が終了すると、処理はステップS12に戻る。
また例えば、音響入力コマンドが入力された場合には、ステップS14においてYESであると判定されて、処理はステップS18に進む。
ステップS18において、CPU10は、音響入力処理を行う。即ち、CPU10は、音響入力手段14を用い、ステレオ音場として収音したステレオ成分の音響信号をサンプリングし、これにより得られる音響波形データ(Lチャンネル、Rチャンネル)をRAM12の波形データエリアに保存する音響入力処理を実行する。
この処理が終了すると、処理はステップS12に戻る。
また例えば、演奏入力コマンドが入力された場合には、ステップS15においてYESであると判定されて、処理はステップS19に進む。
ステップS19において、CPU10は、演奏入力処理を行う。即ち、CPU10は、入力手段13を介して外部MIDI楽器から入力される演奏データ(MIDIデータ)を取り込んで、RAM12の演奏データエリアに保存する演奏入力処理を実行する。
この処理が終了すると、処理はステップS12に戻る。
また例えば、選曲コマンドが入力された場合には、ステップS16においてYESであると判定されて、処理はステップS20に進む。
ステップS20において、CPU10は、入力された選曲コマンドに基づいて、RAM12に保存された音響波形データ(曲データ)(Lチャンネル、Rチャンネル)の読み込みを行う。
ステップS21において、CPU10は、分析処理を実行する。即ち、CPU10は、読み込んだ音響波形データ(Lチャンネル、Rチャンネル)に対して所定の時間単位(フレーム)毎に周波数分析(高速フーリエ変換FFT)処理を施し、その結果得られる各フレームのパワースペクトル(LチャンネルおよびRチャンネル)を取得する。
なお、分析処理のさらなる詳細については、図4等を参照して後述する。
ステップS22において、CPU10は、表示処理を実行する。即ち、CPU10は、ステップS21の分析処理で取得した各フレーム単位のパワースペクトルに基づいて、音源毎の基音を各フレーム毎に推定し、推定された基音のパワーが強調されるように、各フレーム単位のパワースペクトルの時間推移の様子を示す画面を表示させる。即ち、この画面は、横軸が時間軸であり、縦軸が周波数(本実施形態では鍵単位)であり、各時点の各周波数(鍵)のパワーの強さが、色の違い(後述の図18の例ではカラー表現ができないため濃淡の違い)で表されている。そして、基音と推定された周波数(鍵)のパワーが強められるように、表示される。
なお、表示処理のさらなる詳細について、図5等を参照して後述する。
この処理が終了すると、処理はステップS12に戻る。
[分析処理]
次に、基音可視化装置100が実行する分析処理について説明する。
図4は、図1の構成を有する基音可視化装置100が実行する分析処理(図3のステップS21の処理)の流れの一例を示すフローチャートである。
ステップS31において、CPU10は、ポインタiに0をセットする。即ち、ポインタiがゼロリセットされる。
なお、ポインタiとは、「0」の場合にLチャンネルの音響波形データを指定し、「1」の場合にRチャンネルの音響波形データを指定するポインタである。
ステップS32において、CPU10は、ポインタiが「MAX」より小さいか否か、即ちLチャンネルとRチャンネルの左右両チャンネルの音響波形データについて分析し終えたかどうかを判定する。
ポインタiが「MAX」より大きく、左右両チャンネルの音響波形データについて分析し終えている場合には、ステップS32においてNOであると判定され、分析処理は終了となる。
これに対し、ポインタiが「MAX」より小さく、左右両チャンネルの音響波形データについて分析し終えていなければ、ステップS32においてYESであると判定され、処理はステップS33に進む。
ステップS33において、CPU10は、ポインタjに「0」をセットする。即ち、ポインタjがゼロリセットされる。
なお、ポインタjとは、分析フレームの切り出し数(オーバーラップ数)を表すポインタである。
ステップS34において、CPU10は、ポインタjが「2」より小さいか否かを判定する。
本実施形態では、1つのチャンネルの音響波形データについて、2つのフレーム(j=0,1)で重複切り出しする形態が採用されている。したがって、この処理では、1つのチャンネルの音響波形データについて分析し終えたかどうかを判断する処理が行われる。
具体的には、ポインタjが「2」より大きい場合には、1つのチャンネルの音響波形データについて分析し終えたことになるので、ステップS34においてNOであると判定されて、処理はステップS41に進む。ステップS41以降の処理については、後述する。
これに対し、ポインタjが「2」より小さい場合には、1つのチャンネルの音響波形データについて分析が未完であるので、ステップS34においてYESであると判定されて、処理はステップS35に進み、次のような一連の処理により分析が行われる。
ステップS35において、CPU10は、ポインタiで指定されるチャンネルの音響波形データに対し、ポインタj番目のフレーム(所定時間単位の音響波形データ)の切り出しを行う。
ステップS36において、CPU10は、ステップS35において切り出したフレームに対し、窓関数(例えばハニング窓関数)を乗算する。
ステップS37において、CPU10は、ポインタj番目のフレームに窓関数が乗算された音響波形データに対して、FFT(高速フーリエ変換)を施す。
ステップS38において、CPU10は、FFTにより得られた実数部と虚数部の二乗和平方根を算出することで、パワースペクトルを算出する。
ステップS39において、CPU10は、算出したパワースペクトルをRAM12に記憶する。具体的には、算出されたパワースペクトルは、周波数毎のパワー(値)がレジスタa[1]〜a[n]にそれぞれストアされる(nは、所定の周波数分割数であり、本実施形態では鍵盤数)。
ステップS40において、CPU10は、ポインタjをインクリメントする。
この処理が終了すると処理はステップS34に戻る。
そして、インクリメントされたポインタjの値が「2」より小さい場合、即ち1つのチャンネルの音響波形データについて分析し終えていなければ、ステップS32においてYESであると判定され、ステップS34〜S40の処理が繰り返し行われる。
ステップS34〜S40の処理が繰り返し行われることにより、まず、Lチャンネルの音響波形データについてのパワースペクトルの取得が行われる。
このようにしてLチャンネルの音響波形データについてのパワースペクトルの取得が行われた結果、インクリメントされたポインタjの値が「2」になったとする。そうすると、ステップS34においてNOであると判定されて、処理はステップS41に進む。
ステップS41において、CPU10は、ポインタiをインクリメントする。この処理が終了すると、処理はステップS32に戻る。
ここで、インクリメントされたポインタiの値が「2」より小さい場合、即ち左右両チャンネルの音響波形データについて分析し終えていなければ、ステップS32において再びYESであると判定され、ステップS32〜S41の処理が繰り返し行われる。
即ち、CPU10は、Rチャンネルの音響波形データについて、2つのフレーム(j=0,1)で重複切り出しするパワースペクトル分析を行うべく、上記ステップS34〜S40の処理を繰り返し実行する。これにより、Rチャンネルの音響波形データから取得されたパワーがRAM12に記憶される。そして、ステップS34〜S40の処理の繰り返しによりポインタjの値が「2」になると、ステップS32においてNOであると判定されて、分析処理は終了となる。
このように、基音可視化装置100は、分析処理を実行することで、RAM12から音響波形データ(Lチャンネル、Rチャンネル)を読み出して周波数分析(高速フーリエ変換FFT)を施し、その結果得られた実数部と虚数部の二乗和平方根を算出することでパワースペクトル(LチャンネルおよびRチャンネル)を取得する。
[表示処理]
このようにして分析処理(図3のステップS21の処理)が実行されると、次に表示処理(図3のステップS22の処理)が実行される。
表示処理による表示は、全てのフレームに対しフレーム毎に行われる。表示処理の実行時には、保存(又は演算)されたパワースペクトルデータをa[]として、参照可能となっている。表示処理は、1フレーム毎に全体でtimen回繰り返し行われる。
図5は、図1の構成を有する基音可視化装置100が実行する表示処理の流れの一例を示すフローチャートである。
ステップS51において、CPU10は、カウンタiに0をセットして、カウンタiをゼロリセットする。
なお、カウンタiは、「0」から横軸の「表示領域幅timen」までのフレーム数を計数するカウンタである。
ステップS52において、CPU10は、計数されたフレーム数(カウンタi)が横軸の「表示領域幅timen」より小さいか否か、即ち表示領域幅timenまで表示し終えたかどうかを判定する。
フレーム数(カウンタi)が横軸の「表示領域幅timen」より小さい場合、即ち、表示領域幅timenまで表示し終えていない場合には、ステップS52においてYESであると判定されて、処理はステップS53に進む。
ステップS53において、CPU10は、1フレーム分のパワースペクトルを読み込む。
ステップS54において、CPU10は、基音抽出処理(Lch)を実行する。
即ち、CPU10は、音源毎の初期値を設定し、Lチャンネルの基音パワーと倍音パワーが最大のものをmaxptとし、スペクトルパターンが最も類似するものをレジストデータsimileminとして、これら当該フレームの基音の候補として取得する。
なお、基音抽出処理のさらなる詳細については、図6等を参照して後述する。
ステップS55において、CPU10は、パワー補正処理(Lch)を実行する。
即ち、CPU10は、Lchの各基音のパワーを強調するように補正する。
なお、パワー補正処理のさらなる詳細については、図10等を参照して後述する。
ステップS56において、CPU10は、基音抽出処理(Rch)を実行する。即ち、ステップS54のLchに対する基音抽出処理と同様の処理が、Rchに対しても実行される。
ステップS57において、CPU10は、パワー補正処理(Rch)を実行する。即ち、ステップS55のLchに対するパワー補正処理と同様の処理が、Rchに対しても実行される。
ステップS58において、CPU10は、ステップS55およびステップS57においてパワーが強調された基音の候補を含む、フレームのパワースペクトルを、画面に表示させる制御を実行する。
ステップS59において、CPU10は、カウンタiをインクリメントする。
この処理が終了すると、処理はステップS52に戻る。以後、インクリメントされたカウンタiの値が横軸(時間軸)の「表示領域幅timen」に達するまで上記ステップS52〜S59が繰り返されることによって、定位情報panに応じて表示色が変化するパワースペクトルが、曲頭から曲末尾までの時系列順に画面表示される。
そして、インクリメントされたカウンタiの値が横軸(時間軸)の「表示領域幅timen」を超えると、ステップS52においてNOであると判定されて、表示処理は終了となる。
[基音抽出処理]
次に、基音可視化装置100が実行する基音抽出処理について説明する。
基音抽出処理とは、上述した図5の表示処理における、LチャンネルについてのステップS54の処理と、RチャンネルについてのステップS56の処理をいう。
基音抽出処理による処理は、推定する基音の数だけ繰り返し行われる。基音抽出処理において、CPU10は、1フレームの中で、ステレオ情報の利用処理、音程チェック、基音パワー計算、倍音パワー計算等を行いつつ、スペクトルパターンとの比較を行う。これにより、基音パワーおよび倍音パワーの最大値を持つ箇所と、スペクトルパターンとの比が最小の箇所が、基音の候補として抽出される。
図6および図7は、図1の構成を有する基音可視化装置100が実行する基音抽出処理の流れの一例を示すフローチャートである。
即ち、図5のステップS54の基音抽出処理(Lch)と、図5のステップS56の基音抽出処理(Rch)として、図6及び図7のフローチャートに従った処理がそれぞれ実行される。ただし、説明の便宜上、図6及ぶ図7の説明では、図5のステップS54の基音抽出処理(Lch)についてのみ言及する。
ステップS61〜S69において、CPU10は、Lチャンネルの音源毎の初期値を設定する。以下、ステップS61〜S69について、より詳細な説明を行う。
ステップS61において、CPU10は、変数の初期化を行う。
ステップS62において、CPU10は、カウンタiiに0をセットする。
ステップS63において、CPU10は、カウンタiiの値がレジスタpolyの値よりも小さいか否か、即ち、処理数が推定基音の数に達しているか否かを判定する。これにより、CPU10は、音源数を特定する。カウンタiiの値がレジスタpolyの値よりも大きい場合、即ち、推定基音の数に達している場合には、ステップS63においてNOであると判定されて、基音抽出処理は終了となる。これに対し、カウンタiiの値がレジスタpolyの値よりも小さい場合、即ち、推定基音の数に未だ達していない場合には、ステップS63においてYESであると判定されて、処理はステップS64に進む。
ステップS64において、CPU10は、音源種類に基づいて、音源種番号を特定する。
ステップS65において、CPU10は、音源毎のサイドバンド幅に基づき、サイドバンド幅を特定する。
ステップS66において、CPU10は、音源毎の高調波(倍音)の数に基づいて、高調波(倍音)の数を特定する。
ステップS67およびS68において、CPU10は、所定の式に基づいて、音源の下限および上限の周波数を特定する。
ステップS69において、CPU10は、ステップS61〜S69において設定した初期値について、新たに計算が必要かどうかを判定し、設定した初期値をポインタcalcにセットする。
ステップS70およびステップS71において、CPU10は、Lチャンネルの音源の周波数の下限から上限までサーチを行う。音源の上限までサーチが行われた場合には、ステップS71においてNOであると判定されて、処理はステップS88に進む。ステップS88以降の処理については後述する。音源の上限までサーチが行われていない場合には、ステップS71においてYESであると判定されて、処理はステップS72に進む。
ステップS72において、CPU10は、ポインタセット処理を実行する。即ち、CPU10は、メモリ内にあるLチャンネル(およびRチャンネル)の情報を読み込むためのポインタを設定する。なお、ポインタセット処理の詳細については、図8等を参照して後述する。
ステップS73において、CPU10は、禁止音程か否かを判定する処理として、音程チェック処理を実行する。なお、音程チェック処理の詳細については、図10等を参照して後述する。
ステップS74において、CPU10は、レジスタalreadyに「0」がストアされているか、即ち、禁止音程フラグの値がストアされているか否かを判定する。
レジスタalreadyに「0」がストアされている場合、即ち、禁止音程フラグの値がストアされている場合には、ステップS74においてNOであると判定されて、処理はステップS87に進む。ステップS87以降の処理については、後述する。
これに対し、レジスタalreadyに「0」がストアされていない場合、即ち、禁止音程フラグの値がストアされていない場合には、ステップS74においてYESであると判定されて、処理はステップS75に進む。
ステップS75において、CPU10は、ポインタcalcに1をセットする。
ステップS76〜S79において、CPU10は、Lチャンネルのパワースペクトル値の計算を行う。以下、ステップS76〜S79について、より詳細な説明を行う。
ステップS76において、CPU10は、所定の式に基づいて、Lチャンネルのサイドバンド幅の上限を特定する。
ステップS77において、CPU10は、所定の式に基づいて、Lチャンネルのサイドバンド幅の下限を特定する。
ステップS78において、CPU10は、基音パワー計算処理を行う。即ち、CPU10は、処理対象の周波数について、サイドバンド幅を含めた基音のパワーを計算する。なお、基音パワー計算処理の詳細については、図11等を参照して後述する。
ステップS79において、CPU10は、倍音パワー処理を行う。即ち、CPU10は、処理対象の周波数について、サイドバンド幅を含めた倍音のパワーを計算する。なお、倍音パワー計算処理の詳細については、図13等を参照して後述する。
ステップS80において、CPU10は、Lチャンネルのパワースペクトル値の平均を計算する。
ステップS81〜S84において、CPU10は、周波数毎に計算したパワーのうち、最大のものをLチャンネルのmaxptとする。即ち、処理対象の周波数のパワーが、これまでの中で最大であれば、maxptの値として上書きされ、そうでない場合,maxptの値はこれまでの値のまま保持される。
ステップS85〜S87において、CPU10は、周波数毎に計算したパワーのうち、スペクトルパターンが最も類似するものをレジスタsimileminにストアする。即ち、処理対象の周波数のパワーが、スペクトルパターンに最も類似していれば、simileminの値として上書きされ、そうでない場合,maxptの値はこれまでの値のまま保持される。
ステップS88において、CPU10は、レジストデータpt[ii]に、基音の周波数位置の値としてmaxptをセットする。
ステップS89において、CPU10は、カウンタiiをインクリメントする。
この処理が終了すると、処理はステップS63に戻る。以後、CPU10は、インクリメントされたカウンタiiの値がレジスタpolyの値に達するまで、上記ステップS63〜S89の処理を繰り返し行う。そして、インクリメントされたカウンタiの値がレジスタpolyの値を超えると、ステップS63においてNOであると判定されて、基音抽出処理は終了となる。
[ポインタセット処理]
次に、図8および図9を参照して基音可視化装置100が実行するポインタセット処理について説明する。
ポインタセット処理とは、上述した図7の基音抽出処理における、ステップS72の処理をいう。
ポインタセット処理は、ステレオ情報のそれぞれを利用するための各種変数をポインタにセットする処理である。
図8は、図1の構成を有する基音可視化装置100が実行するポインタセット処理の流れの一例を示すフローチャートである。図9は、図8のポインタセット処理に基づきセットされるポインタの模式図である。
ステップS101において、CPU10は、ポインタiLRは0であるか否か、即ち、LチャンネルとRチャンネルのうち何れの音響波形データが指定されているかを判定する。
ポインタiLRが0でない場合、即ち、指定された音響波形データはRチャンネルである場合には、ステップS101においてNOであると判定されて、処理はステップS106に進み、ステップS106〜S109の処理が実行される。ただし、ステップS106以降の処理については後述する。
これに対し、ポインタiLRが0である場合、即ち、指定された音響波形データがLチャンネルである場合には、ステップS101においてYESであると判定されて、処理はステップS102に進み、ステップS102〜S105の処理が行われる。
ステップS102において、CPU10は、ポインタiMEに1をセットする。
ステップS103において、CPU10は、ポインタiYuに、i+m/2をセットする。
ステップS104において、CPU10は、ポインタiMeoSTに0をセットする。
ステップS105において、CPU10は、ポインタiYuOstにm/2をセットする。この処理が終了すると、ポインタセット処理は終了となる。
ステップS106において、CPU10は、ポインタiMeにi+m/2をセットする。
ステップS107において、CPU10は、ポインタiYuに1をセットする。
ステップS108において、CPU10は、ポインタiMeOstにm/2をセットする。
ステップS109において、CPU10は、ポインタiYuOstに0をセットする。この処理が終了すると、ポインタセット処理は終了となる。
[音程チェック処理]
次に、基音可視化装置100が実行する音程チェック処理について説明する。
音程チェック処理とは、上述した図7の基音抽出処理における、ステップS73の処理をいう。
音程チェック処理では、CPU10は、周波数値から半音毎のセント値(MIDIのノート番号)に変換し、変換したセント値が所定の関係かどうかをチェック(検査)する。
図10は、図1の構成を有する基音可視化装置100が実行する音程チェック処理の流れの一例を示すフローチャートである。
ステップS121において、CPU10は、ポインタjに0をセットする。即ち、音源数がゼロリセットされる。
ステップS122において、CPU10は、レジスタalreadyにストアされている禁止音程フラグの値をゼロリセットする。
ステップS123において、CPU10は、最大音源数まで処理したか否かを判定する。最大音源数まで処理が行われた場合には、ステップS123においてNOであると判定されて、音程チェック処理は終了となる。これに対し、最大音源数まで処理が行われていない場合には、ステップS123においてYESであると判定されて、処理はステップS124に進む。
ステップS124において、CPU10は、基音の周波数位置であるか否かを判定する。基音の周波数位置ではない場合には、ステップS124においてNOであると判定されて、処理はステップS125に進む。
ステップS125において、CPU10は、カウンタjをインクリメントする。この処理が終了すると、処理はステップS123に戻る。以後、処理が最大音源数に達するまでステップS123〜S132の処理が繰り返し行われる。
これに対し、基音の周波数位置である場合には、ステップS124においてYESであると判定されて、処理はステップS126に進む。
ステップS126において、CPU10は、レジスタcentに、確定済み基音の音程の値として音源jの基音のMIDI番号をストアする。
ステップS127において、CPU10は、レジスタcent2に、抽出対象の基音の音程の値として今回の音高のMIDI番号をストアする。
ステップS128において、CPU10は、カウンタkに0をセットし、カウンタkをゼロリセットする。
ステップS129において、CPU10は、カウンタkは[ccn]よりも小さいか否かを判定する。
カウンタkは[ccn]よりも大きい場合には、ステップS129においてNOであると判定されて、音程チェック処理は終了となる。
これに対し、カウンタkは[ccn]よりも小さい場合には、ステップS129においてYESであると判定されて、処理はステップS130に進む。
ステップS130において、CPU10は、禁止音程であるか否かを判定する。禁止音程である場合には、ステップS130においてYESであると判定されて、処理はステップS131に進む。
ステップS131において、CPU10は、レジスタalreadyに、禁止音程フラグの値として1をストアする。この処理が終了すると、音程チェック処理は終了となる。
禁止音程ではない場合には、ステップS130においてNOであると判定されて、処理はステップS132に進む。
ステップS132において、CPU10は、カウンタkをインクリメントする。この処理が終了すると、処理はステップS129に戻る。以後、インクリメントされたカウンタkの値が[ccn]に達するまで上記ステップS129〜S132の処理が繰り返し行われる。
[基音パワー計算処理]
次に、基音可視化装置100が実行する基音パワー計算処理について説明する。
基音パワー計算処理とは、上述した図7の基音抽出処理における、ステップS78の処理をいう。
図11および図12は、図1の構成を有する基音可視化装置100が実行する基音パワー計算処理の流れの一例を示すフローチャートである。
ステップS141において、CPU10は、iMe番目のパワーを読み出す。
ステップS142において、CPU10は、所定の式に基づいて、ステレオ情報の音源の定位置を計算する。
ステップS143〜S145において、CPU10は、ポインタの値を初期化する。
ステップS146〜S151において、CPU10は、サイドバンド幅の上側のパワーを累積する。以下、ステップS146〜S151について、より詳細に説明を行う。
ステップS146において、CPU10は、サイドバンド幅の上側が全て計算されたか否かを判定する。
サイドバンド幅の上側が全て計算された場合には、ステップS146においてNOであると判定されて、処理はステップS152に進む。ステップS152以降の処理については、後述する。
これに対し、サイドバンド幅の上側が全て計算されていない場合には、ステップS146においてYESであると判定されて、処理はステップS147に進む。
ステップS147において、CPU10は、所定の式に基づいて定位置の計算を行う。
ステップS148において、CPU10は、所定の式に基づいて定位置による補正値の計算を行う。
ステップS149において、CPU10は、計算された定位置および定位置による補正値に基づいてサイドバンド幅の上側のパワーを累積する。
ステップS150において、CPU10は、サイドバンドの数の値をインクリメントする。
ステップS151において、CPU10は、カウンタkをインクリメントする。
この処理が終了すると処理はステップS146に戻される。即ち、サイドバンド幅の上側のパワーが全て計算されるまで、ステップS146〜S151の処理が繰り返し行われる。そして、サイドバンド幅の上側のパワーが全て計算されると、ステップS146においてNOであると判定されて、処理はステップS152に進む。
ステップS152において、CPU10は、基音を含めたパワーを累積する。
ステップS153およびS154において、CPU10は、ポインタの値を初期化する。
ステップS155〜S160において、CPU10は、サイドバンド幅の下側のパワーを累積する。以下、ステップS155〜S160について、より詳細に説明を行う。
ステップS155において、CPU10は、サイドバンド幅の下側が全て計算されたか否かを判定する。サイドバンド幅の下側が全て計算されていない場合には、ステップS155においてYESであると判定されて、処理はステップS156に進む。
ステップS156において、CPU10は、所定の式に基づいて定位置の計算を行う。
ステップS157において、CPU10は、所定の式に基づいて定位置による補正値の計算を行う。
ステップS158において、CPU10は、計算された定位置および定位置による補正値に基づいてサイドバンド幅の下側のパワーを累積する。
ステップS159において、CPU10は、サイドバンドの数の値をインクリメントする。
ステップS160において、CPU10は、カウンタkをインクリメントする。この処理が終了すると処理はステップS155に戻される。
即ち、サイドバンド幅の下側のパワーが全て計算されるまで、ステップS155〜S160の処理が繰り返し行われる。そして、サイドバンド幅の下側のパワーが全て計算されると、ステップS155においてNOであると判定されて、処理はステップS161に進む。
ステップS161において、CPU10は、累積したサイドバンド幅の上側のパワーと、サイドバンド幅の下側のパワーとを加算する。この処理が終了すると、基音パワー計算処理は終了となる。
[倍音パワー計算処理]
次に、基音可視化装置100が実行する倍音パワー計算処理について説明する。
倍音パワー計算処理とは、上述した図7の基音抽出処理における、ステップS79の処理をいう。
図13〜図15は、図1の構成を有する基音可視化装置100が実行する倍音パワー計算処理の流れの一例を示すフローチャートである。
ステップS171において、CPU10は、基音のパワーを算出する。
ステップS172において、CPU10は、スペクトルパターンとの比較評価値、即ち、スペクトルパターンの類似度をリセットする。
ステップS173において、CPU10は、カウンタjに1をセットし、倍音を計算する。
ステップS174において、CPU10は、最大倍音数まで計算したか否かを判定する。
最大倍音数まで計算した場合には、ステップS174においてNOであると判定されて倍音パワー計算処理は終了となる。
これに対し、最大倍音数まで計算されていない場合には、ステップS174においてYESであると判定されて、処理はステップS175に進む。
ステップS175において、CPU10は、フレームサイズ(m)の1/8まで計算したか否かを判定する。
フレームサイズ(m)の1/8まで計算した場合には、ステップS175においてNOであると判定されて、処理はステップS196に進む。ステップS196以降の処理については、後述する。
ここで、フレームサイズ(m)の1/8以上計算することにより算出されるパワーは小さく、無視できる程度である。したがって、この処理を行うことにより、無視できる程度のパワーの計算を省略し時間の短縮を図ることができる。
これに対し、フレームサイズ(m)の1/8まで計算されていない場合には、ステップS175においてYESであると判定されて、処理はステップS176に進む。
ステップS176およびS177において、CPU10は、ポインタの値を初期化する。
ステップS178〜S183において、CPU10は、サイドバンド幅の上側のパワーを累積する。ステップS178〜S183の処理については、図11のS146〜151の処理と同様であるため、説明を省略するが、サイドバンド幅の上側のパワーが全て計算されるまで、ステップS178〜S183の処理が繰り返し行われる。そして、サイドバンド幅の上側のパワーが全て計算されると、ステップS178においてNOであると判定されて、処理はステップS184に進む。
ステップS184において、CPU10は、基音を含めたパワーを累積する。
ステップS185において、CPU10は、倍音のみのパワーを累積する。
ステップS186およびS187において、CPU10は、ポインタの値を初期化する。
ステップS188〜S193において、CPU10は、サイドバンド幅の下側のパワーを累積する。ステップS188〜S193の処理については、図11のS155〜160の処理と同様であるため、説明を省略するが、サイドバンド幅の下側のパワーが全て計算されるまで、ステップS188〜S193の処理が繰り返し行われる。そして、サイドバンド幅の下側のパワーが全て計算されると、ステップS188においてNOであると判定されて、処理はステップS194に進む。
ステップS194において、CPU10は、基音を含めて累積したサイドバンド幅の上側のパワーと、サイドバンド幅の下側のパワーとを加算する。
ステップS195において、CPU10は、倍音のみ累積したサイドバンド幅の上側のパワーと、サイドバンド幅の下側のパワーとを加算する。
ステップS196において、CPU10は、所定の式に基づいて、スペクトルパターンとの比較評価値を演算する。
ステップS197において、CPU10は、ポインタjをインクリメントする。
この処理が終了すると処理はステップS174に戻される。そして、インクリメントされたポインタjの値が高調波数より小さい場合、即ち最大倍音数まで計算し終えていなければ、ステップS174においてYESであると判定され、ステップS174〜S197の処理が繰り返し行われる。
[パワー補正処理]
次に、基音可視化装置100が実行するパワー補正処理について説明する。
パワー補正処理とは、上述した図5の表示処理における、LチャンネルについてのステップS55の処理と、RチャンネルについてのステップS57の処理をいう。
図16および図17は、図1の構成を有する基音可視化装置100が実行するパワー補正処理の流れの一例を示すフローチャートである。
ステップS211において、CPU10は、カウンタiに0をセットする。
ステップS212〜S219において、CPU10は、各基音のオフセット値を計算する。以下、ステップS212〜S219について、より詳細に説明する。
ステップS212において、CPU10は、推定基音の数、即ち音源数分だけ処理したか否かを判定する。音源数分だけ処理した場合には、ステップS212においてNOであると判定されて、パワー補正処理は終了となる。これに対し、音源数分だけ処理した場合には、ステップS212においてYESであると判定されて、処理はステップS213に進む。
ステップS213において、CPU10は、基音の周波数位置が計算済みであるか否かを判定する。基音の周波数位置が計算済みである場合には、ステップS213においてNOであると判定されて、処理はステップS230に進む。ステップS230以降の処理については後述する。これに対し、基音の周波数位置が未だ計算されていない場合には、ステップS213においてYESであると判定されて、処理はステップS214に進む。
ステップS214において、CPU10は、所定の式に基づいて、基音のメモリ上の周波数位置を計算する。
ステップS215において、CPU10は、所定の式に基づいて、サイドバンド幅の上限の周波数を計算する。
ステップS216において、CPU10は、所定の式に基づいて、サイドバンド幅の下限の周波数を計算する。
ステップS217において、CPU10は、サイドバンド幅の上限のパワーと、サイドバンド幅の下限のパワーは、どちらが大きいかを判定する。サイドバンド幅の上限のパワーの方が大きい場合には、ステップS217においてYESであると判定されて、処理はステップ218に進む。
ステップS218において、CPU10は、サイドバンド幅の上限をオフセット値として用いる。この処理が終了すると、処理はステップS220に進む。ステップS220以降の処理については、後述する。これに対し、サイドバンド幅の下限のパワースペクトルの方が大きい場合には、ステップS217においてNOであると判定されて、処理はステップ219に進む。
ステップS219において、CPU10は、サイドバンド幅の下限をオフセット値として用いる。
ステップS220において、CPU10は、ポインタkに1をセットし、ポインタの値を初期化する。
ステップS221〜224において、CPU10は、サイドバンド幅の上側のパワーを強調する。以下、ステップS221〜S224について、より詳細に説明する。
ステップS221において、CPU10は、基音位置からサイドバンド幅の上限まで計算したか否かを判定する。基音位置からサイドバンド幅の上限まで計算していない場合には、ステップS221においてYESであると判定されて、処理はステップS222に進む。
ステップS222において、CPU10は、パワーはオフセット値よりも大きいか否かを判定する。オフセット値よりも大きいパワーの場合には、ステップS222においてNOであると判定されて、処理はステップS224に進む。ステップS224以降の処理については後述する。これに対し、オフセット値よりも小さいパワーの場合には、ステップS222においてYESであると判定されて、処理はステップS223に進む。
ステップS223において、CPU10は、パワーにオフセット値を加算することで、当該パワーを補正する。この処理を行うことにより、基音部分の強調表示を行うことができる。
ステップS224において、CPU10は、カウンタkをインクリメントする。この処理が終了すると処理はステップS221に戻る。即ち、基音位置からサイドバンド幅の上限まで全て計算されるまで、ステップS221〜S224の処理が繰り返し行われる。そして、基音位置からサイドバンド幅の上限まで全て計算されると、ステップS221においてNOであると判定されて、処理はステップS225に進む。
ステップS225において、CPU10は、ポインタkに1をセットすることで、ポインタの値を初期化する。
ステップS226〜229において、CPU10は、サイドバンド幅の下側のパワーを強調する。以下、ステップS226〜S229について、より詳細に説明する。
ステップS226において、CPU10は、基音位置からサイドバンド幅の下限まで計算したか否かを判定する。基音位置からサイドバンド幅の下限まで計算していない場合には、ステップS226においてYESであると判定されて、処理はステップS227に進む。
ステップS227において、CPU10は、パワーはオフセット値よりも大きいか否かを判定する。オフセット値よりも大きいパワーの場合には、ステップS227においてNOであると判定されて、処理はステップS229に進む。ステップS229以降の処理については後述する。これに対し、オフセット値よりも小さいパワーの場合には、ステップS227においてYESであると判定されて、処理はステップS228に進む。
ステップS228において、CPU10は、パワーにオフセット値を加算することで、当該パワーを補正する。この処理を行うことにより、基音部分の強調表示を行うことができる。
ステップS229において、CPU10は、カウンタkをインクリメントする。この処理が終了すると処理はステップS226に戻る。即ち、基音位置からサイドバンド幅の下限まで全て計算されるまで、ステップS226〜S229の処理が繰り返し行われる。そして、基音位置からサイドバンド幅の下限まで全て計算されると、ステップS226においてNOであると判定されて、処理はステップS230に進む。
図1の基音可視化装置100は、以上図3〜図17を参照して説明した処理を実行することで、基音を推定し、図18に示すように、その推定されたピッチ(ピッチの候補)を強調表示することで、ピッチを可視化する。
図18は、図1の基音可視化装置100により可視化された基音の表示例を示す図である。
図18(1)〜(4)の縦軸は、ピアノの88鍵(iHeight)の各周波数に対応し、横軸は、時間軸(timen)を示す。また、図18(1)、(3)は、通常のパワースペクトルのフレーム毎の表示例を示し、図18(2)、(4)は、基音を強調したパワースペクトルのフレーム毎の表示例を示す。
また、図18(1)〜(4)の左図は、「歌」+「伴奏」の表示例を示し、図18(1)〜(4)の右図は、「ピアノソロ曲」の表示例を示す。
図18(1)〜(4)に示すように、基音可視化装置100は、パワー毎に表示色を異ならせた(同図では、色の相違は表現が困難であるため、濃度の変化として表されている)パワースペクトルを曲頭から曲末尾までの時系列順にフレーム単位で画面表示する。
このように、縦軸が、ピアノの88鍵に対応する表現となるため、ユーザによるピッチ(基音)の認識(読み取り)が容易となる。また、「歌」+「伴奏」のような複雑な楽曲でも、曲に支配的なピッチ(基音)の大要をユーザが即座に把握することができる。また、図18の例では、カラー表示できない為にモノクロ表示となっているが、実際には前述したように表示色を異ならせているため、ユーザがどの色(どの位置)で表示されるかで時系列的に変化する各音源の色を一目瞭然で把握することが容易となる。
以上説明したように、本実施形態の基音可視化装置100は、複数の音源から供給される音響波形データ(音響信号)を所定時間単位毎に周波数分析することで、当該所定時間単位のパワースペクトルを取得し、前記パワー取得手段により取得された前記所定時間単位の前記パワースペクトルに基づいて、前記音源毎の基音を推定する。そして、取得された前記所定時間単位の前記パワースペクトルについて、推定された基音のパワーを強調し、パワーが強調された基音を含むパワースペクトルを、所定時間単位毎に表示する制御を実行する可視化が行われる。したがって、ユーザは、可視化された箇所を視認することにより、音響波形データ(音響信号)をそのまま可視化したピッチ(基音)の認識、即ち、真実の内容に対するピッチ(基音)の認識が容易となる。また、基音可視化装置100により可視化されるピッチ(基音)の内容は、あくまでも記号化される前の状態のアナログ的な音響波形データ(音響信号)に基づく可視化であるため、ユーザは、可視化された内容と聴いた印象との対比を容易に行うことができる。これにより、人間による音響波形データ(音響信号)の中にあるピッチ(基音)の認識を補助することが可能となる。
また、本実施形態の基音可視化装置100は、対象とする音響波形データ(音響信号)の音楽タイプ、音楽に含まれる音源の特徴、又はステレオ情報を利用して、基音を推定する。これにより、音楽タイプや音源の特徴等に基づき、基音を推定することができるので、幅広い範囲の音楽や音響波形データ(音響信号)に基づいてピッチ(基音)の可視化を行うことができる。
また、本実施形態の基音可視化装置100は、さらに、音源固有のスペクトルパターン、音域、高調波の数のうち、少なくとも1つに基づいて、基音を推定する。これにより、音源固有のスペクトルパターン、音域、高調波の数等に基づき、基音を推定することができるので、幅広い範囲の音楽や音響波形データ(音響信号)に基づいてピッチ(基音)の可視化を行うことができる。
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
例えば、上述の実施形態では、推定された基音のみならず、その前後のサイドバンドについても、パワーが強調されるように表示されたが、特にこれに限定されず、基音のみが強調されてもよい。しかしながら、あくまでも基音とは推定されたものであり、本発明の目的は、基音の自動抽出では無く、人間による基音の判断の支援であるため、上述の実施形態のように、基音のみならず、推定された基音を含む所定の周波数帯のパワーを強調する方が好適である。
例えば、上述の実施形態では、CPU10は、音程チェック処理を行っているが必ずしも行う必要はない。例えば、CPU10は、基音抽出の精度を高める必要がない場合には、音程チェック処理を省略することができる。
また、上述の実施形態では、CPU10は、フレームサイズ(m)の1/8以上の計算を省略しているがこれに限られるものではない。例えば、CPU10は、フレームサイズ(m)の全てについて計算することができる。これにより、精度を高めることができる。
また、上述の実施形態では、本発明に係る基音可視化装置100は、コンピュータを例として説明したが、特にこれに限定されない。
例えば、本発明は、表示制御機能を有する電子機器一般に適用することができる。具体的には、例えば、本発明は、電子楽器、ノート型のパーソナルコンピュータ、プリンタ、テレビジョン受像機、ビデオカメラ、携帯型ナビゲーション装置、携帯電話機、ポータブルゲーム機等に適用可能である。
換言すると、図1のハードウェア構成は例示に過ぎず、特に限定されない。
以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態を取ることが可能であり、さらに、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
[付記1]
複数の音源から供給される音響波形データを所定時間単位毎に周波数分析することで、当該所定時間単位のパワースペクトルを取得するパワー取得手段と、
前記パワー取得手段により取得された前記所定時間単位の前記パワースペクトルに基づいて、前記音源毎の基音を推定する基音推定手段と、
前記パワー取得手段により取得された前記所定時間単位の前記パワースペクトルについて、前記基音推定手段により推定された前記基音のパワーを強調する強調手段と、
前記強調手段によりパワーが強調された前記基音を含む前記パワースペクトルを、前記所定時間単位毎に表示する制御を実行する表示制御手段と、
を備えることを特徴とする基音可視化装置。
[付記2]
前記基音推定手段は、対象とする前記音響波形データの音楽タイプ、音楽に含まれる音源の特徴、又はステレオ情報を利用して、前記基音を推定する、
ことを特徴とする付記1に記載の基音可視化装置。
[付記3]
前記基音推定手段は、さらに、音源固有のスペクトルパターン、音域、高調波の数のうち、少なくとも1つに基づいて、前記基音を推定する、
ことを特徴とする付記1又は2に記載の基音可視化装置。
[付記4]
前記強調手段は、さらに、前記基音推定手段により推定された前記基音を含む所定の周波数帯のパワーを強調する
ことを特徴とする付記1乃至3のうちの何れか1つに記載の基音可視化装置。
[付記5]
基音を含むパワースペクトルを表示する制御を実行する基音可視化装置が実行する基音可視化方法であって、
複数の音源から供給される音響波形データを所定時間単位毎に周波数分析することで、当該所定時間単位のパワースペクトルを取得するパワー取得ステップと、
前記パワー取得ステップにより取得された前記所定時間単位の前記パワースペクトルに基づいて、前記音源毎の基音を推定する基音推定ステップと、
前記パワー取得ステップにより取得された前記所定時間単位の前記パワースペクトルについて、前記基音推定ステップにより推定された前記基音のパワーを強調する強調ステップと、
前記強調ステップによりパワーが強調された前記基音を含む前記パワースペクトルを、前記所定時間単位毎に表示する制御を実行する表示制御ステップと、
を含む基音可視化方法。
[付記6]
基音を含むパワースペクトルを表示する制御を実行する基音可視化装置を制御するコンピュータを、
複数の音源から供給される音響波形データを所定時間単位毎に周波数分析することで、当該所定時間単位のパワースペクトルを取得するパワー取得手段、
前記パワー取得手段により取得された前記所定時間単位の前記パワースペクトルに基づいて、前記音源毎の基音を推定する基音推定手段、
前記パワー取得手段により取得された前記所定時間単位の前記パワースペクトルについて、前記基音推定手段により推定された前記基音のパワーを強調する強調手段、
前記強調手段によりパワーが強調された前記基音を含む前記パワースペクトルを、前記所定時間単位毎に表示する制御を実行する表示制御手段、
として機能させるプログラム。
10 CPU
11 ROM
12 RAM
13 入力手段
14 表示手段
15 音響出力手段
16 音響入力手段
100 基音可視化装置

Claims (6)

  1. 複数の音源から供給される音響波形データを所定時間単位毎に周波数分析することで、当該所定時間単位のパワースペクトルを取得するパワー取得手段と、
    前記パワー取得手段により取得された前記所定時間単位の前記パワースペクトルに基づいて、前記音源毎の基音を推定する基音推定手段と、
    前記パワー取得手段により取得された前記所定時間単位の前記パワースペクトルについて、前記基音推定手段により推定された前記基音のパワーを強調する強調手段と、
    前記強調手段によりパワーが強調された前記基音を含む前記パワースペクトルを、前記所定時間単位毎に表示する制御を実行する表示制御手段と、
    を備えることを特徴とする基音可視化装置。
  2. 前記基音推定手段は、対象とする前記音響波形データの音楽タイプ、音楽に含まれる音源の特徴、又はステレオ情報を利用して、前記基音を推定する、
    ことを特徴とする請求項1に記載の基音可視化装置。
  3. 前記基音推定手段は、さらに、音源固有のスペクトルパターン、音域、高調波の数のうち、少なくとも1つに基づいて、前記基音を推定する、
    ことを特徴とする請求項1又は2に記載の基音可視化装置。
  4. 前記強調手段は、さらに、前記基音推定手段により推定された前記基音を含む所定の周波数帯のパワーを強調する
    ことを特徴とする請求項1乃至3のうちの何れか1項に記載の基音可視化装置。
  5. 基音を含むパワースペクトルを表示する制御を実行する基音可視化装置が実行する基音可視化方法であって、
    複数の音源から供給される音響波形データを所定時間単位毎に周波数分析することで、当該所定時間単位のパワースペクトルを取得するパワー取得ステップと、
    前記パワー取得ステップにより取得された前記所定時間単位の前記パワースペクトルに基づいて、前記音源毎の基音を推定する基音推定ステップと、
    前記パワー取得ステップにより取得された前記所定時間単位の前記パワースペクトルについて、前記基音推定ステップにより推定された前記基音のパワーを強調する強調ステップと、
    前記強調ステップによりパワーが強調された前記基音を含む前記パワースペクトルを、前記所定時間単位毎に表示する制御を実行する表示制御ステップと、
    を含む基音可視化方法。
  6. 基音を含むパワースペクトルを表示する制御を実行する基音可視化装置を制御するコンピュータを、
    複数の音源から供給される音響波形データを所定時間単位毎に周波数分析することで、当該所定時間単位のパワースペクトルを取得するパワー取得手段、
    前記パワー取得手段により取得された前記所定時間単位の前記パワースペクトルに基づいて、前記音源毎の基音を推定する基音推定手段、
    前記パワー取得手段により取得された前記所定時間単位の前記パワースペクトルについて、前記基音推定手段により推定された前記基音のパワーを強調する強調手段、
    前記強調手段によりパワーが強調された前記基音を含む前記パワースペクトルを、前記所定時間単位毎に表示する制御を実行する表示制御手段、
    として機能させるプログラム。
JP2013174238A 2013-08-26 2013-08-26 基音可視化装置、基音可視化方法およびプログラム Active JP6307814B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013174238A JP6307814B2 (ja) 2013-08-26 2013-08-26 基音可視化装置、基音可視化方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013174238A JP6307814B2 (ja) 2013-08-26 2013-08-26 基音可視化装置、基音可視化方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2015043014A true JP2015043014A (ja) 2015-03-05
JP6307814B2 JP6307814B2 (ja) 2018-04-11

Family

ID=52696568

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013174238A Active JP6307814B2 (ja) 2013-08-26 2013-08-26 基音可視化装置、基音可視化方法およびプログラム

Country Status (1)

Country Link
JP (1) JP6307814B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110580912A (zh) * 2019-10-21 2019-12-17 腾讯音乐娱乐科技(深圳)有限公司 音乐可视化的方法、装置及系统
CN113066512A (zh) * 2021-03-24 2021-07-02 平安科技(深圳)有限公司 佛教音乐识别方法、装置、设备及存储介质
CN113295765A (zh) * 2021-05-14 2021-08-24 四川陆通检测科技有限公司 一种孔道压浆缺陷检测方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04261591A (ja) * 1991-01-07 1992-09-17 Brother Ind Ltd 自動採譜装置
JP2001067068A (ja) * 1999-08-25 2001-03-16 Victor Co Of Japan Ltd 音楽パートの識別方法
JP2005202354A (ja) * 2003-12-19 2005-07-28 Toudai Tlo Ltd 信号解析方法
JP2006171008A (ja) * 2001-09-28 2006-06-29 Nippon Telegr & Teleph Corp <Ntt> 基本周波数抽出装置、その方法、そのプログラム並びにそのプログラムを記録した記録媒体
JP2007033479A (ja) * 2005-07-22 2007-02-08 Kawai Musical Instr Mfg Co Ltd 自動採譜装置及びプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04261591A (ja) * 1991-01-07 1992-09-17 Brother Ind Ltd 自動採譜装置
JP2001067068A (ja) * 1999-08-25 2001-03-16 Victor Co Of Japan Ltd 音楽パートの識別方法
JP2006171008A (ja) * 2001-09-28 2006-06-29 Nippon Telegr & Teleph Corp <Ntt> 基本周波数抽出装置、その方法、そのプログラム並びにそのプログラムを記録した記録媒体
JP2005202354A (ja) * 2003-12-19 2005-07-28 Toudai Tlo Ltd 信号解析方法
JP2007033479A (ja) * 2005-07-22 2007-02-08 Kawai Musical Instr Mfg Co Ltd 自動採譜装置及びプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110580912A (zh) * 2019-10-21 2019-12-17 腾讯音乐娱乐科技(深圳)有限公司 音乐可视化的方法、装置及系统
CN110580912B (zh) * 2019-10-21 2022-02-22 腾讯音乐娱乐科技(深圳)有限公司 音乐可视化的方法、装置及系统
CN113066512A (zh) * 2021-03-24 2021-07-02 平安科技(深圳)有限公司 佛教音乐识别方法、装置、设备及存储介质
CN113066512B (zh) * 2021-03-24 2024-02-23 平安科技(深圳)有限公司 佛教音乐识别方法、装置、设备及存储介质
CN113295765A (zh) * 2021-05-14 2021-08-24 四川陆通检测科技有限公司 一种孔道压浆缺陷检测方法
CN113295765B (zh) * 2021-05-14 2024-04-26 四川陆通检测科技有限公司 一种孔道压浆缺陷检测方法

Also Published As

Publication number Publication date
JP6307814B2 (ja) 2018-04-11

Similar Documents

Publication Publication Date Title
EP3723080A1 (en) Music classification method and beat point detection method, storage device and computer device
JP6017687B2 (ja) オーディオ信号分析
US9646592B2 (en) Audio signal analysis
CN104050974A (zh) 声音信号分析设备以及声音信号分析方法和程序
Selamtzis et al. Analysis of vibratory states in phonation using spectral features of the electroglottographic signal
CN108206027A (zh) 一种音频质量评价方法及系统
JP6307814B2 (ja) 基音可視化装置、基音可視化方法およびプログラム
EP4250291A1 (en) Audio detection method and apparatus, computer device and readable storage medium
WO2020015411A1 (zh) 一种训练改编水平评价模型、评价改编水平的方法及装置
JP6252147B2 (ja) 音響信号分析装置及び音響信号分析プログラム
Hoffmann et al. Bass enhancement settings in portable devices based on music genre recognition
JP5395399B2 (ja) 携帯端末、拍位置推定方法および拍位置推定プログラム
CN113096689B (zh) 一种歌曲演唱的评价方法、设备及介质
Goldstein et al. Guitar Music Transcription from Silent Video.
Bozkurt A system for tuning instruments using recorded music instead of theory-based frequency presets
JP5077847B2 (ja) 残響時間推定装置及び残響時間推定方法
CN112365568A (zh) 音频处理方法、装置、电子设备和存储介质
CN110751935A (zh) 乐器演奏点的确定及节奏评分的方法
KR100659884B1 (ko) 음악에서의 비브라토 자동 검출방법
CN115728382A (zh) 水果成熟度检测方法、装置、设备及存储介质
Alcabasa et al. Automatic guitar music transcription
WO2020249870A1 (en) A method for processing a music performance
JP5203404B2 (ja) テンポ値検出装置およびテンポ値検出方法
Zhang et al. A matlab-based signal processing toolbox for the characterization and analysis of musical vibrato
CN113744721B (zh) 模型训练方法、音频处理方法、设备及可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160825

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170908

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180226

R150 Certificate of patent or registration of utility model

Ref document number: 6307814

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150