(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022127898
(43)【公開日】2022-09-01
(54)【発明の名称】声質変換装置、声質変換方法及びプログラム
(51)【国際特許分類】
G10L 21/007 20130101AFI20220825BHJP
G10L 21/013 20130101ALI20220825BHJP
G10L 25/69 20130101ALI20220825BHJP
G10L 19/038 20130101ALI20220825BHJP
【FI】
G10L21/007
G10L21/013
G10L25/69
G10L19/038
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2021026128
(22)【出願日】2021-02-22
(71)【出願人】
【識別番号】504133110
【氏名又は名称】国立大学法人電気通信大学
(74)【代理人】
【識別番号】110000925
【氏名又は名称】特許業務法人信友国際特許事務所
(72)【発明者】
【氏名】大西 弘太郎
(72)【発明者】
【氏名】中鹿 亘
(57)【要約】
【課題】ノンパラレルで高品質な声質変換がリアルタイムで行えるようにする。
【解決手段】学習用変換工程として、エンコーダでの量子化とデコーダでの変換を、入力話者の話者ラベルを使って行うと共に、エンコーダでの量子化とデコーダでの変換を、不特定の変換先話者の話者ラベルを使って行う。学習用変換工程で入力話者の話者ラベルを使って変換された音声データが自然音声に近いか否かの判定結果と、学習用変換工程で不特定の変換先話者の話者ラベルを使って変換された音声データが自然音声に近いか否かの判定結果とに基づいて損失関数を算出し、パラメータを更新する。この更新されたパラメータがセットされたエンコーダとデコーダとを使って、入力話者の音声を、特定の変換先話者の音声に変換する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
入力話者の音声データをエンコーダで量子化データに変換し、変換された前記量子化データをデコーダで音声データに変換する際の話者ラベルを、変換先話者の話者ラベルに差し替えることで、前記入力話者の音声を前記変換先話者の音声に声質変換する声質変換装置であって、
前記エンコーダにセットされるパラメータ及び前記デコーダにセットされるパラメータは、事前の学習によって、入力話者の音声データを前記エンコーダで変換した後、前記入力話者の話者ラベルで変換したデータと、入力話者の音声データを前記エンコーダで変換した後、前記入力話者との音声データの話者ラベルとは異なる別の話者ラベルで変換したデータとのそれぞれが、自然音声に近いか否かの識別結果から算出した損失関数に基づいてセットされたものである、
声質変換装置。
【請求項2】
入力話者の音声データをエンコーダで量子化データに変換し、変換された前記量子化データをデコーダで音声データに変換する際の話者ラベルを、変換先話者の話者ラベルに差し替えることで、前記入力話者の音声を前記変換先話者の音声に声質変換する声質変換方法であって、
前記エンコーダでの量子化と前記デコーダでの変換を、前記入力話者の話者ラベルを使って行うと共に、前記エンコーダでの量子化と前記デコーダでの変換を、不特定の前記変換先話者の話者ラベルを使って行う学習用変換工程と、
前記学習用変換工程で前記入力話者の話者ラベルを使って変換された音声データが自然音声に近いか否かの判定結果と、前記学習用変換工程で不特定の前記変換先話者の話者ラベルを使って変換された音声データが自然音声に近いか否かの判定結果とに基づいて損失関数を算出し、算出した損失関数に基づいて前記エンコーダと前記デコーダのパラメータを更新するパラメータ学習工程と、
前記パラメータ学習工程で更新されたパラメータがセットされた前記エンコーダと前記デコーダとを使って、前記入力話者の音声を、特定の変換先話者の音声に変換する声質変換工程と、を含む
声質変換方法。
【請求項3】
前記エンコーダ及び前記デコーダで変換されていない自然音声の音声データと、前記デコーダで変換された音声データとを使って、音声データが自然音声に近いか否かの判定を行う識別器のパラメータを更新した上で、前記パラメータ学習工程を実行する
請求項2に記載の声質変換方法。
【請求項4】
前記パラメータ学習工程で自然音声に近いか否かの判定を行う際には、前記デコーダで変換されたそれぞれの音声データを、話者ラベルを使って変換したデータから自然音声に近いか否かの判定を行うと共に、話者ラベルを使わずに変換したデータから自然音声に近いか否かの判定を行い、それぞれの判定で損失関数を算出する
請求項3に記載の声質変換方法。
【請求項5】
前記学習用変換工程として、
前記入力話者の話者ラベルを使って前記デコーダで変換する際に、前記入力話者の基本周波数で変換を行うと共に、
前記不特定の変換先話者の話者ラベルを使って前記デコーダで変換する際に、前記入力話者の基本周波数を変換した前記不特定の変換先話者の基本周波数で変換を行う
請求項2~4のいずれか1項に記載の声質変換方法。
【請求項6】
入力話者の音声データをエンコーダで量子化データに変換し、変換された前記量子化データをデコーダで音声データに変換する際の話者ラベルを、変換先話者の話者ラベルに差し替えることで、前記入力話者の音声を前記変換先話者の音声に声質変換する処理を、コンピュータに実行させるプログラムであって、
前記エンコーダでの量子化と前記デコーダでの変換を、前記入力話者の話者ラベルを使って行うと共に、前記エンコーダでの量子化と前記デコーダでの変換を、不特定の前記変換先話者の話者ラベルを使って行う学習用変換ステップと、
前記学習用変換ステップで前記入力話者の話者ラベルを使って変換された音声データが自然音声に近いか否かの判定結果と、前記学習用変換ステップで不特定の前記変換先話者の話者ラベルを使って変換された音声データが自然音声に近いか否かの判定結果とに基づいて損失関数を算出し、算出した損失関数に基づいて前記エンコーダと前記デコーダのパラメータを更新するパラメータ学習ステップと、
前記パラメータ学習ステップで更新されたパラメータがセットされた前記エンコーダと前記デコーダとを使って、前記入力話者の音声を、特定の変換先話者の音声に変換する声質変換ステップと、を前記コンピュータに実行させる
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、任意話者の声質を別の話者の声質に変換する声質変換装置及び声質変換方法、並びにその声質変換方法を実行するプログラムに関する。
【背景技術】
【0002】
従来、入力話者音声の音韻情報を保存したまま、話者性に関する情報のみを出力話者のものへ変換させる技術である声質変換の分野では、モデルの学習時において、入力話者と出力話者の同一発話内容による音声対であるパラレルデータを使用するパラレル声質変換が主流であった。
パラレル声質変換としては、GMM(Gaussian Mixture Model)に基づく手法、NMF(Non-negative Matrix Factrization)に基づく手法、DNN(Deep Neural Network)に基づく手法など、様々な統計的アプローチが提案されている(特許文献1参照)。
【0003】
パラレル声質変換では、パラレルデータを使用するというパラレル制約のおかげで比較的高い精度が得られる反面、学習データとしては入力話者と出力話者の発話内容を一致させる必要があるため、利便性が損なわれてしまうという問題があった。
【0004】
これに対して、モデルの学習時に上述のパラレルデータを使用しない非パラレル声質変換が注目を浴びている。非パラレル声質変換は、パラレル声質変換に比べて精度面で劣るものの自由発話を用いて学習を行うことができるため利便性や実用性は高い。非特許文献1には、入力話者の音声と出力話者の音声を用いて事前に個々のパラメータを学習しておくことで、学習データに含まれる話者を入力話者又は目標話者とする声質変換を可能とする技術が記載されている。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【非特許文献1】T. Nakashika, T. Takiguchi, and Y. Ariki: "Parallel-Data-Free, Many-To-Many Voice Conversion Using an Adaptive Restricted Boltzmann Machine,” Proceedings of Machine Learning in Spoken Language Processing (MLSLP) 2015, 6 pages, 2015.
【発明の概要】
【発明が解決しようとする課題】
【0007】
声質変換を行うために高品質な音声波形を生成する手法の一つとして、VAE(Variational AutoEncoder)を拡張したVQVAE(Vector Quantised VAE)が提案されている。
図12は、VQVAEを適用して非パラレル声質変換を行う構成の概要を示す図である。
話者音声V1は、エンコーダ1に入力され、量子化データQ1が得られる。このときの符号化では、話者音声V1に適したコードブックC1が用意される。
【0008】
そして、声質変換を行うために、量子化データQ1がデコーダ2でVQVAEの手法により変換される。デコーダ2での変換時には、変換先話者の音声の特徴を示す話者ラベルSL1がデコーダ2に入力され、変換された音声が変換先話者音声V2になる。
このような
図12の構成によるVQVAEを使った声質変換は、ノンパラレルで高品質であるものの、非常に変換が遅いという問題があった。
【0009】
本発明の目的は、ノンパラレルで高品質な声質変換をリアルタイムで行うことができる声質変換装置、声質変換方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0010】
本発明の声質変換装置は、入力話者の音声データをエンコーダで量子化データに変換し、変換された量子化データをデコーダで音声データに変換する際の話者ラベルを、変換先話者の話者ラベルに差し替えることで、入力話者の音声を変換先話者の音声に声質変換する声質変換装置であって、
エンコーダにセットされるパラメータ及びデコーダにセットされるパラメータは、事前の学習によって、入力話者の音声データをエンコーダで変換した後、入力話者の話者ラベルで再構成したデータと、入力話者の音声データをエンコーダで変換した後、入力話者との音声データの話者ラベルとは異なる別の話者ラベルで変換したデータとのそれぞれが、自然音声に近いか否かの識別結果から算出した損失関数に基づいてセットされたものである。
【0011】
本発明の声質変換方法は、入力話者の音声データをエンコーダで量子化データに変換し、変換された量子化データをデコーダで音声データに変換する際の話者ラベルを、変換先話者の話者ラベルに差し替えることで、入力話者の音声を変換先話者の音声に声質変換する声質変換方法であって、
エンコーダでの量子化とデコーダでの変換を、入力話者の話者ラベルを使って行うと共に、エンコーダでの量子化とデコーダでの変換を、不特定の変換先話者の話者ラベルを使って行う学習用変換工程と、
学習用変換工程で入力話者の話者ラベルを使って再構成された音声データが自然音声に近いか否かの判定結果と、学習用変換工程で不特定の変換先話者の話者ラベルを使って変換された音声データが自然音声に近いか否かの判定結果とに基づいて損失関数を算出し、算出した損失関数に基づいてエンコーダとデコーダのパラメータを更新するパラメータ学習工程と、
パラメータ学習工程で更新されたパラメータがセットされたエンコーダとデコーダとを使って、入力話者の音声を、特定の変換先話者の音声に変換する声質変換工程と、を含むものである。
【0012】
また、本発明のプログラムは、上記声質変換方法の各工程をコンピュータに実行させるものである。
【発明の効果】
【0013】
本発明によれば、声質変換を行う際のデコーダとエンコーダを、入力話者に合わせて適切に学習することができるので、リアルタイムで高品質な声質変換を行うことが可能になる。
【図面の簡単な説明】
【0014】
【
図1】本発明の一実施の形態例の声質変換装置の学習処理を行う全体構成例を示す図である。
【
図2】本発明の一実施の形態例の声質変換装置のエンコーダの構成例を示すブロック図である。
【
図3】本発明の一実施の形態例の声質変換装置のデコーダの構成例を示すブロック図である。
【
図4】本発明の一実施の形態例のデコーダ内のデコーダブロックの構成例を示すブロック図である。
【
図5】本発明の一実施の形態例の識別器の構成例を示すブロック図である。
【
図6】本発明の一実施の形態例の声質変換装置の音声変換処理を行う全体構成例を示す図である。
【
図7】本発明の一実施の形態例の声質変換装置をコンピュータで構成した場合のハードウェア構成例を示すブロック図である。
【
図8】本発明の一実施の形態例による声質変換の処理全体の流れを示すフローチャートである。
【
図9】本発明の一実施の形態例による前処理を示すフローチャートである。
【
図10】本発明の一実施の形態例による学習処理を示すフローチャートである。
【
図11】本発明の一実施の形態例による声質変換処理を示すフローチャートである。
【
図12】従来の声質変換装置の構成例を示す図である。
【発明を実施するための形態】
【0015】
以下、本発明の一実施の形態例(以下、「本例」と称する)を、
図1~
図11を参照して説明する。
【0016】
[学習を行う際の構成]
図1は、本例の声質変換装置が学習処理を行う構成例を示す図である。
学習処理時には、変換前の音声である話者音声V11を用意する。この話者音声V11は、一定の長さ(時間)の音声データである。そして、学習処理時には、話者音声V11をエンコーダ11で符号化して、量子化データQ11を得る。量子化データQ11は、デコーダ13で話者ラベルSL11を使ってデコードされ、再構成音声V11′に変換される。話者ラベルSL11は、話者音声V11の話者である変換前の話者の音声特徴を示すデータである。
【0017】
また、話者音声V11をエンコーダ11で符号化して、量子化データQ12を得る。量子化データQ12は、デコーダ13で話者ラベルSL12を使ってデコードされ、変換先話者音声V12に変換される。話者ラベルSL12は、変換先話者の音声特徴を示すデータである。
これらのエンコーダ11とデコーダ13は、学習用変換部を構成する。
【0018】
エンコーダ11は、一例を示すと、1次元畳み込みニューラルネットワーク(Convolutional Neural Network; CNN)によって例えば音声信号の1/64の長さの特徴量を抽出し、512個のベクトルへと量子化するものである。
【0019】
図2は、エンコーダ11の構成例を示す。
図2に示すように、エンコーダ11は、複数段の畳み込み部101~108を接続した構成とされ、話者音声V11から潜在表現としての量子化データQ11を得る。各畳み込み部101~108でのパラメータは、
図1に示す判定器18、19における判定結果に基づいて更新される。量子化データQ11は、
図1に示すようにコードブックC11を使って符号化されたものである。
また、話者音声V11は、基本周波数抽出部21に供給されて、話者音声V11の基本周波数f0が抽出される。ここでは、話者音声V11の全ての区間の音声データの平均及び分散を算出して、基本周波数f0が抽出される。本明細書で述べる基本周波数は、全て所定の区間の音声データの平均及び分散を算出したものである。話者音声V11の基本周波数f0は、事前に話者の音声の周波数を解析して、解析した周波数の平均及び分散から算出しておくこともできる。
【0020】
エンコーダ11で得られた量子化データQ11は、デコーダ13に供給され、音声データに変換される。このとき、デコーダ13には、基本周波数抽出部21で抽出された基本周波数f0が供給される。また、デコーダ13には、話者音声V11の特徴量(音響特徴量,音韻特徴量など)を示す話者ラベルSL11が供給され、話者ラベルSL11を使って再構成音声V11′が得られる。
【0021】
図3は、デコーダ13の構成例を示す。
図3に示すように、デコーダ13は、デコーダブロック201~204を複数段接続した構成とされる。そして、それぞれのデコーダブロック201~204に順にデータが供給される。また、各デコーダブロック201~204には、話者音声の特徴量を示す話者ラベルSL11が供給される。
各段のデコーダブロック201~204の変換出力は、アップサンプリング部211、213、215を介して、加算器212、214、216で次段のデコーダブロック201~204の変換出力と加算され、最終段の加算器216から再構成音声V11′のデータが得られる。
【0022】
図4は、デコーダブロック201~204の構成例を示す。
図4では、デコーダブロック202として説明するが、デコーダブロック201,203,204も同様に説明することができる。但し、初段のデコーダブロック201については、
図4に示すアップサンプリング部211と加算器212は存在せず、畳み込み部225の出力をアップサンプリング部211に供給する構成である点が、
図4とは相違する。
デコーダブロック201は、転置畳み込み部(Transpose Convolution)221と、畳み込み部(Dilated Convolution)222、223、225と、加算器224とを備える。転置畳み込み部221の出力は、畳み込み部222と畳み込み部223とに供給され、両畳み込み部222,223の出力が加算器224で加算される。
【0023】
ここで、
図4に示す畳み込み部222、223と加算器224は複数段(例えば4段)配置されている。最終段の加算器224の出力は、畳み込み部225を介して加算器212に供給される。
また、デコーダブロック201についても、それぞれでの処理時のパラメータは、後述するように、
図1に示す判定器18,19での判定結果に基づいて更新される。
なお、
図4では話者ラベルが供給される構成は図示していないが、転置畳み込み部221や畳み込み部222,223のいずれかで畳み込み演算を行う際に、話者ラベルが供給される。
【0024】
図1の構成の説明に戻ると、既に説明したように、話者音声V11をエンコーダ11で符号化して、量子化データQ12を得る。量子化データQ12についても、コードブックC11を使って符号化されたものである。
エンコーダ11で得られた量子化データQ12は、デコーダ13に供給されて、音声データに変換される。このデコーダ13における変換時には、不特定話者(変換先話者)の話者ラベルSL12が供給され、話者ラベルSL12を使って変換先話者音声V12が得られる。ここでの不特定話者は、話者音声V11の話者とは別の者である。
【0025】
また、変換前の話者音声V11は、基本周波数抽出部21に供給されて基本周波数f0が抽出され、抽出された基本周波数f0が基本周波数変換部23に供給される。基本周波数変換部23では、変換前の話者音声V11の基本周波数f0が、変換先話者の基本周波数f0′に変換される。基本周波数変換部23は、例えば供給される基本周波数を線形変換して、変換先話者の基本周波数に変換する。
デコーダ14には、基本周波数変換部23で変換された変換先話者の基本周波数f0′が供給される。
【0026】
上述したように、基本周波数変換部23で変換された基本周波数f0は、線形変換されたものの、変換先話者音声V12の基本周波数である。変換先話者音声V12の基本周波数f0′は、事前に変換先話者の音声の周波数を解析して、解析した周波数の平均及び分散から算出してもよい。
なお、
図1においては、再構成音声V11′を得るエンコーダ11及びデコーダ13と、変換先話者音声V12を得るエンコーダ11及びデコーダ13を便宜的に分けて図示しているが、実際は同一のものであり、再構成音声V11´を得る場合と変換先話者音声V12を得る場合とで、1組のエンコーダ11及びデコーダ13を使って時間を分けて順に処理を行っている。なお、同じ構成のエンコーダ11及びデコーダ13を2組用意して、同時に処理してもよい。
【0027】
このようにして、再構成音声V11′と変換先話者音声V12とが得られる。再構成音声V11′と変換先話者音声V12は、識別器(Discriminator)15,16に供給される。識別器15,16は、供給される音声が自然音声か否かを識別する。
【0028】
識別器15,16は、例えば、大きいカーネルのグループ化畳み込み(Grouped Convolution)で時間方向に1/256に縮小しつつ、ダウンサンプリングした音声データを足し合わせる構成であり、基本的は両識別器15,16は同じ構成である。但し、識別器15では話者ラベルで条件付けした出力が得られ、識別器16では話者ラベルを使用しない出力が得られる。
なお、識別器15,16には、変換前の元の話者音声V11などの自然音声の音声データも、識別器15,16に供給される。話者音声V11を供給するのは一例であり、識別処理時に必要な話者の自然音声を識別器15,16に供給する。この自然音声の音声データは、識別器15,16自身のパラメータを設定する学習処理時に使用される。
【0029】
図5は、識別器15,16の構成例を示す。
識別器15,16は、数段の畳み込み部301~304を接続した構成とされ、再構成音声V11′などの音声データを順に圧縮する。このとき、初段以外の畳み込み部302~304には、ダウンサンプリング部311~313で順にダウンサンプリングした音声データが供給される。
【0030】
そして、最終段の畳み込み部304の出力は、2系統に分けられ、一方を畳み込み部305、306に順に供給すると共に、他方を畳み込み部307,308に順に供給する。このとき、一方の系統を処理する畳み込み部305、306は、話者ラベルSL11又はSL12を加えて、話者ラベルで条件付けされた出力を得る。この畳み込み部301,302,303,304,305,306が、
図1に示す識別器15に相当する。
また、他方の系統を処理する畳み込み部307、308は、話者ラベルを加えることなく、話者ラベルで条件付けされていない出力を得る。この畳み込み部301,302,303,304,307,308が、
図1に示す識別器16に相当する。
【0031】
畳み込み部306の出力は、判定器17に供給され、判定器17は、話者ラベルで条件付けされた出力から、自然音声か否かを判定する。
畳み込み部308の出力は、判定器18に供給され、判定器18は、話者ラベルで条件付けされていない出力から、自然音声か否かを判定する。
それぞれの判定器17,18は、例えば自然音声である確率を示す確率値で判定結果を示す。
【0032】
そして、判定器17,18での判定結果に基づいて、本例の声質変換装置は、識別器15,16そのもののパラメータを学習すると共に、
図1に示すエンコーダ11とデコーダ13のパラメータを学習する。この判定器17,18を使って学習を行う処理は、敵対的生成ネットワーク(Generative Adversarial Networks:以下「GAN」と称する)の手法を使って学習を行う処理である。
なお、
図1に示す構成にて学習を行う処理の流れは、
図9のフローチャートで詳細に説明する。判定器17,18での判定結果に基づいてパラメータを学習した結果は、次に説明する声質変換を実行する際に適用される。
【0033】
[話者音声を変換先話者音声に変換する構成]
図6は、本例の声質変換装置が、話者音声を変換先話者音声に変換する構成例を示す。
すなわち、
図6は、変換前の話者音声V21を、目的とする特定の変換先話者の音声である変換先話者音声V22に変換する構成を示している。
まず、変換前の話者音声V21を、エンコーダ11に入力し、量子化データQ21を得る。量子化データQ21は、コードブックC11を使って符号化されたものである。
エンコーダ11としては、
図1に示す学習処理にてパラメータが学習されたエンコーダ11の構成が適用される。
【0034】
話者音声V21は、基本周波数抽出部21に供給され、ここで変換前の話者の基本周波数f0が抽出される。この基本周波数f0は、変換前の話者音声V21の全区間の平均及び分散を算出したものである。基本周波数抽出部21で抽出された変換前の話者の基本周波数f0は、基本周波数変換部23に供給され、変換先話者の基本周波数f0′に変換される。ここでの基本周波数変換部23についても、
図1で説明した基本周波数変換部23と同様に、例えば線形変換により変換することができる。
【0035】
エンコーダ11で得られた量子化データQ21は、デコーダ13に供給されて、音声データに変換される。デコーダ13としては、
図1に示す学習処理にてパラメータが学習されたデコーダ13の構成が適用される。
【0036】
また、デコーダ13には、基本周波数変換部23で得られた変換先話者の基本周波数f0が供給される。また、デコーダ13には、変換先話者音声V22の特徴量(音響特徴量,音韻特徴量など)を示す話者ラベルSL13が供給され、この話者ラベルSL13を使って変換先話者音声V22が得られる。
これらのエンコーダ11とデコーダ13は、声質変換部を構成する。
【0037】
[ハードウェア構成例]
図7は、
図1や
図6に示す声質変換装置を実現するコンピュータのハードウェア構成の一例を示す図である。
図7に示すように、声質変換装置は、バスを介して相互に接続されたCPU(中央制御ユニット:Central Processing Unit)901、ROM(Read Only Memory)902、RAM(Random Access Memory)903、不揮発性ストレージ904、ネットワークインターフェース905、入出力部906を備える。
【0038】
CPU901は、RAM903をワークエリアとしてROM902又は不揮発性ストレージ904等に格納されたプログラムを実行することで、声質変換装置の動作を統括的に制御する。ネットワークインターフェース905は、声質変換装置に接続される機器とのインターフェースである。入出力部906は、音声入力や音声出力などの他の機器との入出力を行うためのインターフェースである。
【0039】
学習用音声データ、変換用音声データ、及び変換済み音声データの入出力及び設定は、ネットワークインターフェース905又は入出力部906を介して行われる。エンコーダやデコーダのパラメータの記憶は、RAM903又は不揮発性ストレージ904により行われる。
【0040】
図1や
図6で説明した声質変換装置が備える各機能は、CPU901において所定のプログラムが実行されることで実現される。プログラムは、ROMに組み込んで使用してもよいが、他の記録媒体から取得してもよく、またネットワークを経由して取得してもよい。
また、一般的なコンピュータとプログラムの組合せでなく、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの論理回路を組むことで、声質変換装置の構成を実現するためのハードウェア構成とすることもできる。
【0041】
[音声変換処理の流れ]
次に、
図8~
図11のフローチャートを参照して、本例の音声変換処理の流れについて説明する。
図8は、本例の音声変換処理の全体の流れを示すフローチャートである。
まず、声質変換装置は、学習用音声データと各音声の話者情報を取得する(ステップS11)。
そして、声質変換装置は、ステップS11で取得したそれぞれの学習用音声データについての前処理を実行する(ステップS12)。前処理の詳細については後述する(
図10)。
前処理が終了した後、声質変換装置は
図1に示す構成にてモデルの学習を行う(ステップS13)。ここでの学習には、
図1に示す識別器15,16のパラメータの学習と、エンコーダ11とデコーダ13の学習が含まれる。学習処理の詳細については後述する(
図11)。
【0042】
モデルの学習が終了した後、声質変換装置は、変換先話者である目標話者を設定する(ステップS14)。この変換先話者は、既にステップS11で取得した話者の中の特定の一人の話者である。
そして、声質変換装置は、変換元の話者の音声である、変換用音声データを取得する(ステップS15)。声質変換装置は、取得した変換用音声データを、
図7に示す構成にて変換先話者音声に声質変換する(ステップS16)。声質変換する処理の詳細については後述する(
図12)。
【0043】
ステップS16で声質変換された変換先話者音声データは、声質変換装置から出力される(ステップS17)。ステップS15での変換用音声の取得からステップS17での変換先話者音声の取得はリアルタイムで実行される。
【0044】
図9は、ステップS12での前処理の詳細を示すフローチャートである。
まず、声質変換装置は、学習用音声データから、学習を行う区間の音声データの切り出しを行う(ステップS21)。
そして、声質変換装置は、切り出した音声データの正規化処理を行い、適正なレベルの音声データとする(ステップS22)。その後、声質変換装置は、正規化処理が行われた音声データから基本周波数を抽出する(ステップS23)。この基本周波数の抽出は、例えば音声データの全区間に対して行われる。そして、声質変換装置は、抽出した話者ごとの全区間の基本周波数の平均及び分散を算出する(ステップS24)。
【0045】
図10は、ステップS13の学習処理である学習用変換工程とパラメータ学習工程の詳細を示すフローチャートである。
まず、声質変換装置は、
図1に示すエンコーダ11とデコーダ13に初期パラメータを設定する(ステップS31)。このとき、識別器15,16にも初期パラメータを設定する。
そして、エンコーダ11に変換元の話者の学習用音声データを入力させ(ステップS32)、エンコーダ11により処理された量子化データを得る(ステップS33)。
エンコーダ11が出力した量子化データは、デコーダ13に入力され、再構成音声が得られる(ステップS34)。このとき、デコーダ13には、変換元の話者の基本周波数と、該当する話者の音声特徴を示す話者ラベルが入力される。
【0046】
その後、声質変換装置は、ランダムな変換先話者を決定する(ステップS35)。
そして、変換元の話者から決定した変換先話者に線形変換した基本周波数を計算する(ステップS36)。
エンコーダ11が出力した量子化データは、デコーダ13に入力され、変換音声が得られる(ステップS37)。このとき、デコーダ13には、変換先話者の基本周波数と、該当する話者の音声特徴を示す話者ラベルが入力される。
【0047】
次に、声質変換装置は、ステップS34で得た再構成音声を識別器15,16に入力させる(ステップS38)。また、声質変換装置は、対象となる自然音声、つまりエンコーダとデコーダで処理されていない音声を、識別器15,16に入力させる(ステップS39)。さらに、声質変換装置は、ステップS37で得た変換先話者の音声を識別器15,16に入力させる(ステップS40)。ここでは、ステップS38~S40の順で、各音声が入力される例を示したが、これらの音声が入力される順序は一例であり、これに限定されない。
そして、声質変換装置は、識別器15,16の損失関数を算出する(ステップS41)。さらに、ステップS40で算出した損失関数に基づいて、識別器15,16のパラメータを更新する(ステップS42)。
【0048】
このステップS41での損失関数の算出とステップS42での識別器15,16のパラメータの更新時には、再構成音声又は変換先話者音声の識別結果と、自然音声の識別結果が利用されて、識別器15,16のパラメータが適切に更新される。
このときに適切に更新が行われる原理について説明すると、識別器15,16のパラメータが適切であれば、自然音声は、当然、自然音声である確率が高いとの判定結果が得られる。一方、識別器15,16のパラメータが適切であれば、デコーダ13が出力する音声は、再構成音声又は変換された音声であり、少なくとも初期状態では、識別器15,16で、自然音声でない確率が高いとの判定結果が得られる。この2つの判定結果の違いに注目して損失関数が算出され、識別器15,16のパラメータが適切な値に更新される。識別器15,16のパラメータが適切な値に更新されることで、識別器15,16は、自然音声か否かの判定が精度良く行えるようになる。
【0049】
また、識別器15,16として、話者ラベルを使った識別器15と、話者ラベルを使わない識別器16の2つを用意して、それぞれの判定結果から損失関数を求めることで、話者ラベルを使ったデコードが適切かどうかについても判定できるようになる。
なお、次に述べるエンコーダ11やデコーダ13の学習で、これらのパラメータが適切に更新された後では、再構成音声や変換された音声についても、識別器15,16の判定結果として、自然音声である確率がそれなりに高くなる可能性がある。但し、学習をおこなったとしても、データ量や初期値の設定などで、自然音声である確率が高くなるとは限らない。
【0050】
ここまでで識別器15,16のパラメータの学習工程が終了し、エンコーダ11とデコーダ13のパラメータの学習工程に移る。
すなわち、声質変換装置は、ステップS34で得た再構成音声V11′を識別器15,16に再度入力させ(ステップS43)、またステップS37で得た変換先話者V12の音声を識別器15,16に再度入力させる(ステップS44)。そして、声質変換装置は、このときの識別器15,16の損失関数を算出する(ステップ45)。ここで、識別器15の識別結果の確率値は、話者ラベルを使った識別結果であるため、話者に依存した音声成分の処理が、適切か否かが示されるようになる。また、識別器16の識別結果の確率値は、話者ラベルを使っていない識別結果であるため、話者ラベルに依存しない音声成分のデコードが、適切か否かが示されるようになる。
【0051】
そして、声質変換装置は、算出した損失関数に基づいて、エンコーダ11とデコーダ13のパラメータを更新する(ステップ46)。その後、声質変換装置は、学習を終了する条件を満足するか否かを判断する(ステップ47)。
ステップ47で、学習を終了する条件を満足していないと判断したとき(ステップ47のNo)、声質変換装置は、ステップS32からの処理を繰り返す。
また、ステップ47で、学習を終了する条件を満足していると判断したとき(ステップ47のYes)、声質変換装置は、モデルの学習処理を終了する。ここで学習を終了する条件の例としては、例えば、予め指定した繰り返し回数に達した時、パラメータの勾配の絶対値が予め指定した微少値よりも小さくなった時、評価用データに対する損失が一定以上大きくなった時のいずれか一つ、あるいはこれらの組み合わせが考えられる。
【0052】
この
図10のフローチャートに示す学習は、GANの枠組みに基づき、敵対的に学習を行うものである。
ここで、本例の敵対的学習について説明すると、エンコーダとデコーダの学習には、敵対的損失としてヒンジロスを用いる。敵対的損失L
advは入力波形x、デコーダに与える基本周波数pと話者ラベルlを用いて以下の数1式で表わされる。
【0053】
【0054】
さらに入力波形と再構成した出力波形で、ParallelWaveGANで提案されたMulti Resolution STFT Loss を計算する。Multi Resolution STFT LossであるLstft は入力波形x、デコーダへ入力する基本周波数pと話者ラベルl、再構成した波形x(^)、STFT(short-time Fourier transform:短時間フーリエ変換)を求める際のFFT点数とhop lengthと窓幅の組の数Mを用いて、以下の数2~5式で表される。なお、再構成した波形x(^)の(^)は、以下の数式に示すように、本来は直前のxの上に付与される。
【0055】
【0056】
【0057】
【0058】
【0059】
但し、Nは振幅のフレーム数、||・||Fはフロベニウスノルム、||・||1はL1ノルム、Ls
(m)はm番目のFFT点数とhop lengthと窓幅の組で求めたLsを表す。
また、本例では、VQVAEの手法に基づき、エンコーダの出力とその量子化された潜在表現がそれぞれ近づくようにする損失であるVQLossとCommit Lossを用いる。
VQLossを示すLvq と、Commit Lossを示すLcommitは、エンコーダの出力zとデコーダの出力z′と量子化された値qを用いて、以下の数6、7式で示される。
【0060】
【0061】
【0062】
但し、||・||2はL1ノルム、||・||1はL1ノルム、sg[・]は勾配を流さないことを示す。
敵対的損失とMulti Resolution STFT Loss を利用してVQVAEと同様に再構成を学習し、変換時はラベルを差し替えることで変換する手法では、特に異性間での声質変換時の品質が劣る。
【0063】
ここで、本例の学習時には、識別器15,16を利用して変換した音声についても本物であるかどうか、つまり自然音声に近いか否かを判別させることにより、変換音声の品質を向上させる。
すなわち、変換音声を識別器15,16に自然音声であると判別させるConvert Loss Lconvert は入力波形x、ランダムに選択した変換先話者ラベルl(~)、事前に求めた話者ごとの基本周波数の平均と分散を用いて変換先の話者へ線形変換した基本周波数p(~)とを用いて以下の数式で表される。なお、変換先話者ラベルl(~)や基本周波数p(~)の(~)は、以下の数8式に示すように本来は直前のlやpの上に付与される。
【0064】
【0065】
Convert Loss だけでは、話者による違いの少ないブレス音のみで構成された変換音声が出力されてしまう。そこで、変換前と変換後で音量はある程度一定であるということから、変換前と変換後の二乗平均値の差が小さくなるようにするRMS Loss を追加する。RMS Lossを示すLrmsは、入力波形x、ランダムな話者へ変換した波形x(^)を用いて以下の数9式で表される。
【0066】
【0067】
但し、xi、xi(~)は、x、x(~)のi番目のサンプル値を表す。
これらの数1式~数9式を反映した最終的なエンコーダとデコーダの損失関数は以下の数10式で表される。
【0068】
【0069】
λadv,λstft,λvq,λcommit,λconvert,λrmsは、各項の比率を調整するためのハイパーパラメータである。
識別器15,16の損失関数は、敵対的損失に加えランダムな話者へ変換した波形を偽と判断させる損失を用いる。損失関数は、エンコーダとデコーダへの入力波形xと再構成した波形x(~)、ランダムな話者へ変換した波形x(~)を用いて、以下の数11式で表される。
【0070】
【0071】
学習時には、この数10式と数11式に基づいて、エンコーダ及びデコーダと、識別器のパラメータが更新される。なお、本例の場合、識別器として、話者ラベルを使う識別器15と、話者ラベルを使わない識別器16があるため、それぞれの識別器15,16の識別結果ごとに損失関数が得られ、それぞれの損失関数を使って、総合的に良好なパラメータとなるように学習される。
なお、ここまで数式を用いて説明した損失関数を用いたエンコーダ、デコーダ、識別器の学習処理は一例であり、その他の手法を用いてこれらのパラメータを更新してもよい。
【0072】
図11は、ステップS16での声質変換処理の詳細を示すフローチャートである。
まず、声質変換装置は、ステップS13での学習処理で得られたエンコーダとデコーダのパラメータを、
図6に示すエンコーダ11とデコーダ13に設定する(ステップ51)。
そして、声質変換装置は、入力音声データから基本周波数を抽出する(ステップ52)。また、声質変換装置は、入力音声データをエンコーダ11に入力する(ステップ53)。さらに、声質変換装置では、変換元の基本周波数から、変換先話者音声に線形変換した基本周波数が計算される(ステップ54)。
【0073】
その後、エンコーダ11が出力した量子化データは、デコーダ13に入力され、変換音声が得られる(ステップS55)。このとき、デコーダ13には、変換先話者の基本周波数と、該当する話者の音声特徴を示す話者ラベルが入力される。
ステップS55で得られた変換音声が、
図8のフローチャートのステップS17で出力される変換済み音声データになる。
【0074】
以上説明したように、本例の声質変換装置によると、事前の学習でエンコーダとデコーダのパラメータを適切に設定でき、学習後の実際の声質変換処理で、リアルタイムに高音質の声質変換を行うことができる。特に本例の場合、デコードされた音声を識別器で識別する際に、話者ラベルを使った識別と、話者ラベルを使わない識別の2つの識別を行って、それぞれの識別結果からエンコーダとデコーダのパラメータを適切に設定するようにしたことで、変換後の音声の高音質化に貢献する。
具体的に本例の声質変換装置として機能するようにコンピュータにプログラムを実装して確かめ、本例の声質変換装置がリアルタイムで声質変換を行うことが確認できた。また、声質変換された音声の自然性の主観評価実験でも、高いスコアが得られ、変換された音声が自然な音声であることを確かめることができた。
【符号の説明】
【0075】
1,11…エンコーダ、2,13…デコーダ、15,16…識別器、17,18…判定器、21…基本周波数抽出部、23…基本周波数変換部、101~108…畳み込み部、201~204…デコーダブロック、211,213,215…アップサンプリング部、212,214,216…加算器、221…転置畳み込み部、222,223,225…畳み込み部、224…加算器、301~308…畳み込み部、311~313…ダウンサンプリング部、901…CPU、902…ROM、903…RAM、904…不揮発性ストレージ、905…ネットワークインターフェース、906…入力部