JP5246208B2 - 基音抽出装置、及びプログラム - Google Patents

基音抽出装置、及びプログラム Download PDF

Info

Publication number
JP5246208B2
JP5246208B2 JP2010130067A JP2010130067A JP5246208B2 JP 5246208 B2 JP5246208 B2 JP 5246208B2 JP 2010130067 A JP2010130067 A JP 2010130067A JP 2010130067 A JP2010130067 A JP 2010130067A JP 5246208 B2 JP5246208 B2 JP 5246208B2
Authority
JP
Japan
Prior art keywords
frequency
channel
fundamental
speech waveform
harmonic
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.)
Active
Application number
JP2010130067A
Other languages
English (en)
Other versions
JP2010191474A (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.)
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 JP2010130067A priority Critical patent/JP5246208B2/ja
Publication of JP2010191474A publication Critical patent/JP2010191474A/ja
Application granted granted Critical
Publication of JP5246208B2 publication Critical patent/JP5246208B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

本発明は、第1の音声波形を分析し、該分析結果を用いてその第1の音声波形に音響効果を付与した第2の音声波形を生成するための技術に関する。
音声波形を分析し、その分析結果を用いて音響効果を付与した音声波形を生成できる音響効果付与装置のなかには、その音響効果として音声波形の基音(ピッチ)を変換するものがある。従来の音響効果付与装置としては、特許文献1に記載されたものがある。ここでは、生成後の音声波形、元の音声波形を区別するために、前者を「合成音声波形」、後者を「元音声波形」と表記することとする。
ピッチを変換した合成音声波形の生成は、そのピッチを目標とするピッチ(目標ピッチ)に合わせるために行う場合がある。その場合の変換は従来、元音声波形のピッチ(基本周波数)を直接的に検出し、検出したピッチが目標ピッチとなるようにピッチスケーリングを行うことで実現させるのが普通である。
基本周波数の音(基音)は成分のなかで最もレベルが高いのが普通である。しかし、ギターなどの撥弦楽器やピアノなど打弦楽器では、弦と強さによって、時間の経過と共に、第2倍音(オクターブ上)の方のレベルが高くなる場合がある。これは、直接的な方法では、ピッチを確実には検出できないことを意味する。このようなことから、元音声波形のピッチを直接的に検出することなく、そのピッチを目標ピッチに変換できるようにすることが重要であると考えられる。
特許第2753716号公報
本発明の課題は、音声波形のピッチを確実に抽出するための技術を提供することにある。
本発明の基音抽出装置は、音声波形の基音の周波数を抽出することを前提とし、音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出する周波数分析手段と、周波数分析手段が周波数成分を抽出した周波数チャンネルのなかから、音声波形の基音の1倍以上である倍音の周波数成分が存在する周波数チャンネルを2つ以上、抽出する倍音チャンネル抽出手段と、倍音チャンネル抽出手段が抽出した2つ以上の周波数チャンネルに対応する周波数間の最大公約数を算出する公約数算出手段と、公約数算出手段が算出する最大公約数を用いて音声波形の基音の周波数を抽出する基音抽出手段と、を具備する。
なお、上記基音抽出手段は、倍音チャンネル抽出手段が抽出する2つ以上の周波数チャンネルのうちの一つを基準チャンネルとして、該基準チャンネルの周波数を最大公約数で割って得られる除算値を算出し、該基準チャンネルのフレーム間の位相差を該除算値で除算することで得られる、音声波形の基音でのフレーム間における位相差を周波数に変換することにより、該基音の周波数を算出する、ことが望ましい。また、倍音チャンネル抽出手段は、周波数分析手段が周波数チャンネル毎に抽出する周波数成分から位相を算出し、該算出した位相を用いて2つ以上の周波数チャンネルを抽出する、ことが望ましい。
本発明の第1の態様のプログラムは、上記基音抽出装置が具備する手段を実現させるための機能を有している。
本発明は、第1の音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出し、周波数成分を抽出した周波数チャンネルのなかから、第1の音声波形の基音の1倍以上である倍音の周波数成分が存在する周波数チャンネルを2つ以上、抽出し、抽出した2つ以上の周波数チャンネルに対応する周波数間の最大公約数を算出し、算出した最大公約数を用いて基音の変換内容を決定し、決定した変換内容で第1の音声波形の基音を変換した音声波形を第2の音声波形として生成する。
倍音は基音(ピッチ)の周波数の整数倍の周波数を持っている。それにより、倍音の周波数成分が存在する2つ以上の周波数チャンネル(倍音チャンネル)に対応する周波数間の最大公約数は、基音の周波数を表す情報として扱うことができる。このため、その最大公約数を用いて、第1の音声波形の基音を目標とする基音に高精度に変換(シフト)した第2の音声波形を生成することができる。第1の音声波形の基音を抽出(検出)する必要性は回避されることから、ミッシング・ファンダメンタルと呼ばれる基本周波数が欠落、或いは他の周波数と比較して非常に小さいような第1の音声波形でも、目標とする基音を持つ第2の音声波形を確実に生成することができる。また、その最大公約数を用いることにより、第1の音声波形の基音の周波数も確実に抽出(検出)することができる。
本実施の形態による音響効果付与装置を搭載した電子楽器の構成図である。 本実施の形態による音響効果付与装置の機能構成図である。 展開した位相差と周波数の関係を説明するグラフである。 実位相差δと周波数の関係を説明するグラフである。 全体処理のフローチャートである。 位相補償処理のフローチャートである。 スケーリング値算出処理のフローチャートである。
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
図1は、本実施の形態による音響効果付与装置を搭載した電子楽器の構成図である。
その電子楽器は、図1に示すように、楽器全体の制御を行うCPU1と、複数の鍵を備えた鍵盤2と、各種スイッチを備えたスイッチ部3と、CPU1が実行するプログラムや各種制御用データ等を格納したROM4と、CPU1のワーク用のRAM5と、例えば液晶表示装置(LCD)や複数のLEDなどを備えた表示部6と、マイク7から入力されるアナログの音声信号のA/D変換を行いその音声データを出力するA/D変換器8と、CPU1の指示に従い楽音発音用の波形データを生成する楽音生成部9と、その生成部9が生成した波形データのD/A変換を行い、アナログのオーディオ信号を出力するD/A変換器10と、そのオーディオ信号を放音するサウンドシステム11と、を備えて構成されている。それらの構成において、CPU1、鍵盤2、スイッチ部3、ROM4、RAM5、表示部6、A/D変換器8、及び楽音生成部9の間はバスによって相互に接続されている。なお、上記スイッチ部3は、例えばユーザが操作の対象とする各種スイッチの他に、各種スイッチの状態変化を検出するための検出回路を備えたものである。マイク7は、内蔵されたものか、或いは特には図示しない端子に接続されたものである。
上記構成の電子楽器において、本実施の形態による音響効果付与装置は、マイク7から入力した音声に対し、そのピッチ(基音)を指定されたピッチ(目標ピッチ)に変換(シフト)する音響効果を付与できるものとして実現されている。音声の入力は、外部記憶装置を介して行っても良く、LAN、或いは公衆網等の通信ネットワークを介して行っても良い。
図2は、本実施の形態による音響効果付与装置の機能構成図である。
音響効果を付加した音声波形、つまりピッチをシフトした音声波形は、元の音声波形を周波数分析して周波数チャンネル毎に周波数成分(スペクトル成分)を抽出し、抽出した周波数成分をシフトし、そのシフト後の周波数成分を用いて合成(生成)するようになっている。そのために、以下のような機能構成を備えている。
図2に示すA/D変換器(ADC)8は、マイク7から出力されたアナログの音声信号をデジタルの音声データに変換するものである。例えばサンプリング周波数8021Hz、16bitでAD変換を行う。以降、それがAD変換して得られる音声データについては便宜的に「元音声データ」、或いは「元波形データ」と呼び、マイク7に入力された音声については「元音声」と呼ぶことにする。
入力バッファ21は、A/D変換器8が出力する元音声データを一時的に格納するバッファである。フレーム抽出部22は、入力バッファ21に格納された元音声データから予め定められたサイズ分の音声データであるフレームを切り出すことで抽出する。そのサイズ、つまり音声データ(サンプル)数は例えば256である。正確な位相展開の実施にはフレームをオーバーラップさせて抽出する必要があることから、フレームの切り出しはオーバーラップファクタOVLでオーバーラップさせて行う。そのファクタOVLの値としては4を設定している。この場合、ホップサイズは64(256/64=4)である。また、元音声データのピッチ(以降「元ピッチ」と呼ぶ)から目標ピッチへのピッチスケーリング値の範囲は0.5〜2.0の範囲を前提としている。
フレーム抽出部22が抽出したフレームはローパスフィルタ(LPF)23に出力される。そのLPF23は、ピッチのシフトにより周波数成分がナイキスト周波数を超えることを防止するために高周波成分の除去を行う。FFT部24は、LPF23が出力するフレームを対象に高速フーリエ変換(FFT)を実行する。そのFFTは、FFTサイズ(点数)をフレームサイズの2倍(256×2=512)にして実行する。
位相補償部25は、FFTの実行により得られた各周波数チャンネルの周波数成分を対象にして、ピッチシフトによるフレームの伸縮を補償するようにそのサイズを伸縮させる。例えばピッチスケーリング値が前提とする範囲の最大値である2とすれば、ピッチシフトによりフレームサイズは1/2に縮小するから、そのサイズを補償(維持)するためにフレームを2倍に引き伸ばす。このことから、FFTサイズはフレームサイズの2倍としている。ピッチスケーリング値の算出方法についての詳細は後述する。
FFT部24は、LPF23から256サンプルのフレームを入力し、FFTサイズのフレームの前半部分にセットする。後半部分には全て0をセットする。後半部分に0をセットするのは、FFTを実行した後、周波数領域における補間効果をもたらすためである。その補間効果をもたらすために周波数の分解能が向上する。FFT部24は、そのようなセットを行ったフレームを対象にFFTを実行する。
IFFT部26は、位相補償部25がサイズを伸縮させた後の各周波数チャンネルの周波数成分を、IFFT(逆FFT)を行うことにより時間領域上のデータに戻し、1フレーム分の音声データを生成して出力する。ピッチシフタ27は、位相補償部25から入力するピッチスケーリング値に応じて、IFFT部26が生成したフレームに対する補間、或いは間引きを行い、そのピッチをシフトする。補間、間引きには一般的なラグランジュ関数やsinc関数などが使用できるが、本実施の形態ではNeville補間によりピッチシフト(ピッチスケーリング)を行っている。上記補間、或いは間引きにより、フレームサイズは元のサイズ(256サンプル)となる。そのフレームの音声データについては以降「合成音声データ」と呼び、それによって発音される音声を「合成音声」と呼ぶことにする。
出力バッファ29は、音声としてサウンドシステム11から放音させる合成音声データを格納するバッファである。フレーム加算部28は、ピッチシフタ27から入力した1フレーム分の合成音声データを、出力バッファ29に格納された合成音声データにオーバーラップファクタOVLでオーバーラップさせて加算する。出力バッファ29に格納された合成音声データは、D/A変換器(DAC)10に出力されてD/A変換される。
上記入力バッファ21、及び出力バッファ29は、例えばRAM5に確保された領域である。A/D変換器8、D/A変換器10、入力バッファ21、及び出力バッファ29を除く各部22〜28は、例えばRAM5をワーク用にして、CPU1がROM4に格納されたプログラムを実行することで実現される。特に詳細な説明は省略するが、目標ピッチは例えば鍵盤2への操作により指示するようになっている。その目標ピッチは、スタンダードMIDIファイル等の演奏データ、或いは通信ネットワークを介して受信されるデータなどにより指定しても良い。
次に、上記位相補償部25によるピッチスケーリング値の算出方法について詳細に説明する。以降、そのスケーリング値はρと表記する。
FFTの実行により、周波数が異なる周波数チャンネル毎に、実数成分と虚数成分を持つ周波数成分が抽出される。実数成分をreal、虚数成分をimgと表記すると、各周波数チャンネルの周波数振幅mag、及び位相phaseは以下のように算出することができる。
mag=(real2+img21/2 ・・・ (1)
phase=arctan(img/real) ・・・ (2)
arctanを用いて算出される位相phaseは、−π〜πの間に制限される。しかし、位相phaseは角速度の積分値であるから展開する必要がある。展開の有無の区別を容易にするために、折り畳まれている位相を小文字のθ、展開されている位相を大文字のΘで表記すると、本来は
Θk,t=θi,t+2nπ n=0,1,2,・・・ ・・・ (3)
となる。このことから、位相phase(=θ)はnを求めて展開する必要がある。ここで式(3)中のΘに下添字として付したk、tはそれぞれ、周波数チャンネルのインデクス、時刻を表している。
その展開は、以下のような手順で行うことができる。
先ず、フレーム間の位相差Δθを次のようにして算出する。
Δθi,k=θi,k−θi-1,k ・・・ (4)
ここで、Δθi,kは元音声波形の周波数チャンネルkにおける直前のフレームと今回のフレームとの間の位相差、下添字のiはフレームをそれぞれ表している。今回のフレーム(現フレーム)はi、直前のフレームはi−1で表されている。
式(4)中のΔθi,kは折り畳まれた状態にある。一方、周波数チャンネルkの中心角周波数Ωi,kは、サンプリング周波数をfs、FFT点数(サイズ)をNと表記すると
Ωi,k=(2π・fs)・k/N ・・・ (5)
で示される。その周波数Ωi,kの時、直前のフレームとの時間差をΔtとすると、位相差ΔZi,k
ΔZi,k=Ωi,k・Δt ・・・ (6)
で算出できる。時間差Δtは
Δt=N/(fs・OVL) ・・・ (7)
である。式(6)は位相展開されている状態なので、以下のように記述できる。
ΔZi,k=Δζi,k+2nπ ・・・ (8)
式(4)で算出される位相差Δθi,kと式(8)中の位相差Δζi,kの差をδ(=Δθi,k−Δζi,k)とすると
Δθi,k−Ωi,k・Δt=(Δζi,k+δ)−(Δζi,k+2nπ)
=δ−2nπ ・・・ (9)
が導出できる。従って式(9)の右辺の2nπを削除してその範囲を−πからπの間に制限すればδを算出できる。そのδは、元音声波形において実際に検出される位相差(以降「実位相差」と呼ぶ)である。
そのように算出される実位相差δに位相差ΔZi,k(=Ωi,k・Δt)を加算すれば、以下のように位相展開された位相差ΔΘi,kを求めることができる。
ΔΘi,k=δ+Ωi,k・Δt=δ+(Δζi,k+2nπ)=Δθi,k+2nπ
・・・ (10)
式(10)中のΩi,k・Δtは、式(5)、(7)より下記のように変形できる。
Ωi,k・Δt=((2π・fs)/N)・k・(N/(fs・OVL))
=(2π/OVL)・k ・・・ (11)
FFTを含む離散フーリエ変換(DFT)では、音声データ(信号)に含まれる周波数成分の周波数がDFT点数の整数倍となる特別な場合を除き、すべての周波数チャンネルに周波数成分が漏れ出して(遷移して)しまう。そのため、信号の調波構造等を分析する場合は、DFTの結果から実際に周波数成分が存在する周波数チャンネルを検出する作業が必要になる。
その検出には、周波数振幅のピークを検出し、そのピークを周波数成分の存在するチャンネルと見なす方法を採用するのが一般的である。そのための最も手順が単純な方法としては、前後2つのチャンネルの周波数振幅より大きい周波数振幅を持つチャンネルをピークとして見なすというものが挙げられる。しかし、そのような方法では、窓関数のサイドローブによるピークを間違ってピークと認識する場合がある。このため、探し出したピーク間のチャンネルで周波数振幅が最小となるチャンネルを抽出し、その周波数振幅がピークの周波数振幅の所定値(例えばピークの周波数振幅の−14db))以下であれば正しいピークと見なすことも行われている。
そのようなピーク検出ではピークをより高精度に検出できるが、2段階の探索が必要で処理的に煩雑である。このことから、本実施の形態では、処理の負荷を軽減するために、ピーク検出は行わず、以下のように位相を考慮して、元音声の倍音の周波数成分が存在する周波数チャンネルを検出する。
図3は、展開した位相差と周波数の関係を説明するグラフである。縦軸は位相差、横軸は周波数である。図中に示す直線は、各チャンネルの中心周波数から計算される位相差、すなわち式(6)により計算されるΔZi,kを表している。その直線に沿う形でプロットした線は、調波構造を持った音声、すなわち有声音の式(10)により計算される位相差ΔΘi,kを表したものである。その位相差ΔΘi,kはFFT点数512点の前半128点分を示している。
図3に示すように、調波構造を持った音声では、その音声の倍音の周波数成分を持つ周波数チャンネル付近で線が階段状(平坦)となる。これは、その周波数チャンネルの周波数成分が近傍のチャンネルに漏れ出すためである。このようなことから、線の階段状となっている部分と直線が交差する個所を含む周波数チャンネルに倍音の周波数成分が存在していると考えられる。その交差する個所は、それを通る縦軸と平行な直線を引いて示してある。
上記交差する個所の周波数チャンネル(以下「倍音チャンネル」と呼ぶ)は、式(10)と式(6)から算出することができるが、処理的には多少煩雑となる。そこで本実施の形態では、式(9)の実位相差δを使って倍音チャンネルの検出を行う。
上述したように、実位相差δは式(4)のΔθi,kと式(8)のΔζi,kとの差である。このδは実際に周波数成分が存在するチャンネルから離れるほど大きくなり、そのチャンネルに近づくほど小さくなる。チャンネルを超える際に0と交差し、周波数が大きくなる方向に越えた場合には、そのチャンネルを離れるにしたがって負側に絶対値が大きくなっていく。以降、特に断らない限り、グラフ(線)の形状の表現は、周波数が大きくなる方向での視点で行うこととする。
図4は、実位相差δと周波数の関係を説明するグラフである。そのグラフは図3と同じ音声の場合のものである。縦軸は位相差、横軸は周波数である。その図4には、図3に示す縦軸と平行な直線を横軸上の同じ位置に併せて描いてある。
図4に示すように、実位相差δを表す線は、図3では線の階段状となっている部分と直線が交差する個所で正から負にゼロクロスしている。このことから、ゼロクロスする点を検出することにより、倍音チャンネルを探し出すことができる。
その図4から明らかなように、隣接する倍音同士が交錯する部分でも正から負へのゼロクロスが発生する。このことから、本実施の形態では、下記の条件(以降「ゼロクロス判定条件」と呼ぶ)に合致するインデクスkの周波数チャンネルを倍音の周波数成分が存在する倍音チャンネルとして採用する。インデクスkの周波数チャンネルはゼロクロス点に最も近い周波数チャンネルである。
δ[k−2]>δ[k−1]>δ[k]>δ[k+1]>δ[k+2]
このようなゼロクロス判定条件を満たす周波数チャンネルkを探すことにより、正から負に大きくゼロクロスする点に最も近い周波数チャンネルを倍音チャンネルとして高精度に抽出することができる。その抽出は、FFT点数が十分でなく、周波数振幅による倍音チャンネルの抽出が困難であっても確実に行うことができる。より高精度な抽出を行う必要がある場合には、ピーク検出を併せて行うようにしても良い。
本実施の形態では、この判定条件を満たす周波数(倍音)チャンネルkを周波数の小さい方から2つ検出する。これは、周波数が高くなるほど、誤差による影響が大きくなり、精度が低下する傾向があるためである。そのようにして検出した倍音チャンネルのインデクスを周波数の小さい方からhm1、hm2と表記する。以降、hm1は基準インデクスとも呼び、その基準インデクスhm1を持つ倍音チャンネルは基準チャンネルとも呼ぶことにする。各倍音チャンネルの位相差ΔΘi,k(k=hm1、hm2)は式(10)、つまりそのチャンネルの実位相差δに式(11)により算出されるΩi,k・Δtを加算することで計算される。
ピッチスケーリング値ρは、倍音チャンネルの検出結果から以下のように算出する。
先ず、検出した2つの倍音チャンネルのインデクスhm1、hm2に対応する周波数の最大公約数を求める。その最大公約数は、ユークリッドの互除法を使って算出することができる。負でない2つの整数x、yの最大公約数gcd(x、y)は
Figure 0005246208
を再帰的に繰り返すことで算出することができる。式(12)中の「x mod y」はxをyで割った余りを表している。最大公約数gcd(x、y)は別の方法で算出しても良い。
本実施の形態では、元音声として人の音声を想定している。このことから、元音声の取りえる周波数の下限を80Hzとし、インデクス値の下限はその周波数に相当する6としている。それに合わせ、式(12)中のy=0の条件はy<6としている。算出した最大公約数はxと表記する。
最大公約数xは、ピッチ(基音)に相当する周波数チャンネルを倍音チャンネルとして抽出できたか否かに係わらずに求めることができる。このため、ミッシング・ファンダメンタルと呼ばれる基本周波数が欠落、或いは他の周波数と比較して非常に小さいような楽音でも確実に求めることができる。
最大公約数xを算出した後は、基準インデクスhm1に対応する周波数とがその公約数xの比である倍数hmxを計算する。その倍数hmxは
hmx=hm1/x ・・・ (13)
により求められる。このようにして求める倍数hmxは、基準チャンネルに相当する周波数を基本周波数(基音(ピッチ)の周波数)で割った値に相当する。
目標ピッチの展開した位相差ΔΘdは、式(13)により求めた倍数hmxを乗算して算出する。目標ピッチの基本周波数をfd[Hz]とすると、それらの乗算は
ΔΘd・hmx=2πfd・Δt・hmx
=(2πfd・hmx・N)/(fs・OVL) ・・・(14)
により行うことができる。元音声のピッチを目標ピッチに変換するためのピッチスケーリング値ρは
ρ=ΔΘd・hmx/ΔΘi,hm1 ・・・ (15)
で算出できる。図2の位相補償部25は、このようにしてスケーリング値ρを算出してピッチシフタ27に出力する。それにより、ピッチシフタ27はそのスケーリング値ρでピッチスケーリングを行い、ピッチをシフトさせる。
また、位相補償部25は、下式により位相のスケーリングを行う。
θ'i,k=ΔΘi,k((θ'i-1、hm1−θi-1、hm1)/ΔΘi,hm1+(ρ−1))
+θi,k ・・・(16)
式(16)では、スケーリングを行って得られる位相差には「’」を付して示している。その式(16)によるスケーリングを行うことにより、時間軸上の位相の一貫性(HPC:Horizontal Phase Coherence)およびチャンネル間、すなわち周波数成分間の位相関係(VPC:Vertical Phase Coherence)は共に保存される(特願2004−374090参照)。
位相補償部25は、式(16)によりスケーリングを行った後の位相phase’、及び式(1)から算出した周波数振幅magから、以下のオイラーの公式により実数成分real’、虚数成分img’を算出し、複素数の周波数成分に変換する。
real’=mag・cos(phase’) ・・・ (17)
img’ =mag・sin(phase’) ・・・ (18)
IFFT部26は、このようにして変換された周波数成分を周波数チャンネル毎に位相補償部25から入力し、IFFTを実行して時間領域上のデータに戻す。ピッチシフタ27は、位相補償部25から入力するピッチスケーリング値ρに応じて、IFFT部26が生成したフレームに対する補間、或いは間引きによるピッチスケーリングを行う。それにより、データ量は1/ρに伸縮するが、位相補償部25はρ倍の位相スケーリング(式(16))を行っているため、その伸縮は打ち消され、データ量は元の大きさを維持することになる。そのようにして得られたフレームをフレーム加算部28がオーバーラップ加算するため、目標ピッチを持つ合成音声がサウンドシステム11により放音されることになる。
以降は、上記機能構成の音響効果付与装置を実現させる電子楽器の動作について、図5〜図7に示す各種フローチャートを参照して詳細に説明する。
図5は、全体処理のフローチャートである。始めに図5を参照して、その全体処理について詳細に説明する。なお、その全体処理は、CPU1が、ROM4に格納されたプログラムを実行して電子楽器のリソースを使用することにより実現される。
先ず、ステップSA1では、電源がオンされたことに伴い、初期化処理を実行する。続くステップSA2では、スイッチ部3を構成するスイッチへのユーザの操作に対応するためのスイッチ処理を実行する。そのスイッチ処理は、例えばスイッチ部3を構成する検出回路に各種スイッチの状態を検出させてその検出結果を受け取り、その検出結果を解析して状態が変化したスイッチの種類、及びその変化を特定して行われる。
ステップSA2に続くステップSA3では、鍵盤2へのユーザの操作に対応するための鍵盤処理を実行する。その鍵盤処理を実行することにより、鍵盤2への演奏操作に応じて楽音がサウンドシステム11から放音される。ステップSA4にはその後に移行する。
ステップSA4では、A/D変換器8から元音声データが出力されるサンプリングタイミングか否か判定する。そのタイミングであった場合、判定はYESとなり、ステップSA5でその元音声データをRAM5上の入力バッファ21に書き込んだ後、ステップSA6に移行する。そうでない場合には、判定はNOとなってステップSA10に移行する。
ステップSA6では、フレーム抽出タイミングか否か判定する。前回そのタイミングとなってからホップサイズ分の元音声データをサンプリングする時間が経過した場合、判定はYESとなってステップSA7に移行する。そうでない場合には、判定はNOとなって上記ステップSA10に移行する。
ステップSA7では、入力バッファ21に格納された元音声データを1フレーム分、抽出し、抽出したフレームに対して、高周波成分を除去するLPF処理、及びFFTを順次、行う。次のステップSA8では、FFTによって得られる各チャンネルの周波数成分を対象に位相補償処理を実行する。その実行後はステップSA9に移行して、位相補償処理を実施した各チャンネルの周波数成分を対象にしたIFFT、そのIFFTにより得られる1フレーム分の音声データへのタイムスケーリング処理の実行によるピッチシフトを行い、そのピッチシフトによって得られた合成音声データをRAM5上の出力バッファ29に格納された合成音声データにオーバーラップ加算する。ステップSA10にはその後に移行する。
図2に示すフレーム抽出部22、LPF23、及びFFT部24は、上記ステップSA7の処理を実行することで実現される。位相補償部25は、ステップSA8の位相補償処理を実行することで実現される。IFFT部26、ピッチシフタ27及びフレーム加算部28は、ステップSA9の処理を実行することで実現される。
ステップSA10では、1サンプリング分の合成音声データを出力すべきタイミングか否か判定する。そのタイミングであった場合、判定はYESとなり、次にステップSA11で出力すべき合成音声データを出力バッファ29から読み出して楽音生成部9を介しD/A変換器10に送出し、更にステップSA12でその他処理を実行した後、上記ステップSA2に戻る。そうでない場合には、判定はNOとなり、次にステップSA12の処理を実行する。
合成された合成音声データは楽音生成部9を介してD/A変換器10に送られる。このことから、楽音生成部9には、自身が生成した楽音の波形データを他から入力したデータとミックスする機能が搭載されている。
図6は、上記ステップSA8として実行される位相補償処理のフローチャートである。次に図6を参照して、その補償処理について詳細に説明する。その補償処理には、FFTを行うことで得られた各周波数チャンネルの周波数成分が渡される。その周波数成分は、上述したように、実数部と虚数部からなる。
先ず、ステップSB1では、各周波数チャンネルの周波数成分から式(1)、(2)より周波数振幅mag、位相phase(=θ)を算出する。次のステップSB2では、式(4)〜(10)による、展開した位相差ΔΘi,k(図3)の算出を開始し、実位相差δが算出された時点(式(10)の手前)で、ステップSB3に移行する。
ステップSB3では、ステップSB2で得られる実位相差δ(図4)から倍音チャンネルを2つ検出する。次に移行するステップSB4では、式(10)により各周波数チャンネルの位相差ΔΘi,kを算出する。その算出後は、ステップSB5に移行して、ステップSB3で検出した2つの倍音チャンネルに対して、式(12)〜(15)により、スケーリング値ρを算出するスケーリング値算出処理を実行する。
ここで、その算出処理について、図7に示すそのフローチャートを参照して詳細に説明する。
先ず、ステップSC1では、ステップSB3で検出した2つの倍音チャンネルのインデクス値hm1、hm2に対応する周波数をそれぞれ変数h1、h2に代入する。ここで変数h1、h2はそれぞれ、式(12)のx、yに対応する。続くステップSC2では、変数h2の値に対応するインデクス値が6以上か否か判定する。そのインデクス値が6以上であった場合、判定はYESとなり、次にステップSC3で変数h1の値を変数h2の値で割って得られる剰余を変数tに代入し、変数h1に変数h2の値を代入し、更に変数h2に変数tの値を代入してから、再度ステップSC2での判定を行う。そうでない場合には、判定はNOとなり、ステップSC4に移行する。ステップSC2、SC3で形成される処理ループをステップSC2の判定がNOとなるまで繰り返し実行することにより、インデクス値hm1、hm2に対応する周波数間の最大公約数が変数h1に代入される(式(12))。
ステップSC4では、変数hmxに、インデクス値hm1に対応する周波数を変数h1の値(最大公約数)で割った値を代入する(式(13))。次のステップSC5では、位相差ΔΘdに変数hmxの値を乗算し(式(14))、その乗算結果を用いて式(15)によりスケーリング値ρを算出する。その算出後、一連の処理を終了する。その終了により、図6の位相補償処理ではステップSB6に移行する。
そのステップSB6では、ステップSB4で算出された位相差ΔΘi,kを用いて、式(16)による位相スケーリング処理を行う。続くステップSB7では、そのスケーリング処理の実行後の位相phase’、及び式(1)から算出した周波数振幅magから、実数成分real’(式(17))、虚数成分img’(式(18))を算出し、複素数の周波数成分に変換する。その変換を行った後、一連の処理を終了する。
なお、本実施の形態では、倍音チャンネルを2つ抽出しているが、3つ以上の倍音チャンネルを抽出するようにしても良い。ピーク検出を併せて行うようにした場合には、実位相差に注目して抽出した倍音チャンネルのなかから、周波数振幅の大きさを考慮して2つ以上の倍音チャンネルを抽出するようにしても良い。
ピッチシフトによりフォルマントも移動する。そのため、シフト量(スケーリング値ρ)が大きくなるほど、合成音声は不自然なものとなる。それを回避するために、フォルマントの補償を併せて行うようにしても良い。
本実施の形態では、元音声の基音周波数を抽出しなくとも目標ピッチへのピッチシフトを実現できることから、その基本周波数は抽出していない。しかし、その基本周波数は、倍数hmxを用いて抽出することができる。その抽出(算出)は、基本周波数をfiと表記すると、式(7)を用いて
fi=ΔΘi,hm1/(2π・Δt・hmx)
=(ΔΘi,hm1・fs・OVL)/(2π・N・hmx) ・・・ (19)
により行うことができる。本発明を適用した基音抽出装置は、式(19)により基本周波数fiを算出するものとして、本実施の形態による音響効果付与装置上、或いはそれを搭載した電子楽器上に容易に実現させることができる。目標ピッチが周波数で指定されているような場合には、基本周波数fiを算出してから、その目標ピッチの周波数との比をとることにより、スケーリング値ρを求めても良い。また、算出した基本周波数fiは表示部6等によりユーザに知らせるようにしても良い。合成音声波形の生成については、別の方法を採用しても良い。
上述したような変形例を含む音響効果付与装置、或いは基音抽出装置を実現させるようなプログラムは、CD−ROM、DVD、或いは光磁気ディスク等の記録媒体に記録させて配布しても良い。或いは、公衆網等で用いられる伝送媒体を介して、そのプログラムの一部、若しくは全部を配信するようにしても良い。そのようにした場合には、ユーザはプログラムを取得してコンピュータなどのデータ処理装置にロードすることにより、そのデータ処理装置を用いて本発明を適用させた音響効果付与装置を実現させることができる。このことから、記録媒体は、プログラムを配信する装置がアクセスできるものであっても良い。
1 CPU
3 スイッチ部
4 ROM
5 RAM
7 マイク
8 A/D変換器
9 楽音生成部
10 D/A変換器
11 サウンドシステム

