JP6519096B2 - 音声合成装置、方法、およびプログラム - Google Patents

音声合成装置、方法、およびプログラム Download PDF

Info

Publication number
JP6519096B2
JP6519096B2 JP2014026965A JP2014026965A JP6519096B2 JP 6519096 B2 JP6519096 B2 JP 6519096B2 JP 2014026965 A JP2014026965 A JP 2014026965A JP 2014026965 A JP2014026965 A JP 2014026965A JP 6519096 B2 JP6519096 B2 JP 6519096B2
Authority
JP
Japan
Prior art keywords
prosody
pitch
segment
data
frequency
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.)
Active
Application number
JP2014026965A
Other languages
English (en)
Other versions
JP2015152788A (ja
Inventor
淳一郎 副島
淳一郎 副島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2014026965A priority Critical patent/JP6519096B2/ja
Publication of JP2015152788A publication Critical patent/JP2015152788A/ja
Application granted granted Critical
Publication of JP6519096B2 publication Critical patent/JP6519096B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Machine Translation (AREA)

Description

本発明は、音声コーパスからの音声素片の選択によって音声合成を行う技術に関する。
入力テキストデータから生成される合成目標に対して、電子化された大規模な言語・音声データである音声コーパスを参照することにより音声素片を選択し、当該音声素片を接続することにより合成音声を出力する音声合成技術が知られている(例えば非特許文献1に記載の技術)。
このような音声合成技術において、音声コーパスから合成目標に最も適合する音声素片列を選択するための手法として従来、次のような技術が知られている(例えば非特許文献1に記載の技術)。まず、入力テキストデータから抽出される音素セグメントごとに、その音素と同じ音素を有する音声素片のデータ(以下、「素片データ」と記載する)が、素片候補データとして音声コーパスから抽出される。次に、DP(Dynamic Programming:動的計画法)アルゴリズムによって、入力テキストデータ全体に渡ってコストが最小となる最良の素片候補データの組(最良の素片データ列)が決定される。コストとしては、入力テキストデータと音声コーパス内の各素片データ間の音素列および韻律の差異、素片候補データである隣接する素片データ間のスペクトラム包絡などの音響パラメータ(特徴量ベクトルデータ)の不連続性などが用いられる。
入力テキストデータに対応する音素列は、例えば入力テキストデータに対して形態素解析処理を実行することで得られる。
入力テキストデータに対応する韻律(以下これを「目標韻律」と記載する)は、音素ごとの声帯の基本周波数であるピッチの高さ、持続時間長、および強度(振幅)であり、入力テキストデータから得られる言語情報をもとに、実際の音声データに基づく統計的なモデルを用いて生成される(例えば非特許文献2に記載の技術)。言語情報は、例えば入力テキストデータに対して形態素解析処理を実行することで得られる。
河井 恒、"知識ベース 3-4 コーパスベース音声合成"、[online]、ver.1/2011.1.7、電子情報通信学会、[平成25年12月25日検索]、インターネット<URL:http://27.34.144.197/files/02/02gun_07hen_03.pdf#page=6> 匂坂 芳典、"知識ベース 3-7 韻律の生成"、[online]、ver.1/2011.1.7、電子情報通信学会、[平成25年12月25日検索]、インターネット<URL:http://27.34.144.197/files/02/02gun_07hen_03.pdf#page=13>
前述したように、音声コーパスから入力テキストデータの合成目標に最も適合する音声素片列を選択するためには、入力テキストデータと音声コーパス内の各素片データ間の音素および韻律の差異が評価コストとして用いられる。
ここで、入力テキストデータから音素を抽出するための例えば形態素解析処理では形態素辞書が用いられ、各音素セグメントごとの目標韻律を抽出するための処理では実際の音声データに基づく統計的なモデルである韻律辞書が用いられる。一方、音声コーパス中の素片データの作成時における音素および韻律(以下これを「素片韻律」と記載する)の抽出にも、それぞれ同様の辞書が用いられる。
音声コーパスは予め作成され、入力テキストデータの解析はユーザによる入力テキストデータの入力時点で行われるため、一般的に両者の辞書の作成においては異なる話者の音声データが使用される場合が多い。
音声データにおける話者の個人性は、音声のスペクトラム包絡及び韻律に現れる特徴に依存する。
従って、入力テキストデータと音声コーパス内の素片データとで音素を抽出するための形態素辞書の話者が異なっても、抽出される音素の精度は、それほど大きな影響は受けない。
一方、入力テキストデータと音声コーパス内の素片データとで韻律を抽出するための韻律辞書の作成に用いられる音声データの話者が異なると、それぞれで抽出される韻律の特徴が異なることになる。韻律の特徴は、イントネーションやアクセント,声の高さ,話速,音韻継続長などの違いとなって現れる。
そして、入力テキストデータから抽出される目標韻律の特徴と音声コーパス内の各素片データの作成時に抽出される素片韻律の特徴がずれた状態で韻律に関するコスト計算が行われると、誤った音声素片が選択される確率が高くなり、合成音声の音質が劣化してしまうという課題を有していた。
本発明は、入力テキストデータと音声コーパス内の素片データとで韻律を抽出するための韻律辞書の韻律特徴が異なっても、音声コーパスから音声素片を正しく選択可能とすることを目的とする。
態様の一例では、入力テキストデータから生成される音素及び目標韻律に基づいて、音声コーパスを参照することにより音声素片を選択し、前記選択された音声素片を接続することにより合成音声を出力する音声合成装置において、算出された前記目標韻律のピッチ周波数のヒストグラム上で特徴となる周波数をピッチ特徴点として抽出する目標韻律ピッチ特徴点抽出部と、前記選択された音声素片中の韻律情報である素片韻律のピッチ周波数のヒストグラムを算出し、算出されたヒストグラム上で特徴となる周波数を前記ピッチ特徴点として抽出する素片韻律ピッチ特徴点抽出部と、前記目標韻律から抽出されたピッチ特徴点と前記素片韻律から抽出されたピッチ特徴点との対応関係に基づいて、前記目標韻律を補正する韻律補正部と、を備え、前記目標韻律ピッチ特徴点抽出部および前記素片韻律ピッチ特徴点抽出部はそれぞれ、前記ヒストグラム上で特徴となる2つ以上の周波数を前記ピッチ特徴点として抽出し、前記韻律補正部は、前記目標韻律から前記ピッチ特徴点として抽出された2つ以上の周波数に対する各ピッチ周波数の内分比と、前記素片韻律から前記ピッチ特徴点として抽出された2つ以上の周波数に対する各ピッチ周波数の内分比とが同じになるように、前記目標韻律を補正する、ことを特徴とする。
本発明によれば、入力テキストデータと音声コーパス内の素片データとで韻律情報を抽出するための韻律辞書の韻律特徴が異なっても、音声コーパスから音声素片を正しく選択することが可能となる。
本発明による音声合成装置の実施形態のブロック図である。 波形選択部のブロック図である。 実施形態の動作説明図(その1)である。 実施形態の動作説明図(その2)である。 音声合成装置をソフトウェア処理として実現できるコンピュータのハードウェア構成例を示す図である。 制御変数のデータ構成例を示す図である。 セグメントデータのデータ構成例を示す図である。 韻律データのデータ構成例を示す図である。 素片候補データのデータ構成例を示す図である。 音声辞書データのデータ構成例を示す図である。 素片データのデータ構成例を示す図である。 音素データのデータ構成例を示す図である。 特徴量ベクトルデータのデータ構成例を示す図である。 韻律補正部の処理例を示すフローチャートである。
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
図1は、本発明による音声合成装置100の実施形態のブロック図であり、テキスト入力部101、形態素解析部102、韻律予測部103、韻律辞書104、波形選択部105、音声辞書106、および波形合成部107を備える。
テキスト入力部101は、入力テキストデータを入力する。
形態素解析部102は、テキスト入力部101が入力した入力テキストデータに対して形態素解析処理を実行することにより、入力テキストデータに対応する音素列を抽出する。入力テキストデータは、音素列中の音素ごとにセグメント分けされ、各音素を示す音素データが、そのセグメント分けにより得られる合成目標を構成するセグメントデータに、音素データが登録される。
韻律予測部103は、形態素解析部102で得られる言語情報をもとに、実際の音声データに基づく韻律に関する統計的なモデルを記憶した韻律辞書104を参照することにより、合成目標の音素列中の音素ごとに、声帯の基本周波数であるピッチの高さ、持続時間長、および強度(振幅)によって表される韻律を予測する。この結果、韻律予測部103は、音素セグメント毎に、韻律情報である目標韻律データを生成し、合成目標を構成する上記セグメントデータに登録する。
すなわち、入力テキストデータから合成目標として生成されるセグメントデータ列において、各セグメントデータは、音素データと目標韻律データを有する。
波形選択部105は、まず、韻律予測部103から入力する目標韻律データを、音声辞書106中の音声コーパスを構成する各素片データの素片韻律データに合うように補正する。次に、波形選択部105は、補正された目標韻律データと音素データを含むセグメントデータごとに、素片評価のコスト条件を満たす素片候補データを音声辞書106中の音声コーパスからリストアップする。そして、波形選択部105は、セグメントデータごとに、接続評価のコスト条件を満たす最良の素片候補データを、リストアップした素片候補データから選択する。
波形合成部107は、波形選択部105がセグメントデータごとに音声辞書106から選択した最良の素片候補データを接続して、合成音声を生成し出力する。
図2は、図1の波形選択部105の詳細な構成を示すブロック図であり、波形選択部105は、図1の韻律予測部103から出力された目標韻律データ201、韻律入力部202、目標韻律ピッチ特徴点抽出部203、素片韻律ピッチ特徴点抽出部204、韻律補正部205、補正後目標韻律データ206を備える。また、波形選択部105は、素片選定部207および評価部208を備える。素片選定部207は、素片リストアップ部207aとそこから出力された素片候補データ209、および音素列選択部207bを備える。評価部208は、素片評価部208aおよび接続評価部208bを備える。
目標韻律ピッチ特徴点抽出部203は、入力テキストデータ全体にわたる目標韻律データ201から、所定数、例えば4点のピッチ特徴点を抽出する。より具体的には、目標韻律ピッチ特徴点抽出部203は、入力テキストデータ全体にわたる目標韻律データ201を構成するピッチ周波数のヒストグラムを算出する。そして、目標韻律ピッチ特徴点抽出部203は、そのヒストグラムから頻度値が極大を示す1つ以上の周波数と頻度値が概略ゼロに収束する1つ以上の周波数をそれぞれ、ピッチ特徴点として抽出する。図3(a)の301は、目標韻律データ201から算出されるピッチ周波数のヒストグラムの例を示している。横軸はピッチ周波数[Hz:ヘルツ]を示し、縦軸は正規化された頻度値を示している。この目標韻律のピッチ周波数のヒストグラム301から、頻度値が極大を示す特徴点2のピッチ周波数(175Hz)と特徴点3のピッチ周波数(410Hz)、および頻度値が概略ゼロに収束する特徴点1のピッチ周波数(120Hz)と特徴点4のピッチ周波数(495Hz)が、それぞれ抽出される。
素片韻律ピッチ特徴点抽出部204は、目標韻律の場合と同様に、音声辞書106に登録されている音声コーパス全体にわたる各素片データの素片韻律データから、上記所定数、例えば4点のピッチ特徴点を抽出する。より具体的には、素片韻律ピッチ特徴点抽出部204は、音声辞書106内の音声コーパス全体にわたる素片韻律データを構成するピッチ周波数のヒストグラムを算出する。そして、素片韻律ピッチ特徴点抽出部204は、そのヒストグラムから頻度値が極大を示す1つ以上の周波数と頻度値が概略ゼロに収束する1つ以上の周波数をそれぞれ、ピッチ特徴点として抽出する。図3(b)の302は、素片韻律データから算出されるピッチ周波数のヒストグラムの例を示している。横軸はピッチ周波数[Hz]を示し、縦軸は正規化された頻度値を示している。この素片韻律のピッチ周波数のヒストグラム302から、頻度値が極大を示す特徴点2のピッチ周波数(160Hz)と特徴点3のピッチ周波数(260Hz)、および頻度値が概略ゼロに収束する特徴点1のピッチ周波数(85Hz)と特徴点4のピッチ周波数(400Hz)が、それぞれ抽出される。
図2で、韻律入力部202は、図1の韻律予測部103が出力した目標韻律データ201を入力する。
韻律補正部205は、目標韻律ピッチ特徴点抽出部203が抽出した例えば前述した4つのピッチ特徴点(特徴点1〜4)と、素片韻律ピッチ特徴点抽出部204が抽出した例えば前述した4つのピッチ特徴点(特徴点1から4)との対応関係に基づいて、目標韻律データ201を補正して補正後目標韻律データ206を出力する。より具体的には、韻律補正部205は、目標韻律データ201中のピッチ周波数が目標韻律ピッチ特徴点抽出部203で抽出された相互に隣接するいずれか2つのピッチ特徴点の周波数の間に任意の内分比で位置する場合に、これら2つのピッチ特徴点にそれぞれ対応する素片韻律ピッチ特徴点抽出部204で抽出された2つのピッチ特徴点の周波数を上述の内分比と同じ内分比で内分して得られる周波数になるように、目標韻律データ201中のピッチ周波数を補正し、補正後目標韻律データ206として出力する。
例えば図3において、補正前の目標韻律データ201のピッチ周波数が図3(a)の目標韻律のピッチ周波数のヒストグラム301上の特徴点2のピッチ周波数と特徴点3のピッチ周波数をa:bで内分する周波数であった場合、補正後目標韻律データ206のピッチ周波数は次のようにして算出される。まず、図3(a)の目標韻律のピッチ周波数のヒストグラム301上の各特徴点1〜4のぞれぞれと、図3(b)の素片韻律のピッチ周波数のヒストグラム302の各特徴点1〜4のそれぞれについて、図3の305の4本の矢印線として示されるように対応関係が取られる。その上で、図3(a)の目標韻律のピッチ周波数のヒストグラム301上の特徴点2および3にそれぞれ対応する図3(b)の素片韻律のピッチ周波数のヒストグラム302上の特徴点2のピッチ周波数と特徴点3のピッチ周波数をa:bに内分する周波数が算出される。そして、この周波数が、補正後目標韻律データ206のピッチ周波数として出力される。
目標韻律データ201のピッチ周波数が、特徴点2と3の間だけでなく、特徴点1と2の間または特徴点3と4の間に位置する場合も、上記と同様の考え方によって、2つの特徴点間の内分比が同じになるように、補正後目標韻律データ206のピッチ周波数を算出することができる。
いま、下記のように変数を仮定する。
目標韻律の下側のピッチ特徴点周波数:targ_pitch_feat[pf-1]
目標韻律の上側のピッチ特徴点周波数:targ_pitch_feat[pf]
素片韻律の下側のピッチ特徴点周波数:unitdb.pitch_feat[pf-1]
素片韻律の上側のピッチ特徴点周波数:unitdb.pitch_feat[pf]
補正前の目標韻律のピッチ周波数:pitch
補正後の目標韻律のピッチ周波数:modpit
上述した内分関係より、目標韻律の上側と下側のピッチ特徴点の周波数差と素片韻律の上側と下側のピッチ特徴点の周波数差の比は、補正前のピッチ周波数と目標韻律の下側のピッチ特徴点の周波数差と補正後のピッチ周波数と素片韻律の下側のピッチ特徴点の周波数差は、等しくなる。これより、次式が成立する。
(targ_pitch_feat[pf]-targ_pitch_feat[pf-1])
÷(unitdb.pitch_feat[pf]-unitdb.pitch_feat[pf-1])
=(pitch-targ_pitch_feat[pf-1])
÷(modpit-unitdb.pitch_feat[pf-1])
・・・(1)
ここで、次式のように変数tint,tdist,dintを定義する。
tint=targ_pitch_feat[pf]-targ_pitch_feat[pf-1] ・・・(2)
tdist=pitch-targ_pitch_feat[pf-1] ・・・(3)
dint=unitdb.pitch_feat[pf]-unitdb.pitch_feat[pf-1] ・・・(4)
上記(2)、(3)、(4)式を(1)式に代入すると、次式が得られる。
tint÷dint=tdist÷(modpit-unitdb.pitch_feat[pf-1]) ・・・(5)
この(5)式をさらに変形すると、次式が得られる。
modpit=unitdb.pitch_feat[pf-1]+dint÷tint×tdist ・・・(6)
よって、補正前の目標韻律のピッチ周波数と、このピッチ周波数をはさむ目標韻律の上側と下側のピッチ特徴点の周波数、およびこれらに対応する素片韻律の上側と下側のピッチ特徴点の周波数を用いて、上述の(2)(3)(4)を計算し、さらに(6)式を計算することにより、補正後の目標韻律のピッチ周波数を算出することができる。
いま、図3(a)の目標韻律のピッチ周波数のヒストグラム301と図3(b)の素片韻律のピッチ周波数のヒストグラム302を比較してみる。この場合、図1の入力テキストデータから目標韻律を生成するために使用された図1の韻律辞書104の作成に用いられた音声データの話者の韻律のピッチ周波数の遷移に比較して、音声辞書106中の音声コーパスの作成に用いられた音声データの話者の韻律のピッチ周波数の遷移のほうが、全体的に周波数が低めに遷移していることがわかる。そこで、本実施形態では、目標韻律と素片韻律とで図3(a)の301および図3(b)の302の各ヒストグラム上で、ピッチ周波数の遷移の代表的な特徴点の対応関係を305のように取る。そして、目標韻律データ201のピッチ周波数の目標韻律のピッチ周波数のヒストグラム301上での2つの特徴点間の内分比と同じになるように、素片韻律のピッチ周波数のヒストグラム302上での対応する2つの特徴点間を内分するピッチ周波数を補正後目標韻律データ206とすることにより、目標韻律データ201のピッチ周波数遷移を素片韻律データのピッチ周波数遷移に合わせることが可能となる。
図4は、図3(a)および(b)の例に対応する、補正前目標韻律データ201のピッチ周波数の時間遷移401と補正後目標韻律データ206のピッチ周波数の時間遷移402の関係を示す図である。縦軸(Pitch)がピッチ周波数(Hz)、横軸が時間遷移(ミリ秒)である。補正後目標韻律データ206のピッチ周波数の時間遷移402が、音声コーパス全体で低い周波数で遷移する素片データのピッチ周波数の時間遷移により近くなるように、韻律特徴が補正されていることがわかる。
このようにして、入力テキストデータから生成される補正後目標韻律データ206の韻律遷移を、音声辞書106内の音声コーパスの韻律遷移に合わせることが可能となって、入力テキストデータと素片データとで韻律特徴(言い換えれば例えば話者)が異なっても、素片データを正しく選択して質の良い合成音声を出力することが可能となる。
図2の説明に戻り、素片選定部207において、素片リストアップ部207aは、図1の韻律予測部103から出力されるセグメントデータごとに(以下これを「処理対象セグメントデータ」と記載する)、その処理対象セグメントデータに含まれる音素と一致する音素を有する1つ以上の素片データを、音声辞書106中の音声コーパス内の素片データから選択し、素片候補データ209として出力する。
評価部208内の素片評価部208aは、素片候補データ209ごとに(以下これを「処理対象素片候補データ209」と記載する)、処理対象素片候補データ209の音素を処理対象セグメントデータの音素と比較することによって、処理対象素片候補データ209の音素に関するコストを評価する。具体的には、素片評価部208aは、処理対象セグメントデータの音素とその処理対象セグメントデータの前後のセグメントデータの音素とから構成される音素列と、処理対象素片候補データ209の音素とその処理対象素片候補データ209の前後の素片データの音素とから構成される音素列とを比較することにより、音素列コストを算出する。この音素列コストは、音素列の不一致度を示す。隣接するセグメントデータ間の音素列と隣接する素片データ間の音素列の一致度が高いほど音素列コストが低くなるように、音素列コストが算出される。前後の音素列が一致する素片データを選択したほうが、自然な合成音声が得られるからである。
また、素片評価部208aは、素片候補データ209(処理対象素片候補データ209)ごとに、処理対象素片候補データ209の素片韻律データを、処理対象セグメントデータの補正後目標韻律データ206と比較することにより、処理対象素片候補データ209の韻律に関するコストを評価する。具体的には、素片評価部208aは、処理対象素片候補データ209の補正後目標韻律データ206と処理対象素片候補データ209の素片韻律データとの差に基づいて、韻律コストを算出する。韻律コストは、補正後目標韻律データ206と処理対象素片候補データ209の距離を示す。
そして、素片評価部208aは、音素列コストと韻律コストとの重み付け和のコスト値を、現在の素片候補データ209に対応する素片コストとして算出する。
素片リストアップ部207aは、素片評価部208aが評価した素片コストが低い順に、素片候補データ209を並び替えて、処理対象セグメントデータとリンクさせて出力する。
素片選定部207内の音素列選択部207bは、図1の韻律予測部103から入力するセグメントデータ列の先頭から2番目のセグメント(処理対象セグメントデータ)から順に、以下の処理を順次実行する。
まず、音素列選択部207bは、処理対象セグメントデータに対応する素片候補データ209のグループから1つの素片候補データ209(処理対象素片候補データ209)を選択する。
音素列選択部207bは、処理対象素片候補データ209と、処理対象セグメントデータの前方(時間的に1つ手前)のセグメントデータ(以下これを「前方セグメントデータ」と記載する)の各素片候補データ209(以下これを「前方素片候補データ209」と記載する)との間で、以下のコスト値を計算する。音素列選択部207bは、前方素片候補データ209に至るまでの最良の経路に対するコスト値として確定しているトータルコストと、前方素片候補データ209と処理対象素片候補データ209との間の接続コストとの、重み付き和のコスト値を計算する。
上述の接続コストは、評価部208内の接続評価部208bが計算する。接続評価部208bは、処理対象素片候補データ209と前方素片候補データ209との間の音素接続点での各素片データの音響パラメータ(特徴量ベクトルデータ)の不連続性の大きさを、接続コストとして算出する。より具体的には、接続評価部208bは例えば、上記両者間の各素片データの各特徴量ベクトルデータの組によって算出される各素片データの各スペクトル包絡の距離(例えばケプストラムのユークリッド距離)を、接続コストとして算出する。
音素列選択部207bは、前方素片候補データ209で確定しているトータルコストと、前方素片候補データ209と処理対象素片候補データ209との間の接続コストとの、重み付き和のコスト値が、最も小さい前方素片候補データ209を、処理対象素片候補データ209に対する最良の前方素片候補データ209として記憶する。同時に、音素列選択部207bは、そのときの重み付き和のコスト値を、処理対象素片候補データ209に対する確定したトータルコストとして記憶する。
音素列選択部207bは、処理対象セグメントデータ内の全ての素片候補データ209のうち、上述のトータルコストが最小となる素片候補データ209を記憶する。
その後、音素列選択部207bは、処理対象セグメントデータを1つ後方(時間的に1つ後ろ)に進める。
音素列選択部207bは、最後のセグメントデータまで処理が終わったら、まず、最後のセグメントデータでトータルコストが最小の素片候補データ209を選択し、その後、最後のセグメントデータから先頭のセグメントデータに向かって順次、選択した素片候補データ209に記憶されている最良の前方素片候補データ209を選択してゆく。音素列選択部207bは、このようにして順次選択した素片候補データ209列を、波形合成部107に出力する。
図5は、図1の音声合成装置100をソフトウェア処理として実現できるコンピュータのハードウェア構成例を示す図である。図5に示されるコンピュータは、CPU501、ROM(リードオンリーメモリ:読出し専用メモリ)502、RAM(ランダムアクセスメモリ)503、入力装置504、出力装置505、外部記憶装置506、可搬記録媒体510が挿入される可搬記録媒体駆動装置507、及び通信インタフェース508を有し、これらがバス509によって相互に接続された構成を有する。同図に示される構成は上記システムを実現できるコンピュータの一例であり、そのようなコンピュータはこの構成に限定されるものではない。
ROM502は、コンピュータを制御する音声合成プログラムを含む各プログラムを記憶するメモリである。RAM503は、各プログラムの実行時に、ROM502に記憶されているプログラム又はデータを一時的に格納するメモリである。
外部記憶装置506は、例えばSSD(ソリッドステートドライブ)記憶装置またはハードディスク記憶装置であり、入力テキストデータや合成音声データの保存に用いられる。
CPU501は、各プログラムを、ROM502からRAM503に読み出して実行することにより、当該コンピュータ全体の制御を行う。
入力装置504は、ユーザによるキーボードやマウス等による入力操作を検出し、その検出結果をCPU501に通知する。また、入力装置504は、図1のテキスト入力部101の機能を実行して入力テキストデータを外部から入力し、RAM503または外部記憶装置506に記憶させる。
出力装置505は、CPU501の制御によって送られてくるデータを表示装置や印刷装置に出力する。また、出力装置505は、図1の波形合成部107が外部記憶装置506またはRAM503に出力した合成音声データを、音声として放音する。
可搬記録媒体駆動装置507は、光ディスクやSDRAM、コンパクトフラッシュ等の可搬記録媒体510を収容するもので、外部記憶装置506の補助の役割を有する。
通信インターフェース508は、例えばLAN(ローカルエリアネットワーク)又はWAN(ワイドエリアネットワーク)の通信回線を接続するための装置である。
本実施形態によるシステムは、図1および図2の各処理部の機能を搭載した音声合成プログラムを、ROM502からRAM503に読み出してCPU501が実行することで実現される。そのプログラムは、例えば外部記憶装置506や可搬記録媒体510に記録して配布してもよく、或いはネットワーク接続装置508によりネットワークから取得できるようにしてもよい。
次に、図5のコンピュータが、図1および図2の機能を有する音声合成装置100として動作するために、RAM503または外部記憶装置506上に保持する各種データについて説明する。
図6は、RAM503に保持される制御変数WaveSelectionのデータ構成例を示す図である。制御変数WaveSelectionは、unitdb、seg_count、segment、targ_pf_countのスカラー各変数データと、targ_pitch_feat[0]〜targ_pitch_feat[targ_pf_count-1]の各配列データを保持する。unitdbは、外部記憶装置506上の音声辞書106に記憶される音声辞書データへのポインタを保持する。seg_countは、セグメントデータの総数を保持する。segmentは、最初のセグメントデータ(後述する図7のsegment[0]の先頭アドレス)へのポインタを保持する。targ_pf_countは、入力テキストデータ全体にわたる目標韻律データ201(図2)のピッチ特徴点の数を保持する。前述した図3(a)では、targ_pf_count=4である。targ_pitch_feat[0]からtarg_pitch_feat[targ_pf_count-1]は、目標韻律データ201(図2)の1番目からtarg_pf_count番目の各ピッチ特徴点(単位はcent)を保持する。targ_pitch_feat[0]〜targ_pitch_feat[targ_pf_count-1]は、図2の目標韻律ピッチ特徴点抽出部203によって抽出され、制御変数WaveSelectionにセットされている。
図7は、図6の制御変数WaveSelection内のsegmentポインタから参照されRAM503または外部記憶装置506に保持されるセグメントデータsegment[0]〜segment[seg_count]のデータ構成例を示す図である。各セグメントデータは、入力テキストデータを図1の形態素解析部102で形態素解析して得られる合計seg_count個(制御変数WaveSelectionのseg_countに保持される個数)の音素ごとに、図1の韻律予測部103によって、segment[0],segment[1],・・・,segment[seg_count-1]として得られる。セグメントデータの記憶アドレスは、制御変数WaveSelectionのsegmentによって示される。各セグメントデータsegment[i](i=0,・・・,seg_count-1)は、seg_id、phone_id、target_prosody、candidate、best_cand、prev、nextの各変数データを保持する。seg_idは、セグメントID(識別子)を保持する。phone_idは、音素IDを保持する。target_prosodyは、RAM503または外部記憶装置506に保持される目標韻律データ201の先頭へのポインタを保持する。candidateは、最初の素片候補データ209(後述する図10のcandidate[0]の先頭アドレス)へのポインタを保持する。best_candは、図2の音素列選択部207bに対応する処理によって現在のセグメントデータに対応してする選択される最良の素片候補データ209(後述する図9のcandidate[0]〜candidate[N]、・・・のいずれかの先頭アドレス)へのポインタを保持する。prevは1つ手前のセグメントデータへのポインタ、nextは1つ後ろのセグメントデータへのポインタを保持する。現在のセグメントデータが例えばsegmen[1]であれば、prevはsegment[0]の先頭アドレスを保持し、nextはsegment[2]の先頭アドレスを保持する。また、現在のセグメントデータが例えば先頭データsegment[0]であれば、prevは未定義値であるNULL値を保持する。現在のセグメントデータが例えば末端データsegment[seg_count]であれば、nextはNULL値を保持する。
図8は、図7の各セグメントデータ内のtarget_prosodyポインタまたは後述する図11の各素片データ内のprosodyポインタから参照されRAM503または外部記憶装置506に記憶される韻律データprosody[0],prosody[1],・・・,prosody[N],・・・のデータ構成例を示す図である。各韻律データprosody[i](i=0,・・・,N,・・・)は、time,pitch,power,prev,nextの各変数データを保持する。timeは、韻律が発生する時刻を保持する。pitchは、韻律の音高(ピッチ周波数)を保持する。powerは、韻律の強度を保持する。prevは1つ手前の韻律データへのポインタ、nextは1つ後ろの韻律データへのポインタを保持する。現在の韻律データが、先頭データであればprevはNULL値を保持し、末端データであればnextはNULL値を保持する。
図9は、図7のセグメントデータ内のtarget_prosodyポインタから参照されRAM503または外部記憶装置506に記憶される図2の素片候補データ209である素片候補データcandidate[0],candidate[1],・・・,candidate[N],・・・のデータ構成例を示す図である。各素片候補データcandidate[i](i=0,・・・,N,・・・)は、図2のリストアップ部で生成され、unit_id,ctxt_distance,pros_distance,unit_distance, cont_distance,total_cost,best_cand,prev,nextの各変数データを保持する。unit_idは、音声辞書106内の素片データを識別するための素片ID(図12参照)を保持し、図2の素片リストアップ部207aによりセットされる。ctxt_distanceは、前述した音素列コスト(音素列の不一致度)を保持し、図2の素片評価部208aによって算出されセットされる。pros_distanceは、前述した韻律コスト(目標韻律データ201と素片韻律データの距離)を保持し、図2の素片評価部208aによって算出されセットされる。unit_distanceは、音素列コストと韻律コストの重み付け和である前述した素片コストを保持し、図2の素片評価部208aによって算出されセットされる。cont_distanceは、前述した接続コスト(音素接続点での特徴量距離)を保持し、図2の接続評価部208bによって算出されセットされる。total_costは、先頭のセグメントデータからこの素片候補データが属するセグメントデータまでに確定したトータルコストを保持し、前述したように図2の音素列選択部207bにより算出されセットされる。best_candは、この素片候補データと接続する最良の前方素片候補データへのポインタを保持し、前述した音素列選択部207bによって算出されセットされる。ここで、前方素片候補データは、best_candが含まれる素片候補データ(処理対象素片候補データ)が属するセグメントデータ(処理対象セグメントデータ)の1つ手前のセグメントデータ(前方セグメントデータ)に属する素片候補データであって、その前方素片候補データで確定しているトータルコストと、処理対象素片候補データとの間の接続コストとの、重み付き和のコスト値が、最も小さい(最良の)前方素片候補データである。prevは1つ手前の素片候補データへのポインタ、nextは1つ後ろの素片候補データへのポインタを保持する。現在の素片候補データが、先頭データであればprevはNULL値を保持し、末端データであればnextはNULL値を保持する。
図10は、図1の音声辞書106を構成するRAM503または外部記憶装置506に記憶される音声辞書データunitdbのデータ構成例を示す図であり、図6の制御変数WaveSelectionのunitdbポインタから参照される。音声辞書データunitdbは、phone_count、phoneme、unit_count、unit、fval_count、pf_countの各変数データ、およびpitch_feat[0]〜pitch_feat[pf_count-1]の各配列変数データを保持する。phone_countは、この音声辞書データunitdbで定義されている音素数を保持する。phonemeは、先頭の音素データ(図12のphoneme[0]の先頭アドレス)へのポインタを保持する。unit_countは、この音声辞書データunitdbが搭載する素片データの数を保持する。unitは、この音声辞書データunitdbが搭載する先頭の素片データ(図12のunit[0]の先頭アドレス)へのポインタを保持する。pf_countは、素片データのピッチ特徴点の数を保持する。図3(b)の例では、pf_count=4である。pitch_feat[0]〜pitch_feat[pf_count-1]は、音声辞書データunitdb全体にわたる素片データの1番目からpf_count番目までの各ピッチ特徴点(単位はcent)を保持する。pitch_feat[0]〜pitch_feat[pf_count-1]は、図2の素片韻律ピッチ特徴点抽出部204によって抽出されている。
図11は、図1の音声辞書106を構成するRAM503または外部記憶装置506に記憶される素片データunit[0]〜unit[unit_count-1]のデータ構成例を示す図であり、図10の音声辞書データunitdbのunitポインタから参照される。音声辞書106への搭載素片数unit_countは、図10の音声辞書データunitdbのunit_countデータとして登録される。各素片データunit[i](i=0,・・・,unit_count-1)は、unit_id, phone_id,duration,prosody,prev,nextの各変数データと、featvalue[0]〜featvalue[fval_count-1]の各配列変数データを保持する。unit_idは、素片データを識別するための素片IDを保持する。phone_idは、この素片データに対応付けられる音素を図12で後述する音素データから特定するための音素IDを保持する。durationはこの素片データがどれだけの時間長だけ継続しているかを示す継続長を保持する。prosodyは、図7のデータ構成例を有する、RAM503または外部記憶装置506に保持される素片韻律データの先頭へのポインタを保持する。featvalue[0]〜featvalue[fval_count-1]は、1番目からfval_count番目までの後述する図13に示されるデータ構成例を有する特徴量ベクトルデータの先頭データへのポインタを保持する。prevは1つ手前の素片データへのポインタ、nextは1つ後ろの素片データへのポインタを保持する。現在の素片データが、先頭データであればprevはNULL値を保持し、末端データであればnextはNULL値を保持する。
図12は、図10の音声辞書データunitdb内のphonemeポインタから参照されRAM503または外部記憶装置506に記憶される音素データphoneme[0]〜phoneme[phone_count-1]のデータ構成例を示す図である。音素データの数は、音声辞書データunitdbのphone_countデータにセットされている。各音素データphoneme[i] (i=0,・・・,phone_count-1)は、phone_id,phomene,prev,nextの各変数データを保持する。phone_idは、音素を識別するための音素IDを保持する。前述した図7のセグメントデータまたは前述した図11の素片データは、その中のphone_idデータによって、図6の制御変数WaveSelection内のunitdb→図10の音声辞書データunitdb内のphoneme→図12の音素データphoneme[0]〜phoneme[phone_count-1]のうち上記phone_idの値が格納されている音素データとたどって、その音素データ内の音素名phomeneと関連付けられる。phomeneは音素名を保持する。prevは1つ手前の音素データへのポインタ、nextは1つ後ろの音素データへのポインタを保持する。現在の音素データが、先頭データであればprevはNULL値を保持し、末端データであればnextはNULL値を保持する。
図13は、図12の各素片データ内のfeatvalue[i] (i=0,・・・,fval_count-1)ポインタから参照されRAM503または外部記憶装置506に記憶される特徴量ベクトルデータfeatvalue[0],featvalue[1],・・・,featvalue[N],・・・のデータ構成例を示す図である。各特徴量ベクトルデータfeatvalue[i](i=0,・・・,N,・・・)は、time,dimension,prev,nextの各変数データと、value[0]〜value[dimension-1]の各配列変数データを保持する。timeは、その特徴量ベクトルデータに対応する時刻を保持する。dimensionは、この特徴量ベクトルデータの次元数を保持する。value[0]〜value[dimension-1]は、1番目からdimension番目までの特徴量を保持する。prevは1つ手前の特徴量ベクトルデータへのポインタ、nextは1つ後ろの特徴量ベクトルデータへのポインタを保持する。現在の特徴量ベクトルデータが、先頭データであればprevはNULL値を保持し、末端データであればnextはNULL値を保持する。この特徴量ベクトルデータは、前述したように、図2の接続評価部208bが、処理対象素片候補データ209と前方素片候補データ209との間の音素接続点での各素片データの各スペクトル包絡の距離を算出するために使用される。
図14は、図2の韻律補正部205に対応する機能を、図5のハードウェア構成例を有するコンピュータのCPU501が、ソフトウェアプログラムの処理により実現する場合の、韻律補正処理の例を示すフローチャートである。以下に説明する処理はすべてCPU501が実行する処理である。
まず、RAM503上の変数データsegに、前述した図6のデータ構成例を有する制御変数WaveSelection内のsegmentデータの値が格納される(ステップS1401)。この値は、図7のデータ構成例を有するセグメントデータの最初のセグメントデータsegmen[0]の先頭アドレスへのポインタである。
次に、seg変数の値が未定義値NULLでないか否か、すなわち図7の全てのセグメントデータsegment[0]〜segment[seg_count]が処理されたか否かが判定される(ステップS1402)。
全てのセグメントデータの処理が完了しておらずseg変数の値が未定義値NULLではなくてステップS1402の判定がYESならば、RAM503上の変数prosに、変数segが示す前述した図7のデータ構成例を有するセグメントデータ中のtarget_prosodyデータの値が格納される。この値は、図8のデータ構成例を有する目標韻律データ201の最初のデータprosody[0]の先頭アドレスへのポインタである。
続いて、pros変数の値が未定義値NULLでないか否か、すなわち図8の全ての目標韻律データprosody[0],prosody[1],・・・,prosody[N],・・・が処理されたか否かが判定される(ステップS1404)。
pros変数の値が未定義値NULLでなくステップS1404の判定がYESならば、以下に説明するステップS1405からS1419までの一連の処理が実行されることにより、pros変数が示す目標韻律データ内のpitchデータ(図8参照)を補正する韻律補正の処理が実行される。
現在の目標韻律データに対する韻律補正の処理が終了すると、pros変数が示す目標韻律データ内のnextポインタ(図8参照)が示す次の目標韻律データへのポインタ値が、新たにpros変数にセットされ(ステップS1419)、ステップS1404の判定に戻る。図8の説明で前述したように、末尾の目標韻律データのnextポインタには未定義値NULLが格納されている。このため、末尾の目標韻律データに対して韻律補正の処理が実行された後にステップS1419が実行されると、pros変数の値はNULL値となる。これにより、末尾の目標韻律データまで韻律補正の処理が完了すると、ステップS1404の判定がNOとなる。
現在のセグメントデータに対する全ての目標韻律データに対する韻律補正の処理が終了してステップS1404の判定がNOになると、seg変数が示すセグメントデータ内のnextポインタ(図7参照)が示す次のセグメントデータへのポインタ値が、新たにseg変数にセットされ(ステップS1420)、ステップS1402の判定に戻る。図7の説明で前述したように、末尾のセグメントデータのnextポインタには未定義値NULLが格納されている。このため、末尾のセグメントデータに対して全ての韻律データに対する韻律補正の処理が実行された後にステップS1404の判定がNOとなってステップS1420が実行されると、seg変数の値はNULL値となる。これにより、末尾のセグメントデータまで韻律補正の処理が完了すると、ステップS1402の判定がNOとなって、入力テキストデータに対応するセグメントデータ全体に対する韻律補正の処理が完了する。
ステップS1405からS1419までの韻律補正の処理について、以下に説明する。
まず、pros変数が示す図8のデータ構成例を有する目標韻律データのpitchデータすなわち音高データが、0よりも大きいか否かが判定される(ステップS1405)。
pitchデータがゼロでステップS1405の判定がNOならば、韻律補正の処理は実行せずにステップS1419に進んで、次の韻律データに対する処理に進む。
pitchデータがゼロよりも大きくステップS1405の判定がYESならば、そのpitchデータが、1オクターブの1200分の1を示す単位であるcent値に変換される(ステップ1406)。
その後、RAM503上の変数pfに値0がセットされる(ステップS1407)。pf変数は、図3で説明したピッチ特徴点(例えば1〜4)を順次指定するための変数であり、pf=0ならば周波数が最も低いピッチ特徴点(図3の例ではピッチ特徴点1)が指定される。また、前述したように、図6に例示される制御変数WaveSelection内のtarg_pf_countデータは、目標韻律のピッチ特徴点の数を示している。従って、ステップS1410でpf変数の値が順次+1ずつインクリメントされながら、pf変数の値がtarg_pf_count-1になったときに、周波数が最も高いピッチ特徴点(図3の例ではピッチ特徴点4)が指定される。
ステップS1407の後、pf変数の値が上述の制御変数WaveSelection内のtarg_pf_countデータの値よりも小さいか否かが判定される(ステップS1408)。
ステップS1408の判定がYESならば、現在の韻律データ中のpitchデータが、図6に例示される制御変数WaveSelectionに格納されている、pf変数の値pfによって指定される目標韻律のpf+1番目のピッチ特徴点の周波数targ_pitch_feat[pf]よりも小さいか否かが判定される(ステップS1409)。ここでは、pf=0である場合のピッチ特徴点を1番目のピッチ特徴点と考える。
pitchデータが目標韻律のpf+1番目のピッチ特徴点の周波数targ_pitch_feat[pf]よりも小さくはなくステップS1409の判定がNOならば、ピッチ特徴点が1つ高い周波数に移されて、ステップS1408とS1409の判定が繰り返される。
いま例えば図3で説明したように、pitchデータが目標韻律の2番目と3番目のピッチ特徴点の間に位置するときには、pf=2のときにステップS1409の判定がYESとなる。
次に、pf=0であるか否かが判定される(ステップS1411)。pf=2の場合にはステップS1411の判定はNOとなる。
その後、図3の説明で前述した、(2)式の計算(ステップS1412)、(3)式の計算(ステップS1413)、(4)式の計算(ステップS1414)、および(6)式の計算(ステップS1415)が実行される。この結果、変数modpitの値として、pitchデータに対する韻律補正後のピッチデータが算出される。
このようにして得られたmodpit変数値がcent値に変換された後、その変換結果値によって、pros変数が示す目標韻律データのpitchデータが置き換えられる(ステップS1416)。
ステップS1416の処理の後、ステップS1419が実行されて、次の目標韻律データに処理が移る。
pitchデータが、1番目の目標韻律のピッチ特徴点よりも低い周波数である場合、ステップS1411の判定がYESになる。この場合には、pitchデータの周波数よりも下側の周波数域にはピッチ特徴点は存在しないため、前述した図3の内分点計算はできない。そこで近似的に、目標韻律の1番目のピッチ特徴点の周波数WaveSelection.target_pitch_feat[0]からpitchデータ値までの周波数差と同じ周波数だけ、素片韻律の1番目のピッチ特徴点の周波数unitdb.pitch_feat[0]から移動させられた周波数が、補正後の目標韻律のピッチ周波数modpitとして算出される(ステップS1417)。
ステップS1417の処理の後、ステップS1419が実行されて、次の目標韻律データに処理が移る。
pitchデータが、最も高い周波数の目標韻律のピッチ特徴点よりも高い周波数である場合、ステップS1408の判定がNOになる。この場合には、pitchデータの周波数よりも上側の周波数域にはピッチ特徴点は存在しないため、やはり前述した図3の内分点計算はできない。そこで近似的に、目標韻律の最後のピッチ特徴点の周波数WaveSelection.target_pitch_feat[WaveSelection.targ_pf_count-1]からpitchデータ値までの周波数差と同じ周波数だけ、素片韻律の最後のピッチ特徴点の周波数unitdb.pitch_feat[unitdb.pf_count-1]から移動させられた周波数が、補正後の目標韻律のピッチ周波数modpitとして算出される(ステップS1418)。
ステップS1418の処理の後、ステップS1419が実行されて、次の目標韻律データに処理が移る。
以上の韻律補正処理によって、入力テキストデータから生成される補正後目標韻律データ206の韻律遷移を、音声辞書106内の音声コーパスの韻律遷移に合わせることが可能となって、入力テキストデータと素片データとで韻律特徴(言い換えれば例えば話者)が異なっても、素片データを正しく選択して音声辞書106の音声コーパスの話者に合わせた、質の良い合成音声を出力することが可能となる。
以上の実施形態に関して、更に以下の付記を開示する。
(付記1)
入力テキストデータから生成される音素及び目標韻律に基づいて、音声コーパスを参照することにより音声素片を選択し、当該選択された音声素片を接続することにより合成音声を出力する音声合成装置において、
前記目標韻律からピッチ特徴点を抽出する目標韻律ピッチ特徴点抽出部と、
前記選択された音声素片中の韻律情報である素片韻律からピッチ特徴点を抽出する素片韻律ピッチ特徴点抽出部と、
前記目標韻律から抽出されたピッチ特徴点と前記素片韻律から抽出されたピッチ特徴点との対応関係に基づいて、前記目標韻律を補正する韻律補正部と、
を備えることを特徴とする音声合成装置。
(付記2)
前記目標韻律ピッチ特徴点抽出部または素片韻律ピッチ特徴点抽出部はそれぞれ、前記目標韻律または前記素片韻律のピッチ周波数のヒストグラムを算出し、当該ヒストグラムから頻度値が極大を示す1つ以上の周波数と前記頻度値が概略ゼロに収束する1つ以上の周波数をそれぞれ、前記ピッチ特徴点として抽出する、
ことを特徴とする付記1に記載の音声合成装置。
(付記3)
前記韻律補正部は、前記目標韻律中のピッチ周波数が前記目標韻律から抽出された相互に隣接するいずれか2つの前記ピッチ特徴点の周波数の間に任意の内分比で位置する場合に、前記目標韻律から抽出された2つの前記ピッチ特徴点にそれぞれ対応する前記素片韻律から抽出された2つの前記ピッチ特徴点の周波数を前記内分比と同じ内分比で内分して得られる周波数になるように、前記目標韻律中のピッチ周波数を補正する、
ことを特徴とする付記2に記載の音声合成装置。
(付記4)
入力テキストデータから生成される音素及び目標韻律に基づいて、音声コーパスを参照することにより音声素片を選択し、当該選択された音声素片を接続することにより合成音声を出力する音声合成装置に用いられる音声合成方法であって、前記音声合成装置が、
前記目標韻律からピッチ特徴点を抽出し、
前記選択された音声素片中の韻律情報である素片韻律からピッチ特徴点を抽出し、
前記目標韻律から抽出されたピッチ特徴点と前記素片韻律から抽出されたピッチ特徴点との対応関係に基づいて、前記目標韻律を補正する、
ことを特徴とする音声合成方法。
(付記5)
入力テキストデータから生成される音素及び目標韻律に基づいて、音声コーパスを参照することにより音声素片を選択し、当該選択された音声素片を接続することにより合成音声を出力する音声合成プログラムにおいて、
前記目標韻律からピッチ特徴点を抽出するステップと、
前記選択された音声素片中の韻律情報である素片韻律からピッチ特徴点を抽出するステップと、
前記目標韻律から抽出されたピッチ特徴点と前記素片韻律から抽出されたピッチ特徴点との対応関係に基づいて、前記目標韻律を補正するするステップと、
をコンピュータに実行させるための音声合成プログラム。
100 音声合成装置
101 テキスト入力部
102 形態素解析部
103 韻律予測部
104 韻律辞書
105 波形選択部
106 音声辞書
107 波形合成部
201 目標韻律データ
202 韻律入力部
203 目標韻律ピッチ特徴点抽出部
204 素片韻律ピッチ特徴点抽出部
205 韻律補正部
206 補正後目標韻律データ
207 素片選定部
207a 素片リストアップ部
207b 音素列選択部
208 評価部
208a 素片評価部
208b 接続評価部
209 素片候補データ
210 合成部
301 目標韻律のピッチ周波数のヒストグラム
302 素片韻律のピッチ周波数のヒストグラム
303 補正前の目標韻律のピッチ周波数
304 補正後の目標韻律のピッチ周波数
501 CPU
502 ROM(リードオンリーメモリ)
503 RAM(ランダムアクセスメモリ)
504 入力装置
505 出力装置
506 外部記憶装置
507 可搬記録媒体駆動装置
508 通信インタフェース
509 バス
510 可搬記録媒体

Claims (8)

  1. 入力テキストデータから生成される音素及び目標韻律に基づいて、音声コーパスを参照することにより音声素片を選択し、前記選択された音声素片を接続することにより合成音声を出力する音声合成装置において、
    算出された前記目標韻律のピッチ周波数のヒストグラム上で特徴となる周波数をピッチ特徴点として抽出する目標韻律ピッチ特徴点抽出部と、
    前記選択された音声素片中の韻律情報である素片韻律のピッチ周波数のヒストグラムを算出し、算出されたヒストグラム上で特徴となる周波数を前記ピッチ特徴点として抽出する素片韻律ピッチ特徴点抽出部と、
    前記目標韻律から抽出されたピッチ特徴点と前記素片韻律から抽出されたピッチ特徴点との対応関係に基づいて、前記目標韻律を補正する韻律補正部と、
    を備え、
    前記目標韻律ピッチ特徴点抽出部および前記素片韻律ピッチ特徴点抽出部はそれぞれ、前記ヒストグラム上で特徴となる2つ以上の周波数を前記ピッチ特徴点として抽出し、
    前記韻律補正部は、前記目標韻律から前記ピッチ特徴点として抽出された2つ以上の周波数に対する各ピッチ周波数の内分比と、前記素片韻律から前記ピッチ特徴点として抽出された2つ以上の周波数に対する各ピッチ周波数の内分比とが同じになるように、前記目標韻律を補正する、
    ことを特徴とする音声合成装置。
  2. 入力テキストデータから生成される音素及び目標韻律に基づいて、音声コーパスを参照することにより音声素片を選択し、前記選択された音声素片を接続することにより合成音声を出力する音声合成装置において、
    算出された前記目標韻律のピッチ周波数のヒストグラム上で特徴となる周波数をピッチ特徴点として抽出する目標韻律ピッチ特徴点抽出部と、
    前記選択された音声素片中の韻律情報である素片韻律のピッチ周波数のヒストグラムを算出し、算出されたヒストグラム上で特徴となる周波数を前記ピッチ特徴点として抽出する素片韻律ピッチ特徴点抽出部と、
    前記目標韻律から抽出されたピッチ特徴点と前記素片韻律から抽出されたピッチ特徴点との対応関係に基づいて、前記目標韻律を補正する韻律補正部と、
    を備え、
    前記目標韻律ピッチ特徴点抽出部および前記素片韻律ピッチ特徴点抽出部はそれぞれ、前記ヒストグラムから頻度値が極大を示す1つ以上の周波数と前記頻度値が概略ゼロに収束する1つ以上の周波数をそれぞれ、前記ピッチ特徴点として抽出する、
    ことを特徴とする音声合成装置。
  3. 前記目標韻律ピッチ特徴点抽出部または素片韻律ピッチ特徴点抽出部はそれぞれ、前記ヒストグラムから頻度値が極大を示す1つ以上の周波数と前記頻度値が概略ゼロに収束する1つ以上の周波数をそれぞれ、前記ピッチ特徴点として抽出する、
    ことを特徴とする請求項1に記載の音声合成装置。
  4. 前記韻律補正部は、前記目標韻律中のピッチ周波数が前記目標韻律から抽出された相互に隣接するいずれか2つの前記ピッチ特徴点の周波数の間に任意の内分比で位置する場合に、前記目標韻律から抽出された2つの前記ピッチ特徴点にそれぞれ対応する前記素片韻律から抽出された2つの前記ピッチ特徴点の周波数を前記内分比と同じ内分比で内分して得られる周波数になるように、前記目標韻律中のピッチ周波数を補正する、
    ことを特徴とする請求項1乃至3のいずれか一項に記載の音声合成装置。
  5. 入力テキストデータから生成される音素及び目標韻律に基づいて、音声コーパスを参照することにより音声素片を選択し、当該選択された音声素片を接続することにより合成音声を出力する音声合成装置に用いられる音声合成方法であって、前記音声合成装置が、
    算出された前記目標韻律のピッチ周波数のヒストグラム上で特徴となる2つ以上の周波数をピッチ特徴点として抽出し、
    前記選択された音声素片中の韻律情報である素片韻律のピッチ周波数のヒストグラムを算出し、算出されたヒストグラム上で特徴となる2つ以上の周波数を前記ピッチ特徴点として抽出し、
    前記目標韻律から抽出されたピッチ特徴点と前記素片韻律から抽出されたピッチ特徴点との対応関係に基づいて、前記目標韻律から前記ピッチ特徴点として抽出された2つ以上の周波数に対する各ピッチ周波数の内分比と、前記素片韻律から前記ピッチ特徴点として抽出された2つ以上の周波数に対する各ピッチ周波数の内分比とが同じになるように、前記目標韻律を補正する、
    ことを特徴とする音声合成方法。
  6. 入力テキストデータから生成される音素及び目標韻律に基づいて、音声コーパスを参照することにより音声素片を選択し、当該選択された音声素片を接続することにより合成音声を出力する音声合成装置に用いられる音声合成方法であって、前記音声合成装置が、
    算出された前記目標韻律のピッチ周波数の第1ヒストグラム上で特徴となる周波数であって、前記第1ヒストグラムから頻度値が極大を示す1つ以上の周波数と前記頻度値が概略ゼロに収束する1つ以上の周波数をそれぞれ、ピッチ特徴点として抽出し、
    前記選択された音声素片中の韻律情報である素片韻律のピッチ周波数の第2ヒストグラムを算出し、算出されたヒストグラム上で特徴となる周波数であって、前記第2ヒストグラムから頻度値が極大を示す1つ以上の周波数と前記頻度値が概略ゼロに収束する1つ以上の周波数をそれぞれ、ピッチ特徴点として抽出し、
    前記目標韻律から抽出されたピッチ特徴点と前記素片韻律から抽出されたピッチ特徴点との対応関係に基づいて、前記目標韻律を補正する、
    ことを特徴とする音声合成方法。
  7. 入力テキストデータから生成される音素及び目標韻律に基づいて、音声コーパスを参照することにより音声素片を選択し、当該選択された音声素片を接続することにより合成音声を出力する音声合成プログラムにおいて、
    算出された前記目標韻律のピッチ周波数のヒストグラム上で特徴となる2つ以上の周波数をピッチ特徴点として抽出するステップと、
    前記選択された音声素片中の韻律情報である素片韻律のピッチ周波数のヒストグラムを算出し、算出されたヒストグラム上で特徴となる2つ以上の周波数を前記ピッチ特徴点として抽出するステップと、
    前記目標韻律から抽出されたピッチ特徴点と前記素片韻律から抽出されたピッチ特徴点との対応関係に基づいて、前記目標韻律から前記ピッチ特徴点として抽出された2つ以上の周波数に対する各ピッチ周波数の内分比と、前記素片韻律から前記ピッチ特徴点として抽出された2つ以上の周波数に対する各ピッチ周波数の内分比とが同じになるように、前記目標韻律を補正するステップと、
    をコンピュータに実行させるための音声合成プログラム。
  8. 入力テキストデータから生成される音素及び目標韻律に基づいて、音声コーパスを参照することにより音声素片を選択し、当該選択された音声素片を接続することにより合成音声を出力する音声合成プログラムにおいて、
    算出された前記目標韻律のピッチ周波数の第1ヒストグラム上で特徴となる周波数であって、前記第1ヒストグラムから頻度値が極大を示す1つ以上の周波数と前記頻度値が概略ゼロに収束する1つ以上の周波数をそれぞれ、ピッチ特徴点として抽出するステップと、
    前記選択された音声素片中の韻律情報である素片韻律のピッチ周波数の第2ヒストグラムを算出し、算出されたヒストグラム上で特徴となる周波数であって、前記第2ヒストグラムから頻度値が極大を示す1つ以上の周波数と前記頻度値が概略ゼロに収束する1つ以上の周波数をそれぞれ、ピッチ特徴点として抽出するステップと、
    前記目標韻律から抽出されたピッチ特徴点と前記素片韻律から抽出されたピッチ特徴点との対応関係に基づいて、前記目標韻律を補正するステップと、
    をコンピュータに実行させるための音声合成プログラム。
JP2014026965A 2014-02-14 2014-02-14 音声合成装置、方法、およびプログラム Active JP6519096B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014026965A JP6519096B2 (ja) 2014-02-14 2014-02-14 音声合成装置、方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014026965A JP6519096B2 (ja) 2014-02-14 2014-02-14 音声合成装置、方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2015152788A JP2015152788A (ja) 2015-08-24
JP6519096B2 true JP6519096B2 (ja) 2019-05-29

Family

ID=53895089

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014026965A Active JP6519096B2 (ja) 2014-02-14 2014-02-14 音声合成装置、方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP6519096B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5245962B2 (ja) * 2009-03-19 2013-07-24 日本電気株式会社 音声合成装置、音声合成方法、プログラム及び記録媒体
WO2012063424A1 (ja) * 2010-11-08 2012-05-18 日本電気株式会社 特徴量系列生成装置、特徴量系列生成方法および特徴量系列生成プログラム
JP5512597B2 (ja) * 2011-05-13 2014-06-04 日本電信電話株式会社 音声合成装置とその方法とプログラム
JP5930738B2 (ja) * 2012-01-31 2016-06-08 三菱電機株式会社 音声合成装置及び音声合成方法
JP5665780B2 (ja) * 2012-02-21 2015-02-04 株式会社東芝 音声合成装置、方法およびプログラム

Also Published As

Publication number Publication date
JP2015152788A (ja) 2015-08-24

Similar Documents

Publication Publication Date Title
US10878803B2 (en) Speech conversion method, computer device, and storage medium
US20220076693A1 (en) Bi-directional recurrent encoders with multi-hop attention for speech emotion recognition
WO2017067206A1 (zh) 个性化多声学模型的训练方法、语音合成方法及装置
JP2007249212A (ja) テキスト音声合成のための方法、コンピュータプログラム及びプロセッサ
JPH1195783A (ja) 音声情報処理方法
JPWO2012063424A1 (ja) 特徴量系列生成装置、特徴量系列生成方法および特徴量系列生成プログラム
US9805711B2 (en) Sound synthesis device, sound synthesis method and storage medium
JP5434587B2 (ja) 音声合成装置及び方法とプログラム
GB2603776A (en) Methods and systems for modifying speech generated by a text-to-speech synthesiser
JP5930738B2 (ja) 音声合成装置及び音声合成方法
JP4945465B2 (ja) 音声情報処理装置及びその方法
JP2016065900A (ja) 音声合成装置、方法、およびプログラム
JP6519096B2 (ja) 音声合成装置、方法、およびプログラム
CN112992110B (zh) 音频处理方法、装置、计算设备以及介质
JP2004109535A (ja) 音声合成方法、音声合成装置および音声合成プログラム
JP2009122381A (ja) 音声合成装置、音声合成方法およびそのプログラム
JP2011197124A (ja) データ作成システム及びプログラム
JP5393546B2 (ja) 韻律作成装置及び韻律作成方法
KR101227716B1 (ko) 음성 합성 장치, 음성 합성 방법 및 음성 합성 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
JP6291887B2 (ja) 音声合成装置、方法、およびプログラム
JP2008191334A (ja) 音声合成方法、音声合成プログラム、音声合成装置、音声合成システム
JP6519097B2 (ja) 音声合成装置、方法、およびプログラム
JPWO2013011634A1 (ja) 波形処理装置、波形処理方法および波形処理プログラム
JP3881970B2 (ja) 知覚試験用音声データセット作成装置、コンピュータプログラム、音声合成用サブコスト関数の最適化装置、及び音声合成装置
JP2006084854A (ja) 音声合成装置、音声合成方法および音声合成プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180130

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180821

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181019

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190326

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190408

R150 Certificate of patent or registration of utility model

Ref document number: 6519096

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150