(57)【要約】      （修正有）【課題】波動の伝播特性を忠実に模擬しつつ、その変化する伝播特性に容易に対応することが可能な波動合成装置を提供する。【解決手段】波動を表すパルス列を生成するパルス列生成部と、波動が伝播する媒体を電子回路により近似的に模擬し、パルス列が入力され、媒体の 波動伝播特性に応じたパルス列を出力する波動伝播特性シミュレーション回路とを有する。媒体を波動が伝播する伝播時間と電子回路の入出力間のパル ス信号列の伝達時間とが関連付けられるように、電子回路が構成される。【選択図】図１
2007233379.tif 000002
【特許請求の範囲】
【請求項１】
波動を表すパルス列を生成するパルス列生成部と、
波動が伝播する媒体を電子回路により近似的に模擬し、前記パルス列が入力され、前記媒体の波動伝播特性に応じたパルス列を出力する波動伝播特性シミュレーション回路とを有する波動合成装置であって、
前記媒体を波動が伝播する伝播時間と前記電子回路の入出力間のパルス信号列の伝達時間とが関連付けられるように、前記電子回路が構成されている
ことを特徴とする波動合成装置。
【請求項２】
前記電子回路は、パルス列処理回路であり、その入出力間でのパルス列伝達時間が、前記媒体を波動が伝播する伝播時間に関連付けられて設定されている
ことを特徴とする請求項１記載の波動合成装置。
【請求項３】
前記波動が伝播する系における波動の反射、減衰、共鳴のうちの少なくとも一つの物理現象を模擬するように、前記電子回路が構成されている
ことを特徴とする請求項１または２記載の波動合成装置。
【請求項４】
前記電子回路が、
媒体中での波動の減衰を表す減衰パラメータを設定する減衰パラメータ設定部と、
波動を表すパルス列が入力され、前記減衰パラメータに基づき、減衰された波動を表すパルス列を出力するパルス列処理部とを有し、波動の減衰を模擬する
ことを特徴とする請求項１または２記載の波動合成装置。
【請求項５】
前記電子回路が、
前記波動が伝播する系における順方向波動を表す順方向パルス列と、
この順方向波動の反射波を表す反対方向パルス列とを合成するパルス列合成部とを有し、
波動の反射を模擬する
ことを特徴とする請求項１または２記載の波動合成装置。
【請求項６】
前記電子回路が、
パルス列を分波するパルス列分波部と、
このパルス列分波部での分波割合を制御するパルス列分波制御部とを有する
ことを特徴とする請求項１または２記載の波動合成装置。
【請求項７】
前記電子回路が、
パルス列を合成するパルス列合成部と、
このパルス列合成部での合成割合を制御するパルス列合成制御部とを有する
ことを特徴とする請求項１または２記載の波動合成装置。
【請求項８】
前記波動が音波、前記媒体が空気、前記電子回路がシフトレジスタを含む回路であり、
前記シフトレジスタの段数が、そのクロック周波数および空気媒体を音波が伝播する伝播時間に基づいて決定される
ことを特徴とする請求項１から６の何れかに記載の波動合成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音波などの波動を合成する波動合成装置に関する。
【背景技術】
【０００２】
１９５０年頃より、音声合成を目指して、音の導波管をモデル化した格子形状の回路で表現し、そこに伝播するアナログ波（電流波、電圧波）をＺ変換し、回路の零点、極を用いて伝達特性を解析していた。
【０００３】
またその後、線形予測分析など多くの音声分析手法が提案されてきた。この方法は、基本的特性を解析するには適しているが、形状が複雑な場合には、解析が困難である。そして、合成された音声は、不自然なロボット声となる。
このロボット声になる原因としては、連続な周期音をフーリエ級数で展開し、三角波に分けた基本波を重ね合わせることで、任意の波を合成する技術を利用していることにある。
【０００４】
したがって、従来の技術では、原理的に高調波を取り除くことは不可能である。フーリエ展開の代わりにＷａｖｅｌｅｔ展開を利用する技術も知られている。 フーリエ展開よりは良好な結果が得られると考えられる。しかし、基本波で合成することに変わりはなく、たとえば、人間の声道のような複雑な過程で発生した 波形を基本波で合成すると、その合成波形の形には限界がある。
【０００５】
また、模型による人工声道を使用し、より自然な音声を再現できるようにしたもの、あるいは特許文献１に開示されているような人間の声帯の振動をバネ−質量モデルよりなる物理モデルにより模擬する手法などが提案されている。
【０００６】
【特許文献１】特開２００３−５８１７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来技術によるような人工声道の使用、機械的物理モデルでの模擬には、いったん模型またはモデルを作成するとその変更が困難であるという問題があり、一 方、基本波の合成による音声合成には、人間の声道のような複雑な過程で発生した波形の再現に適さないという問題があった。
【０００８】
本発明の目的は、波動の伝播特性を忠実に模擬しつつ、その変化する伝播特性に容易に対応することが可能な波動合成装置を提供することである。
【課題を解決するための手段】
【０００９】
本発明の第１の側面による波動合成装置は、波動を表すパルス列を生成するパルス列生成部と、波動が伝播する媒体を電子回路により近似的に模擬し、パルス 列が入力され、媒体の波動伝播特性に応じたパルス列を出力する波動伝播特性シミュレーション回路とを有する。そして、媒体を波動が伝播する伝播時間と電子 回路の入出力間のパルス信号列の伝達時間とが関連付けられるように、電子回路が構成されていることを特徴とする。
【００１０】
このような構成としたことにより、波動伝播特性を模擬する電子回路の構成を変更することにより、種々の波動伝播特性を有するモデルに対する波動合成が可 能となる。たとえば、本発明を、音声合成装置に適用すれば、人間の声道の多様な変形による多様な音声に対応することができ、合成音声は非常に自然なものと なる。
【００１１】
具体的には、電子回路は、パルス列処理回路であり、その入出力間でのパルス列伝達時間が、媒体を波動が伝播する伝播時間に関連付けられて設定されていることを特徴とする。
【００１２】
このようにすることにより、その入出力間でのパルス列伝達時間が、媒体を波動が伝播する伝播時間に所定の比率で関連付けられるように、パルス列処理回路 を設計することができる。これは、パルス列処理回路の入出力間でのパルス列伝達時間は、その設計により決めることができるからである。
【００１３】
また、波動が伝播する系における波動の反射、減衰、共鳴のうちの少なくとも一つの物理現象を模擬するように、電子回路が構成されていることを特徴とする。
このようにすることにより、複雑な現実の物理現象を模擬することが可能となる。
【００１４】
具体的には、波動の減衰を模擬する電子回路は、媒体中での波動の減衰を表す減衰パラメータを設定する減衰パラメータ設定部と、波動を表すパルス列が入力され、減衰パラメータに基づき、減衰された波動を表すパルス列を出力するパルス列処理部とを有することを特徴とする。
【００１５】
波動の反射を模擬する電子回路は、波動が伝播する系における順方向波動を表す順方向パルス列と、この順方向波動の反射波を表す反対方向パルス列とを合成するパルス列合成部を有することを特徴とする。
【００１６】
波動の分波を模擬する電子回路は、パルス列を分波するパルス列分波部と、このパルス列分波部での分波割合を制御するパルス列分波制御部とを有することを特徴とする。
波動の合成を模擬する電子回路は、パルス列を合成するパルス列合成部と、このパルス列合成部での合成割合を制御するパルス列合成制御部とを有することを特徴とする。
【００１７】
本発明を音声合成装置に適用する場合、媒体が空気となり、電子回路は、シフトレジスタを含む回路で実現でき、シフトレジスタの段数が、そのクロック周波数および空気媒体を音波が伝播する伝播時間に基づいて決定されることを特徴とする。
このようにすることにより、波動（たとえば音波）の伝播を模擬する電子回路を適切に設計できる。
【発明の効果】
【００１８】
本発明によれば、波動の伝播特性を忠実に模擬しつつ、その変化する伝播特性に容易に対応することが可能な波動合成装置を提供することができる。
【発明を実施するための最良の形態】
【００１９】
本発明では，音声合成部をハードウェアにより構築を行う．本発明では，この音声合成システムの構成，仕様，処理の流れについて説明する．まず，システム全体について説明した後，システムをいくつか分解し，各部分について追っていく．そしてさらに，本システムのコアとなる回路部を細かくブロックに分けての説明を行う．
音声の基本となる音波（基本波）に調音の処理を加えることにより音声を作り上げる音声合成システムの製作を行った．
本システムは，図１のような構成をしている。音声合成システムのメインの処理は、hwModule[1] を用いてハードウェアとして実装を行う．このハードウェア部は，発声器官のモデル化を行ったもので，音声信号を1bit のパルス列信号で扱い，音声生成の処理を行う．
このハードウェア部の制御は，ホストPC でソフトウェアにより行う．ソフトウェアからは，他にも，ハードウェアに対してパラメータ設定を行う．また，本システムでは，音声合成の基本波をソフトウェアにより生成し，ハードウェアに流す機能と，ハードウェアで処理された結果をGUI 上に表示する機能をもつ．
また，出力段には，Ｄ級アンプ，スピーカを用意し，ハードウェアから出力されたパルスで表現された信号を音として出す．
このシステムの処理の流れは，図２のようになっている．ソフトウェアにより生成された，量子化ビット8bit，サンプリング周波数44.1kHz の音声の基本波を入力信号とし，ハードウェア内部では基本波を，値の大きさ分のパルスで変調を行った1bit のパルス列の信号で扱い，ソフトウェアからのパラメータ（声道パラメータ，減衰パラメータ）により調音処理を行う．後段のＤ級アンプには，処理されたパルス列の信号をパルス幅変調をかけて出力し，スピーカを通し，音となって確認する．
本発明で製作した音声合成システムを実現するために，本発明室で開発した再構成可能なLSI であるFPGA が搭載されたメモリ型PCI デバイスであるhwModule（図示せず）を用いて，回路の実装を行った。
hwModule は，FPGA，メモリ，マイクロプロセッサ，PCI バスコントローラにより構成される（図３）．FPGAは全部で４個搭載されており，１個はボード制御のPCI バスコントローラ用に使用しており，残りの３個をhwNet（仮想回路）を実装うするために使用する．さらに，処理データを格納するために1Mbyte のLM（LocalMemory，SRAM）を３個搭載している．各FPGA にはLM が二つずつ接続されており，このLM をかいしてFPGA 同士は連結動作を可能にしていて，パイプライン的な動作もできるようになっている．ホストPC からPCI を経由して回路データ（Bit Stream File）およびデータがhwModule上のFPGA またはLMに書き込まれる。また，このhwModule には外部接続のための汎用ポート（GPIF）が３つ設けられていて，各GPIF に16 ビットの信号の入出力が可能である．
hwModule を用いたシステムはhw/sw 複合体となっており，図４は，hw/sw 複合体の実装概念を示す．図４におけるhwNetの部分が本発明で製作した音声合成回路にあたり，hwNet の開発を中心に研究を進めた．
hwObject・・・ハードウェアによる処理をオブジェクト化されたもの。Verilog-HDL 言語の用いて記述する．
swObject・・・通常のソフトウェアによる処理をオブジェクト化されたもの。C++言語を用いて記述する。
hwObjectinterface・・・データをhwModule のLM と読み込み・書き込みを行うや，hwNet にパラメータを与えるといった処理を行う。
hwNet・・・hwObject の機能を実現するためにFPGA に実装される仮想回路。
〔Ｄ級アンプ〕
図５は実験で，hwModule のFPGA 上に実装された音声合成回路で処理され，GPIF を通して送られてきたパルス信号を増幅するために使用したＤ級アンプとＤ級アンプのブロック図である．基板の上にhwModuleの出力用の汎用GPIF ポートと接続するためのコネクタとＤ級増幅回路（スイッチング回路），そしてローパスフィルタ回路を用意し，その先に，スピーカーを取り付け作られている（図５）．
〔音声合成アプリケーション（sw 構成部）〕
hw/sw 複合体のシステムにおいて，hwModule 上に実装された回路の制御は，ホスト側のコンピュータ上でソフトウェアによるアプリケーションによって行われる．また，ソフトウェアでの処理も行っている．このアプリケーションは，Borland 社製のC++Builder を用いて，研究室のメンバーと開発した．このアプリケーションはC++言語によって記述，構成される．
アプリケーションの行う処理内容としては，主にhwModule への製作した回路(Bit Stream File)のFPGAへの書き込み，回路の制御，回路へのパラメータ設定，データの書き込み・読み込み．ソフトウェアでの演算処理などである．
本発明の音声合成システムにおいては，製作した音声合成回路のFPGA への書き込み，回路の動作制御，音量や音程，調音の調整のためのパラメータの設定．hwModule のLM に基本波として格納するデータの生成・書き込み，回路の処理結果の表示に使用する．また，Sw による音声合成のアプリケーションを行い，Hw による音声合成回路で合成された音との比較やその合成音を解析し検討する．
本発明で使用するそれぞれのアプリケーションの機能の説明をする．
〔SoutForm1〕
声帯ブロックでは，LM に格納された波形データを基本波として処理を行う．ここで格納される波形データは，アプリから生成する．
このアプリケーションで処理される機能は次のようになっている．
1：合成する波形の振幅（０〜２５５）と再生時間を設定する．
2：Set により波形データを設定したパラメータに従い作り，SwStart で波形データ音声として出力する．また，hwDataSet で作られた波のデータをhwModule のLM に書き込むや，hwStart などでHw による音声出力の操作を行う．
3：ここでは，Hw ディジタル回路へのアドレスなどの設定を行う．HwControl でHw で出力した波形の表示などを行うフォームを開く（詳細は第5 章で説明する）．
4 ：Wave ファイルの再生や波形の表示を行うため処理を行う．
5：合成した波形データのサンプリングレートなどの詳細を表示する．
6：基本波となる波形の種類（Sin 波，Rosenberg 波，三角波，雑音）を選択．
7：各基本波の周波数などのパラメータを設定．
8 ：Rosenberg 波と三角波の周波数を変化させる時に設定する．
9：フォルマントを生成する離散型共振回路の各周波数などを設定．また用いる離散型共振回路（V1,V2,V3,H1) を選択する．それぞれ詳細は後に説明する．
10：離散型共振回路（V3）のパラメータを設定．
11：口唇放射モデルのパラメータ設定．
12：調音モデルのパラメータを設定．
13：hwNet（音声合成回路）の制御（リセット，スタート，ストップ）
14：合成波の波形を表示．
15：14に波形を表示するための操作や保存および波形の数値データなどの保存を行う．
また波形データの周波数スペクトル（FFTによる）グラフを作成．
16：合成した波形データをWave ファイルとして保存および4で使用するWaveファイルを開く．また，テキスト音声合成を行うフォームを表示する．
本発明では，主にRosenberg 波を基本波として用いている．合成する波形データは，サンプリングレート44.1kHz，量子化ビット8bit としている．データ数は44100 個であり，１秒間分の音波データである．同じ基本波を入力した時の従来のソフトウェアによる合成と本発明でのハードウェアによる合成との比較・検討を行う．
〔HwNetAnalizer〕
本発明の音声合成回路(BitStreamFile) をhwModule 上のFPGA に書き込むには，図６に示すアプリケーションを使用する．このアプリは，GUIフォームから呼び出すことができる．機能は主に次のようになっている．
1：VenderID とDeviceID を指定することでPCI に接続されたhwModule を検出する．
2：PCI のBus，Device，Function の情報を収得する．
3：製作した回路データであるBitStreamFile を選択する．
4：BitStreamFile をhwModule の何番目のFPGA 上にロードするか選択する．
5：BitStreamFile のFPGA 上へのロードが成功したか失敗したか通知する．今回は，３つのBitStreamFile をhwModule 上にある各FPGA にロードし，動作させる。
〔SoutHwControl〕
FPGA に実装した回路の制御・検証を行うには，所定のアプリを呼び出して行う．機能は次のようになっている．このアプリでは，回路の動作や声帯ブロック・声道ブロックの回路内のパラメータを指示する．回路は動作させることでLM に格納されたデータを処理し，出力する．また，出力されるデータはLM にも格納される．波形の検証には，このLM に格納されたデータを用いて行い，ここではLM のアドレスを設定することでそのアドレスに格納されたデータを呼び出して波形を表示させる．声帯ブロックのパラメータでは，声帯ブロックにおける振幅や周波数などの制御について指示する．声道ブロックのパラメータでは，声道内での減衰にあたる処理や声道ブロックの接続（1:接続0:切断）および接続部での演算を指示する．
1：回路の動作の制御をする．
2：回路に対してのパラメータ設定をする．
3：回路内部で処理された結果の読み込み・表示を行う．
4：読み込まれた回路内部で処理された結果にたして周波数スペクトル解析を行う．
5：読み込まれた回路内部で処理された結果をデータとして保存する．
それぞれの機能の補足説明をすると，1 は，回路のスタート・ストップ・リセットをパルス信号を送信して行っている．2は，8bit の値を回路に与え，回路の処理を設定し，信号の調整を行う．本発明で準備したパラメータとしては，基本波の音量の調整を行うVolume，基本波の周波数を調整するpitch，回路で使用する基本波データの長さを調整するFirstData，EndData．声道内での音波の減衰・波の分割の調整を行う減衰パラメータ．調音のために声道の形状を決定する声道パラメータを用意した．この声道パラメータは，音声合成回路の声道にあたる
ブロックの５，６個ずつ置かれているポイントに1bit ずつ与えられる．音声合成回路の声道ブロックの箇所で改めて説明させていただく．
〔音声合成回路(hwNet)〕
音声合成回路(hwNet) 部をverilog-HDL 言語[4] を用いて製作した．回路は，音声生成の運動機構に照らし合わせて，図７のような声帯ブロック，声道ブロックから構成される．また，ホストPC とデータのやり取りを行うためにRead Controller ブロック，Write Controller ブロック，パルス幅変調をしてD 級アンプに信号を送るために，PWM ブロックを用意した．回路では，ホストPC のアプリケーションから，量子化ビット数8bit，サンプリング周波数44.1kHz で生成された基本波を入力信号とし，入力信号をパルス数変調をかけ，1bit のパルス信号にし，アプリケーションから設定さらたパラメータ（Volume，Pitch，声道，減衰）により音波の合成処理を行う．そして，合成されたパルス信号にパルス幅変調を行い，Ｄ級アンプ・スピーカから音声の出力を行う．回路の各ブロックには8bit 幅のパラメータが与えられる．Read Controller ブロックでは，基本波のデータサイズを調整しながらLM から基本はデータを読み込む．声帯ブロックでは，パラメータVolume・Pitch で基本波の振幅・周波数を調整する．声道ブロックでは，声道パラメータ・減衰パラメータにより声道ブロックの中のパルス変調された音波の反射・透過，重ね合わせの演算処理を行う．音声合成回路の最初の処理にあたるデータの読み込み，基本波データサイズの調整を行うRead Controller ブロックと声帯ブロックは，FPGA1 に実装する．音波の調音を行う声道ブロックは，成人男性の声道の長さである17cm を実装することをめざして，FPGA1 の残りのスペース，FPGA2，FPGA3 を使用して実装を行う（図８参照）．それぞれのブロックの回路規模と動作速度を表1（音声合成回路の各ブロックの規模・動作速度を示す表）に示す．
【表１】
2007233379.tif 000003
これより各ブロックごとに説明をする．
〔Read Controller ブロック〕
このブロックの機能としては，LM からホストPC で生成された基本波データの読み込みを行う．また，パラメータから基本波のデータのサイズを調整する．このパラメータによる処理動作を取り入れることで，１秒分の音波を連続した一繋がりの波として，以後のブロックに流すことが可能である．このことにより，発声時間の長さを調節でき，単語の処理から長文の処理まで自由に扱うことが可能と考える．さらに，基本波を流しながらのVolume やPitch，声道ブロックのパラメータ変化を用いることで，人が話しているときに近い動きを表現し，なめらかな音節のつながりをする音声合成を考える．ReadBlocｋを図９に示す。
ブロックの内部にはaddress controller と，Buffer（BlockRAM）を含んだBuffer と言うさらに細かい機能ブロックに分けられる．
address controller はLM からデータを読み込み，Buffer に書き込む処理を行っている．address controller では，図１０のようなステートでLM からの読み込み，buffer への書き込みを行っている．
IDLE ステートは，回路が起動されたときおよびリセットが解除されたときに遷移してくるステートである．処理としては，待機である．START 信号がアサートされたとき，ステートに遷移する．
RDYBS ステートは，LM のデータの読み込みを行う準備をするステートである．このステートは値を保持した状態での待機である．LM とのアクセス許可信号であるACK 信号がアサートされたとき，ステートを遷移する．
READDATA ステートは，アクセスするLM のアドレス値をかえながら，データを読み込んでくるステートであり，Buffer にデータとBuffer を制御しているBuffer ブロックに書き込み命令信号のWBE を出している．ACK 信号がディアサートされたときまたは，Buffer がほぼいっぱいになったことを知らせるABSWBFUL 信号がアサートされたとき，別のステートに遷移する．
W  AITBUF ステートは，Buffer にデータが入れられる状態になるまで待機するステートである．Buffer に少しデータが入っている状態を知らせるALMWBFUL 信号がディアサートされたとき，別のステートに遷移する．
また，address controller はアプリからパラメータFirstData，EndData をうけて読み込むデータの調整を行っている．パラメータFirstData はLM の読み込みアドレスの開始の値であり，EndData パラメータはアドレスの終わりの値である．これらのパラメータにより，データのサイズを調整して，周期分の基本波を読み込み連続の波になるようにする．パラメータの値は，IDLE ステートでSTART 信号がアサートされたときと，READDATA ステートでアドレスがEndData 値に到達したときに更新される（表２）．
【表２】
2007233379.tif 000004
Buffer は，LM から来る32bit(4 データ分) 幅のデータを，回路内部で扱いやすくするため，8bit(1 データ分) 幅のデータに並び換え，LM と回路(hwNet) 間でデータの交換をスムーズにする．また，Buffer の読み込み・書き込みの制御を行う．
Buffer は，入力データ幅16bit，出力データ幅8bit．データの入る量は，8bit のデータ512 個分のBlockRAMを並列に使用する．読み込み・書き込みの処理の流れとしては，図１１のように，流れてくる32bit の基本波データをBWE 信号のアサートのタイミングにあわせてBuffer の書き込みアドレス値を設定し，データの上位16bitと下位16bit にわけてそれぞれのBuffer に書き込んで行く．読み込みは，BRE 信号のアサートのタイミングにあわせてBuffer の読み込みアドレス値を設定し，8bit ずつデータを出力する．このようにして，32bit 幅で入力されたデータを8bit 幅で順番どおりに並び替えている．
また，このBuffer のアドレス値のよって，ALMWBFUL，ABSWBFUL，BRE の信号を生成しデータの管理を行っている．ちなみに， BUFE とは，BRE 信号と同じものである．さらに，Buffer から読み込むデータを調整して基本波の周波数を調整しているが，それは，Buffer の読み込みアドレスとパラメータを組み合わせた処理で行おり，このことは改めて声帯ブロックで説明する．
〔Write Controller ブロック〕
このブロックでは，アプリケーションから回路の測定点の波形を表示するため，LM にデータの書き込みを行う．動作としてはRead Controller ブロックと同様であるが，データの流れが回路からLMに書き込むというように逆になる（図１２）。
まず，声帯ブロックまたは声道ブロックからの1bit のパルス信号を復調ブロックで8bit幅のデータにする．復調の際はパルス信号の処理においての動作の基準となるLCLK とサンプリングタイミングであるPML により，パルス信号の数をカウントし，復調を行う．8bit 幅の信号は，一旦Buffer に格納され４つのデータでひとまとまりとする32bit 幅のデータとして取り出され，図１０と同じ状態遷移で処理が行われるaddress controller でのLMへのアクセス処理により，LM に書き込まれる．処理の内容が違う箇所というと，Read Controller ブロックではBuffer のデータ格納状態がいっぱいの状態をチェックなければいけないことに対し，Write Controller ブロックでは，Buffer のデータ格納状態が空であるかをチェックしなければならない．もし，Buffer が空の状態でデータの読み込みを続けた場合，不定値または前回の値がLM に書き込まれてしまい，アプリケーションから回路内部の音波データを正しく確認できない．
〔声帯ブロック〕
このブロックでは，声帯の振動によって，音声の基本となる様々な大きさや高さの波を生成している機能のモデル化を行った．具体的な処理として，Host のコンピュータのアプリケーションからVolume とPitch のパラメータ値を受け，基本波の振幅と周波数の変化を行う．その後，8bit の基本波データをパルス信号に変調を行う．声帯ブロック内部を機能ブロックに分けて考えると図１３のようになる．
パラメータVolume は，0 から255 の8bit で与えられ，基本波の振幅を1/128 倍から2 倍の調整を行う．振幅の調整を，Volume パラメータの中心値の128 を基準としたものにするためにVolume パラメータとデータの値の乗算の処理で行う．アプリケーションで生成される基本波は，0 を基準としたRosenberg 波であるが，回路では128 の値を基準と考えているため，基本波に128 を加える（図１４）．このように，基準を128 とすると，読み込む基本波の値が0 から255 に対して，回路では128 から255 の幅しかないので，値がオーバーしてしまい，波形が歪んでしまう．そこで，アプリケーション上での0 から255 の振幅値の変化と，回路での128 から255 の振幅値の変化を対応させるために，基本波の値を2 で除算を行う．パラメータVolume の演算の流れとしては，2 で除算，Volume と乗算，基準値128 の加算の順で回路で扱う基本波の形にする．
周波数の変換もVolume と同様である．0 から255 の8bit で与えられ，1 のとき基本波の周波数の1 倍として，1 倍から255 倍の調整を行う．基本波の周波数とパラメータの値の掛け算として考えられるような処理を行う，例えば，基本波に20Hz のものを用いた場合，20,40,60・・・5100Hz と変えられる．実際の回路では周波数に対してどのような処理を行っているか説明する．
前でも述べているが，アプリにより生成された基本波データはhwModule のLM に書き込まれる．そしてそれを回路が読み込み，Buffer に格納されbit 幅をあとの処理にあわせて基本波データとして使用する．データをBufferから読み込む際，アドレス値を変え，基本波データの数を調整することで波の周期を変え，結果，周波数を変えている．つまり，波の１周期分のデータが１２０個の場合，データを一個飛ばしにすると１周期分のデータが６０個になり，周期が半分になる．そして周波数は２倍になる．
また，44.1kHz でサンプリングされた基本波を生成されたそのままの周期で処理していくためには，Buffer からのデータを読み込みをサンプリングの周期にあわせる重要である．また，1bit のパルス信号となった音波信号を8bit のデータに復調するときにもサンプリングのタイミングが必要ということで，サンプリング周期を示す信号の生成も行う．このとき，基本波のパルス表現において，サンプリング周波数で量子化された基本波の8bit のデータを，データ値分のパルス信号を発生させるという処理方法を使用することを考え，図１４のように，256サイクルでサンプリング周期になる信号をつくり，その信号からPML という信号名生成した．PML をつくる信号にLCLK という信号名をつけた．この信号は，hwNet で使われるクロック信号であるMCLK（66MHz）6 サイクル分である．実際，PML の周波数がいくらか計算すると，
66000000/6×256=42968.75
となった（単位はＨｚ）．MCLK5 サイクル分と7 サイクル分を計算した結果，5 サイクル分のときは51562.50Hzであり，7 サイクル分では36830.36 であった．上にも述べた条件をみたしながら，最も基本波データのサンプリング周波数に近いPML を作るためには，MCLK（66MHz）6 サイクル分の信号を基準にすることが確認できる．PML，LCLK はこれよりあとにある処理の基準信号の一つとして送られる．振幅と周波数の調整を経た基本波を，1bit にパルス変調を行う．変調方式としては振幅値をパルスの数で変調を行うパルス数変調を用いた．処理としては，サンプリング信号PML のアサートされたときにパルスの出力を開
始する．
基本波データは8bit で量子化されたデータである．よって次のサンプリング信号までに最大255 個のパルスが生成される．このパルスを生成するためには，サンプリング信号の間を，255 サイクルとサンプリング信号による基本波データ値の取得に使用する1 サイクル，計256 サイクルする信号が必要である．このことから上で述べたLCLK が必要になり，LCLK によりパルス変調を行う．
パルス数変調の流れとしては，サンプリング信号iFWV がアサートされたとき，値iFWDを取得する．その値をLCLK に同期させデクリメント（カウントダウン）させながら0 になるまでパルスを出力する．このとき，詳しい内容は後ろ述べるが声道ブロックでの演算のことを考慮に入れたパルス変調をする．それは，振動の基準となる平均気圧を示す基準パルスrppda という考え方である．基準パルスがある場合，密の状態に近いこと示し，基準パルスがない場合，疎の状態に近いこと示す．これにより，声道ブロック内部での演算の幅を広げることができる．
データの取得ならびにパルス生成は， ph2，とph3 のステートにわけてrfwda とrfwdv が交互にパルス生成のための処理を行う．それぞれのステートで生成されたパルス信号rppdv とrppda を重ね合わせ， 1bit のパルス列信号oPPD として声道ブロックに出力される．
〔声道ブロック〕
このブロックは，声道のモデル化をしたブロックである．声道は，形を変える管状の器官であり，円筒管の連結として考えられる．そこで，音響管内部を音波が伝達しながら足し合わさる現象をディジタル処理で行う．声道ブロック内部では，パルス信号での処理を行うが，パルス信号を気体分子として考える．そこで，演算処理としては，平均気圧からの疎密の振動によって生じる変位が音波であり，そこでの現象を表現するためのものと考える．具体的には，真理値表を考え，その演算をパルス信号の流れのなかで行う．減衰パラメータによりパルス信号の数を調節して，音の減衰・分割や反射・透過を表現をする．減衰パラメータによる演算も真理値表をもちいた演算とする．ここで，形成されたパルス信号は，PWM 変調してD 級アンプへ出力する．
声道ブロック内部を機能ごとに分けると図１６のようになる．
声帯ブロックから送られてきたパルス信号は，Articulation Region において調音処理を加えられる．ArticulationRegion の構成，動作は図１８のように多くのレジスタと，真理値表で表される演算部から構成されている．入力されたパルス信号は，声帯ブロックからの信号LCLK に同期してレジスタを次々とシフトしながら進んでいく．進無方向が反対の二つの道をレジスタでつくり，片方のレジスタの道は，声帯から唇へと流れていく，進行していく波が流れていき，もう一つの道が声道の壁にぶつかって反射をする波が流れていく．Articulation Region で使用しているレジスタの総数は，7168個であり，進行の後退の２ルートあるため，つなげたレジスタの数は半分の3584個である．このシフトレジスタ群をパルス信号は，LCLK のタイミングにあわせて次々とシフトしていく．パルスが一つレジスタをシフトするのにかかる時間は，LCLK の周期に当り，LCLK は回路のシステムクロックであるMCLK（66Mhz，15nsec）の六サイクル分なので，9nsec である．LCLK でのシフト回数は3584 かいなので，Articulation Region の規模としては，音速を340m/s として考え，レジスタ群の通過にかかった時間，290.304nsecを掛け算すると，9.87mmと求められ，このシステムのArticulation Region は声道の9mm分の長さ，または，長さ9mm の音響管内部での現象を表していることになる．
数箇所に用意されている合成部において波の合成処理が行われる．この合成部に声道パラメータと減衰パラメータが与えられる．声道パラメータは反射をさせるかどうか，減衰パラメータは合成部に流れてきたパルス信号を反射させる割合と透過させる割合を決める．合成部の演算の流れとしては，図１８のように行われる．まず信号を反射させるのか透過させるのかを，隣り合った２つのパルス信号とそれぞれ1bit で与えられる声道パラメータと減衰パラメータを入力として真理値表を利用した演算を行う．このあと，波の重ね合わせの演算を行い再びレジスタに流される．それぞれの真理値表を以下にまとめる．演算処理の基準としては，入力される４つのパルス信号から疎密を判断し，演算を行う．これは，声帯ブロックのパルス数変調によるパルスの生成の箇所でも述べたように，入力されるパルスは平均気圧を表す基準パルスと平均気圧との変位を表す変位パルスが交互にながれるパルス列であるということを考慮に入れたからである．透過演算部・反射演算部では変位パルスに対して，減衰パラメータによる分割処理と，声道パラメータによる反射・透過処理を行っている．
〔1.6 PWMブロック〕
PWM ブロックでは，合成処理されたパルス信号にパルス幅変調（PWM）を行い，GPIF を通してD 級アンプに出力をするという機能をもつブロックである．処理の内容としては，声道ブロックから1bit のパルス信号が入力される．サンプリング信号であるPML の状態をみながら，その入力信号に対して，カウントアップを行い，PML がアサートした場合，データをビット幅8bit で処理するレジスタに値を渡す．レジスタが保持する8bit に
もっどたデータは回路内のサンプリング信号と同じ周波数42968.75Hz でるのこぎり波と比較を行い，データの値のほうがのこぎり波の値より大きいとき”1”を出力するパルス幅変調を行う．変調されたパルス信号はGPIF よりD 級アンプに送られる．出力されるパルス信号はフルブリッジ構造であるD 級アンプの要求にこたえ，一方のパルスをNOT 演算により反転させ2bit で出力した．
パルス幅変調時に比較されるのこぎり波はブロックの外で生成される．
【表３】
2007233379.tif 000005
【表４】
2007233379.tif 000006
【表５】
2007233379.tif 000007
【表６】
2007233379.tif 000008
【表７】
2007233379.tif 000009
【表８】
2007233379.tif 000010
【図面の簡単な説明】
【００２０】
【図１】図１は、音声合成システム全体構成図である。
【図２】図２は、音声合成システムの処理の流れを示す図である。
【図３】図３は、hwModule の構成ブロック図である。
【図４】図４は、hw/sw 複合体の実装概念図である。
【図５】図５は、Ｄ級アンプのブロック図である。
【図６】図６は、HwNetAnalizerを示す図である。
【図７】図７は、音声合成回路の流れを示す図である。
【図８】図８は、音声合成回路実装を示す図である。
【図９】図９は、ReadBlockを示す図である。
【図１０】図１０は、addresscontroller 状態遷移を示す図である。
【図１１】図１１は、Buffer の読み込み書き込みタイミングを示す図である。
【図１２】図１２は、writeblockを示す図である。
【図１３】図１３は、seitaiblockを示す図である。
【図１４】図１４は、Rosenberg 波のVolume 調整の説明図である。
【図１５】図１５は、周波数処理を示す図である。
【図１６】図１６は、音声合成回路を示す図である。
【図１７】図１７は、Articulation Region の構造を示す図である。
【図１８】図１８は、合成部の演算の流れを示す図である。
【図１９】図１９は、Articulation Region の実装回路を示す図である。
【図１】
2007233379.tif 000011
【図２】
2007233379.tif 000012
【図３】
2007233379.tif 000013
【図４】
2007233379.tif 000014
【図５】
2007233379.tif 000015
【図６】
2007233379.tif 000016
【図７】
2007233379.tif 000017
【図８】
2007233379.tif 000018
【図９】
2007233379.tif 000019
【図１０】
2007233379.tif 000020
【図１１】
2007233379.tif 000021
【図１２】
2007233379.tif 000022
【図１３】
2007233379.tif 000023
【図１４】
2007233379.tif 000024
【図１５】
2007233379.tif 000025
【図１６】
2007233379.tif 000026
【図１７】
2007233379.tif 000027
【図１８】
2007233379.tif 000028
【図１９】
2007233379.tif 000029