Claims (3)

  1. 音声波形の基音の周波数を抽出する基音抽出装置において、
    前記音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出する周波数分析手段と、
    前記周波数分析手段が周波数成分を抽出した周波数チャンネルのなかから、前記音声波形の基音の1倍以上である倍音の周波数成分が存在する周波数チャンネルを2つ以上、抽出する倍音チャンネル抽出手段と、
    前記倍音チャンネル抽出手段が抽出した2つ以上の周波数チャンネルに対応する周波数間の最大公約数を算出する公約数算出手段と、
    前記倍音チャンネル抽出手段が抽出する2つ以上の周波数チャンネルのうちの一つを基準チャンネルとして、該基準チャンネルの周波数を前記公約数算出手段が算出する最大公約数最大公約数で割って得られる除算値を算出し、該基準チャンネルのフレーム間の位相差を該除算値で除算することで得られる、前記音声波形の基音でのフレーム間における位相差を周波数に変換することにより、前記音声波形の基音の周波数を算出する基音算出手段と、
    を具備することを特徴とする基音抽出装置。
  2. 前記倍音チャンネル抽出手段は、前記周波数分析手段が周波数チャンネル毎に抽出する周波数成分から位相を算出し、該算出した位相を用いて2つ以上の周波数チャンネルを抽出する、
    ことを特徴とする請求項1記載の基音抽出装置。
  3. 音声波形の基音の周波数を抽出する基音抽出装置に実行させるプログラムであって、
    前記音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出する周波数分析機能と、
    前記周波数分析機能により周波数成分を抽出した周波数チャンネルのなかから、前記音声波形の基音の1倍以上である倍音の周波数成分が存在する周波数チャンネルを2つ以上、抽出する倍音チャンネル抽出機能と、
    前記倍音チャンネル抽出機能により抽出した2つ以上の周波数チャンネルに対応する周波数間の最大公約数を算出する公約数算出機能と、
    前記倍音チャンネル抽出機能が抽出する2つ以上の周波数チャンネルのうちの一つを基準チャンネルとして、該基準チャンネルの周波数を前記公約数算出機能が算出する最大公約数最大公約数で割って得られる除算値を算出し、該基準チャンネルのフレーム間の位相差を該除算値で除算することで得られる、前記音声波形の基音でのフレーム間における位相差を周波数に変換することにより、前記音声波形の基音の周波数を算出する基音算出機能と、
    を実現させるためのプログラム。
