JP5999092B2 - ピッチパタン生成方法、ピッチパタン生成装置、音声合成装置およびピッチパタン生成プログラム - Google Patents
ピッチパタン生成方法、ピッチパタン生成装置、音声合成装置およびピッチパタン生成プログラム Download PDFInfo
- Publication number
- JP5999092B2 JP5999092B2 JP2013525552A JP2013525552A JP5999092B2 JP 5999092 B2 JP5999092 B2 JP 5999092B2 JP 2013525552 A JP2013525552 A JP 2013525552A JP 2013525552 A JP2013525552 A JP 2013525552A JP 5999092 B2 JP5999092 B2 JP 5999092B2
- Authority
- JP
- Japan
- Prior art keywords
- state information
- pitch pattern
- conversion
- state
- representative value
- 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
Links
- 238000000034 method Methods 0.000 title claims description 78
- 238000006243 chemical reaction Methods 0.000 claims description 467
- 238000012937 correction Methods 0.000 claims description 327
- 230000006870 function Effects 0.000 claims description 182
- 238000003860 storage Methods 0.000 claims description 46
- 230000008569 process Effects 0.000 claims description 28
- 230000001131 transforming effect Effects 0.000 claims description 6
- 239000006185 dispersion Substances 0.000 description 49
- 238000010586 diagram Methods 0.000 description 24
- 238000009826 distribution Methods 0.000 description 22
- 230000015572 biosynthetic process Effects 0.000 description 21
- 238000003786 synthesis reaction Methods 0.000 description 21
- 230000007704 transition Effects 0.000 description 20
- 238000004364 calculation method Methods 0.000 description 12
- 238000012886 linear function Methods 0.000 description 11
- 230000004048 modification Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/06—Elementary speech units used in speech synthesisers; Concatenation rules
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Machine Translation (AREA)
Description
本発明は、音声合成の対象となるテキストの読みを表す読み情報に応じたピッチパタンを生成するピッチパタン生成方法、ピッチパタン生成装置、音声合成装置およびピッチパタン生成プログラムに関する。
ピッチパタンは、イントネーションや声の高低の時間的な動きを表す情報であり、時間経過に伴う周波数の変化として表される。
ピッチパタンを生成するピッチパタン生成方法が特許文献1に記載されている。特許文献1に記載されたピッチパタン生成方法では、ピッチパタンをスプライン関数で表す。そして、スプライン関数の区間毎に導関数の値の範囲に制約を設けた上で、隣り合う区間の接続点における関数値および一次の微係数が区間両側で等しく、所望の点を通るスプライン関数を生成する。
また、特許文献1には、自由なピッチパタンを手動でデザインすることに関しても記載されている。
また、音声合成に関する技術として、母音の中心の間隔を用いて継続時間長を制御する技術が特許文献2に記載されている。
また、HMM(Hidden Markov Model :隠れマルコフモデル)に関する技術として、HMMの各状態の継続時間の期待値を算出することが、特許文献3に記載されている。
音声合成において生成されたピッチパタンを手動で補正する場合、例えば、アクセント句同士の境界でピッチパタンが滑らかに繋がらず、違和感のない音声合成結果を得ることが難しかった。なお、ここでは、ピッチパタンを補正する単位(以下、ピッチパタン補正単位と記す。)として、アクセント句に着目する場合を示したが、ピッチパタン補正単位としては、アクセント句の他に、音素、音節、呼気段落、文等を採用し得る。
特許文献1に記載された方法のように、ピッチパタンをスプライン関数で表し、スプラインを構成する隣り合う区間の接続点における関数値および一次の微係数が区間両側で等しく、所望の点を通るスプライン関数を生成すれば、そのスプライン関数(ピッチパタン)によって違和感のない音声合成結果を得ることができる。
また、音声合成には、HMMを用いる場合もあるが、HMMを用いる場合にも、違和感のない音声合成結果が得られるようなピッチパタンを生成できることが好ましい。
そこで、本発明は、HMMを用いる場合に、違和感のない音声合成結果が得られるようなピッチパタンを生成することができるピッチパタン生成方法、ピッチパタン生成装置、音声合成装置およびピッチパタン生成プログラムを提供することを目的とする。
本発明によるピッチパタン生成方法は、音素毎に学習された隠れマルコフモデルの状態を示す状態情報であって、周波数に関する代表値およびデータの広がりを表す状態情報を予め記憶し、ピッチパタン補正単位毎の読みを示す情報に基づいて、ピッチパタン補正単位の読みによって特定される各音素の状態情報を、ピッチパタン補正単位の読みによって特定される音素順に配列し、少なくとも、ピッチパタン補正単位とその前のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である前方韻律制御情報と、ピッチパタン補正単位とその後のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である後方韻律制御情報とのいずれかを用いて、状態情報が表す周波数に関する代表値を変換するための代表値変換用変換係数を導出する代表値変換用単調関数を定め、代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、代表値変換用変換係数を用いて、配列した状態情報が表す周波数に関する代表値を変換し、周波数に関する代表値およびデータの広がりに基づいてピッチパタンを生成することを特徴とする。
また、本発明によるピッチパタン生成装置は、音素毎に学習された隠れマルコフモデルの状態を示す状態情報であって、周波数に関する代表値およびデータの広がりを表す状態情報を記憶する状態情報記憶手段と、ピッチパタン補正単位毎の読みを示す情報に基づいて、ピッチパタン補正単位の読みによって特定される各音素の状態情報を、ピッチパタン補正単位の読みによって特定される音素順に配列する状態情報配列手段と、少なくとも、ピッチパタン補正単位とその前のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である前方韻律制御情報と、ピッチパタン補正単位とその後のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である後方韻律制御情報とのいずれかを用いて、状態情報が表す周波数に関する代表値を変換するための代表値変換用変換係数を導出する代表値変換用単調関数を定め、代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、代表値変換用変換係数を用いて、配列した状態情報が表す周波数に関する代表値を変換する状態情報補正手段と、周波数に関する代表値およびデータの広がりに基づいてピッチパタンを生成するピッチパタン生成手段とを備えることを特徴とする。
また、本発明による音声合成装置は、ピッチパタン補正単位毎の読みを示す情報と、隣接するピッチパタン補正単位間の韻律の関係性を制御するための韻律制御情報とを生成する言語処理手段と、音素毎に学習された隠れマルコフモデルの状態を示す状態情報であって、周波数に関する代表値およびデータの広がりを表す状態情報を記憶する状態情報記憶手段と、ピッチパタン補正単位毎の読みを示す情報に基づいて、ピッチパタン補正単位の読みによって特定される各音素の状態情報を、ピッチパタン補正単位の読みによって特定される音素順に配列する状態情報配列手段と、少なくとも、ピッチパタン補正単位とその前のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である前方韻律制御情報と、ピッチパタン補正単位とその後のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である後方韻律制御情報とのいずれかを用いて、状態情報が表す周波数に関する代表値を変換するための代表値変換用変換係数を導出する代表値変換用単調関数を定め、代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、代表値変換用変換係数を用いて、配列した状態情報が表す周波数に関する代表値を変換する状態情報補正手段と、周波数に関する代表値およびデータの広がりに基づいてピッチパタンを生成するピッチパタン生成手段と、ピッチパタンに基づいて合成音声を生成する合成音声生成手段とを備えることを特徴とする。
また、本発明によるピッチパタン生成プログラムは、音素毎に学習された隠れマルコフモデルの状態を示す状態情報であって、周波数に関する代表値およびデータの広がりを表す状態情報を記憶する状態情報記憶手段を備えたコンピュータに搭載されるピッチパタン生成プログラムであって、コンピュータに、ピッチパタン補正単位毎の読みを示す情報に基づいて、ピッチパタン補正単位の読みによって特定される各音素の状態情報を、ピッチパタン補正単位の読みによって特定される音素順に配列する状態情報配列処理、少なくとも、ピッチパタン補正単位とその前のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である前方韻律制御情報と、ピッチパタン補正単位とその後のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である後方韻律制御情報とのいずれかを用いて、状態情報が表す周波数に関する代表値を変換するための代表値変換用変換係数を導出する代表値変換用単調関数を定め、代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、代表値変換用変換係数を用いて、配列した状態情報が表す周波数に関する代表値を変換する状態情報補正処理、および、周波数に関する代表値およびデータの広がりに基づいてピッチパタンを生成するピッチパタン生成処理を実行させることを特徴とする。
本発明は、HMMを用いる場合に、違和感のない音声合成結果が得られるようなピッチパタンを生成することができる。
以下、本発明の実施形態を図面を参照して説明する。なお、本発明において、音素、音節、アクセント句、呼気段落、文等をピッチパタン補正単位(ピッチパタンを補正する単位)として扱うことができるが、以下に示す各実施形態では、アクセント句をピッチパタン補正単位として採用する場合を例にして説明する。
実施形態1.
図1は、本発明の第1の実施形態のピッチパタン生成装置を示すブロック図である。第1の実施形態のピッチパタン生成装置1は、状態情報記憶部2と、状態配列部3と、状態情報補正部4と、ピッチパタン生成部5とを備える。
図1は、本発明の第1の実施形態のピッチパタン生成装置を示すブロック図である。第1の実施形態のピッチパタン生成装置1は、状態情報記憶部2と、状態配列部3と、状態情報補正部4と、ピッチパタン生成部5とを備える。
状態情報記憶部2は、音素毎に予め学習されたHMM(隠れマルコフモデル)の状態を示す状態情報を記憶する記憶装置である。なお、日本語の場合、音素には母音および子音が含まれる。HMMの状態を音素毎に予め学習し、各状態の状態情報を状態情報記憶部2に記憶させておけばよい。本実施形態では、HMMで用いる各状態のモデルとして単一ガウス分布を採用し、各状態の状態情報として、代表値のパラメータ(統計量)をガウス分布の平均値で表現し、データの広がりのパラメータ(統計量)をガウス分布の分散で表現する場合を例にして説明する。個々の状態は、統計的にどの周波数が現れるかを、周波数に関する平均値および分散によって表している。そして、各音素の状態情報は、その音素の周波数に関する平均値および分散の値を含んでいる。ただし、1つの音素に対応する状態は、1つとは限らない。すなわち、1つの音素に関して、順次複数の状態が遷移していくこともあり、その場合、ただし、1つの音素に対応する状態は複数存在することになる。個々の音素に関していくつの状態を学習するのかは、学習時に定めておけばよい。例えば、短い音素に関しては学習する状態の数を少なくし、長母音のような長い音素に関しては学習する状態の数を多くしてもよい。あるいは、例えば、学習の処理量を抑えるために、各音素に対応する状態の数を共通としてもよい。1つの音素に対して、複数の状態情報が定められる場合には、状態の遷移順序を示す情報も状態情報に含めておけばよい。
また、HMMで他のモデルを採用することも可能である。そして、混合ガウス分布やガンマ分布においては、単一ガウス分布の場合と同様に、代表値のパラメータ(統計量)として平均値を用い、データの広がりのパラメータ(統計量)として分散を用いることができる。また、高次統計量では、代表値のパラメータとして平均値を用い、データの広がりのパラメータとして尖度を用いることができる。また、代表値のパラメータ(統計量)として、平均値の他に、最頻値や中央値を用いることも可能である。
例えば、“b”という音素を例にして説明する。また、本例では、音素毎に3つの状態を学習する場合を例にする。“b”に関する状態を学習する際には、“b”の音を含む種々の音声を収集する。そして、“b”の発音に関し、どの周波数がどの程度の頻度で現れているかを種々の音声から計測し、3つの状態を定める。そして、3つの状態それぞれについて、統計的にどの周波数が現れるかを、周波数に関する平均値および分散によって表し、その周波数に関する平均値および分散を含む状態情報を作成すればよい。他の音素に関しても、同様に状態情報を予め定めておけばよい。
ここで、「周波数に関する平均値および分散」とは、周波数に応じた値の平均値および分散であればよく、周波数自体の平均値や分散に限定されない。例えば、個々の状態情報は、「周波数に関する平均値および分散」として、周波数の対数値の平均値および分散を含んでいてもよい。以下の説明では、状態情報には、周波数の対数値の平均および分散が含まれている場合を例にして説明する。
状態配列部3および状態情報補正部4には、読み情報が入力される。
状態配列部3は、アクセント句の読みによって特定される音素に応じた状態の状態情報を状態情報記憶部2から読み込み、アクセント句の読みによって特定される音素の順に、音素の状態毎に状態情報を配列する。なお、1つの音素に対して、複数の状態が定められている場合、その音素における状態遷移順に状態情報を配列する。
図2は、アクセント句に含まれる音素毎の状態の遷移を示す模式図である。図2に示す例では、音素“k”の状態は、状態S1,S2,S3のように遷移する。“a”の状態は、状態S4,S5,S6のように遷移する。他の音素の状態も、それぞれ図2に示すように遷移する。このような各音素の状態S1〜S18のそれぞれの状態情報が状態情報記憶部2に記憶されているとする。状態配列部3は、例えば、日本語における「かれと(ka re to)」というアクセント句に関して、“k”,“a”,“r”,“e”,“t”,“o”という音素を特定し、個々の音素の状態S1〜S3、状態S4〜S6、状態S7〜S9、状態S10〜S12、状態S13〜S15、状態S16〜S18に対応する状態情報を状態情報記憶部2から読み込み、S1〜S18と同様の順番に配列する。この結果、S1〜S18における周波数の平均値および分散がそれぞれ配列されることになる。
状態配列部3は、このような状態情報の配列をアクセント句毎に行う。
ここで、読み情報について説明する。読み情報は、本発明のピッチパタン生成装置で生成されたピッチパタンを用いた音声合成結果として出力される音声(換言すれば、読み出される音声)を示す情報である。図3は、読み情報の例を示す。読み情報は、ピッチパタン補正単位毎(本例ではアクセント句毎)に読みを表す文字列を含む。図3に示す例では、アクセント句毎に、読みを表す文字列を記号“/”で区切っている。すなわち、図3に示す例では、“/”はアクセント句の境界を示す。
また、読み情報は、隣接するアクセント句間の韻律の関係性を制御するための韻律制御情報を含む。本発明では、韻律制御情報により、アクセント句に含まれる音素の周波数を制御する。図3に示す例では、アクセント句の境界に記述される“/”の次に記述された数値が韻律制御情報に該当する。以下、この韻律制御情報をタグと記す。なお、図3に示す例では、タグは、隣接するアクセント句の境界部分に記述されているが、タグの制御対象となるアクセント句が明確にされていれば、タグの記述態様は、図3に示す例に限定されない。タグに関しては、基準となる値(以下、単に基準値と記す。)が予め定められている。そして、タグの値と基準値との大小関係により、アクセント句の周波数に対する制御内容が定まる。タグの値が基準値よりも大きいということは、相対的に、先行アクセント句の周波数を上げ、後続アクセント句の周波数を下げるというアクセント句の関係性を表しているということができる。また、タグの値が基準値よりも小さいということは、相対的に、先行アクセント句の周波数を下げ、後続アクセント句の周波数を上げるというアクセント句の関係性を表しているということができる。
図4は、タグによるアクセント句の周波数制御の例を示す模式図である。以下、基準値が“2”である場合を例にして説明する。図4(a)は、タグの値が3であり、基準値“2”よりも大きい場合の例を示す。このように、タグの値が基準値よりも大きい場合、隣接する2つのアクセント句のうち、先のアクセント句(以下、先行アクセント句と記す。)の周波数を上げ、後のアクセント句(以下、後続アクセント句と記す。)の周波数を下げる。また、タグの値が基準値よりも大きいほど、先行アクセント句の周波数の上げ幅および後続アクセント句の周波数の下げ幅を大きくする。図4(b)は、タグの値が1であり、基準値“2”よりも小さい場合の例を示す。このように、タグの値が基準値よりも小さい場合、先行アクセント句の周波数を下げ、後続アクセント句の周波数を上げる。また、タグの値が基準値よりも小さいほど、先行アクセント句の周波数の下げ幅および後続アクセント句の周波数の上げ幅を大きくする。
図3に示すように、読み情報には、アクセント句毎の読みを表す文字列と、タグとが含まれるが、さらに別の情報が含まれていてもよい。図3では、アクセントの位置を示すアクセント情報も含む場合を例示している。また、図3では、アクセント情報を記号“’”で表し、その記号が記述された位置にアクセントがあることを表している。
読み情報は、例えば、音声合成の対象となる文字列(例えば、日本語における「彼と彼女の先生(ka re to ka no jo no se n se i)」)等に基づいて作成すればよい。この作成は、情報処理装置によって自動的に作成してもよく、あるいは、人手で作成してもよい。また、自動的に作成された読み情報に対して、人間が修正を加えてもよい。
本例では、ピッチパタン補正単位毎の読みを表す文字列とタグとを含む読み情報がピッチパタン生成装置に入力される場合を例にして説明する。ただし、ピッチパタン生成装置には、ピッチパタン補正単位毎の読みを表す情報と、タグ(韻律制御情報)とが他の態様で入力されてもよい。例えば、ピッチパタン補正単位毎の読みを表す情報と、タグとが別個に入力されてもよい。また、ピッチパタン補正単位毎の読みを表す情報やタグはバイナリデータであってもよい。また、ピッチパタン補正単位毎の読みを表す情報やタグは、GUIを介して入力されてもよい。
状態情報補正部4は、配列された状態情報に含まれる周波数の対数値の平均値および分散を補正する。状態情報補正部4は、この補正をアクセント句毎に行う。また、あるアクセント句の周波数の対数値(以下、周波数対数値と記す。)の平均値および分散を補正する際、状態情報補正部4は、その前のアクセント句との韻律の関係性を表すタグと、その次のアクセント句との韻律の関係性を表すタグに基づいて、状態情報毎に、平均値変換用の変換係数および分散変換用の変換係数を算出する。以下、着目しているアクセント句とその前のアクセント句との韻律の関係性を表すタグを前方タグと記す。また、着目しているアクセント句とその次のアクセント句との韻律の関係性を表すタグを後方タグと記す。
ここで、配列された状態情報の個数をn個とする。そして、態情報補正部4は、配列した状態情報に対してそれぞれ順番に1〜nの順番を表す値を割り当てる。さらに、状態情報補正部4は、1〜nを定義域とし、前方タグに基づいて定めた値から後方タグに基づいて定めた値までの範囲を値域とする単調関数を定める。そして、状態情報補正部4は、その単調関数が示す線上の値として、各状態情報の変換係数を定めればよい。単調関数は単調増加関数であっても単調減少関数であってもよい。単調増加関数となるか、単調減少関数となるかは、前方タグの値と後方タグの値との大小関係に依存する。また、単調関数として、広義の単調関数である単調非減少関数および単調非増加関数を用いてもよい。なお、平均値変換用の変換係数と分散変換用の変換係数とをそれぞれ別個に算出するので、状態情報補正部4は、上記のような単調関数を2種類定める。この場合、前方タグおよび後方タグに基づいて定める値域の範囲が異なる単調関数を2種類定めればよい。
状態情報補正部4は、状態情報毎に、算出した変換係数を用いて、状態情報に含まれている周波数対数値の平均値および分散をそれぞれ変換する。この変換は、周波数対数値の平均値および分散に対する補正であるということができる。
ピッチパタン生成部5は、状態情報補正部4によって変換された後の周波数対数値の平均値および分散に基づいて、ピッチパタンを生成する。このピッチパタンの生成は、公知の方法で行えばよい。
状態配列部3、状態情報補正部4およびピッチパタン生成部5は、例えば、ピッチパタン生成プログラムに従って動作するコンピュータのCPUによって実現される。この場合、例えば、コンピュータのプログラム記憶装置(図示略)がピッチパタン生成プログラムを記憶し、CPUがそのプログラムを読み込んで、そのプログラムに従って、状態配列部3、状態情報補正部4およびピッチパタン生成部5として動作すればよい。また、状態情報記憶部2、状態配列部3、状態情報補正部4およびピッチパタン生成部5がそれぞれ別のユニットで実現されていてもよい。
次に、動作について説明する。
図5は、第1の実施形態の処理経過の例を示すフローチャートである。状態情報記憶部2には、各音素の状態を示す状態情報が記憶されているものとする。また、状態配列部3および状態情報補正部4には、読み情報が入力されているものとする。
図5は、第1の実施形態の処理経過の例を示すフローチャートである。状態情報記憶部2には、各音素の状態を示す状態情報が記憶されているものとする。また、状態配列部3および状態情報補正部4には、読み情報が入力されているものとする。
なお、ピッチパタン生成装置は、以下に示すステップA1〜A8の処理を、読み情報に含まれる各アクセント句(各ピッチパタン補正単位)に対して実行する。以下、説明を簡単にするために、読み情報に含まれる1つのアクセント句(ピッチパタン補正単位)に着目してステップA1〜A8の処理を説明する。ピッチパタン生成装置は、同様の処理を、読み情報に含まれる他のアクセント句に対しても行えばよい。
また、以下の説明では、状態情報補正部4が定める単調関数が、直線を示す関数(すなわち、一次関数)である場合を例にする。
状態配列部3は、読み情報内の着目しているアクセント句の読みに応じた音素を特定し、その音素に対応する状態情報を状態情報記憶部2から読み出す。なお、例えば、読み情報が示す個々の文字と音素との関係を示す情報を予め状態配列部3が保持し、状態配列部3は、その情報に基づいて、アクセント句の読みに応じた音素を特定すればよい。そして、状態配列部3は、そのアクセント句の読みに応じた音素の順番に従って、音素の状態毎に状態情報を配列する(ステップA1)。1つの音素に対して複数の状態情報が定められている場合には、その音素に関する状態遷移の順番に従って、状態情報に遷移順序が定められている。その場合、状態配列部3は、その音素に関する状態情報をその遷移順序に従って配列すればよい。
次に、状態情報補正部4は、ステップA1で配列されたアクセント句の各状態情報の数と、そのアクセント句の前方タグおよび後方タグとに基づいて、平均値変換用の単調関数を定める(ステップA2)。図6は、各状態情報の周波数対数値の平均値、変換係数、および周波数対数値の平均値の変換後の値を模式的に示す説明図である。図6では、1つのアクセント句について配列した状態情報の数が6個である場合を例にしている。この場合、状態情報補正部4は、それぞれの状態情報に、遷移順に、1〜6の順番を表す値を割り当てる。
そして、状態情報補正部4は、1〜6を定義域とし、前方タグに基づいて定めた値から後方タグに基づいて定めた値までの範囲を値域とする単調関数(本例では一次関数)を定めればよい。前方タグに基づいて定めた値をa1とし、後方タグに基づいて定めた値をa2とする。図7(a)は、前方タグとa1の関係の例を示す説明図であり、図7(b)は、後方タグとa2の関係の例を示す説明図である。
図7(a)に示すように、状態情報補正部4は、前方タグの値が基準値より大きければ、a1を負の値として定める。前方タグの値が基準値より大きいほどa1の絶対を大きくすればよい。また、前方タグの値が基準値と等しければ、a1を0とする。また、前方タグの値が基準値未満であれば、a1を正の値として定める。前方タグの値が基準値より小さいほど、a1の絶対値を大きくすればよい。
また、図7(b)に示すように、状態情報補正部4は、後方タグの値が基準値より大きければ、a2を正の値をして定める。後方タグの値が基準値より大きいほどa2の絶対値を大きくすればよい。また、後方タグの値が基準値と等しければ、a2を0とする。また、後方タグの値が基準値未満であれば、a2を負の値として定める。後方タグの値が基準値より小さいほど、a2の絶対値を大きくすればよい。
状態情報補正部4は、例えば、上記のようにa1,a2を定め、1〜6を定義域とし、a1〜a2を値域とする単調関数(本例では一次関数)を定める。
次に、状態情報補正部4は、ステップA2で定めた単調関数が示す線上(図6に示す例では、一次関数が示す直線上)の値として、状態情報毎に、平均値変換用の変換係数を求める。換言すれば、状態情報補正部4は、ステップA2で求めた単調関数の変数に、各状態情報に割り当てた値(遷移順を表す値)を代入することによって、状態情報毎の変換係数(平均値変換用の変換係数)を算出する(ステップA3)。例えば、図6に示す例では、1番目の状態情報対して求める変換係数はa1となり、6番目の状態情報に対して求める変換係数はa2となる。また、2番目の状態情報の変換係数は、ステップA2で求めた単調関数の変数に2を代入して求められる。他の状態情報の変換係数も同様に求められる。
次に、状態情報補正部4は、状態情報に含まれている周波数対数値の平均値を、ステップA3で求めた平均値変換用の変換係数を用いて変換する(ステップA4)。例えば、状態情報補正部4は、状態情報に含まれている周波数対数値の平均値に、その状態情報に対して求めた変換係数を加算し、その加算結果を、変換後の平均値とすればよい。そして、状態情報補正部4は、配列された状態情報毎にこの処理を行う。図6の下段は、周波数対数値の平均値の変換後の値を模式的に示している。なお、本例では、変換係数の加算により周波数対数値の平均値を変換する場合を示したが、変換係数を用いた変換を他の演算で行ってもよい。ただし、変換係数の絶対値が大きいほど、変換前後の平均値の差が大きくなるという関係が保たれる演算によって変換することが好ましい。
次に、状態情報補正部4は、ステップA1で配列された1つのアクセント句の各状態情報の数と、そのアクセント句の前方タグおよび後方タグとに基づいて、分散変換用の単調関数を定める(ステップA5)。図8は、各状態情報の周波数対数値の分散、変換係数、および変換後の分散を模式的に示す説明図である。図8においても、図6と同様に状態情報の数が6個である場合を例示している。状態情報補正部4は、それぞれの状態情報に、遷移順に、1〜6の順番を表す値を割り当てている。
状態情報補正部4は、1〜6を定義域とし、前方タグに基づいて定めた値から後方タグに基づいて定めた値までの範囲を値域とする単調関数(本例では一次関数)を定めればよい。前方タグに基づいて定めた値をb1とし、後方タグについて定めた値をb2とする。値域を規定するb1,b2の値は、a1,a2と同様に定めればよい。ただし、分散変換用の単調関数を定める際に用いるb1,b2の値と、平均値変換用の単調関数を定める際に用いるa1,a2の値とは、定め方は同様であるが、それぞれ独立して求めるので、b1,b2はそれぞれ、a1,a2とは異なる値となる。
次に、状態情報補正部4は、ステップA5で定めた単調関数が示す線上(図8に示す例では、一次関数が示す直線上)の値として、状態情報毎に、分散変換用の変換係数を求める。換言すれば、状態情報補正部4は、ステップA5で定めた単調関数の変数に、各状態情報に割り当てた値(遷移順を表す値)を代入することによって、状態情報毎の変換係数(分散変換用の変換係数)を算出する(ステップA6)。例えば、図8に示す例では、1番目の状態情報対して求める変換係数はb1となり、6番目の状態情報に対して求める変換係数はb2となる。また、2番目の状態情報の変換係数は、ステップA5で求めた単調関数の変数に2を代入して求められる。他の状態情報の変換係数も同様に求められる。
次に、状態情報補正部4は、状態情報に含まれている周波数対数値の分散を、ステップA6で求めた分散変換用の変換係数を用いて変換する(ステップA7)。例えば、状態情報補正部4は、状態情報に含まれている周波数対数値の分散に、その状態情報に対して求めた変換係数を加算し、その加算結果を、変換後の分散とすればよい。そして、そして、状態情報補正部4は、配列された状態情報毎にこの処理を行う。図8の下段は、周波数対数値の分散の変換後の値を模式的に示している。なお、本例では、変換係数の加算により周波数対数値の分散を変換する場合を示したが、変換係数を用いた変換を他の演算で行ってもよい。ただし、変換係数の絶対値が大きいほど、変換前後の分散の差が大きくなるという関係が保たれる演算によって変換することが好ましい。
次に、ピッチパタン生成部5は、ステップA4,A7での変換処理によって求めた変換後の平均値および分散を用いて、ピッチパタンを生成する(ステップA8)。ピッチパタン生成部5は、公知の方法でピッチパタンの生成を生成すればよい。以下、ピッチパタンの生成の例を示す。
ピッチパタン生成部5は、予め定めた窓関数を用いて、ピッチパタンを計算すればよい。ピッチパタン生成部5は、以下の式(1)をピッチパタンCに関して解くことによって、ピッチパタンを計算すればよい。
WTU−1WC=WTU−1MT 式(1)
ただし、Cはピッチパタンであり、以下の式(2)のように表される。式(2)において、c1,c2,・・・,cTは、ピッチパタンを示す特徴量である。
C:=[c1,c2,・・・,cT]T 式(2)
添え字として示したTは、1つのアクセント句に関して配列した状態情報の数(総フレーム数)である。後述の式(3)〜式(5)において添え字として示すTも同様である。
また、Mは、補正後の平均値の各値を成分とするベクトルの転置ベクトルであり、以下の式(3)のように表される。式(3)において、μ’q1,μ’q2,・・・,μ’qTは、変換後の平均値である。
M:=[μ’q1,μ’q2,・・・,μ’qT]T 式(3)
Uは対角化した共分散行列であり、変換後の分散を対角成分として持つ。Uは、以下の式(4)のように表される。式(4)において、Uq1,Uq2,・・・,UqTは、変換後の分散である。
U:=diag[Uq1,Uq2,・・・,UqT]T 式(4)
また、窓関数は以下の式(5)のように表される行列Wとして予め定めておけばよい。
W:=[w1,w2,・・・,wT]T 式(5)
なお、式(5)において、任意のwtは、以下の式(6)ように表されるベクトルとして定めればよい。
wt:=[wt (0),wt (1),wt (2)] 式(6)
なお、上記のように、式(3)に示すMの成分は変換後の平均値であり、式(4)に示すUの対角成分は変換後の分散である。これらの平均値および分散として、周波数対数値の平均値および分散を用いても、あるいは、周波数自体の平均値および分散を用いてもよい。本例では、周波数対数値の平均値および分散を求めているので、その値を用いてMやUを定めればよい。また、周波数自体の平均値および分散を変換する場合には、周波数自体の平均値および分散(変換後の平均値および分散)を用いてMやUを定めればよい。
本実施形態によれば、単調関数が示す線上の値として変換係数を定め、その変換係数により変換した平均値や分散を用いてピッチパタンを生成する。その結果、ピッチパタンがアクセント句毎に滑らかに繋がり、そのピッチパタンを用いた音声合成の結果、違和感のない音声を得ることができる。
また、分散に関しても変換を行い、変換による平均値の変動が大きくなる場合には、分散も大きくすることができる。そのように分散を大きくすることで、ピッチパタンをより滑らかに繋げることができる。
また、上記の例では、一次関数が示す直線上の値として変換係数を定め、周波数対数値の平均値および分散について変換を行う場合を示した。例えば、音楽の音階は実周波数上で等比数列になるように定義されていて、周波数の対数値をとると直線上に並ぶようになる。従って、上記のように処理を行うことで、聴感上、違和感がない音声が得られるという効果をより高めることができる。
ただし、変換係数を定めるための関数は単調関数であればよい。また、周波数対数値の平均値および分散ではなく、実周波数の平均値および分散を対象にして、上記と同様の処理を行ってもよい。この場合であっても、違和感のない音声が得られるようなピッチパタンを生成することができる。
また、上記の例では、ステップA2およびステップA5において、単調関数の値域を規定するa1,a2(図6参照)やb1,b2(図8参照)を求める際に、前方タグおよび後方タグを用いたが、前方タグおよび後方タグの一方だけを用いて単調関数の値域を規定してもよい。
例えば、後方タグを用いて値域を規定するとする。この場合、状態情報補正部4は、ステップA2においてa1=0とすればよい。そして、状態情報補正部4は、後方タグの値が基準値より大きければa2を正の値とし、後方タグの値が基準値より大きいほどa2の絶対値が大きくなるようにa2を定めればよい。また、後方タグの値が基準値と等しければa2=0とすればよい。また、後方タグの値が基準値未満であればa2を負の値とし、後方タグの値が基準値より小さいほどa2の絶対値が大きくなるようにa2を定めればよい。ステップA5においても、状態情報補正部4は、b1=0とし、上記と同様に、後方タグの値に応じてb2を定めればよい。
また、例えば、前方タグを用いて値域を規定するとする。この場合、状態情報補正部4は、ステップA2においてa2=0とすればよい。そして、状態情報補正部4は、前方タグの値が基準値よりも大きければa1を負の値とし、前方タグの値が基準値より大きいほどa1の絶対値が大きくなるようにa1を定めればよい。また、前方タグの値が基準値と等しければa1=0とすればよい。また、前方タグの値が基準値より小さければa1を正の値とし、前方タグの値が基準値より小さいほどa1の絶対値が大きくなるようにa1を定めればよい。ステップA5においても、状態情報補正部4は、b2=0とし、上記と同様に、前方タグの値に応じてb1を定めればよい。
また、第1の実施形態において、平均値のみを変換し、分散に関しては変換を行わなくてもよい。すなわち、状態情報補正部4は、ステップA5〜A7の処理を実行しなくてもよい。この場合、ピッチパタン生成部5は、ステップA8において、変換後の分散の代わりに、変換を行っていない分散をそのまま用いてピッチパタンを生成すればよい。ステップA8では、変換を行っていない分散をそのまま用いるという点以外は、上述のステップA8と同様である。
実施形態2.
HMMの状態は、直ちに次の状態に遷移するとは限らず、自己遷移する場合もある。HMMでは、状態が自己遷移するか次の状態に遷移するかを一定周期で決定する。また、各音素の状態を学習する際には、各音素に対応する個々の状態に関して、どれだけその状態が継続するかに関しても学習する。1つの状態が継続する時間の長さを継続時間長と記す。図9は、1つの音素について学習された状態と、その状態の継続時間長の例を示す説明図である。図9に示すように、例えば、音素“k”の状態について学習した結果、音素“k”に対応する状態がS1〜S3であったとする。また、状態S1に関する継続時間長は、周期(自己遷移するか次の状態に遷移するかを決定する周期)の3倍の時間であったとする。また、状態S2,S3の継続時間長も、それぞれ、周期の7倍、5倍であったとする。このように、音素について学習された状態それぞれに関して、継続時間長も学習すると、継続時間長は、自己遷移するか次の状態に遷移するかを決定する周期の整数倍として得られる。以下、「自己遷移するか次の状態に遷移するかを決定する周期」を単に周期と記載する。
HMMの状態は、直ちに次の状態に遷移するとは限らず、自己遷移する場合もある。HMMでは、状態が自己遷移するか次の状態に遷移するかを一定周期で決定する。また、各音素の状態を学習する際には、各音素に対応する個々の状態に関して、どれだけその状態が継続するかに関しても学習する。1つの状態が継続する時間の長さを継続時間長と記す。図9は、1つの音素について学習された状態と、その状態の継続時間長の例を示す説明図である。図9に示すように、例えば、音素“k”の状態について学習した結果、音素“k”に対応する状態がS1〜S3であったとする。また、状態S1に関する継続時間長は、周期(自己遷移するか次の状態に遷移するかを決定する周期)の3倍の時間であったとする。また、状態S2,S3の継続時間長も、それぞれ、周期の7倍、5倍であったとする。このように、音素について学習された状態それぞれに関して、継続時間長も学習すると、継続時間長は、自己遷移するか次の状態に遷移するかを決定する周期の整数倍として得られる。以下、「自己遷移するか次の状態に遷移するかを決定する周期」を単に周期と記載する。
第2の実施形態のピッチパタン生成装置は、個々の音素の状態毎に予め学習された継続時間長も考慮して単調関数を定め、その単調関数から変換係数を求める。そして、周波数に関する平均値および分散を変換する。なお、周期毎に変換係数を求めてもよいが、以下に示す説明では、状態毎に変換係数を求める場合を例にする。
第2の実施形態においても、第1の実施形態と同様に、「周波数に関する平均値および分散」として、周波数対数値の平均値および分散を用いる場合を例にする。
図10は、本発明の第2の実施形態のピッチパタン生成装置を示すブロック図である。第1の実施形態と同様の構成要素については、図1と同一の符号を付す。第2の実施形態のピッチパタン生成装置10は、状態情報記憶部2と、状態配列部13と、状態情報補正部14と、ピッチパタン生成部5とを備える。
状態情報記憶部2は、第1の実施形態と同様に、音素毎に予め学習された各音素の状態(HMMの状態)を示す状態情報を記憶する。
状態配列部13および状態情報補正部14には読み情報が入力される。さらに、本実施形態では、状態配列部13に、各状態に関して予め学習された継続時間長も入力される。
状態配列部13は、読み情報によって特定される音素の状態に応じた状態情報を状態情報記憶部2から読み込み、読み情報によって特定される音素の順に、音素の状態毎に状態情報を配列する。1つの音素に対して、複数の状態情報が定められている場合、その音素における状態遷移順に状態情報を配列する。
ただし、第2の実施形態では、状態配列部13は、読み情報によって特定される音素に応じた状態の状態情報を、その状態の継続時間長分だけ繰り返し配列する。例えば、図9に示す周期をtとする。そして、状態S1の継続時間長が3tであるとする。この場合、継続時間長3tを周期tで除算した数(本例では“3”)だけ、その状態S1の状態情報を連続して繰り返し配列する。そして、次の状態S2の状態情報を配列する。図9に示す例では、状態S2の継続時間長は7tであり、この継続時間長を周期tで除算した値は“7”であるので、状態S2の状態情報を7だけ連続して繰り返し配列する。以下、状態配列部13は、同様に、状態S3の状態情報についても配列し、さらに、同様に、以降の音素の各状態情報についても同様に配列する。状態配列部13は、アクセント句毎にこの処理を行う。
なお、状態配列部13には、各状態情報の継続時間長が入力されるので、状態配列部13は、その継続時間長を参照すればよい。また、ある状態の継続時間長を周期tで除算した値は、その状態が繰り返される数を意味する。
状態情報補正部14は、配列された状態情報に含まれる周波数対数値の平均値および分散を補正する。状態情報補正部14は、各アクセント句に関してこの補正を行う。状態情報補正部14は、着目しているアクセント句について、前方タグと後方タグとに基づいて、状態情報毎に、平均値変換用の変換係数および分散変換用の変換係数を算出する。
状態情報補正部14は、それぞれの状態情報に、配列順を表す値を割り当てる。ここでは、配列された状態情報の数がnであるとし、それぞれの状態情報に1〜nの値を割り当てる。各状態情報に順番を表す値を割り当てる動作は、第1の実施形態と同様である。ただし、第2の実施形態では、個々の状態の状態情報が、その状態の継続時間長分だけ連続して配列されている。このように連続して配列される同じ状態情報に対しても、状態情報補正部14は、それぞれ順番を示す値を割り当てる。
また、状態情報補正部14は、第1の実施形態における状態情報補正部4と同様に、平均値変換用の単調関数の値域を規定する値a1,a2を決定する。そして、状態情報補正部14は、1〜nを定義域とし、a1〜a2を値域とする単調関数を定める。そして、状態情報補正部14は、その単調関数が示す線上の値として、状態毎に平均値変換用の変換係数を求める。各状態の継続時間長は、周期tの整数倍である。状態情報補正部14は、着目している状態に関して、その状態の継続時間長の中央に該当する周期を特定し、その期間に対応する状態情報に割り当てた値を、単調関数に代入することにより、その状態における変換係数を求めればよい。状態情報補正部14は、その変換係数を用いて、その状態の状態情報に含まれている平均値を変換する。
また、状態情報補正部14は、第1の実施形態における状態情報補正部4と同様に、分散変換用の単調関数の値域を規定する値b1,b2を決定する。そして、状態情報補正部14は、1〜nを定義域とし、b1〜b2を値域とする単調関数を定める。そして、状態情報補正部14は、その単調関数が示す線上の値として、状態毎に分散変換用の変換係数を定める。上記の場合と同様に、状態情報補正部14は、着目している状態に関して、その状態の継続時間長の中央に該当する周期を特定し、その期間に対応する状態情報に割り当てた値を、単調関数に代入することにより、その状態における変換係数を求めればよい。状態情報補正部14は、その変換係数を用いて、その状態の状態情報に含まれている分散を変換する。
なお、ある状態の継続時間長が周期tのh倍であるとする。hが奇数であるならば、状態情報補正部14は、その状態に関して、連続するh個の状態情報のうち、(h+1)/2番目の状態情報を特定すればよい。この状態情報が、継続時間長の中央に該当する周期に対応する状態情報である。また、hが偶数であるならば、状態情報補正部14は、その状態に関して、連続するh個の状態情報のうち、(h/2)+1番目の状態情報を特定すればよい。あるいは、(h/2)−1番目の状態情報を特定してもよい。この状態情報が、継続時間長の中央に該当する周期に対応する状態情報であると言える。
ピッチパタン生成部5は、第1の実施形態と同様に、変換後の平均値および分散に基づいてピッチパタンを生成する。
状態配列部13、状態情報補正部14およびピッチパタン生成部5は、例えば、ピッチパタン生成プログラムに従って動作するコンピュータのCPUによって実現される。この場合、例えば、コンピュータのプログラム記憶装置(図示略)がピッチパタン生成プログラムを記憶し、CPUがそのプログラムを読み込んで、そのプログラムに従って、状態配列部13、状態情報補正部14およびピッチパタン生成部5として動作すればよい。また、状態情報記憶部2、状態配列部13、状態情報補正部14およびピッチパタン生成部5がそれぞれ別のユニットで実現されていてもよい。
次に、動作について説明する。
図11は、第2の実施形態の処理経過の例を示すフローチャートである。なお、第1の実施形態と同様の動作に関しては、詳細な説明を省略する。
図11は、第2の実施形態の処理経過の例を示すフローチャートである。なお、第1の実施形態と同様の動作に関しては、詳細な説明を省略する。
状態情報記憶部2には、各音素の状態を示す状態情報が記憶されているものとする。また、状態配列部13および状態情報補正部14には、読み情報が入力されているものとする。状態配列部13には、予め学習されている各状態の継続時間長の情報も入力されているものとする。
第1の実施形態と同様に、ピッチパタン生成装置は、以下に示すステップB1〜B8の処理を、読み情報に含まれる各アクセント句(各ピッチパタン補正単位)に対して実行する。以下、説明を簡単にするために、読み情報に含まれる1つのアクセント句(ピッチパタン補正単位)に着目してステップB1〜B8の処理を説明する。ピッチパタン生成装置は、同様の処理を、読み情報に含まれる他のアクセント句に対しても行えばよい。
また、以下の説明では、状態情報補正部14が単調関数として一次関数を定める場合を例にする。
状態配列部13は、読み情報内の着目しているアクセント句の読みに応じた音素を特定し、その音素に対応する状態情報を状態情報記憶部2から読み出す。そして、状態配列部13は、そのアクセント句の読みに応じた音素の順番に従うとともに、各音素の状態の継続時間長に応じて、状態情報を配列する(ステップB1)。例えば、1番目の音素に対応する1番目の状態の継続時間長が、周期tのk倍であるとする。この場合、状態配列部13は、その状態の状態情報をk個連続して配列する。その音素の2番目以降の各状態情報に関しても同様に配列する。さらに、2番目以降の音素に対応する各情報の状態情報についても同様に配列する。
次に、状態情報補正部14は、ステップB1で配列されたアクセント句の各状態情報の数と、そのアクセント句の前方タグおよび後方タグとに基づいて、平均値変換用の単調関数を定める(ステップB2)。図12は、各状態情報の周波数対数値の平均値、変換係数、および周波数対数値の平均値の変換後の値を模式的に示す説明図である。図12では、状態の数が“8”であり、状態毎の継続時間長を考慮して状態情報を配列した結果、配列された状態情報の数が40個となった場合を示している。この場合、状態情報補正部14は、それぞれの状態情報に、順番に、1〜40の順番を表す値を割り当てる。
また、状態情報補正部14は、単調関数(本例では一次関数)の値域を規定する値a1,a2を決定する。a1,a2を決定する処理は、第1の実施形態と同様である。そして、状態情報補正部14は、1〜40を定義域とし、a1〜a2を値域とする単調関数(一次関数)を定める。
次に、状態情報補正部14は、各状態の継続時間長における中央の周期に該当する期間を特定し、単調関数が示す線上の値となる平均値変換用の変換係数を定める(ステップB3)。具体的には、各状態の継続時間長における中央の周期に該当する期間を特定し、その期間に対応する状態情報に割り当てた値を判定する。状態情報補正部14は、その値を単調関数の変数に代入することによって、変換係数を算出する。
例えば、図12に示す例において、1番目の状態に関しては、40個の状態情報のうち、1〜4番目の4つの状態情報が配列されている。状態情報補正部14は、この1番目の状態の継続時間長における中央の周期に該当する期間として、(4/2)+1=3番目の周期を特定する。そして、この周期に対応する状態情報に割り当てた値(順番を示す値)は3である。状態情報補正部14は、この値を単調関数の変数に代入することによって、変換係数を算出すればよい。この変換係数は、1番目の状態の継続時間長に応じて配列された4つの状態情報に含まれる平均値を変換するために用いられる。
また、例えば、図12に示す例において、3番目の状態に関しては、40個の状態情報のうち、11〜17番目の7つの状態情報が配列されている。状態情報補正部14は、この3番目の状態の継続時間長における中央の周期に該当する期間として、(7+1)/2=4番目の周期を特定する。そして、3番目の状態に関しては11〜17番目の状態情報が対応していて、その中で4番目の周期に対応する状態情報は、40個の状態情報のうち、14番目である。従って、この状態情報に割り当てられている値は14であり、状態情報補正部14は、この値を単調関数の変数に代入することによって、変換係数を算出すればよい。この変換係数は、3番目の状態の継続時間長に応じて配列された7つの状態情報に含まれる平均値を変換するために用いられる。
ここでは、図12に示す1番目と3番目の状態を例にして説明したが、状態情報補正部14は、他の状態に関しても、同様に変換関係数を算出すればよい。
次に、状態情報補正部14は、配列された各状態情報に含まれている周波数対数値の平均値を、ステップB3で求めた平均値変換用の変換係数を用いて変換する(ステップB4)。ステップB4では、1つの状態の継続時間長に応じて配列された各状態情報に対して、その状態に関して求めた変換係数を用いて、平均値の変換処理を行う。例えば、図12に示す1番目の状態に関しては、上記のように、3を単調関数に代入することによって変換係数が算出されている。1番目の状態の継続時間長に応じて配列された4つの状態情報に含まれる周波数対数値の平均値に対しては、状態情報補正部14は、この変換係数を用いて変換を行う。このような変換処理を、状態情報補正部14は、状態毎に行えばよい。また、変換の演算は第1の実施形態と同様であり、例えば、平均値に変換係数を加算することよって平均値を変換すればよい。ただし、変換の演算は加算に限定されない。
次に、状態情報補正部14は、ステップB1で配列されたアクセント句の各状態情報の数と、そのアクセント句の前方タグおよび後方タグとに基づいて、分散変換用の単調関数を定める(ステップB5)。図13は、各状態情報の周波数対数値の分散、変換係数、および周波数対数値の分散の変換後の値を模式的に示す説明図である。図12に示す場合と同様に、状態の数が“8”であり、配列された状態情報の数が40個である場合を示している。状態情報補正部14は、それぞれの状態情報に、順番に、1〜40の順番を表す値を割り当てている。
状態情報補正部14は、単調関数(本例では一次関数)の値域を規定する値b1,b2を決定する。b1,b2を決定する処理は、第1の実施形態と同様である。そして、状態情報補正部14は、1〜40を定義域とし、b1〜b2を値域とする単調関数(一次関数)を定める。
次に、状態情報補正部14は、各状態の継続時間長における中央の周期に該当する期間を特定し、単調関数が示す線上の値となる分散変換用の変換係数を定める(ステップB6)。具体的には、各状態の継続時間長における中央の周期に該当する期間を特定し、その期間に対応する状態情報に割り当てた値を判定する。状態情報補正部14は、その値を単調関数の変数に代入することによって、変換係数を算出する。すなわち、ステップB6における変換係数の算出方法は、ステップB3における変換係数の算出方法と同様である。ただし、ステップB6では、状態情報補正部14は、ステップB5で求めた単調関数を用いるので、変換係数の値自体は、ステップB3における算出結果と異なる。
状態情報補正部14は、ステップB6において、状態毎に、分散変換用の変換係数を定める。
次に、状態情報補正部14は、配列された各状態情報に含まれている周波数対数値の分散を、ステップB6で求めた分散変換用の変換係数を用いて変換する(ステップB7)。ステップB7の処理は、変換の対象が分散であることと、ステップB6で算出した変換係数を用いる点以外は、ステップB4の処理と同様である。例えば、図13に示す1番目の状態の継続時間長に応じて配列された4つの状態情報に含まれる周波数対数値の分散に対しては、1番目の状態に関して算出した変換係数を用いて変換する。状態情報補正部14は、このような変換を状態毎に行う。また、変換の演算は、第1の実施形態と同様であり、例えば、分散に変換係数を加算することよって、平均値を変換すればよい。ただし、変換の演算は、加算に限定されない。
次に、ピッチパタン生成部5は、B4,B7での変換処理によって求めた変換後の平均値および分散を用いて、ピッチパタンを生成する(ステップB8)。ステップB8の処理は、第1の実施形態におけるステップA8の処理と同様である。
第2の実施形態においても、第1の実施形態と同様の効果が得られる。特に、第2の実施形態では、状態毎の継続時間長を考慮して状態情報を配列し、その状態情報に含まれる平均値および分散を変換している。従って、生成したピッチパタンを用いた音声合成の結果、違和感のない音声を得ることができるという効果をより高めることができる。
また、第1の実施形態で説明した種々の変形例は、第2の実施形態にも適用可能である。例えば、変換係数を定めるための関数は単調関数であればよく、一次関数に限定されない。また、周波数対数値の平均値および分散ではなく、周波数自体の平均値および分散を対象にして、上記と同様の処理を行ってもよい。
また、ステップB2およびステップB5において、前方タグおよび後方タグの一方だけを用いて単調関数の値域を規定してもよい。
また、第2の実施形態において、平均値のみを変換し、分散に関しては変換を行わなくてもよい。すなわち、状態情報補正部14は、ステップB5〜B7の処理を実行しなくてもよい。この場合、ピッチパタン生成部5は、ステップB8において、変換後の分散の代わりに、変換を行っていない分散をそのまま用いてピッチパタンを生成すればよい。
また、上記の第2の実施形態では、単調関数に基づいて分散変換用の変換係数を求める場合を示したが、他の方法で、分散変換用の変換係数を求めてもよい。以下、第2の実施形態の変形例として、単調関数を用いずに分散変換用の変換係数を定める態様について説明する。本変形例において、ステップB1〜B4の処理は、既に説明した処理と同様である。また、本変形例では、予め学習された継続時間長の情報が状態情報補正部14にも入力される。
本変形例では、状態情報補正部14は、状態毎に、継続時間長の長さに応じて分散変換用の変換係数を求める。図14は、継続時間長の長さに応じて定められる変換係数を模式的に示す説明図である。状態情報補正部14は、継続時間長の長さが長いほど変換係数の値を大きく定め、継続時間長の長さが短いほど変換係数の値を小さく定める。図14に示す例では、8個の状態を示している。各状態の継続時間長は、1番目の状態から順に、4t(4周期)、6t、7t、4t、6t、5t、5t、3tである。継続時間長が最大となっているのは3番目の状態であり、継続時間長は7tである。よって、状態情報補正部14は、8個の状態の中で、3番目の状態に関する変換係数を最も大きく定める(図14参照)。また、継続時間長が最小となっているのは8番目の状態であり、継続時間長は3tである。よって、状態情報補正部14は、8個の状態の中で、8番目の状態に関する変換係数を最も小さく定める(図14参照)。状態情報補正部14は、他の状態に関しても、継続時間長の長さに応じて分散変換用の変換係数を定める。継続時間長が等しい状態に関しては、同一の変換係数を定める。例えば、図14に示す例では、継続時間長が4tで共通となっている1番目と4番目の状態に対して、状態情報補正部14は、同一の変換係数を定める。2番目と5番目の状態や、6番目と7番目の状態に関しても同様である。
本変形例では、図11に示すステップB5,B6の代わりに、継続時間長の長さが長いほど変換係数の値を大きく定め、継続時間長の長さが短いほど変換係数の値を小さく定めるという処理を行えばよい。そして、その後、ステップB7,B8を実行すればよい。
本変形例によれば、継続時間長が長い状態に関しては、分散を大きくすることができるので、ピッチパタンの繋がりを滑らかにすることができる。
実施形態3.
第1の実施形態および第2の実施形態のピッチパタン生成装置は、いずれも、着目したアクセント句に関して状態情報を配列し、各状態情報に含まれている平均値や分散(周波数に関する平均値や分散)を変換する。第3の実施形態のピッチパタン生成装置は、状態情報を配列し、配列した状態情報を所定の基準で前側と後側に分ける。そして、第3の実施形態のピッチパタン生成装置は、配列された状態情報のうち、前側の配列情報、または、後側の配列情報、あるいはその両方を対象にして、周波数に関する平均値や分散を変換する。なお、ピッチパタン生成装置は、配列した状態情報のうち、前側の状態情報および後側の状態情報の両方に対して平均値等を変換する場合、前側の状態情報および後側の状態情報に対して、それぞれ単調関数を定め、変換係数を決定する。
第1の実施形態および第2の実施形態のピッチパタン生成装置は、いずれも、着目したアクセント句に関して状態情報を配列し、各状態情報に含まれている平均値や分散(周波数に関する平均値や分散)を変換する。第3の実施形態のピッチパタン生成装置は、状態情報を配列し、配列した状態情報を所定の基準で前側と後側に分ける。そして、第3の実施形態のピッチパタン生成装置は、配列された状態情報のうち、前側の配列情報、または、後側の配列情報、あるいはその両方を対象にして、周波数に関する平均値や分散を変換する。なお、ピッチパタン生成装置は、配列した状態情報のうち、前側の状態情報および後側の状態情報の両方に対して平均値等を変換する場合、前側の状態情報および後側の状態情報に対して、それぞれ単調関数を定め、変換係数を決定する。
第3の実施形態の効果は、ピッチパタン補正単位がアクセント句である場合に特に大きい。従って、第3の実施形態では、ピッチパタン補正単位としてアクセント句を採用することが好ましいが、音素、音節、呼気段落、文等をピッチパタン補正単位としてもよい。
以下、図1に示すブロック図を参照して、第3の実施形態のピッチパタン生成装置の例について説明する。状態情報補正部4以外の動作は、第1の実施形態と同様である。また、本実施形態でも、「周波数に関する平均値および分散」として、周波数対数値の平均値および分散を用いる場合を例にする。
図15は、状態情報補正部4の処理の例を模式的に示す説明図である。以下の説明では、配列した状態情報を所定の基準で前側と後側に分け、後側の状態情報に含まれる平均値を変換する場合を例にする。状態情報補正部4は、状態配列部3によって配列された状態情報を、所定の基準で前側と後側に分ける。本例では、周波数対数値の平均値が最も高い状態の状態情報を基準として、前側と後側に分ける場合を例にする。図15に示す例では、左から3番目に示す状態で、周波数対数値の平均値が最も高い。従って、状態情報補正部4は、3番目に示す状態の状態情報を基準として、前側と後側に分ける。例えば、状態情報補正部4は、1番目および2番目の状態の状態情報を前側とし、3番目から6番目までの各状態の状態情報を後側とする。なお、基準とした状態情報(本例では3番目の状態の状態情報)は、前側に含めても後側に含めてもよい。
なお、上記の例では、周波数対数値の平均値が最も高い状態の状態情報を基準として、前側の状態情報と後側の状態情報とに分ける場合を示したが、配列された状態情報を前側と後側に分ける基準は、上記の例に限定されない。他の例については後述する。
そして、状態情報補正部4は、後側の状態情報を対象にして、変換係数を算出するための単調関数を定める。状態情報補正部4は、配列された各状態情報に、順番を示す値を割り当てる。この動作は第1の実施形態と同様である。そして、後側に該当する状態情報に割り当てた値の範囲を、単調関数の定義域とする。図15に示す例では、3〜6が単調関数の定義域となる。また、後側の状態情報に含まれる平均値を変換対象とする場合、a1=0とする。a2に関しては、既に説明した方法と同様に後方タグを用いて定めればよい。そして、状態情報補正部4は、0(=a1)からa2までを値域とする。状態情報補正部4は、3〜6を定義域とし、0〜a2を値域とする単調関数を定める。
そして、状態情報補正部4は、その単調関数が示す線上の値として、後側に振り分けた状態情報毎に、平均値変換用の変換係数を求める。具体的には、単調関数の変数に、後側に該当する各状態情報に割り当てた値(本例では、3,4,5,6)を代入することによって、平均値変換用の変換係数を算出する。
さらに、状態情報補正部4は、その変換係数を用いて、後側に振り分けた状態情報毎に周波数対数値の平均値を変換する(図15参照)。また、前側に振り分けた状態情報に関しては、周波数対数値の平均値を変換しない(図15参照)。
図16は、第3の実施形態の処理経過の例を示すフローチャートである。本実施形態においても、ピッチパタン生成装置は、以下に示すステップC1〜C8の処理を、読み情報に含まれる各アクセント句(各ピッチパタン補正単位)に対して実行する。以下、説明を簡単にするために、読み情報に含まれる1つのアクセント句(ピッチパタン補正単位)に着目してステップC1〜C8の処理を説明する。ピッチパタン生成装置は、同様の処理を、読み情報に含まれる他のアクセント句に対しても行えばよい。また、他の実施形態と同様の処理に関しては、適宜、省略する。
状態配列部3は、読み情報内の着目しているアクセント句の読みに応じた音素を特定し、その音素に対応する状態情報を状態情報記憶部2から読み出す。状態配列部3は、そのアクセント句の読みに応じた音素の順番に従って、状態情報を配列する(ステップC1)。本例におけるステップC1は、ステップA1(図5参照)と同様である。
次に、状態情報補正部4は、配列された状態情報を前側と後側とに分ける。そして、後方タグに基づいて、後側の状態情報に対する平均値変換用の単調関数を定める(ステップC2)。ステップC2では、状態情報補正部4は、配列された状態情報に対して、順番を表す値を割り当て、後側の状態情報に割り当てた値の範囲を単調関数の定義域とする。前述のように、図15に示す例では、定義域は3〜6となる。また、値域を規定するa1,a2を定める。具体的には、a1=0とする。a2に関しては、既に説明した方法と同様に後方タグを用いて定めればよい。この結果、値域は0〜a2となる。状態情報補正部4は、定めた定義域および値域により決定される単調関数を定める。なお、単調関数は、他の実施形態と同様に、一次関数であってもよく、あるいは、一次関数以外の単調関数であってもよい。後述のステップC5で求める単調関数に関しても同様である。
そして、状態情報補正部4は、単調関数が示す線上(図15に示す例では、一次関数が示す直線上)の値として、後側に該当する状態情報毎に平均値変換用の変換係数を算出する(ステップC3)。具体的には、状態情報補正部4は、後側に該当する各状態情報に割り当てた値を単調関数の変数に代入することによって、後側に該当する状態情報毎に平均値変換用の変換係数を算出する。また、本例では、状態情報補正部4は、前側に振り分けた状態情報に関しては変換係数を求めない。
次に、状態情報補正部4は、後側に該当する状態情報毎に、ステップC3で求めた変換係数を用いて、周波数対数値の平均値を変換する(ステップC4)。周波数対数値の平均値の変換の演算は他の実施形態と同様であり、例えば、平均値に変換係数を加算することよって平均値を変換すればよい。ただし、変換の演算は加算に限定されない。また、本例では、状態情報補正部4は、前側に振り分けた状態情報に含まれる周波数対数値の平均値に対しては変換を行わない。
次に、状態情報補正部4は、後側の状態情報に関して、後方タグに基づいて分散変換用の単調関数を定める(ステップC5)。状態情報補正部4は、後側の状態情報に割り当てた値の範囲を単調関数の定義域とする。ステップC5では、値域を規定する値としてa1,a2の代わりに、分散変換用の単調関数決定のために用いるb1,b2を定めればよい。また、b1=0とすればよい。b2に関しては、既に説明した方法と同様に後方タグを用いて定めればよい。状態情報補正部4は、定めた定義域および値域により決定される単調関数を定める。例えば、図15に示す場合と同様に、定義域が3〜6であるとする。この場合、状態情報補正部4は、定義域が3〜6であり、値域が0〜b2である単調関数を定める。
続いて、状態情報補正部4は、単調関数が示す線上の値として、後側に該当する状態情報毎に分散変換用の変換係数を算出する(ステップC6)。具体的には、状態情報補正部4は、後側に該当する各状態情報に割り当てた値を単調関数の変数に代入することによって、後側に該当する状態情報毎に分散変換用の変換係数を算出する。また、本例では、状態情報補正部4は、前側に振り分けた状態情報に関しては変換係数を求めない。
次に、状態情報補正部4は、後側に該当する状態情報毎に、ステップC6で求めた変換係数を用いて、周波数対数値の分散を変換する(ステップC7)。周波数対数値の分散の変換の演算は他の実施形態と同様であり、分散に変換係数を加算することよって分散を変換すればよい。ただし、変換の演算は加算に限定されない。また、本例では、状態情報補正部4は、前側に振り分けた状態情報に含まれる周波数対数値の分散に対しては変換を行わない。
次に、ピッチパタン生成部5は、各状態情報における周波数対数値の平均値および分散を用いてピッチパタンを生成する(ステップC8)。平均値および分散を用いてピッチパタンを生成する処理は、他の実施形態と同様である。ただし、本例では、前側に該当する状態情報に含まれる平均値および分散は変換されていない。従って、変換されてない平均値および分散と、ステップC4,C7で変換された平均値および分散とを用いてピッチパタンを生成する。すなわち、式(3)におけるMの要素、式(4)におけるUの要素のうち、前側の状態情報に対応する要素に関しては、変換されていない値を用いればよい。
また、上記の例では、後側に該当する状態情報に関して、周波数対数値の平均値および分散を変換する場合を例にして説明した。以下、前側に該当する状態情報に関して、周波数対数値の平均値および分散を変換する場合について説明する。図17は、図15に示す場合と同様に、配列された状態情報のうち、1番目および2番目の状態の状態情報を前側とし、3番目から6番目までの各状態の状態情報を後側とした場合を例示している。
前側に該当する状態情報に関して平均値および分散を変換する場合、状態情報補正部4は、前側の状態情報を対象にして、変換係数を算出するための単調関数を定める。ここでは、平均値変換用の単調関数を定める場合を例にして説明する。状態情報補正部4は、前側に該当する状態情報に割り当てた値の範囲を、単調関数の定義域とする。図17に示す例では、1〜2が定義域となる。また、状態情報補正部4は、平均値変換用の単調関数の値域を規定するためのa1,a2を定める。a1に関しては、既に説明した方法と同様に前方タグを用いて定めればよい。また、前側の状態情報に含まれる平均値を変換対象とする場合、a2=0とする。そして、状態情報補正部4は、a1から0(=a2)までを値域とする。状態情報補正部4は、定めた定義域および値域により決定される単調関数を定める。図17に示す例では、1〜2を定義域とし、a1〜0を値域とする単調関数を定めればよい。
そして、状態情報補正部4は、その単調関数が示す線上の値として、前側に振り分けた状態情報毎に、平均値変換用の変換係数を求める。具体的には、単調関数の変数に、前側に該当する各状態情報に割り当てた値を代入することによって、平均値変換用の変換係数を算出する。また、本例では、状態情報補正部4は、後側に振り分けた状態情報に関しては変換係数を求めない。
さらに、状態情報補正部4は、前側に該当する状態情報毎に、その状態情報に対応する変換係数を用いて、周波数対数値の平均値を変換する。周波数対数値の平均値の変換の演算は他の実施形態と同様であり、例えば、平均値に変換係数を加算することよって平均値を変換すればよい。また、本例では、状態情報補正部4は、後側に振り分けた状態情報に含まれる周波数対数値の平均値に対しては変換を行わない。
また、状態情報補正部4は、前側の状態情報に関して、前方タグに基づいて分散変換用の単調関数を定める。状態情報補正部4は、前側の状態情報に割り当てた値の範囲を、分散変換用の単調関数の定義域とする。そして、状態情報補正部4は、分散変換用の単調関数の値域を規定する値として、上記のa1,a2の代わりにb1,b2を定めればよい。b1に関しては、既に説明した方法と同様に前方タグを用いて定めればよい。前側の状態情報に含まれる平均値を変換対象とする場合、b2=0とする。状態情報補正部4は、このように定めた定義域および値域により決定される単調関数を定める。
状態情報補正部4は、その単調関数が示す線上の値として、前側に振り分けた状態情報毎に、分散変換用の変換係数を求める。具体的には、単調関数の変数に、前側に該当する各状態情報に割り当てた値を代入することによって、分散変換用の変換係数を算出する。また、本例では、状態情報補正部4は、後側に振り分けた状態情報に関しては変換係数を求めない。
さらに、状態情報補正部4は、前側に該当する状態情報毎に、その状態情報に対応する変換係数を用いて、周波数対数値の分散を変換する。周波数対数値の分散の変換の演算は他の実施形態と同様であり、例えば、分散に変換係数を加算することよって分散を変換すればよい。また、本例では、状態情報補正部4は、後側に振り分けた状態情報に含まれる周波数対数値の分散に対しては変換を行わない。
ピッチパタン生成部5は、各状態情報における周波数対数値の平均値および分散を用いてピッチパタンを生成すればよい。平均値および分散を用いてピッチパタンを生成する処理は、他の実施形態と同様である。ただし、式(3)におけるMの要素、式(4)におけるUの要素のうち、後側の状態情報に対応する要素に関しては、変換されていない値を用いればよい。
また、以上の説明では、配列された状態情報を前側と後側とに分け、後側の状態情報に含まれる平均値および分散を変換する場合と、前側の状態情報に含まれる平均値および分散を変換する場合とについてそれぞれ説明した。後側の状態情報および前側の状態情報に関して、それぞれ上記のように単調関数を定めて、平均値および分散を変換してもよい。
後方タグが特に関連する範囲は、配列された状態情報のうち、後側に配列された状態情報であると考えることとができる。同様に、前方タグが特に関連する範囲は、配列された状態情報のうち、前側に配列された状態情報であると考えることとができる。本実施形態によれば、後方タグに基づいて、その後続タグが特に関連する範囲に該当する状態情報(後側の状態情報)を対象に平均値や分散の変換を行い、他の状態情報(前側の状態情報)については平均値や分散の変換を行わなくて済むという効果が得られる。例えば、上記のように、周波数対数値の平均値が最も高い状態の状態情報を基準として状態情報を前側と後側に分けた場合、後続タグが特に関連する、ピッチの下り勾配部分に該当する状態情報を対象に変換を行い、他の状態情報については分散の変換を行わなくて済む。あるいは、前方タグに基づいて、その前方タグが特に関連する範囲に該当する状態情報(前側の状態情報)を対象に平均値や分散の変換を行い、他の状態情報(後側の状態情報)については平均値や分散の変換を行わなくて済むという効果が得られる。
上記の例では、周波数対数値の平均値が最も高い状態の状態情報を基準として、配列された状態情報を前側と後側とに分ける場合を示した。配列された状態情報を前側と後側とに分ける基準として他の基準を用いてもよい。
例えば、周波数の平均値は、アクセント句内において、2モーラ目で最も高くなる傾向がある。状態情報補正部4は、この傾向を利用して、2モーラ目の音素に対応する状態情報のうち、中央の状態情報を基準として、配列された情報を前側と後側に分けてもよい。2モーラ目の音素に対応する状態情報が偶数個存在する場合には、中央の2つの状態情報のいずれか一方を基準とすればよい。または2モーラ目の音素に対応する状態情報のうち、最後の状態情報を基準として、配列された情報を前側と後側に分けてもよい。この方法は、周波数平均値が最も高い状態を具体的に特定する代わりに、アクセント句内において2モーラ目の周波数平均値が最も高いとみなす方法である。なお、2モーラ目の音素に対応する状態情報のうち中央(または最後)の状態情報は、後側に含めても、前側に含めてもよい。
他の基準について説明する。i番目の状態情報に含まれている周波数に関する平均値をp(i)とする。そして、p(i)−p(i+1)の絶対値が最大となるiを変曲点と呼ぶ。このとき、状態情報補正部4は、変曲点となるi番目に該当する状態情報を基準として、前側と後側に分けてもよい。すなわち、状態情報補正部4は、状態情報補正部4は、p(i)−p(i+1)の絶対値が最大となるiを特定する。そして、状態配列部3に配列された状態情報を、i番目の状態情報を基準として前側と後側とに分ければよい。基準とするi番目の状態情報は、後側に含めても前側に含めてもよい。なお、配列された状態情報のうち、最後の状態情報に関しては、次の状態情報がないので、p(i)−p(i+1)の計算対象から除外してよい。
変曲点は、アクセントの直後に現れる。従って、配列された状態情報を、上記のように変曲点を基準として前側と後側とに分けることで、アクセントの後における平均値や分散を(周波数に関する平均値や分散)を変換したり、アクセントの前における平均値や分散を変換したりすることができる。
また、例えば、後方タグに基づいて、アクセント句の最後の近辺においてのみ、周波数に関する平均値や分散を変換したい場合がある。このような場合には、状態情報補正部4は、アクセント句内において、最後から2モーラ目の音素に対応する状態情報のうち、中央の状態情報を基準として、配列された情報を前側と後側に分けてもよい。あるいは、最後のモーラの音素に対応する状態情報のうち、中央の状態情報を基準として、配列された情報を前側と後側に分けてもよい。なお、最後から2モーラ目の音素に対応する状態情報が偶数個存在する場合には、中央の2つの状態情報のいずれか一方を基準とすればよい。最後のモーラの音素に対応する状態情報が偶数個存在する場合にも同様である。このように基準を定めて、配列された状態情報を分けることで、アクセント句の最後の近辺においてのみ、平均値や分散を変換することができる。
また、以上の第3の実施形態の説明では、第1の実施形態と同様に状態情報を配列して、その状態情報を前側と後側とに分ける場合を説明した。第3の実施形態のピッチパタン生成装置は、第2の実施形態と同様に、個々の状態に関してそれぞれ、その状態の継続時間長に応じた数だけ、その状態の状態情報を繰り返し配列してもよい。以下、図10に示すピッチパタン生成装置10を例に、第3の実施形態の他の例について説明する。状態情報補正部14以外の動作は、第2の実施形態と同様である。
図18は、第3の実施形態において、1つの状態に対して1つ以上の状態情報を繰り返し配列する場合の例を示す説明図である。図12に示す場合と同様に、状態配列部13が40個の状態情報を配列したとする。この場合、状態情報補正部14は、例えば、周波数対数値の平均値が最も高い状態の状態情報を基準として、40個の状態情報を前側と後側とに分ければよい。図18に示す例では、3番目の状態の状態情報(すなわち、11〜17番目の状態情報)において、周波数の平均値が最も高い。従って、例えば、状態情報補正部14は、図18に示す状態情報のうち、11〜40番目の状態情報を後側の状態情報として分け、1〜10番目の状態情報を前側の状態情報として分ければよい。なお、本例では、周波数が最も高い11〜17番目の状態情報を後側に振り分ける場合を例示したが、これらの状態情報を前側に振り分けてもよい。
ここでは、状態情報補正部14が後側の状態情報について周波数対数値の平均値および分散を変換する場合について説明する。この場合、後側の状態情報に対応する状態毎に、平均値変換用の変換係数、分散変換用の変換係数を求めて、平均値および分散を変換すればよい。この動作は、第2の実施形態において、状態毎に平均値変換用の変換係数、分散変換用の変換係数を求めて、平均値および分散を変換する動作と同様である。ただし、平均値変換用の単調関数および分散変換用の単調関数を定めるために用いる定義域は、後側の状態情報の最初の状態情報に割り当てた値から、後側の状態情報の最後の状態情報に割り当てた値までの範囲である。図18に示す例では、11〜40である。そして、状態情報補正部14は、平均値変換用の単調関数を定める際に用いる値域を規定する値a1,a2のうち、a1に関してはa1=0とすればよい。a2に関しては、既に説明した方法と同様に後方タグを用いて定めればよい。状態情報補正部14は、分散変換用の単調関数を定める際に用いる値域を規定する値b1,b2のうち、b1に関してはb1=0とすればよい。b2に関しては、既に説明した方法と同様に後方タグを用いて定めればよい。状態情報補正部14は、これらの単調関数を用いて、第2の実施形態と同様に、状態毎に平均値変換用の変換係数、分散変換用の変換係数を求め、後側の状態情報に含まれる周波数対数値の平均値や分散を変換すればよい。なお、この場合、状態情報補正部14は、前側の状態情報に関しては、変換処理を行わなくてよい。
次に、状態情報補正部14が前側の状態情報について周波数対数値の平均値および分散を変換する場合について説明する。この場合、前側の状態情報に対応する状態毎に、平均値変換用の変換係数、分散変換用の変換係数を求めて、平均値および分散を変換すればよい。この動作は、第2の実施形態において、状態毎に平均値変換用の変換係数、分散変換用の変換係数を求めて、平均値および分散を変換する動作と同様である。ただし、平均値変換用の単調関数および分散変換用の単調関数を定めるために用いる定義域は、前側の状態情報の最初の状態情報に割り当てた値から、前側の状態情報の最後の状態情報に割り当てた値までの範囲である。そして、状態情報補正部14は、平均値変換用の単調関数を定める際に用いる値域を規定する値a1,a2のうち、a2に関してはa2=0とすればよい。a1に関しては、既に説明した方法と同様に前方タグを用いて定めればよい。状態情報補正部14は、分散変換用の単調関数を定める際に用いる値域を規定する値b1,b2のうち、b2に関してはb2=0とすればよい。b1に関しては、既に説明した方法と同様に前方タグを用いて定めればよい。状態情報補正部14は、これらの単調関数を用いて、第2の実施形態と同様に、状態毎に平均値変換用の変換係数、分散変換用の変換係数を求め、前側の状態情報に含まれる周波数対数値の平均値や分散を変換すればよい。なお、この場合、状態情報補正部14は、後側の状態情報に関しては、変換処理を行わなくてよい。
なお、後側の状態情報に関して変換を行う場合であっても、前側の状態情報に関して変換を行う場合であっても、状態情報補正部14は、第2の実施形態の変形例で示したように状態毎の継続時間長に応じて分散変換用の変換係数を定めてもよい。
また、第3の実施形態においても、第1および第2の実施形態の変形例と同様に、平均値のみを変換し、分散に関しては変換を行わなくてもよい。例えば、図16に例示するフローチャートにおいて、ステップC5〜C7の処理を実行しなくてもよい。この場合、ピッチパタン生成部5は、変換を行っていない分散をそのまま用いてピッチパタンを生成すればよい。
また、第1から第3までの各実施形態において、アクセント句の状態情報に含まれる周波数に関する平均値に対して変換を行った後、状態情報補正部4,14は、さらに、各状態情報に対応する平均値に一定の定数を一律に加算してもよい。周波数に関する平均値に対して、一律に定数を加算することで、アクセント句の周波数を全体的に高くすることができる。
実施形態4.
第4の実施形態では、第1から第3までの実施形態で説明した方法により作成されたピッチパタンを用いて音声合成を行う音声合成装置を示す。図19は、第4の実施形態の音声合成装置の例を示すブロック図である。第1の実施形態と同様の要素については、図1と同一の符号を付し、詳細な説明を省略する。
第4の実施形態では、第1から第3までの実施形態で説明した方法により作成されたピッチパタンを用いて音声合成を行う音声合成装置を示す。図19は、第4の実施形態の音声合成装置の例を示すブロック図である。第1の実施形態と同様の要素については、図1と同一の符号を付し、詳細な説明を省略する。
本実施形態の音声合成装置は、解析辞書記憶部40と、言語処理部41と、ピッチパタン処理部30と、素片記憶部42と、波形記憶部44と、合成音声生成部48とを備える。以下、アクセント句をピッチパタン補正単位とする場合を例にして説明する。
解析辞書記憶部40は、隣接するピッチパタン補正単位に対して、どのような場合にどのようなタグを付加するかを定めるルールを記憶する記憶装置である。
言語処理部41には、音声合成として出力すべきテキスト情報が入力される。言語処理部41は、入力されたテキスト情報に対して、形態素解析を行って、そのテキスト情報の読みを表す文字列を作成し、アクセント句(ピッチパタン補正単位)毎に文字列を区切る。例えば、図3に例示するように、アクセント句の区切りを示す記号“/”により文字列を区切ればよい。
また、言語処理部41は、解析辞書記憶部40に記憶されたルールを参照して、隣接するアクセント句の組に対してタグを決定し、文字列に追加する。この結果、例えば、図3に例示する読み情報を得る。なお、言語処理部41は、アクセントの位置を判定し、アクセントの位置を示すアクセント情報を読み情報に追加してもよい。
言語処理部41は、生成した読み情報をピッチパタン処理部30の状態配列部3および状態情報補正部4に入力する。なお、ピッチパタン処理部30は、状態情報記憶部2と、状態配列部3と、状態情報補正部4と、ピッチパタン生成部5とを含む。これらの要素は、第1の実施形態と同様であり、説明を省略する。
合成音声生成部48は、ピッチパタン生成部5によって生成されたピッチパタンに基づいて合成音声を生成する。合成音声生成部48は、例えば、素片選択部43と、波形接続部45とを備える。
素片記憶部43は、例えば、音節毎に素片を記憶する記憶装置である。
素片選択部43は、ピッチパタンおよび読み情報に基づいて、例えば、音節毎に素片を選択する。
波形記憶部44は、音声合成に用いられる種々の波形を記憶する記憶装置である。
波形接続部45は、素片選択部43によって選択された素片に応じた波形を波形記憶部44から読み出し、その波形を接続させることで合成音声を生成し、音声として出力する。
以上のような構成により、入力されたテキスト情報に応じた合成音声を出力することができる。
また、ピッチパタン処理部30は、第2の実施形態で示した状態情報記憶部2と、状態配列部13と、状態情報補正部14と、ピッチパタン生成部5とを含む構成であってもよい。この場合、図20に示すように、音声合成装置は、予め音素毎に学習された継続時間長を記憶する継続時間長記憶部46と、読み情報によって特定される音素毎に継続時間長記憶部から継続時間長を読み出す継続時間長読み出し部47とを備えていればよい。そして、継続時間長読み出し部47は、音素毎に読み出した継続時間長を状態配列部13に入力すればよい。
また、図19および図20に例示する音声合成装置は、言語処理部41が生成した読み情報に対するユーザの編集操作が可能な構成であってもよい。例えば、言語処理部41が生成した読み情報をディスプレイ装置に表示させ、キーボード等の入力デバイスに入力された編集内容に従い、その読み情報に対する編集を行う編集手段(図示略)を備えていてもよい。このような構成によれば、ユーザは、例えば、読み情報に含まれるタグの値の調整等を行うことができる。
次に、本発明の最小構成について説明する。図21は、本発明のピッチパタン生成装置の最小構成の例を示すブロック図である。本発明のピッチパタン生成装置は、状態情報記憶手段91と、状態情報配列手段92と、状態情報補正手段93と、ピッチパタン生成手段94とを備える。
状態情報記憶手段91(例えば、状態情報記憶部2)は、音素毎に学習された隠れマルコフモデルの状態を示す状態情報であって、周波数に関する代表値(例えば、平均値)およびデータの広がり(例えば、分散)を表す状態情報を記憶する
状態情報配列手段92(例えば、状態配列部3)は、ピッチパタン補正単位(例えば、アクセント句、あるいは、音素、音節、呼気段落、文等)毎の読みを示す情報(例えば、読み情報に含まれる、ピッチパタン補正単位毎の読みを示す文字列)に基づいて、ピッチパタン補正単位の読みによって特定される各音素の状態情報を、そのピッチパタン補正単位の読みによって特定される音素順に配列する。
状態情報補正手段93(例えば、状態情報補正部4)は、少なくとも、ピッチパタン補正単位とその前のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である前方韻律制御情報(例えば、前方タグ)と、ピッチパタン補正単位とその後のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である後方韻律制御情報(例えば、後方タグ)とのいずれかを用いて、状態情報が表す周波数に関する代表値を変換するための代表値変換用変換係数(例えば、平均値変換用の変換係数)を導出する代表値変換用単調関数(例えば、平均値変換用の単調関数)を定める。状態情報補正手段93は、その代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、代表値変換用変換係数を用いて、配列した状態情報が表す周波数に関する代表値を変換する。
ピッチパタン生成手段94(例えば、ピッチパタン生成手段94)は、周波数に関する代表値およびデータの広がりに基づいてピッチパタンを生成する。
そのような構成により、HMMを用いる場合に、違和感のない音声合成結果が得られるようなピッチパタンを生成することができる。
上記の実施形態の一部または全部は、以下の付記のようにも記載され得るが、以下に限定されるわけではない。
(付記1)音素毎に学習された隠れマルコフモデルの状態を示す状態情報であって、周波数に関する代表値およびデータの広がりを表す状態情報を予め記憶し、ピッチパタン補正単位毎の読みを示す情報に基づいて、ピッチパタン補正単位の読みによって特定される各音素の状態情報を、前記ピッチパタン補正単位の読みによって特定される音素順に配列し、少なくとも、前記ピッチパタン補正単位とその前のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である前方韻律制御情報と、前記ピッチパタン補正単位とその後のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である後方韻律制御情報とのいずれかを用いて、状態情報が表す周波数に関する代表値を変換するための代表値変換用変換係数を導出する代表値変換用単調関数を定め、前記代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、前記代表値変換用変換係数を用いて、配列した状態情報が表す周波数に関する代表値を変換し、周波数に関する代表値およびデータの広がりに基づいてピッチパタンを生成することを特徴とするピッチパタン生成方法。
(付記2)状態情報を配列するときに、ピッチパタン補正単位の読みによって特定される音素の状態毎に、1つの状態情報を配列する付記1に記載のピッチパタン生成方法。
(付記3)状態情報を配列するときに、ピッチパタン補正単位の読みによって特定される音素の状態毎に、音素の状態の継続時間長に応じた数だけ前記状態の状態情報を繰り返し配列する付記1に記載のピッチパタン生成方法。
(付記4)ピッチパタン補正単位の読みによって特定される音素の各状態に関して代表値変換用変換係数を導出する代表値変換用単調関数を定め、前記各状態に関して、前記代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、前記各状態に関して、前記代表値変換用変換係数を用いて、配列した状態情報が表す周波数に関する代表値を変換する付記1から付記3のうちのいずれかに記載のピッチパタン生成方法。
(付記5)所定の基準に基づいて、配列した状態情報を前側の状態情報と後側の状態情報とに分け、後方韻律制御情報を用いて、後側の状態情報に対応する各状態に関して代表値変換用変換係数を導出する代表値変換用単調関数を定め、前記各状態に関して、前記代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、前記代表値変換用変換係数を用いて、後側の状態情報が表す周波数に関する代表値を変換する付記1から付記3のうちのいずれかに記載のピッチパタン生成方法。
(付記6)所定の基準に基づいて、配列した状態情報を前側の状態情報と後側の状態情報とに分け、前方韻律制御情報を用いて、前側の状態情報に対応する各状態に関して代表値変換用変換係数を導出する代表値変換用単調関数を定め、前記各状態に関して、前記代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、前記代表値変換用変換係数を用いて、前側の状態情報が表す周波数に関する代表値を変換する付記1から付記3のうちのいずれかに記載のピッチパタン生成方法。
(付記7)少なくとも前方韻律制御情報と後方韻律制御情報とのいずれかを用いて、状態情報が表す周波数に関するデータの広がりを変換するためのデータの広がりの変換用変換係数を導出するデータの広がりの変換用単調関数を定め、前記データの広がりの変換用単調関数に基づいてデータの広がりの変換用変換係数を算出し、前記データの広がりの変換用変換係数を用いて、配列した状態情報が表す周波数に関するデータの広がりを変換する付記1から付記6のうちのいずれかに記載のピッチパタン生成方法。
(付記8)ピッチパタン補正単位の読みによって特定される音素の各状態に関してデータの広がりの変換用変換係数を導出するデータの広がりの変換用単調関数を定め、前記各状態に関して、前記データの広がりの変換用単調関数に基づいてデータの広がりの変換用変換係数を算出し、前記各状態に関して、前記データの広がりの変換用変換係数を用いて、配列した状態情報が表す周波数に関するデータの広がりを変換する付記7に記載のピッチパタン生成方法。
(付記9)所定の基準に基づいて、配列した状態情報を前側の状態情報と後側の状態情報とに分け、後方韻律制御情報を用いて、後側の状態情報に対応する各状態に関してデータの広がりの変換用変換係数を導出するデータの広がりの変換用単調関数を定め、前記各状態に関して、前記データの広がりの変換用単調関数に基づいてデータの広がりの変換用変換係数を算出し、前記データの広がりの変換用変換係数を用いて、後側の状態情報が表す周波数に関するデータの広がりを変換する付記7に記載のピッチパタン生成方法。
(付記10)所定の基準に基づいて、配列した状態情報を前側の状態情報と後側の状態情報とに分け、前方韻律制御情報を用いて、前側の状態情報に対応する各状態に関してデータの広がりの変換用変換係数を導出するデータの広がりの変換用単調関数を定め、
前記各状態に関して、前記データの広がりの変換用単調関数に基づいてデータの広がりの変換用変換係数を算出し、前記データの広がりの変換用変換係数を用いて、前側の状態情報が表す周波数に関するデータの広がりを変換する付記7に記載のピッチパタン生成方法。
前記各状態に関して、前記データの広がりの変換用単調関数に基づいてデータの広がりの変換用変換係数を算出し、前記データの広がりの変換用変換係数を用いて、前側の状態情報が表す周波数に関するデータの広がりを変換する付記7に記載のピッチパタン生成方法。
(付記11)周波数に関する代表値が最大になる状態を基準として、配列した状態情報を前側の状態情報と後側の状態情報とに分ける付記5,6,9,10のうちのいずれかに記載のピッチパタン生成方法。
(付記12)次の状態との間で周波数に関する代表値の差の絶対値が最大になる状態を基準として、配列した状態情報を前側の状態情報と後側の状態情報とに分ける付記5,6,9,10のうちのいずれかに記載のピッチパタン生成方法。
(付記13)音素の状態の継続時間長に応じて、状態情報が表す周波数に関するデータの広がりを変換するためのデータの広がりの変換用変換係数を決定する付記1から付記6のうちのいずれかに記載のピッチパタン生成方法。
(付記14)音素毎に学習された隠れマルコフモデルの状態を示す状態情報であって、周波数に関する代表値およびデータの広がりを表す状態情報を記憶する状態情報記憶手段と、ピッチパタン補正単位毎の読みを示す情報に基づいて、ピッチパタン補正単位の読みによって特定される各音素の状態情報を、前記ピッチパタン補正単位の読みによって特定される音素順に配列する状態情報配列手段と、少なくとも、前記ピッチパタン補正単位とその前のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である前方韻律制御情報と、前記ピッチパタン補正単位とその後のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である後方韻律制御情報とのいずれかを用いて、状態情報が表す周波数に関する代表値を変換するための代表値変換用変換係数を導出する代表値変換用単調関数を定め、前記代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、前記代表値変換用変換係数を用いて、配列した状態情報が表す周波数に関する代表値を変換する状態情報補正手段と、周波数に関する代表値およびデータの広がりに基づいてピッチパタンを生成するピッチパタン生成手段とを備えることを特徴とするピッチパタン生成装置。
(付記15)ピッチパタン補正単位毎の読みを示す情報と、隣接するピッチパタン補正単位間の韻律の関係性を制御するための韻律制御情報とを生成する言語処理手段と、音素毎に学習された隠れマルコフモデルの状態を示す状態情報であって、周波数に関する代表値およびデータの広がりを表す状態情報を記憶する状態情報記憶手段と、ピッチパタン補正単位毎の読みを示す情報に基づいて、ピッチパタン補正単位の読みによって特定される各音素の状態情報を、前記ピッチパタン補正単位の読みによって特定される音素順に配列する状態情報配列手段と、少なくとも、前記ピッチパタン補正単位とその前のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である前方韻律制御情報と、前記ピッチパタン補正単位とその後のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である後方韻律制御情報とのいずれかを用いて、状態情報が表す周波数に関する代表値を変換するための代表値変換用変換係数を導出する代表値変換用単調関数を定め、前記代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、前記代表値変換用変換係数を用いて、配列した状態情報が表す周波数に関する代表値を変換する状態情報補正手段と、周波数に関する代表値およびデータの広がりに基づいてピッチパタンを生成するピッチパタン生成手段と、前記ピッチパタンに基づいて合成音声を生成する合成音声生成手段とを備えることを特徴とする音声合成装置。
(付記16)音素毎に学習された隠れマルコフモデルの状態を示す状態情報であって、周波数に関する代表値およびデータの広がりを表す状態情報を記憶する状態情報記憶手段を備えたコンピュータに搭載されるピッチパタン生成プログラムであって、前記コンピュータに、ピッチパタン補正単位毎の読みを示す情報に基づいて、ピッチパタン補正単位の読みによって特定される各音素の状態情報を、前記ピッチパタン補正単位の読みによって特定される音素順に配列する状態情報配列処理、少なくとも、前記ピッチパタン補正単位とその前のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である前方韻律制御情報と、前記ピッチパタン補正単位とその後のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である後方韻律制御情報とのいずれかを用いて、状態情報が表す周波数に関する代表値を変換するための代表値変換用変換係数を導出する代表値変換用単調関数を定め、前記代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、前記代表値変換用変換係数を用いて、配列した状態情報が表す周波数に関する代表値を変換する状態情報補正処理、および、周波数に関する代表値およびデータの広がりに基づいてピッチパタンを生成するピッチパタン生成処理を実行させるためのピッチパタン生成プログラム。
(付記17)音素毎に学習された隠れマルコフモデルの状態を示す状態情報であって、周波数に関する代表値およびデータの広がりを表す状態情報を記憶する状態情報記憶部と、ピッチパタン補正単位毎の読みを示す情報に基づいて、ピッチパタン補正単位の読みによって特定される各音素の状態情報を、前記ピッチパタン補正単位の読みによって特定される音素順に配列する状態情報配列部と、少なくとも、前記ピッチパタン補正単位とその前のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である前方韻律制御情報と、前記ピッチパタン補正単位とその後のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である後方韻律制御情報とのいずれかを用いて、状態情報が表す周波数に関する代表値を変換するための代表値変換用変換係数を導出する代表値変換用単調関数を定め、前記代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、前記代表値変換用変換係数を用いて、配列した状態情報が表す周波数に関する代表値を変換する状態情報補正部と、周波数に関する代表値およびデータの広がりに基づいてピッチパタンを生成するピッチパタン生成部とを備えることを特徴とするピッチパタン生成装置。
(付記18)ピッチパタン補正単位毎の読みを示す情報と、隣接するピッチパタン補正単位間の韻律の関係性を制御するための韻律制御情報とを生成する言語処理部と、音素毎に学習された隠れマルコフモデルの状態を示す状態情報であって、周波数に関する代表値およびデータの広がりを表す状態情報を記憶する状態情報記憶部と、ピッチパタン補正単位毎の読みを示す情報に基づいて、ピッチパタン補正単位の読みによって特定される各音素の状態情報を、前記ピッチパタン補正単位の読みによって特定される音素順に配列する状態情報配列部と、少なくとも、前記ピッチパタン補正単位とその前のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である前方韻律制御情報と、前記ピッチパタン補正単位とその後のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である後方韻律制御情報とのいずれかを用いて、状態情報が表す周波数に関する代表値を変換するための代表値変換用変換係数を導出する代表値変換用単調関数を定め、前記代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、前記代表値変換用変換係数を用いて、配列した状態情報が表す周波数に関する代表値を変換する状態情報補正部と、周波数に関する代表値およびデータの広がりに基づいてピッチパタンを生成するピッチパタン生成部と、前記ピッチパタンに基づいて合成音声を生成する合成音声生成部とを備えることを特徴とする音声合成装置。
この出願は、2011年7月25日に出願された日本特許出願2011−162400を基礎とする優先権を主張し、その開示の全てをここに取り込む。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
本発明は、ピッチパタンの生成するピッチパタン生成装置や、ピッチパタンを生成して音声合成を行う音声合成装置に好適に適用される。
1,10 ピッチパタン生成装置
2 状態情報記憶部
3,13 状態配列部
4,14 状態情報補正部
5 ピッチパタン生成部
2 状態情報記憶部
3,13 状態配列部
4,14 状態情報補正部
5 ピッチパタン生成部
Claims (16)
- 音素毎に学習された隠れマルコフモデルの状態を示す状態情報であって、周波数に関する代表値およびデータの広がりを表す状態情報を予め記憶し、
ピッチパタン補正単位毎の読みを示す情報に基づいて、ピッチパタン補正単位の読みによって特定される各音素の状態情報を、前記ピッチパタン補正単位の読みによって特定される音素順に配列し、
少なくとも、前記ピッチパタン補正単位とその前のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である前方韻律制御情報と、前記ピッチパタン補正単位とその後のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である後方韻律制御情報とのいずれかを用いて、状態情報が表す周波数に関する代表値を変換するための代表値変換用変換係数を導出する代表値変換用単調関数を定め、
前記代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、
前記代表値変換用変換係数を用いて、配列した状態情報が表す周波数に関する代表値を変換し、
周波数に関する代表値およびデータの広がりに基づいてピッチパタンを生成する
ことを特徴とするピッチパタン生成方法。 - 状態情報を配列するときに、ピッチパタン補正単位の読みによって特定される音素の状態毎に、1つの状態情報を配列する
請求項1に記載のピッチパタン生成方法。 - 状態情報を配列するときに、ピッチパタン補正単位の読みによって特定される音素の状態毎に、音素の状態の継続時間長に応じた数だけ前記状態の状態情報を繰り返し配列する
請求項1に記載のピッチパタン生成方法。 - ピッチパタン補正単位の読みによって特定される音素の各状態に関して代表値変換用変換係数を導出する代表値変換用単調関数を定め、
前記各状態に関して、前記代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、
前記各状態に関して、前記代表値変換用変換係数を用いて、配列した状態情報が表す周波数に関する代表値を変換する
請求項1から請求項3のうちのいずれか1項に記載のピッチパタン生成方法。 - 所定の基準に基づいて、配列した状態情報を前側の状態情報と後側の状態情報とに分け、
後方韻律制御情報を用いて、後側の状態情報に対応する各状態に関して代表値変換用変換係数を導出する代表値変換用単調関数を定め、
前記各状態に関して、前記代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、
前記代表値変換用変換係数を用いて、後側の状態情報が表す周波数に関する代表値を変換する
請求項1から請求項3のうちのいずれか1項に記載のピッチパタン生成方法。 - 所定の基準に基づいて、配列した状態情報を前側の状態情報と後側の状態情報とに分け、
前方韻律制御情報を用いて、前側の状態情報に対応する各状態に関して代表値変換用変換係数を導出する代表値変換用単調関数を定め、
前記各状態に関して、前記代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、
前記代表値変換用変換係数を用いて、前側の状態情報が表す周波数に関する代表値を変換する
請求項1から請求項3のうちのいずれか1項に記載のピッチパタン生成方法。 - 少なくとも前方韻律制御情報と後方韻律制御情報とのいずれかを用いて、状態情報が表す周波数に関するデータの広がりを変換するためのデータの広がりの変換用変換係数を導出するデータの広がりの変換用単調関数を定め、
前記データの広がりの変換用単調関数に基づいてデータの広がりの変換用変換係数を算出し、
前記データの広がりの変換用変換係数を用いて、配列した状態情報が表す周波数に関するデータの広がりを変換する
請求項1から請求項6のうちのいずれか1項に記載のピッチパタン生成方法。 - ピッチパタン補正単位の読みによって特定される音素の各状態に関してデータの広がりの変換用変換係数を導出するデータの広がりの変換用単調関数を定め、
前記各状態に関して、前記データの広がりの変換用単調関数に基づいてデータの広がりの変換用変換係数を算出し、
前記各状態に関して、前記データの広がりの変換用変換係数を用いて、配列した状態情報が表す周波数に関するデータの広がりを変換する
請求項7に記載のピッチパタン生成方法。 - 所定の基準に基づいて、配列した状態情報を前側の状態情報と後側の状態情報とに分け、
後方韻律制御情報を用いて、後側の状態情報に対応する各状態に関してデータの広がりの変換用変換係数を導出するデータの広がりの変換用単調関数を定め、
前記各状態に関して、前記データの広がりの変換用単調関数に基づいてデータの広がりの変換用変換係数を算出し、
前記データの広がりの変換用変換係数を用いて、後側の状態情報が表す周波数に関するデータの広がりを変換する
請求項7に記載のピッチパタン生成方法。 - 所定の基準に基づいて、配列した状態情報を前側の状態情報と後側の状態情報とに分け、
前方韻律制御情報を用いて、前側の状態情報に対応する各状態に関してデータの広がりの変換用変換係数を導出するデータの広がりの変換用単調関数を定め、
前記各状態に関して、前記データの広がりの変換用単調関数に基づいてデータの広がりの変換用変換係数を算出し、
前記データの広がりの変換用変換係数を用いて、前側の状態情報が表す周波数に関するデータの広がりを変換する
請求項7に記載のピッチパタン生成方法。 - 周波数に関する代表値が最大になる状態を基準として、配列した状態情報を前側の状態情報と後側の状態情報とに分ける
請求項5,6,9,10のうちのいずれか1項に記載のピッチパタン生成方法。 - 次の状態との間で周波数に関する代表値の差の絶対値が最大になる状態を基準として、配列した状態情報を前側の状態情報と後側の状態情報とに分ける
請求項5,6,9,10のうちのいずれか1項に記載のピッチパタン生成方法。 - 音素の状態の継続時間長に応じて、状態情報が表す周波数に関するデータの広がりを変換するためのデータの広がりの変換用変換係数を決定する
請求項1から請求項6のうちのいずれか1項に記載のピッチパタン生成方法。 - 音素毎に学習された隠れマルコフモデルの状態を示す状態情報であって、周波数に関する代表値およびデータの広がりを表す状態情報を記憶する状態情報記憶手段と、
ピッチパタン補正単位毎の読みを示す情報に基づいて、ピッチパタン補正単位の読みによって特定される各音素の状態情報を、前記ピッチパタン補正単位の読みによって特定される音素順に配列する状態情報配列手段と、
少なくとも、前記ピッチパタン補正単位とその前のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である前方韻律制御情報と、前記ピッチパタン補正単位とその後のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である後方韻律制御情報とのいずれかを用いて、状態情報が表す周波数に関する代表値を変換するための代表値変換用変換係数を導出する代表値変換用単調関数を定め、前記代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、前記代表値変換用変換係数を用いて、配列した状態情報が表す周波数に関する代表値を変換する状態情報補正手段と、
周波数に関する代表値およびデータの広がりに基づいてピッチパタンを生成するピッチパタン生成手段とを備える
ことを特徴とするピッチパタン生成装置。 - ピッチパタン補正単位毎の読みを示す情報と、隣接するピッチパタン補正単位間の韻律の関係性を制御するための韻律制御情報とを生成する言語処理手段と、
音素毎に学習された隠れマルコフモデルの状態を示す状態情報であって、周波数に関する代表値およびデータの広がりを表す状態情報を記憶する状態情報記憶手段と、
ピッチパタン補正単位毎の読みを示す情報に基づいて、ピッチパタン補正単位の読みによって特定される各音素の状態情報を、前記ピッチパタン補正単位の読みによって特定される音素順に配列する状態情報配列手段と、
少なくとも、前記ピッチパタン補正単位とその前のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である前方韻律制御情報と、前記ピッチパタン補正単位とその後のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である後方韻律制御情報とのいずれかを用いて、状態情報が表す周波数に関する代表値を変換するための代表値変換用変換係数を導出する代表値変換用単調関数を定め、前記代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、前記代表値変換用変換係数を用いて、配列した状態情報が表す周波数に関する代表値を変換する状態情報補正手段と、
周波数に関する代表値およびデータの広がりに基づいてピッチパタンを生成するピッチパタン生成手段と、
前記ピッチパタンに基づいて合成音声を生成する合成音声生成手段とを備える
ことを特徴とする音声合成装置。 - 音素毎に学習された隠れマルコフモデルの状態を示す状態情報であって、周波数に関する代表値およびデータの広がりを表す状態情報を記憶する状態情報記憶手段を備えたコンピュータに搭載されるピッチパタン生成プログラムであって、
前記コンピュータに、
ピッチパタン補正単位毎の読みを示す情報に基づいて、ピッチパタン補正単位の読みによって特定される各音素の状態情報を、前記ピッチパタン補正単位の読みによって特定される音素順に配列する状態情報配列処理、
少なくとも、前記ピッチパタン補正単位とその前のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である前方韻律制御情報と、前記ピッチパタン補正単位とその後のピッチパタン補正単位との間の韻律の関係性を制御するための韻律制御情報である後方韻律制御情報とのいずれかを用いて、状態情報が表す周波数に関する代表値を変換するための代表値変換用変換係数を導出する代表値変換用単調関数を定め、前記代表値変換用単調関数に基づいて代表値変換用変換係数を算出し、前記代表値変換用変換係数を用いて、配列した状態情報が表す周波数に関する代表値を変換する状態情報補正処理、および、
周波数に関する代表値およびデータの広がりに基づいてピッチパタンを生成するピッチパタン生成処理
を実行させるためのピッチパタン生成プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011162400 | 2011-07-25 | ||
JP2011162400 | 2011-07-25 | ||
PCT/JP2012/004129 WO2013014858A1 (ja) | 2011-07-25 | 2012-06-26 | ピッチパタン生成方法、ピッチパタン生成装置、音声合成装置およびピッチパタン生成プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2013014858A1 JPWO2013014858A1 (ja) | 2015-02-23 |
JP5999092B2 true JP5999092B2 (ja) | 2016-09-28 |
Family
ID=47600736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013525552A Active JP5999092B2 (ja) | 2011-07-25 | 2012-06-26 | ピッチパタン生成方法、ピッチパタン生成装置、音声合成装置およびピッチパタン生成プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5999092B2 (ja) |
WO (1) | WO2013014858A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6442982B2 (ja) * | 2014-10-28 | 2018-12-26 | 富士通株式会社 | 基本周波数調整装置、方法及びプログラム、並びに、音声合成装置、方法及びプログラム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002062890A (ja) * | 2000-08-18 | 2002-02-28 | Seiko Epson Corp | 音声合成方法および音声合成装置ならびに音声合成処理プログラムを記録した記録媒体 |
JP2004341259A (ja) * | 2003-05-15 | 2004-12-02 | Matsushita Electric Ind Co Ltd | 音声素片伸縮装置およびその方法 |
JP4662139B2 (ja) * | 2005-07-04 | 2011-03-30 | ソニー株式会社 | データ出力装置、データ出力方法、およびプログラム |
JPWO2012063424A1 (ja) * | 2010-11-08 | 2014-05-12 | 日本電気株式会社 | 特徴量系列生成装置、特徴量系列生成方法および特徴量系列生成プログラム |
-
2012
- 2012-06-26 JP JP2013525552A patent/JP5999092B2/ja active Active
- 2012-06-26 WO PCT/JP2012/004129 patent/WO2013014858A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2013014858A1 (ja) | 2013-01-31 |
JPWO2013014858A1 (ja) | 2015-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4551803B2 (ja) | 音声合成装置及びそのプログラム | |
JP4080989B2 (ja) | 音声合成方法、音声合成装置および音声合成プログラム | |
US6499014B1 (en) | Speech synthesis apparatus | |
US11423874B2 (en) | Speech synthesis statistical model training device, speech synthesis statistical model training method, and computer program product | |
JP4469883B2 (ja) | 音声合成方法及びその装置 | |
US6625575B2 (en) | Intonation control method for text-to-speech conversion | |
JP4738057B2 (ja) | ピッチパターン生成方法及びその装置 | |
JP3070127B2 (ja) | 音声合成装置のアクセント成分制御方式 | |
US20090055188A1 (en) | Pitch pattern generation method and apparatus thereof | |
JP4406440B2 (ja) | 音声合成装置、音声合成方法及びプログラム | |
WO2012063424A1 (ja) | 特徴量系列生成装置、特徴量系列生成方法および特徴量系列生成プログラム | |
JP5726822B2 (ja) | 音声合成装置、方法及びプログラム | |
JP4455633B2 (ja) | 基本周波数パターン生成装置、基本周波数パターン生成方法及びプログラム | |
JP5999092B2 (ja) | ピッチパタン生成方法、ピッチパタン生成装置、音声合成装置およびピッチパタン生成プログラム | |
JP2009133890A (ja) | 音声合成装置及びその方法 | |
JP5474713B2 (ja) | 音声合成装置、音声合成方法および音声合成プログラム | |
JP5874639B2 (ja) | 音声合成装置、音声合成方法及び音声合成プログラム | |
JP2007004011A (ja) | 音声合成装置、音声合成方法、音声合成プログラムおよびその記録媒体 | |
JP4684770B2 (ja) | 韻律生成装置及び音声合成装置 | |
JP4476855B2 (ja) | 音声合成装置及びその方法 | |
JP2009175345A (ja) | 音声情報処理装置及びその方法 | |
JP2004226505A (ja) | ピッチパタン生成方法、音声合成方法とシステム及びプログラム | |
JP3737788B2 (ja) | 基本周波数パターン生成方法、基本周波数パターン生成装置、音声合成装置、基本周波数パターン生成プログラムおよび音声合成プログラム | |
JP4034751B2 (ja) | 音声合成装置、音声合成方法および音声合成プログラム | |
JP3576792B2 (ja) | 音声情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150513 |
|
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: 20160802 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160815 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Ref document number: 5999092 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |