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

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

Info

Publication number
JP5163606B2
JP5163606B2 JP2009167427A JP2009167427A JP5163606B2 JP 5163606 B2 JP5163606 B2 JP 5163606B2 JP 2009167427 A JP2009167427 A JP 2009167427A JP 2009167427 A JP2009167427 A JP 2009167427A JP 5163606 B2 JP5163606 B2 JP 5163606B2
Authority
JP
Japan
Prior art keywords
frequency
phase
speech
channel
waveform
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
JP2009167427A
Other languages
English (en)
Other versions
JP2009237589A (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 JP2009167427A priority Critical patent/JP5163606B2/ja
Publication of JP2009237589A publication Critical patent/JP2009237589A/ja
Application granted granted Critical
Publication of JP5163606B2 publication Critical patent/JP5163606B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

本発明は、音声波形を分析し、その分析結果を用いて音声波形を合成するための技術に関する。
音声波形を分析し、その分析結果を用いて音声波形を合成する音声分析合成装置のなかには、音声波形の分析として周波数分析を行うものがある。そのような音声分析合成装置では、音声波形の合成は、具体的には以下のようにして行われる。ここでは、合成後の音声波形、元の音声波形を区別するために、前者を「合成音声波形」、後者を「元音声波形」と表記することとする。
合成音声波形を合成するまでの過程は、分析(analysis)過程、変更(modification)過程、及び合成(synthesis)過程、の3段階に大別される。以降、従来の音声分析合成装置においてその過程毎に行われている処理について具体的に説明する。
<分析過程>
元音声波形は、所定の時間間隔で音声をサンプリングして得られるものである。その元音声波形から、予め定めた時間間隔(サンプリング数)分のサンプリングデータがフレームとして切り出され、短時間フーリエ変換(STFT)が行われる。そのSTFTにより、周波数が異なる周波数チャンネル毎に周波数成分が抽出される。その周波数成分は、実数部と虚数部からなり、各周波数チャンネルの周波数振幅、及び位相はその周波数成分から算出する。STFTは、信号データを短時間分、切り出して離散フーリエ変換(DFT)を行うものである。このことから、DFTはSTFTを含む意味で用いることにする。そのDFTでは、高速フーリエ変換(FFT)が用いられるのが普通である。
ピッチ(音高)をシフトするピッチスケーリングを行う場合、切り出したフレームに対し補間、或いは間引きを行ってピッチをシフトさせた後にFFTを行う。
<変更過程>
元音声波形のDFT(FFT)はフレーム単位で行われることから、合成音声波形の合成もフレーム単位で行われる。その合成音声波形における周波数チャンネルkの位相θ’i,kは下記式で計算される。発音持続時間を変化させるタイムスケーリングのみを行う場合、各周波数チャンネルの周波数振幅は変化させる必要はない。
θ’i,k=θ’i-1,k+ρ・ΔΘi,k ・・・ (1)
ここで、ΔΘi,kは元音声波形で周波数チャンネルkにおける直前のフレームと今回のフレームとの間の位相差を表し、ρはピッチスケーリングを行う程度を示すスケーリングファクタを表している。下添字のiは、フレームを表している。今回のフレーム(現フレーム)はi、直前のフレームはi−1で表されている。このようなことから、(1)式は、合成音声波形における現フレームの周波数チャンネルkの位相θ’i,kは、合成音声波形における直前フレーム時点での位相(スケーリングファクタρにより変換された後の位相差積算値)に、位相差ΔΘi,kにファクタρの乗算値を加算することで算出されることを示している。
その位相差ΔΘi,kは、展開されている必要がある。音声波形の合成において、位相の展開(unwrap)、及び折り畳み(wrap)は重要な意味がある。このため、そのことについて以下に詳細に説明する。展開の有無の区別を容易にするために、折り畳まれている位相を小文字のθ、展開されている位相を大文字のΘで表記する。
任意のチャンネルkの任意の時刻tにおける位相θk,tは次式で表現できる。
Figure 0005163606
その(2)式から明らかなように、位相θk,tは角速度ωkを積分することで得られる。一方、DFTにより算出される周波数成分から位相を算出する際にarctanにより得られる値は−πとπの間に制限される。すなわち折り畳まれている位相θk,tとして得られる。それにより、以下の式で表現される位相Θk,tにおいて2nπの項が欠落していることとなる。
Θk,t=θk,t+2nπ (ただし、n=0、1,2,・・・) ・・・ (3)
(1)式により位相θ’k,tを計算するためには折り畳まれている位相θk,tを展開する必要がある。その展開は、(3)式におけるnを推定する作業であり、DFTのチャンネルkの中心周波数を基にして推定することができる。
Δθi,k=θi,k−θi-1,k ・・・ (4)
(4)式中のΔθi,kは、チャンネルkにおける折り畳まれた位相θi,kのフレーム間の位相差を示している。そのチャンネルkの中心周波数(の角速度)Ωi,kは、サンプリング周波数をfs、DFT点数(フレームのサンプリング数)を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)
で求められる。(7)式中のOVLは、フレームサイズをホップサイズ(隣り合うフレームのずれに相当するサンプリング数)で割った値であるオーバーラップファクタを示している。
(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)
(1)式と(10)式によりタイムスケーリングされた位相θ’i,kが算出される。ただしチャンネルの中心周波数を基に位相展開する方法では、実位相差δは|δ|<πとする必要がある。その最大値δmaxの絶対値は隣のチャンネルに信号が遷移しない限界の値であるから、
|δmax|=(2π・fs/N)・(k+0.5)・Δt−(2π・fs/N)・k・Δt
=(2π・fs/2N)・(N/(fs・OVL))=π/OVL
・・・ (11)
となる。
(11)式と|δ|<πの関係よりオーバーラップファクタOVLの値はOVL>1の関係となる。すなわち位相展開するにはフレームをオーバーラップさせる必要があることがわかる。
さらに、DFTでは、通常1チャンネルの信号が複数のチャンネルを励起させる。正規化角周波数ω、初期位相φ、振幅1の複素正弦波fnの窓かけしない場合(窓関数として方形窓を適用した場合と等価)、そのDFTは以下のように求められる。
Figure 0005163606
上記複素正弦波fnは以下のように表すことができる。
Figure 0005163606
(12)式から、角周波数ω=(2π/N)・k以外の周波数となっているチャンネルが全て励起されることがわかる。通常は何らかの窓関数を用いるので、その窓関数の帯域幅に応じて励起されるチャンネル、その数が変化する。窓関数としてハニング窓を用いた場合、そのDFT値は
0=(1/2)N,W1=−(1/4)N,W-1=−(1/4)N ・・・ (13)
となり、これが各チャンネルに畳み込まれる。(13)式から明らかなように、たとえ角周波数ω=(2π/N)・kの場合でも周波数振幅値が1:2:1の割合で3チャンネルが励起される。角周波数ωが隣り合う2つのチャンネルの中間にある場合には、周波数振幅値が1:5:5:1の割合で4チャンネルが励起される。
励起される各チャンネル全てで正しく位相展開するためには(8)式中のnが励起される各チャンネル間で等しい値とならなければならない。この制約から、窓関数として例えばハニング窓を適用した場合には、オーバーラップファクタOVLの値は4以上とする必要がある。
上記分析過程では、そのような値のオーバーラップファクタOVLに従ってフレームを切り出し、切り出したフレームに窓関数を掛けた後、FFTを行う。変更過程では、上述したようにして求められるチャンネルの位相を維持させつつ、各チャンネルの周波数振幅を必要に応じて操作する。
<合成過程>
合成過程では、変更過程で変更(操作)された後の周波数成分を逆FFT(IFFT(逆高速フーリエ変換))により時間座標上の信号に戻し、1フレーム分の合成音声波形を生成する。その1フレームの音声波形は、オーバーラップファクタOVLをファクタρの値に応じて変更する値で前のフレームとオーバーラップさせて加える。それにより、ピッチスケーリング、及びタイムスケーリングを行った後の合成音声波形を生成する。
上述のようにして合成音声波形を合成する従来の音声分析合成装置では、その合成音声波形による音声(合成音)が、元音声波形の音声(原音)に対してphasiness、若しくはreverbrantと呼ばれる位相ズレ感を与えるものとなるという問題点があった。そのような位相ズレ感は、合成音における音源との距離感が、原音におけるそれと比較して遠く離れていると感じられる距離感となってしまうことにより、聴感上、悪影響を及ぼす場合があることから非常に望ましくない。それは、ピッチのシフトが比較的に非常に小さい場合においても発生する。以下、その原因について詳細に説明する。
上述したように、位相の展開を正確に実行するためにはフレームをオーバーラップさせる必要がある。そのためのオーバーラップファクタOVLに適切な値が設定されていれば正確に位相展開を実行することができ、(1)式により算出される位相θ’i、kは右辺の第2項により時間軸上の位相に関しては常に一貫性が保存される。ここでは、その時間軸上の位相の一貫性をHPC(Horizontal Phase Coherence)と呼ぶことにする。これに対し、チャンネル間、すなわち周波数成分間の位相関係はVPC(Vertical Phase Coherence)と呼ぶこととする。
従来の音声分析合成装置では、このVPCが保存されないために位相ズレ感が発生する。
そのVPCが保存されない原因は、(1)式右辺第1項が正確な値を保持できないことにある。位相展開ファクタをnとすると、(1)式は(4)、(10)式を用いて以下のように変形できる。
θ’i,k=θ’i-1,k+ρ(θi,k−θi-1,k+2nπ) ・・・ (14)
今スケーリングファクタρの値が整数である場合を考えると、(14)式の右辺にある位相展開項2nπは削除可能であることから、次式のように表現できる。
Figure 0005163606
(15)式は、初期位相θ’0,kがρθ0,kとなるように設定すると
θ’i,k=ρθi,k ・・・ (16)
となり、(1)式の右辺第1項が消去される。このため、HPCと共にVPCも保存され、位相ズレ感の無いスケーリングを行うことができる。しかし、スケーリングファクタρが整数以外の値であった場合には、その第1項は残ることになる。
(1)式の右辺第1項は、位相展開された位相差分の変換値(=ρ・ΔΘi,k)が積算されたものである。その積算値を正確な値に維持し続けさせるには、次の点に適切に対応する必要がある。
1) 初期値の影響
2) 周波数成分のチャンネル間の遷移
3) 周波数成分の消滅/発生
1)の点に関しては、上述したように、初期位相θ’0,kをρθ0,kとなるように設定することで積算値を正確な値に維持させることができる。
2)の点に関しては、周波数振幅のピークピッキングなどの方法により周波数成分が存在するチャンネルをトラッキングし、周波数成分が別のチャンネルに遷移したことの検知により、チャンネル間をまたいで位相差の計算を実施するようにした場合には、積算値を正確な値に維持させることが可能となる。周波数成分(信号)がチャンネルkからチャンネルk+1に遷移した場合、(14)式は
θ’i,k+1=θ’i-1,k+ρ(θi,k+1−θi-1,k+2nπ) ・・・ (17)
と変形させることができる。位相展開ファクタnも位相Ωi,k+1を用いて算出する。しかし、周波数成分の遷移のトラッキングに失敗したときは、その時点で積分値は不正確な値となってしまい、VPCは保存されなくなる。また、チャンネル間における周波数成分の遷移が発生した場合に、その遷移元のチャンネルに対応する直前のフレームのチャンネルが存在しないという事態が発生することがある。その場合には、チャンネルの不整合により正確な積分値は得られなくなる。
3)の点に関しては、波形が定常波のような特殊な音声を除き、通常の音声や楽音では不可避と考えられる。特に調波構造を持たないノイズでは周波数成分の発生/消滅はランダム且つ頻繁に発生するため、それを検知することはほぼ不可能である。従って、その回避も不可能と云える。
このようなことから、従来の音声分析合成装置では、スケーリングファクタρの値が整数の場合を除き、VPCを保存することは実質的に不可能となっている。このため、位相ズレ感を与える音声波形の合成を確実に回避することができなかった。それにより、位相ズレ感を与える音声波形の合成を確実に回避できるようにすることが望まれていた。
なお、特許文献1に記載の音声分析合成装置では、ピッチ変換された合成音声波形の位相を、フレームをオーバーラップする幅によって制御している。その制御は、上記合成過程で行われている。上記積算値((1)式右辺第1項)に正確な値を保持できないことの説明は、その制御を行うのを前提としたものである。
特許第2753716号公報
本発明の課題は、位相ズレ感を与える音声波形の合成を確実に回避できる音声分析合成装置及びプログラムを提供することにある。
本発明の音声分析合成装置は、第1の音声波形を分析し、該分析結果を用いて第2の音声波形の合成を行うことを前提とし、第1の音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出する周波数分析手段と、前記第1及び第2の音声波形夫々が現在のフレームの直前のフレームから現在のフレームに移行する間に、前記第1及び第2の音声波形間に生じた位相の変化量を位相較差量として、周波数チャンネルのなかの所定の周波数チャンネルを基準にして算出し、該位相較差量を用いる形で、現在のフレームにおける該第2の音声波形の位相を該周波数チャンネル毎に前記周波数分析手段が抽出した周波数成分を参照して算出する位相算出手段と、前記周波数分析手段が抽出した周波数成分から前記周波数チャンネル毎に周波数振幅を求める周波数振幅抽出手段と、前記周波数チャンネル毎に求めた周波数振幅の状態を基に、移動平均フィルタリング処理で用いる次数を必要に応じて変更するとともに、該変更された次数の移動平均フィルタリング処理により前記第1の音声波形のフォルマントを抽出するフォルマント抽出手段と、前記周波数分析手段が抽出した周波数成分に対する操作により前記抽出したフォルマントのシフトを行うとともに、前記周波数分析手段が抽出した周波数成分を前記位相算出手段が算出した位相に応じて周波数チャンネル毎に変換することにより得られた周波数成分を用いて前記第2の音声波形を合成する音声合成手段と、を具備する。
また、周波数成分に対する操作としては、該周波数成分から求められる周波数振幅の値が所定値以下となっている周波数振幅をより小さい値とさせる操作を併せて行う、ことが望ましい。
本発明のプログラムは、第1の音声波形を分析し、該分析結果を用いて第2の音声波形の合成を行う音声分析合成装置として用いられるコンピュータに実行させることを前提とし、第1の音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出する周波数分析機能と、前記第1及び第2の音声波形夫々が現在のフレームの直前のフレームから現在のフレームに移行する間に、前記第1及び第2の音声波形間に生じた位相の変化量を位相較差量として、周波数チャンネルのなかの所定の周波数チャンネルを基準にして算出し、該位相較差量を用いる形で、現在のフレームにおける該第2の音声波形の位相を該周波数チャンネル毎に前記周波数分析機能により抽出した周波数成分を参照して算出する位相算出機能と、前記抽出した周波数成分から前記周波数チャンネル毎に周波数振幅を求める周波数振幅抽出機能と、前記周波数チャンネル毎に求めた周波数振幅の状態を基に、移動平均フィルタリング処理で用いる次数を必要に応じて変更するとともに、該変更された次数の移動平均フィルタリング処理により前記第1の音声波形のフォルマントを抽出するフォルマント抽出機能と、前記抽出した周波数成分に対する操作により前記抽出したフォルマントのシフトを行うとともに、前記抽出した周波数成分を前記位相算出機能が算出した位相に応じて周波数チャンネル毎に変換することにより得られた周波数成分を用いて前記第2の音声波形を合成する音声合成機能と、を実現させる
本発明は、第1の音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出し、第1、及び第2の音声波形間の所定数前のフレームにおける位相較差量を、周波数チャンネルのなかの所定の周波数チャンネルを基準にして算出し、その位相較差量を用いる形で、現在のフレームにおける第2の音声波形の位相を周波数チャンネル毎に算出し、抽出した周波数成分を算出した位相に応じて周波数チャンネル毎に変換し、変換後の周波数成分を用いて、第2の音声波形をフレーム単位で合成する。
第1、及び第2の音声波形間の所定数前のフレームにおける位相較差量を、所定の周波数チャンネルを基準にして構築することにより、第2の音声波形の各周波数チャンネルの位相は、所定の周波数チャンネルを基準として相対的に表されるものとすることができる。このため、各周波数チャンネルの位相関係は常に適切に保存することができ、それによって位相ズレ感を与える第2の音声波形の合成は回避することができる。その位相較差量は所定数前のフレームであることから、それより前の時点で周波数チャンネルの何れかに発生したエラーによる悪影響は回避、或いは低減される。それにより、常に良好な第2の音声波形をより確実に合成することができることとなる。
周波数チャンネル毎に抽出した周波数成分から第1の音声波形のフォルマントを抽出し、抽出したフォルマントをシフトする操作を周波数成分に対して行い、その操作を上記変換と併せて行った後の周波数成分を用いて第2の音声波形を合成するようにした場合には、第2の音声波形におけるフォルマントを任意にシフトできるようになる。そのシフトによって第1の音声波形におけるフォルマントを保存させることができるようになる。このため、第1の音声波形におけるフォルマントを保存させたときには、位相ズレ感を与えず、且つ自然と感じられる第2の音声波形を合成することができる。
第1の実施の形態による音声分析合成装置を搭載した電子楽器の構成図である。 第1の実施の形態による音声分析合成装置の機能構成図である。 周波数成分間の位相関係を説明する図である(その1)。 周波数成分間の位相関係を説明する図である(その2)。 本実施の形態における周波数チャンネル間の位相関係を説明する図である。 合成音声波形に対して行われるオーバーラップ加算を説明する図である。 全体処理のフローチャートである。 タイムスケーリング処理のフローチャートである。 第2の実施の形態による音声分析合成装置の機能構成図である。 全体処理のフローチャートである(第2の実施の形態)。 フォルマント移動処理のフローチャートである。 Neville補間処理のフローチャートである。
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
<第1の実施の形態>
図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と、そのアンプ11が増幅を行った後のオーディオ信号を音声に変換するスピーカ12と、を備えて構成されている。それらの構成において、CPU1、鍵盤2、スイッチ部3、ROM4、RAM5、表示部6、A/D変換器8、及び楽音生成部9の間はバスによって接続されている。なお、上記スイッチ部3は、例えばユーザが操作の対象とする各種スイッチの他に、各種スイッチの状態変化を検出するための検出回路を備えたものである。
上記構成の電子楽器において、本実施の形態による音声分析合成装置は、マイク7から入力した音声に対し、そのピッチ(音高)を指定されたピッチに変換(シフト)する音響効果を付与できるものとして実現されている。音声の入力は、外部記憶装置を介して行っても良く、LAN、或いは公衆網等の通信ネットワークを介して行っても良い。
図2は、第1の実施の形態による音声分析合成装置の機能構成図である。
音響効果を付加した音声波形、つまりピッチをシフトした音声波形は、元の音声波形を周波数分析して周波数チャンネル毎に周波数成分(スペクトル成分)を抽出し、抽出した周波数成分をシフトし、そのシフト後の周波数成分を用いて合成(生成)するようになっている。そのために、以下のような機能構成を備えている。
図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が抽出したフレームはローパスフィルタ(LPF)23に出力される。そのLPF23は、ピッチのシフトにより周波数成分がナイキスト周波数を超えることを防止するために高周波成分の除去を行う。ピッチシフタ24は、ピッチスケーリングファクタρの値に応じて、LPF23から入力したフレームに対して補間、或いは間引きを行い、そのピッチをシフトする。補間、間引きには一般的なラグランジュ関数やsinc関数などが使用できるが、本実施の形態ではNeville補間によりピッチシフト(ピッチスケーリング)を行っている。
FFT部25は、ピッチシフト後のフレームを対象にFFTを実行する。タイムスケーリング部26は、FFTの実行により得られた各周波数チャンネルの周波数成分を対象にして、合成音声のフレームの位相を算出するタイムスケーリングを行う。IFFT部27は、タイムスケーリング実施後の各周波数チャンネルの周波数成分を、IFFT(逆FFT)を行うことにより時間座標上のデータに戻し、1フレーム分の音声データを生成して出力する。その音声データについては以降「合成音声データ」と呼び、それによって発音される音声を「合成音声」と呼ぶことにする。FFT部25、タイムスケーリング部26、及びIFFT部27はフェーズボコーダを構成している。
出力バッファ29は、音声としてスピーカ12から放音させる合成音声データを格納するバッファである。フレーム加算部28は、IFFT部27から入力した1フレーム分の合成音声データを、出力バッファ29に格納された合成音声データにオーバーラップさせて加算する。出力バッファ29に格納された合成音声データは、D/A変換器(DAC)10に出力されてD/A変換される。
スケーリングファクタρの値が2であった場合、つまりピッチを2倍にする場合、ピッチシフタ24では間引きを行い、フレームサイズを1/2にする。このため、オーバーラップファクタOVLの値が同じならば、出力バッファ29に格納される合成音声波形のサイズは元の合成音声波形のサイズの約1/2となる。このことから、図6に示すように、合成音声波形はオーバーラップファクタOVLの値を1/2にした値(ここでは2である)で直前フレームにオーバーラップ加算されることになる。
上記入力バッファ21、及び出力バッファ29は、例えばRAM5に確保された領域である。A/D変換器8、D/A変換器10、入力バッファ21、及び出力バッファ29を除く各部22〜28は、例えばRAM5をワーク用にして、CPU1がROM4に格納されたプログラムを実行することで実現される。特に詳細な説明は省略するが、ピッチのシフト量は例えば鍵盤2への操作により指示し、タイムスケーリングの程度はスイッチ部3の所定のスイッチへの操作により指示するようになっている。
本実施の形態では、合成音声における各周波数チャンネルの位相θ’は下記の式により算出する。
θ’i,k=(ΔΘi,k/ΔΘi,B)(θ’i-1,B−θi-1,B
+(ρ−1)ΔΘi,k+θi,k ・・・ (18)
(18)式において、下添字として表記したBは最も波長の長い、すなわち最も低い周波数成分が存在するチャンネルを示している。(18)式右辺第1項は、チャンネルBを基準にして、1フレーム前のフレームi−1までに生じた元音声と合成音声間の位相較差(変化)量を示している。その第2項は、その直前フレームi−1から現在のフレームiに移行する間(以降、便宜的に「直前フレーム間」と呼ぶ)に発生する元音声と合成音声間の位相較差量を示している。このことから、(18)式は、それら位相較差量を現フレームiでの位相θに加算することで合成音声における各チャンネルの位相θ’ を求めることを示している。
(18)式右辺第1項はVPCを保存するための項、その第2項はHPCを保存するための項となっている。ここで、それらが保存されることを具体的に説明する。
位相θ[rad]を角速度ω[rad/sec]で除算すると、その単位は時間[sec]となる。さらに音速ν[m/sec]を乗算すれば単位は距離[m]となる。この距離を位相(位相差を含む)の表現に用いて説明することとする。
図3、及び図4は、VPCを説明する図である。図3、及び図4において、波形A(基準音)は時刻T1〜T2間、時刻T2〜T3間にそれぞれ位相がπ変化する周波数の波形である。それにより、その間に対応する距離は、波形Aの波長λの1/2(=λ/2)となる。波形Bはその波形Aの1.5倍の周波数の波形、波形Cはその波形Aの2倍の周波数の波形である。それら時刻T1〜T3は、波形上の位置や位相変化などを説明するために便宜的に付したものである。
図3では、時刻T2を基準点にして、各波形A〜Cの位相を距離で示している。波形Aの位相は、基準点から正方向に距離ΨAだけ離れた位置に存在し、同様に波形Bは基準点から負方向に距離ΨB、波形Cは基準点から正方向に距離ΨCだけ離れた位置にそれぞれ存在していることを示している。それらの距離は、位相から求められる。その位相はarctanにより求めるため、畳まれている。それにより、何れの距離も1波長を超えない長さとなっている。
図3中の「ΔΨBA」「ΔΨCA」はそれぞれ波長Bと波長A間、波長Cと波長A間における相対的な位相の距離(相対位相距離)を示している。従って、ΔΨBA=ΨB−ΨA、ΔΨCA=ΨC−ΨA、により求められる。
VPCは、そのような相対位相距離を適切に保存することに対応する。具体的には図4に示すように、時間の経過によって波形Aの距離ΨAが位置P0から位置P1に距離ΔPだけ移動した場合、他の波形B、Cにおいても距離ΨB、ΨCをそれに追随してそれぞれ距離ΔPだけ同じ移動方向に移動させ、波形Aとの相対位相距離を保存・維持することに対応する。
そのように相対位相距離を保存するように位相を算出することにより、VPCは保存される。その結果、phasiness、reverbrantなどによる位相ズレ感を与える合成音声データの合成は常に確実に回避することができる。
距離の移動では、位相はarctanにより求めるため、その移動範囲は1波長内に収める必要がある。つまり、元音声の位相と合成音声の位相間の距離を計算する際にその位相は折り畳まれている必要がある。
今、図4において、波形Aの距離が1波長λ分、移動してそのまま巡回せずに次の波長区間に移ったとする。1波長λ分の移動であるから、波形Aの折り畳んだ位相は前と同じである。波形Aの2倍音である波形Cにおいても同様である。しかしながら、1.5倍音である波形Bでは、前と同じ位相とはならない。角度で表現すると、1波長λ分の移動は波形Aでは360度、波形Cでは720度の位相の変化にそれぞれ相当するから折り畳んだ位相は移動前と同じとなるが、波形Bでは540度の位相の変化に相当することから同じとはならない。
そのように、基準とする波形(基準波形)の整数音倍とそれ以外の波形とでは、異なる波長区間では異なる位相距離関係となることから、移動範囲を1波長内に収めないことで距離の移動を巡回させない場合、基準波形の整数倍音以外の波形では相対位相距離を常に正確に維持させることができなくなる。それにより、位相距離関係を適切に保存するためには基準波形の1波長内で位相の移動を巡回させることが必要となる。この制約を設けることにより、調波構造を持った波形だけでなく、ノイズや複数の音が混じった一般的な音声にも適用できることとなる。
同様の理由により、基準波形よりも波長の長い(周波数の低い)波形が存在していると、適切な位相距離関係を常に保存できなくなる。これは長波長の波形の距離が基準波形の1波長を越えた別の波長区間に存在することがありうるためである。このため、基準波形とするチャンネルは最低の周波数成分が存在するチャンネルに設定する必要がある。上記チャンネルBは最低の周波数成分が存在するチャンネルである。
(18)式右辺第1項を変形すると
Figure 0005163606
となる。(19)式中の括弧内は基準とするチャンネルであるチャンネルBにおける位相の移動距離を示し、図4中の距離ΔPに相当する。VPCを保存するためには、全てのチャンネルで位相をこの距離ΔP分、移動させれば良い。距離ΔPからの位相の算出は、音速νで除算後、角速度ωを乗算することで行うことができる。(19)式の括弧の前の項がその計算を実行するためのものである。
(18)式右辺第1項は、単純に直前フレームにおける折り畳みされたチャンネルB(基準波形)での位相の変化量に、チャンネルBと各チャンネルとの周波数比を乗算して各チャンネルの位相変化量を算出していると考えても良い。この項により、上述したように直前フレームまでのVPCが保存される。
(18)式右辺第2項は分解すると、(16)式より
(ρ−1)ΔΘi,k=ρΔΘi,k−ΔΘi,k=ΔΘ’i,k−ΔΘi,k ・・・ (20)
と表すことができる。その第2項が示すのは直前フレーム間で発生する位相の変化量である。この項により、直前フレームから現フレームまでのHPCが保存される。その項と第1項の加算値は元音声と合成音声の間における現フレームまでの位相の変化量である。従って、その加算値を現フレームの位相θに加算すれば合成音声の位相θ’が算出される。
(18)式による位相θ’の算出は、現フレーム、及び直前のフレームで取得されるスケーリング前の値を基準にして行うことができる。このため、たとえ位相を求めるうえでのエラーが何れかのチャンネルで発生しても、そのエラーが以降のフレームにおける位相θ’の算出に及ぼす悪影響が回避、或いは低減される。その理由からも、常に良好な合成音声データをより確実に合成することができることとなる。
図5は、本実施の形態における周波数チャンネル間の位相関係を説明する図である。(18)式により各チャンネルの位相θ’i、kを求める本実施の形態でのチャンネル間の位相関係は図5(c)、(1)式によりその位相θ’i、kを求める従来例でのチャンネル間の位相関係は図5(b)にそれぞれ示してある。そのチャンネル間の位相関係は、基準波形、その2倍音波形を例にとって、図5(a)の位相関係から変化した後のフレームにおける状態を示してある。
(1)式では、位相θ’i,kは個別に独立して求めることから、図5(b)に示すように、基準波形のフレームにおける位相θ’αに対応する距離、及び方向は、2倍音波形のフレームにおける位相θ’βに対応する距離、及び方向と必ずしも一致しない。それにより、チャンネル間の位相ズレは各チャンネルで求める位相θ’に応じて不適切に蓄積されることになって、チャンネル間の位相関係であるVPCは保存されない。
これに対し、本実施の形態では、図5(c)に示すように、2倍音波形のフレームにおける位相θ’βは基準波形の直前フレームにおける位相θ’αに合わせて求められる。それにより、それらの位相に対応する距離、及び方向は一致させている。そのようにして、基準波形を基準にフレームにおける元音声と合成音声間の位相較差量を算出するため、各チャンネルで求める位相θ’は適切な位相関係を保存したものとなり、VPCは保存されることとなる。
本実施の形態による音声分析合成装置は、上述したようにして、VPC、及びHPCを常に保存することにより、位相ズレ感を与えない合成音声データを合成し、スピーカ12から放音させるものとして実現されている。以降は、その音声分析合成装置を実現させる電子楽器の動作について、図7、及び図8に示す各種フローチャートを参照して詳細に説明する。
図7は、全体処理のフローチャートである。始めに図7を参照して、その全体処理について詳細に説明する。なお、その全体処理は、CPU1が、ROM4に格納されたプログラムを実行して電子楽器のリソースを使用することにより実現される。
先ず、ステップ701では、電源がオンされたことに伴い、初期化処理を実行する。続くステップ702では、スイッチ部3を構成するスイッチへのユーザの操作に対応するためのスイッチ処理を実行する。そのスイッチ処理は、例えばスイッチ部3を構成する検出回路に各種スイッチの状態を検出させてその検出結果を受け取り、その検出結果を解析して状態が変化したスイッチの種類、及びその変化を特定して行われる。
ステップ702に続くステップ703では、鍵盤2へのユーザの操作に対応するための鍵盤処理を実行する。その鍵盤処理を実行することにより、鍵盤2への演奏操作に応じて楽音がスピーカ12から放音される。ステップ704にはその後に移行する。
ステップ704では、A/D変換器8から元音声データが出力されるサンプリングタイミングか否か判定する。そのタイミングであった場合、判定はYESとなり、ステップ705でその元音声データをRAM5上の入力バッファ21に書き込んだ後、ステップ706に移行する。そうでない場合には、判定はNOとなってステップ710に移行する。
ステップ706では、フレーム抽出タイミングか否か判定する。前回そのタイミングとなってからホップサイズ分の元音声データをサンプリングする時間が経過した場合、判定はYESとなってステップ707に移行する。そうでない場合には、判定はNOとなって上記ステップ710に移行する。
ステップ707では、入力バッファ21に格納された元音声データを1フレーム分、抽出し、抽出したフレームに対して、高周波成分を除去するLPF処理、補間、或いは間引きによるピッチシフト、及びFFTを順次、行う。次のステップ708では、FFTによって得られる各チャンネルの周波数成分を対象に、合成音声のフレームの位相を算出するためのタイムスケーリング処理を実行する。その実行後はステップ709に移行して、タイムスケーリング処理を実施した各チャンネルの周波数成分を対象にしたIFFT、そのIFFTにより得られる1フレーム分の合成音声データをRAM5上の出力バッファ29に格納された合成音声データにオーバーラップ加算を行う。ステップ710にはその後に移行する。
図2に示すフレーム抽出部22、LPF23、ピッチシフタ24、及びFFT部25は、上記ステップ707の処理を実行することで実現される。タイムスケーリング部26は、ステップ708の処理を実行することで実現される。IFFT部27、及びフレーム加算部28は、ステップ709の処理を実行することで実現される。
ステップ710では、1サンプリング分の合成音声データを出力すべきタイミングか否か判定する。そのタイミングであった場合、判定はYESとなり、次にステップ711で出力すべき合成音声データを出力バッファ29から読み出して楽音生成部9を介しD/A変換器10に送出し、更にステップ712でその他処理を実行した後、上記ステップ702に戻る。そうでない場合には、判定はNOとなり、次にステップ712の処理を実行する。
合成された合成音声データは楽音生成部9を介してD/A変換器10に送られる。このことから、楽音生成部9には、自身が生成した楽音の波形データを他から入力したデータとミックスする機能が搭載されている。
図8は、上記ステップ708として実行されるタイムスケーリング処理のフローチャートである。次に図8を参照して、そのスケーリング処理について詳細に説明する。そのスケーリング処理には、FFTを行うことで得られた各周波数チャンネルの周波数成分が渡される。その周波数成分は、上述したように、実数部と虚数部からなる。図2に示すタイムスケーリング部26は、このスケーリング処理を実行することで実現される。
先ず、ステップ801では、注目する周波数チャンネルを管理するための変数kに0を代入する。次のステップ802では、変数kの値で指定されるチャンネルの周波数成分から周波数振幅を計算する。その計算は、周波数成分の実数部をreal、虚数部をimgと表記すると、周波数振幅magは
mag=(real2+img21/2 ・・・ (21)
により計算される。
ステップ802に続くステップ803では、その周波数成分から位相を計算する。その位相をphase(=θ)と表記すると
phase=arctan(img/real) ・・・ (22)
により計算される。この位相phaseは折り畳まれたものである。それを計算した後はステップ804に移行する。
ステップ804では、周波数成分が存在するチャンネルをサーチするために周波数振幅magのピーク(peak)検出を実行する。より精細なピーク検出は別に実行することから、ここでは粗い検出を実行する。具体的には前後4チャンネルの周波数振幅magより周波数振幅magが大きいチャンネルをピークとして検出し登録する。
ステップ804の次に移行するステップ805では、直前フレーム間(現フレームと直前のフレーム間)の位相差分Δθを(4)式により算出する。続くステップ806では、折り畳まれている位相差分Δθを位相展開して位相差分ΔΘを求める。その位相展開は(10)式により行う。その位相展開後はステップ807に移行する。
ステップ807では、変数kの値をインクリメントする。次のステップ808では、変数kの値がFFT点数Nより小さいか否か判定する。全ての周波数チャンネルで周波数振幅mag等の計算を行った場合、その関係が満たされなくなることから、判定はNOとなってステップ809に移行し、そうでない場合には、判定はYESとなって上記ステップ802に戻る。それにより、全ての周波数チャンネルで周波数振幅mag等の計算を行うまでの間、ステップ802〜808で形成される処理ループを繰り返し行う。
ステップ809では、ステップ804の処理より精細にピーク検出を実行し、ピークのチャンネルを絞り込む。これは例えば、ピークの前後で周波数振幅magが最小となるチャンネルを抽出し、そのチャンネルの周波数振幅magがピークチャンネルの周波数振幅magの−14db以下となっているものを正式なピークとして特定することで行う。その判定の基準とする−14dbはハニング窓の振幅特性から設定したものである。
(18)式は
θ’i,k=ΔΘi,k((θ’i-1,B−θi-1,B)/ΔΘi,B+(ρ−1))
+θi,k ・・・ (23)
と変形することができる。
(23)式右辺にシンボルとして示す項は何れも、ステップ808の判定がNOとなった段階で全て用意されることになる。その判定となって移行するステップ809でのピーク検出は、チャンネルBを選択するために実施している。このことから、ステップ809に続くステップ810では、そのステップ809で検出したピークのなかで最低の周波数のチャンネルをチャンネルBとして採用し、チャンネル毎に(23)式を用いて合成音声の位相θ’を算出する。
ステップ803、810での計算結果は、次のフレームまでは少なくとも保存される。それにより、ステップ808の判定がNOとなった段階で(23)式右辺にシンボルとして示す項は全て用意されることになる。
上記タイムスケーリング処理の実行後に移行する図7のステップ709では、ステップ810で求めた位相θ’に従って各周波数チャンネルの周波数成分を操作した後、IFFTを行う。その操作は、例えば周波数振幅magを変更せずに、実数部real、虚数部imgの値を変更して、それらから求められる位相がその位相θ’と一致するように行う。そのような操作を行うことにより、各周波数チャンネルはステップ810で求めた位相θ’を持つ合成波形が合成されることとなる。
なお、本実施の形態では、ピッチスケーリングと併せてタイムスケーリングを行うようになっているが、タイムスケーリングのみを行うようにしても良い。音声としては、合成音声データによる合成音声のみを放音させるようにしているが、その元である元音声を放音できるようにしても良い。或いはそれらを共に放音できるようにしても良い。そのようにした場合には、元音声のピッチをシフトして合成音声データの合成を行うことにより、ハーモニー効果を付加した音声を放音させることができる。シフト量の異なる合成音データを複数、合成したときには、コード構成音を付加したような音声を放音させることができるようになる。これらは、例えば出力バッファ29に格納された合成音声データを、入力バッファ21に格納された元音声データと加算してD/A変換器10に送出することで実現させることができる。
基準とするチャンネルBの検出・決定は、ピークとして抽出されたチャンネルのなかで最低周波数のチャンネルを探すことで行うようにしているが、それ以外の方法を用いてチャンネルBを決定するようにしても良い。
<第2の実施の形態>
ピッチスケーリングでピッチシフトを行うと、そのピッチシフトに伴って合成音声のフォルマントの位置(周波数)は元音声とは異なる位置に移動する。その移動は、合成音声を不自然なものとするのが普通である。このことから、第2の実施の形態は、元音声のフォルマントを保存する形でピッチスケーリング(ピッチシフト)を行うことにより、より自然と感じられる合成音声を生成できるようにしたものである。
第2の実施の形態による音声分析合成装置は、第1の実施の形態と同様に、電子楽器に搭載されたものである。その電子楽器の構成は、第1の実施の形態による音声分析合成装置が搭載されたものと基本的に同じである。第2の実施の形態による音声分析合成装置の機能構成は、第1の実施の形態におけるそれと大部分が基本的に同じである。このようなことから、第1の実施の形態と基本的に同じものにはその第1の実施の形態で付した符号をそのまま用いつつ、第1の実施の形態から異なる部分についてのみ説明する。
図9は、第2の実施の形態による音声分析合成装置の機能構成図である。
第2の実施の形態では、LPF23によって高周波成分が除去されたフレームはFFT部25に入力される。それにより、タイムスケーリング部26は、ピッチをシフトする前のフレームからFFTの実行により得られる各周波数チャンネルの周波数成分を対象にタイムスケーリングを行う。
ピッチスケーリングファクタρの値がaであれば、ピッチシフトにより周波数はa倍され、逆に1フレーム分の音声データ(フレームサイズ)は1/a倍となる。第2の実施の形態では、最終的に得られる1フレーム分の音声データ(合成音声データ)が元のままとなるように、1フレーム分の元音声データをa倍にするためのタイムスケーリングをピッチシフトの前に行っている。タイムスケーリングを行った後の各周波数チャンネルの周波数成分はフォルマントシフト部91に送られる。
フォルマントシフト部91は、ピッチシフトに伴うフォルマントのシフトを補償するため、そのピッチシフトに伴うシフトを打ち消すようにフォルマントを予めシフトさせるものである。ピッチスケーリングファクタρの値がaであれば、フォルマントを1/aだけシフトさせる。そのための操作を行った後の各周波数チャンネルの周波数成分がIFFT部27に送られ、逆FFTにより時間座標上のデータに戻される。
そのようにして時間座標上のデータに戻された音声データは、タイムスケーリング部26が行うタイムスケーリングにより、ピッチスケーリングファクタρの値に応じて1フレーム分のデータ数が元のそれとは異なっている。ピッチシフタ24は、そのような音声データに対し、ピッチスケーリングファクタρの値に応じた補間、或いは間引きを行い、ピッチをシフトさせる。そのため、補間、或いは間引き後の1フレーム分の音声データは、最終的に元のまま、つまり元音声データのフレームサイズと同じとなる。補間、或いは間引き後の音声データが合成音声データとしてフレーム加算部28に送られる。その合成音声データでは、元音声データのフォルマントが保存されているため、聴感上、位相ズレ感を与えないとともに、自然なものとなる。
図10は、第2の実施の形態における全体処理のフローチャートである。次に図10を参照して、その全体処理について詳細に説明する。
その図10では、第1の実施の形態(図7)と基本的に処理内容が同じ処理ステップには同一の符号を付してある。ここでは、第1の実施の形態から異なる部分にのみ着目する形で説明する。
第2の実施の形態では、ステップ706の判定がYESとなるとステップ1001に移行する。そのステップ1001では、入力バッファ21に格納された元音声データを1フレーム分、抽出し、抽出したフレームに対して、高周波成分を除去するLPF処理、及びFFTを順次、行う。FFTを行った後はステップ708に移行して、図8に示すタイムスケーリング処理を実行する。その実行後にはステップ1002に移行する。
ステップ1002では、元音声のフォルマントを保存させるためにそのフォルマントを移動させるフォルマント移動処理を実行する。続くステップ1003では、フォルマント移動処理の実行により操作した後の各チャンネルの周波数成分を対象にしたIFFT、そのIFFTにより得られる1フレーム分の音声データを対象にした補間、或いは間引きによるピッチシフトを行い、そのピッチシフトにより得られた1フレーム分の合成音声データを、RAM5上の出力バッファ29に格納された合成音声データにオーバーラップ加算する。その後はステップ710に移行する。
第2の実施の形態では、ピッチシフタ24はステップ1003を実行することで実現される。フォルマントシフト部91は、ステップ1002を実行することで実現される。
図11は、上記ステップ1002として実行されるフォルマント移動処理のフローチャートである。次に図11を参照して、その移動処理について詳細に説明する。
先ず、ステップ1101では、各チャンネルの周波数振幅mag((21)式)からtilt成分を除去する。
一般的に音声信号からフォルマントによる共振周波数の影響を取り除いて得られる残差信号、すなわち声帯音源信号の周波数特性は周波数が高くなるほどなだらかに減衰する傾きであることが知られている。その傾きがtilt成分と呼ばれる。それにより、音声信号の周波数特性はこのtilt成分とフォルマントによる共振周波数の特性が重畳されたものとなっている。このようなことから、フォルマント成分のみを抽出する場合は、tilt成分を除去する必要がある。
tilt成分は、上述したように、声帯音源信号の周波数特性は周波数が高くなるほどなだらかに減衰する傾きであるのが普通である。このことから、音声データを一次程度の通過特性のハイパスフィルタ(HPF)に通せば良い。FFTを行った後では、各チャンネルの周波数振幅magに対する乗算として処理することができる。各チャンネルの周波数振幅magに乗算する値としては、例えば1/4周期のsin波を想定した値を採用することができる。
フォルマントを移動させた場合、周波数成分が存在するチャンネルからの漏れ出し成分やノイズ成分をフォルマントの移動によって強調してしまう可能性がある。そのような強調を行うと、ノイズの多い音声、或いは不自然な音声を合成してしまうことになる。このことから、上記のようにしてtilt成分を除去した後に移行するステップ1102では、一定値以下の周波数振幅magはノイズと見なし、その振幅magをより小さくさせる操作を行う。
本実施の形態では、周波数振幅magの最大値に対し、−58db以下となっている周波数振幅magを更に−26db減衰(低減)させる操作を行っている。それにより、一定値以下の周波数振幅magを全て0.05倍している。この操作を前処理として行うことにより、フォルマントをシフトしてもノイズ等を強調することは回避され、良好な結果を確実に得ることができる。そのように前処理を行うのは、つまり一定値以下の周波数振幅magを全て0にしないのは、そのような周波数振幅magを全て0にしてしまうと、逆に合成音声が不自然なものとなってしまうからである。このようなこともあって、強調すべきでないと考えられる周波数振幅magはフォルマントによる強調をキャンセルするように減衰させている。
減衰の対象とする周波数振幅magは、その最大値を基準にして決定しているが、固定値としても良い。その対象とする周波数振幅magの範囲は適宜、決定すれば良いものである。このことは、対象とする周波数振幅magを減衰させる度合い(程度)についても同様である。
ステップ1102に続くステップ1103では、上述の前処理を施した各チャンネルの周波数振幅magからフォルマントを抽出する。その抽出は、移動平均フィルタリング処理によって行っている。対応するチャンネルを下添字で表す周波数振幅、フォルマントをそれぞれA、F、移動平均フィルタリング処理(で模擬する移動平均フィルタ)の次数をMとすると、チャンネルkのフォルマントFkを求める移動平均フィルタリング処理は以下のように表現される。
Figure 0005163606
移動平均フィルタリング処理を行うことにより、チャンネル毎にフォルマントの概形が抽出される。そのような概形を抽出してフォルマントを特定するのは、ノイズ等によって他より突出した周波数振幅magをフォルマントとして抽出してしまうようなことをより回避するためである。つまり、フォルマントをより適切に抽出するためである。
移動平均フィルタで用いる次数は留意する必要がある。元音声がピッチの高い音であった場合、チャンネル(スペクトル)間の周波数間隔は広くなる。そのため、低い次数Mではフォルマントの概形を適切に抽出できない。抽出する概形に元のスペクトルの影響が強く反映してしまう。従って、必要十分となるような高い次数Mとする必要がある。
逆に元音声がピッチの低い音であった場合には、チャンネル(スペクトル)間の周波数間隔は狭く密となる。この場合には、高い次数Mではフォルマントの概形がつぶれた形となって、その概形を適切に抽出できなくなる。従って、次数Mは概形がつぶれない程度に低くする必要がある。
元音声としては様々なピッチのものがマイク7により入力される。このことから、本実施の形態では、元音声に適切な次数Mを必要に応じて設定する必要があるとして、次数Mを随時、設定(更新)するようにしている。具体的には、直前のステップ708でタイムスケーリング処理を実行することで検出した周波数振幅magのピークの状態により決定している。より具体的には、ステップ810で決定したベースチャンネルのインデクスをkとすると、実験により良好な結果が得られた以下の式で求められる次数Mを設定している。ただしM>32のときはM=32、M<8のときにはM=8を設定している。その式中の「INT」は括弧内の演算結果は整数で算出することを表している。
M=INT(k+3) ・・・ (25)
(25)式による次数Mの算出(設定)は移動平均フィルタリング処理の前に行っている。それにより、元音声のピッチに応じた適切な次数Mで常に移動平均フィルタリング処理を行うようにしている。そのような次数Mで移動平均フィルタリング処理を行うため、フォルマントは常に適切に抽出することができる。次数Mの設定は、周波数振幅magのピークの数に応じて、つまりその数が多いほど次数Mを低く、その数が少ないほど次数Mを高く設定する形で行っても良い。
ステップ1104には、移動平均フィルタリング処理によってフォルマント(の概形)を抽出した後に移行する。そのステップ1104では、抽出したフォルマントで各チャンネルの周波数振幅magを除算する。その除算結果は、線形予測分析における残差成分の周波数領域表現に相当する。
ステップ1104に続くステップ1105では、抽出したフォルマントを移動させるためのNeville補間処理を実行する。その実行後はステップ1106に移行して、シフトしたフォルマント成分を各チャンネルの残差成分に乗算する。一連の処理はその後に終了する。
上記乗算により、フォルマントを移動させる操作を行った後の各チャンネルの周波数成分が得られる。移動させたフォルマントは、ステップ1003でのピッチシフトにより元の位置に戻される。それにより、フォルマントが保存されることとなる。
図12は、上記ステップ1105として実行されるNeville補間処理のフローチャートである。次にその補間処理について、図12を参照して詳細に説明する。
上記ステップ1103で抽出されたフォルマントの各チャンネルの周波数振幅(フォルマント成分)は、例えばそのチャンネルに対応する周波数と共に配列変数y、xにそれぞれ代入されて保存される。補間処理で用いられるフォルマント成分数(例えば4)は変数Nに代入される。フォルマントを移動させるべき周波数(チャンネル)は元の周波数とピッチスケーリングファクタρの値からフォルマント成分毎に算出される。算出された周波数でのフォルマント成分は、算出された周波数の周辺のN個の、配列変数y、xの各要素に代入された値を参照して算出する。図12に示すNeville補間処理は、一つのフォルマント成分に着目する形で、移動させるべき周波数でのフォルマント成分を求める部分の処理を抜粋したものである。移動させるべき周波数を示す値は変数tに代入されている。
先ず、ステップ1201では、変数s1に0を代入する。次のステップ1202では、配列変数wの変数s1の値で指定される要素w[s1]に、配列変数yの変数s1の値で指定される要素y[s1]の値を代入し、変数s2に変数s1の値から1を減算した値を代入する。その後はステップ1203に移行して、変数s2の値が0以上か否か判定する。その値が0未満であった場合、判定はNOとなってステップ1206に移行する。そうでない場合には、判定はYESとなってステップ1204に移行する。
ステップ1204では、要素w[s2]に、以下の式により算出される値を代入する。その代入後は、ステップ1205で変数s2の値をデクリメントしてから上記ステップ1203に戻る。
w[s2]=w[s2+1]+(w[s2+1]−w[s2])×
(t−x[s1])/(x[s1]−x[s2]) ・・・ (26)
一方、ステップ1203の判定がNOとなって移行するステップ1206では、変数s1の値をインクリメントする。その次に移行するステップ1207では、変数s1の値が変数Nの値未満か否か判定する。変数s1の値が変数Nの値未満であった場合、判定はYESとなって上記ステップ1202に戻る。そうでない場合には、判定はNOとなり、ここで一連の処理を終了する。
このようにして、変数s1の値を順次、インクリメントしながら、要素w[s1]への要素y[s1]の値の代入、及び代入した値の更新が行われる。その結果、変数tのときのフォルマント成分が要素w[0]に最終的に代入される。ステップ1105では、フォルマント移動後にチャンネルに対応する周波数と一致する変数tを求め、その変数(周波数)tの周辺のN個のフォルマント成分を用いて、上述したような一連の処理を実行する。そして変数(周波数)tの値を各チャンネルに対応させて順次変更し、その都度、上述したような一連の処理を実行することにより、移動させるべき周波数でのフォルマント成分を全て求めるようになっている。
移動させるべき周波数で求めるフォルマント成分は、基本的には抽出したフォルマントに対する補間、或いは間引きを行う形で求められるものである。そのフォルマント成分はそれほど精密に求める必要は無いので、直線補間を採用しても良い。Neville補間の代わりに、Lagrange補間やNewton補間などといった別の補間法を採用しても良い。
なお、第2の実施の形態では、タイムスケーリングの後にピッチシフトを行うようにしているが、それらは逆の順序で行うようにしても良い。しかし、その場合には、タイムスケーリングを行う前に元音声の波形は変形させるため、その変形による影響は周波数振幅magのピーク検出に及ぶことになる。このことから、フォルマントの保存をより良好に行うには、ピッチシフトはタイムスケーリングの後に行うことが望ましい。
フォルマントの移動(シフト)は、ピッチシフトしてもフォルマントを保存させるために行っているが、例えば音質を変化させる目的でピッチシフトとは独立させてフォルマントの移動を行うようにしても良い。ピッチシフトした合成音声は、元音声と共に放音できるようにしても良い。
上述したような音声分析合成装置、或いはその変形例を実現させるようなプログラムは、CD−ROM、DVD、或いは光磁気ディスク等の記録媒体に記録させて配布しても良い。或いは、公衆網等で用いられる伝送媒体を介して、そのプログラムの一部、若しくは全部を配信するようにしても良い。そのようにした場合には、ユーザーはプログラムを取得してコンピュータなどのデータ処理装置にロードすることにより、そのデータ処理装置を用いて本発明を適用させた音声分析合成装置を実現させることができる。このことから、記録媒体は、プログラムを配信する装置がアクセスできるものであっても良い。
1 CPU
3 スイッチ部
4 ROM
5 RAM
7 マイク
8 A/D変換器
9 楽音生成部
10 D/A変換器
11 アンプ
12 スピーカ

Claims (3)

  1. 第1の音声波形を分析し、該分析結果を用いて第2の音声波形の合成を行う音声分析合成装置において、
    前記第1の音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出する周波数分析手段と、
    前記第1及び第2の音声波形夫々が現在のフレームの直前のフレームから現在のフレームに移行する間に、前記第1及び第2の音声波形間に生じた位相の変化量を位相較差量として、前記周波数チャンネルのなかの所定の周波数チャンネルを基準にして算出し、該位相較差量を用いる形で、現在のフレームにおける該第2の音声波形の位相を該周波数チャンネル毎に前記周波数分析手段が抽出した周波数成分を参照して算出する位相算出手段と、
    前記周波数分析手段が抽出した周波数成分から前記周波数チャンネル毎に周波数振幅を求める周波数振幅抽出手段と、
    前記周波数チャンネル毎に求めた周波数振幅の状態を基に、移動平均フィルタリング処理で用いる次数を必要に応じて変更するとともに、該変更された次数の移動平均フィルタリング処理により前記第1の音声波形のフォルマントを抽出するフォルマント抽出手段と、
    前記周波数分析手段が抽出した周波数成分に対する操作により前記抽出したフォルマントのシフトを行うとともに、前記周波数分析手段が抽出した周波数成分を前記位相算出手段が算出した位相に応じて周波数チャンネル毎に変換することにより得られた周波数成分を用いて前記第2の音声波形を合成する音声合成手段と、
    を具備することを特徴とする音声分析合成装置。
  2. 前記音声合成手段は、前記周波数成分に対する操作として、該周波数成分から求められる周波数振幅の値が所定値以下となっている周波数振幅をより小さい値とさせる操作を併せて行う、
    ことを特徴とする請求項記載の音声分析合成装置。
  3. 第1の音声波形を分析し、該分析結果を用いて第2の音声波形の合成を行う音声分析合成装置として用いられるコンピュータに実行させるプログラムであって、
    前記第1の音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出する周波数分析機能と、
    前記第1及び第2の音声波形夫々が現在のフレームの直前のフレームから現在のフレームに移行する間に、前記第1及び第2の音声波形間に生じた位相の変化量を位相較差量として、周波数チャンネルのなかの所定の周波数チャンネルを基準にして算出し、該位相較差量を用いる形で、現在のフレームにおける該第2の音声波形の位相を該周波数チャンネル毎に前記周波数分析機能により抽出した周波数成分を参照して算出する位相算出機能と、
    前記抽出した周波数成分から前記周波数チャンネル毎に周波数振幅を求める周波数振幅抽出機能と、
    前記周波数チャンネル毎に求めた周波数振幅の状態を基に、移動平均フィルタリング処理で用いる次数を必要に応じて変更するとともに、該変更された次数の移動平均フィルタリング処理により前記第1の音声波形のフォルマントを抽出するフォルマント抽出機能と、
    前記抽出した周波数成分に対する操作により前記抽出したフォルマントのシフトを行うとともに、前記抽出した周波数成分を前記位相算出機能が算出した位相に応じて周波数チャンネル毎に変換することにより得られた周波数成分を用いて前記第2の音声波形を合成する音声合成機能と、
    を実現させるためのプログラム。
JP2009167427A 2003-12-25 2009-07-16 音声分析合成装置、及びプログラム Expired - Fee Related JP5163606B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009167427A JP5163606B2 (ja) 2003-12-25 2009-07-16 音声分析合成装置、及びプログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003431630 2003-12-25
JP2003431630 2003-12-25
JP2009167427A JP5163606B2 (ja) 2003-12-25 2009-07-16 音声分析合成装置、及びプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004374090A Division JP4513556B2 (ja) 2003-12-25 2004-12-24 音声分析合成装置、及びプログラム

Publications (2)

Publication Number Publication Date
JP2009237589A JP2009237589A (ja) 2009-10-15
JP5163606B2 true JP5163606B2 (ja) 2013-03-13

Family

ID=41251509

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009167427A Expired - Fee Related JP5163606B2 (ja) 2003-12-25 2009-07-16 音声分析合成装置、及びプログラム

Country Status (1)

Country Link
JP (1) JP5163606B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014041240A (ja) * 2012-08-22 2014-03-06 Pioneer Electronic Corp タイムスケーリング方法、ピッチシフト方法、オーディオデータ処理装置およびプログラム
CN106205638B (zh) * 2016-06-16 2019-11-08 清华大学 一种面向音频事件检测的双层基音特征提取方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3321971B2 (ja) * 1994-03-10 2002-09-09 ソニー株式会社 音声信号処理方法
JP3497939B2 (ja) * 1996-02-15 2004-02-16 ローランド株式会社 効果装置
JP4455701B2 (ja) * 1999-10-21 2010-04-21 ヤマハ株式会社 音声信号処理装置および音声信号処理方法

Also Published As

Publication number Publication date
JP2009237589A (ja) 2009-10-15

Similar Documents

Publication Publication Date Title
US7672835B2 (en) Voice analysis/synthesis apparatus and program
US8706496B2 (en) Audio signal transforming by utilizing a computational cost function
RU2487426C2 (ru) Устройство и способ преобразования звукового сигнала в параметрическое представление, устройство и способ модификации параметрического представления, устройство и способ синтеза параметрического представления звукового сигнала
JP5655098B2 (ja) エンベロープ形状を使用してオーディオ信号を変更する装置及び方法
JP6791258B2 (ja) 音声合成方法、音声合成装置およびプログラム
Abe et al. Sinusoidal model based on instantaneous frequency attractors
Serra Introducing the phase vocoder
JP2008281776A (ja) 旋律抽出装置及び旋律抽出方法
Ottosen et al. A phase vocoder based on nonstationary Gabor frames
JP2018077283A (ja) 音声合成方法
JP5163606B2 (ja) 音声分析合成装置、及びプログラム
JP4513556B2 (ja) 音声分析合成装置、及びプログラム
US20090326951A1 (en) Speech synthesizing apparatus and method thereof
Verfaille et al. Adaptive digital audio effects
JP4455701B2 (ja) 音声信号処理装置および音声信号処理方法
JPH11259066A (ja) 音楽音響信号分離方法、その装置およびそのプログラム記録媒体
JP3447221B2 (ja) 音声変換装置、音声変換方法、および音声変換プログラムを記録した記録媒体
JP3706249B2 (ja) 音声変換装置、音声変換方法、および音声変換プログラムを記録した記録媒体
JP4963345B2 (ja) 音声合成方法及び音声合成プログラム
JP6834370B2 (ja) 音声合成方法
JP6683103B2 (ja) 音声合成方法
JP4816507B2 (ja) 音声分析合成装置、及びプログラム
JP2000010597A (ja) 音声変換装置及び音声変換方法
JP4468506B2 (ja) 音声データ作成装置および声質変換方法
JP2000003200A (ja) 音声信号処理装置及び音声信号処理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090730

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090730

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111018

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120529

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120806

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120817

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121203

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

Free format text: PAYMENT UNTIL: 20151228

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5163606

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees