(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-20
(45)【発行日】2022-10-28
(54)【発明の名称】音声合成装置、方法及びプログラム
(51)【国際特許分類】
G10L 13/02 20130101AFI20221021BHJP
G10L 13/08 20130101ALI20221021BHJP
【FI】
G10L13/02 110Z
G10L13/08 110A
(21)【出願番号】P 2019178049
(22)【出願日】2019-09-27
【審査請求日】2021-08-06
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】西澤 信行
【審査官】辻 勇貴
(56)【参考文献】
【文献】国際公開第2018/151125(WO,A1)
【文献】特開平02-029798(JP,A)
【文献】特開2018-045630(JP,A)
【文献】栗原 清,”読み仮名と韻律記号を入力とする日本語end-to-end音声合成の音質評価”,信学技報 IEICE Technical Report SP2018-49 [online] ,日本,電子情報通信学会,2018年12月07日,vol. 118, no.354,pp.89-94
【文献】沢田 慶,"Blizzard Challenge 2017のためのNITech テキスト音声合成システム",日本音響学会 2017年 秋季研究発表会講演論文集CD-ROM [CD-ROM],日本音響学会,2017年09月
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/20-40/58
G06N 3/00-3/12
7/08-10/00
20/00-99/00
G10L 13/00-99/00
(57)【特許請求の範囲】
【請求項1】
少なくとも音素の情報を含む音声合成記号系列より、当該音声合成記号系列に対応するテキストの分散表現系列を推定する推定部と、
前記音声合成記号系列及び前記分散表現系列より、前記テキストを読み上げたものとしての合成音声波形を合成する合成部と、を備えることを特徴とする音声合成装置。
【請求項2】
前記音声合成記号系列には韻律境界の情報が含まれ、
前記推定部は、当該韻律境界によって区切られる単位ごとに、音声合成記号系列に対応するテキストの分散表現系列を推定することを特徴とする請求項1に記載の音声合成装置。
【請求項3】
前記音声合成記号系列にはアクセントの情報が含まれ、
前記推定部は、前記音声合成記号系列より前記分散表現系列を推定するに際して、所定単位ごとに推定し、当該所定単位ごとの
音声合成記号系列においてアクセント情報を利用して推定した分散表現系列と、アクセント情報を利用せずに推定した分散表現系列と、のうち信頼度が高い方を推定結果として採用することを特徴とする請求項1または2に記載の音声合成装置。
【請求項4】
前記推定部は、機械学習されたモデルを用いて、前記音声合成記号系列より前記分散表現系列を推定することを特徴とする請求項1ないし3のいずれかに記載の音声合成装置。
【請求項5】
前記推定部は、前記音声合成記号系列よりテキストを復元し、当該テキストを変換することにより前記分散表現系列を得ることを特徴とする請求項1ないし3のいずれかに記載の音声合成装置。
【請求項6】
前記
音声合成記号系列に対して、所定範囲の前後に位置する少なくとも1つの音素の種別を調べた結果を反映する変換を適用することで、コンテキストが考慮された音素系列として前記
音声合成記号系列の変換された結果を得る第一変換部をさらに備え、
前記推定部では前記変換された結果としての
音声合成記号系列より分散表現系列を推定し、
前記合成部では前記変換された結果としての
音声合成記号系列より合成音声波形を合成することを特徴とする請求項1ないし5のいずれかに記載の音声合成装置。
【請求項7】
少なくとも音素の情報を含む音声合成記号系列より、当該音声合成記号系列に対応するテキストの分散表現系列を推定する推定段階と、
前記音声合成記号系列及び前記分散表現系列より、前記テキストを読み上げたものとしての合成音声波形を合成する合成段階と、を備えることを特徴とする音声合成方法。
【請求項8】
コンピュータを請求項1ないし6のいずれかに記載の音声合成装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音声合成記号のみを入力として利用し、テキストが利用できない場合であっても、分散表現を考慮して自然な音声合成を行うことのできる音声合成装置、方法及びプログラムに関する。
【背景技術】
【0002】
音声合成技術とは音声を人工的に合成する手法である。代表的な利用方法として、テキスト音声変換(Text-To-Speech、TTS)が挙げられるが、例えば日本語では、TTSの入力となるテキストは通常、漢字仮名交じり文であり、例えば文字と合成すべき音声の特徴とを直接マッピングすることはその関係性の構造が極めて複雑であることから困難である。そこで抽象化された中間表現を用い、テキストから中間表現、中間表現から音声の特徴、という2段階の変換を経て、音声の特徴の情報にあう音声波形を信号処理的に生成、あるいは事前準備した波形の蓄積から適切なものを選択することで、合成音声波形を得ることができる。
【0003】
この中間表現としては、以下では音声合成記号を想定する。音声合成記号には様々な形式があり得るが、例えば、一連の音声を構成する音素の情報と、主としてポーズや声の高さとして表現される韻律的情報を同時に表記したものが考えられる。すなわち音声言語を記述する記号である。そのような音声合成用記号の例として、JEITA(電子情報技術産業協会)規格IT-4006「日本語テキスト音声合成用記号」がある(非特許文献1参照)。
【0004】
図1は、従来の音声合成装置の構成例に関して2種類を、第一装置100及び第二装置200として機能ブロックでそれぞれ列挙して示す図である。第一装置100は第一解析手段101及び第一合成手段103を備える。第一装置100は、第一解析手段101において漢字仮名交じり文に代表されるテキストから音声合成記号をまず生成し、次に第一合成手段103において生成した音声合成記号から音声波形を合成するという、2ステップの処理を行うことによるテキスト音声変換システムとして構成されている。
【0005】
ただしこの第一装置100の方法では、音声合成記号の記述形式では考慮されない音声の特徴を反映させた音声の合成が困難なため、従来の音声合成記号だけでなく漢字仮名交じり文からテキスト解析技術により得られる分散表現も音声波形合成処理における入力とすることで、漢字仮名交じり文から、より自然な音声を合成する方法も採用されている。第二装置200はこの方法で音声合成を行うものである。
【0006】
すなわち、第二装置200は第二解析手段201、分散表現変換手段202及び第二合成手段203を備える。第二装置200では、入力テキストより第二解析手段201(第一解析手段101と同様の機能を有する)において音声合成記号が生成されることに加えて、入力テキストは分散表現変換手段202において分散表現に変換され、入力テキストから当該生成された音声合成記号と当該変換された分散表現とを用いることにより、第二合成手段203において音声波形を合成する。
【0007】
ここで、分散表現変換手段202によって変換して得られる分散表現(埋め込み(embedding)とも呼ばれる)とは、自然言語の何らかの表現を、何らかの多次元空間にマッピングした結果のベクトルのことをいう。分散表現変換手段202では例えばWord2Vecと呼ばれる既存手法により、単語をベクトルに変換マッピングできる。
【0008】
音声合成を行う第二合成手段203は、従来の音声合成記号もベクトルにマッピングし、それら両者(分散表現及び音声合成記号)のベクトルを連結したベクトルを入力とし、音声の物理的な特徴を表すベクトルを出力する変換器をその内部に含み、この変換器を用いて音声合成を行う。
【0009】
この変換器は、あらかじめ言語情報と対応する音声の組を学習データとして用意しておき、両者の関係を機械学習手法により学習することで構築することができる。分散表現については、例えば意味的に似た単語間で分散表現のベクトル間の距離が短くなるような分散表現を用いれば、意味的に明るい印象をもつ単語の読み上げでは明るい表現の音声を合成し、一方、暗い印象をもつ単語の読み上げでは暗い表現の音声を合成するといった、より自然な音声合成を実現できる。
【先行技術文献】
【非特許文献】
【0010】
【文献】「日本語テキスト音声合成用記号」JEITA規格 IT-4006、電子情報技術産業協会、2010年3月
【文献】沢田慶、橋本圭、大浦圭一郎、南角吉彦、徳田恵一「Blizzard Challenge 2017 のためのNITech テキスト音声合成システム」日本音響学会講演論文集、2-Q-21、pp.287-290、2017年9月
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、
図1に示されるような従来のテキスト音声変換システムには、以下に説明するような、その運用のなされ方に関連した課題があった。
【0012】
すなわち、従来のテキスト音声変換システム(第一装置100及び第二装置200)では、漢字仮名交じり文のようなテキストから中間表現をまず生成し、次に生成した中間表現から音声波形を合成するという2ステップの処理が行われていた。またこの際に、中間表現としては音声合成記号用記号のような人手で比較的容易に記述可能な形式を用いていた。ここで、漢字仮名交じり文から音声合成記号への自動変換精度(第一解析手段101及び第二解析手段201での変換精度)がそれほど高くなかったことから、音声合成システムに音声合成記号を直接入力できる機構を設けておくことで、漢字仮名交じり文から音声合成記号への変換の際に生じる誤りの影響を受けずに、読み誤りのない音声合成を実現できた。
【0013】
すなわち、第一装置100においては線L11で示される第一解析手段101による自動変換結果の音声合成記号に代えて、これを修正したものとして、線L12で示されるマニュアル入力の音声合成記号を第一合成手段103への入力として利用することがあった。同様に、第二装置200においては線L21で示される第二解析手段201による自動変換結果の音声合成記号に代えて、これを修正したものとして、線L22で示されるマニュアル入力の音声合成記号を第二合成手段203への入力として利用することがあった。
【0014】
上記のようなマニュアル入力の利用により、従来の音声合成用のコンテンツ(第一装置100向けの入力データとしてのコンテンツ)には、音声合成記号だけで構成され、元のテキストである漢字仮名交じり文が含まれていない形式で表現されているものがあった。しかし、第二装置200のように、分散表現も入力に含める必要がある音声合成システムを用いる場合、分散表現を得るために元の漢字仮名交じり文が必要となり、音声合成記号だけで構成され、元の漢字仮名交じり文が含まれていない形式で表現されている当該コンテンツに対しては、適切な音声合成処理を行うことができないという課題があった。
【0015】
上記従来技術の課題に鑑み、本発明は、音声合成記号のみを入力として利用し、テキストが利用できない場合であっても、分散表現を考慮して自然な音声合成を行うことのできる音声合成装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0016】
上記目的を達成するため、本発明は、音声合成装置であって、少なくとも音素の情報を含む音声合成記号系列より、当該音声合成記号系列に対応するテキストの分散表現系列を推定する推定部と、前記音声合成記号系列及び前記分散表現系列より、前記テキストを読み上げたものとしての合成音声波形を合成する合成部と、を備えることを特徴とする。また、前記音声合成装置に対応する方法及びプログラムであることを特徴とする。
【発明の効果】
【0017】
本発明によれば、音声合成記号系列より対応するテキストの分散表現系列を推定して音声合成に利用することで、音声合成記号のみを入力として利用し、テキストが利用できない場合であっても、分散表現を考慮して自然な音声合成を行うことができる。
【図面の簡単な説明】
【0018】
【
図1】従来の音声合成装置の構成例に関して2種類を、第一装置及び第二装置として機能ブロックでそれぞれ列挙して示す図である。
【
図2】一実施形態に係る音声合成装置の機能ブロック図である。
【
図3】第四実施形態における推定部の機能ブロック図である。
【
図4】一般的なコンピュータ装置におけるハードウェア構成の例を示す図である。
【発明を実施するための形態】
【0019】
図2は、一実施形態に係る音声合成装置の機能ブロック図である。音声合成装置10は、第一変換部1、推定部2及び合成部3を備える。音声合成装置10は、その全体的な動作として、系列データとしての音声合成記号を入力として第一変換部1において受け取り、合成部3よりこの入力された音声合成記号に対応する音声データとして合成音声波形を出力する。この際の各部1,2,3の処理は以下の通りである。
【0020】
第一変換部1は、入力される系列データとしての音声合成記号を変換して、系列データとしてのベクトル形式での音声合成記号を得て、このベクトル形式に変換された音声合成記号の系列を推定部2及び合成部3へと出力する。
【0021】
後述するように推定部2や合成部3では深層学習等の機械学習を利用した処理を行う。予め、第一変換部1で音声合成記号(距離等を定義したり四則演算等を行ったりすることが不可能な記号、すなわち離散データ)を各要素が数値で与えられるベクトル形式に変換しておくことにより、ベクトル形式での音声合成記号に対して推定部2や合成部3で処理を行うことが可能となる。
【0022】
具体的に、入力される音声合成記号の系列において音素がp1,p2,…,pnとn個並んでいるものとすると、音声合成記号の系列の情報を反映したうえで、第一変換部1ではこの各音素pi(i=1,2,…n)を対応するベクトルVpi(i=1,2,…n)へと変換し、ベクトルとしての系列データVp1,Vp2,…,Vpnを推定部2及び合成部3へと出力する。
【0023】
第一変換部1における音素piからベクトルVpiへの変換は、入力データとしての音声合成記号の系列内での当該音素piの属性を表現するための所定数K個の質問を用意しておき、K個の各質問に対する当該音素piにおける答えを1と0(例えば、答えがYES(肯定)なら1とし、NO(否定)なら0とする)で表現することで、K次元のベクトルとしてベクトルVpiを得ることができる。すなわち、所定のルールベースの手法により、系列としての音声合成記号から、音素piに対応するベクトルVpiへの変換を行うことができる。
【0024】
K個の質問の各々は、以下の(1)~(3)のいずれかに該当するものとして、予め用意しておけばよい。なお、(2)に該当する質問により、音素系列p1,p2,…,pnを変換したベクトル系列Vp1,Vp2,…,Vpnにおいても、当初の入力データである音声合成記号系列における境界の情報が反映されることとなる。
(1)例えば「当該音素が『ア』であるか?」「2つ前の音素(Vpnから見てpn-2)が母音であるか?」等の、音素の種類が何であるかを問う質問
(2)例えば「当該音素の3音素前にアクセント句境界があるか?」等の、当該音素から見て所定の音素数だけ前又は後ろに当初の音声合成記号系列における所定種類の境界が配置されているかを問う質問。なお、当該音素の直前または直後に所定種類の境界が配置されているかを問う質問もこれに含まれる
(3)例えば「当該音素がアクセント核であるか?」「4音素後ろが次のアクセント核であるか?」等の、音素を発声する際の態様を問う質問
【0025】
第一変換部1では以上の(1)~(3)のような質問に基づいて、すなわち、音声合成記号の系列における音素の系列内にある各音素piに対して、所定範囲の前後(例えば前後2つであればpi-2,pi-1,pi+1及びpi+2の4個)にある少なくとも1つの音素の種別を調べた結果を反映してベクトルVpiを求めることで、音素系列の並びにおけるコンテキストを考慮したものとしてベクトルVpiを得ることができる。
【0026】
推定部2は、第一変換部1から得られるベクトル形式でのn個の音声合成記号(における音素)の系列Vp1,Vp2,…,Vpnを同n個の分散表現の系列E1,E2,…,Enへと変換し、合成部3へと出力する。当該系列における各分散表現Ek(k=1,2,…,n)は、固定サイズのベクトルとして与えられるものであり、後述する学習の際には分散表現が予め定義される単位(単語、句、又は文)ごとに与えられるものであるが、推定部2では音素ごとに分散表現を出力する。なお、第一変換部1においてコンテキストを考慮した音声合成記号の音素としてVpiを求めておき、後述する学習で得られるモデルを用いることで、例えば分散表現が音素より長い単語の単位で予め定義されていたとしても、当該単語を構成する各音素Vpiに関して、当該単語に対応する分散表現(あるいはこれに近い値のもの)として、分散表現Eiを推定部2において推定することが可能となる。
【0027】
あるいは、推定部2において、出力される分散表現Ejの推定処理に、入力されたVp1,Vp2,…,Vpnの中から対応する1個のVpiだけを選択し、それのみを考慮するのではなく、例えば再帰型ニューラルネット(RNN)や畳み込みニューラルネット(CNN)等の複数のVpiを考慮した形でEjを推定する手法を用いる場合、当該音素に直接関係しない質問は、別の音素に対する質問で同等の質問が含まれてそちらを通じて推定で考慮できる。すなわち当該音素に直接関係しない質問(換言すれば、当該音素の前後のコンテキストに関する質問)は冗長な質問になるので、当該音素に直接関係する質問だけで上記の第一変換部におけるK個の質問を構成する方法も可能である。すなわち、第一変換部1ではコンテキストを考慮しない形でベクトルVpiを得ることも可能である。
【0028】
推定部2では、学習データとして予め入力(n個の音声合成記号の系列Vp1,Vp2,…,Vpn)とこれに対応する出力(同n個の分散表現の系列E1,E2,…, En)とを多数用意しておき、この学習データを用いて予め学習しておいたモデルを利用することにより、音声合成記号の系列から分散表現の系列を得ることができる。学習モデルに関してはGMM(混合ガウス分布)やDNN(深層ニューラルネットワーク)等の任意の既存手法を用いてよい。この学習の詳細に関しては後述する。
【0029】
図3を参照して後述する手法のように、学習データ(音声合成記号系列⇒分散表現系列)を用意するに際しては、音声合成記号系列から対応するテキストを例えば人手により復元したうえで、この復元テキストから分散表現系列を求める(「音声合成記号系列⇒テキスト⇒分散表現系列」と求める)ようにしてもよい。
【0030】
合成部3は、第一変換部1で得たベクトル変換された音声合成記号における各音素の情報の系列Vp1,Vp2,…,Vpnと、推定部2で得た分散表現の系列E1,E2,…,Enと、を入力として音声合成を行うことにより、合成音声波形を出力する。ここで、音声合成は音声合成記号における音素の単位で行えばよい。
【0031】
合成部3ではこの等しいサイズnの系列を組み合わせた系列(Vp1,E1),(Vp2,E2),…,(Vpn,En)より波形系列W1,W2,…,Wnとして合成音声波形を得ることができる。系列を組み合わせる際は、ベクトルとしてのサイズを拡張する形で組み合わせればよい。すなわち、系列の各要素(Vpi,Ei)(i=1,2,…,n)は、ベクトル変換された音声記号Vpiが既に説明したようにK個の質問の回答を反映したK次元のベクトルであり、分散表現EiがL次元のベクトルであるとすると、K+L次元のベクトルである。このベクトル(Vpi,Ei)においては、1番目~K番目のK個の要素がベクトル変換された音声記号Vpiの要素をその順番で並べたもので構成され、K+1番目~K+L番目のL個の要素が分散表現Eiの要素をその順番で並べたもので構成される。
【0032】
合成部3において入力ベクトル(Vp
i,E
i)から出力波形W
i(後述するように、メルケプストラムなどの音響特徴パラメータが対応する音声波形)を合成する処理は、
図1の第二装置200の第二合成手段203で用いる合成器として既に説明したのと同様に、学習データとしての入力ベクトル(Vp
i,E
i)及び出力波形W
i(音響特徴パラメータの形式)を多数用意しておき、この入出力関係を任意の既存の機械学習の手法により予め学習したモデルを用いて音響特徴パラメータを求め、これより信号処理的に音声波形を合成することができる。(なお、学習に関しては後述する。)
【0033】
合成部3から得られる合成音声波形としての波形系列W1,W2,…,Wnは、第一変換部1への入力である音声合成記号系列に対応するテキストの読み上げ音声として構成され、合成の際に当該テキストの分散表現が音響特徴パラメータに対して反映されることにより、自然性の高い音声となる。(なお、後述するように、音響特徴パラメータを介さないで直接に波形合成する場合も、同様の効果が得られる。)
【0034】
なお、推定部2及び合成部3の学習については後述する。
【0035】
以上、本発明の一実施形態に係る音声合成装置10によれば、より高い自然性を得るために、音声合成記号に加え、漢字仮名交じり文等のテキストから推定される分散表現を入力情報として音声合成を行うシステム構成(
図1の第二装置200の構成)を踏まえつつ、システムの入力として音声合成記号のみが与えられた場合でも、分散表現を音声合成記号から推定する機構としての推定部2を設けることで、自然性の高い音声を合成することが可能である。
【0036】
なお、音声合成記号から元のテキストの分散表現や元のテキスト自体が推定可能であることから、音声合成記号には対応する言語情報を復元できるだけの情報が含まれていて、音声合成記号だけからでも合成部3で言語情報を考慮した音声の合成が可能であるとも考えられる。しかし実際には、合成部3の出力は音声から推定される情報なので、機械学習手法による場合、モデル学習のために大量の音声が必要である。一方で機械学習手法を用いないと、入出力間の複雑な関係を扱うのは困難である。しかし、音声合成記号と対応するテキストとの関係については、双方がシンボリックな情報であることから、大量の学習データを用いることがより容易である。そして、音声合成記号だけでなく分散表現も陽に入力することで、合成部3の学習において、限られた音声だけからでも分散表現の影響を考慮したモデル学習ができ、結果として言語情報を反映したより自然な音声の合成が可能となる。
【0037】
以下、音声合成装置10が合成音声波形を得るための事前処理として必要となる、推定部2及び合成部3の学習に関してこの順番で説明する。
【0038】
<推定部2の学習>
推定部2が音声合成記号系列から分散表現系列を出力するために用いるモデルは、以下の第1~第4手順によって学習して構築することができる。
【0039】
(第1手順)学習用テキストに対して自動変換により(あるいはこの自動変換結果をさらに適宜、マニュアル修正することにより、)音声合成記号の系列を得る。
(第2手順)上記学習用テキストより単語系列を得る。
(第3手順)上記第1及び第2手順の結果を照合することにより、(ルールベース等により自動処理で照合することにより、あるいはこの自動処理の照合結果に対してさらに適宜、マニュアル修正することにより、)単語と音声合成記号との対応関係を取得する。
【0040】
(第4手順)上記第3手順で対応関係が取得された各単語をWord2Vec等の既存手法により分散表現に変換することで、分散表現と音声合成記号との対応関係を、学習データとして取得する。すなわち、当該学習データは、音声合成記号の列(1文に対応したような長さの列ではなく単語に対応した長さの列)と、対応する分散表現の組を与えたものとして構成される。
【0041】
例えば「音素」という単語に対応する3つの音素「オ」、「ン」、「ソ」に関して、「音素」という単語の分散表現がE[音素]であれば、これら3つの音素に関してそれぞれ元の単語の分散表現を紐づけた(「オ」⇔E[音素])、(「ン」⇔E[音素])、(「ソ」⇔E[音素])という形で学習データが得られる。
【0042】
(第5手順)上記第4手順で得た学習データを用いて任意の既存手法の機械学習を行うことにより、音声合成記号から分散表現を推定するモデルを生成する。
【0043】
<合成部3の学習>
合成部3が音声合成記号と分散表現とを併合した系列から合成音声波形(音響特徴パラメータ系列)を出力するために用いるモデルは、以下の第1~第3手順によって学習して構築することができる。
【0044】
(第1手順) 学習データの元となるデータとして以下(1)~(3)を用意する。
(1)音声(音響パラメータ系列)
(2)当該音声に対応する音声合成記号の系列
(3)当該音声合成記号の系列に対応する分散表現の系列
【0045】
ここで、(1)の音声に関して、自然な音声としてナレータの音声を収録して用いるのが望ましい。(2)の音声合成記号系列に関して、テキスト(上記音声の原稿等として上記音声に対応するテキスト)を自動変換することによって作成する、又は、人手による音声聴取や既存の音声認識技術等により作成すればよい。
【0046】
(3)の分散表現系列に関して、前述した推定部2の学習における第1~第4手順と同様にして取得してもよいし、学習済みの推定部2に対して音声合成記号系列を入力して得られる出力として取得してもよい。なお、後者は例えば音声の原稿(テキスト)が残っていない等で使えない場合にも適用できる。
【0047】
(第2手順) 上記用意した元となるデータより以下(A)~(C)のセットを学習データとして自動及び/又は手作業で作成する。
(A)コンテキストを考慮した音素の情報
(B)音素に対応する分散表現
(C)音素に対応する音声(時間的に切り出したもの、音響特徴パラメータ)
【0048】
ここで、(A)に関して、元データ(2)の音声合成記号の系列に対してさらに、第一変換部1と同様の処理によって変換しベクトル形式のものとして得る。前述したK個の質問としてコンテキストが考慮されたものを用いることで、コンテキストが考慮された、ベクトルとしての音素情報の系列を得ることができる。(音声合成記号に音素の情報が含まれているため。)
【0049】
(B)に関して、(A)と元データ(3)とを照合して得ることができる。(C)に関して、(A)と元データ(1)とを照合して得ることができる。
【0050】
(第3手順)
上記作成した学習データの(A)及び(B)から(C)を予測するモデルを、機械学習等の任意の既存手法により学習する。
【0051】
以下さらに、本発明の追加的ないし変形的な実施形態等に関する説明を行う。なお、説明の明確化の観点から、以上説明してきた実施形態を第一実施形態と称する。
【0052】
(1)…第二実施形態
第一実施形態では、推定部2において単語単位の分散表現の学習データで学習されたモデルを用いて音素単位での分散表現系列を出力していた。すなわち、出力される分散表現系列は、対応する単語に該当する複数の音素ごとにその値が概ね変化するものであった。(例えば「音素」という単語の「オ」、「ン」、「ソ」の3つの音素に関して3つの概ね等しい値の分散表現が得られるものであった。)第二実施形態は、推定部2において同様に音素単位で分散表現系列を出力するが、対応する単語の単位で概ね変化するものではなく、韻律境界で区切られる単位で概ね変化するように、第一実施形態での推定部2の出力に対して加工を施す。当該加工により合成部3での合成音声の精度向上が期待される。
【0053】
具体的には、推定部2において、第一変換部1への入力としての当初の音声合成記号の系列を参照することで、あるいは、K個の質問への回答として値が定義され第一変換部1より出力された音声合成記号の系列Vp1,Vp2,…,Vpnの該当要素の値を参照することで、韻律境界に該当する箇所を抽出し、この韻律境界で区切られた音声記号系列を、共通の値となる分散表現を推定する単位として利用する。
【0054】
すなわち、韻律境界によって当初のn個の音声合成記号の系列Vp1,Vp2,…,Vpnがn'個(n'<n)のサブ系列Vp1',Vp2',…,Vpn'に分割されたものとする。(すなわち、サブ系列の各々Vpk'(k=1,2,…,n')は当初のn個の音声合成記号の系列Vp1,Vp2,…,Vpnの連続した一部分を抽出したものとして構成される。例えば、Vp1'=(Vp1,Vp2,…,VpK)(K≧2)である。)推定部2では、このサブ系列の各々Vpk'を対応する共通の値の分散表現Ek'へと変換すればよい。例えば、Vp1'=(Vp1,Vp2,…,VpK)(K≧2)のK個の音素情報の全てに関して、共通の分散表現E1'へと変換されたものとして、変換結果を得る。
【0055】
なお、音声合成記号にはアクセント句境界やフレーズ境界、ポーズと言った韻律境界記号が含まれており、元のテキストにおける文節の区切りの位置に韻律境界ができやすいことは知られている。従って、個別のサブ系列Vpk'は一般に複数の単語に対応するので、分散表現が予め単語単位で定義されるものである場合、分散表現が、平均操作が可能で、かつ、それにより有効な情報が得られるような種類のものであれば、サブ系列Vpk'に対応する複数の単語の分散表現をそれぞれ求め、それらの平均として、対応する分散表現Ek'を定めればよい。平均操作が不適切あるいは不可能な場合は、例えば、複数単語の先頭の単語の分散表現を用いる、複数単語の中間の一の単語の分散表現を用いる、複数単語の中からランダムに選んだ単語の分散表現を用いる、といった何らかの所定の手段により分散表現を定めればよい。
【0056】
第二実施形態では次の効果が得られる。すなわち、韻律境界記号で区切られた音声合成記号の部分列が、「名詞」「名詞+助詞」「名詞の一部を構成する形態素」のようなある程度決まった形になりやすく、システム(推定部2)としてはサブ系列の系列から分散表現を求めるケースを考慮する必要があるとしても、1つのサブ系列が1つの分散表現に対応するようなケースが増えることにより、分散表現の推定がより簡単になり、その精度が上がることが期待される。
【0057】
第二実施形態の推定部2では、分散表現を出力するのに用いるモデル学習に際して、次のようにしてもよい。付属語(助詞や助動詞)の分散表現は考慮せず、代わりに当該付属語の前に位置している自立語の分散表現を用いるようにしてよい。すなわち、前述した推定部2でのモデル学習の際の第4手順において単語をWord2Vec等により分散表現へと変換する際に、このように自立語のみから分散表現を求める(付属語の分散表現は、Word2Vec等で変換するのではなく、前に付属する自立語の分散表現を用いる)ようにしてよい。付属語は一般に短く、その音声表現は直前の自立語の影響が極めて大きいと考えられることから、これにより、合成部3においてより適切な音声表現の音声波形を出力できることが期待される。
【0058】
(2)…第三実施形態
第三実施形態は、第一実施形態に対する追加処理として、音声合成記号に含まれるアクセントの情報を利用し、音声合成のための分散表現の推定においてアクセント情報を利用するか否かをデータ系列内において選択的に切り替えるものである。第三実施形態は、アクセントの情報に関する次のような事情を考慮したものである。すなわち、音声合成記号にはアクセント記号が含まれているが、アクセントの正確な自動生成は難しいため、十分な数の学習データが得られない場合が多い。一方、アクセント情報を含めなければ、自動生成で作成した読みのデータにある程度の精度が期待できる。ただし、アクセント情報が違う同じ音素列の単語の区別(例えば「橋」と「箸」の区別)ができなくなり、逆に性能が低下する場合も考えられる。
【0059】
そこで、推定部2において分散表現を推定するに際して、音声合成記号に含まれるアクセントの情報も利用して、分散表現をその信頼度と共に推定する第一処理と、音声合成記号に含まれるアクセントの情報を利用せずに、分散表現をその信頼度と共に推定する第二処理と、を実施する。ここで信頼度は学習データ中に出現した事例数が多いほどその値が高くなるように定義すればよい。(なお、第一実施形態の推定部2は、音声合成記号に含まれるアクセント情報を利用する/しないのいずれにおいても実施可能である。)
【0060】
信頼度を与えるための事例数は次のように算出すればよい。すなわち、推定部2の学習の第4手順において、分散表現と音声合成記号との対応関係を学習データとして取得するが、この際に、学習データ内に存在する音声合成記号に対応する単語の個数よりその信頼度を所定計算式等で計算し、信頼度も紐づけておく。すなわち、第一実施形態において「音声合成記号→分散表現」という形式であった学習データに追加の加工を施し、第三実施形態では「音声合成記号→分散表現及びその信頼度」という形の学習データとし、これにより第5手順の学習を行い、分散表現及びその信頼度を推定するモデルを得る。(既に説明したように、アクセント情報を利用する学習データによる第一モデルと利用しない学習データによる第二モデルとを得る。)第三実施形態で推定部2は第一モデルを用いて上記の第一処理を行い、第二モデルを用いて上記の第二処理を行うことができる。
【0061】
推定部2はさらに、第一処理で推定された信頼度と第二処理で推定された信頼度とを比較し、第一処理及び第二処理でそれぞれ推定された分散表現のうち、信頼度が高い方の分散表現を、合成部3へと出力するようにすればよい。
【0062】
この第三実施形態においては、推定部2で分散表現を推定する所定の単位(単語、句又は文や、第二実施形態を組み合わせる場合においては韻律境界で区切られる範囲)ごとに、第一処理又は第二処理のうち信頼度の高い方の分散表現を採用することとなり、結果として、合成部3から得られる音声合成波形においても、音声合成波形を合成するための入力としての分散表現を介して間接的に、アクセント情報を利用する/しないが選択的に切り替えられることとなる。第二実施形態を組み合わせる場合、韻律境界で区切られる範囲において、第一処理での信頼度の総和と、第二処理での信頼度の総和と、を比較し、この総和が大きい方の分散表現を合成部3へと出力するようにすればよい。
【0063】
なお、アクセント情報の利用の有無を切り替えるのは推定部2に関してであり、合成部3において音声合成波形を得るに際しては、常にアクセント情報を用いる。すなわち、推定部2で第一処理(アクセント情報あり)が適用された箇所と、推定部2で第二処理(アクセント情報なし)が適用された箇所のいずれも、第一変換部1から得られる音声合成記号に含まれるアクセント情報を音声合成に用いる。
【0064】
なお、推定部2で分散表現を推定するための第一処理及び第二処理に関してはそれぞれ、アクセント情報を利用した学習データと、アクセント情報を利用しない(アクセント情報がないものとして削除した)学習データと、を用いて、別個の第一モデル及び第二モデルを学習しておき、これらを用いて実施することができる。第一実施形態でも説明したように、学習は任意の機械学習の手法を用いてよい。
【0065】
(3)…第四実施形態
第四実施形態は、第一実施形態における推定部2の変形例であり、第一実施形態では機械学習等により音声合成記号系列から直接、分散表現系列を推定していたのに対し、第四実施形態では、音声合成記号系列から一度テキストを復元したうえで、当該テキストから分散表現系列を得るという構成を取る。
図3は、この第四実施形態における推定部2の機能ブロック図である。推定部2は、復元部21及び第二変換部22を備える。
【0066】
復元部21は、第一変換部1で得られたベクトル形式の音声合成記号系列より、元のテキストを復元して、当該テキストを第二変換部22へと出力する。あるいは、復元部21で用いる入力は、第一変換部1で得られたベクトル形式の音声合成記号系列ではなく、第一変換部1への入力としての(ベクトル形式ではない当初の)音声合成記号系列を用いるようにしてもよい。復元部21において音声合成記号系列から元のテキストを復元する処理には、既存技術である音声認識におけるディクテーションを利用すればよい。すなわち、音声認識におけるディクテーションは音声の物理的特徴からまず音素列を推定し、推定された音素列から漢字仮名交じり文であるテキストを出力する構造となっており、復元部21はこの後者の機構(予めモデル等を学習しておく)を用いることで実現できる。
【0067】
第二変換部22は、復元部21から得た復元されたテキストを、分散表現系列へと変換して、合成部3へと出力する。第二変換部22は、既に説明した通り、既存手法であるWord2Vec等で実現することができる。
【0068】
以下、種々の補足事項を説明する。
【0069】
(A) 第二実施形態の変形例として、音素や音節単位で分割し、それぞれ分散表現を推定する構成でもよい。この場合、音声合成記号のコンテキストを考慮して分散表現を推定する方法がより有効である。
【0070】
(B) 前述の通り、第一実施形態において合成部3は「(分散表現及び音声合成記号)→(特徴パラメータ)→(波形)」の2段階の処理で合成音声波形を出力する。すなわち、1段階目の処理として、音声の複数種類の特徴パラメータを機械学習的に予測し、2段階目の処理として、既存手法の音声合成で行われているのと同様に、予測されたパラメータに基づき、信号処理的に、例えば、特徴パラメータの一部でその基本周波数が制御されるインパルス列を音源と、別の特徴パラメータで制御されるフィルタを用意し、音源波形をフィルタに通して最終的に音声波形を合成する方法を用いて出力波形を生成することができる。一方、別の実施形態として、このように2段階の処理を経るのに代えて、合成部3では特徴パラメータを途中で求めることなく、「(分散表現及び音声合成記号)→(波形)」と1段階の処理で直接、出力波形を生成してもよい。この場合も同様に、予め用意しておく学習データを用いた機械学習により、直接に出力波形を予測することができる。
【0071】
(C) また、説明ではJEITA IT-4006を例として、その音韻記号を1音素に対応するものとして説明したが、ここで「音素」とは音声合成処理上の抽象的な単位である。前述の全ての実施形態は1単語や1文節に対応するような長い単位を1つの「音素」として含むケースや、音声学的な1音素よりも細かい単位を「音素」として扱う場合を含む。
【0072】
(D)
図4は、一般的なコンピュータ装置70におけるハードウェア構成の例を示す図である。音声合成装置10は、このような構成を有する1台以上のコンピュータ装置70として実現可能である。コンピュータ装置70は、所定命令を実行するCPU(中央演算装置)71、CPU71の実行命令の一部又は全部をCPU71に代わって又はCPU71と連携して実行する1つ以上の専用プロセッサ72(GPU(グラフィックス処理装置)や深層学習専用プロセッサ等)、CPU71及び専用プロセッサ72にワークエリアを提供する主記憶装置としてのRAM73、補助記憶装置としてのROM74、通信インタフェース75、ディスプレイ76、マウス、キーボード、タッチパネル等によりユーザ入力を受け付ける入力インタフェース77、スピーカ78と、これらの間でデータを授受するためのバスBSと、を備える。
【0073】
音声合成装置10の各部は、各部の機能に対応する所定のプログラムをROM74から読み込んで実行するCPU71及び/又は専用プロセッサ72によって実現することができる。ここで、表示関連の処理が行われる場合にはさらに、ディスプレイ76が連動して動作し、ネットワーク上でのデータ送受信に関する通信関連の処理が行われる場合にはさらに通信インタフェース75が連動して動作する。合成部3で得た合成音声波形は、スピーカ78から再生して出力するようにしてもよい。
【符号の説明】
【0074】
10…音声合成装置、1…第一変換部、2…推定部、3…合成部