JP4816507B2 - 音声分析合成装置、及びプログラム - Google Patents

音声分析合成装置、及びプログラム Download PDF

Info

Publication number
JP4816507B2
JP4816507B2 JP2007050502A JP2007050502A JP4816507B2 JP 4816507 B2 JP4816507 B2 JP 4816507B2 JP 2007050502 A JP2007050502 A JP 2007050502A JP 2007050502 A JP2007050502 A JP 2007050502A JP 4816507 B2 JP4816507 B2 JP 4816507B2
Authority
JP
Japan
Prior art keywords
frequency
phase
frequency channel
speech
analysis
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
JP2007050502A
Other languages
English (en)
Other versions
JP2008216381A (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 JP2007050502A priority Critical patent/JP4816507B2/ja
Publication of JP2008216381A publication Critical patent/JP2008216381A/ja
Application granted granted Critical
Publication of JP4816507B2 publication Critical patent/JP4816507B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

本発明は、音声波形を分析し、その分析結果を用いて音声波形を合成するための技術に関する。
音声波形を分析し、その分析結果を用いて音声波形を合成する音声分析合成装置のなかには、音声波形の分析として周波数分析を行うものがある。その周波数分析を行って音声波形を合成する従来の音声分析合成装置としては、例えば特許文献1に記載のものがある。その特許文献1に記載された従来の音声分析合成装置は、以下のようにして音声波形の合成を行っている。合成後の音声波形、元の音声波形を区別するために以降、前者を「合成音声波形」、後者を「元音声波形」と表記することとする。
特許文献1に記載された従来の音声分析合成装置は、アナログの音声信号を入力してサンプリングを行うことにより音声データに変換し、その音声データから予め定めたサイズ分の音声データであるフレームの切り出しを行う。その切り出しは、オーバーラップファクタOVLでオーバーラップさせて行う。そのオーバーラップファクタOVLは、フレームサイズをホップサイズ(隣り合うフレーム間のずれに相当するサンプリング数)で割って得られる値である。上記元音声波形は、上記音声信号、或いは音声データによって表されるものである。
ピッチのシフトは、切り出したフレームに対して補間、または間引きを行うことで実現させる。補間、或いは間引きには、一般的なラグランジュ関数やネヴィル補間等を用いることができる。そのピッチシフト自体は、設定されたピッチ変換比であるスケーリングファクタρに従って行う。それによりフレームサイズは、そのファクタρの値が例えば2であれば1/2となる。ピッチは2倍となる。
短時間フーリエ変換(STFT)、例えば離散フーリエ変換(DFT)は、ピッチシフト後のフレームを対象に行う。その変換により、周波数チャンネル毎に周波数成分が抽出される。その周波数成分は、実数部と虚数部からなり、各周波数チャンネルの周波数振幅、及び位相はその周波数成分から算出される。ここではDFTとして高速フーリエ変換(FFT)を行うものと想定する。
ピッチシフトを行うことにより、フレームサイズは変化する。そのフレームサイズを元に戻すためのタイムスケーリングは、FFTの実行により得られた各周波数チャンネルの周波数成分を対象にして行われ、IFFT(逆FFT)は、タイムスケーリング後に行う。そのIFFTによって得られた1フレーム分の音声データは、先に得られた音声データにオーバーラップ加算される。そのオーバーラップ加算により得られた音声データをアナログ信号に変換することにより音声を出力する。上記合成音声波形は、そのアナログ信号、或いはオーバーラップ加算により得られた音声データによって表されるものである。
上記タイムスケーリングでは、連続するフレーム間の位相差をスケーリングファクタρに従って伸縮させることにより、フレームの時間長を変換する。現在のフレームのフレーム番号をi、FFT後の各周波数チャンネルのチャンネル番号をkとすると、周波数チャンネルkの位相θi,kは、一つ前のフレームでの位相θi−1,kを用いて
θi,k=θi−1,k+ΔΘi,k ・・・ (1)
と表すことができる。ここでΔΘi,kは一つ前のフレームから今回のフレームまでの間に進んだ位相、即ちフレーム間の位相差を示している。
その位相θi,kのタイムスケーリング後の位相θ’i,kは、フレーム間位相差ΔΘi,k、及びスケーリングファクタρを用いて、以下のようにして算出できる。
θ’i,k=θ’i−1,k+ρ・ΔΘi,k ・・・ (2)
フレーム間位相差Δθi,k
Δθi,k=θi,k−θi−1,k ・・・ (3)
により求められる。しかし、FFT(DFT)により算出される周波数成分から位相を算出する際にarctanにより得られる値は−πとπの間に制限される。それにより、位相差Δθi,kもそのままでは−2πと2πの間の値となる。しかし、フレーム間の時間差が一定時間より短い場合を除き、位相はフレーム間に2π以上進行するのが普通である。このため、実際の位相差をΔΘi,kとすると、それは以下のようになる。
ΔΘi,k=Δθi,k+2nπ (ただし、n=0、1,2,・・・) ・・・ (4)
適切にタイムスケーリングを実施するためには、式(4)中の整数nの値を推定する必要がある。その推定を行う操作は位相展開と呼ばれる。その位相展開は以下のようにして行われる。展開の有無の区別を容易にするために、折り畳まれている(展開されていない)位相を小文字のθ、展開されている位相を大文字のΘで表記する。
周波数チャンネルkの中心周波数(の角速度)Ωi,kは、サンプリング周波数をfs、FFT点数(フレームのサンプリング数)をNとすると
Ωi,k=(2π・fs/N)・k ・・・ (5)
により求めることができる。この周波数Ωi,kのとき、直前のフレームとの時間差をΔtとすると、フレーム間の位相差ΔZi,k
ΔZi,k=Ωi,k・Δt ・・・ (6)
により算出できる。
時間差Δtは
Δt=N/(fs・OVL) ・・・ (7)
で求められるから、式(5)〜(7)より
ΔZi,k=Ωi,k・Δt=(2π・fs/N)・k・N/(fs・OVL)
=2π・k/OVL ・・・ (8)
となる。一方、式(6)では位相展開されているので、以下のように記述できる。
ΔZi,k=Δζi,k+2nπ ・・・ (9)
式(3)で算出される位相差Δθi,kと式(9)中の位相差Δζi,kの差をδ(=Δθi,k−Δζi,k)とすると、式(3)は
Δθi,k=Δζi,k+δ ・・・ (10)
と変形することができる。従って、式(9)及び(10)から
Δθi,k−ΔZi,k=(Δζi,k+δ)−(Δζi,k+2nπ)
=δ−2nπ ・・・ (11)
が導出できる。
式(10)及び(11)中のδは、式(11)の右辺の2nπを削除してその範囲を−πからπの間に制限することで算出できる。そのδは、元音声波形において実際に検出される位相差(以降「実位相差」と呼ぶ)である。
そのように算出される実位相差δに位相差ΔZi,k(=Ωi,k・Δt)を加算すれば、以下のように位相展開された位相差ΔΘi,kを求めることができる。
ΔΘi,k=δ+ΔZi,k=δ+(Δζi,k+2nπ)=(Δζi,k+δ)+2nπ)
=Δθi,k+2nπ ・・・ (12)
ところで、上述のようにして合成音声波形を合成する音声分析合成装置では、その合成音声波形による音声(合成音)が、元音声波形の音声(原音)に対してphasiness、若しくはreverbrantと呼ばれる音像のぼやけた音色(位相ズレ感を与える音色)となる現象が発生することが知られている。その原因は、式(2)の位相θ’i−1,kを必ずしも正確に求めることができないことにある。
位相θ’i−1,kは、直前のフレームまでの変換後のフレーム間位相差δの積分値となっている。従って、過去のフレームにおいて一度でも不正確な位相差δを求めてしまうと、積分値である位相θ’i−1,kは不正確なものとなる。通常、音声では、或る周波数成分が別の周波数チャンネルに遷移したり、周波数成分そのものが発生、消滅を繰り返している。このため、全周波数チャンネルにおいて、それらの積分値を常に正しく保持することは不可能である。それにより、時間軸方向の位相整合性は正しく保持されても、同一フレーム内における周波数チャンネル間の位相関係(周波数軸方向の位相整合性)が保持されず、上記現象が発生する。
上述したようなことから、特許文献1に記載された従来の音声分析合成装置では、積分値(位相θ’i−1,k)を使わずに、直前のフレームまでの各周波数チャンネルの位相変化量を基準とする一つの周波数チャンネルの位相変化量から構築し、今回のフレームにおける各周波数チャンネルの位相変化量を展開された位相差から算出し、両者を加算することで今回のフレームでの位相差θ’i,kを求めている。それにより、時間軸方向の位相の整合性と周波数軸方向の位相の整合性を共に保持できるように位相補正を行っている。その位相θ’i,kは具体的には次式で求めている。
θ'i,k=(ΔΘi,k/ΔΘi,B)(θ'i−1,B−θi−1,B
+(ρ−1)ΔΘi,k+θi,k ・・・ (13)
式(13)において、下添字として表記したBは最も波長の長い、すなわち最も低い周波数成分が存在するチャンネルを示している。式(13)右辺第1項は、チャンネルBを基準にして、1フレーム前(直前)のフレームi−1までに生じた元音声(元音声波形)と合成音声(合成音声波形)間の位相変化(較差)量を示している。その第2項は、その直前フレームi−1から現在のフレームiに移行する間(以降、便宜的に「直前フレーム間」と呼ぶ)に発生する元音声と合成音声間の位相変化(較差)量を示している。
特開2005−208627号公報 特開2006−243006号公報
DFTでは、音声信号の周波数成分が存在する角周波数が2π・k/Nと等しいという特殊な場合(図6の左側のグラフ)を除き、その成分が周囲の周波数チャンネルに漏れ出す(図6の右側のグラフ)。つまり、複数の周波数チャンネルが励起される。これを軽減するためにフレーム抽出(切り出し)はハニング窓等の窓関数を用いて行っている。しかし、窓関数を用いても周波数成分の漏れ出し分は小さくないのが実状である。
漏れ出した周波数成分(漏れ出し成分)の位相は、実際に周波数成分が存在する周波数チャンネル(以降「実周波数チャンネル」)と一致する位相、或いは−πだけずれた位相となる。−πずれる周波数チャンネルは、振動する窓関数のサイドローブが負の値となるチャンネルである。ハニング窓を用いた場合、実周波数チャンネルの両隣に位置する2つの周波数チャンネルでの漏れ出し成分の位相は−πずれる。
音声信号の周波数成分が存在する角周波数が2π・k/Nと等しいという特殊な場合でなければ、その周波数成分は上述したように漏れ出して他のチャンネルを励起させる。それらの周波数チャンネル間の位相には、窓関数に依存する関係がある。周波数成分の漏れ出しが発生しないのは特殊な場合のみである。このことから、その漏れ出しに着目した位相補正により、合成音声波形はより適切に合成することが可能となると考えられる。
本発明の課題は、周波数成分の漏れ出しに着目した位相補正により音声波形の合成をより適切に行う音声分析合成装置を提供することにある。
本発明の音声分析合成装置は、第1の音声波形を分析し、該分析結果を用いて第2の音声波形の合成を行うことを前提とし、第1の音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出する周波数分析手段と、周波数分析手段による分析結果を基に、周波数漏れ出し成分を除いた第1の音声波形の周波数成分が実際に存在する周波数チャンネルである実周波数チャンネルを推定する推定手段と、推定手段が推定した実周波数チャンネルと、周波数軸上において当該実周波数チャンネルの両隣に位置し周波数漏れ出し成分が存在する周波数チャンネルとの間の位相関係を維持させる位相補正を行う位相補正手段と、位相補正手段が位相補正を行って得られる周波数成分を用いて、前記第2の音声波形をフレーム単位で合成する音声合成手段と、を具備する。
なお、上記周波数漏れ出し成分が存在する周波数チャンネルは、実周波数チャンネルの低域側、及び高域側ともに、該実周波数チャンネルから連続する最大で2つの周波数チャンネルである、ことが望ましい。また、上記推定手段は、周波数成分から得られる該周波数成分の大きさを示す周波数振幅を参照して前記実周波数チャンネルを推定する、ことが望ましい。
本発明のプログラムは、第1の音声波形を分析し、該分析結果を用いて第2の音声波形の合成を行う音声分析合成装置として用いることが可能なコンピュータに、第1の音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出する周波数分析機能と、周波数分析機能による分析結果を基に、周波数漏れ出し成分を除いた第1の音声波形の周波数成分が実際に存在する周波数チャンネルである実周波数チャンネルを推定する推定機能と、推定機能により推定した実周波数チャンネルと、周波数軸上において当該実周波数チャンネルの両隣に位置し前記周波数漏れ出し成分が存在する周波数チャンネルとの間の位相差を維持させる位相補正を行う位相補正機能と、位相補正機能により位相補正を行って得られる周波数成分を用いて、前記第2の音声波形をフレーム単位で合成する音声合成機能と、を実現させる。
本発明では、第1の音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出し、その分析結果を基に、周波数成分が実際に存在する周波数チャンネルである実周波数チャンネルを推定し、推定した実周波数チャンネルと近傍の周波数チャンネルとの間の位相関係を維持させる位相補正を行い、その位相補正を行って得られる周波数成分を用いて、第2の音声波形をフレーム単位で合成する。
そのような位相補正を行うことにより、位相ズレ感が無い、或いはそれが十分に軽減された第2の音声波形を合成(生成)できることが実験により確認された。このため、その位相補正を行い、それによって得られた周波数成分を用いて第2の音声波形を合成することにより、その合成を適切に行うことができる。
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
図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と、そのアンプ11が増幅を行った後のオーディオ信号を音声に変換するスピーカ12と、を備えて構成されている。それらの構成において、CPU1、鍵盤2、スイッチ部3、ROM4、RAM5、表示部6、A/D変換器8、及び楽音生成部9の間はバスによって接続されている。なお、上記スイッチ部3は、例えばユーザーが操作の対象とする各種スイッチの他に、各種スイッチの状態変化を検出するための検出回路を備えたものである。
上記構成の電子楽器において、本実施の形態による音声分析合成装置は、マイク7から入力した音声に対し、そのピッチ(音高)を指定されたピッチに変換(シフト)する音響効果を付与できるものとして実現されている。音声の入力は、外部記憶装置を介して行っても良く、LAN、或いは公衆網等の通信ネットワークを介して行っても良い。
図2は、本実施の形態による音声分析合成装置の機能構成図である。
音響効果を付加した音声波形、つまりピッチをシフトした音声波形は、元の音声波形を周波数分析して周波数チャンネル毎に周波数成分(スペクトル成分)を抽出し、抽出した周波数成分をシフトし、そのシフト後の周波数成分を用いて合成(生成)するようになっている。そのために、以下のような機能構成を備えている。
図2に示すA/D変換器(ADC)8は、マイク7から出力されたアナログの音声信号をデジタルの音声データに変換するものである。例えばサンプリング周波数22,050Hz、16bitでAD変換を行う。以降、それがAD変換して得られる音声データについては同様に「元音声データ」、或いは「元波形データ」と呼び、マイク7に入力された音声については「元音声」と呼ぶことにする。
入力バッファ21は、A/D変換器8が出力する元音声データを一時的に格納するバッファである。フレーム抽出部22は、入力バッファ21に格納された元音声データから予め定められたサイズ分の音声データであるフレームを切り出すことで抽出する。そのサイズ、つまり音声データ数は例えば1024である。正確な位相展開の実施にはフレームをオーバーラップさせて抽出する必要があることから、フレームの切り出しはオーバーラップファクタOVLでオーバーラップさせ、窓関数(例えばハニング窓)を用いて行う。そのファクタOVLの値としては4を設定している。この場合、ホップサイズは256(1024/256=4)である。
フレーム抽出部22が抽出したフレームはFFT部23に出力され、FFTが実行される。そのFFTの実行により得られた各周波数チャンネルの周波数成分は、位相変換部24に出力され、周波数チャンネル毎に位相変換が行われる。その位相変換は、式(1)により位相展開された位相Θ’i,k(式(1)中では「θ’i,k」と表記)を求めるものである。
周波数成分の実数部をreal、虚数部をimgと表記すると、周波数振幅magは
mag=(real+img1/2 ・・・ (14)
により計算される。その位相をphase(=θ)と表記すると
phase=arctan(img/real) ・・・ (15)
により計算される。この位相phaseは折り畳まれたものである。それを位相展開することにより、式(1)右辺第2項の位相展開された位相差ΔΘi,kは最終的には式(12)により計算される(特許文献1或いは2)。式(14)により算出した周波数振幅mag、及び位相Θ’i,k(フレーム、或いはインデクス値を特に示す必要がない場合には以降「Θ’」と表記する。これは他のシンボルも同様とする)はそれぞれ、用意された配列変数mag、及びmodified_phaseのインデクス値(チャンネル番号)で指定される要素に代入・保持される。式(15)により算出した位相phaseは、用意された配列変数phaseのインデクス値で指定される要素に代入・保持される。
ピッチシフタ25は、スケーリングファクタρの値に応じて、各周波数チャンネルの振幅mag、Θ’を別の周波数チャンネルに移動させることにより、ピッチシフトを行う。その移動のために、配列変数synth_phase、及びsynth_magを用意している。それにより実際の移動は、配列変数modified_phase、及びmagの各要素に代入されている値を配列変数synth_phase、及びsynth_magの代入すべき要素にそれぞれ代入することで行われる。
図6は、周波数信号の漏れ出しを説明する図である。その図6において、2つのグラフは何れも、縦軸は音声信号に存在する周波数信号(成分)による周波数振幅magの大きさ(単位はdB)、横軸は周波数をとっている。
図6に示すように、音声信号の周波数成分が存在する角周波数が2π・k/Nと等しいという特殊な場合(左側のグラフ)でなければ、その周波数成分は近傍の周波数チャンネルを励起させる。その周波数成分が実際に存在する周波数チャンネルである実周波数チャンネルにおける周波数振幅magは、他の周波数チャンネルのそれより大きい。それらの周波数チャンネル間の位相には、窓関数に依存する関係がある。
このようなことから位相補正部26は、周波数振幅magの大きさに着目して実周波数チャンネルの推定を行い、推定した実周波数チャンネル毎に、その近傍の周波数チャンネルの位相Θを実周波数チャンネルの位相Θ、及び窓関数に依存する関係により補正する。それにより、実際に存在する周波数成分により励起される他の周波数チャンネルとの間の位相の関係(位相差)を維持させる。その維持のための操作は配列変数synth_phaseの各要素に代入された位相Θを対象に行われる。また、同様の操作を周波数振幅magに対して行う。周波数成分の実数部、及び虚数部は、その補正後、つまり位相補正を行った後の位相、及び周波数振幅を用いて算出する。具体的には、その操作後の位相、及び周波数振幅をphase’、及びmag’で示すと、位相補正を行った後の実数部real’、及び虚数部img’は、以下のオイラーの公式により計算する。
real’=mag’・cos(phase’) ・・・ (16)
img’ =mag’・sin(phase’) ・・・ (17)
IFFT部27は、このようにして周波数チャンネル毎に得られた周波数成分を位相補正部26から入力し、IFFTを実行して時間領域上のデータに戻すことにより、1フレーム分の音声データを生成して出力する。その音声データについては以降「合成音声データ」と呼び、それによって発音される音声を「合成音声」と呼ぶことにする。
出力バッファ29は、音声としてスピーカ12から放音させる合成音声データを格納するバッファである。フレーム加算部28は、IFFT部27から入力した1フレーム分の合成音声データを、出力バッファ29に格納された合成音声データにオーバーラップさせて加算する。出力バッファ29に格納された合成音声データは、D/A変換器(DAC)10に出力されてD/A変換される。
このようにして本実施の形態では、実周波数チャンネルとその周波数成分によって励起される(その周波数成分が漏れ出す)近傍の周波数チャンネルの間の位相の関係(位相差)を維持させる位相補正を行い、その補正を行って得られる各周波数チャンネルの周波数成分を用いて合成音声データを生成する。実験により、その位相の関係を維持させることで合成音声における位相ズレ感が十分に軽減できることが確認された。このため、その関係を維持させる位相補正は、位相ズレ感を与えない合成音声データを生成するうえで極めて効果的である。
本実施の形態では、位相補正を行う対象を実周波数チャンネルの近傍の周波数チャンネルに限定している。それは以下のような理由からである。
実周波数チャンネルの周波数成分によって励起される近傍の周波数チャンネルのフレーム間位相差は、実周波数チャンネルのそれと等しい。上記式(10)及び(11)中の実位相差δは、チャンネルkの中心角周波数2π・k/Nがフレーム間の時間差Δtの間に進行する位相差(以降「中心位相差」)Δθi,kと、そのチャンネルkに存在する周波数成分(漏れ出した周波数成分の場合もある)のフレーム間位相差Δζi,kとの差分である。周波数成分が漏れ出した周波数チャンネルでの位相差Δζは、実周波数チャンネルのフレーム間位相差Δζに等しいから、実周波数チャンネルから離れるほど大きくなる。実周波数チャンネルがkであれば、実位相差δは0となる。
このとき、実周波数チャンネルkからmチャンネル離れたチャンネルでの実位相差δは
δ=2π・fs・(k+m)・Δt/N−2π・fs・k・Δt/N
=2π・fs・m・Δt/N ・・・ (18)
となる。時間差Δt=(N/OVL)・(1/fs)であるから、式(18)は
δ=(2π・fs・m/N)・(N/fs・OVL)
=2π・m/OVL ・・・ (19)
と変形される。
正常に位相展開するためには|δ|<2πである必要があるので、結局。正常に位相展開できるmの値域は
m<OVL ・・・ (20)
となる。
従って、実周波数チャンネルとオーバーラップファクタOVLの値以上、離れたチャンネルでは位相展開は適切に実行できない。本実施の形態では、その値を4としていることから、実周波数チャンネルと4チャンネル以上、離れた周波数チャンネルでは位相展開は適切に実行できないことになる。
上記特許文献1に記載された従来の音声分析合成装置では、式(13)により今回のフレームでの位相差θ’i,kを求めている。それにより、位相ズレ感のない合成音声データを生成するのを可能としている。
その式(13)は、それから明らかなように、全ての周波数チャンネルでの位相展開が適切に実行できていることを前提としている。しかし、上記のように、適切に位相展開できるチャンネルは限られている。
上述したことは、たとえ実周波数チャンネルから或る程度、離れた周波数チャンネルで漏れ出し信号の位相展開に失敗しても、その失敗は位相ズレ感には影響を与えないことを示している。であれば、実周波数チャンネルの近傍の周波数チャンネルの位相のみを調整すれば位相ズレ感を与えない、或いはそれを軽減した合成音声データを生成すれば良いことになる。このことから本実施の形態では、近傍の周波数チャンネルのみを位相補正の対象としている。近傍の周波数チャンネルは、実周波数チャンネルの両隣に位置する2つの周波数チャンネルのみとしている。これは、その2つの周波数チャンネルに対する位相補正を行うだけで合成音声データを適切に合成(生成)できるからである。そのように位相補正を行うことにより、特許文献1に記載された音声分析合成装置と比較して、処理の負荷が軽減するという効果も得られる。
上記入力バッファ21、及び出力バッファ29は、例えばRAM5に確保された領域である。A/D変換器8、D/A変換器10、入力バッファ21、及び出力バッファ29を除く各部22〜28は、例えばRAM5をワーク用にして、CPU1がROM4に格納されたプログラムを実行することで実現される。特に詳細な説明は省略するが、ピッチのシフト量(スケーリングファクタρ)は例えば鍵盤2への操作により指示するようになっている。
本実施の形態による音声分析合成装置は、上述したような位相補正を行うことにより、位相ズレ感を与えない合成音声データを合成し、スピーカ12から放音させるものとして実現されている。以降は、その音声分析合成装置を実現させる電子楽器の動作について、図3〜図5に示す各種フローチャートを参照して詳細に説明する。
図3は、全体処理のフローチャートである。始めに図3を参照して、その全体処理について詳細に説明する。なお、その全体処理は、CPU1が、ROM4に格納されたプログラムを実行して電子楽器のリソースを使用することにより実現される。図4及び図5にそれぞれフローチャートを示す処理は、その全体処理の実行時に呼び出されるサブルーチン処理である。
先ず、ステップ301では、電源がオンされたことに伴い、初期化処理を実行する。続くステップ302では、スイッチ部3を構成するスイッチへのユーザーの操作に対応するためのスイッチ処理を実行する。そのスイッチ処理は、例えばスイッチ部3を構成する検出回路に各種スイッチの状態を検出させてその検出結果を受け取り、その検出結果を解析して状態が変化したスイッチの種類、及びその変化を特定して行われる。
ステップ302に続くステップ303では、鍵盤2へのユーザーの操作に対応するための鍵盤処理を実行する。その鍵盤処理を実行することにより、鍵盤2への演奏操作に応じて楽音がスピーカ12から放音される。また、状況に応じて、スケーリングファクタρの設定が行われる。ステップ304にはその後に移行する。
ステップ304では、A/D変換器8から元音声データが出力されるサンプリングタイミングか否か判定する。そのタイミングであった場合、判定はYESとなり、ステップ305でその元音声データをRAM5上の入力バッファ21に書き込んだ後、ステップ306に移行する。そうでない場合には、判定はNOとなってステップ311に移行する。
ステップ306では、フレーム抽出タイミングか否か判定する。前回そのタイミングとなってからホップサイズ分の元音声データをサンプリングする時間が経過した場合、判定はYESとなってステップ307に移行する。そうでない場合には、判定はNOとなって上記ステップ311に移行する。
ステップ307では、入力バッファ21に格納された元音声データを1フレーム分、抽出し、抽出したフレームに対して、FFTを実行し、その実行により周波数成分が得られた周波数チャンネル毎に位相変換を行う。式(13)及び(14)によりそれぞれ周波数チャンネル毎に算出された周波数振幅mag、及び位相phaseは配列変数mag、及びphaseのインデクス値で指定される要素に代入され、位相変換により得られた位相Θは配列返送modified_phaseのインデクス値で指定される要素に代入される。その位相変換を行った後はステップ308に移行する。
ステップ308では、スケーリングファクタρの値に応じてピッチシフトを行うためのピッチシフト処理を実行する。その後に移行するステップ309では、上記位相補正を行うための位相補正処理を実行する。ステップ310にはその実行後に移行する。
ステップ310では、位相補正を実施した各チャンネルの周波数成分を対象にしたIFFTを実行し、そのIFFTにより得られる1フレーム分の合成音声データをRAM5上の出力バッファ29に格納された合成音声データにオーバーラップ加算する。ステップ311にはその後に移行する。
図2に示すフレーム抽出部22、FFT部23、及び位相変換部24は、上記ステップ306及び307の処理を実行することで実現される。ピッチシフタ25は、ステップ308のピッチシフト処理を実行することで実現される。位相補正部26は、ステップ309の位相補正処理を実行することで実現される。IFFT部27、及びフレーム加算部28は、ステップ310の処理を実行することで実現される。
ステップ311では、1サンプリング分の合成音声データを出力すべきタイミングか否か判定する。そのタイミングであった場合、判定はYESとなり、次にステップ312で出力すべき合成音声データを出力バッファ29から読み出して楽音生成部9を介しD/A変換器10に送出し、更にステップ313でその他処理を実行した後、上記ステップ302に戻る。そうでない場合には、判定はNOとなり、次にステップ313の処理を実行する。
合成された合成音声データは楽音生成部9を介してD/A変換器10に送られる。このことから、楽音生成部9には、自身が生成した楽音の波形データを他から入力したデータとミックスする機能が搭載されている。
図4は、上記ステップ308として実行されるピッチシフト処理のフローチャートである。次に図4を参照して、そのピッチシフト処理について詳細に説明する。
上述したように配列変数modified_phase、及びmagの各要素には、その要素を指定する値で対応付けられた周波数チャンネルの位相Θ及び周波数振幅magが代入されている。ピッチシフトは、配列変数modified_phase、及びmagの各要素に代入された位相Θ及び周波数振幅magを、スケーリングファクタρの値に応じて、別の配列変数synth_phase、及びsynth_magの各要素に代入することで行われる。変数jは配列変数modified_phase、及びmagの各要素の指定に用いられ、変数iは配列変数synth_phase、及びsynth_magの各要素の指定に用いられる。
先ず、ステップ401では、変数iに1を代入する。続くステップ402では、変数jに、変数iの値をスケーリングファクタρの値で割った値を四捨五入して得られる整数(=INT(i/ρ))を代入する。そのようにして変数jに代入される整数は、変数iの値をインデクス値とする周波数チャンネルに位相Θを移動させるべき周波数チャンネルのインデクス値を示している。
ステップ402に続くステップ403では、スケーリングファクタρ<1のときに変数jの値はFFT(フレーム)サイズの半分の値HALF_FFT_SIZE(ここでは512である)を越える場合があることから、変数jの値がその値HALF_FFT_SIZE以上か否か判定する。その値が値HALF_FFT_SIZEより小さい場合、判定はNOとなってステップ404に移行し、各配列要素modified_phase[j]及びmag[j]の値をそれぞれ各配列要素synth_phase[i]及びsynth_mag[i]に代入する。その後はステップ406に移行する。一方、そうでない場合には、判定はYESとなってステップ405に移行し、各配列要素synth_phase[i]及びsynth_mag[i]に0を代入する。その後はステップ406に移行する。
ステップ406では、変数iの値をインクリメントする。続くステップ407では、変数iの値が値HALF_FFT_SIZEより小さいか否か判定する。その大小関係が存在している場合、判定はYESとなり、上記ステップ402に戻る。そうでない場合には、判定はNOとなり、ここでピッチシフト処理を終了する。
図5は、図3の全体処理内でステップ309として実行される位相補正処理のフローチャートである。最後に図5を参照して、その位相補正処理について詳細に説明する。
図6に示すように、実周波数チャンネルの周波数振幅magはその周波数成分により励起された近傍の周波数チャンネルのそれよりも大きい。位相補正処理では、その大小関係に着目して実周波数チャンネルを推定し、推定した実周波数チャンネルと近傍の周波数チャンネルの間の位相差を維持させる位相補正が行われる。その位相補正のための操作は、配列変数synth_phase及びsynth_magの各要素に代入された値に対して行われる。
先ず、ステップ501では、変数iに1を代入する。続くステップ502では、配列要素mag[j]の値が配列要素mag[j+1]の値より大きいか否か判定する。その大小関係が存在していない場合、判定はNOとなってステップ507に移行する。そうでない場合には、判定はYESとなってステップ503に移行する。
ステップ503では、配列要素mag[j]の値が配列要素mag[j−1]の値より大きいか否か判定する。その大小関係が存在していない場合、判定はNOとなってステップ507に移行する。そうでない場合には、判定はYESとなってステップ504に移行する。
そのステップ504への移行は、変数jの値をインデクス値とする周波数チャンネルの周波数振幅magはその両隣の周波数チャンネルのそれよりも大きいことを意味している。それにより本実施の形態では、変数jの値をインデクス値とする周波数チャンネルを実周波数チャンネルと推定する。そのように連続する3つの周波数チャンネルを参照した推定を行うのは、そのような推定を行い、実周波数チャンネルの両隣に位置する2つの周波数チャンネルのみ位相補正を行っても、合成される合成音声データの音質を十分に改善させることができるためである。実周波数チャンネルの推定が容易に(軽い処理の負荷で)行えることも理由の一つである。
ステップ504では、変数iに、変数jの値にスケーリングファクタρの値を掛けた乗算結果を四捨五入して得られる整数(=INT(j*ρ))を代入する。そのようにして変数iに代入される整数は、変数jの値をインデクス値とする周波数チャンネルの位相Θを移動させた周波数チャンネルのインデクス値を示している。
ステップ504に続くステップ505では、実周波数チャンネルの両隣に位置する周波数チャンネルを対象に位相補正を行う。その次に移行するステップ506では、その位相補正に合わせて、位相補正を行った周波数チャンネルの周波数振幅magの補正を行う。ステップ507にはその後に移行する。
上記位相補正は、具体的には以下のようにして行われる。その補正は、窓関数としてハニング窓を想定したものである。
modified_phase[j−1]=modified_phase[j]
−(phase[j]−phase[j−1]) ・・・ (21)
synth_phase[i−1]=modified_phase[j−1]
・・・ (22)
modified_phase[j+1]=modified_phase[j]
−(phase[j]−phase[j+1]) ・・・ (23)
synth_phase[i+1]=modified_phase[j+1]
・・・ (24)
本実施の形態では、配列要素modified_phase[]の値を位相補正に合わせて修正している。これは、配列変数modified_phaseの各要素の値は式(1)右辺第1項の値として用いるからである。
一方、位相補正に合わせた周波数振幅magの補正は以下のようにして行われる。
synth_mag[i−1]=mag[j−1] ・・・ (25)
synth_mag[i+1]=mag[j+1] ・・・ (26)
ステップ507では、変数jの値をインクリメントする。次のステップ508では、変数jの値が値HALF_FFT_SIZEより小さいか否か判定する。その大小関係が存在している場合、判定はYESとなり、上記ステップ502に戻る。そうでない場合には、判定はNOとなり、ここで位相補正処理を終了する。
なお、本実施の形態では、式(21)〜(24)に示すように、位相補正は実際に得られた位相Θを用いて行っているが、実周波数チャンネルとその近傍の励起される周波数チャンネルの間の位相差は窓関数に依存するものであることから、窓関数により特定される値を用いて位相補正を行っても良い。
また本実施の形態では、連続する3つの周波数チャンネルを参照して、実周波数チャンネルを推定するようにしているが、より多くの周波数チャンネルを参照して推定するようにしても良い。位相補正の対象は、実周波数チャンネルの両隣に位置する周波数チャンネルのみとしているが、例えばその更に隣に位置する周波数チャンネルまで、つまり実周波数チャンネルの低域側、及び広域側に位置する2つの周波数チャンネルまで対象とさせても良い。
それ以上、位相補正する周波数チャンネルを増やしても音質の向上は比較的に小さいことが確認されている。このことから位相補正の対象は、実周波数チャンネルの低域側、及び高域側に位置する2つの周波数チャンネルまで、つまり計4つの周波数チャンネルを上限とすることが望ましい。それにより、低域側、及び高域側のうちの一方のみ、2つの周波数チャンネルを対象としても良い。
上記実周波数チャンネルの推定は、以下のようにして行っても良い。図7及び図8を参照して具体的に説明する。
図7は、展開した位相差と周波数の関係を説明するグラフである。縦軸は位相差、横軸は周波数である。図中に示す直線は、各チャンネルの中心周波数から計算される位相差、すなわち式(6)或いは(8)により計算されるΔZi,kを表している。その直線に沿う形でプロットした線は、式(10)により計算される位相差ΔΘi,kを表したものである。その位相差ΔΘi,kはFFT点数512点の前半128点分を示している。
図7に示すように、調波構造を持った音声では、その音声の倍音の周波数成分を持つ周波数チャンネル付近で線が階段状(平坦)となる。これは、その周波数チャンネルの周波数成分が近傍のチャンネルに漏れ出すためである。このようなことから、線の階段状となっている部分と直線が交差する個所を含む周波数チャンネルに実際の周波数成分が存在していると考えられる。それにより、その周波数チャンネルを抽出することで実周波数チャンネルを推定しても良い。その交差する個所は、それを通る縦軸と平行な直線を引いて示してある。
図8は、は、実位相差δと周波数の関係を説明するグラフである。そのグラフは図7と同じ音声の場合のものである。縦軸は位相差、横軸は周波数である。その図8には、図7に示す縦軸と平行な直線を横軸上の同じ位置に併せて描いてある。
図8に示すように、実位相差δを表す線は、図7では線の階段状となっている部分と直線が交差する個所で正から負にゼロクロスしている。このことから、ゼロクロスする点を検出することにより、実周波数チャンネルを推定することができる。上記実周波数チャンネルの推定を含め、その推定には特許文献2に記載の技術を用いることができる。
上述したような音声分析合成装置、或いはその変形例を実現させるようなプログラムは、CD−ROM、DVD、或いは光磁気ディスク等の記録媒体に記録させて配布しても良い。或いは、公衆網等で用いられる伝送媒体を介して、そのプログラムの一部、若しくは全部を配信するようにしても良い。そのようにした場合には、ユーザーはプログラムを取得してコンピュータ(データ処理装置)にロードすることにより、そのデータ処理装置を用いて本発明を適用させた音声分析合成装置を実現させることができる。このことから、記録媒体は、プログラムを配信する装置がアクセスできるものであっても良い。
本実施の形態による音声分析合成装置を搭載した電子楽器の構成図である。 本実施の形態による音声分析合成装置の機能構成図である。 全体処理のフローチャートである。 ピッチシフト処理のフローチャートである。 位相補正処理のフローチャートである。 周波数信号の漏れ出しを説明する図である。 展開した位相差と周波数の関係を説明するグラフである。 実位相差と周波数の関係を説明するグラフである。
符号の説明
1 CPU
3 スイッチ部
4 ROM
5 RAM
7 マイク
8 A/D変換器
9 楽音生成部
10 D/A変換器
11 アンプ
12 スピーカ

Claims (4)

  1. 第1の音声波形を分析し、該分析結果を用いて第2の音声波形の合成を行う音声分析合成装置において、
    前記第1の音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出する周波数分析手段と、
    前記周波数分析手段による分析結果を基に、周波数漏れ出し成分を除いた前記第1の音声波形の周波数成分が実際に存在する周波数チャンネルである実周波数チャンネルを推定する推定手段と、
    前記推定手段が推定した実周波数チャンネルと、周波数軸上において当該実周波数チャンネルの両隣に位置し前記周波数漏れ出し成分が存在する周波数チャンネルとの間の位相関係を維持させる位相補正を行う位相補正手段と、
    前記位相補正手段が位相補正を行って得られる周波数成分を用いて、前記第2の音声波形をフレーム単位で合成する音声合成手段と、
    を具備することを特徴とする音声分析合成装置。
  2. 前記周波数漏れ出し成分が存在する周波数チャンネルは、前記実周波数チャンネルの低域側、及び高域側ともに、該実周波数チャンネルから連続する最大で2つの周波数チャンネルである、
    ことを特徴とする請求項1記載の音声分析合成装置。
  3. 前記推定手段は、前記周波数成分から得られる該周波数成分の大きさを示す周波数振幅を参照して前記実周波数チャンネルを推定する、
    ことを特徴とする請求項1、または2記載の音声分析合成装置。
  4. 第1の音声波形を分析し、該分析結果を用いて第2の音声波形の合成を行う音声分析合成装置として用いることが可能なコンピュータに、
    前記第1の音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出する周波数分析機能と、
    前記周波数分析機能による分析結果を基に、周波数漏れ出し成分を除いた前記第1の音声波形の周波数成分が実際に存在する周波数チャンネルである実周波数チャンネルを推定する推定機能と、
    前記推定機能により推定した実周波数チャンネルと、周波数軸上において当該実周波数チャンネルの両隣に位置し前記周波数漏れ出し成分が存在する周波数チャンネルとの間の位相差を維持させる位相補正を行う位相補正機能と、
    前記位相補正機能により位相補正を行って得られる周波数成分を用いて、前記第2の音声波形をフレーム単位で合成する音声合成機能と、
    を実現させるためのプログラム。
JP2007050502A 2007-02-28 2007-02-28 音声分析合成装置、及びプログラム Active JP4816507B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007050502A JP4816507B2 (ja) 2007-02-28 2007-02-28 音声分析合成装置、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007050502A JP4816507B2 (ja) 2007-02-28 2007-02-28 音声分析合成装置、及びプログラム

Publications (2)

Publication Number Publication Date
JP2008216381A JP2008216381A (ja) 2008-09-18
JP4816507B2 true JP4816507B2 (ja) 2011-11-16

Family

ID=39836537

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007050502A Active JP4816507B2 (ja) 2007-02-28 2007-02-28 音声分析合成装置、及びプログラム

Country Status (1)

Country Link
JP (1) JP4816507B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2799838B1 (en) 2011-12-27 2016-07-27 Canon Kabushiki Kaisha Information signal generating method
WO2021015051A1 (ja) * 2019-07-23 2021-01-28 ソニー株式会社 制御装置、制御方法、及び制御プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3534012B2 (ja) * 1999-09-29 2004-06-07 ヤマハ株式会社 波形分析方法
JP4513556B2 (ja) * 2003-12-25 2010-07-28 カシオ計算機株式会社 音声分析合成装置、及びプログラム
JP4734961B2 (ja) * 2005-02-28 2011-07-27 カシオ計算機株式会社 音響効果付与装置、及びプログラム
JP4830350B2 (ja) * 2005-05-26 2011-12-07 カシオ計算機株式会社 声質変換装置、及びプログラム

Also Published As

Publication number Publication date
JP2008216381A (ja) 2008-09-18

Similar Documents

Publication Publication Date Title
JP4734961B2 (ja) 音響効果付与装置、及びプログラム
US7672835B2 (en) Voice analysis/synthesis apparatus and program
JP5598536B2 (ja) 帯域拡張装置および帯域拡張方法
JP4816507B2 (ja) 音声分析合成装置、及びプログラム
Ottosen et al. A phase vocoder based on nonstationary Gabor frames
JP2009288697A (ja) インパルス応答加工装置、残響付与装置およびプログラム
WO2006090553A1 (ja) 音声帯域拡張装置
Han et al. Reconstructing completely overlapped notes from musical mixtures
JP2014041241A (ja) タイムスケーリング方法、ピッチシフト方法、オーディオデータ処理装置およびプログラム
JP2007310298A (ja) 帯域外信号生成装置及び周波数帯域拡張装置
JP5163606B2 (ja) 音声分析合成装置、及びプログラム
US9865276B2 (en) Voice processing method and apparatus, and recording medium therefor
WO2008010413A1 (fr) Dispositif, procédé et programme de synthèse audio
JP4513556B2 (ja) 音声分析合成装置、及びプログラム
JP2016038543A (ja) 効果付加装置、方法、およびプログラム、電子楽器
JP4830350B2 (ja) 声質変換装置、及びプログラム
JP5246208B2 (ja) 基音抽出装置、及びプログラム
JP2020194098A (ja) 推定モデル確立方法、推定モデル確立装置、プログラムおよび訓練データ準備方法
JP6131574B2 (ja) 音声信号処理装置、方法、及びプログラム
JP2011090189A (ja) 音響信号の符号化方法および装置
KR20240075501A (ko) 임베디드 시스템을 위한 가상 엔진음 생성 장치 및 그 제어 방법
KR100275778B1 (ko) 유/무성음 합성방법
Kim et al. Phase Vocoder For Time Stretch Based On Center Frequency Estimation.
JP5495858B2 (ja) 音楽音響信号のピッチ推定装置及び方法
Al-Taee et al. Dynamic segmentation approach for efficient Arabian music transcription

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090703

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110323

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110815

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

Free format text: PAYMENT UNTIL: 20140909

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4816507

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150