JPH0566774A - 音声データ生成装置および音声合成装置 - Google Patents
音声データ生成装置および音声合成装置Info
- Publication number
- JPH0566774A JPH0566774A JP3254397A JP25439791A JPH0566774A JP H0566774 A JPH0566774 A JP H0566774A JP 3254397 A JP3254397 A JP 3254397A JP 25439791 A JP25439791 A JP 25439791A JP H0566774 A JPH0566774 A JP H0566774A
- Authority
- JP
- Japan
- Prior art keywords
- vowel
- data
- consonant
- waveform
- register
- 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.)
- Pending
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
(57)【要約】
【目的】 演奏されたキーの階名等を示す音声を、その
波形データの記憶容量を削減しつつ、ノイズを発生させ
ることなく、人声に近い自然な音声で発生させることを
目的としている。 【構成】 リリース処理を行ないつつ子音の発音を終了
すると(ステップS1410〜S1417)、アタック
処理を行ないつつ母音の発音処理を行なう(ステップS
1411、S1418〜S1428)。このとき、音声
データ生成処理で生成した母音波形の複数箇所で抽出し
た母音データを、乱数を用いてその読み出し順序と読み
出しタイミングを決定して読み出し、母音データのルー
プ処理を行なって(ステップS1423〜S143
1)、母音データの振幅に変化を持たせることにより、
人声に近い音声の発音を行なわせる。
波形データの記憶容量を削減しつつ、ノイズを発生させ
ることなく、人声に近い自然な音声で発生させることを
目的としている。 【構成】 リリース処理を行ないつつ子音の発音を終了
すると(ステップS1410〜S1417)、アタック
処理を行ないつつ母音の発音処理を行なう(ステップS
1411、S1418〜S1428)。このとき、音声
データ生成処理で生成した母音波形の複数箇所で抽出し
た母音データを、乱数を用いてその読み出し順序と読み
出しタイミングを決定して読み出し、母音データのルー
プ処理を行なって(ステップS1423〜S143
1)、母音データの振幅に変化を持たせることにより、
人声に近い音声の発音を行なわせる。
Description
【0001】
【産業上の利用分野】本発明は、演奏操作された音階に
対応する音声を自然な状態で発音することができる音声
合成装置および音声合成のための音声データを生成する
音声データ生成装置に関する。
対応する音声を自然な状態で発音することができる音声
合成装置および音声合成のための音声データを生成する
音声データ生成装置に関する。
【0002】
【従来の技術】歌や器楽の学習時に、階名を用いた「移
動ド」、あるいは音名を用いた「固定ド」等の読符法に
より、楽曲を歌うことがしばしば行なわれる。このよう
な場合に、その楽曲を鍵盤等で弾き、押鍵された鍵に対
応する階名、又は音名が発音されれば、学習に極めて有
用である。そこで、従来より、電子楽器等においては、
「ド」、「レ」、「ミ」・・・等と発音された音声をあ
らかじめサンプリングしてデータとしてメモリに記憶
し、押鍵等の演奏のトリガに応答して順次押鍵された鍵
に対応するデータをメモリから読み出して、D/A変換
した後再生して、発音するものがある。
動ド」、あるいは音名を用いた「固定ド」等の読符法に
より、楽曲を歌うことがしばしば行なわれる。このよう
な場合に、その楽曲を鍵盤等で弾き、押鍵された鍵に対
応する階名、又は音名が発音されれば、学習に極めて有
用である。そこで、従来より、電子楽器等においては、
「ド」、「レ」、「ミ」・・・等と発音された音声をあ
らかじめサンプリングしてデータとしてメモリに記憶
し、押鍵等の演奏のトリガに応答して順次押鍵された鍵
に対応するデータをメモリから読み出して、D/A変換
した後再生して、発音するものがある。
【0003】ところが、発生する音声毎にデータを独立
してメモリに記憶させておくと、膨大なメモリ容量を必
要とし、電子楽器等の価格にも影響する結果となる。そ
こで、従来、例えば、特開昭58ー11986号に記載
されているようなものが提案されている。すなわち、階
名の「ド」、「レ」、「ミ」、・・・などの音声の、予
めメモリ記憶された子音データと母音データを順次読み
出して、例えば子音「d」の発音につづいて、母音
「o」を発音することによって、階名の「ド」を発音す
る技術である。そして、長く押鍵されている場合のよう
に、音長によって、母音「オ」が長く持続して発音する
必要がある場合には、母音データがループ処理によって
繰り返し読み出され、「ドオー」と発音される。
してメモリに記憶させておくと、膨大なメモリ容量を必
要とし、電子楽器等の価格にも影響する結果となる。そ
こで、従来、例えば、特開昭58ー11986号に記載
されているようなものが提案されている。すなわち、階
名の「ド」、「レ」、「ミ」、・・・などの音声の、予
めメモリ記憶された子音データと母音データを順次読み
出して、例えば子音「d」の発音につづいて、母音
「o」を発音することによって、階名の「ド」を発音す
る技術である。そして、長く押鍵されている場合のよう
に、音長によって、母音「オ」が長く持続して発音する
必要がある場合には、母音データがループ処理によって
繰り返し読み出され、「ドオー」と発音される。
【0004】したがって、子音データのみ別々に記憶
し、母音データは共通のデータを使用することができる
ので、音声データを記憶するメモリ容量を削減すること
ができる。
し、母音データは共通のデータを使用することができる
ので、音声データを記憶するメモリ容量を削減すること
ができる。
【0005】
【発明が解決しようとする課題】しかしながら、このよ
うな従来技術にあっては、母音データをループ処理によ
って繰り返し読み出す場合に、ループポイントの設定が
不適切だと、母音が繰り返し発音される毎に、ループポ
イントにおいてノイズが発生し、また、子音波形と母音
波形の接続部分に不連結点などがあると、やはりノイズ
が発生する。そこで、本出願人は、先に、メモリに記憶
される波形データの容量を極力減らし、上述のように子
音波形と母音波形が接続された時点あるいは母音区間が
持続して発音される期間でノイズが発生しないようにす
る技術を、先に提案している(特願平3−199600
号)。
うな従来技術にあっては、母音データをループ処理によ
って繰り返し読み出す場合に、ループポイントの設定が
不適切だと、母音が繰り返し発音される毎に、ループポ
イントにおいてノイズが発生し、また、子音波形と母音
波形の接続部分に不連結点などがあると、やはりノイズ
が発生する。そこで、本出願人は、先に、メモリに記憶
される波形データの容量を極力減らし、上述のように子
音波形と母音波形が接続された時点あるいは母音区間が
持続して発音される期間でノイズが発生しないようにす
る技術を、先に提案している(特願平3−199600
号)。
【0006】この提案では、子音部データにリリース特
性を有するエンベロープを付加することにより、子音波
形と母音波形の接続を滑らかにし、子音波形と母音波形
の接続部分におけるノイズの発生を抑制している。ま
た、母音部データとしては、母音波形データのピッチ周
波数及びその各倍音周波数の各成分の振幅強度を抽出
し、該抽出された各振幅強度を相する周波数の正弦波形
を1ピッチ周期分ずつ生成して、生成した1ピッチ周期
分の正弦波形を位相を合わせて合成することにより1ピ
ッチ周期分の母音波形データを生成しているので、ルー
プポイントの設定を適切に行なうことができ、ノイズの
発生を抑制することができる。
性を有するエンベロープを付加することにより、子音波
形と母音波形の接続を滑らかにし、子音波形と母音波形
の接続部分におけるノイズの発生を抑制している。ま
た、母音部データとしては、母音波形データのピッチ周
波数及びその各倍音周波数の各成分の振幅強度を抽出
し、該抽出された各振幅強度を相する周波数の正弦波形
を1ピッチ周期分ずつ生成して、生成した1ピッチ周期
分の正弦波形を位相を合わせて合成することにより1ピ
ッチ周期分の母音波形データを生成しているので、ルー
プポイントの設定を適切に行なうことができ、ノイズの
発生を抑制することができる。
【0007】ところが、この先に提案した技術において
は、母音部分を発音させる場合、1ピッチ周期分の母音
波形データをループ処理して発音させていたため、母音
部の振幅波形が平坦で、単純なものとなり、人声のよう
な揺らぎを再現することができない。したがって、この
点において、なお改良の余地があった。そこで、本発明
は、母音部に人声で発生するような揺らぎを持たせるこ
とにより、自然な音声を発音することができるようにす
ることを目的としている。
は、母音部分を発音させる場合、1ピッチ周期分の母音
波形データをループ処理して発音させていたため、母音
部の振幅波形が平坦で、単純なものとなり、人声のよう
な揺らぎを再現することができない。したがって、この
点において、なお改良の余地があった。そこで、本発明
は、母音部に人声で発生するような揺らぎを持たせるこ
とにより、自然な音声を発音することができるようにす
ることを目的としている。
【0008】
【課題を解決するための手段】本発明は、音声データ生
成装置として、以下の構成を有する。サンプリングされ
た人声による音声データから子音部波形データを抽出す
る子音部抽出手段と、前記子音部抽出手段により抽出さ
れた子音部波形データの後半部分にリリースエンベロー
プを付加し、該リリースエンベロープを付加した子音部
波形データを前記音声データの子音部データとして出力
するエンベロープ付加手段と、前記音声データから母音
部波形データを抽出する母音部抽出手段と、前記母音部
抽出手段の抽出した母音部波形データの複数箇所におい
て、各箇所の母音部波形データから該母音部波形データ
のピッチ周波数及びその各倍音周波数の各成分の振幅強
度を抽出する周波数振幅強度抽出手段と、前記母音部波
形データの複数箇所における前記周波数強度抽出手段の
抽出結果に基づいて、前記各箇所での抽出結果毎に、各
振幅強度を有する周波数の所定形状の波形を1ピッチ周
期分ずつ生成し、該生成された各所定形状の波形を、前
記各箇所毎に、位相を合わせて加算合成して各箇所の1
ピッチ周期分の母音部構成要素データを前記複数箇所分
生成して、前記各箇所毎に前記音声データの母音部構成
要素データとして出力する母音データ合成手段と、を備
えている。前記周波数振幅強度抽出寿段は、例えば、請
求項2に記載されているように、高速フーリエ変換によ
り、母音部波形データのピッチ周波数及びその各倍音周
波数の各成分の振幅強度を母音波形データの前記各箇所
毎に抽出する。また、前記母音データ合成手段は、例え
ば、請求項3に記載されているように、前記周波数強度
抽出手段の抽出結果に基づいて、所定形状の波形として
各振幅強度を有する周波数の正弦波を1ピッチ周期分ず
つ生成し、該生成された各正弦波を位相を合わせて加算
合成して1ピッチ周期分の前記母音部構成要素データを
生成して出力する。次に、音声合成装置としては、以下
の構成を有する。前記音声データ生成装置によって生成
された音声データの前記子音部データを記憶する子音部
記憶手段と、前記音声データの前記母音部構成要素デー
タを記憶する母音部記憶手段と、外部操作が可能な操作
子と、前記操作子の操作に対応して前記子音部記憶手段
に記憶された子音部データを順次読み出して発音する子
音部発音手段と、該子音部発音手段による前記子音部デ
ータの発音終了後、前記母音部記憶手段に記憶された1
ピッチ周期分の前記複数の母音部構成要素データを所定
順序で読み出し、該母音部構成要素データの各々につい
てアタックエンベロープを付加した上で所定回数ずつ繰
り返し読み出して発音する母音部発音手段と、を備えて
いる。前記母音部発音手段は、例えば、請求項5に記載
されているように、前記子音部発音手段による前記子音
部データの発音動作にクロスフェードさせて、前記母音
部記憶手段に記憶された所定の母音部構成要素データを
アタックエンベロープを付加した上で繰り返し読み出し
て発音する。また、前記母音部発音手段は、例えば、請
求項6に記載されているように、前記母音部記憶手段に
記憶された前記複数の母音部構成要素データの読み出し
順序及び読み取りの切り換えタイミングを乱数に基づい
て決定する。さらに、請求項7に記載されているよう
に、例えば、前記操作子が、合成され発音される音声に
対応する音声データにおける前記母音波形データのピッ
チ周波数に対応した音階が割り当てられた複数の鍵を備
え、前記母音部記憶手段が、前記複数の鍵毎に各鍵に対
応する複数の母音部構成要素データを記憶し、前記母音
部発音手段が、押鍵された前記鍵に対応する1ピッチ周
期分の複数の母音部構成要素データを前記母音部記憶手
段から繰り返し読み出して発音する。
成装置として、以下の構成を有する。サンプリングされ
た人声による音声データから子音部波形データを抽出す
る子音部抽出手段と、前記子音部抽出手段により抽出さ
れた子音部波形データの後半部分にリリースエンベロー
プを付加し、該リリースエンベロープを付加した子音部
波形データを前記音声データの子音部データとして出力
するエンベロープ付加手段と、前記音声データから母音
部波形データを抽出する母音部抽出手段と、前記母音部
抽出手段の抽出した母音部波形データの複数箇所におい
て、各箇所の母音部波形データから該母音部波形データ
のピッチ周波数及びその各倍音周波数の各成分の振幅強
度を抽出する周波数振幅強度抽出手段と、前記母音部波
形データの複数箇所における前記周波数強度抽出手段の
抽出結果に基づいて、前記各箇所での抽出結果毎に、各
振幅強度を有する周波数の所定形状の波形を1ピッチ周
期分ずつ生成し、該生成された各所定形状の波形を、前
記各箇所毎に、位相を合わせて加算合成して各箇所の1
ピッチ周期分の母音部構成要素データを前記複数箇所分
生成して、前記各箇所毎に前記音声データの母音部構成
要素データとして出力する母音データ合成手段と、を備
えている。前記周波数振幅強度抽出寿段は、例えば、請
求項2に記載されているように、高速フーリエ変換によ
り、母音部波形データのピッチ周波数及びその各倍音周
波数の各成分の振幅強度を母音波形データの前記各箇所
毎に抽出する。また、前記母音データ合成手段は、例え
ば、請求項3に記載されているように、前記周波数強度
抽出手段の抽出結果に基づいて、所定形状の波形として
各振幅強度を有する周波数の正弦波を1ピッチ周期分ず
つ生成し、該生成された各正弦波を位相を合わせて加算
合成して1ピッチ周期分の前記母音部構成要素データを
生成して出力する。次に、音声合成装置としては、以下
の構成を有する。前記音声データ生成装置によって生成
された音声データの前記子音部データを記憶する子音部
記憶手段と、前記音声データの前記母音部構成要素デー
タを記憶する母音部記憶手段と、外部操作が可能な操作
子と、前記操作子の操作に対応して前記子音部記憶手段
に記憶された子音部データを順次読み出して発音する子
音部発音手段と、該子音部発音手段による前記子音部デ
ータの発音終了後、前記母音部記憶手段に記憶された1
ピッチ周期分の前記複数の母音部構成要素データを所定
順序で読み出し、該母音部構成要素データの各々につい
てアタックエンベロープを付加した上で所定回数ずつ繰
り返し読み出して発音する母音部発音手段と、を備えて
いる。前記母音部発音手段は、例えば、請求項5に記載
されているように、前記子音部発音手段による前記子音
部データの発音動作にクロスフェードさせて、前記母音
部記憶手段に記憶された所定の母音部構成要素データを
アタックエンベロープを付加した上で繰り返し読み出し
て発音する。また、前記母音部発音手段は、例えば、請
求項6に記載されているように、前記母音部記憶手段に
記憶された前記複数の母音部構成要素データの読み出し
順序及び読み取りの切り換えタイミングを乱数に基づい
て決定する。さらに、請求項7に記載されているよう
に、例えば、前記操作子が、合成され発音される音声に
対応する音声データにおける前記母音波形データのピッ
チ周波数に対応した音階が割り当てられた複数の鍵を備
え、前記母音部記憶手段が、前記複数の鍵毎に各鍵に対
応する複数の母音部構成要素データを記憶し、前記母音
部発音手段が、押鍵された前記鍵に対応する1ピッチ周
期分の複数の母音部構成要素データを前記母音部記憶手
段から繰り返し読み出して発音する。
【0009】
【作用】本発明では、まず、発音する音声の音声データ
の生成を音声データ生成装置により行ない、音声データ
生成装置で生成した音声データに基づいて、音声合成装
置で音声の発音を行なう。まず、音声データ生成装置で
は、サンプリングされた人声による音声データから、子
音部抽出手段により子音部波形データを抽出し、この抽
出した子音部波形データの後半部分に、エンベロープ付
加手段によりリリースエンベロープを付加し、該リリー
スエンベロープを付加した子音部波形データを前記音声
データの子音部データとして出力する。次に、前記音声
データから母音部抽出手段により母音部の複数箇所から
母音部波形データを抽出し、周波数振幅強度抽出手段に
より、母音部抽出手段の抽出した各箇所の母音部波形デ
ータから該母音部波形データのピッチ周波数及びその各
倍音周波数の各成分の振幅強度を抽出する。この周波数
強度抽出手段による母音部波形データの複数箇所におけ
る抽出結果に基づいて、母音データ合成手段により、母
音部波形データの各箇所での抽出結果毎に、各振幅強度
を有する周波数の所定形状の波形を1ピッチ周期分ずつ
生成し、該生成された各所定形状の波形を、位相を合わ
せて加算合成して、前記各箇所毎に、1ピッチ周期分の
母音部構成要素データを前記複数箇所分生成して、前記
各箇所毎に前記音声データの母音部構成要素データとし
て出力する。次に、音声合成装置では、前記音声データ
生成装置によって生成された音声データの子音部データ
を子音部記憶手段に記憶し、前記音声データの複数の母
音部構成要素データを母音部記憶手段に記憶する。外部
操作可能な操作子が操作されると、子音部発音手段が、
該操作子の操作に対応して前記子音部記憶手段に記憶さ
れた子音部データを順次読み出して発音し、母音部発音
手段が、該子音部発音手段による前記子音部データの発
音終了後、前記母音部記憶手段に記憶された1ピッチ周
期分の前記複数の母音部構成要素データを所定順序で読
み出すとともに、該母音部構成要素データの各々につい
てアタックエンベロープを付加した上で所定回数ずつ繰
り返し読み出して発音する。したがって、子音部データ
として子音部波形データにリリース特性を有するエンベ
ロープを付加することができるので、子音波形と母音波
形の接続を滑らかにし、子音波形と母音波形の接続部分
におけるノイズの発生を抑制することができる。また、
音声データの大部分を占める母音部分を、正確に1ピッ
チ周期分の母音部構成要素データとして得ることがで
き、母音部構成要素データを記憶するための記憶容量を
大幅に削減することができる。さらに、1ピッチ周期分
の母音部構成要素データを、ピッチ周波数と倍音周波数
を有する1ピッチ周期分の所定形状の波形を加算合成す
ることにより生成しているため、この1ピッチ周期分の
母音部構成要素データの両端の値が必ず0となり、かつ
両者の微分係数が連続となるため、音声合成時に、母音
部構成要素データがループ処理による加算合成される場
合に、ループポイント(波形の接続部)を適切なものと
することができ、ループポイントにおけるノイズの発生
をなくすことができる。また、母音部について、母音部
波形データの複数箇所について母音部構成要素データを
生成し、音声合成時に、各母音部構成要素データをルー
プ処理するとともに、該ループ処理する複数の母音部構
成要素データを所定の順序で切り替えて、発音すること
により、母音部の振幅波形に微妙な変化を持たせること
ができ、人声のような自然な揺らぎを再現することがで
きる。また、子音部データの発音動作にクロスフェード
させて、母音部構成要素データをアタックエンベロープ
を付加した上で繰り返し読み出して発音しているので、
子音部波形が徐々に減少すると同時に、母音部波形が徐
々に立ち上がっていくため、子音部波形と母音部波形を
滑らかに接続することができ、ノイズ感をより一層減少
させることができる。さらに、複数の母音部構成要素デ
ータの読み出し順序及び読み取りの切り換えタイミング
を乱数に基づいて決定しているので、母音部の振幅波形
をより一層人声の波形に近づけることができ、母音部の
より一層自然な揺らぎを再現することができる。
の生成を音声データ生成装置により行ない、音声データ
生成装置で生成した音声データに基づいて、音声合成装
置で音声の発音を行なう。まず、音声データ生成装置で
は、サンプリングされた人声による音声データから、子
音部抽出手段により子音部波形データを抽出し、この抽
出した子音部波形データの後半部分に、エンベロープ付
加手段によりリリースエンベロープを付加し、該リリー
スエンベロープを付加した子音部波形データを前記音声
データの子音部データとして出力する。次に、前記音声
データから母音部抽出手段により母音部の複数箇所から
母音部波形データを抽出し、周波数振幅強度抽出手段に
より、母音部抽出手段の抽出した各箇所の母音部波形デ
ータから該母音部波形データのピッチ周波数及びその各
倍音周波数の各成分の振幅強度を抽出する。この周波数
強度抽出手段による母音部波形データの複数箇所におけ
る抽出結果に基づいて、母音データ合成手段により、母
音部波形データの各箇所での抽出結果毎に、各振幅強度
を有する周波数の所定形状の波形を1ピッチ周期分ずつ
生成し、該生成された各所定形状の波形を、位相を合わ
せて加算合成して、前記各箇所毎に、1ピッチ周期分の
母音部構成要素データを前記複数箇所分生成して、前記
各箇所毎に前記音声データの母音部構成要素データとし
て出力する。次に、音声合成装置では、前記音声データ
生成装置によって生成された音声データの子音部データ
を子音部記憶手段に記憶し、前記音声データの複数の母
音部構成要素データを母音部記憶手段に記憶する。外部
操作可能な操作子が操作されると、子音部発音手段が、
該操作子の操作に対応して前記子音部記憶手段に記憶さ
れた子音部データを順次読み出して発音し、母音部発音
手段が、該子音部発音手段による前記子音部データの発
音終了後、前記母音部記憶手段に記憶された1ピッチ周
期分の前記複数の母音部構成要素データを所定順序で読
み出すとともに、該母音部構成要素データの各々につい
てアタックエンベロープを付加した上で所定回数ずつ繰
り返し読み出して発音する。したがって、子音部データ
として子音部波形データにリリース特性を有するエンベ
ロープを付加することができるので、子音波形と母音波
形の接続を滑らかにし、子音波形と母音波形の接続部分
におけるノイズの発生を抑制することができる。また、
音声データの大部分を占める母音部分を、正確に1ピッ
チ周期分の母音部構成要素データとして得ることがで
き、母音部構成要素データを記憶するための記憶容量を
大幅に削減することができる。さらに、1ピッチ周期分
の母音部構成要素データを、ピッチ周波数と倍音周波数
を有する1ピッチ周期分の所定形状の波形を加算合成す
ることにより生成しているため、この1ピッチ周期分の
母音部構成要素データの両端の値が必ず0となり、かつ
両者の微分係数が連続となるため、音声合成時に、母音
部構成要素データがループ処理による加算合成される場
合に、ループポイント(波形の接続部)を適切なものと
することができ、ループポイントにおけるノイズの発生
をなくすことができる。また、母音部について、母音部
波形データの複数箇所について母音部構成要素データを
生成し、音声合成時に、各母音部構成要素データをルー
プ処理するとともに、該ループ処理する複数の母音部構
成要素データを所定の順序で切り替えて、発音すること
により、母音部の振幅波形に微妙な変化を持たせること
ができ、人声のような自然な揺らぎを再現することがで
きる。また、子音部データの発音動作にクロスフェード
させて、母音部構成要素データをアタックエンベロープ
を付加した上で繰り返し読み出して発音しているので、
子音部波形が徐々に減少すると同時に、母音部波形が徐
々に立ち上がっていくため、子音部波形と母音部波形を
滑らかに接続することができ、ノイズ感をより一層減少
させることができる。さらに、複数の母音部構成要素デ
ータの読み出し順序及び読み取りの切り換えタイミング
を乱数に基づいて決定しているので、母音部の振幅波形
をより一層人声の波形に近づけることができ、母音部の
より一層自然な揺らぎを再現することができる。
【0010】
【実施例】以下、本発明を実施例に基づいて具体的に説
明する。本実施例は、音声合成に必要な子音部データと
母音部構成要素データを生成する音声データ生成部と、
生成された音声データを用いて音声合成を行なう音声合
成部の2つに分けられる。ここで、音声データ生成部
は、通常、メーカの工場における音声合成部を備えた電
子楽器等の製造時に使用される装置として実現され、音
声合成部は、ユーザに提供される電子楽器等の一部とし
て実現される。なお、音声データ生成部としては、ユー
ザに提供される電子楽器等の内部に組み込み、ユーザが
自由に音声データを作成できるような構成にしてもよ
い。
明する。本実施例は、音声合成に必要な子音部データと
母音部構成要素データを生成する音声データ生成部と、
生成された音声データを用いて音声合成を行なう音声合
成部の2つに分けられる。ここで、音声データ生成部
は、通常、メーカの工場における音声合成部を備えた電
子楽器等の製造時に使用される装置として実現され、音
声合成部は、ユーザに提供される電子楽器等の一部とし
て実現される。なお、音声データ生成部としては、ユー
ザに提供される電子楽器等の内部に組み込み、ユーザが
自由に音声データを作成できるような構成にしてもよ
い。
【0011】音声データ生成部の実施例の説明 最初に、音声データ生成部について、図1のブロック図
を用いて説明する。音声データ生成部100は、音声検
出部101、サンプリング部102、パラメータ設定部
103、原データファイル記憶部104、子音部切り出
し部105、エンベロープ付加部106、子音データフ
ァイル記憶部107、母音部切り出し部108、FFT
演算部109、倍音成分比抽出部110、母音データ合
成部111及び母音データファイル記憶部112等を備
えている。
を用いて説明する。音声データ生成部100は、音声検
出部101、サンプリング部102、パラメータ設定部
103、原データファイル記憶部104、子音部切り出
し部105、エンベロープ付加部106、子音データフ
ァイル記憶部107、母音部切り出し部108、FFT
演算部109、倍音成分比抽出部110、母音データ合
成部111及び母音データファイル記憶部112等を備
えている。
【0012】音声検出部101は、マイクや増幅器等で
構成され、人が発音した音声を検出して、サンプリング
部102に出力する。サンプリング部102は、音声検
出部101の検出した音声信号を標本化及び量子化し、
ディジタル信号として原データファイル記憶部104に
出力する。原データファイル記憶部104は、例えば、
磁気ディスク装置等で構成され、ディジタル変換された
音声信号を記憶する。
構成され、人が発音した音声を検出して、サンプリング
部102に出力する。サンプリング部102は、音声検
出部101の検出した音声信号を標本化及び量子化し、
ディジタル信号として原データファイル記憶部104に
出力する。原データファイル記憶部104は、例えば、
磁気ディスク装置等で構成され、ディジタル変換された
音声信号を記憶する。
【0013】いま、例えば、階名の「レ」の音声が発音
されると、音声検出部101により検出し、サンプリン
グ部102で標本化と量子化を行なって原データファイ
ル記憶部104に記憶する。なお、階名「レ」の音声波
形は、例えば、図2のように示される。図2において、
*の区間が子音波形であり、そのあとに続く波形が母音
波形である。
されると、音声検出部101により検出し、サンプリン
グ部102で標本化と量子化を行なって原データファイ
ル記憶部104に記憶する。なお、階名「レ」の音声波
形は、例えば、図2のように示される。図2において、
*の区間が子音波形であり、そのあとに続く波形が母音
波形である。
【0014】原データファイル記憶部104に記憶され
た音声信号は、子音部切り出し部(子音部抽出手段)1
05により上記子音波形区間が切り出され、エンベロー
プ付加部106に出力される。なお、この子音の切り出
しの際に必要なパラメータ(子音切り出し時間及びリリ
ース開始時間)は、パラメータ設定部103に記憶され
ており、後述するようにパラメータ設定部103によっ
て設定される。
た音声信号は、子音部切り出し部(子音部抽出手段)1
05により上記子音波形区間が切り出され、エンベロー
プ付加部106に出力される。なお、この子音の切り出
しの際に必要なパラメータ(子音切り出し時間及びリリ
ース開始時間)は、パラメータ設定部103に記憶され
ており、後述するようにパラメータ設定部103によっ
て設定される。
【0015】エンベロープ付加部(エンベロープ付加手
段)106は、子音部切り出し部105により切り出さ
れた子音波形に対して、その後半部にリリースエンベロ
ープを付加し、リリースエンベロープを付加した子音部
波形データを、子音部データとして子音部データファイ
ル記憶部107に出力する。
段)106は、子音部切り出し部105により切り出さ
れた子音波形に対して、その後半部にリリースエンベロ
ープを付加し、リリースエンベロープを付加した子音部
波形データを、子音部データとして子音部データファイ
ル記憶部107に出力する。
【0016】子音部波形データに上述したようなエンベ
ロープが付加されることにより、子音波形と母音波形と
の接続を滑らかにすることができ、この接続部分におけ
るノイズの発生を抑制することができる。
ロープが付加されることにより、子音波形と母音波形と
の接続を滑らかにすることができ、この接続部分におけ
るノイズの発生を抑制することができる。
【0017】一方、母音部切り出し部(母音部抽出手
段)108は、原データファイル記憶部104から音声
信号を読み出し、読み出した音声信号から上述の先頭区
間の子音データに続く母音波形部分を切り出して、FT
T演算部109に出力する。
段)108は、原データファイル記憶部104から音声
信号を読み出し、読み出した音声信号から上述の先頭区
間の子音データに続く母音波形部分を切り出して、FT
T演算部109に出力する。
【0018】FFT演算部109は、上述の母音部切り
出し部108で切り出された母音波形部分に対してFF
T(高速フーリエ変換)の演算を実行し、母音波形の各
周波数の振幅強度を求めて、倍音成分比抽出部110に
出力する。FFT演算部109は、この母音波形の各周
波数の振幅強度の算出を、前記母音波形部分の適当な複
数の箇所について行ない、この複数の各箇所について算
出した振幅強度をそれぞれ倍音成分比抽出部110に出
力する。
出し部108で切り出された母音波形部分に対してFF
T(高速フーリエ変換)の演算を実行し、母音波形の各
周波数の振幅強度を求めて、倍音成分比抽出部110に
出力する。FFT演算部109は、この母音波形の各周
波数の振幅強度の算出を、前記母音波形部分の適当な複
数の箇所について行ない、この複数の各箇所について算
出した振幅強度をそれぞれ倍音成分比抽出部110に出
力する。
【0019】倍音成分比抽出部110は、FFT演算部
109で求まった複数の母音波形の各周波数振幅成分か
ら、複数箇所のそれぞれについて、ピッチ周波数と各倍
音周波数の振幅強度を抽出し、各箇所の振幅強度を母音
データ合成部111に出力する。この場合、入力音声信
号のピッチ周波数はあらかじめ分かっているものとし、
また、各倍音周波数はピッチ周波数に対して整数倍の値
となるように設定される。したがって、上記FFT演算
部109及び倍音成分比抽出部110は、全体として母
音部抽出手段である母音部切り出し部108が抽出した
母音部波形データの複数箇所において、各箇所の母音部
波形データから該母音部波形データのピッチ周波数及び
その各倍音周波数の各成分の振幅強度を抽出する周波数
振幅強度抽出手段として機能する。
109で求まった複数の母音波形の各周波数振幅成分か
ら、複数箇所のそれぞれについて、ピッチ周波数と各倍
音周波数の振幅強度を抽出し、各箇所の振幅強度を母音
データ合成部111に出力する。この場合、入力音声信
号のピッチ周波数はあらかじめ分かっているものとし、
また、各倍音周波数はピッチ周波数に対して整数倍の値
となるように設定される。したがって、上記FFT演算
部109及び倍音成分比抽出部110は、全体として母
音部抽出手段である母音部切り出し部108が抽出した
母音部波形データの複数箇所において、各箇所の母音部
波形データから該母音部波形データのピッチ周波数及び
その各倍音周波数の各成分の振幅強度を抽出する周波数
振幅強度抽出手段として機能する。
【0020】母音データ合成部(母音データ合成手段)
111は、倍音成分比抽出部110の抽出結果に基づい
て、上述のピッチ周波数と各倍音周波数をそれぞれ有
し、上述の抽出された各振幅強度を有する複数の正弦波
形をそれぞれ1ピッチ周期分ずつ生成し、これら各正弦
波形を位相を合せて加算合成して、1ピッチ周期分の母
音部構成要素データをする。母音データ合成部111
は、倍音成分比抽出部110から入力される各複数箇所
に対応した抽出結果の数だけ、上記母音部構成要素デー
タの生成処理を行ない、生成した該複数箇所分の母音部
構成要素データを母音データファイル記憶部112に出
力する。
111は、倍音成分比抽出部110の抽出結果に基づい
て、上述のピッチ周波数と各倍音周波数をそれぞれ有
し、上述の抽出された各振幅強度を有する複数の正弦波
形をそれぞれ1ピッチ周期分ずつ生成し、これら各正弦
波形を位相を合せて加算合成して、1ピッチ周期分の母
音部構成要素データをする。母音データ合成部111
は、倍音成分比抽出部110から入力される各複数箇所
に対応した抽出結果の数だけ、上記母音部構成要素デー
タの生成処理を行ない、生成した該複数箇所分の母音部
構成要素データを母音データファイル記憶部112に出
力する。
【0021】母音データファイル記憶部112は、母音
データ合成部111から入力される複数箇所分の母音部
構成要素データを記憶する。
データ合成部111から入力される複数箇所分の母音部
構成要素データを記憶する。
【0022】以上のように、本実施例では、音声データ
の大部分を占める母音部分を、正確に1ピッチ周期分の
母音部構成要素データとして得ることができ、後述する
音声合成装置の母音部構成要素データを記憶するための
母音部記憶手段の記憶容量を大幅に削減することができ
る。
の大部分を占める母音部分を、正確に1ピッチ周期分の
母音部構成要素データとして得ることができ、後述する
音声合成装置の母音部構成要素データを記憶するための
母音部記憶手段の記憶容量を大幅に削減することができ
る。
【0023】また、1ピッチ周期の母音部構成要素デー
タは、それぞれピッチ周波数と各倍音周波数を有する1
ピッチ周期分の各正弦波形(所定形状の波)が加算合成
されることによって生成されるため、この1ピッチ周期
の母音部構成要素データの両端の値は必ず0となり、か
つ両者の微分係数は連続となるため、後述するように、
音声合成時に上記母音部構成要素データがループ処理さ
れる場合に、ループポイント(波形の接続部)における
ノイズの発生をなくすことができる。
タは、それぞれピッチ周波数と各倍音周波数を有する1
ピッチ周期分の各正弦波形(所定形状の波)が加算合成
されることによって生成されるため、この1ピッチ周期
の母音部構成要素データの両端の値は必ず0となり、か
つ両者の微分係数は連続となるため、後述するように、
音声合成時に上記母音部構成要素データがループ処理さ
れる場合に、ループポイント(波形の接続部)における
ノイズの発生をなくすことができる。
【0024】次に、上述の音声データ生成部100の各
動作のうち、子音部波形データの作成と、母音部構成要
素データの作成の各動作について説明する。 <子音波形の切り出し処理の説明>
動作のうち、子音部波形データの作成と、母音部構成要
素データの作成の各動作について説明する。 <子音波形の切り出し処理の説明>
【0025】まず、子音波形の切り出し処理がソフトウ
ェア処理によって行なわれる場合の動作について、図3
のフローチャートを用いて説明する。なお、このフロー
チャートは、図1の子音部切り出し部105とエンベロ
ープ付加部106が図示しない制御プログラムを実行す
る動作として実現される。
ェア処理によって行なわれる場合の動作について、図3
のフローチャートを用いて説明する。なお、このフロー
チャートは、図1の子音部切り出し部105とエンベロ
ープ付加部106が図示しない制御プログラムを実行す
る動作として実現される。
【0026】まず、原データファイル記憶部104にア
クセスし、原データファイルがオープンされると(ステ
ップS301)、子音切り出しに必要なパラメータを、
パラメータ設定部103から子音部切り出し部105に
入力する(ステップS302)。このパラメータは、図
4に示すように、子音切り出し時間aと、リリース開始
時間Tの2つである。
クセスし、原データファイルがオープンされると(ステ
ップS301)、子音切り出しに必要なパラメータを、
パラメータ設定部103から子音部切り出し部105に
入力する(ステップS302)。このパラメータは、図
4に示すように、子音切り出し時間aと、リリース開始
時間Tの2つである。
【0027】この子音切り出し時間aは、データの先頭
から何秒分のデータを切り出すかを指定し、また、リリ
ース開始時間Tは、子音データの先頭から何秒後に、リ
リース・エンベロープをかけるかを指定するパラメータ
である。
から何秒分のデータを切り出すかを指定し、また、リリ
ース開始時間Tは、子音データの先頭から何秒後に、リ
リース・エンベロープをかけるかを指定するパラメータ
である。
【0028】実際にリリース・エンベロープを子音波形
にかけるリリース時間は、子音切り出し時間aから、子
音切り出し開始点を基準としたリリース開始時刻Tを減
算した時間(a−T)である。したがって、リリース・
エンベロープの減衰レートは、−1/(a−T)として
求めることができる。
にかけるリリース時間は、子音切り出し時間aから、子
音切り出し開始点を基準としたリリース開始時刻Tを減
算した時間(a−T)である。したがって、リリース・
エンベロープの減衰レートは、−1/(a−T)として
求めることができる。
【0029】これらのパラメータは、音声の種類(階
名)によって異なるが、経験的に、子音切り出し時間a
は80ミリセカンド程度、リリース開始時刻Tは30ミ
リセカンド前後が適当である。なお、上記各パラメータ
は、ディスプレイ等に表示させた音声波形データを見な
がら、適宜設定するようにしてもよい。
名)によって異なるが、経験的に、子音切り出し時間a
は80ミリセカンド程度、リリース開始時刻Tは30ミ
リセカンド前後が適当である。なお、上記各パラメータ
は、ディスプレイ等に表示させた音声波形データを見な
がら、適宜設定するようにしてもよい。
【0030】再び、図3において、パラメータ入力が完
了すると、原データファイル104から1ワード(1サ
ンプル分)の音声データの読み込みを行ない(ステップ
S303)、読み込んだ音声データの総数に対応する時
間が、図4の子音切り出し開始点を基準として、リリー
ス開始時刻Tを越えたか否か判定する(ステップS30
4)。
了すると、原データファイル104から1ワード(1サ
ンプル分)の音声データの読み込みを行ない(ステップ
S303)、読み込んだ音声データの総数に対応する時
間が、図4の子音切り出し開始点を基準として、リリー
ス開始時刻Tを越えたか否か判定する(ステップS30
4)。
【0031】判定がYESならば、読み込んだデータに
リリース・エンベロープを乗算し(ステップS30
5)、乗算結果の1ワードのデータを子音データファイ
ル記憶部107に子音データファイルとして書き込む
(ステップS306)。
リリース・エンベロープを乗算し(ステップS30
5)、乗算結果の1ワードのデータを子音データファイ
ル記憶部107に子音データファイルとして書き込む
(ステップS306)。
【0032】判定がNOならば、ステップS303で読
み込んだ1ワードデータをそのまま子音データファイル
記憶部107に子音データファイルとして書き込む(ス
テップS306)。
み込んだ1ワードデータをそのまま子音データファイル
記憶部107に子音データファイルとして書き込む(ス
テップS306)。
【0033】次に、読み込んだデータ数をカウントする
カウンタを1だけインクリメントし(ステップS30
7)、このカウンタの値が子音切り出し時間aに相当す
るデータ数を超えているか否か判定する(ステップS3
08)。判定がNOならば、ステップS303に戻り、
さらに音声データが1ワード読み込まれる。
カウンタを1だけインクリメントし(ステップS30
7)、このカウンタの値が子音切り出し時間aに相当す
るデータ数を超えているか否か判定する(ステップS3
08)。判定がNOならば、ステップS303に戻り、
さらに音声データが1ワード読み込まれる。
【0034】このようにして、ステップS308の判定
がYESになれば、子音波形の切り出し処理を終了す
る。
がYESになれば、子音波形の切り出し処理を終了す
る。
【0035】<母音波形データの作成処理の説明>次
に、母音波形データの作成がソフトウェア処理によって
行なわれる場合の動作について、図5、図6のフローチ
ャートを用いて説明する。なお、このフローチャート
は、図1の母音部切り出し部109、FFT演算部10
9、倍音声分比抽出部110および母音データ合成部1
09が、図示しない制御プログラムを実行する動作とし
て実現される。
に、母音波形データの作成がソフトウェア処理によって
行なわれる場合の動作について、図5、図6のフローチ
ャートを用いて説明する。なお、このフローチャート
は、図1の母音部切り出し部109、FFT演算部10
9、倍音声分比抽出部110および母音データ合成部1
09が、図示しない制御プログラムを実行する動作とし
て実現される。
【0036】まず、前述した子音波形切り出し処理の場
合と同様に、原データファイル記憶部104にアクセス
し、原データファイルがオープンされると(ステップS
501)、このファイルの最初の部分は、子音波形であ
るから(図2参照)、この部分は読み飛ばす。具体的に
は、原データファイルに対するファイルポインタが、母
音波形データの存在する箇所まで移動する(ステップS
502)。
合と同様に、原データファイル記憶部104にアクセス
し、原データファイルがオープンされると(ステップS
501)、このファイルの最初の部分は、子音波形であ
るから(図2参照)、この部分は読み飛ばす。具体的に
は、原データファイルに対するファイルポインタが、母
音波形データの存在する箇所まで移動する(ステップS
502)。
【0037】次に、母音波形データの読込箇所の数をカ
ウントするカウンタjを0にリセットし(ステップS5
03)、後述するFFT演算の実行に必要な数の母音部
の音声波形データの各サンプルを、配列バッファDAT
Aに読み込む(ステップS504)。
ウントするカウンタjを0にリセットし(ステップS5
03)、後述するFFT演算の実行に必要な数の母音部
の音声波形データの各サンプルを、配列バッファDAT
Aに読み込む(ステップS504)。
【0038】その後、作成されるべき1ピッチ周期分の
母音波形のサンプル数を、N=fs/faなる演算によ
って求める(ステップS504)。ここで、fsは、原
データファイルにおける音声データのサンプリング周波
数、faは、作成されるべき母音波形のピッチ周波数で
ある。なお、これらのパラメータは、原データファイル
の作成時に外部から指定される。
母音波形のサンプル数を、N=fs/faなる演算によ
って求める(ステップS504)。ここで、fsは、原
データファイルにおける音声データのサンプリング周波
数、faは、作成されるべき母音波形のピッチ周波数で
ある。なお、これらのパラメータは、原データファイル
の作成時に外部から指定される。
【0039】次に、変数iを値0にクリアした後(ステ
ップS506)、1ピッチ周期分すなわちNサンプルの
母音波形の格納される配列バッファWAVE[i]のす
べての要素(0≦i≦N)を値0にクリアする(ステッ
プS507〜S509)。
ップS506)、1ピッチ周期分すなわちNサンプルの
母音波形の格納される配列バッファWAVE[i]のす
べての要素(0≦i≦N)を値0にクリアする(ステッ
プS507〜S509)。
【0040】その後、配列バッファDATAに格納され
ている母音波形データに対してFFT演算を実行し、母
音波形の各周波数の振幅強度を求める(ステップS51
0)。この算出した各周波数の振幅強度値を、特には図
示しない配列バッファに格納する。
ている母音波形データに対してFFT演算を実行し、母
音波形の各周波数の振幅強度を求める(ステップS51
0)。この算出した各周波数の振幅強度値を、特には図
示しない配列バッファに格納する。
【0041】次に、ピッチまたは倍音の字数を表わす変
数kを値0にクリアする(ステップS511)。ここ
で、k=1、2、・・・はそれぞれ第2倍音、第3倍音
・・・を表わす。
数kを値0にクリアする(ステップS511)。ここ
で、k=1、2、・・・はそれぞれ第2倍音、第3倍音
・・・を表わす。
【0042】この変数kの値を0から10までインクリ
メントしながら(ステップS519、S520)、各ピ
ッチ周波数または倍音周波数の振幅強度を計算し(ステ
ップS512)、上記各ピッチ周波数または倍音周波数
をそれぞれ有するとともに、上述の抽出された各振幅強
度を有する複数の正弦波形をそれぞれ1ピッチ周期分ず
つ生成する。これら各正弦波形を位相を合わせて加算合
成する(ステップS514〜S518)。
メントしながら(ステップS519、S520)、各ピ
ッチ周波数または倍音周波数の振幅強度を計算し(ステ
ップS512)、上記各ピッチ周波数または倍音周波数
をそれぞれ有するとともに、上述の抽出された各振幅強
度を有する複数の正弦波形をそれぞれ1ピッチ周期分ず
つ生成する。これら各正弦波形を位相を合わせて加算合
成する(ステップS514〜S518)。
【0043】具体的には、まず、ステップS511で、
以下のような演算を実行する。すなわち、各ピッチ周波
数及び倍音周波数は、(2π/N)・k[ラジアン]で
表される。そこで、ステップS510でのFFT演算に
よって求められた各周波数の振幅強度のうち、周波数
(2π/N)・kの近傍の周波数に対応する各振幅強度
に基づいて周波数(2π/N)・kの振幅強度ckを演
算する。
以下のような演算を実行する。すなわち、各ピッチ周波
数及び倍音周波数は、(2π/N)・k[ラジアン]で
表される。そこで、ステップS510でのFFT演算に
よって求められた各周波数の振幅強度のうち、周波数
(2π/N)・kの近傍の周波数に対応する各振幅強度
に基づいて周波数(2π/N)・kの振幅強度ckを演
算する。
【0044】次に、各サンプルを示す変数iの値を0か
らNまでインクリメントしながら(ステップS513、
S517、S518)、周波数(2π/N)・kを有す
る正弦波の各サンプル値を変数h_dataの値として
計算し(ステップS514)、このサンプル値h_da
taにステップS511で求めた振幅強度振幅強度ck
を乗算し(ステップS515)、その新たなサンプル値
h_dataを現在の配列バッファWAVE[i]に累
算する。このようにして、1つのピッチ周波数または倍
音周波数に対応する1ピッチ周期分すなわちNサンプル
分の正弦波形が計算され、配列バッファWAVE[i]
に累算される。
らNまでインクリメントしながら(ステップS513、
S517、S518)、周波数(2π/N)・kを有す
る正弦波の各サンプル値を変数h_dataの値として
計算し(ステップS514)、このサンプル値h_da
taにステップS511で求めた振幅強度振幅強度ck
を乗算し(ステップS515)、その新たなサンプル値
h_dataを現在の配列バッファWAVE[i]に累
算する。このようにして、1つのピッチ周波数または倍
音周波数に対応する1ピッチ周期分すなわちNサンプル
分の正弦波形が計算され、配列バッファWAVE[i]
に累算される。
【0045】以上の動作を、kの値を0から10までイ
ンクリメントしながら実行することにより(ステップS
519、S520)、ピッチ周波数成分及び第2倍音か
ら第11倍音までの倍音成分が正弦波合成された1ピッ
チ周期分の母音波形データを配列バッファWAVE
[i](0≦i≦N)として求めることができる。
ンクリメントしながら実行することにより(ステップS
519、S520)、ピッチ周波数成分及び第2倍音か
ら第11倍音までの倍音成分が正弦波合成された1ピッ
チ周期分の母音波形データを配列バッファWAVE
[i](0≦i≦N)として求めることができる。
【0046】変数kの値が11に達すると(ステップS
520の判定がYES)、配列バッファWAVE[i]
に累算されたN個の母音波形データが、1ピッチ周期分
の母音部構成要素データとして、母音データファイル記
憶部112にセーブされる(ステップS521)。
520の判定がYES)、配列バッファWAVE[i]
に累算されたN個の母音波形データが、1ピッチ周期分
の母音部構成要素データとして、母音データファイル記
憶部112にセーブされる(ステップS521)。
【0047】以上により母音波形部の複数箇所で抽出し
たデータの一つについての母音部構成要素データの生成
が完了したことになる。したがって、次の抽出データに
ついての母音部構成要素データの生成を行なうため、変
数jを1だけインクリメントし(ステップS522)、
変数jが2であるかどうかチェックする(ステップS5
23)。本実施例では、抽出箇所を2箇所としているた
め、ステップS523で、変数jが2になったかどうか
をチェックしているが、母音波形部での抽出箇所の数
は、2箇所に限られるものではない。変数jが2になっ
ていないときには、母音部の波形データを所定量読み飛
ばした後(ステップS524)、ステップS504に移
行して、バッファ“DATA”へ母音部データを読み込
む。以下同様に、読み込んだ母音部データに対して、F
FT演算処理、倍音成分比抽出処理及び母音データ合成
処理を行なって、母音部構成要素データを生成し、母音
データファイル記憶部112にセーブする(ステップS
521)。
たデータの一つについての母音部構成要素データの生成
が完了したことになる。したがって、次の抽出データに
ついての母音部構成要素データの生成を行なうため、変
数jを1だけインクリメントし(ステップS522)、
変数jが2であるかどうかチェックする(ステップS5
23)。本実施例では、抽出箇所を2箇所としているた
め、ステップS523で、変数jが2になったかどうか
をチェックしているが、母音波形部での抽出箇所の数
は、2箇所に限られるものではない。変数jが2になっ
ていないときには、母音部の波形データを所定量読み飛
ばした後(ステップS524)、ステップS504に移
行して、バッファ“DATA”へ母音部データを読み込
む。以下同様に、読み込んだ母音部データに対して、F
FT演算処理、倍音成分比抽出処理及び母音データ合成
処理を行なって、母音部構成要素データを生成し、母音
データファイル記憶部112にセーブする(ステップS
521)。
【0048】抽出箇所分(2箇所分)の母音部構成要素
データの生成を完了して、ステップS523で変数jが
2になると、母音部構成要素データの抽出処理が完了し
たことになる。
データの生成を完了して、ステップS523で変数jが
2になると、母音部構成要素データの抽出処理が完了し
たことになる。
【0049】音声合成部の実施例の説明 以上のようにして、図1の音声データ生成部において子
音データファイルおよび子音データファイルとして生成
された音声データは、例えばメーカの工場において電子
楽器内のROMなどに記憶される。そして、ユーザによ
る電子楽器の演奏操作時に、演奏された楽音とともに上
記音声データが合成され発音される。 <電子鍵盤楽器における音声合成部の構成の説明>
音データファイルおよび子音データファイルとして生成
された音声データは、例えばメーカの工場において電子
楽器内のROMなどに記憶される。そして、ユーザによ
る電子楽器の演奏操作時に、演奏された楽音とともに上
記音声データが合成され発音される。 <電子鍵盤楽器における音声合成部の構成の説明>
【0050】図7は、本発明による音声合成部を電子鍵
盤楽器に適用した場合の1実施例の全体構成図である。
なお、鍵盤操作に従って楽音信号を発生する部分の構成
は省略してある。
盤楽器に適用した場合の1実施例の全体構成図である。
なお、鍵盤操作に従って楽音信号を発生する部分の構成
は省略してある。
【0051】図7において、電子鍵盤楽器700は、C
PU(CentralProcessing Unit)701、鍵盤702、
子音部メモリ703、母音部メモリ704、データメモ
リ805、作業用RAM(Random Access Memory)70
6、D/A変換器707、発音回路708、fsカウン
タ709及び乱数発生器710等を備えている。
PU(CentralProcessing Unit)701、鍵盤702、
子音部メモリ703、母音部メモリ704、データメモ
リ805、作業用RAM(Random Access Memory)70
6、D/A変換器707、発音回路708、fsカウン
タ709及び乱数発生器710等を備えている。
【0052】CPU701は、内部メモリに電子鍵盤楽
器700としてのプログラムや音声合成処理プログラム
等を格納しており、内部メモリをワークメモリとして利
用しながら、子音部メモリ703、母音部メモリ70
4、及び後述する各種データテーブルが格納されたデー
タメモリ705、作業用RAM706及び乱数発生器7
10等を用いて、電子鍵盤楽器700としての処理を行
なうとともに、鍵盤702において押鍵された鍵に対応
する階名または音名の内容を有する音声信号を合成す
る。
器700としてのプログラムや音声合成処理プログラム
等を格納しており、内部メモリをワークメモリとして利
用しながら、子音部メモリ703、母音部メモリ70
4、及び後述する各種データテーブルが格納されたデー
タメモリ705、作業用RAM706及び乱数発生器7
10等を用いて、電子鍵盤楽器700としての処理を行
なうとともに、鍵盤702において押鍵された鍵に対応
する階名または音名の内容を有する音声信号を合成す
る。
【0053】子音部メモリ(子音部記憶手段)703及
び母音部メモリ(母音部記憶手段)704は、ROM
(Read Only Memory)等で構成され、子音部メモリ70
3及び母音部メモリ704には、例えば、メーカの工場
において、図1の音声データ生成部100において生成
された子音データファイル及び母音データファイルの各
データが記憶される。この場合、鍵盤(操作子)702
の各鍵の階名または音名の内容が発音されるような複数
の子音波形と母音波形の組が記憶される。また、それぞ
れの鍵に対応するピッチ周波数を有する複数の母音波形
が記憶される。
び母音部メモリ(母音部記憶手段)704は、ROM
(Read Only Memory)等で構成され、子音部メモリ70
3及び母音部メモリ704には、例えば、メーカの工場
において、図1の音声データ生成部100において生成
された子音データファイル及び母音データファイルの各
データが記憶される。この場合、鍵盤(操作子)702
の各鍵の階名または音名の内容が発音されるような複数
の子音波形と母音波形の組が記憶される。また、それぞ
れの鍵に対応するピッチ周波数を有する複数の母音波形
が記憶される。
【0054】この場合、fsカウンタ709は、発音処
理される音声信号のサンプリング周波数fsを有する各
サンプリング周期毎に、CPU701のインタラプト端
子(INTERRUPT)にインタラプト信号を供給す
る。
理される音声信号のサンプリング周波数fsを有する各
サンプリング周期毎に、CPU701のインタラプト端
子(INTERRUPT)にインタラプト信号を供給す
る。
【0055】CPU701において合成された音声信号
は、D/A変換器707でアナログ信号に変換された
後、発音回路708で発音される。
は、D/A変換器707でアナログ信号に変換された
後、発音回路708で発音される。
【0056】<音声合成処理の全体動作の説明>次に、
図8は、電子鍵盤楽器700において行なわれる音声合
成処理の全体的な動作を表すフローチャートである。こ
のフローチャートは、図7のCPU701が、図示しな
いROM等の内部メモリに記憶された制御プログラムを
実行する動作として実現される。
図8は、電子鍵盤楽器700において行なわれる音声合
成処理の全体的な動作を表すフローチャートである。こ
のフローチャートは、図7のCPU701が、図示しな
いROM等の内部メモリに記憶された制御プログラムを
実行する動作として実現される。
【0057】まず、電源投入後に、イニシャル処理とし
て、CPU701のI/Oポートや、作業用RAM70
6の初期化などを行なう(ステップS801)。
て、CPU701のI/Oポートや、作業用RAM70
6の初期化などを行なう(ステップS801)。
【0058】その後、鍵盤702の各鍵の状態を走査
(スキャン)し(ステップS802)、新たな鍵のオン
操作またはオフ操作があったか否かを判定する(ステッ
プS803)。
(スキャン)し(ステップS802)、新たな鍵のオン
操作またはオフ操作があったか否かを判定する(ステッ
プS803)。
【0059】鍵の状態に変化があった場合は、それが新
たなオンであるのか、オフであるのかを判定する(ステ
ップS804)。
たなオンであるのか、オフであるのかを判定する(ステ
ップS804)。
【0060】もし、新たなオンであれば、発音を開始さ
せるためアタック処理を行ない(ステップS805)、
新たなオフであれば、発音を終了させるためのリリース
処理を行う(ステップS806)。
せるためアタック処理を行ない(ステップS805)、
新たなオフであれば、発音を終了させるためのリリース
処理を行う(ステップS806)。
【0061】アタック処理とリリース処理を行なった後
は、再びステップS802の鍵盤スキャン処理にジャン
プし、上述の処理を繰り返す。
は、再びステップS802の鍵盤スキャン処理にジャン
プし、上述の処理を繰り返す。
【0062】ここで、上述の繰り返し処理中に、サンプ
リング周期毎にfsカウンタ709から割り込みがかか
り、その都度、インタラプト処理を実行する(ステップ
S807)。このインタラプト処理により生成された音
声信号をD/A変換器707でD/A変換し、発音回路
708で発音する。
リング周期毎にfsカウンタ709から割り込みがかか
り、その都度、インタラプト処理を実行する(ステップ
S807)。このインタラプト処理により生成された音
声信号をD/A変換器707でD/A変換し、発音回路
708で発音する。
【0063】<音声合成処理の第1の実施例の説明>上
述の構成によって実現される音声合成処理の第1の実施
例について以下に説明する。
述の構成によって実現される音声合成処理の第1の実施
例について以下に説明する。
【0064】ここでは、音声の発音を開始するために必
要なパラメータを、データメモリ705(図7参照)内
の図10に示される波形データテーブルと図11に示さ
れるエンベロープデータテーブルから読み出し、CPU
701内の特には図示しないインタラプト処理用レジス
タ群に図12に示されるようにセットする。
要なパラメータを、データメモリ705(図7参照)内
の図10に示される波形データテーブルと図11に示さ
れるエンベロープデータテーブルから読み出し、CPU
701内の特には図示しないインタラプト処理用レジス
タ群に図12に示されるようにセットする。
【0065】次に、上記発音データテーブルとエンベロ
ープデータテーブルについて図10〜図12を用いて説
明する。まず、図10の波形データテーブルにおいて、
子音スタートアドレスと子音エンドアドレスは、子音部
メモリ703(図7)に記憶されている子音波形データ
のスタートアドレスとエンドアドレスを指す。同様に、
第1母音スタートアドレスと第1母音エンドアドレス
は、母音部メモリ704において目標とする母音部構成
要素データのうち、一つ目の母音波形が始まるアドレス
と終了するアドレスであり、第2母音スタートアドレス
と第2母音エンドアドレスは、同様に、母音部メモリ7
04において目標とする母音部構成要素データのうち
の、二つ目の母音波形が始まるアドレスと終了するアド
レスである。すなわち、上記音声データ抽出処理で説明
したように、母音部においては、2箇所で母音波形の抽
出を行ない、2箇所で抽出した母音波形のそれぞれの母
音部構成要素データを生成している。この2箇所の母音
部構成要素データが母音部メモリ704に記憶されてお
り、図10の波形データテーブルの各母音スタートアド
レスと母音エンドアドレスは、この母音部メモリ704
の2箇所分の母音部構成要素データのスタートアドレス
とエンドアドレスを指している。
ープデータテーブルについて図10〜図12を用いて説
明する。まず、図10の波形データテーブルにおいて、
子音スタートアドレスと子音エンドアドレスは、子音部
メモリ703(図7)に記憶されている子音波形データ
のスタートアドレスとエンドアドレスを指す。同様に、
第1母音スタートアドレスと第1母音エンドアドレス
は、母音部メモリ704において目標とする母音部構成
要素データのうち、一つ目の母音波形が始まるアドレス
と終了するアドレスであり、第2母音スタートアドレス
と第2母音エンドアドレスは、同様に、母音部メモリ7
04において目標とする母音部構成要素データのうち
の、二つ目の母音波形が始まるアドレスと終了するアド
レスである。すなわち、上記音声データ抽出処理で説明
したように、母音部においては、2箇所で母音波形の抽
出を行ない、2箇所で抽出した母音波形のそれぞれの母
音部構成要素データを生成している。この2箇所の母音
部構成要素データが母音部メモリ704に記憶されてお
り、図10の波形データテーブルの各母音スタートアド
レスと母音エンドアドレスは、この母音部メモリ704
の2箇所分の母音部構成要素データのスタートアドレス
とエンドアドレスを指している。
【0066】エンベロープN0.は、複数のエンベロープ
データにつけられた番号で、それぞれの波形に適したエ
ンベロープデータを選択するための指示データである。
データにつけられた番号で、それぞれの波形に適したエ
ンベロープデータを選択するための指示データである。
【0067】以上のように、波形データテーブルは、7
ワードで1組のデータであって、鍵盤部702(図7参
照)における鍵の数と同じ数のデータ組がセットされ
る。また、データメモリ705(図7)中におけるこの
データ群の先頭のデータのアドレスを、データオフセッ
トアドレスDOFAと呼ぶ。
ワードで1組のデータであって、鍵盤部702(図7参
照)における鍵の数と同じ数のデータ組がセットされ
る。また、データメモリ705(図7)中におけるこの
データ群の先頭のデータのアドレスを、データオフセッ
トアドレスDOFAと呼ぶ。
【0068】次に、図11のエンベロープデータテーブ
ルは、エンベロープ処理に必要なパラメータを格納して
いるテーブルであり、これらのパラメータについて、図
13を用いて説明する。
ルは、エンベロープ処理に必要なパラメータを格納して
いるテーブルであり、これらのパラメータについて、図
13を用いて説明する。
【0069】図13において、Δxは、インタラプトが
何回発生したら、エンベロープ値を変化させるかを示す
パラメータであり、Δyはエンベロープ値が変化する時
の加算値である。
何回発生したら、エンベロープ値を変化させるかを示す
パラメータであり、Δyはエンベロープ値が変化する時
の加算値である。
【0070】このとき、アタックエンベロープ、すなわ
ちエンベロープが増加するときはΔyは正の値で、リリ
ースエンベロープ、すなわちエンベロープが減少すると
きはΔyは負の値になる。
ちエンベロープが増加するときはΔyは正の値で、リリ
ースエンベロープ、すなわちエンベロープが減少すると
きはΔyは負の値になる。
【0071】例えば、Δxが5である場合は、インタラ
プト5回に1回の割合で、波形データに乗算されるエン
ベロープ値はΔyづつ増やされる。したがって、エンベ
ロープ値は図13のように、階段状に変化する。
プト5回に1回の割合で、波形データに乗算されるエン
ベロープ値はΔyづつ増やされる。したがって、エンベ
ロープ値は図13のように、階段状に変化する。
【0072】また、図11のエンベロープ目標値は、ア
タック時にエンベロープ値が最終的に到達すべき値で、
その最大値は1である。アタックΔx、アタックΔyは
アタックエンベロープにおけるΔx、Δyであり、同様
にリリースΔx、リリースΔyはリリースエンベロープ
におけるΔyである。なお、リリース時のエンベロープ
目標値は0であるため、その目標値は特には設けられて
いない。
タック時にエンベロープ値が最終的に到達すべき値で、
その最大値は1である。アタックΔx、アタックΔyは
アタックエンベロープにおけるΔx、Δyであり、同様
にリリースΔx、リリースΔyはリリースエンベロープ
におけるΔyである。なお、リリース時のエンベロープ
目標値は0であるため、その目標値は特には設けられて
いない。
【0073】以上のように、エンベロープデータテーブ
ルも、5ワードで1組のデータであって、鍵盤部702
(図7参照)における鍵の数と同じ数のデータ組が設け
られる。また、データメモリ705(図7)中における
このデータ群の先頭のデータのアドレスを、エンベロー
プデータオフセットアドレスEOFAと呼ぶ。
ルも、5ワードで1組のデータであって、鍵盤部702
(図7参照)における鍵の数と同じ数のデータ組が設け
られる。また、データメモリ705(図7)中における
このデータ群の先頭のデータのアドレスを、エンベロー
プデータオフセットアドレスEOFAと呼ぶ。
【0074】次に、図12は、CPU701内に設けら
れるインタラプト処理用レジスタ群の構成を示す図であ
る。図12において、現在アドレスレジスタPADR
は、現在読み出し中の波形データ、すなわち、子音、第
1母音または第2母音のいずれかの波形データのアドレ
スを示す。現在波形エンドアドレスレジスタPEADR
は、現在発音中の音声の波形データの子音部メモリ70
3又は母音部メモリ704(図7参照)における最終ア
ドレスを示し、第1母音スタートアドレスレジスタFV
SADRと第1母音エンドアドレスレジスタFVEAD
R、及び第2母音スタートアドレスレジスタSVSAD
Rと第2母音エンドアドレスレジスタSVEADRは、
それぞれ前記2つの母音部構成要素データのうち母音部
構成要素データの母音部メモリ704(図7参照)にお
ける先頭アドレスと最終アドレスを示す。
れるインタラプト処理用レジスタ群の構成を示す図であ
る。図12において、現在アドレスレジスタPADR
は、現在読み出し中の波形データ、すなわち、子音、第
1母音または第2母音のいずれかの波形データのアドレ
スを示す。現在波形エンドアドレスレジスタPEADR
は、現在発音中の音声の波形データの子音部メモリ70
3又は母音部メモリ704(図7参照)における最終ア
ドレスを示し、第1母音スタートアドレスレジスタFV
SADRと第1母音エンドアドレスレジスタFVEAD
R、及び第2母音スタートアドレスレジスタSVSAD
Rと第2母音エンドアドレスレジスタSVEADRは、
それぞれ前記2つの母音部構成要素データのうち母音部
構成要素データの母音部メモリ704(図7参照)にお
ける先頭アドレスと最終アドレスを示す。
【0075】次に、子音/母音フラグレジスタVORC
は、現在、子音と母音のいずれが発音されているかを示
すフラグを記憶し、子音が発音中なら0、母音が発音中
なら1がセットされる。そして子音/母音フラグレジス
タVORCの内容に応じて現在アドレスレジスタPAD
Rが参照するメモリが、図7の子音部メモリ703であ
るか母音部メモリ70であるかが選択される。
は、現在、子音と母音のいずれが発音されているかを示
すフラグを記憶し、子音が発音中なら0、母音が発音中
なら1がセットされる。そして子音/母音フラグレジス
タVORCの内容に応じて現在アドレスレジスタPAD
Rが参照するメモリが、図7の子音部メモリ703であ
るか母音部メモリ70であるかが選択される。
【0076】現在エンベロープ値レジスタPENVは、
現在のエンベロープ値、エンベロープ目標値レジスタE
VDESは、前述したようにエンベロープが最終的に到
達すべき値を記憶する。レジスタDLTXとレジスタD
LTYは、それぞれ前述したΔxとΔyを記憶する。エ
ンベロープカウンタレジスタENVCは、インタラプト
処理に入った回数をカウントし、Δxと比較されてエン
ベロープ値を更新するか否かを判断するために使用され
る。
現在のエンベロープ値、エンベロープ目標値レジスタE
VDESは、前述したようにエンベロープが最終的に到
達すべき値を記憶する。レジスタDLTXとレジスタD
LTYは、それぞれ前述したΔxとΔyを記憶する。エ
ンベロープカウンタレジスタENVCは、インタラプト
処理に入った回数をカウントし、Δxと比較されてエン
ベロープ値を更新するか否かを判断するために使用され
る。
【0077】現在波形データレジスタPWAVEには、
現在、D/A変換器707に出力されている波形データ
が格納される。
現在、D/A変換器707に出力されている波形データ
が格納される。
【0078】発音中フラグレジスタBSYFLGは、現
在、音声が発音中であるか無音状態であるかを示すフラ
グを記憶し、発音中であれば1、そうでなければ0がセ
ットされる。
在、音声が発音中であるか無音状態であるかを示すフラ
グを記憶し、発音中であれば1、そうでなければ0がセ
ットされる。
【0079】{アタック処理の第1の実施例の説明}次
に、音声合成処理の第1の実施例の一部である図8のス
テップS805のアタック処理の第1の実施例の動作
を、図9のフローチャートを用いて説明する。このフロ
ーチャートは、図7のCPU701が図示しないROM
などに記憶された制御プログラムを実行する動作として
実現される。
に、音声合成処理の第1の実施例の一部である図8のス
テップS805のアタック処理の第1の実施例の動作
を、図9のフローチャートを用いて説明する。このフロ
ーチャートは、図7のCPU701が図示しないROM
などに記憶された制御プログラムを実行する動作として
実現される。
【0080】まず、発音中フラグレジスタBSYFLG
の状態を判定し(ステップS901)、現在発音中であ
れば、発音を終了させるために、今まで発音されていた
音声を急速に消音するハイリリース処理を行ない(ステ
ップS902)、発音が終了するのを待つ(ステップS
903)。
の状態を判定し(ステップS901)、現在発音中であ
れば、発音を終了させるために、今まで発音されていた
音声を急速に消音するハイリリース処理を行ない(ステ
ップS902)、発音が終了するのを待つ(ステップS
903)。
【0081】発音中フラグレジスタBSYFLGが0に
なり無音状態となると、汎用レジスタXに鍵ナンバーを
格納する(ステップS904)。鍵ナンバーは、鍵盤7
02(図7参照)において、押鍵された鍵を指す番号
で、例えば音域がF3〜C6であれば、F3を0とし
て、0から32までの数となる。この鍵ナンバーは、鍵
盤スキャン時(図8のステップS802参照)に記憶さ
れる。
なり無音状態となると、汎用レジスタXに鍵ナンバーを
格納する(ステップS904)。鍵ナンバーは、鍵盤7
02(図7参照)において、押鍵された鍵を指す番号
で、例えば音域がF3〜C6であれば、F3を0とし
て、0から32までの数となる。この鍵ナンバーは、鍵
盤スキャン時(図8のステップS802参照)に記憶さ
れる。
【0082】その後、データ・オフセットアドレスDO
FA、すなわち前述した図10の波形データテーブルの
先頭アドレスを、汎用レジスタYに記憶する(ステップ
S905)。そして、前述したように波形データテーブ
ルは7ワードで1組のデータを各鍵に対応して記憶する
ため、鍵ナンバーを7倍した値を、データ・オフセット
アドレスDOFAを格納する汎用レジスタYに加算し、
新たなYの値とすることにより、押鍵された鍵に対応す
る目標とする波形データテーブルの先頭アドレスを、汎
用レジスタYにセットする(ステップS906、S90
7)。
FA、すなわち前述した図10の波形データテーブルの
先頭アドレスを、汎用レジスタYに記憶する(ステップ
S905)。そして、前述したように波形データテーブ
ルは7ワードで1組のデータを各鍵に対応して記憶する
ため、鍵ナンバーを7倍した値を、データ・オフセット
アドレスDOFAを格納する汎用レジスタYに加算し、
新たなYの値とすることにより、押鍵された鍵に対応す
る目標とする波形データテーブルの先頭アドレスを、汎
用レジスタYにセットする(ステップS906、S90
7)。
【0083】次に、上記汎用レジスタYで示される波形
データテーブルのアドレスから図10の子音スタートア
ドレスを読み出し、現在アドレスレジスタPADRにセ
ットする(ステップS908)。これにより、押鍵され
た鍵に対応する子音波形データの先頭データが格納され
ている子音部メモリ703上のアドレスが設定される。
また、発音は子音スタートアドレスから開始されので、
インクリメントすることによって汎用レジスタYが次に
子音エンドアドレスのデータがあるアドレスを指すこと
となるため、子音エンドアドレスを現在波形エンドアド
レスレジスタPEADRにセットする。以下同様に、汎
用レジスタYの値をインクリメントするたびに図10の
波形データテーブルのアドレスを更新し、各アドレスか
ら、第1母音スタートアドレス、第1母音エンドアドレ
ス、さらに第2母音スタートアドレス及び第2母音エン
ドアドレスを、CPU701内の各レジスタFVSAD
R、FVEADR、SVSADR、SVEADRに順次
読み込んで、セットする(ステップS909〜S91
8)。
データテーブルのアドレスから図10の子音スタートア
ドレスを読み出し、現在アドレスレジスタPADRにセ
ットする(ステップS908)。これにより、押鍵され
た鍵に対応する子音波形データの先頭データが格納され
ている子音部メモリ703上のアドレスが設定される。
また、発音は子音スタートアドレスから開始されので、
インクリメントすることによって汎用レジスタYが次に
子音エンドアドレスのデータがあるアドレスを指すこと
となるため、子音エンドアドレスを現在波形エンドアド
レスレジスタPEADRにセットする。以下同様に、汎
用レジスタYの値をインクリメントするたびに図10の
波形データテーブルのアドレスを更新し、各アドレスか
ら、第1母音スタートアドレス、第1母音エンドアドレ
ス、さらに第2母音スタートアドレス及び第2母音エン
ドアドレスを、CPU701内の各レジスタFVSAD
R、FVEADR、SVSADR、SVEADRに順次
読み込んで、セットする(ステップS909〜S91
8)。
【0084】さらに、Yをインクリメントし(ステップ
S919)、図10の波形データテーブル上のエンベロ
ープNO.を読み出して、汎用レジスタXにセットする
(ステップS920)。
S919)、図10の波形データテーブル上のエンベロ
ープNO.を読み出して、汎用レジスタXにセットする
(ステップS920)。
【0085】次に、汎用レジスタYに、エンベロープデ
ータオフセットアドレスEOFAを格納する(ステップ
S921)。前述の波形データテーブルと同様に、エン
ベロープデータテーブルは7ワードで1組のデータを各
鍵に対応して記憶するため、鍵盤ナンバーを7倍した値
を、エンベロープデータオフセットアドレスEOFAを
格納する汎用レジスタYに加算して新たなYの値とする
ことにより、押鍵された鍵に対応する目標とするエンベ
ロープデータテーブルの先頭アドレスを、汎用レジスタ
Yにセットする(ステップS922、S923)。
ータオフセットアドレスEOFAを格納する(ステップ
S921)。前述の波形データテーブルと同様に、エン
ベロープデータテーブルは7ワードで1組のデータを各
鍵に対応して記憶するため、鍵盤ナンバーを7倍した値
を、エンベロープデータオフセットアドレスEOFAを
格納する汎用レジスタYに加算して新たなYの値とする
ことにより、押鍵された鍵に対応する目標とするエンベ
ロープデータテーブルの先頭アドレスを、汎用レジスタ
Yにセットする(ステップS922、S923)。
【0086】母音波形の場合、エンベロープ値は、発音
開始時は、値0からスタートするので、現在エンベロー
プ値レジスタPENVに値0をセットする(ステップS
924)。続いて、Yをインクリメントする毎にエンベ
ロープ目標値をレジスタEVDESに、アタックΔx、
アタックΔyを、それぞれレジスタDLTX、DLTY
に順次セットする(ステップS925〜ステップS92
9)。
開始時は、値0からスタートするので、現在エンベロー
プ値レジスタPENVに値0をセットする(ステップS
924)。続いて、Yをインクリメントする毎にエンベ
ロープ目標値をレジスタEVDESに、アタックΔx、
アタックΔyを、それぞれレジスタDLTX、DLTY
に順次セットする(ステップS925〜ステップS92
9)。
【0087】さらに、Yをインクリメントすると(ステ
ップS930)、Yの値はリリースΔxを格納したアド
レスを指定している(図11参照)。このリリースΔx
をレジスタRLADRに格納し(ステップS931)、
後述するリリース処理で使用する。
ップS930)、Yの値はリリースΔxを格納したアド
レスを指定している(図11参照)。このリリースΔx
をレジスタRLADRに格納し(ステップS931)、
後述するリリース処理で使用する。
【0088】この後、エンベロープカウンタレジスタE
NVC、現在波形データレジスタPWAVEをそれぞれ
値0に初期化し(ステップS932、S933)、発音
中フラグレジスタBSYFLGを値1にセットして、発
音を開始する(ステップS934)。以上で図8のステ
ップS805のアタック処理を終了する。
NVC、現在波形データレジスタPWAVEをそれぞれ
値0に初期化し(ステップS932、S933)、発音
中フラグレジスタBSYFLGを値1にセットして、発
音を開始する(ステップS934)。以上で図8のステ
ップS805のアタック処理を終了する。
【0089】{インタラプト処理の第1の実施例の説
明}次に、音声合成処理の第1の実施例の一部であるイ
ンタラプト処理の第1の実施例の動作について説明す
る。図7のCPU701において図8のフローチャート
が実行されている間に、サンプリング周期毎にfsカウ
ンタ709(図7参照)において割り込みが発生する。
fsカウンタ709からインタラプト信号を受けたCP
U701は、いままで行なっていた処理を中断し、処理
中の作業内容に関するアドレスの記憶、必要なレジスタ
のスタックへの退避などを行なった後、図8のステップ
S807のインタラプト処理にジャンプする。
明}次に、音声合成処理の第1の実施例の一部であるイ
ンタラプト処理の第1の実施例の動作について説明す
る。図7のCPU701において図8のフローチャート
が実行されている間に、サンプリング周期毎にfsカウ
ンタ709(図7参照)において割り込みが発生する。
fsカウンタ709からインタラプト信号を受けたCP
U701は、いままで行なっていた処理を中断し、処理
中の作業内容に関するアドレスの記憶、必要なレジスタ
のスタックへの退避などを行なった後、図8のステップ
S807のインタラプト処理にジャンプする。
【0090】そして、このインタラプト処理により生成
された音声信号をD/A変換器707でD/A変換し、
発音回路708で発音する。
された音声信号をD/A変換器707でD/A変換し、
発音回路708で発音する。
【0091】図8のステップS807のインタラプト処
理の第1の実施例の動作を、図14、図15、図16の
フローチャートを用いて説明する。なお、これらのフロ
ーチャートは、CPU701が図示しないROMなどに
記憶された制御プログラムを実行する動作として実現さ
れる。
理の第1の実施例の動作を、図14、図15、図16の
フローチャートを用いて説明する。なお、これらのフロ
ーチャートは、CPU701が図示しないROMなどに
記憶された制御プログラムを実行する動作として実現さ
れる。
【0092】図14のインタラプト処理に入ると、ま
ず、発音中フラグレジスタBSYFLGを判定する(ス
テップS1401)。現在、音声を発音してよい状態、
すなわち、発音中フラグが1でなければ、バスAに進
み、D/A変換器707に振幅0のデータを出力し、無
音状態を続ける(図16のステップS1402)。
ず、発音中フラグレジスタBSYFLGを判定する(ス
テップS1401)。現在、音声を発音してよい状態、
すなわち、発音中フラグが1でなければ、バスAに進
み、D/A変換器707に振幅0のデータを出力し、無
音状態を続ける(図16のステップS1402)。
【0093】発音中なら、すなわち発音中フラグが1で
あると、現在波形データレジスタPWAVEに、現在ア
ドレスレジスタPADRが示す子音部メモリ703また
は母音部メモリ704のいずれかのアドレスの波形デー
タを読み込む(ステップS1403)。このとき、子音
/母音フラグレジスタVORCの内容が0であるか1で
あるかによって、子音部メモリ703または母音部メモ
リ704のいずれかをアクセスする。
あると、現在波形データレジスタPWAVEに、現在ア
ドレスレジスタPADRが示す子音部メモリ703また
は母音部メモリ704のいずれかのアドレスの波形デー
タを読み込む(ステップS1403)。このとき、子音
/母音フラグレジスタVORCの内容が0であるか1で
あるかによって、子音部メモリ703または母音部メモ
リ704のいずれかをアクセスする。
【0094】そこで、子音/母音フラグが0であるか否
かを判定し(ステップS1404)、子音/母音フラグ
が0、すなわち子音が発音中であれば、バスBへ進む。
このバスBでは子音の発音処理が行なわれる。すなわ
ち、子音波形データは、前述したように母音波形と滑ら
かに接続されるように、子音波形データの後半部分にリ
リースエンベロープがかけられた状態で、子音部メモリ
703に記憶されている。したがって、子音の発音処理
中では、現在波形データレジスタPWAVEの内容であ
る子音波形データにエンベロープ値を乗算せず、子音波
形データをそのまま図7のD/A変換器707に出力す
る(図16のステップS1405)。
かを判定し(ステップS1404)、子音/母音フラグ
が0、すなわち子音が発音中であれば、バスBへ進む。
このバスBでは子音の発音処理が行なわれる。すなわ
ち、子音波形データは、前述したように母音波形と滑ら
かに接続されるように、子音波形データの後半部分にリ
リースエンベロープがかけられた状態で、子音部メモリ
703に記憶されている。したがって、子音の発音処理
中では、現在波形データレジスタPWAVEの内容であ
る子音波形データにエンベロープ値を乗算せず、子音波
形データをそのまま図7のD/A変換器707に出力す
る(図16のステップS1405)。
【0095】この方式では、子音発音中にはハイリリー
スはかからないが、子音部分は、母音に比べて発音時間
が短いため、実際上差し支えない。
スはかからないが、子音部分は、母音に比べて発音時間
が短いため、実際上差し支えない。
【0096】次に、現在アドレスレジスタPADRの値
が、現在波形エンドアドレスレジスタPEADRの示す
値に達したか否かを判定する(図16のステップS14
06)。現在アドレスレジスタPADRの値が現在波形
エンドアドレスレジスタPEADRの値に達している
と、子音の発音を終了して、次の母音の発音のために、
現在アドレスレジスタPADRに第1母音スタートアド
レスFVSADRをセットし(図16のステップS14
07)、子音/母音フラグレジスタVORCに、母音発
音中を示すフラグ1をセットする(図16のステップS
1408)。また、図16のステップS1406におい
て、現在アドレスレジスタPADRの値が現在波形エン
ドアドレスレジスタPEADRの示す値に達していなけ
れば、現在アドレスレジスタPADRの値をインクリメ
ントし、インタラプト処理を終了して図8のメインフロ
ーに戻る。
が、現在波形エンドアドレスレジスタPEADRの示す
値に達したか否かを判定する(図16のステップS14
06)。現在アドレスレジスタPADRの値が現在波形
エンドアドレスレジスタPEADRの値に達している
と、子音の発音を終了して、次の母音の発音のために、
現在アドレスレジスタPADRに第1母音スタートアド
レスFVSADRをセットし(図16のステップS14
07)、子音/母音フラグレジスタVORCに、母音発
音中を示すフラグ1をセットする(図16のステップS
1408)。また、図16のステップS1406におい
て、現在アドレスレジスタPADRの値が現在波形エン
ドアドレスレジスタPEADRの示す値に達していなけ
れば、現在アドレスレジスタPADRの値をインクリメ
ントし、インタラプト処理を終了して図8のメインフロ
ーに戻る。
【0097】次に、図14のステップS1404におい
て、子音/母音フラグレジスタVORCが0であり、現
在、母音が発音中であると判定した場合は、バスCに進
み、母音の発音処理を実行する。
て、子音/母音フラグレジスタVORCが0であり、現
在、母音が発音中であると判定した場合は、バスCに進
み、母音の発音処理を実行する。
【0098】母音発音処理では、まず、レジスタDLT
Yの示す内容Δyが、正であるか負であるかを判定する
(ステップS1410)。
Yの示す内容Δyが、正であるか負であるかを判定する
(ステップS1410)。
【0099】正であればアタックエンベロープ中の状
態、負であれば後述するリリース処理によってリリース
エンベロープ中の状態となっている。いずれの場合も、
現在エンベロープ値レジスタPENVの値が、エンベロ
ープ目標値レジスタEVDESの示すを超えていないか
否かを判定する(ステップS1411、S1412)。
超えていなければバスDに進み、現在波形データレジス
タPWAVEに現在エンベロープ値レジスタPENVの
値を乗算する(ステップS1413)。
態、負であれば後述するリリース処理によってリリース
エンベロープ中の状態となっている。いずれの場合も、
現在エンベロープ値レジスタPENVの値が、エンベロ
ープ目標値レジスタEVDESの示すを超えていないか
否かを判定する(ステップS1411、S1412)。
超えていなければバスDに進み、現在波形データレジス
タPWAVEに現在エンベロープ値レジスタPENVの
値を乗算する(ステップS1413)。
【0100】次に、エンベロープカウンタレジスタEN
VCの値がレジスタDLTXが示す内容Δxに達してい
るか否かを判定する(ステップS1414)。エンベロ
ープカウンタレジスタENVCの値がレジスタDLTX
が示す内容Δxに達している場合には、現在エンベロー
プ値レジスタPENVにレジスタDLTYの内容である
エンベロープ変化分Δyを加算して、現在エンベロープ
値を更新し(ステップS1415)、エンベロープカウ
ンタレジスタENVCの内容をクリアする(ステップS
1416)。また、エンベロープカウンタレジスタEN
VCの値がレジスタDLTXが示す内容Δxに達してい
なければ、現在エンベロープ値レジスタPENVはその
ままでにして、エンベロープカウンタレジスタENVC
の内容をインクリメントし(ステップS1417)、次
のステップS1421へ進む。
VCの値がレジスタDLTXが示す内容Δxに達してい
るか否かを判定する(ステップS1414)。エンベロ
ープカウンタレジスタENVCの値がレジスタDLTX
が示す内容Δxに達している場合には、現在エンベロー
プ値レジスタPENVにレジスタDLTYの内容である
エンベロープ変化分Δyを加算して、現在エンベロープ
値を更新し(ステップS1415)、エンベロープカウ
ンタレジスタENVCの内容をクリアする(ステップS
1416)。また、エンベロープカウンタレジスタEN
VCの値がレジスタDLTXが示す内容Δxに達してい
なければ、現在エンベロープ値レジスタPENVはその
ままでにして、エンベロープカウンタレジスタENVC
の内容をインクリメントし(ステップS1417)、次
のステップS1421へ進む。
【0101】一方、ステップS1411、S1412に
おいて、現在エンベロープ値レジスタPENVの値がエ
ンベロープ目標値レジスタEVDESの値に達していた
場合はバスEに進む。
おいて、現在エンベロープ値レジスタPENVの値がエ
ンベロープ目標値レジスタEVDESの値に達していた
場合はバスEに進む。
【0102】バスEでは、まず、エンベロープ目標値レ
ジスタEVDESの値を現在エンベロープ値にコピーす
る(ステップP1418)。エンベロープ目標値レジス
タEVDESの値を現在エンベロープ値にコピーするの
は、現在エンベロープ値が正確にエンベロープ目標値レ
ジスタEVDESの値に達していない場合があるので、
現在エンベロープ値をエンベロープ目標値レジスタEV
DESの値とするためである。次に、エンベロープ目標
値レジスタEVDESの値が0であるか否かを判定する
(ステップS1419)。EVDESの値が0であれ
ば、アタックエンベロープ中であるので、ステップS1
421へ進む。エンベロープ目標値レジスタEVDES
の値が0であれば、後述するリリース処理を行なうこと
によりリリースエンベロープ中の状態となった後にリリ
ースエンベロープが0に達して、発音が終了したことを
意味するので、発音中フラグレジスタBSYFLGの内
容をリセットする(ステップS1420)。これによ
り、次回のサンプリングタイミングにおけるインタラプ
ト処理からは無音状態に入る。
ジスタEVDESの値を現在エンベロープ値にコピーす
る(ステップP1418)。エンベロープ目標値レジス
タEVDESの値を現在エンベロープ値にコピーするの
は、現在エンベロープ値が正確にエンベロープ目標値レ
ジスタEVDESの値に達していない場合があるので、
現在エンベロープ値をエンベロープ目標値レジスタEV
DESの値とするためである。次に、エンベロープ目標
値レジスタEVDESの値が0であるか否かを判定する
(ステップS1419)。EVDESの値が0であれ
ば、アタックエンベロープ中であるので、ステップS1
421へ進む。エンベロープ目標値レジスタEVDES
の値が0であれば、後述するリリース処理を行なうこと
によりリリースエンベロープ中の状態となった後にリリ
ースエンベロープが0に達して、発音が終了したことを
意味するので、発音中フラグレジスタBSYFLGの内
容をリセットする(ステップS1420)。これによ
り、次回のサンプリングタイミングにおけるインタラプ
ト処理からは無音状態に入る。
【0103】ステップS1421では、現在波形データ
レジスタPWAVEの内容にエンベロープ目標値レジス
タEVDESの値を乗算し、続くステップS1422に
おいて、D/A変換器707に現在波形データレジスタ
PWAVEの内容を出力する。
レジスタPWAVEの内容にエンベロープ目標値レジス
タEVDESの値を乗算し、続くステップS1422に
おいて、D/A変換器707に現在波形データレジスタ
PWAVEの内容を出力する。
【0104】その後、図15に示すように、現在アドレ
スレジスタPADRの値と母音エンドアドレスレジスタ
VEADRの値を比較し(ステップS1423)、現在
アドレスが母音エンドアドレスに達した場合には、レジ
スタXに乱数RANをセットし(ステップS142
4)、乱数RANのセットされたレジスタXの値と01
Hでアンドを取る(アンド処理を行なう)(ステップS
1425)。この01Hとのアンド処理により乱数RA
MをセットしたレジスタXの値の下位1ビット以下をマ
スクする。
スレジスタPADRの値と母音エンドアドレスレジスタ
VEADRの値を比較し(ステップS1423)、現在
アドレスが母音エンドアドレスに達した場合には、レジ
スタXに乱数RANをセットし(ステップS142
4)、乱数RANのセットされたレジスタXの値と01
Hでアンドを取る(アンド処理を行なう)(ステップS
1425)。この01Hとのアンド処理により乱数RA
MをセットしたレジスタXの値の下位1ビット以下をマ
スクする。
【0105】次に、アンド処理を行なったレジスタXの
値が0か1か、すなわち乱数が偶数であるか奇数である
かをチェックする(ステップS1426)。レジスタX
の値が1(偶数)のときには、第1母音が選択されたと
判断して、第1母音スタートアドレスレジスタFVSA
DRの値を現在アドレスレジスタPADRにセットし
(ステップS1427)、第1母音エンドアドレスレジ
スタFVEADRの値を現在波形エンドアドレスレジス
タPEADRにセットする(ステップS1428)。こ
れにより次に第1母音波形による母音波形のループ再生
を同様に行なうことができる。
値が0か1か、すなわち乱数が偶数であるか奇数である
かをチェックする(ステップS1426)。レジスタX
の値が1(偶数)のときには、第1母音が選択されたと
判断して、第1母音スタートアドレスレジスタFVSA
DRの値を現在アドレスレジスタPADRにセットし
(ステップS1427)、第1母音エンドアドレスレジ
スタFVEADRの値を現在波形エンドアドレスレジス
タPEADRにセットする(ステップS1428)。こ
れにより次に第1母音波形による母音波形のループ再生
を同様に行なうことができる。
【0106】ステップS1426で、レジスタXの値が
0(奇数)のときには、第2母音が選択されたと判断し
て、第2母音スタートアドレスレジスタSVSADRの
値を現在アドレスレジスタPADRにセットし(ステッ
プS1429)、第2母音エンドアドレスレジスタSV
EADRの値を現在波形エンドアドレスレジスタPEA
DRにセットする(ステップS1430)。これにより
次に第2母音波形による母音波形のループ処理を同様に
行なうことができる。
0(奇数)のときには、第2母音が選択されたと判断し
て、第2母音スタートアドレスレジスタSVSADRの
値を現在アドレスレジスタPADRにセットし(ステッ
プS1429)、第2母音エンドアドレスレジスタSV
EADRの値を現在波形エンドアドレスレジスタPEA
DRにセットする(ステップS1430)。これにより
次に第2母音波形による母音波形のループ処理を同様に
行なうことができる。
【0107】一方、ステップS1423で、現在アドレ
スが現在波形エンドアドレスレジスタPEADRに達し
ていない場合には、現在アドレスレジスタPADRの内
容をインクリメントし(ステップS1431)、インタ
ラプト処理を終了して図8のメインフローに戻る。
スが現在波形エンドアドレスレジスタPEADRに達し
ていない場合には、現在アドレスレジスタPADRの内
容をインクリメントし(ステップS1431)、インタ
ラプト処理を終了して図8のメインフローに戻る。
【0108】このように、上述したインタラプト処理に
基づいて合成された音声「レ」の波形を示す図17から
分るように、子音部にゆるやかなリリース特性が付加さ
れており、また、母音波形の立ち上がり部分にアタック
エンベロープが付加されている。これにより、子音と母
音の接続が滑らかになり、発音される音声において、自
然性を向上させることができる。
基づいて合成された音声「レ」の波形を示す図17から
分るように、子音部にゆるやかなリリース特性が付加さ
れており、また、母音波形の立ち上がり部分にアタック
エンベロープが付加されている。これにより、子音と母
音の接続が滑らかになり、発音される音声において、自
然性を向上させることができる。
【0109】また、図18には、上述したインタラプト
処理に基づいて母音部分「エ」の1ピッチ周期の波形が
繰り返し再生されるときの波形を示しており、図18か
ら分るように、前述した図1の音声データ生成部の処理
によって生成される1ピッチ周期の母音部構成要素デー
タは、それぞれピッチ周波数と各倍音周波数を有する1
ピッチ周期分の各正弦波形が加算合成されることによっ
て生成されるため、この1ピッチ周期の母音部構成要素
データの両端の値は必ず0となり、かつ両者の微分係数
は連続となる。
処理に基づいて母音部分「エ」の1ピッチ周期の波形が
繰り返し再生されるときの波形を示しており、図18か
ら分るように、前述した図1の音声データ生成部の処理
によって生成される1ピッチ周期の母音部構成要素デー
タは、それぞれピッチ周波数と各倍音周波数を有する1
ピッチ周期分の各正弦波形が加算合成されることによっ
て生成されるため、この1ピッチ周期の母音部構成要素
データの両端の値は必ず0となり、かつ両者の微分係数
は連続となる。
【0110】さらに、図18からわかるように、1ピッ
チ周期の母音部構成要素データをループ処理する場合
に、第1母音スタートアドレスレジスタFVSADR及
び第2母音スタートアドレスレジスタSVSADRで示
されるアドレスの母音データと第1母音エンドアドレス
レジスタFVEADR及び第2母音エンドアドレスレジ
スタSVEADRで示されるアドレスの母音データとの
接続部分(ループポイント)におけるノイズの発生をな
くすことができる。
チ周期の母音部構成要素データをループ処理する場合
に、第1母音スタートアドレスレジスタFVSADR及
び第2母音スタートアドレスレジスタSVSADRで示
されるアドレスの母音データと第1母音エンドアドレス
レジスタFVEADR及び第2母音エンドアドレスレジ
スタSVEADRで示されるアドレスの母音データとの
接続部分(ループポイント)におけるノイズの発生をな
くすことができる。
【0111】また、乱数を用いて次にループ処理する母
音波形として第1母音波形と第2母音波形とを選択する
ことができ、図17に示すように、1種類の母音波形を
ループ処理した場合とは異なり、母音波形の振幅を自然
な状態で変化させることができ、人声に近い自然な音声
とすることができる。
音波形として第1母音波形と第2母音波形とを選択する
ことができ、図17に示すように、1種類の母音波形を
ループ処理した場合とは異なり、母音波形の振幅を自然
な状態で変化させることができ、人声に近い自然な音声
とすることができる。
【0112】{リリース処理の実施例の説明}次に、音
声合成処理の第1の実施例の一部であって、鍵がオフさ
れたときに実行される図8のステップS806のリリー
ス処理の実施例について、図19のフローチャートを用
いて説明する。このフローチャートは、図7のCPU7
01が、図示しないROMなどに記憶された制御プログ
ラムを実行する動作として実現される。
声合成処理の第1の実施例の一部であって、鍵がオフさ
れたときに実行される図8のステップS806のリリー
ス処理の実施例について、図19のフローチャートを用
いて説明する。このフローチャートは、図7のCPU7
01が、図示しないROMなどに記憶された制御プログ
ラムを実行する動作として実現される。
【0113】リリース処理は、図12のエンベロープ目
標レジスタの値をセットし直すとともに、レジスタDL
TX、DLTYを、それぞれリリース用のΔx、Δyに
置き換える処理である。
標レジスタの値をセットし直すとともに、レジスタDL
TX、DLTYを、それぞれリリース用のΔx、Δyに
置き換える処理である。
【0114】ここで問題になるのは、上述の3つのレジ
スタがセットされている間に、前述したインタラプト処
理が実行されてしまうと、このときのエンベロープのた
めの各種データが不完全な状態となり、かつ発音中フラ
グレジスタBSYFLGも発音中を示すことができるた
め、不適切なデータがD/A変換器707に出力され
て、ノイズとなるおそれがあることである。なお、前述
のアタック処理は、発音中フラグレジスタBSYFLG
が無音であることを示す値になってから実行されるた
め、上述のような問題は発生しない(図9のステップS
901〜S903参照)。
スタがセットされている間に、前述したインタラプト処
理が実行されてしまうと、このときのエンベロープのた
めの各種データが不完全な状態となり、かつ発音中フラ
グレジスタBSYFLGも発音中を示すことができるた
め、不適切なデータがD/A変換器707に出力され
て、ノイズとなるおそれがあることである。なお、前述
のアタック処理は、発音中フラグレジスタBSYFLG
が無音であることを示す値になってから実行されるた
め、上述のような問題は発生しない(図9のステップS
901〜S903参照)。
【0115】上述のような問題に対処するため、本実施
例では、図19のフローチャートに示すように、まず、
図7のfsカウンタ709からのインタラプト信号をマ
スクすることにより、インタラプト処理を禁止している
(ステップS1801)。その後、エンベロープ目標値
レジスタEVDESに値0をセットする(ステップS1
802)。
例では、図19のフローチャートに示すように、まず、
図7のfsカウンタ709からのインタラプト信号をマ
スクすることにより、インタラプト処理を禁止している
(ステップS1801)。その後、エンベロープ目標値
レジスタEVDESに値0をセットする(ステップS1
802)。
【0116】また、前述した図9のアタック処理のステ
ップS931においてセットしたレジスタRLADRが
リリースエンベロープのΔxのテーブルアドレスを示し
ているので(図11参照)、この値をレジスタDLTX
に読み込む(ステップS1803)。
ップS931においてセットしたレジスタRLADRが
リリースエンベロープのΔxのテーブルアドレスを示し
ているので(図11参照)、この値をレジスタDLTX
に読み込む(ステップS1803)。
【0117】続いて、レジスタRLADRの内容をイン
クリメントし(ステップS1804)、図11のリリー
スエンベロープのΔyの値をレジスタDLTYに読み込
む(ステップS1805)。
クリメントし(ステップS1804)、図11のリリー
スエンベロープのΔyの値をレジスタDLTYに読み込
む(ステップS1805)。
【0118】このようにして、3つのレジスタをセット
した後、インタラプトのマスクを解除して(ステップS
1806)、図8のステップS806のリリース処理を
終了する。
した後、インタラプトのマスクを解除して(ステップS
1806)、図8のステップS806のリリース処理を
終了する。
【0119】このようなリリース処理の結果、母音波形
データが繰り返し合成されている状態で離鍵指示がなさ
れると、それ以降の図14のインタラプト処理におい
て、ステップS1410、S1412、S1413〜S
1417の処理が繰り返されることによって、現在エン
ベロープ値レジスタPENVの値がエンベロープ目標値
レジスタEVDESの値0に向かって減少して行き、発
音中の母音波形データに図20に示されるようなリリー
ス特性が付加される。
データが繰り返し合成されている状態で離鍵指示がなさ
れると、それ以降の図14のインタラプト処理におい
て、ステップS1410、S1412、S1413〜S
1417の処理が繰り返されることによって、現在エン
ベロープ値レジスタPENVの値がエンベロープ目標値
レジスタEVDESの値0に向かって減少して行き、発
音中の母音波形データに図20に示されるようなリリー
ス特性が付加される。
【0120】そして、ステップS1412において、現
在エンベロープ値レジスタPENVの値がエンベロープ
目標値レジスタEVDESの値0を下回ると、ステップ
S1418の判定がYESとなった後、ステップS14
19において発音中フラグレジスタBSYFLGの内容
を値0にクリアし、音声の発音を停止する。
在エンベロープ値レジスタPENVの値がエンベロープ
目標値レジスタEVDESの値0を下回ると、ステップ
S1418の判定がYESとなった後、ステップS14
19において発音中フラグレジスタBSYFLGの内容
を値0にクリアし、音声の発音を停止する。
【0121】<音声合成処理の第2の実施例の説明>前
述した音声合成処理の第1実施例では、子音波形を母音
波形と滑らかに接続するために、リリースエンベロープ
を付加した子音波形の発音終了に続いて、アタックエン
ベロープを付加した母音波形の発音を行なっていた。こ
れに対して、以下に説明する音声合成処理の第2実施例
では、子音波形と母音波形の接続をより確実にするため
に、リリースエンベロープを付加した子音波形に対して
アタックエンベロープを付加した母音波形をクロスフェ
ードさせることがその特徴である。
述した音声合成処理の第1実施例では、子音波形を母音
波形と滑らかに接続するために、リリースエンベロープ
を付加した子音波形の発音終了に続いて、アタックエン
ベロープを付加した母音波形の発音を行なっていた。こ
れに対して、以下に説明する音声合成処理の第2実施例
では、子音波形と母音波形の接続をより確実にするため
に、リリースエンベロープを付加した子音波形に対して
アタックエンベロープを付加した母音波形をクロスフェ
ードさせることがその特徴である。
【0122】そのために、図7のデータメモリ705上
に設けられる図20で示される波形データテーブルに
は、図10の第1の実施例の場合に比べて、母音波形の
アタックを開始される時点に対応する子音波形上(子音
部メモリ703上)のアドレスである母音スタート子音
アドレスを追加している。その結果、波形データテーブ
ル上の各鍵に対応するデータの1組は、第1の実施例に
比べて1ワード増え、8ワードで構成される。
に設けられる図20で示される波形データテーブルに
は、図10の第1の実施例の場合に比べて、母音波形の
アタックを開始される時点に対応する子音波形上(子音
部メモリ703上)のアドレスである母音スタート子音
アドレスを追加している。その結果、波形データテーブ
ル上の各鍵に対応するデータの1組は、第1の実施例に
比べて1ワード増え、8ワードで構成される。
【0123】次に、図22は、CPU701内に設けら
れるインタラプト処理用レジスタ群の構成を示す図であ
る。ここでは図12の第1の実施例の場合に比べ、上述
した母音スタート子音アドレスを格納するレジスタVS
CADRの他に、図12の現在アドレスレジスタPAD
Rの変わりに子音アドレスレジスタCADRと母音アド
レスレジスタVADRが、また図12の現在波形データ
レジスタPWAVEの代わりに子音波形データレジスタ
CWAVEと母音波形データレジスタVWAVEが新た
に設けられている。さらに、母音アドレスレジスタVA
DRが設けられている。
れるインタラプト処理用レジスタ群の構成を示す図であ
る。ここでは図12の第1の実施例の場合に比べ、上述
した母音スタート子音アドレスを格納するレジスタVS
CADRの他に、図12の現在アドレスレジスタPAD
Rの変わりに子音アドレスレジスタCADRと母音アド
レスレジスタVADRが、また図12の現在波形データ
レジスタPWAVEの代わりに子音波形データレジスタ
CWAVEと母音波形データレジスタVWAVEが新た
に設けられている。さらに、母音アドレスレジスタVA
DRが設けられている。
【0124】なお、図22で“*”を付したレジスタは
図12の場合と同様である。ただし、子音/母音フラグ
レジスタVORCには、第1の実施例と異なり、子音の
み発音中ならば値0、母音のみ発音中なら値2がセット
される。なお、フラグ値1の状態は用いられない。
図12の場合と同様である。ただし、子音/母音フラグ
レジスタVORCには、第1の実施例と異なり、子音の
み発音中ならば値0、母音のみ発音中なら値2がセット
される。なお、フラグ値1の状態は用いられない。
【0125】次に、エンベロープデータテーブルとして
は、図11の第1の実施例の場合と同じものが用いられ
る。
は、図11の第1の実施例の場合と同じものが用いられ
る。
【0126】{アタック処理の第2の実施例の説明}次
に、音声合成処理の第2の実施例の一部である図8のス
テップS805のアタック処理の第2の実施例の動作
を、図23のフローチャートを用いて説明する。このフ
ローチャートは、第1の実施例における図9のフローチ
ャートに対応している。
に、音声合成処理の第2の実施例の一部である図8のス
テップS805のアタック処理の第2の実施例の動作
を、図23のフローチャートを用いて説明する。このフ
ローチャートは、第1の実施例における図9のフローチ
ャートに対応している。
【0127】まず、ステップS2201〜S2205
は、図9のステップS901〜S905と同じである。
次に、波形データは前述のように8ワードで1組である
ので、鍵ナンバーを8倍した値を、データ・オフセット
アドレスDOFAを格納する汎用レジスタYに加算して
新たなYの値とすることにより、押鍵された鍵に対応す
る目標とする波形データテーブルの先頭アドレスを、汎
用レジスタYにセットすることができる(ステップS2
206、S2207)。
は、図9のステップS901〜S905と同じである。
次に、波形データは前述のように8ワードで1組である
ので、鍵ナンバーを8倍した値を、データ・オフセット
アドレスDOFAを格納する汎用レジスタYに加算して
新たなYの値とすることにより、押鍵された鍵に対応す
る目標とする波形データテーブルの先頭アドレスを、汎
用レジスタYにセットすることができる(ステップS2
206、S2207)。
【0128】次に、上記汎用レジスタYで表示される波
形データテーブルのアドレスから図20の子音スタート
アドレスを読み出し、子音アドレスレジスタCADRに
セットする(ステップS2208)。これにより、押鍵
された鍵に対応する子音波形の先頭データが格納されて
いる子音部メモリ703上のアドレスが設定される。以
下、汎用レジスタYの値をインクリメントするたびに図
21の波形データテーブルのアドレスを更新し、各アド
レスから、子音エンドアドレス、母音スタート子音アド
レス、及び第1母音スタートアドレス、第1母音エンド
アドレス、第2母音スタートアドレス、第2母音エンド
アドレスを読み出して、CPU701内の各レジスタP
EADR、VSCADR、VADR、FVSADR、F
VEADR、SVSADR、SVEADRに順次セット
する(ステップS2209〜S2220)。この場合、
母音の発音は第1母音波形から行なうため、母音アドレ
スレジスタVADRには、第1母音スタートアドレスを
セットする。この後、ステップS2221〜S2233
は前述の図9のステップS919〜S931と同様であ
る。
形データテーブルのアドレスから図20の子音スタート
アドレスを読み出し、子音アドレスレジスタCADRに
セットする(ステップS2208)。これにより、押鍵
された鍵に対応する子音波形の先頭データが格納されて
いる子音部メモリ703上のアドレスが設定される。以
下、汎用レジスタYの値をインクリメントするたびに図
21の波形データテーブルのアドレスを更新し、各アド
レスから、子音エンドアドレス、母音スタート子音アド
レス、及び第1母音スタートアドレス、第1母音エンド
アドレス、第2母音スタートアドレス、第2母音エンド
アドレスを読み出して、CPU701内の各レジスタP
EADR、VSCADR、VADR、FVSADR、F
VEADR、SVSADR、SVEADRに順次セット
する(ステップS2209〜S2220)。この場合、
母音の発音は第1母音波形から行なうため、母音アドレ
スレジスタVADRには、第1母音スタートアドレスを
セットする。この後、ステップS2221〜S2233
は前述の図9のステップS919〜S931と同様であ
る。
【0129】その後、子音波形データレジスタCWAV
E、母音波形データレジスタVWAVE、エンベロープ
カウンタレジスタENVCをそれぞれ値0に初期化し
(ステップS2234、S2235、S2236)、発
音中フラグレジスタBSYFLGを値1にセットして発
音を開始する(ステップS2237)。以上で図8のス
テップS805のアタック処理を終了する。
E、母音波形データレジスタVWAVE、エンベロープ
カウンタレジスタENVCをそれぞれ値0に初期化し
(ステップS2234、S2235、S2236)、発
音中フラグレジスタBSYFLGを値1にセットして発
音を開始する(ステップS2237)。以上で図8のス
テップS805のアタック処理を終了する。
【0130】{インタラプト処理の第2の実施例の説
明}次に、音声合成処理の第2の実施例の一部である図
8のステップS807のインタラプト処理の第2の実施
例の動作について、図24〜図26のフローチャートを
用いて説明する。これらのフローチャートは、図14、
図15、図16の第1の実施例のフローチャートに対応
する。
明}次に、音声合成処理の第2の実施例の一部である図
8のステップS807のインタラプト処理の第2の実施
例の動作について、図24〜図26のフローチャートを
用いて説明する。これらのフローチャートは、図14、
図15、図16の第1の実施例のフローチャートに対応
する。
【0131】図24のインタラプト処理に入ると、ま
ず、発音中フラグレジスタBSYFLGを判定する(ス
テップS2301)。現在、音声を発音してよい状態、
すなわち、発音中フラグが1でなければ、バスAに進
み、D/A変換器707に振幅0のデータを出力し、無
音状態を続ける(ステップS2302)。
ず、発音中フラグレジスタBSYFLGを判定する(ス
テップS2301)。現在、音声を発音してよい状態、
すなわち、発音中フラグが1でなければ、バスAに進
み、D/A変換器707に振幅0のデータを出力し、無
音状態を続ける(ステップS2302)。
【0132】発音中なら、さらに、子音/母音フラグレ
ジスタVORCの内容を判定し(ステップS230
3)、VORC=2で母音のみ発音中であると判定する
と、バスBへ進み、母音の発音処理のみを実行する。こ
の処理については後述する。
ジスタVORCの内容を判定し(ステップS230
3)、VORC=2で母音のみ発音中であると判定する
と、バスBへ進み、母音の発音処理のみを実行する。こ
の処理については後述する。
【0133】また、VORC=0で子音が発音中であれ
ばバスCへ進む。このバスでは子音の発音処理を実行す
る。すなわち、子音部メモリ703(図7参照)上の子
音アドレスレジスタCADRの示すアドレスから子音波
形データを読み出し、子音波形データレジスタCWAV
Eに格納する(ステップS2304)。
ばバスCへ進む。このバスでは子音の発音処理を実行す
る。すなわち、子音部メモリ703(図7参照)上の子
音アドレスレジスタCADRの示すアドレスから子音波
形データを読み出し、子音波形データレジスタCWAV
Eに格納する(ステップS2304)。
【0134】次に、子音アドレスレジスタCADRの値
が母音スタート子音アドレスレジスタVSCADRの示
す値に達しているか否かを判定する(ステップS230
5)。子音アドレスが母音スタート子音アドレスレジス
タの値に達していないと判定すると、子音のみの発音処
理を実行する。すなわち、子音波形データレジスタCW
AVEの内容である子音波形データは、第1の実施例の
場合と同様にエンベロープ値は乗算されずに、そのまま
図7のD/A変換器707に出力される(ステップS2
306)。その後、子音アドレスレジスタCADRの内
容をインクリメントし(ステップS2307)、インタ
ラプト処理を終了して図8のメインフローに戻る。
が母音スタート子音アドレスレジスタVSCADRの示
す値に達しているか否かを判定する(ステップS230
5)。子音アドレスが母音スタート子音アドレスレジス
タの値に達していないと判定すると、子音のみの発音処
理を実行する。すなわち、子音波形データレジスタCW
AVEの内容である子音波形データは、第1の実施例の
場合と同様にエンベロープ値は乗算されずに、そのまま
図7のD/A変換器707に出力される(ステップS2
306)。その後、子音アドレスレジスタCADRの内
容をインクリメントし(ステップS2307)、インタ
ラプト処理を終了して図8のメインフローに戻る。
【0135】一方、ステップS2305で、子音アドレ
スが母音スタート子音アドレスレジスタの値に達したと
判定すると、子音と母音の両方の発音処理を実行する。
これ以降の処理がいわゆるクロスフェード処理である。
スが母音スタート子音アドレスレジスタの値に達したと
判定すると、子音と母音の両方の発音処理を実行する。
これ以降の処理がいわゆるクロスフェード処理である。
【0136】まず、子音アドレスレジスタCADRの値
が現在波形エンドアドレスレジスタPEADRが示す値
に達したか否かを判定する(ステップS2308)。こ
こでは、いま、現在波形エンドアドレスレジスタPEA
DRには、子音エンドアドレスが格納されているので、
子音アドレスが子音エンドアドレスに達したかどうかを
判定している。子音アドレスが子音エンドアドレスに達
したと判定すると、子音/母音フラグレジスタVORC
を、母音のみ発音中を示す値2にセットし(ステップS
2309)、子音波形データレジスタCWAVEの内容
をクリアする(ステップS2310)。この処理は、後
述するように母音波形データをD/A変換器707に出
力する際、母音波形データに子音波形データを加算して
から出力するので、子音の発音終了後は子音波形データ
を0にする処理である。
が現在波形エンドアドレスレジスタPEADRが示す値
に達したか否かを判定する(ステップS2308)。こ
こでは、いま、現在波形エンドアドレスレジスタPEA
DRには、子音エンドアドレスが格納されているので、
子音アドレスが子音エンドアドレスに達したかどうかを
判定している。子音アドレスが子音エンドアドレスに達
したと判定すると、子音/母音フラグレジスタVORC
を、母音のみ発音中を示す値2にセットし(ステップS
2309)、子音波形データレジスタCWAVEの内容
をクリアする(ステップS2310)。この処理は、後
述するように母音波形データをD/A変換器707に出
力する際、母音波形データに子音波形データを加算して
から出力するので、子音の発音終了後は子音波形データ
を0にする処理である。
【0137】また、ステップS2308で、子音アドレ
スが子音エンドアドレスに達していないと判定すると、
子音アドレスレジスタCADRの値をインクリメントし
(ステップS2311)、次の母音発音処理に進む。
スが子音エンドアドレスに達していないと判定すると、
子音アドレスレジスタCADRの値をインクリメントし
(ステップS2311)、次の母音発音処理に進む。
【0138】母音発音処理では、本実施例においては、
第1母音部構成要素データから発音するため、母音アド
レスレジスタVADRには第1母音スタートアドレスが
書き込まれている。この母音部メモリ704上の母音ア
ドレスレジスタVADRによって示されるアドレスの第
1母音波形データを、母音波形データレジスタVWAV
Eに読み込み(ステップS2312)、レジスタDLT
Yが示す内容Δyが正であるか負であるかを判定する
(ステップS2313、以下図25参照)。
第1母音部構成要素データから発音するため、母音アド
レスレジスタVADRには第1母音スタートアドレスが
書き込まれている。この母音部メモリ704上の母音ア
ドレスレジスタVADRによって示されるアドレスの第
1母音波形データを、母音波形データレジスタVWAV
Eに読み込み(ステップS2312)、レジスタDLT
Yが示す内容Δyが正であるか負であるかを判定する
(ステップS2313、以下図25参照)。
【0139】正であれば、アタックエンベロープ中の状
態、負であれば、後述するリリース処理によってリリー
スエンベロープ中の状態となっている。いずれの場合
も、現在エンベロープ値レジスタPENVの値が、エン
ベロープ目標値レジスタEVDESの示す値を超えてい
ないか否かを判定することになる(ステップS231
4、S2315)。
態、負であれば、後述するリリース処理によってリリー
スエンベロープ中の状態となっている。いずれの場合
も、現在エンベロープ値レジスタPENVの値が、エン
ベロープ目標値レジスタEVDESの示す値を超えてい
ないか否かを判定することになる(ステップS231
4、S2315)。
【0140】現在エンベロープ値レジスタPENVの値
が、エンベロープ目標値レジスタEVDESの示す値を
超えていなければ、バスDに進み、母音波形データレジ
スタVWAVEに現在エンベロープ値レジスタPENV
の値を乗算する(ステップS2316)。
が、エンベロープ目標値レジスタEVDESの示す値を
超えていなければ、バスDに進み、母音波形データレジ
スタVWAVEに現在エンベロープ値レジスタPENV
の値を乗算する(ステップS2316)。
【0141】次に、エンベロープカウンタレジスタEN
VCの値がレジスタDLTXが示す内容Δxに達してい
るか否かを判定する(ステップS2317)。達してい
る場合には、現在エンベロープ値レジスタPENVにレ
ジスタDLTYの内容であるエンベロープ変化分Δyを
加算して現在エンベロープ値を更新し(ステップS23
18)、エンベロープカウンタレジスタENVCの内容
をクリアする(ステップS2319)。また、達してい
なければ、現在エンベロープ値レジスタPENVはその
ままで、エンベロープカウンタレジスタENVCの内容
をインクリメントし(ステップS2320)、次のステ
ップS2324(図26)へ進む。
VCの値がレジスタDLTXが示す内容Δxに達してい
るか否かを判定する(ステップS2317)。達してい
る場合には、現在エンベロープ値レジスタPENVにレ
ジスタDLTYの内容であるエンベロープ変化分Δyを
加算して現在エンベロープ値を更新し(ステップS23
18)、エンベロープカウンタレジスタENVCの内容
をクリアする(ステップS2319)。また、達してい
なければ、現在エンベロープ値レジスタPENVはその
ままで、エンベロープカウンタレジスタENVCの内容
をインクリメントし(ステップS2320)、次のステ
ップS2324(図26)へ進む。
【0142】一方、ステップS2314、S2315に
おいて、現在エンベロープ値レジスタPENVの値がエ
ンベロープ目標値レジスタEVDESの値に達していた
場合には、バスEに進む。
おいて、現在エンベロープ値レジスタPENVの値がエ
ンベロープ目標値レジスタEVDESの値に達していた
場合には、バスEに進む。
【0143】まず、エンベロープ目標値レジスタEVD
ESの値が0であるか否かを判定する(ステップS23
21)。EVDESの値が0でなければ、アタックエン
ベロープ中であり、ステップS2323へ進む。EVD
ESの値が0であれば、第1の実施例の場合(図14の
ステップS1419)と同様、リリース処理によってリ
リースエンベロープ中の状態となった後にリリースエン
ベロープが0に達したことになり、したがって発音終了
であるので、発音中フラグレジスタBSYFLGの内容
をリセットする(ステップS2322)。これにより、
次回のサンプリングタイミングにおけるインタラプト処
理からは無音状態に入る。
ESの値が0であるか否かを判定する(ステップS23
21)。EVDESの値が0でなければ、アタックエン
ベロープ中であり、ステップS2323へ進む。EVD
ESの値が0であれば、第1の実施例の場合(図14の
ステップS1419)と同様、リリース処理によってリ
リースエンベロープ中の状態となった後にリリースエン
ベロープが0に達したことになり、したがって発音終了
であるので、発音中フラグレジスタBSYFLGの内容
をリセットする(ステップS2322)。これにより、
次回のサンプリングタイミングにおけるインタラプト処
理からは無音状態に入る。
【0144】ステップS2323では、母音波形データ
レジスタVWAEの内容にエンベロープ目標値レジスタ
EVDESの値を乗算し、続くステップS2324(図
26)で母音波形データレジスタVWAVEに子音波形
データレジスタCWAVEの内容を加算し、その加算結
果をD/A変換器707に出力する(ステップS232
5)。
レジスタVWAEの内容にエンベロープ目標値レジスタ
EVDESの値を乗算し、続くステップS2324(図
26)で母音波形データレジスタVWAVEに子音波形
データレジスタCWAVEの内容を加算し、その加算結
果をD/A変換器707に出力する(ステップS232
5)。
【0145】その後、母音アドレスレジスタVADRの
値と現在波形エンドアドレスレジスタPEADRの値を
比較する(ステップS2326)。現在アドレスが母音
エンドアドレスに達した場合には、レジスタXに乱数R
ANをセットし(ステップS2327)、乱数RANの
セットされたレジスタXの値と01Hでアンドを取っ
て、レジスタXの値の下位1ビット以下をマスクする
(ステップS2328)。アンド処理を行なったレジス
タXの値が0か1か、すなわち乱数が偶数であるか奇数
であるかをチェックする(ステップS2329)。レジ
スタXの値が1(偶数)のときには、第1母音が選択さ
れたと判断して、第1母音スタートアドレスレジスタF
VSADRの値を母音アドレスレジスタVADRにセッ
トし(ステップS2330)、第1母音エンドアドレス
レジスタFVEADRの値を現在波形エンドアドレスレ
ジスタPEADRにセットする(ステップS233
1)。これにより次に第1母音波形による母音波形のル
ープ再生を同様に行なうことができる。
値と現在波形エンドアドレスレジスタPEADRの値を
比較する(ステップS2326)。現在アドレスが母音
エンドアドレスに達した場合には、レジスタXに乱数R
ANをセットし(ステップS2327)、乱数RANの
セットされたレジスタXの値と01Hでアンドを取っ
て、レジスタXの値の下位1ビット以下をマスクする
(ステップS2328)。アンド処理を行なったレジス
タXの値が0か1か、すなわち乱数が偶数であるか奇数
であるかをチェックする(ステップS2329)。レジ
スタXの値が1(偶数)のときには、第1母音が選択さ
れたと判断して、第1母音スタートアドレスレジスタF
VSADRの値を母音アドレスレジスタVADRにセッ
トし(ステップS2330)、第1母音エンドアドレス
レジスタFVEADRの値を現在波形エンドアドレスレ
ジスタPEADRにセットする(ステップS233
1)。これにより次に第1母音波形による母音波形のル
ープ再生を同様に行なうことができる。
【0146】ステップS2329で、レジスタXの値が
0(奇数)のときには、第2母音が選択されたと判断し
て、第2母音スタートアドレスレジスタSVSADRの
値を母音アドレスレジスタVADRにセットし(ステッ
プS2332)、第2母音エンドアドレスレジスタSV
EADRの値を現在波形エンドアドレスレジスタPEA
DRにセットする(ステップS2333)。これにより
次に第2母音波形による母音波形のループ処理を同様に
行なうことができる。
0(奇数)のときには、第2母音が選択されたと判断し
て、第2母音スタートアドレスレジスタSVSADRの
値を母音アドレスレジスタVADRにセットし(ステッ
プS2332)、第2母音エンドアドレスレジスタSV
EADRの値を現在波形エンドアドレスレジスタPEA
DRにセットする(ステップS2333)。これにより
次に第2母音波形による母音波形のループ処理を同様に
行なうことができる。
【0147】一方、ステップS2326で、現在アドレ
スが現在波形エンドアドレスレジスタPEADRに達し
ていない場合には、母音アドレスレジスタVADRの内
容をインクリメントし(ステップS2334)、インタ
ラプト処理を終了してメインフローに戻る。
スが現在波形エンドアドレスレジスタPEADRに達し
ていない場合には、母音アドレスレジスタVADRの内
容をインクリメントし(ステップS2334)、インタ
ラプト処理を終了してメインフローに戻る。
【0148】以上説明した音声合成処理の第2実施例に
よって、リリースエンベロープが付加された子音波形が
減衰してゆくと同時に、アタックエンベロープが付加さ
れた母音波形が徐々に立ち上がっていくいわゆるクロス
フェード動作を実現することができ、これにより、子音
と母音のより滑らかな接続が実現され、ノイズ感をより
一層減少させることができる。
よって、リリースエンベロープが付加された子音波形が
減衰してゆくと同時に、アタックエンベロープが付加さ
れた母音波形が徐々に立ち上がっていくいわゆるクロス
フェード動作を実現することができ、これにより、子音
と母音のより滑らかな接続が実現され、ノイズ感をより
一層減少させることができる。
【0149】
【発明の効果】本発明によれば、子音波形データが作成
される場合に、子音波形データにリリース特性を有する
エンベロープが付加されることにより、子音と母音の接
続が滑らかになり、子音波形と母音波形との接続部分に
おけるノイズの発生を抑制することができる。また、音
声データの大部分を占める母音部分を、正確に1ピッチ
周期分の母音部構成要素データとして得ることができ、
母音部構成要素データの記憶容量を大幅に減少させるこ
とができる。さらに、1ピッチ周期の母音部構成要素デ
ータは、それぞれピッチ周波数と各倍音周波数を有する
1ピッチ周期分の所定形状の波形が加算合成されること
によって生成されるため、この1ピッチ周期の母音部構
成要素データの両端の値は必ず0となり、かつ両者の微
分係数は連続となるため、音声合成時に上記母音部構成
要素データがループ処理される場合に、ループポイント
(波形の接続部)におけるノイズの発生をなくすことが
できる。
される場合に、子音波形データにリリース特性を有する
エンベロープが付加されることにより、子音と母音の接
続が滑らかになり、子音波形と母音波形との接続部分に
おけるノイズの発生を抑制することができる。また、音
声データの大部分を占める母音部分を、正確に1ピッチ
周期分の母音部構成要素データとして得ることができ、
母音部構成要素データの記憶容量を大幅に減少させるこ
とができる。さらに、1ピッチ周期の母音部構成要素デ
ータは、それぞれピッチ周波数と各倍音周波数を有する
1ピッチ周期分の所定形状の波形が加算合成されること
によって生成されるため、この1ピッチ周期の母音部構
成要素データの両端の値は必ず0となり、かつ両者の微
分係数は連続となるため、音声合成時に上記母音部構成
要素データがループ処理される場合に、ループポイント
(波形の接続部)におけるノイズの発生をなくすことが
できる。
【0150】また、複数の母音部構成要素データを、ル
ープ処理することができるとともに、ループ処理する母
音部構成要素データを複数の母音部構成要素データから
乱数を用いて選択することができるので、1種類の母音
波形をループ処理した場合とは異なり、母音波形の振幅
を自然な状態で変化させることができ、人声に近い自然
な音声とすることができる。
ープ処理することができるとともに、ループ処理する母
音部構成要素データを複数の母音部構成要素データから
乱数を用いて選択することができるので、1種類の母音
波形をループ処理した場合とは異なり、母音波形の振幅
を自然な状態で変化させることができ、人声に近い自然
な音声とすることができる。
【0151】さらに、リリースエンベロープが付加され
た子音波形が減衰してゆくと同時に、アタックエンベロ
ープが付加された母音波形が徐々に立ち上がっていくい
わゆるクロスフェード処理を行なっているので、子音と
母音とをさらに滑らかに接続することができ、ノイズ感
をより一層減少させることができる。
た子音波形が減衰してゆくと同時に、アタックエンベロ
ープが付加された母音波形が徐々に立ち上がっていくい
わゆるクロスフェード処理を行なっているので、子音と
母音とをさらに滑らかに接続することができ、ノイズ感
をより一層減少させることができる。
【図1】本発明による音声データ生成部の全体構成図。
【図2】音声「レ」の波形図。
【図3】子音波形の切り出し処理を示すフローチャー
ト。
ト。
【図4】子音波形の切り出し処理に関するパラメータを
示す図。
示す図。
【図5】母音波形データの生成処理を示すフローチャー
ト(その1)。
ト(その1)。
【図6】母音波形データの生成処理を示すフローチャー
ト(その2)。
ト(その2)。
【図7】音声合成部の1実施例の全体構成図。
【図8】音声合成処理の全体的な処理を示すフローチャ
ート。
ート。
【図9】アタック処理の第1の実施例のフローチャー
ト。
ト。
【図10】波形データテーブルの第1の実施例の内容を
示す図。
示す図。
【図11】エンベロープデータテーブルの内容を示す
図。
図。
【図12】CPU内のインタラプト処理用レジスタ群の
第1の実施例の内容を示す図。
第1の実施例の内容を示す図。
【図13】エンベロープデータテーブルのパラメータΔ
x、Δyを示す図。
x、Δyを示す図。
【図14】インタラプト処理の第1の実施例のフローチ
ャート(その1)。
ャート(その1)。
【図15】インタラプト処理の第1の実施例のフローチ
ャート(その2)。
ャート(その2)。
【図16】インタラプト処理の第1の実施例のフローチ
ャート(その3)。
ャート(その3)。
【図17】音声合成された音声「レ」の波形図。
【図18】音声合成された音声「エ」の波形図。
【図19】リリース処理を示すフローチャート。
【図20】音声合成された音声波形のモデル図。
【図21】波形データテーブルの第2の実施例の内容を
示す図。
示す図。
【図22】CPU内のインタラプト処理用レジスタ群の
第2の実施例の内容を示す図。
第2の実施例の内容を示す図。
【図23】アタック処理の第2の実施例のフローチャー
ト。
ト。
【図24】インタラプト処理の第2の実施例のフローチ
ャート(その1)。
ャート(その1)。
【図25】インタラプト処理の第2の実施例のフローチ
ャート(その2)。
ャート(その2)。
【図26】インタラプト処理の第2の実施例のフローチ
ャート(その3)。
ャート(その3)。
100 音声データ生成部 101 音声検出部 102 サンプリング部 103 パラメータ設定部 104 原データファイル 105 子音部切り出し部 106 エンベロープ付加部 107 子音データファイル 108 母音部切り出し部 109 FFT演算部 110 倍音成分比抽出部 700 電子鍵盤楽器 701 CPU 702 鍵盤 703 子音部メモリ 704 母音部メモリ 705 データメモリ 706 作業用RAM 707 D/A変換器 708 発音回路 709 fsカウンタ 710 乱数発生器
Claims (7)
- 【請求項1】 サンプリングされた人声による音声デー
タから子音部波形データを抽出する子音部抽出手段と、 前記子音部抽出手段により抽出された子音部波形データ
の後半部分にリリースエンベロープを付加し、該リリー
スエンベロープを付加した子音部波形データを前記音声
データの子音部データとして出力するエンベロープ付加
手段と、 前記音声データから母音部波形データを抽出する母音部
抽出手段と、 前記母音部抽出手段の抽出した母音部波形データの複数
箇所において、各箇所の母音部波形データから該母音部
波形データのピッチ周波数及びその各倍音周波数の各成
分の振幅強度を抽出する周波数振幅強度抽出手段と、 前記母音部波形データの複数箇所における前記周波数強
度抽出手段の抽出結果に基づいて、前記各箇所での抽出
結果毎に、各振幅強度を有する周波数の所定形状の波形
を1ピッチ周期分ずつ生成し、該生成された各所定形状
の波形を、前記各箇所毎に、位相を合わせて加算合成し
て各箇所の1ピッチ周期分の母音部構成要素データを前
記複数箇所分生成して、前記各箇所毎に前記音声データ
の母音部構成要素データとして出力する母音データ合成
手段と、 を備えたことを特徴とする音声データ生成装置。 - 【請求項2】 前記周波数振幅強度抽出手段が、高速フ
ーリエ変換により、母音部波形データのピッチ周波数及
びその各倍音周波数の各成分の振幅強度を母音波形デー
タの前記各箇所毎に抽出することを特徴とする請求項1
記載の音声データ生成装置。 - 【請求項3】 前記母音データ合成手段が、前記周波数
強度抽出手段の抽出結果に基づいて、所定形状の波形と
して各振幅強度を有する周波数の正弦波を1ピッチ周期
分ずつ生成し、該生成された各正弦波を位相を合わせて
加算合成して1ピッチ周期分の前記母音部構成要素デー
タを生成して出力することを特徴とする請求項1または
請求項2記載の音声データ生成装置。 - 【請求項4】 請求項1、請求項2または請求項3に記
載の音声データ生成装置によって生成された音声データ
の前記子音部データを記憶する子音部記憶手段と、 前記音声データの前記母音部構成要素データを記憶する
母音部記憶手段と、 外部操作が可能な操作子と、 前記操作子の操作に対応して前記子音部記憶手段に記憶
された子音部データを順次読み出して発音する子音部発
音手段と、 該子音部発音手段による前記子音部データの発音終了
後、前記母音部記憶手段に記憶された1ピッチ周期分の
前記複数の母音部構成要素データを所定順序で読み出
し、該母音部構成要素データの各々についてアタックエ
ンベロープを付加した上で所定回数ずつ繰り返し読み出
して発音する母音部発音手段と、 を備えたことを特徴とする音声合成装置。 - 【請求項5】 前記母音部発音手段が、前記子音部発音
手段による前記子音部データの発音動作にクロスフェー
ドさせて、前記母音部記憶手段に記憶された所定の母音
部構成要素データをアタックエンベロープを付加した上
で繰り返し読み出して発音することを特徴とする請求項
4記載の音声合成装置。 - 【請求項6】 前記母音部発音手段が、前記母音部記憶
手段に記憶された前記複数の母音部構成要素データの読
み出し順序及び読み取りの切り換えタイミングを乱数に
基づいて決定することを特徴とする請求項4または請求
項5記載の音声合成装置。 - 【請求項7】 前記操作子が、合成され発音される音声
に対応する音声データにおける前記母音波形データのピ
ッチ周波数に対応した音階が割り当てられた複数の鍵を
備えており、 前記母音部記憶手段が、前記複数の鍵毎に各鍵に対応す
る複数の母音部構成要素データを記憶し、 前記母音部発音手段が、押鍵された前記鍵に対応する1
ピッチ周期分の複数の母音部構成要素データを前記母音
部記憶手段から繰り返し読み出して発音することを特徴
とする請求項4、請求項5または請求項6記載の音声合
成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3254397A JPH0566774A (ja) | 1991-09-06 | 1991-09-06 | 音声データ生成装置および音声合成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3254397A JPH0566774A (ja) | 1991-09-06 | 1991-09-06 | 音声データ生成装置および音声合成装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0566774A true JPH0566774A (ja) | 1993-03-19 |
Family
ID=17264411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3254397A Pending JPH0566774A (ja) | 1991-09-06 | 1991-09-06 | 音声データ生成装置および音声合成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0566774A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002049001A1 (fr) * | 2000-12-14 | 2002-06-20 | Sony Corporation | Dispositif d'extraction d'informations |
JP2011123141A (ja) * | 2009-12-09 | 2011-06-23 | Nippon Sheet Glass Environment Amenity Co Ltd | 音声変更装置、音声変更方法および音声情報秘話システム |
JP2011180194A (ja) * | 2010-02-26 | 2011-09-15 | Dainippon Printing Co Ltd | 音素符号変換装置、音素符号データベース、および音声合成装置 |
JP2020507437A (ja) * | 2017-02-12 | 2020-03-12 | カーディオコル リミテッドCardioKol Ltd. | 心疾患を対象とする言葉による定期的なスクリーニング |
-
1991
- 1991-09-06 JP JP3254397A patent/JPH0566774A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002049001A1 (fr) * | 2000-12-14 | 2002-06-20 | Sony Corporation | Dispositif d'extraction d'informations |
US7366661B2 (en) | 2000-12-14 | 2008-04-29 | Sony Corporation | Information extracting device |
JP2011123141A (ja) * | 2009-12-09 | 2011-06-23 | Nippon Sheet Glass Environment Amenity Co Ltd | 音声変更装置、音声変更方法および音声情報秘話システム |
JP2011180194A (ja) * | 2010-02-26 | 2011-09-15 | Dainippon Printing Co Ltd | 音素符号変換装置、音素符号データベース、および音声合成装置 |
JP2020507437A (ja) * | 2017-02-12 | 2020-03-12 | カーディオコル リミテッドCardioKol Ltd. | 心疾患を対象とする言葉による定期的なスクリーニング |
US11398243B2 (en) | 2017-02-12 | 2022-07-26 | Cardiokol Ltd. | Verbal periodic screening for heart disease |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020235506A1 (ja) | 電子楽器、電子楽器の制御方法、記憶媒体 | |
US20160133246A1 (en) | Voice synthesis device, voice synthesis method, and recording medium having a voice synthesis program recorded thereon | |
WO2010092710A1 (ja) | 音声処理装置、音声処理方法及び音声処理プログラム | |
CN117975933B (zh) | 音色混合方法和装置、音频处理方法和装置、电子设备、存储介质 | |
Bonada et al. | Singing voice synthesis combining excitation plus resonance and sinusoidal plus residual models | |
JPH0566774A (ja) | 音声データ生成装置および音声合成装置 | |
JP3379348B2 (ja) | ピッチ変換器 | |
JPH0546198A (ja) | 音声データ生成装置および音声合成装置 | |
JPH06337876A (ja) | 文章読み上げ装置 | |
JPH08335096A (ja) | テキスト音声合成装置 | |
CN112530399A (zh) | 一种语音数据的扩充方法、系统、电子设备及存储介质 | |
CN112164387A (zh) | 音频合成方法、装置及电子设备和计算机可读存储介质 | |
JP2008058379A (ja) | 音声合成システム及びフィルタ装置 | |
JP2894447B2 (ja) | 複合音声単位を用いた音声合成装置 | |
JP4668371B2 (ja) | 音信号発生装置 | |
JPH0895588A (ja) | 音声合成装置 | |
JPH1031496A (ja) | 楽音発生装置 | |
JPH052390A (ja) | 楽音変調装置および楽音変調装置を用いた電子楽器 | |
JP3022270B2 (ja) | フォルマント音源のパラメータ生成装置 | |
WO2023140151A1 (ja) | 情報処理装置、電子楽器、電子楽器システム、方法及びプログラム | |
JP2005037964A (ja) | 波形生成装置及び方法 | |
JP2987089B2 (ja) | 音声素片作成方法および音声合成方法とその装置 | |
Uchida | A practical method for generating whispers from singing voices: Application of improved phantom silhouette method | |
Kyritsi et al. | A score-to-singing voice synthesis system for the greek language | |
JP3862300B2 (ja) | 音声合成に用いる情報の処理方法および装置 |