JP2010130067A 2010-06-07 2010-06-07 基音抽出装置、及びプログラム Active JP5246208B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010130067A JP5246208B2 (ja) 2010-06-07 2010-06-07 基音抽出装置、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010130067A JP5246208B2 (ja) 2010-06-07 2010-06-07 基音抽出装置、及びプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2005054481A Division JP4734961B2 (ja) 2005-02-28 2005-02-28 音響効果付与装置、及びプログラム

Publications (2)

Publication Number Publication Date
JP2010191474A JP2010191474A (ja) 2010-09-02
JP5246208B2 true JP5246208B2 (ja) 2013-07-24

Family

ID=42817498

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010130067A Active JP5246208B2 (ja) 2010-06-07 2010-06-07 基音抽出装置、及びプログラム

Country Status (1)

Country Link
JP (1) JP5246208B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0830290A (ja) * 1994-07-18 1996-02-02 Hitachi Ltd 音声入力可能な情報処理装置およびそれにおける誤処理検出方法
JP4455701B2 (ja) * 1999-10-21 2010-04-21 ヤマハ株式会社 音声信号処理装置および音声信号処理方法
JP3546779B2 (ja) * 1999-11-05 2004-07-28 ヤマハ株式会社 音響信号分析方法

Also Published As

Publication number Publication date
JP2010191474A (ja) 2010-09-02

Similar Documents

Publication Publication Date Title
JP4734961B2 (ja) 音響効果付与装置、及びプログラム
JP3941611B2 (ja) 歌唱合成装置、歌唱合成方法及び歌唱合成用プログラム
EP1701336B1 (en) Sound processing apparatus and method, and program therefor
EP3719795B1 (en) Voice synthesizing method, voice synthesizing apparatus, and computer program
Bonada et al. Sample-based singing voice synthesizer by spectral concatenation
JP2018004870A (ja) 音声合成装置および音声合成方法
JP5246208B2 (ja) 基音抽出装置、及びプログラム
JP6543895B2 (ja) 効果付加装置、方法、およびプログラム、電子楽器
JP4455701B2 (ja) 音声信号処理装置および音声信号処理方法
JP4830350B2 (ja) 声質変換装置、及びプログラム
Royer Pitch-shifting algorithm design and applications in music
JP2007140000A (ja) 歌唱採点装置および歌唱採点処理のプログラム
JP5163606B2 (ja) 音声分析合成装置、及びプログラム
Gong et al. Monaural musical octave sound separation using relaxed extended common amplitude modulation
JP4998565B2 (ja) 歌唱採点装置および歌唱採点処理のプログラム
JP4513556B2 (ja) 音声分析合成装置、及びプログラム
JPWO2008001779A1 (ja) 基本周波数推定法および音響信号推定システム
JP2008216381A (ja) 音声分析合成装置、及びプログラム
AU2020104383A4 (en) Projection filter based universal framework to match the musical notes of synthesizer and indian classical instruments
JP5099146B2 (ja) 歌唱採点装置および歌唱採点処理のプログラム
Amatriain et al. Spectral modeling for higher-level sound transformation
JP3404850B2 (ja) 音源装置
Navarro et al. Continuous frequency and phase spectrograms: a study of their 2D and 3D capabilities and application to musical signal analysis
JP2689709B2 (ja) 電子楽器
唐博文 Energy-Efficient Real-Time Pitch Correction System via FPGA

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100630

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121102

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130325

R150 Certificate of patent or registration of utility model

Ref document number: 5246208

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160419

Year of fee payment: 3