(57)【要約】【課題】  フォルマント位置の操作をより軽い負荷で実現させるための技術を提供する。【解決手段】  Ａ／Ｄ変換器８から出力された音声データをフレーム単位で抽出し、高速フーリエ変換を行い、周波数振幅成分と位相成分に分解する。移動平均フィルタ部３０４によるフィルタリング前後の周波数成分の比は周波数振幅残差として算出し、その残差はシフト後の周波数振幅成分のフィルタリングにより得られる周波数振幅概形と乗算して周波数振幅成分を算出する。ピッチは、位相成分から算出した瞬時周波数をシフトすることで移動させる。そのようにして算出される周波数振幅成分とシフト後の瞬時周波数から得られる位相成分を用いて逆高速フーリエ変換を行い、フォルマント位置、更にはピッチを操作した音声データを生成する。【選択図】      図３
2005084661.tif 000002
【特許請求の範囲】
【請求項１】
第１の音声波形を分析し、該分析結果を用いて第２の音声波形の生成を行う音声分析生成装置において、
前記第１の音声波形を分析して第１の周波数振幅成分、及び位相成分を抽出する分析手段と、
周波数振幅成分のフィルタリングを行うフィルタ手段と、
前記第１の周波数振幅成分に対するフォルマントのシフト量を指示する指示手段と、
前記指示手段により指示されたシフト量に従いシフトを行うシフト手段と、
前記第１の周波数振幅成分に対し前記フィルタ手段がフィルタリングすることで得られる第２の周波数振幅成分で該第１の周波数振幅成分を除算することにより周波数振幅残差を算出する算出手段と、
前記シフト手段がシフトした第１の周波数振幅成分に対する前記フィルタ手段によるフィルタリング、及び前記第２の周波数振幅成分に対する前記シフト手段によるシフトのうちの一方を行うことで得られる第３の周波数振幅成分に前記周波数振幅残差を乗算する乗算手段と、
前記乗算手段が乗算を行うことで得られる第４の周波数振幅成分、及び前記位相成分を用いて前記第２の音声波形を生成する音声波形生成手段と、
を具備することを特徴とする音声分析生成装置。
【請求項２】
第１の音声波形を分析し、該分析結果を用いて第２の音声波形の生成を行う音声分析生成装置において、
前記第１の音声波形を分析して第１の周波数振幅成分、及び第１の位相成分を抽出する分析手段と、
周波数振幅成分のフィルタリングを行うフィルタ手段と、
前記周波数振幅成分に対しフォルマントのシフトを行う第１のシフト手段と、
前記第１の周波数振幅成分に対し前記フィルタ手段がフィルタリングすることで得られた第２の周波数振幅成分で該第１の周波数振幅成分を除算して得られる周波数振幅残差を算出する残差算出手段と、
前記第１の位相成分から瞬時周波数を算出する瞬時周波数算出手段と、
ピッチのシフト量を指示するピッチ指示手段と、
前記ピッチ指示手段が指示したシフト量に従って、前記瞬時周波数、及び周波数振幅残差をシフトする第２のシフト手段と、
前記第１のシフト手段がシフトした第１の周波数振幅成分に対する前記フィルタ手段によるフィルタリング、及び前記第２の周波数振幅成分に対する前記第１のシフト手段によるシフトのうちの一方を行うことで得られる第３の周波数振幅成分に、前記第２のシフト手段によりシフトされた周波数振幅残差を乗算して第４の周波数振幅成分を算出する振幅成分算出手段と、
前記第２のシフト手段によりシフトされた瞬時周波数から第２の位相成分を算出する位相成分算出手段と、
前記第４の周波数振幅成分、及び前記第２の位相成分を用いて前記第２の音声波形を生成する音声波形生成手段と、
を具備することを特徴とする音声分析生成装置。
【請求項３】
第１の音声波形を分析し、該分析結果を用いて第２の音声波形の生成を行う音声分析生成装置において、
前記第１の音声波形を分析して第１の周波数振幅成分、及び位相成分を抽出する分析手段と、
周波数振幅成分のフィルタリングを行うフィルタ手段と、
前記周波数振幅成分に対しフォルマントのシフトを行うシフト手段と、
ピッチを指示するピッチ指示手段と、
前記ピッチ指示手段が指示したピッチで声帯音源を模擬する音源波形を生成する音源波形生成手段と、
前記音源波形を分析して周波数振幅成分を抽出する他の分析手段と、
前記他の分析手段により前記音源波形から抽出される周波数振幅成分に、前記シフト手段がシフトした第１の周波数振幅成分に対する前記フィルタ手段によるフィルタリング、及び該フィルタ手段がフィルタリングした第１の周波数振幅成分に対する該シフト手段によるシフトのうちの一方を行うことで得られる第２の周波数振幅成分を乗算して第３の周波数振幅成分を算出する振幅成分算出手段と、
前記第３の周波数振幅成分、及び前記位相成分を用いて前記第２の音声波形を生成する音声波形生成手段と、
を具備することを特徴とする音声分析生成装置。
【請求項４】
前記分析手段は、高速フーリエ変換を用いて前記第１の音声波形の分析を行い、
前記音声波形生成手段は、逆高速フーリエ変換を用いて前記第２の音声波形を生成する、
ことを特徴とする請求項１、２、または３記載の音声分析生成装置。
【請求項５】
前記フィルタ手段は、移動平均フィルタとして機能するものである、
ことを特徴とする請求項１〜４の何れか１項に記載の音声分析生成装置。
【請求項６】
前記第２の音声波形を前記第１の音声波形に重畳して出力できる、
ことを特徴とする請求項１〜５の何れか１項に記載の音声分析生成装置。
【請求項７】
前記音源波形生成手段は、前記音源波形としてRosenberg 波を生成する、
ことを特徴とする請求項３〜６の何れか１項に記載の音声分析生成装置。
【請求項８】
第１の音声波形を分析し、該分析結果を用いて第２の音声波形の生成を行う音声分析生成装置に実行させるプログラムであって、
前記第１の音声波形を分析して第１の周波数振幅成分、及び位相成分を抽出する分析機能と、
周波数振幅成分のフィルタリングを行うフィルタ機能と、
前記第１の周波数振幅成分に対するフォルマントのシフト量を指示する指示機能と、
前記指示機能により指示されたシフト量に従いシフトを行うシフト機能と、
前記第１の周波数振幅成分に対し前記フィルタ機能によりフィルタリングすることで得られる第２の周波数振幅成分で該第１の周波数振幅成分を除算して得られる周波数振幅残差を算出する算出機能と、
前記シフト機能によりシフトした第１の周波数振幅成分に対する前記フィルタ機能によるフィルタリング、及び前記第２の周波数振幅成分に対する前記シフト機能によるシフトのうちの一方を行うことで得られる第３の周波数振幅成分に前記周波数振幅残差を乗算する乗算機能と、
前記乗算機能により乗算を行うことで得られる第４の周波数振幅成分、及び前記位相成分を用いて前記第２の音声波形を生成する音声波形生成機能と、
を実現させるためのプログラム。
【請求項９】
第１の音声波形を分析し、該分析結果を用いて第２の音声波形の生成を行う音声分析生成装置に実行させるプログラムであって、
前記第１の音声波形を分析して第１の周波数振幅成分、及び第１の位相成分を抽出する分析機能と、
周波数振幅成分のフィルタリングを行うフィルタ機能と、
前記周波数振幅成分に対しフォルマントのシフトを行う第１のシフト機能と、
前記第１の周波数振幅成分に対し前記フィルタ機能によりフィルタリングすることで得られる第２の周波数振幅成分で該第１の周波数振幅成分を除算して得られる周波数振幅残差を算出する残差算出機能と、
前記第１の位相成分から瞬時周波数を算出する瞬時周波数算出機能と、
ピッチのシフト量を指示するピッチ指示機能と、
前記ピッチ指示機能により指示したシフト量に従って、前記瞬時周波数、及び周波数振幅残差をシフトする第２のシフト機能と、
前記第１のシフト機能によりシフトした第１の周波数振幅成分に対する前記フィルタ機能によるフィルタリング、及び前記第２の周波数振幅成分に対する前記第１のシフト機能によるシフトのうちの一方を行うことで得られる第３の周波数振幅成分に、前記第２のシフト機能によりシフトされた周波数振幅残差を乗算して第４の周波数振幅成分を算出する振幅成分算出機能と、
前記第２のシフト機能によりシフトされた瞬時周波数から第２の位相成分を算出する位相成分算出機能と、
前記第４の周波数振幅成分、及び前記第２の位相成分を用いて前記第２の音声波形を生成する音声波形生成機能と、
を実現させるためのプログラム。
【請求項１０】
第１の音声波形を分析し、該分析結果を用いて第２の音声波形の生成を行う音声分析生成装置に実行させるプログラムであって、
前記第１の音声波形を分析して第１の周波数振幅成分、及び位相成分を抽出する分析機能と、
周波数振幅成分のフィルタリングを行うフィルタ機能と、
前記周波数振幅成分に対しフォルマントのシフトを行うシフト機能と、
ピッチを指示するピッチ指示機能と、
前記ピッチ指示機能により指示したピッチで声帯音源を模擬する音源波形を生成する音源波形生成機能と、
前記音源波形を分析して周波数振幅成分を抽出する他の分析機能と、
前記他の分析機能により前記音源波形から抽出される周波数振幅成分に、前記シフト機能によりシフトした第１の周波数振幅成分に対する前記フィルタ機能によるフィルタリング、及び該フィルタ機能によりフィルタリングした第１の周波数振幅成分に対する該シフト機能によるシフトのうちの一方を行うことで得られる第２の周波数振幅成分を乗算して第３の周波数振幅成分を算出する振幅成分算出機能と、
前記第３の周波数振幅成分、及び前記位相成分を用いて前記第２の音声波形を生成する音声波形生成機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声波形を分析し、その分析結果から音声波形を生成（合成）するための技術に関する。
【背景技術】
【０００２】
音声波形を分析し、その分析結果を用いて音声波形を合成する音声分析合成装置は、入力した音声波形に対し声質を変化させるといった音響効果を付与する用途でも利用されている。
その声質の変化は、例えば音声（例えば人声）のフォルマントを操作したり、或いは音声をバンドパスフィルタ（ＢＰＦ）に通してバンド別に振幅値を特定し、特定した振幅値から構成したフィルタに音声を通すことで行われる。前者の方式を採用した音声分析生成装置としては、例えば特許文献１に記載されたものがある。
【０００３】
その特許文献１に記載された従来の音声分析生成装置では、音声波形を分析して抽出したＬＰＣ（線形予測）係数をＬＳＰ（Line Spectrum Pare）係数に変換し、そのＬＳＰ係数に対して周波数変換を行うことにより、フォルマント位置を移動させていた。しかし、ＬＰＣ係数からＬＳＰ係数への変換やＬＰＣによるフィルタの極の算出では、高次代数方程式を解く必要から演算量が膨大となる。このため、処理が非常に重いという問題点があった。
【０００４】
その問題点により、処理時間を実用的なレベルにするには高性能な高価な処理システムを用意しなければならなかった（これは、特にリアルタイムで分析、生成（合成）を行う場合に強く要求される）。このことから、全体の製造コストを抑える意味からも、処理の負荷をより軽くすることが望まれていた。
【特許文献１】特開２００３−６６９８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の課題は、フォルマント位置の操作をより軽い負荷で実現させるための技術を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の第１〜第３の態様の音声分析生成装置は共に、第１の音声波形を分析し、該分析結果を用いて第２の音声波形の生成を行うことを前提とし、それぞれ以下の手段を具備する。
第１の態様の音声分析生成装置は、第１の音声波形を分析して第１の周波数振幅成分、及び位相成分を抽出する分析手段と、周波数振幅成分のフィルタリングを行うフィルタ手段と、第１の周波数振幅成分に対するフォルマントのシフト量を指示する指示手段と、指示手段により指示されたシフト量に従いシフトを行うシフト手段と、第１の周波数振幅成分に対しフィルタ手段がフィルタリングすることで得られる第２の周波数振幅成分で該第１の周波数振幅成分を除算することにより周波数振幅残差を算出する算出手段と、シフト手段がシフトした第１の周波数振幅成分に対するフィルタ手段によるフィルタリング、及び第２の周波数振幅成分に対するシフト手段によるシフトのうちの一方を行うことで得られる第３の周波数振幅成分に周波数振幅残差を乗算する乗算手段と、乗算手段が乗算を行うことで得られる第４の周波数振幅成分、及び位相成分を用いて第２の音声波形を生成する音声波形生成手段と、を具備する。
【０００７】
第２の態様の音声分析生成装置は、第１の音声波形を分析して第１の周波数振幅成分、及び第１の位相成分を抽出する分析手段と、周波数振幅成分のフィルタリングを行うフィルタ手段と、周波数振幅成分に対しフォルマントのシフトを行う第１のシフト手段と、第１の周波数振幅成分に対しフィルタ手段がフィルタリングすることで得られた第２の周波数振幅成分で該第１の周波数振幅成分を除算して得られる周波数振幅残差を算出する残差算出手段と、第１の位相成分から瞬時周波数を算出する瞬時周波数算出手段と、ピッチのシフト量を指示するピッチ指示手段と、ピッチ指示手段が指示したシフト量に従って、瞬時周波数、及び周波数振幅残差をシフトする第２のシフト手段と、第１のシフト手段がシフトした第１の周波数振幅成分に対するフィルタ手段によるフィルタリング、及び第２の周波数振幅成分に対する第１のシフト手段によるシフトのうちの一方を行うことで得られる第３の周波数振幅成分に、第２のシフト手段によりシフトされた周波数振幅残差を乗算して第４の周波数振幅成分を算出する振幅成分算出手段と、第２のシフト手段によりシフトされた瞬時周波数から第２の位相成分を算出する位相成分算出手段と、第４の周波数振幅成分、及び第２の位相成分を用いて第２の音声波形を生成する音声波形生成手段と、を具備する。
【０００８】
第３の態様の音声分析生成装置は、第１の音声波形を分析して第１の周波数振幅成分、及び位相成分を抽出する分析手段と、周波数振幅成分のフィルタリングを行うフィルタ手段と、周波数振幅成分に対しフォルマントのシフトを行うシフト手段と、ピッチを指示するピッチ指示手段と、ピッチ指示手段が指示したピッチで声帯音源を模擬する音源波形を生成する音源波形生成手段と、音源波形を分析して周波数振幅成分を抽出する他の分析手段と、他の分析手段により音源波形から抽出される周波数振幅成分に、シフト手段がシフトした第１の周波数振幅成分に対するフィルタ手段によるフィルタリング、及び該フィルタ手段がフィルタリングした第１の周波数振幅成分に対する該シフト手段によるシフトのうちの一方を行うことで得られる第２の周波数振幅成分を乗算して第３の周波数振幅成分を算出する振幅成分算出手段と、第３の周波数振幅成分、及び位相成分を用いて第２の音声波形を生成する音声波形生成手段と、を具備する。
【０００９】
なお、上記第１〜第３の態様において、上記分析手段は、第１の音声波形の分析を高速フーリエ変換を用いて行い、音声波形生成手段は、逆高速フーリエ変換を用いて第２の音声波形を生成する、ことが望ましい。上記フィルタ手段については、移動平均フィルタとして機能するものである、ことが望ましい。
【００１０】
また、第２の音声波形を第１の音声波形に重畳して出力できる、ことが望ましい。音源波形生成手段は、音源波形としてRosenberg 波を生成する、ことが望ましい。
本発明の第１〜第３の態様のプログラムは、上記第１〜第３の態様の音声分析生成装置をそれぞれ実現させるための機能を搭載している。
【発明の効果】
【００１１】
本発明は、第１の音声波形を分析して第１の周波数振幅成分、及び位相成分を抽出し、第１の周波数振幅成分をフィルタリングすることで得られる第２の周波数振幅成分で該第１の周波数振幅成分を除算することにより周波数振幅残差を算出し、シフトした第１の周波数振幅成分に対するフィルタリング、及び第２の周波数振幅成分のシフトのうちの一方を行うことで得られる第３の周波数振幅成分に周波数振幅残差を乗算して第４の周波数振幅成分を算出し、その第４の周波数振幅成分、及び位相成分を用いて第２の音声波形を生成する。
【００１２】
第３の周波数振幅成分を得るまでに行われる周波数振幅成分に対するシフトに伴い、フォルマント位置もシフトされる。位相成分に対する操作は行わないために、ピッチは実質的に維持される。このため、ピッチを変化させることなく、フォルマント位置を操作することができる。ＬＰＣによる極の移動やＬＳＰ係数への変換のために高次方程式を解くような膨大な演算量が必要な処理は行わなくて済むため、そのような処理を行う場合と比較して、処理全体の負荷は大幅に低減させることができる。その低減により、高価な高性能な処理システム（ＣＰＵ或いはＤＳＰ、などを含むもの）を採用しなくとも十分な処理速度が得られることとなる。
【００１３】
上記位相成分から瞬時周波数を算出し、その瞬時周波数、及び周波数振幅残差をシフトし、シフトした周波数振幅残差を第３の周波数振幅成分と乗算して第４の周波数振幅成分を算出し、第４の周波数振幅成分、及びシフトした瞬時周波数から得られる位相成分を用いて第２の音声波形を生成するようにした場合には、フォルマント位置の操作とともにピッチの操作（シフト）も同時に行うことができる。そのようにしても膨大な演算量が必要な処理は行わなくとも済むため、処理全体の負荷の増大は抑えられることとなる。
【００１４】
本発明は、第１の音声波形を分析して第１の周波数振幅成分、及び位相成分を抽出し、指示されたピッチで声帯音源を模擬する音源波形を生成し、その音源波形から抽出される周波数振幅成分に、シフトした第１の周波数振幅成分をフィルタリングするか、或いはフィルタリングした第１の周波数振幅成分に対しシフトすることで得られる第２の周波数振幅成分を乗算して第３の周波数振幅成分を算出し、その第３の周波数振幅成分、及び位相成分を用いて第２の音声波形を生成する。このため、フォルマント位置の操作とともにピッチの操作（シフト）も同時に行うことができる。膨大な演算量が必要な処理は行わなくとも済むため、そのような処理を行う場合と比較して、処理全体の負荷は大幅に低減させることができる。それにより、上記発明と同様の効果が得られる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施例について、図面を参照しながら詳細に説明する。
＜第１の実施例＞
図１は、本実施例による音声分析生成装置を搭載した電子楽器の構成図である。
その電子楽器は、図１に示すように、楽器全体の制御を行うＣＰＵ１と、複数の鍵を備えた鍵盤２と、各種スイッチを備えたスイッチ部３と、ＣＰＵ１が実行するプログラムや各種制御用データ等を格納したＲＯＭ４と、ＣＰＵ１のワーク用のＲＡＭ５と、例えば液晶表示装置（ＬＣＤ）や複数のＬＥＤなどを備えた表示部６と、特には図示しない端子に接続されたマイク７から入力されるアナログの音声信号のＡ／Ｄ変換を行いその音声データを出力するＡ／Ｄ変換器８と、ＣＰＵ１の指示に従い楽音発音用の波形データを生成する楽音生成部９と、その生成部９が生成した波形データのＤ／Ａ変換を行い、アナログのオーディオ信号を出力するＤ／Ａ変換器１０と、そのオーディオ信号の増幅を行うアンプ１１と、そのアンプ１１が増幅を行った後のオーディオ信号を音声に変換するスピーカ１２と、各種スライダを備えたスライダ部１３と、を備えて構成されている。それらの構成において、ＣＰＵ１、鍵盤２、スイッチ部３、ＲＯＭ４、ＲＡＭ５、表示部６、Ａ／Ｄ変換器８、楽音生成部９、及びスライダ部１３の間はバスによって接続されている。
【００１６】
上記スライダ部１３は、図２に示すように、マイク７により入力された音声のピッチのシフトを指示するためのピッチスライダ２１と、そのフォルマント位置（周波数）のシフトを指示するためのフォルマントスライダ２２と、を備えている。それにより、本実施例による音声分析生成装置は、マイク７により入力された音声のピッチ、或いはフォルマント位置を操作する音響効果を付加できるものとして実現されている。
【００１７】
そのスライダ部１３は、図２に示すスライダ２１、２２の他に、それらのつまみの位置を検出するための検出回路を備えたものである。これはスイッチ部３でも同様である。
マイク７から出力されたアナログの音声信号は、Ａ／Ｄ変換器（ＡＤＣ）８によってデジタルの音声データに変換される。そのＡ／Ｄ変換器８は、例えばサンプリング周波数２２，０５２ＨｚでＡＤ変換（サンプリング）を行う。以降、それがＡＤ変換して得られる音声データについては便宜的に「元音声データ」、或いは「元波形データ」と呼び、マイク７に入力された音声については「元音声」と呼ぶことにする。音声の入力は、ＣＤ−ＲＯＭやＤＶＤ、或いは光磁気ディスク等の記憶媒体を介して行っても良く、ＬＡＮ、或いは公衆網等の通信ネットワークを介して行っても良い。
【００１８】
図３は、本実施例による音声分析生成装置の機能構成図である。
Ａ／Ｄ変換器（ＡＤＣ）８が出力する元音声データは、例えばＲＡＭ５に確保された領域である入力バッファ３０１に格納される。フレーム抽出・窓かけ部３０２は、入力バッファ３０１から１フレーム分の元音声データを切り出し、それに窓関数、例えばハニング窓（Hanning Window）を乗算する。
【００１９】
高速フーリエ変換（ＦＦＴ）部３０３は、窓関数乗算後のフレームを対象にＦＦＴを行い、周波数振幅成分と位相成分を算出する。移動平均フィルタ部３０４は、その周波数振幅成分の平均値を出力するフィルタリングを行うものである。そのフィルタ点数はサンプリング周波数が２２，０５２Ｈｚでは７点が最適である。その場合、移動平均フィルタ部３０４は、７個の周波数振幅成分単位でフィルタリングを行うことになり、そのようなフィルタリングにより、周波数振幅成分の概形を示す値が出力されることとなる。その値がフォルマント成分に相当する。
【００２０】
逆数演算部３０６は、フィルタリング後の周波数振幅成分（以降「周波数振幅概形」と呼ぶ）の逆数を算出する。乗算器３０７は、その逆数にフィルタリング前の周波数振幅成分を乗算する。その乗算結果は、フィルタリングの前後における周波数振幅成分の比を表す値である。ここでは、それを周波数振幅残差と呼ぶことにする。
【００２１】
その周波数振幅残差は、ピッチ移動部３１０のシフト部３１０ｂによってシフト（周波数領域上のシフト）される。そのシフト後の周波数振幅残差が乗算器３１２に送られる。
フォルマント移動部３０５のシフト部３０５ａは、ＦＦＴ部３０３から受け取った周波数振幅成分をシフト（周波数領域上のシフトである）する。この操作は、音声のピッチをシフトする操作に相当し、そのシフトに伴い、元音声のフォルマント位置もシフトすることになる。しかし、位相成分の操作は行わないので、厳密にはピッチシフトとはならない。それにより、実質的にはフォルマント位置のみが操作されることとなる。
【００２２】
フォルマント移動部３０５は、その操作後の周波数振幅成分に対し、移動平均フィルタ部３０５ｂによりフィルタリングを更に行う。それにより得られる周波数振幅成分概形が乗算器３１２に送られる。
操作パネル３１１は、図２に示すスライダ２１、２２のつまみの位置に応じて、フォルマント位置、及びピッチのそれぞれのシフト量を指示するものである。例えばスライダ部１３、ＣＰＵ１、ＲＯＭ４、及びＲＡＭ５により実現される。本実施例では、それらのシフト量は、元音声のフォルマント位置、ピッチを基準として表す比率で指示するようにしている。以降「フォルマント位置、及びピッチのシフト量を表す比率はそれぞれ「フォルマントシフト比率」及び「ピッチシフト比率」と呼ぶことにする。
【００２３】
周波数振幅成分や位相成分は、インデクスにより管理される。このことから、それらのシフトは、インデクス値に比率を乗算してシフト後のインデクス値を算出し、算出したインデクス値に配置を変更することで行われる。
乗算器３１２は、フォルマント移動部３０５からの周波数振幅成分概形をシフト後の周波数振幅残差と乗算し、その乗算結果を出力する。その乗算結果として算出される周波数振幅成分は、ユーザが指定したピッチシフト、フォルマントシフトを施したものに相当する。
【００２４】
上記ＦＦＴ部３０３が抽出した位相成分は、瞬時周波数算出部３０８に送られる。その算出部３０８は、位相差計測法により、その位相成分、及び前フレームの位相成分（位相データ）を用いて瞬時周波数を算出する。
ピッチ移動部３１０のシフト部３１０ａは、ピッチシフト比率に応じて、瞬時周波数のシフトを行う。周波数位相差変換部３１３は、ソフト後の瞬時周波数を位相差に変換する。位相差積算部３１４は、その位相差を積分することで位相成分を生成する。
【００２５】
逆高速フーリエ変換（ＩＦＦＴ）部３１５は、位相差積算部３１４からの位相成分、及び乗算器３１２からの周波数振幅成分を用いて逆ＦＦＴを行う。その位相成分は、元音声のそれから操作を行ったものに相当するため、逆ＦＦＴにより生成される時間領域の音声データはフォルマント位置だけでなくピッチも変更したものとなる。窓掛けフレーム加算部３１６は、その音声データに対し、他のフレームの音声データに加算して重畳するために窓関数を乗算する。その乗算結果が加算器３１７に送られる。
【００２６】
その加算器３１７には、フレーム抽出・窓かけ部３０２が出力する窓関数乗算後の元音声データを増幅器３１８が増幅して得られる元音声データが送られる。このことから、加算器３１７は、その元音声データを窓掛けフレーム加算部３１６からの音声データと加算する。その加算後の音声データは、元音声に、フォルマント位置、或いはピッチを操作した元音声を付加したもの、つまりハーモニー効果を付加したものとなる。それが出力バッファ３１９に格納された音声データに加算され重畳される。その出力バッファ３１９は、例えばＲＡＭ５に確保された領域であり、それから読み出された音声データが楽音生成部９を介してＤ／Ａ変換器１０に出力されることにより、スピーカ１２からハーモニー効果が付加された音声が放音されることとなる。
【００２７】
本実施例による音声分析生成装置は、上述したようにして、元音声データをＦＦＴして周波数振幅成分と位相成分とに分け、ピッチ移動部３１０によるシフトを行わない場合、周波数振幅成分のシフト操作のみを行うことによりフォルマント位置を移動させる。このため、ＬＰＣによる極の移動やＬＳＰ係数への変換のために高次方程式を解く場合と比較して、処理全体の負荷は大幅に低減させることができる。その低減により、処理時間は１／４以下にまで短縮することが確認された。また、位相成分を操作することにより、フォルマント位置の他にピッチも操作することができる。このため、元音声を様々に変化させた音声を生成することができる。位相成分の操作にも膨大な演算量は必要としないが、その操作を行わないようにした場合には、処理全体の負荷はより低減させることができる。
【００２８】
以降は、その音声変換装置を実現させるための電子楽器の動作について、図４〜図８に示す各種フローチャートを参照して詳細に説明する。
図４は、全体処理のフローチャートである。始めに図４を参照して、その全体処理について詳細に説明する。なお、その全体処理は、ＣＰＵ１が、ＲＯＭ４に格納されたプログラムを実行して電子楽器のリソースを使用することにより実現される。
【００２９】
先ず、ステップ４０１では、電源がオンされたことに伴い、初期化処理を実行する。続くステップ４０２では、スイッチ部３を構成するスイッチへのユーザの操作に対応するためのスイッチ処理を実行する。そのスイッチ処理は、例えばスイッチ部３を構成する検出回路に各種スイッチの状態を検出させてその検出結果を受け取り、その検出結果を解析して状態が変化したスイッチの種類、及びその変化を特定して行われる。
【００３０】
ステップ４０２に続くステップ４０３では、鍵盤２へのユーザの操作に対応するための鍵盤処理を実行する。その鍵盤処理を実行することにより、鍵盤２への演奏操作に応じて楽音がスピーカ１２から放音される。ステップ４０４にはその後に移行する。
ステップ４０４では、図２に示すスライダ２１、２２への操作に対応するためのスライダ処理を実行する。続くステップ４０５では、表示部６を構成するＬＣＤ、或いはＬＥＤを駆動してユーザに提供すべき情報を提供するといったことを実現するためのその他処理を実行する。その実行後は上記ステップ４０２に戻る。それにより、電源がオンされている間、ステップ４０２〜４０５で形成される処理ループを繰り返し実行する。
【００３１】
図５は、上記ステップ４０４として実行されるスライダ処理のフローチャートである。スライダ部１３を構成する検出回路から受け取った検出結果を解析した後に行われる処理の流れを表したものである。次に図５を参照して、そのスライダ処理について詳細に説明する。
【００３２】
先ず、ステップ５０１では、ピッチスライダ２１のつまみの位置が変化したか否か判定する。ユーザがそのつまみの位置を変化させた場合、解析によりそのことが判明することから、判定はＹＥＳとなり、ステップ５０２で変数ＰｉｔｃｈＲａｔｉｏに代入のピッチシフト比率の設定（更新）を行った後、ステップ５０３に移行する。そうでない場合には、判定はＮＯとなり、次にそのステップ５０３に移行する。
【００３３】
ステップ５０３では、フォルマントスライダ２２のつまみの位置が変化したか否か判定する。ユーザがそのつまみの位置を変化させた場合、同様に判定はＹＥＳとなり、ステップ５０４で変数ＦｏｒｍａｎｔＲａｔｉｏに代入のフォルマントシフト比率の設定（更新）を行った後、一連の処理を終了する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００３４】
このようにして、ユーザがスライダ２１、或いは２２のつまみの位置を変化させると、つまみの位置を変化させたスライダの種類、及びその位置に応じてピッチシフト比率、或いはフォルマントシフト比率が更新される。それにより、ユーザはピッチシフト量、及びフォルマント位置のシフト量を指定できるようになっている。なお、上記変数の値の更新は、例えば予め設定したつまみの位置と設定すべき比率の関係を参照して行うようになっている。
【００３５】
図６は、楽音タイマインタラプト処理のフローチャートである。これは、元音声データの分析、及び音声データの生成（合成）を行うために、例えばサンプリング周期で発生する割り込み信号により実行される処理である。例えば図４に示すスイッチ処理において、音声データの生成を指示するためのスイッチが操作されたと判定したときに割り込み（実行）禁止が解除され（割り込みが有効とされ）、その生成の禁止を指示するためのスイッチが操作されたと判定したときに割り込みが禁止される（割り込みが無効とされる）ようになっている。次に図６を参照して、そのタイマインタラプト処理について詳細に説明する。
【００３６】
先ず、ステップ６０１では、Ａ／Ｄ変換器８から出力される元音声データの入力バッファ３０１への書き込みを行う。続くステップ６０２では、フレーム処理タイミングか否か判定する。そのタイミングであった場合、判定はＹＥＳとなってステップ６０３に移行し、そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００３７】
生成した音声データは、設定されたオーバーラップファクタの値に従って既に生成されたフレームの音声データと加算される。このことから、その処理タイミングは、サンプリング周波数、オーバーラップファクタの値から決定される周期で到来する。
ステップ６０３では、入力バッファ３０１から１フレームサイズの元音声データを抽出し、窓関数（例えばハニング窓）を乗算する。次のステップ６０４では、乗算後のフレームを対象にＦＦＴを行い、周波数信号成分と位相成分に分ける。その次に移行するステップ６０５では、周波数信号成分のフィルタリング処理を行い、そのフィルタリング処理前後の周波数振幅成分の比（＝フィルタリング処理前／フィルタリング処理後）である周波数振幅残差を算出する。ステップ６０６にはその後に移行する。
【００３８】
ステップ６０６では、変数ＦｏｒｍａｎｔＲａｔｉｏに代入されたフォルマントシフト比率に応じたフォルマント位置の移動を実現させるためのフォルマントシフト処理を実行する。その実行後は、その実現のためにシフトが行われた周波数振幅成分を対象にフィルタリング処理を行うことで周波数振幅概形を算出する周波数振幅概形算出処理を実行する（ステップ６０７）。
【００３９】
ステップ６０７に続くステップ６０８では、ステップ６０４で得られた位相成分、及び前フレームの位相成分を用いて瞬時周波数を算出する瞬時周波数算出処理を実行する。その実行後に移行するステップ６０９では、算出された瞬時周波数、及びステップ６０５で算出された周波数振幅残差のシフトをそれぞれ行うピッチシフト処理を実行する。その後は、ステップ６０９のピッチシフト処理でシフトが行われた周波数振幅残差をステップ６０７で算出した周波数振幅概形と乗算する周波数振幅算出処理をステップ６１０で実行してからステップ６１１に移行する。
【００４０】
ステップ６１１では、ステップ６０９のピッチシフト処理でシフトが行われた瞬時周波数を位相差に変換する周波数位相差変換処理を実行する。続くステップ６１２では、その位相差を積分して位相成分を算出する位相差積算処理を実行する。その次のステップ６１３では、ステップ６１２で算出した位相成分、及びステップ６１０で算出した周波数振幅成分を用いて逆ＦＦＴを行う。その逆ＦＦＴにより１フレーム分の時間領域の音声データ（フォルマント位置、或いはピッチがシフト操作された音声データ）を生成した後はステップ６１４に移行する。
【００４１】
ステップ６１４では、生成した音声データに窓関数を乗算し、その乗算結果にステップ６０３で窓関数を乗算した元音声データを加算する。その次に移行するステップ６１５では、加算後の音声データ（ハーモニー効果が付加された音声データ）を出力バッファ３１９に既に格納された音声データに加算して重畳する。その後は、ステップ６１６で出力バッファ３１９から音声データを読み出して楽音生成部９に送出してから、一連の処理を終了する。
【００４２】
このようにして、楽音タイマインタラプト処理を実行することにより、フォルマント位置、更にはピッチが操作された音声データが生成され、その音声データが元音声データに加えられる。それにより、元音声にフォルマント位置、更にはピッチが操作された音声を同時に発音させる形でハーモニー効果が付加される。
【００４３】
以降は、そのタイマインタラプト処理内で実行されるサブルーチン処理について図７、及び図８に示す各フローチャートを参照して詳細に説明する。
図７は、上記ステップ６０６として実行されるフォルマントシフト処理のフローチャートである。始めに図７を参照して、そのシフト処理について詳細に説明する。
【００４４】
図６に示す楽音タイマインタラプト処理において、ステップ６０４のＦＦＴを行うことで得られた周波数振幅成分は１次元の配列変数Ｍａｇの各要素に代入される。その要素を指定する添字の値はインデクス値に対応する。このことから、周波数振幅成分のシフトは、シフト後の周波数振幅成分を代入する１次元の配列変数ＳｈｉｆｔＭａｇを用意して、配列変数Ｍａｇの要素に代入された周波数振幅成分を代入すべき配列変数ＳｈｉｆｔＭａｇの要素を特定して代入することで行っている。
【００４５】
先ず、ステップ７０１では、変数ｉに０を代入する。続くステップ７０２では、変数ＳｈｉｆｔＩｄｘに、変数ｉの値と変数ＦｏｒｍａｎｔＲａｔｉｏの値の乗算結果を四捨五入した値（＝ＩＮＴ（ｉ×ＦｏｒｍａｎｔＲａｔｉｏ））を代入し、変数Ｎｅｘｔには、変数ｉの値に１を加算した値と変数ＦｏｒｍａｎｔＲａｔｉｏの値の乗算結果を四捨五入した値（＝ＩＮＴ（（ｉ＋１）×ＦｏｒｍａｎｔＲａｔｉｏ））を代入する。
【００４６】
ステップ７０３では、変数ＳｈｉｆｔＩｄｘの値がフレームサイズＦＦＴ＿ＳＩＺＥの１／２の値より小さいか否か判定する。その１／２の値より変数ＳｈｉｆｔＩｄｘの値が小さくなかった場合、判定はＮＯとなってステップ７０６に移行する。そうでない場合には、判定はＹＥＳとなってステップ７０４に移行する。
【００４７】
周波数振幅成分のフレームサイズの後半部分は前半部分の折り返しとなる。ステップ７０３の判定を行うのはこのためである。
ステップ７０４では、配列変数ＳｈｉｆｔＭａｇの変数ＳｈｉｆｔＩｄｘの値で指定される要素ＳｈｉｆｔＭａｇ［ＳｈｉｆｔＩｄｘ］に、配列変数Ｍａｇの変数ｉの値で指定される要素Ｍａｇ［ｉ］の値を代入し、変数ＳｈｉｆｔＩｄｘの値をインクリメントする。その次に移行するステップ７０５では、変数ＳｈｉｆｔＩｄｘの値が変数Ｎｅｘｔの値より小さいか否か判定する。前者が後者より小さい場合、判定はＹＥＳとなって上記ステップ７０３に戻る。そうでない場合には、判定はＮＯとなってステップ７０６に移行する。
【００４８】
ステップ７０６では、変数ｉの値をインクリメントする。続くステップ７０７では、変数ｉの値がフレームサイズＦＦＴ＿ＳＩＺＥの１／２の値より小さいか否か判定する。その１／２の値より変数ｉの値が小さくなかった場合、判定はＮＯとなり、ここで一連の処理を終了する。そうでない場合には、判定はＹＥＳとなって上記ステップ７０２に戻る。それにより、配列変数Ｍａｇの各要素に代入された周波数振幅成分のなかで配列変数ＳｈｉｆｔＭａｇの要素に代入すべき周波数成分を全て代入させる。
【００４９】
図８は、図６に示す楽音タイマインタラプト処理内でステップ６０９として実行されるピッチシフト処理のフローチャートである。次に図８を参照して、そのシフト処理について詳細に説明する。
図６に示す楽音タイマインタラプト処理において、ステップ６０５で算出した周波数振幅残差は１次元の配列変数ＲｅｓＭａｇの各要素に代入され、ステップ６０８で算出した瞬時周波数は１次元の配列変数Ｆｒｅｑの各要素に代入される。それらの要素を指定する添字の値はインデクス値に対応する。このことから、それらのシフトはフォルマントシフト処理における周波数振幅成分のシフトと同様に行われる。シフト後の周波数振幅残差、瞬時周波数は、１次元の配列変数ＳｈｉｆｔＲｅｓＭａｇの要素、１次元の配列変数ＳｈｉｆｔＦｒｅｑの要素にそれぞれ代入される。
【００５０】
先ず、ステップ８０１では、変数ｉに０を代入する。続くステップ８０２では、変数ＳｈｉｆｔＩｄｘに、変数ｉの値と変数ＰｉｔｃｈＲａｔｉｏの値の乗算結果を四捨五入した値（＝ＩＮＴ（ｉ×ＰｉｔｃｈＲａｔｉｏ））を代入し、変数Ｎｅｘｔには、変数ｉの値に１を加算した値と変数ＰｉｔｃｈＲａｔｉｏの値の乗算結果を四捨五入した値（＝ＩＮＴ（（ｉ＋１）×ＰｉｔｃｈＲａｔｉｏ））を代入する。
【００５１】
ステップ８０３では、変数ＳｈｉｆｔＩｄｘの値がフレームサイズＦＦＴ＿ＳＩＺＥの１／２の値より小さいか否か判定する。その１／２の値より変数ＳｈｉｆｔＩｄｘの値が小さくなかった場合、判定はＮＯとなってステップ８０８に移行する。そうでない場合には、判定はＹＥＳとなってステップ８０４に移行する。
【００５２】
ステップ８０４では、配列変数ＳｈｉｆｔＲｅｓＭａｇの変数ＳｈｉｆｔＩｄｘの値で指定される要素ＳｈｉｆｔＲｅｓＭａｇ［ＳｈｉｆｔＩｄｘ］に、配列変数ＲｅｓＭａｇの変数ｉの値で指定される要素ＲｅｓＭａｇ［ｉ］の値を代入する。続くステップ８０５では、配列変数ＳｈｉｆｔＦｒｅｑの変数ＳｈｉｆｔＩｄｘの値で指定される要素ＳｈｉｆｔＦｒｅｑ［ＳｈｉｆｔＩｄｘ］に、配列変数Ｆｒｅｑの変数ｉの値で指定される要素Ｆｒｅｑ［ｉ］の値と変数ＰｉｔｃｈＲａｔｉｏの値の乗算結果を代入する。ステップ８０６にはその代入後に移行する。
【００５３】
ステップ８０６では、変数ＳｈｉｆｔＩｄｘの値をインクリメントする。その次に移行するステップ８０７では、変数ＳｈｉｆｔＩｄｘの値が変数Ｎｅｘｔの値より小さいか否か判定する。前者が後者より小さい場合、判定はＹＥＳとなって上記ステップ８０３に戻る。そうでない場合には、判定はＮＯとなってステップ８０８に移行する。
【００５４】
ステップ８０８では、変数ｉの値をインクリメントする。続くステップ８０９では、変数ｉの値がフレームサイズＦＦＴ＿ＳＩＺＥの１／２の値より小さいか否か判定する。その１／２の値より変数ｉの値が小さくなかった場合、判定はＮＯとなり、ここで一連の処理を終了する。そうでない場合には、判定はＹＥＳとなって上記ステップ８０２に戻る。
【００５５】
なお、本実施例では、乗算器３１２はシフト部３１０ｂからの周波数振幅算差を移動平均フィルタ部３０５ｂからの周波数振幅概形と乗算するようになっているが、その周波数振幅概形は移動平均フィルタ部３０４がフィルタリングして得られる周波数振幅概形をシフトしたものであっても良い。そのフィルタリングは、移動平均フィルタによるものでなくとも良く、他の低域通過フィルタによるものであっても良い。
【００５６】
周波数振幅成分等のシフトは、インデクス値に着目して、配列変数の要素の値を変更せずに行っているが、ネビル補間やラグランジュ補間等の高次補間により行っても良い。元音声に重畳する音声は一つの音声のみとしているが、フォルマント位置、更にはピッチを変えて複数の音声を重畳するようにしても良い。
＜第２の実施例＞
上記第１の実施例では、ピッチをシフトするために周波数振幅残差のシフトを行っている。これに対し、第２の実施例は、そのピッチのシフトを他の方法で実現させるようにしたものである。
【００５７】
第２の実施例による音声分析生成装置を搭載した電子楽器の構成は基本的に第１の実施例におけるそれと同じである。動作も大部分は同じか、或いは比較的に大きな差がない。このようなことから、同じ、或いは区別するほどの相違のないものについては、第１の実施例の説明で付した符号をそのまま用いつつ、第１の実施例から異なる部分に着目して説明を行うこととする。
【００５８】
図９は、第２の実施例による音声分析生成装置の機能構成図である。始めに図９を参照して、その機能的構成、及び各部の動作について詳細に説明する。その図９において、第１の実施例と同じ、或いは区別するほどの相違のないものについては同一の符号を付している。
【００５９】
第２の実施例では、図９に示すように、周波数振幅残差を算出する代わりに、ピッチを有する、声帯音源波形を模擬したRosenberg 波をRosenberg 波生成部９０１により生成するようになっている。その生成部９０１は、操作パネル３１１から指示されたピッチでRosenberg 波を生成する。
【００６０】
ＦＦＴ部９０２は、生成部９０１が生成したRosenberg 波を対象にＦＦＴを行い、周波数振幅成分を乗算器３１２に送る。それにより、乗算器３１２は、その周波数振幅成分とフォルマント移動部３０５の移動平均フィルタ部３０５ｂからの周波数振幅概形とを乗算し、その乗算結果をＩＦＦＴ部３１５に送る。そのＩＦＦＴ部３１５は、その乗算結果である周波数振幅成分とＦＦＴ部３０３からの位相成分を用いて逆ＦＦＴを行い、音声データを生成する。
【００６１】
Rosenberg 波は様々なピッチで生成することができる。このため、そのRosenberg 波を生成してそれから得られる周波数振幅成分を周波数振幅概形と乗算した周波数振幅成分を逆ＦＦＴに用いることにより、フォルマント位置の操作と併せてそのピッチをシフトさせることができる。そのRosenberg 波の生成に重い負荷の処理を行わなくとも済むため、第１の実施例から負荷が重くなるのを回避しつつ、それらを実現させることができる。この第２の実施例では、ボコーダーやピッチコレクトのような使い方をすることもできる。
【００６２】
第２の実施例による音声変換装置を実現させるための電子楽器の動作については、楽音タイマインタラプト処理（図６参照）が第１の実施例から比較的に大きく異なっている。このことから、そのタイマインタラプト処理についてのみ、図１０に示すそのフローチャートを参照して詳細に説明する。ここでは、第１の実施例と同じ符号を付したステップの処理についての説明は基本的に省略する。
【００６３】
第２の実施例では、ステップ６０７で周波数振幅概形を算出すると、次にステップ１００１に移行する。そのステップ１００１では、ユーザがピッチスライダ２１により指示したピッチでRosenberg 波を生成する。それに続くステップ１００２では、そのRosenberg 波を対象にＦＦＴを行い、周波数振幅成分を抽出する。その後はステップ１００３に移行する。
【００６４】
ステップ１００３では、ステップ１００２で抽出した周波数振幅成分とステップ６０７で算出した周波数振幅概形を乗算して周波数振幅成分を算出する。次のステップ１００４では、その周波数振幅成分、及びステップ６０４で抽出した位相成分を用いて逆ＦＦＴを行い、音声データを生成する。その後はステップ６１４に移行して、それ以降の処理を同様に実行する。
【００６５】
なお、本実施例（第１及び第２の実施例）は、電子楽器に搭載された音声分析生成装置に本発明を適用したものであるが、本発明を適用できる音声分析生成装置はそのような音声分析生成装置に限定されるわけではない。本発明は音声分析生成装置が搭載された装置の種類や用途などに係わらず、幅広く適用できるものである。
【００６６】
フォルマント位置のシフト量やピッチのシフト量は共にユーザが指定するようにしているが、それらは自動的に指定させるようにしても良い。その指定方法や指定させる手段等をユーザが選択できるようにしても良い。
上述したような音声分析生成装置、或いはその変形例を実現させるようなプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ、或いは光磁気ディスク等の記録媒体に記録させて配布しても良い。或いは、公衆網等で用いられる伝送媒体を介して、そのプログラムの一部、若しくは全部を配信するようにしても良い。そのようにした場合には、ユーザーはプログラムを取得してコンピュータなどのデータ処理装置にロードすることにより、そのデータ処理装置を用いて本発明を適用させた音声分析生成装置を実現させることができる。このことから、記録媒体は、プログラムを配信する装置がアクセスできるものであっても良い。
【図面の簡単な説明】
【００６７】
【図１】本実施例による音声分析生成装置を搭載した電子楽器の構成図である。
【図２】スライダ部１３が備えたスライダを示す図である。
【図３】第１の実施例による音声分析生成装置の機能構成図である。
【図４】全体処理のフローチャートである。
【図５】スライダ処理のフローチャートである。
【図６】楽音タイマインタラプト処理のフローチャートである。
【図７】フォルマントシフト処理のフローチャートである。
【図８】ピッチシフト処理のフローチャートである。
【図９】第２の実施例による音声分析生成装置の機能構成図である。
【図１０】楽音タイマインタラプト処理のフローチャートである（第２の実施例）。
【符号の説明】
【００６８】
１    ＣＰＵ
３    スイッチ部
４    ＲＯＭ
５    ＲＡＭ
７    マイク
８    Ａ／Ｄ変換器
９    楽音生成部
１０    Ｄ／Ａ変換器
１１    アンプ
１２    スピーカ
１３    スライダ部
【図１】
2005084661.tif 000003
【図２】
2005084661.tif 000004
【図３】
2005084661.tif 000005
【図４】
2005084661.tif 000006
【図５】
2005084661.tif 000007
【図６】
2005084661.tif 000008
【図７】
2005084661.tif 000009
【図８】
2005084661.tif 000010
【図９】
2005084661.tif 000011
【図１０】
2005084661.tif 000012