しかしながら、CPUへの負荷を軽減するために次数を減らすと、出力される音声の品質は劣化する。つまりCPUへの負荷を軽減するために次数を減らしすぎ、品質を下げすぎると全体的に不明瞭さが増し、語句によっては聞き取りにくいものも出てきてしまうという問題点がある。例えば、音韻パラメータの次数が24次であったものを1/4以上減らしてしまうと、品質はかなり劣化してしまう。逆に、24次以上に次数を上げてもさほど品質は変わらない。
また、特許文献1,2,3に記載の発明の音声合成方法及び装置においては、予め最大次数の音韻パラメータデータを作成し、決定された次数分のフィルターリングを行っている。よって、最大次数分の音韻パラメータデータを作成し、記憶する必要があるため、CPUの占有率や処理時間に応じて低い次数でのフィルターリングを行ったとしても、CPUの占有率や処理時間に対する貢献度には余り見込めない。したがって、CPUの占有率や処理時間に応じ、次数を品質が劣化しない範囲で変更しても、CPUの占有率や処理時間をそれ程大きく変えることができない。
本発明は、上述の問題点を解決するためになされたものであり、演算量や処理時間を減らしながらも、聞き取りやすい音声合成を行う音声合成装置及び音声合成方法を提供することを目的とする。
上記課題を解決するため、請求項1に係る発明の音声合成装置では、一定時間間隔毎の第1の音響パラメータ列に分析された音韻データから作られた音韻モデルと一定時間間隔毎に分析された基本周波数データから作られた韻律モデルを含む音響辞書と、音声を生成する文に適した前記音韻モデルを当該音響辞書から選択する音韻モデル選択手段と、当該音韻モデル選択手段により選択された前記音韻モデルを構成する前記音韻データを基に前記文に対する第1の音響パラメータ列を生成する第1の音響パラメータ列生成手段と、前記文に適した前記韻律モデルを前記音響辞書から選択する韻律モデル選択手段と、当該韻律モデル選択手段により選択された前記韻律モデルを基に前記文に対する基本周波数列を生成する基本周波数列生成手段と、当該基本周波数列生成手段によって生成された前記基本周波数列に基づいて音源信号を作成する音源信号作成手段と、前記第1の音響パラメータ列と前記音源信号作成手段で作成された前記音源信号とをもとに音声を生成する第1のディジタルフィルターと、前記第1の音響パラメータ列を第2の音響パラメータ列に変換する変換手段と、当該変換手段により変換された前記第2の音響パラメータ列と前記音源信号をもとに音声を生成する第2のディジタルフィルターと、前記第1のディジタルフィルターを用いて音声を生成するか、前記第2のディジタルフィルターを用いて音声を生成するかを切り替えるフィルター切替手段とを備えたことを特徴とする構成となっている。
また、請求項2に係る発明の音声合成装置では、請求項1に記載の発明の構成に加えて、前記第1の音響パラメータ列はメルケプストラム列であり、前記第2の音響パラメータ列はケプストラム列であることを特徴とする構成となっている。
また、請求項3に係る発明の音声合成装置では、請求項1又は2に記載の発明の構成に加えて、CPU使用率を監視するCPU使用率監視手段と、当該CPU使用率監視手段により前記CPU使用率が第1の所定値を超えたか否かを判断する第1判断手段とを備え、前記フィルター切替手段は前記第1判断手段により前記第1の所定値を超えたと判断された場合に、第2のディジタルフィルターを用いて音声を生成するように切り替えることを特徴とする構成となっている。
また、請求項4に係る発明の音声合成装置では、請求項1乃至3のいずれかに記載の発明の構成に加えて、前記CPU使用率監視手段により前記CPU使用率が第2の所定値を超えたか否かを判断する第2判断手段と、前記第2判断手段により前記CPU使用率が前記第2の所定値を超えたと判断された場合に、前記第1のディジタルフィルター及び前記第2のディジタルフィルターを用いて音声を生成する処理を待機させる処理待機手段とを備えたことを特徴とする構成となっている。
また、請求項5に係る発明の音声合成装置では、請求項4に記載の発明の構成に加えて、前記処理待機手段による処理の待機を解除し処理を再開する際には、処理が待機されている音が含まれる文単位、呼気段落単位、アクセント句単位又はモーラ単位のいずれかの先頭にもどって処理を再開すること特徴とする構成となっている。
また、請求項6に係る発明の音声合成装置では、請求項1乃至5のいずれかに記載の発明の構成に加えて、前記第2判断手段により前記CPU使用率が前記第2の所定値を超えた状態の継続時間を計測する継続時間計測手段と、当該継続時間計測手段により前記CPU使用率が前記第2の所定値を超えた状態が所定時間を超えたと判断された場合には、当該音声合成装置のすべての処理を停止させる処理停止手段とを備えたことを特徴とする構成となっている。
また、請求項7に係る発明の音声合成装置では、請求項1乃至6のいずれかに記載の発明の構成に加えて、前記第2のディジタルフィルターを用いて音声を生成している場合において、前記フィルター切替手段は、明瞭に読み上げたい語句に付与される明瞭フラグが付与された文字列を合成する際、明瞭に読み上げる語句として予め設定されている任意の語句又は任意の品詞の語句を合成する際、予め設定された文字修飾がされている文字列を合成する際、読み上げスピードが速いに設定されている際、又は、読み上げスピードが遅いに設定されている文において読み上げスピードを速いに変更したい文字列に付与されるスピード変更フラグが付与された文字列を合成する際に前記第1のディジタルフィルターを用いて音声を生成するように切り替えることを特徴とする構成となっている。
また、請求項8に係る発明の音声合成装置では、請求項7に記載の発明の構成に加えて、前記フィルター切替手段による切り替えは、文単位、呼気段落単位、アクセント句単位又はモーラ単位のいずれかで行うことを特徴とする構成となっている。
また、請求項9に係る発明の音声合成装置では、音声を生成する文に対応した音声を生成する音声生成手段と、当該音声生成手段により生成される音声よりも高音質に前記文に対応した音声を生成する高音質音声生成手段と、前記音声生成手段により音声を生成するか、前記高音質音声生成手段により音声を生成するかを切り替える切替手段とを備え、前記音声生成手段により音声を生成している場合において、前記切替手段は、明瞭に読み上げたい語句に付与される明瞭フラグの付与された文字列を合成する際、明瞭に読み上げ語句として予め設定されている任意の語句又は任意の品詞の語句を合成する際、予め設定された文字修飾が行われている文字列を合成する際、読み上げスピードが速いに設定されている際、又は、読み上げスピードが遅いに設定されている文において読み上げスピードを速いに変更したい文字列に付与されるスピード変更フラグの付与された文字列を合成する際に前記高音質音声生成手段により音声を生成するように切り替えることを特徴とする構成となっている。
また、請求項10に係る発明の音声合成装置では、請求項9に記載の発明の構成に加えて、前記切替手段による切り替えは、文単位、呼気段落単位、アクセント句単位又はモーラ単位のいずれかで行うことを特徴とする構成となっている。
また、請求項11に係る発明の音声合成方法では、一定時間間隔毎の第1の音響パラメータ列に分析された音韻データから作られた音韻モデルと、一定時間間隔毎に分析された基本周波数データから作られた韻律モデルを含む音響辞書から前記文に適した前記音韻モデルを選択する音韻モデル選択工程と、当該音韻モデル選択工程において選択された前記音韻モデルを構成する前記音韻データを基に前記文に対する第1の音響パラメータ列を生成する第1の音響パラメータ列生成工程と、前記音響辞書から前記文に適した前記韻律モデルを選択する韻律モデル選択工程と、当該韻律モデル選択工程において選択された前記韻律モデルを構成する前記韻律データを基に前記文に対する基本周波数列を生成する基本周波数列生成工程と、前記基本周波数列生成工程によって生成された前記基本周波数列に基づいて音源信号を作成する音源信号作成工程と、前記第1の音響パラメータ列と前記音源信号作成工程で作成された前記音源信号とをもとに音声を生成する第1のディジタルフィルター工程と、前記第1の音響パラメータ列を第2の音響パラメータ列に変換する変換工程と、当該変換工程により変換された前記第2の音響パラメータ列と前記音源信号をもとに音声を生成する第2のディジタルフィルター工程と、前記第1のディジタルフィルター工程を用いて音声を生成するか、前記第2のディジタルフィルター工程を用いて音声を生成するかを切り替えるフィルター切替工程とを備えたことを特徴とする構成となっている。
また、請求項12に係る発明の音声合成方法では、請求項11に記載の発明の構成に加えて、前記第1の音響パラメータ列はメルケプストラム列であり、前記第2の音響パラメータ列はケプストラム列であることを特徴とする構成となっている。
また、請求項13に係る発明の音声合成方法では、請求項11又は12に記載の発明の構成に加えて、CPU使用率を監視するCPU使用率監視工程と、当該CPU使用率監視工程において前記CPU使用率が第1の所定値を超えたか否かを判断する第1判断工程とを備え、前記フィルター切替工程は前記第1判断工程において前記第1の所定値を超えたと判断された場合に、第2のディジタルフィルター工程を用いて音声を生成するように切り替えることを特徴とする構成となっている。
また、請求項14に係る発明の音声合成方法では、請求項11乃至13のいずれかに記載の発明の構成に加えて、前記CPU使用率監視工程において前記CPU使用率が第2の所定値を超えたか否かを判断する第2判断工程と、前記第2判断工程により前記CPU使用率が前記第2の所定値を超えたと判断された場合に、前記第1のディジタルフィルター工程及び前記第2のディジタルフィルター工程を用いて音声を生成する処理を待機させる処理待機工程とを備えたことを特徴とする構成となっている。
また、請求項15に係る発明の音声合成方法では、請求項14に記載の発明の構成に加えて、前記処理待機工程による処理の待機を解除し処理を再開する際には、処理が待機されている音が含まれる、文単位、呼気段落単位、アクセント句単位又はモーラ単位のいずれかの先頭にもどって処理を再開することを特徴とする構成となっている。
また、請求項16に係る発明の音声合成方法では、請求項11乃至15のいずれかに記載の発明の構成に加えて、前記第2判断工程において前記CPU使用率が前記第2の所定値を超えた状態の継続時間を計測する継続時間計測工程と、当該継続時間計測工程において前記CPU使用率が前記第2の所定値を超えた状態が所定時間を超えたと判断された場合は、当該音声合成方法のすべての処理を停止させる処理停止工程とを備えたことを特徴とする構成となっている。
また、請求項17に係る発明の音声合成方法では、請求項11乃至16のいずれかに記載の発明の構成に加えて、前記第2のディジタルフィルター工程を用いて音声を生成している場合において、前記フィルター切替工程は、明瞭に読み上げたい語句に付与される明瞭フラグの付与された文字列を合成する際、明瞭に読み上げ語句として予め設定されている任意の語句又は任意の品詞の語句を合成する際、予め設定された文字修飾がされている文字列を合成する際、読み上げスピードが速いに設定されている際、又は、読み上げスピードが遅いに設定されている分において読み上げスピードを速いに変更したい文字列に付与されるスピード変更フラグの付与された文字列を合成する際に前記第1のディジタルフィルター工程を用いて音声を生成するように切り替えることを特徴とする構成となっている。
また、請求項18に係る発明の音声合成方法では、請求項17に記載の発明の構成に加えて、前記フィルター切替工程における切り替えは、文単位、呼気段落単位、アクセント句単位又はモーラ単位のいずれかで行うことを特徴とする構成となっている。
また、請求項19に係る発明の音声合成方法では、音声を生成する文に対応した音声を生成する音声生成工程と、当該音声生成工程において生成される音声よりも高音質に前記文に対応した音声を生成する高音質音声生成工程と、前記音声合成工程において音声を生成するか、前記高音質音声合成工程において音声を生成するかを切り替える切替工程とを備え、前記音声生成工程において音声を生成している場合において、前記切替工程は、明瞭に読み上げたい語句に付与される明瞭フラグが付与された文字列を合成する際、明瞭に読み上げる語句として予め設定されている任意の語句又は任意の品詞の語句を合成する際、予め設定された文字修飾が行われている文字列を合成する際、読み上げスピードが速いに設定されている際、又は、読み上げスピードが遅いに設定されている文において読み上げスピードを速いに変更したい文字列に付与されるスピード変更フラグが付与された文字列を合成する際に前記高音質音声生成工程において音声を生成するように切り替えることを特徴とする構成となっている。
また、請求項20に係る発明の音声合成方法では、請求項19に記載の発明の構成に加えて、前記切替工程における切り替えは、文単位、呼気段落単位、アクセント句単位又はモーラ単位のいずれかで行うことを特徴とする構成となっている。
請求項1に係る発明の音声合成装置では、一定時間間隔毎の第1の音響パラメータ列に分析された音韻データから作られた音韻モデルと一定時間間隔毎に分析された基本周波数データから作られた韻律モデルを含む音響辞書と、音韻モデル選択手段は、音声を生成する文に適した音韻モデルを音響辞書から選択し、第1の音響パラメータ列生成手段は、音韻モデル選択手段により選択された音韻モデルを構成する音韻データを基に文に対する第1の音響パラメータ列を生成し、韻律モデル選択手段は、文に適した韻律モデルを音響辞書から選択し、基本周波数列生成手段は、韻律モデル選択手段により選択された韻律モデルを基に文に対する基本周波数列を生成し、音源信号作成手段は、基本周波数列生成手段によって生成された基本周波数列に基づいて音源信号を作成し、第1のディジタルフィルターは、第1の音響パラメータ列と音源信号作成手段で作成された音源信号とをもとに音声を生成し、変換手段は、第1の音響パラメータ列を第2の音響パラメータ列に変換し、第2のディジタルフィルターは、変換手段により変換された第2の音響パラメータ列と音源信号をもとに音声を生成し、フィルター切替手段は、第1のディジタルフィルターを用いて音声を生成するか、第2のディジタルフィルターを用いて音声を生成するかを切り替えることができる。したがって、フィルター切替手段でCPUの占有率や処理量や生成される音声の品質の異なる第1のディジタルフィルターと第2のディジタルフィルターとを切り替えることにより、CPUの占有率や処理量をコントロールすることができる。
また、請求項2に係る発明の音声合成装置では、請求項1に記載の発明の効果に加えて、第1の音響パラメータ列をメルケプストラム列とし、第2の音響パラメータ列をケプストラム列とすることができる。メルケプストラム列をもとに音声を生成する第1のディジタルフィルターは、音声の品質は高いが処理量を有し、CPUの占有率が高くなり、ケプストラム列をもとに音声を生成する第2のディジタルフィルターは、音声の品質は低いが処理量が少なく、CPUの占有率も低い。よって、第1のディジタルフィルターと第2のディジタルフィルターとを切り替えることにより、CPUの占有率や処理量や生成される音声の品質をコントロールすることができ、メルケプストラム列を使用することにより、出力される音声を過度に劣化させることなく、CPUへの負荷を低くすることができる。
また、請求項3に係る発明の音声合成装置では、請求項1又は2に記載の発明の効果に加えて、CPU使用率監視手段は、CPU使用率を監視し、第1判断手段は、CPU使用率監視手段によりCPU使用率が第1の所定値を超えたか否かを判断することができる。また、フィルター切替手段は第1判断手段により第1の所定値を超えたと判断された場合に、第2のディジタルフィルターを用いて音声を生成するように切り替えることができる。したがって、第2のディジタルフィルターをCPU占有率のより軽いディジタルフィルターとすれば、CPUの使用率が高い場合には第2のディジタルフィルターを使用することにより、CPUへの負荷を軽減することができる。特に、音声合成以外の処理を行う装置においては、音声合成処理が他の処理を邪魔することを防ぐことができる。また、CPU使用率の代わりにCPU未使用率(空率)を用いても同様な効果が得られる。
また、請求項4に係る発明の音声合成装置では、請求項1乃至3のいずれかに記載の発明の効果に加えて、第2判断手段は、CPU使用率監視手段によりCPU使用率が第2の所定値を超えたか否かを判断し、処理待機手段は、第2判断手段によりCPU使用率が第2の所定値を超えたと判断された場合に、第1のディジタルフィルター及び第2のディジタルフィルターを用いて音声を生成する処理を待機させることができる。したがって、CPUの使用率が第2の所定値よりも高くなった場合には、音声合成の処理が待機されるので、CPUを使用している他の処理が終了してCPUの使用率が低くなった後に音声合成の処理が行われるので、音声の途中に無音の区間が入ってしまい、途切れ途切れに音声が出力されることがなく、聞き取りやすい音声が出力される。特に、音声合成以外の処理を行う装置においては、音声合成処理が他の処理を邪魔することを防ぐことができる。
また、請求項5に係る発明の音声合成装置では、請求項4に記載の発明の効果に加えて、処理待機手段による処理の待機を解除し処理を再開する際には、処理が待機されている音が含まれる文単位、呼気段落単位、アクセント句単位又はモーラ単位のいずれかの先頭にもどって処理を再開することができる。したがって、単位、呼気段落単位、アクセント句単位又はモーラ単位のいずれかの先頭から処理が再開されるので、処理が待機した場合でも聞き取りやすい。
また、請求項6に係る発明の音声合成装置では、請求項1乃至5のいずれかに記載の発明の効果に加えて、継続時間計測手段は、第2判断手段によりCPU使用率が第2の所定値を超えた状態の継続時間を計測し、処理停止手段は、継続時間計測手段によりCPU使用率が第2の所定値を超えた状態が所定時間を超えたと判断された場合には、音声合成装置のすべての処理を停止させることができる。したがって、CPU使用率が高い状態が続けば処理が停止されるので、CPUの負荷を下げることができる。特に、音声合成以外の処理を行う装置においては、音声合成処理が他の処理を邪魔することを防ぐことができる。
また、請求項7に係る発明の音声合成装置では、請求項1乃至6のいずれかに記載の発明の効果に加えて、第2のディジタルフィルターを用いて音声を生成している場合において、フィルター切替手段は、明瞭に読み上げたい語句に付与される明瞭フラグが付与された文字列を合成する際、明瞭に読み上げる語句として予め設定されている任意の語句又は任意の品詞の語句を合成する際、予め設定された文字修飾がされている文字列を合成する際、読み上げスピードが速いに設定されている際、又は、読み上げスピードが遅いに設定されている文において読み上げスピードを速いに変更したい文字列に付与されるスピード変更フラグが付与された文字列を合成する際に第1のディジタルフィルターを用いて音声を生成するように切り替えることができる。したがって、第2のディジタルフィルターを用いており、品質が高くない場合であっても、明瞭に読み上げたい語句、明瞭に読み上げる語句として予め設定されている語句や品詞、予め設定された文字修飾がされている文字列、読み上げスピードが遅いに設定されている文において読み上げスピードを速いに変更したい文字列といった必要な文字列や、読み上げスピードが速いに設定されている際には、第1のディジタルフィルターを用いることにより、音声の品質を上げることができるので、聞き取りやすい音声を生成することができる。
また、請求項8に係る発明の音声合成装置では、請求項7に記載の発明の効果に加えて、フィルター切替手段による切り替えは、文単位、呼気段落単位、アクセント句単位又はモーラ単位のいずれかで行うことができる。したがって、文や呼気段落やアクセントやモーラの途中で品質が変わってしまうことがなく、聞き取りやすい音声を合成することができる。
また、請求項9に係る発明の音声合成装置では、音声生成手段は、音声を生成する文に対応した音声を生成し、高音質音声生成手段は、音声生成手段により生成される音声よりも高音質に文に対応した音声を生成し、切替手段は、音声生成手段により音声を生成するか、高音質音声生成手段により音声を生成するかを切り替えることができる。そして、音声生成手段により音声を生成している場合において、切替手段は、明瞭に読み上げたい語句に付与される明瞭フラグの付与された文字列を合成する際、明瞭に読み上げ語句として予め設定されている任意の語句又は任意の品詞の語句を合成する際、予め設定された文字修飾が行われている文字列を合成する際、読み上げスピードが速いに設定されている際、又は、読み上げスピードが遅いに設定されている文において読み上げスピードを速いに変更したい文字列に付与されるスピード変更フラグの付与された文字列を合成する際に高音質音声生成手段により音声を生成するように切り替えることができる。したがって、明瞭に読み上げたい語句、明瞭に読み上げる語句として予め設定されている語句や品詞、予め設定された文字修飾がされている文字列、読み上げスピードが遅いに設定されている文において読み上げスピードを速いに変更したい文字列といった必要な文字列や、読み上げスピードが速いに設定されている際には、第1のディジタルフィルターを用いることにより、音声の品質を上げることができるので、聞き取りやすい音声を生成することができる。
また、請求項10に係る発明の音声合成装置では、請求項9に記載の発明の効果に加えて、切替手段による切り替えは、文単位、呼気段落単位、アクセント句単位又はモーラ単位のいずれかで行うことができる。したがって、文や呼気段落やアクセントやモーラの途中で品質が変わってしまうことがなく、聞き取りやすい音声を合成することができる。
また、請求項11に係る発明の音声合成方法では、音韻モデル選択工程は、一定時間間隔毎の第1の音響パラメータ列に分析された音韻データから作られた音韻モデルと、一定時間間隔毎に分析された基本周波数データから作られた韻律モデルを含む音響辞書から文に適した音韻モデルを選択し、第1の音響パラメータ列生成工程は、音韻モデル選択工程において選択された音韻モデルを構成する音韻データを基に文に対する第1の音響パラメータ列を生成し、韻律モデル選択工程は、音響辞書から文に適した韻律モデルを選択し、基本周波数列生成工程は、韻律モデル選択工程において選択された韻律モデルを構成する韻律データを基に文に対する基本周波数列を生成し、音源信号作成工程は、基本周波数列生成工程によって生成された基本周波数列に基づいて音源信号を作成し、第1のディジタルフィルター工程は、第1の音響パラメータ列と音源信号作成工程で作成された音源信号とをもとに音声を生成し、変換工程は、第1の音響パラメータ列を第2の音響パラメータ列に変換し、第2のディジタルフィルター工程は、変換工程により変換された第2の音響パラメータ列と音源信号をもとに音声を生成し、フィルター切替工程は、第1のディジタルフィルター工程を用いて音声を生成するか、第2のディジタルフィルター工程を用いて音声を生成するかを切り替えることができるしたがって、フィルター切替手段でCPUの占有率や処理量や生成される音声の品質の異なる第1のディジタルフィルターと第2のディジタルフィルターとを切り替えることにより、CPUの占有率や処理量をコントロールすることができる。
また、請求項12に係る発明の音声合成方法では、請求項11に記載の発明の効果に加えて、第1の音響パラメータ列をメルケプストラム列とし、第2の音響パラメータ列をケプストラム列とすることができる。メルケプストラム列をもとに音声を生成する第1のディジタルフィルターは、音声の品質は高いが処理量を有し、CPUの占有率が高くなり、ケプストラム列をもとに音声を生成する第2のディジタルフィルターは、音声の品質は低いが処理量が少なく、CPUの占有率も低い。よって、第1のディジタルフィルターと第2のディジタルフィルターとを切り替えることにより、CPUの占有率や処理量や生成される音声の品質をコントロールすることができる。
また、請求項13に係る発明の音声合成方法では、請求項11又は12に記載の発明の効果に加えて、CPU使用率監視工程は、CPU使用率を監視し、第1判断工程は、CPU使用率監視工程においてCPU使用率が第1の所定値を超えたか否かを判断することができる。また、フィルター切替工程は第1判断工程において第1の所定値を超えたと判断された場合に、第2のディジタルフィルター工程を用いて音声を生成するように切り替えることができる。したがって、第2のディジタルフィルターをCPU占有率のより軽いディジタルフィルターとすれば、CPUの使用率が高い場合には第2のディジタルフィルターを使用することにより、CPUへの負荷を軽減することができる。特に、音声合成以外の工程がある場合には、音声合成の工程が他の工程を邪魔することを防ぐことができる。
また、請求項14に係る発明の音声合成方法では、請求項11乃至13のいずれかに記載の発明の効果に加えて、第2判断工程は、CPU使用率監視工程においてCPU使用率が第2の所定値を超えたか否かを判断し、処理待機工程は、第2判断工程によりCPU使用率が第2の所定値を超えたと判断された場合に、第1のディジタルフィルター工程及び第2のディジタルフィルター工程を用いて音声を生成する処理を待機させることができる。したがって、CPUの使用率が第2の所定値よりも高くなった場合には、音声合成の処理が待機されるので、CPUを使用している他の処理が終了してCPUの使用率が低くなった後に音声合成の処理が行われるので、音声の途中に無音の区間が入ってしまい、途切れ途切れに音声が出力されることがなく、聞き取りやすい音声が出力される。特に、音声合成以外の工程がある場合には、音声合成の工程が他の工程を邪魔することを防ぐことができる。
また、請求項15に係る発明の音声合成方法では、請求項14に記載の発明の効果に加えて、処理待機工程による処理の待機を解除し処理を再開する際には、処理が待機されている音が含まれる、文単位、呼気段落単位、アクセント句単位又はモーラ単位のいずれかの先頭にもどって処理を再開することができる。したがって、単位、呼気段落単位、アクセント句単位又はモーラ単位のいずれかの先頭から処理が再開されるので、処理が待機した場合でも聞き取りやすい。
また、請求項16に係る発明の音声合成方法では、請求項11乃至15のいずれかに記載の発明の効果に加えて、継続時間計測工程は、第2判断工程においてCPU使用率が第2の所定値を超えた状態の継続時間を計測し、処理停止工程は、継続時間計測工程においてCPU使用率が第2の所定値を超えた状態が所定時間を超えたと判断された場合は、音声合成方法のすべての処理を停止させることができる。したがって、CPU使用率が高い状態が続けば処理が停止されるので、CPUの負荷を下げることができる。特に、音声合成以外の工程がある場合には、音声合成の工程が他の工程を邪魔することを防ぐことができる。
また、請求項17に係る発明の音声合成方法では、請求項11乃至16のいずれかに記載の発明の効果に加えて、第2のディジタルフィルター工程を用いて音声を生成している場合において、フィルター切替工程は、明瞭に読み上げたい語句に付与される明瞭フラグの付与された文字列を合成する際、明瞭に読み上げ語句として予め設定されている任意の語句又は任意の品詞の語句を合成する際、予め設定された文字修飾がされている文字列を合成する際、読み上げスピードが速いに設定されている際、又は、読み上げスピードが遅いに設定されている分において読み上げスピードを速いに変更したい文字列に付与されるスピード変更フラグの付与された文字列を合成する際に第1のディジタルフィルター工程を用いて音声を生成するように切り替えることができる。したがって、第2のディジタルフィルターを用いており、品質が高くない場合であっても、明瞭に読み上げたい語句、明瞭に読み上げる語句として予め設定されている語句や品詞、予め設定された文字修飾がされている文字列、読み上げスピードが遅いに設定されている文において読み上げスピードを速いに変更したい文字列といった必要な文字列や、読み上げスピードが速いに設定されている際には、第1のディジタルフィルターを用いることにより、音声の品質を上げることができるので、聞き取りやすい音声を生成することができる。
また、請求項18に係る発明の音声合成方法では、請求項17に記載の発明の効果に加えて、フィルター切替工程における切り替えは、文単位、呼気段落単位、アクセント句単位又はモーラ単位のいずれかで行うことができる。したがって、文や呼気段落やアクセントやモーラの途中で品質が変わってしまうことがなく、聞き取りやすい音声を合成することができる。
また、請求項19に係る発明の音声合成方法では、音声生成工程は、音声を生成する文に対応した音声を生成し、高音質音声生成工程は、音声生成工程において生成される音声よりも高音質に文に対応した音声を生成し、切替工程は、音声合成工程において音声を生成するか、高音質音声合成工程において音声を生成するかを切り替えることができる。そして、音声生成工程において音声を生成している場合において、切替工程は、明瞭に読み上げたい語句に付与される明瞭フラグが付与された文字列を合成する際、明瞭に読み上げる語句として予め設定されている任意の語句又は任意の品詞の語句を合成する際、予め設定された文字修飾が行われている文字列を合成する際、読み上げスピードが速いに設定されている際、又は、読み上げスピードが遅いに設定されている文において読み上げスピードを速いに変更したい文字列に付与されるスピード変更フラグが付与された文字列を合成する際に高音質音声生成工程において音声を生成するように切り替えることができる。したがって、明瞭に読み上げたい語句、明瞭に読み上げる語句として予め設定されている語句や品詞、予め設定された文字修飾がされている文字列、読み上げスピードが遅いに設定されている文において読み上げスピードを速いに変更したい文字列といった必要な文字列や、読み上げスピードが速いに設定されている際には、第1のディジタルフィルターを用いることにより、音声の品質を上げることができるので、聞き取りやすい音声を生成することができる。
また、請求項20に係る発明の音声合成方法では、請求項19に記載の発明の効果に加えて、切替工程における切り替えは、文単位、呼気段落単位、アクセント句単位又はモーラ単位のいずれかで行うことができる。したがって、文や呼気段落やアクセントやモーラの途中で品質が変わってしまうことがなく、聞き取りやすい音声を合成することができる。
以下、本発明の実施の形態を図面を参照して説明する。本実施の形態では、本発明の要部であるディジタルフィルターの切り替えにおいて、3つの条件による切り替えの実施例を説明する。第1の実施例では、CPU使用率に基づいてディジタルフィルターの切り替えが行われる。第2の実施例では、音声合成を行うテキストに所定の指示がある場合にディジタルフィルターの切り替えが行われる。第3の実施例では、音声出力の設定速度に基づいてディジタルフィルターの切り替えが行われる。
まず、図1を参照して、本実施の形態の音声合成装置及び音声合成方法における機能構成について説明する。図1は、本実施の形態の第1の実施例、第2の実施例、第3の実施例に共通の機能構成図である。図1に示すように、まず、音声合成されるテキストは言語解析11が行われる。この言語解析11では、入力されたテキストが解析されて、その読みとアクセント型が出力される。
例えば、音声合成されるテキストが「一週間ばかり、ニューヨークを取材した。」であれば、まず、品詞情報、読み情報、接続情報、アクセント情報等をもつ言語辞書(図示外)が参照されて周知の最長一致法で形態素解析が行われ、「一」,「週間」,「ばかり」,「ニューヨーク」,「を」,「取材」,「し」,「た。」に解析される。そして、言語辞書の接続情報が参照されて複合語がまとめられ、「一週間ばかり」,「ニューヨークを」,「取材した。」とされる。尚、形態素解析においてはアクセント位置も言語辞書のアクセント情報から割り出される。そして、複合語にまとめられる際に、アクセント位置の移動がある語については、アクセント位置の変更処理も行われる。そして、最後に、言語情報の読み情報が参照されて、文字列がカタカナの文字列に置き換えられ、「イッシューカンバカリ(6)|ニューヨークヲ(3)シュザイシタ(0)」という解析結果が出力される。ここで「|」は呼気段落区切りを示し、()はアクセント区の区切りを示し、()内の数字がアクセント区のアクセント位置を示している。
そして、言語解析11により解析された読みに基づいて、音韻モデル選択12が行われる。この音韻モデル選択12では、読みに該当する音韻モデルが音響辞書50の音韻モデル51から選択され、音韻列が生成される。音響辞書50の音韻モデル51には、「a,b,by,ch,cl,d,dy,e,f,fy,g,gy,h,hy,i,j,k,ky,m,my,n,N,ny,o,p,pau,py,r,ry,s,sh,t,ts,ty,u,w,y,z」の38種の音韻モデルのリストが記憶されている。尚、これ以外に前後の音韻環境、韻律環境を考慮する場合もある。この音韻モデルは、自然音声をメルケプストラム分析することによって得られるものである。各音韻モデルはその継続時間をフレーム(1フレームは10msとする)で分割され、フレームごとにメルケプストラム係数が記憶されている。また、その他にフレームごとに有声か無声かの情報が記憶されている。
「一週間ばかり、ニューヨークを取材した。」の例では、「イッシューカンバカリ|ニューヨークヲシュザイシタ」という読みに基づいて、「i_cl_sh_u_u_k_a_N_b_a_k_a_r_i_pau_ny_u_u_y_o_o_k_u_o_sh_u_z_a_i_sh_i_t_a」という音韻モデルが選択される。尚、「pau」はポーズを示している。次いで、音韻モデル選択12により選択された音韻モデルに基づいて、各音素の音韻モデルが結合されてメルケプストラム列と有声/無声情報列(以下、mcep列とする)が生成される(mcep列生成13)。
また、言語解析11により解析されたアクセント型に基づいて、韻律モデル選択15が行われる。この韻律モデル選択15では、アクセント区切り、アクセント型に該当する韻律モデル列が音響辞書50の韻律モデル52から選択され、韻律モデル列が生成される。「一週間ばかり、ニューヨークを取材した。」の例では、「(9,6)、pau、(6,3)、(5,0)」という韻律モデル列が生成される。これは、9モーラ(拍)のアクセント型6の韻律モデルの次に、ポーズがあり、その後に6モーラのアクセント型3、5モーラのアクセント型0となることを示している。次いで、pitch列生成16により、生成された韻律モデル列が接続されてpitch列が生成される。ただし、接続時に音韻モデル列の各音韻の長さに合わせて、モーラ長を伸縮して音韻モデルとの同期が取られる。
そして、mcep列生成13により生成されたmcep列の有声/無声情報、及びpitch列生成16により生成されたpitch列に基づいて音源信号生成17が行われる。音源信号は、pitch列に基づいて有声部にはパルス列信号が生成され、無声部には雑音信号が生成される。そして、音源信号がMLSAフィルター23又はLMAフィルター22を介して音声として出力される。
ここで、ディジタルフィルター切り替え20により音源信号から音声出力するためのデータを生成する際のディジタルフィルターとしてMLSAフィルター23とLMAフィルター22とを切り替える。第1の実施例では、CPU使用率計測18により計測されたCPUの使用率に基づいて使用するディジタルフィルターの切り替えが行われ、第2の実施例では、テキスト解析14により解析された結果に基づいて使用するディジタルフィルターの切り替えが行われ、第3の実施例では、設定速度取得19により取得された設定速度に基づいて使用するディジタルフィルターの切り替えが行われる。
尚、LMAフィルター22は、ケプストラム列(以下、cep列とする)を係数として音声を生成するが、入力されたテキストからは、mcep列のみしか生成されていないので(音韻モデル選択12,mcep列生成13)、周波数変換21により周知の変換方法でmcep列がcep列に変換される。そして、変換されたcep列と音源信号に基づいてLMAフィルター22は音声出力を行う。
人間の音の高さに対する聴覚特性では、低い周波数域で細かい分解能を持ち、高い周波数域で粗い分解能を持っている。メルケプストラム分析は、このような聴覚特性を表す非直線周波数軸上で定義されたケプストラムであり、メルケプストラム分析によるmcep列を用いたMLSAフィルター23を用いて音声出力する場合には、同じ次数のcep列を用いたLMAフィルター22を用いて音声出力するよりも計算量が多く、CPUへの負荷も多い状態であるが高音質の音声を出力することができる。具体的には、同一サンプルの演算量を比較すると、MLSAフィルター23では、加算162回、減算73回、乗算174回、除算97回に対して、LMAフィルター22では、加算86回、減算0回、乗算81回、除算12回の演算量となる。
次に、図2を参照して、本実施の形態の音声合成装置1について説明する。図2は、音声合成装置1の電気的構成を示すブロック図である。図2に示すように、音声合成装置1には音声合成装置1の制御を司るCPU2が設けられ、CPU2には、キーボード3と、各種のデータを一時的に記憶するRAM4と、音響辞書50等を記憶したROM5と、デジタルアナログコンバータ(DAC)6、計時装置9とが接続している。そして、DAC6にはさらにアンプ(AMP)7が接続し、AMP7にはスピーカ8が接続している。
また、RAM4には、音声合成の処理を行う際に使用される変数や生成データを記憶する種々の記憶エリアが設けられている。例えば、テキスト記憶エリア41には、キーボード3から入力され、音声合成を行うテキストが記憶される。また、解析結果記憶エリア42には、言語解析11によりテキスト記憶エリア41に記憶されているテキストが解析された結果等が記憶される。
図3は、テキスト記憶エリア41の構成を示す模式図であり、図4は、解析結果記憶エリア42の構成を示す模式図である。図3に示すように、テキスト記憶エリア41には音声合成を行うテキストが記憶される。図3に示す例では、「一週間ばかり、ニューヨークを取材した。」というテキストが記憶されている。図4に示す例では、解析結果記憶エリア42には、「一週間ばかり、ニューヨークを取材した。」の言語解析11の解析結果として、「イッシューカンバカリ(6)|ニューヨークヲ(3)シュザイシタ(0)」と記憶されている。
尚、第2の実施例において、テキスト記憶エリア41に記憶されているテキストに、明瞭に発音させることを示すタグ<clear>,明瞭に発音させることを終了させることを示すタグ</clear>,文字修飾が付与されている場合などや、予め設定されているキーワードが含まれている場合、予め設定されている品詞が含まれている場合などには、それらの指示があった旨を示すフラグ(明瞭フラグ、文字修飾フラグ、キーワードフラグ、品詞フラグなど)の情報が文字ごとに付与される(図6乃至図8参照)。
そして、mcep列記憶エリア43には、mcep列生成13により生成されたmcep列が記憶され、pitch列記憶エリア44には、pitch列生成16により生成されたpitch列が記憶される。そして、音源信号記憶エリア45には、音源信号生成17により生成された音源信号が記憶され、出力音声波形記憶エリア46には、MLSAフィルター又はLMAフィルターにより生成された出力音声の波形が記憶される。
尚、CPU使用率記憶エリア61,waitフラグ記憶エリア62,wait位置記憶エリア63,再開時開始位置記憶エリア64は、第1の実施例においてのみ使用される。CPU使用率記憶エリア61には、CPU使用率計測18によりOSから取得したCPUの使用率が記憶される。尚、その他の記憶エリアについては省略されている。waitフラグ記憶エリア62には、音声合成の処理がwait状態になっているか否かを示すフラグであるwaitフラグが記憶されている。本実施の形態の音声合成装置及び音声合成方法においては、CPU使用率が所定の値を超えた場合に、CPU使用率が下がるまで処理を一旦wait状態として、出力される音声に不要な無音区間が挿入されてしまうのを防いでいる。このwaitフラグでは、wait状態の場合には「1」がセットされて「ON」とされ、wait状態でない場合には「0」がセットされて「OFF」とされている。そして、wait位置記憶エリア63には、wait状態とされた場合に、wait状態とされた文字の位置を示す情報が記憶されており、再開時開始位置記憶エリア64には、wait状態が解除されて音声合成処理が再開される文字の位置を示す情報が記憶されている。
また、高音質フラグ記憶エリア71は、第2の実施例においてのみ使用される。この高音質フラグ記憶エリア71には、解析結果記憶エリア42に記憶されているテキストの解析結果の読みの一文字一文字に対応して、高音質で出力するか否かのフラグである高音質フラグが記憶されている。尚、高音質で出力したい文字については「1」がセットされて「ON」とされ、高音質で出力しない文字については「0」がセットされて「OFF」とされている。
そして、設定速度記憶エリア81は、第3の実施例においてのみ使用される。この設定速度記憶エリア81には、設定速度取得19により取得された、音声出力の速度として予め設定されている設定速度が記憶される。
ここで、第1の実施例のディジタルフィルター切り替え20について、図5のフローチャートを参照して説明する。図5は、第1の実施例のディジタルフィルター切り替え20のフローチャートである。第1の実施例では、CPU2の使用率に基づいてディジタルフィルターの切り替えが行われる。ここでは、CPU2の使用率が第1の所定値R1(本実施例では70%とする)を超えると、CPU2への負荷の低いLMAフィルター22が使用される。また、CPU2の使用率が第2の所定値R2(本実施例では90%とする)を超えると、CPU2の負荷が大変高いので出力音声に無音が挿入されてしまう可能性が高いので、処理をwait状態にする。wait状態が所定時間(本実施例では5分とする)継続した場合には、処理を停止する。この処理は、10msごとに繰り返し開始される。尚、初期設定の使用フィルターは高音質の音声を出力するMLSAフィルター23となっている。
まず、OSからCPU2の使用率rが取得され、RAM4のCPU使用率記憶エリア61へ記憶される(S1)。そして、取得された使用率rが第2の所定の値R2(90%)よりも大きいか否かの判断が行われる(S2)。R2よりも使用率rが大きくなければ(S2:NO)、処理をwait状態にする必要はないので、S12へ進む。ここで、既にwait状態となっているか否かの判断が行われる(S12)。wait状態でなければ(S12:NO)、引き続き使用率rの第1の所定の値(70%)との比較が行われる(S16)。
また、wait状態となっていれば(S12:YES)、CPU2の使用率rはR2(90%)以下となっているので、wait状態を解除して、処理を再開させる必要がある。そこで、wait位置記憶エリア63に記憶されているwait状態の文字位置から、1つ前の区切り位置が算出され再開時開始位置記憶エリア64に記憶される(S13)。そして、再開時開始位置記憶エリア64に記憶されている文字位置から処理がリスタートされ(S14)、waitフラグ記憶エリア62に記憶されているwaitフラグに「0」がセットされて「OFF」とされ(S15)、wait時間を計測しているタイマーがOFFされる(S16)。尚、区切り位置は、本実施の形態では文区切り、呼気段落区切り、アクセント句区切りの区切り位置とする。解析結果記憶エリア42においてwait位置の文字位置から1文字ずつ前に遡り、アクセント句区切り、呼気段落区切り、アクセント句区切りを読み込んだら、その次の文字位置が再開時開始位置とされる。
例えば、図4に示す例では、wait位置が「カ」であれば、「ー」,「シュ」,「ッ」,「イ」と読み込まれ、次の文字を読み込もうとしても、読み込めないので、文頭であると判断され、「イ」の位置が再開時開始位置とされる。また、「ヨ」がwait位置であれば、「ー」,「ニュ」,「|」と読み込まれ、「|」が呼気段落区切りを示しているので、その次の文字である「ニュ」が再開時開始位置とされる。また、「シ」がwait位置であれば、「イ」,「ザ」,「シュ」,「(3)」と読み込まれ、「(3)」がアクセント句区切りを示しているので、その次の文字である「シュ」が再開時開始位置とされる。
wait状態であるか否かに対する処理が行われたら(S12〜S16)、使用率rが第1の所定の値R1(70%)より大きいか否かの判断が行われる(S17)。使用率rがR1(70%)よりも大きければ、(S17:YES)、CPU2に対する負荷が大きいので、CPU2への負荷が大きくないLMAフィルター22を使用する必要がある。そこで、現在使用されているフィルターがMLSAフィルター23であるか否かの判断が行われる(S18)。そして、MLSAフィルター23が使用されていれば(S18:YES)、LMAフィルター22へ切り替えられ(S19)、処理は終了する。また、MLSAフィルター23が使用されていなければ(S18:NO)、LMAフィルター22が使用されているということなので、何もせずに処理は終了する。
また、使用率rがR1(70%)よりも大きくなければ(S17:NO)、より高音質のMLSAフィルター23を使用したい。そこで、現在使用されているフィルターがLMAフィルター22であるか否かの判断が行われる(S20)。そして、LMAフィルター22が使用されていれば(S20:YES)、MLSAフィルター23へ切り替えられ(S21)、処理は終了する。また、LMAフィルター22が使用されていなければ(S20:NO)、MLSAフィルター23が使用されているということなので、何もせずに処理は終了する。
また、使用率rがR2(90%)よりも大きかった場合には(S2:YES)、CPU2に対して非常に負荷がかかっているので、処理をwait状態にさせる(中断させる)必要がある。そこで、現在既にwait状態となっているか否かの判断が行われる(S3)。wait状態でなければ(S3:NO)、waitフラグ記憶エリア62に「1」がセットされて「ON」とされ(S4)、現在処理を行っている文字位置がwait位置記憶エリア63に記憶され(S5)、wait状態の継続時間を計測するためのタイマーがスタートされる(S6)。そして、S7へ進む。また、既にwait状態となっていれば(S3:YES)、wait状態とする処理をする必要はないので、そのままS7へ進む。
S7では、タイマーにより計測された継続時間tが取得される(S7)。そして、この継続時間tが所定時間T(5分)より長いか否かの判断が行われる(S8)。継続時間tがTよりも長くなければ(S8:NO)、まだwait状態を継続させるのでそのまま処理は終了する。しかし、継続時間tがTよりも長ければ(S8:YES)、CPU2の負荷を軽減させるために、処理を停止させる。そこで、まず、waitフラグ記憶エリア62に「0」がセットされて「OFF」とされ(S9)、タイマーがOFFされ(S10)、音声合成処理の停止の処理が行われ(S11)、本処理は終了する。
以上のような処理が、10ms毎に繰り返されることにより、例えば、CPU2の使用率に基づいたディジタルフィルターの切り替え処理が行われる。例えば、CPU2の使用率が継続的に70%以下(例えば、30%)であったとすると、CPU2の使用率rとして30%が取得され(S1)、使用率rはR2(90%)より大きくなく(S2:NO)、wait状態でもなく(S12:NO)、使用率rはR1(70%)より大きくもない(S17:NO。使用されているフィルターは、MLSAフィルター23でありLMAフィルター22でないので(S20:NO)、そのまま処理は終了する。
そこで、CPU2の使用率が例えば80%より大きい値(例えば85%)に上昇したとすると、次の本処理ではCPU2の使用率rは85%で取得され(S1)、R2(90%)より大きくなく(S2:NO)、wait状態でもないが(S12:NO)、R1(70%)よりも大きいと判断される(S17:YES)、そこで、MLSAフィルター23を使用しているので(S18:YES)、LMAフィルター22へ切り替えられる(S19)。そして、処理は終了する。そして、10ms後の次の処理の開始においてCPU2の使用率が85%のまま(80%より大きいまま)であれば、CPU2の使用率rが85%で取得され(S1)、R2(90%)より大きくなく(S2:NO)、wait状態でもないが(S12:NO)、R1(70%)よりも大きく(S17:YES)、LMAフィルター22へ既に切り替えられており、MLSAフィルターを使用していないので(S18:NO)、そのまま処理は終了する。そして、その後の処理において、CPU2の使用率が70%以下となれば、CPU2の使用率rが取得され(S1)、使用率rはR2(90%)より大きくなく(S2:NO)、wait状態でもなく(S12:NO)、使用率rはR1(70%)より大きくもなく(S17:NO)、LMAフィルター22が使用されているので(S20:YES)、MLSAフィルター23へ切り替えられる(S21)。そして処理は終了する。
また、CPU2の使用率がR2より大きい値(例えば95%)に上昇したとすると、次の本処理ではCPU2の使用率rは95%で取得され(S1)、R2(90%)より大きいが(S2:YES)、wait状態でないので(S3:NO)、waitフラグが「ON」とされ(S4)、現在処理を行っている文字位置がwait位置記憶エリア63に記憶され(S5)、wait状態の継続時間を計測するためのタイマーがスタートされる(S6)。そして、継続時間tが取得されるが(S7)、まだ計測を開始したばかりであるのでTより大きくはなく(S8:NO)、そのまま処理は終了する。10ms後の次の処理においてもCPU2の使用率が95%のまま(90%より大きいまま)であれば、CPU2の使用率rが95%で取得され(S1)、R2(90%)より大きく(S2:YES)、wait状態であるので(S3:YES)、継続時間tが取得される(S7)。しかし、タイマーで計測を開始してから10msしか経過していないので、Tより大きくはなく(S8:NO)、そのまま処理は終了する。
ここで、CPU2の使用率がR2より小さい値(例えば、40%)に下降したとすると、次に本処理が開始CPU2の使用率rは40%で取得され(S1)、R2(90%)より大きくないが(S2:NO)、wait状態であるので(S12:YES)、wait状態の文字位置から、1つ前の区切り位置が算出され(S13)、再開時開始位置から処理がリスタートされ(S14)、waitフラグが「OFF」とされ(S15)、wait時間を計測しているタイマーがOFFされる(S16)。そして、使用率rはR1(70%)より大きく(S17:YES)、MLSAフィルター23が使用されているので(S18:YES)、LMAフィルター22へ切り替えられる(S19)。そして処理は終了する。
ここで再び、CPU2の使用率がR2より大きい値(例えば97%)に上昇したとすると、次の本処理ではCPU2の使用率rは97%で取得され(S1)、R2(90%)より大きいが(S2:YES)、wait状態でないので(S3:NO)、waitフラグが「ON」とされ(S4)、現在処理を行っている文字位置がwait位置記憶エリア63に記憶され(S5)、wait状態の継続時間を計測するためのタイマーがスタートされる(S6)。そして、継続時間tが取得されるが(S7)、まだ計測を開始したばかりであるのでTより大きくはなく(S8:NO)、そのまま処理は終了する。
そして、5分間CPU2の使用率がR2より大きい値を取り続けたとすると、5分後の次の処理においてもCPU2の使用率rはR2より大きい値(例えば95%)が取得され(S1)、R2(90%)より大きく(S2:YES)、wait状態であるので(S3:YES)、継続時間tが取得される(S7)。そして、継続時間tはT(5分)より大きくなっているので(S8:YES)、waitフラグが「OFF」とされ(S9)、タイマーがOFFされ(S10)、音声合成処理の停止の処理が行われ(S11)、本処理は終了する。
尚、上記実施例では、S19やS21において即座にディジタルフィルターの切替を行っているが、ここでは、切替をする旨の印付けをする(例えば、フラグをたてる)処理のみを行っておき、次の区切り位置(例えば、モーラ区切り、文区切り、呼気段落区切り、アクセント句区切り)が読み込まれた時点でフィルターの切り替えを行うようにしてもよい。こうすることにより、所定の区切りでフィルターの切り替えが行われるので、出力音声の音質の変化も区切り位置で行われることになり、聞きやすい音声が出力されることとなる。また、上記実施例はCPU使用率を判断に用いたが、CPU未使用率(空率)を用いる事も可能である。
次に、第2の実施例について、図6乃至図11を参照して説明する。図6乃至図8は、言語解析11を行った後の解析結果記憶エリア421,422,423の模式図の一例である。図9は、高音質フラグ記憶エリア71の模式図であり、図10はテキスト解析14において行われる高音質フラグ付与処理のフローチャートであり、図11はディジタルフィルター切り替え20のフローチャートである。
本第2の実施例では、音声合成を行うテキストに所定の指示がある場合にディジタルフィルターの切り替えが行われる。所定の指示とは、明瞭に発音させることを示すタグ<clear>がテキストに挿入されていること、明瞭に発音させることを終了させることを示すタグ</clear>がテキストに挿入されていること、あらかじめ設定されているキーワードがテキストに含まれていること、テキスト記憶エリア41に記憶されているテキストに下線,太字,イタリック体,文字色の指定,文字サイズの指定等の文字修飾がかけられていることである。これらの指示がある場合には、その文字の音声出力の品質を高品質にするために、MLSAフィルター23が使用される。そのために、高音質フラグ記憶エリア71では文字ごとに高音質フラグが記憶され、この高音質フラグが「ON」である場合にはMLSAフィルターが使用され、「OFF」である場合にはLMAフィルター22が使用される。
まず、図6を参照して、テキスト記憶エリア41に記憶されているテキストに、明瞭に発音させることを示すタグ<clear>,明瞭に発音させることを終了させることを示すタグ</clear>が含まれている場合の解析結果421について説明する。これは、テキスト記憶エリア41に「<clear>一週間ばかり</clear>、ニューヨークを取材した。」と記憶されている場合の、解析結果である。「一週間ばかり」の前に<clear>が付与されており、その後に</clear>が付与されているので、「一週間ばかり」を明瞭に発音させる指示がなされている。そこで、図6に示すように、「イ」「ッ」「シュ」「ー」「カ」「ン」「バ」「カ」「リ」の明瞭フラグに「1」がセットされて「ON」とされ、その他の文字については「0」がセットされて「OFF」とされている。
次に、図7を参照して、テキスト記憶エリア41に記憶されているテキストに文字修飾(下線)がなされている場合の解析結果422について説明する。これは、テキスト記憶エリア41に「一週間ばかり、ニューヨークを取材した。」の「取材」の部分に下線が引かれて入れている場合の解析結果である。「取材」に下線が引かれているので、「シュ」「ザ」「イ」の文字修飾フラグに「1」がセットされて「ON」とされ、その他の文字については「0」がセットされて「OFF」とされている。
次に、図8を参照して、テキスト記憶エリア41にキーワードが含まれている場合の解析結果423について説明する。これは、「ニューヨーク」がキーワードとして予め設定されている場合の例である。「一週間ばかり、ニューヨークを取材した。」の「ニューヨーク」がキーワードであるので、「ニュ」「ー」「ヨ」「ー」「ク」のキーワードフラグに「1」がセットされて「ON」とされ、その他の文字については「0」がセットされて「OFF」とされている。
次に、図9を参照して、高音質フラグ記憶エリア71について説明する。この高音質フラグ記憶エリア71では、文字ごとに高音質フラグを記憶する構造となっており、高音質で出力する、すなわちMLSAフィルター23を使用して高音質の音声を出力する文字には「1」がセットされ、必ずしも高音質で出力する必要のない文字については「0」がセットされる。図9は、図6に示した解析結果421に基づいて高音質フラグが付与された場合の高音質フラグ記憶エリア71である。図9に示すように、「明瞭フラグ」が「1」である「イ」「ッ」「シュ」「ー」「カ」「ン」「バ」「カ」「リ」には「1」がセットされて「ON」とされ、その他の文字については「0」がセットされて「OFF」とされている。
次に、図10のフローチャートを参照して、高音質フラグ付与処理について説明する。この処理は、テキスト解析14において実施される。まず、解析結果記憶エリア42から1文字が読み込まれる(S31)。そして、その文字の明瞭フラグが「1」であり「ON」であれば(S32:YES)、高音質フラグ記憶エリア71のその文字に対応した高音質フラグに「1」がセットされ「ON」とされる(S33)。また、明瞭フラグが「ON」でなければ(S32:NO)、何もしない。また、明瞭フラグが「0」であり「OFF」であれば(S34:YES)、高音質フラグに「0」がセットされ「OFF」とされる(S35)。明瞭フラグが「OFF」でなければ(S34:NO)、何もしない。
そして、高音質フラグがすでに「1」、もしくは、文字修飾フラグが「ON」であれば(S36:YES)、高音質フラグに「1」がセットされて「ON」とされ(S37)、高音質フラグが「1」でなく、かつ、文字修飾フラグが「ON」でなければ(S36:NO)、高音質フラグに「0」がセットされて「OFF」とされる(S38)。そして、高音質フラグがすでに「1」、もしくは、キーワードフラグが「ON」であれば(S39:YES)、高音質フラグに「1」がセットされて「ON」とされ(S40)、高音質フラグが「1」でなく、かつ、キーワードフラグが「ON」でなければ(S39:NO)、高音質フラグに「0」がセットされて「OFF」とされる(S41)。そして、RAM4の高音質フラグ記憶エリア71に当該文字の高音質フラグが保存される(S42)。
そして、次の文字がまだあれば(S43:YES)、1文字が取得され(S31)、この文字について明瞭フラグ、文字修飾フラグ、キーワードフラグの確認と高音質フラグのセットが行われる(S32〜S42)。そして、繰り返しS31〜S43の処理が行われ、次の文字がなくなったら(S43:YES)、本処理は終了する。
以上のようにして、テキスト解析において言語解析11の結果に基づいて、高音質にする指示のされている文字については高音質フラグが「ON」とされる。
次に、図11のフローチャートを参照して、第2の実施例におけるディジタルフィルター切り替え20の処理について説明する。この処理は、10msごとに開始される。
まず、現在処理されている文字の高音質フラグが高音質フラグ記憶エリア71から読み込まれる(S51)。そして、高音質フラグに「1」が記憶されており「ON」であれば(S52:YES)、高音質で出力する必要がある。すなわち、MLSAフィルター23を使用する必要がある。そこで、LMAフィルター22が使用されているか否かの判断が行われる(S55)。そして、LMAフィルター22が使用されていれば(S55:YES)、MLSAフィルター23への切り替えが行われ(S56)、処理は終了する。また、LMAフィルター22が使用されていなければ(S55:NO)、MLSAフィルター23が使用されていることになるので、そのまま処理は終了する。
また、高音質フラグに「0」が記憶されており「OFF」であれば(S52:NO)、高音質での音声出力は行わない。つまり、LMAフィルター22が使用される。そこで、MLSAフィルター23が使用されているか否かの判断が行われる(S53)。そして、MLSAフィルター23が使用されていれば(S53:YES)、LMAフィルター22への切り替えが行われ(S54)、処理は終了する。また、MLSAフィルター23が使用されていなければ(S53:NO)、LMAフィルター22が使用されていることになるので、そのまま処理は終了する。
以上のようにして、高音質フラグが「ON」とされている文字の処理を行う際には、高音質で音声を出力するMLSAフィルター23が使用され、「OFF」とされている文字の処理を行う際には、高音質でなく、CPU2への負荷の少ないLMAフィルター22が使用されることになる。したがって、高音質でないLMAフィルター22が使用されている際においても、高音質で出力するように指示されている文字については、高音質で音声が出力されるので、聞き取りづらくなることがない。
尚、本実施例では、高音質で音声出力するための指示として、<clear>タグ、キーワード、文字修飾を例に挙げたが、指示はこれに限らない。例えば、テキストに品詞情報を付与し、予め設定された所定の品詞については高音質で音声出力するようにしてもよい。所定の品詞とは、例えば固有名詞である。また、他のタグを付与してもよい。例えば、<speed>を付与し、</speed>まではゆっくり出力し、且つ高音質で音声出力させるようにしてもよい。また、<syllabize>を付与し、</syllabize>までは、一文字一文字の音の長さを伸ばしたり、音の間に無音を入れて区切って発音させたりして、且つ高音質で音声出力させるようにしてもよい。尚、これらのタグの表記方法はこれに限らない。
次に、第3の実施例における設定速度に基づいたディジタルフィルター切り替え20の処理について、図12のフローチャートを参照して説明する。図12は、第3の実施例のディジタルフィルター切り替え20のフローチャートである。第3の実施例では、音声出力の設定速度に基づいてディジタルフィルターの切り替えが行われる。この音声出力の設定速度は、音声を出力する際の速度であり、出力されるテキスト全体に対して予め設定される。本実施の形態では、この設定速度を例えば、「低速」、「普通」、「高速」の3種類とし、これはRAM4の設定速度記憶エリア81に記憶されている。そして、基準速度Sよりも速い場合には高音質で音声出力を行い、基準速度Sよりも速くない場合には高音質で音声出力を行わない。尚、基準速度Sは「普通」の速度とする。
まず、RAM4の設定速度記憶エリア81に記憶されている設定速度sが取得される(S71)。そして、設定速度sが基準速度Sよりも速いか否かの判断が行われる(S72)。そして、設定速度sが「高速」であり基準速度S「普通」よりも速ければ(S72:YES)、高音質で音声を出力したいので、MLSAフィルター23を使用する必要がある。そこで、LMAフィルター22が使用されているか否かの判断が行われ(S75)、LMAフィルター22が使用されていれば(S75:YES)、MLSAフィルター23への切り替えが行われ(S76)、処理は終了する。また、LMAフィルター22が使用されていなければ(S75:NO)、MLSAフィルター23が使用されていることになるので、そのまま処理は終了する。
また、設定速度sが「低速」又は「普通」であり基準速度S「普通」よりも速くなければ(S72:NO)、高音質での音声出力は行わない。つまり、LMAフィルター22そこで、MLSAフィルター23が使用されているか否かの判断が行われる(S73)。そして、MLSAフィルター23が使用されていれば(S73:YES)、LMAフィルター22への切り替えが行われ(S74)、処理は終了する。また、MLSAフィルター23が使用されていなければ(S73:NO)、LMAフィルター22が使用されていることになるので、そのまま処理は終了する。
以上のようにして、設定速度に基づいてディジタルフィルターの切り替えが行われる。尚、設定速度の種類は「低速」、「普通」、「高速」の3種類に限らず、さらに細かい速度設定であってもよく、基準速度も「普通」でなく、他の設定速度であってもよい。
尚、上記実施の形態のmcep列が「第1の音響パラメータ列」に該当し、cep列が「第2の音響パラメータ列」に該当する。そして、音韻モデル選択12を行うCPU2が「音韻モデル選択手段」,「音韻モデル選択工程」に相当し、mcep列生成13を行うCPU2が「第1の音響パラメータ列生成手段」,「第1の音響パラメータ列生成工程」に相当し、韻律モデル選択15を行うCPU2が「韻律モデル選択手段」,「韻律モデル選択工程」に相当し、pitch列生成16を行うCPU2が「基本周波数列生成手段」,「基本周波数列生成工程」に相当し、音源信号生成17を行うCPU2が「音源信号作成手段」,「音源信号作成工程」に相当し、周波数変換21を行うCPU2が「変換手段」,「変換工程」に相当し、MLSAフィルター23を行うCPU2が「第1のディジタルフィルター」,「第1のディジタルフィルター工程」,「音声生成手段」,「音声生成工程」に相当し、LMAフィルター22を行うCPU2が「第2のディジタルフィルター」,「第2のディジタルフィルター工程」,「高音質音声生成手段」,「高音質音声生成工程」に相当する。
また、図5に示す第1の実施例のディジタルフィルター切り替え20のフローチャートのS1の処理を行うCPU2が「CPU使用率監視手段」,「CPU使用率監視工程」に相当し、図5に示す第1の実施例のディジタルフィルター切り替え20のフローチャートのS17の処理を行うCPU2が「第1判断手段」,「第1判断工程」に相当し、図5に示す第1の実施例のディジタルフィルター切り替え20のフローチャートのS2の処理を行うCPU2が「第2判断手段」,「第2判断工程」に相当し、図5に示す第1の実施例のディジタルフィルター切り替え20のフローチャートのS2,S4の処理を行うCPU2が「処理待機手段」,「処理待機工程」に相当し、図5に示す第1の実施例のディジタルフィルター切り替え20のフローチャートのS2,S3,S6の処理を行うCPU2が「継続時間計測手段」,「継続時間計測工程」に相当し、図5に示す第1の実施例のディジタルフィルター切り替え20のフローチャートのS8,S11の処理を行うCPU2が「処理停止手段」,「処理停止工程」に相当する。
そして、ディジタルフィルター切り替え20が「フィルター切替手段」、「切り替え手段」に相当し、具体的には、図5に示す第1の実施例のディジタルフィルター切り替え20のフローチャートの処理を行うCPU2が「第1判断手段により第1の所定値を超えたと判断された場合に、第2のディジタルフィルターを用いて音声を生成するように切り替えるフィルター切替手段、フィルター切替工程」に相当する。
そして、図11に示す第2の実施例のディジタルフィルター切り替え20のフローチャートの処理を行うCPU2が「明瞭に読み上げたい語句に付与される明瞭フラグが付与された文字列を合成する際、明瞭に読み上げる語句として予め設定されている任意の語句又は任意の品詞の語句を合成する際、予め設定された文字修飾がされている文字列を合成する際、又は、読み上げスピードが遅いに設定されている文において読み上げスピードを速いに変更したい文字列に付与されるスピード変更フラグが付与された文字列を合成する際に第1のディジタルフィルターを用いて音声を生成するように切り替えるフィルター切替手段、フィルター切替工程」、「明瞭に読み上げたい語句に付与される明瞭フラグの付与された文字列を合成する際、明瞭に読み上げ語句として予め設定されている任意の語句又は任意の品詞の語句を合成する際、予め設定された文字修飾が行われている文字列を合成する際、又は、読み上げスピードが遅いに設定されている文において読み上げスピードを速いに変更したい文字列に付与されるスピード変更フラグの付与された文字列を合成する際に高音質音声生成手段により音声を生成するように切り替える切替手段、切替工程」に相当する。
また、図12に示す第3の実施例のディジタルフィルター切り替え20のフローチャートの処理を行うCPU2が「読み上げスピードが速いに設定されている際に第1のディジタルフィルターを用いて音声を生成するように切り替えるフィルター切替手段、フィルター切替工程」、「読み上げスピードが速いに設定されている際に高音質音声生成手段により音声を生成するように切り替える切替手段、切替工程」に相当する。
尚、本発明の音声合成装置及び音声合成方法は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。上記実施の形態では、音声合成するテキストをキーボード3により入力したが、合成するテキストはキーボード3からの入力に限らず、マウス等他の入力手段により入力してもよいことは言うまでもなく、フレキシブルディスクやCD−ROM等の記憶媒体を読み込むことにより入力してもよい。また、他の処理において生成されたテキストであってもよい。
また、上記実施の形態では、CPU使用率に基づいてディジタルフィルターの切り替え、音声合成を行うテキストに所定の指示がある場合にディジタルフィルターの切り替え、音声出力の設定速度に基づいてディジタルフィルターの切り替えを別々の実施例により行っているが、すべての条件を合わせたり、一部の条件を組み合わせたりした音声合成装置及び音声合成方法であってもよい。例えば、CPU使用率に基づく切り替えと、所定の指示による切り替えとが組み合わされている場合には、図5のフローチャートの処理が終わった後に図11のS51,S52,S55,S56の処理が行われる(S53、S54の処理は行わない)。こうすることにより、CPUの使用率に基づいて音質の高くないLMAフィルター22が使用されるようになっても、音質を高く出力したい文字についてはMLSAフィルター23が使用されるので、大切な文字を聞き取りにくくしてしまうことがない。