開示された実施例の利点および特徴、そしてそれらを達成する方法は、添付の図面と共に後述される実施例を参照すると明確である。しかし、本開示は、以下において開示される実施形態に限定されるものではなく、異なる多様な形態で具現されることができ、単に本実施例は、本開示が完全になるようにし、本開示が属する技術分野において通常の知識を有する者に発明の範疇を完全に知らせるために提供されるだけのものである。
本明細書において使用される用語について簡略に説明し、開示された実施例について具体的に説明する。
本明細書において使用される用語は、本開示での機能を考慮しながら可能な現在広く使用される一般的な用語を選択したが、これは関連分野に携わる技術者の意図または判例、新しい技術の出現などによって異なることができる。また、特定の場合、出願人が任意に選定した用語もあり、この場合は該当する発明の説明部分で詳細にその意味を記載する。したがって、本開示において使用される用語は、単純な用語の名称ではなく、その用語が有する意味と本開示の全般にわたる内容に基づいて定義されるべきである。
本明細書においての単数の表現は、文脈上明らかに単数であるものと特定していない限り、複数の表現を含む。また、複数の表現は、文脈上明らかに複数であるものと特定していない限り、単数の表現を含む。
明細書全体においてある部分がある構成要素を「含む」とするとき、これは特に反対の記載がない限り、他の構成要素を除外するのではなく、他の構成要素をさらに含むことが可能であることを意味する。
また、明細書において使用される「部」という用語は、ソフトウェアまたはハードウェア構成要素を意味し、「部」は、ある役割を遂行する。しかしながら、「部」は、ソフトウェアまたはハードウェアに限定される意味ではない。「部」は、アドレッシングできる格納媒体にあるように構成することもでき、1つまたはそれ以上のプロセッサを再生させるように構成されることもできる。したがって、一例として「部」は、ソフトウェア構成要素、オブジェクト指向ソフトウェア構成要素、クラス構成要素およびタスクの構成要素のような構成要素と、プロセス、関数、属性、プロシージャ、サブルーチン、プログラムコードのセグメント、ドライバ、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイおよび変数を含む。構成要素と「部」の中で提供される機能は、より少数の構成要素および「部」で結合されたり、追加の構成要素と「部」にさらに分離されたりすることができる。
本開示の一実施例によれば、「部」は、プロセッサおよびメモリで具現されることができる。用語「プロセッサ」は、汎用プロセッサ、中央処理装置(CPU)、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、コントローラ、マイクロコントローラ、状態マシンなどを含むように広く解釈されるべきである。いくつかの環境において「プロセッサ」は、カスタムIC(ASIC)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)などを称することもできる。用語「プロセッサ」は、例えば、DSPとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサの組み合わせ、DSPコアと結合した1つ以上のマイクロプロセッサの組み合わせ、または任意の他のこのような構成の組み合わせのような処理デバイスの組み合わせを称することもできる。
用語「メモリ」は、電子情報を格納可能な任意の電子コンポーネントを含むように広く解釈されるべきである。用語「メモリ」は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、プログラマブル読み出し専用メモリ(PROM)、消去可能なプログラマブル読み出し専用メモリ(EPROM)、電気的に消去可能なプログラマブル読み出し専用メモリ(EEPROM)、フラッシュメモリ、磁気または光学データ記憶装置、レジスタなどのプロセッサ−読み出し可能媒体の多様なタイプを称することもできる。プロセッサがメモリから情報を読み取りし/したり、メモリに情報を記録することができたりすれば、メモリは、プロセッサと電子通信状態にあると言われる。プロセッサに集積されたメモリは、プロセッサと電子通信状態にある。
以下では、添付した図面を参照して、実施例に対して本開示が属する技術分野における通常の知識を有する者が容易に実施できるように詳細に説明する。そして図面で本開示を明確に説明するために説明と関係ない部分は省略する。
図1は、本開示の一実施例に係るテキスト音声合成端末(100)を示す図である。
テキスト音声合成端末(100)は、少なくとも1つのプロセッサとメモリを含むことができる。例えば、テキスト音声合成端末(100)は、スマートフォン、コンピュータまたは携帯電話などで具現されることができる。テキスト音声合成端末(100)は、通信部を含んで外部装置(例えば、サーバ装置)と通信することができる。
テキスト音声合成端末(100)は、ユーザー(110)からテキスト入力と特定の話者入力を受信することができる。例えば、図1に図示されたように、テキスト音声合成端末(100)は、テキスト入力として、「How are you?」を受信することができる。また、テキスト音声合成端末(100)は、話者入力として、「人1」を受信することができる。ここで、「人1」は、予め設定された話者、すなわち「人1」の発声特徴を示すことができる。テキスト音声合成端末(100)は、複数の人の発声特徴のうち少なくとも1つの発声特徴(例えば、「人1」)を予め設定するように構成されることができる。例えば、このような複数の人の発声特徴は、通信部を介してサーバー装置などの外部装置から受信されることができる。図1では、予め設定された話者を指定できるユーザーインターフェースを図示しているが、これに限定されるものではなく、ユーザーは、特定のテキストに対する音声をテキスト音声合成端末(100)に提供することができ、テキスト音声合成端末(100)は、受信された音声の発声特徴を抽出して、音声合成のためのユーザーの発声特徴が選択されるように表示することができる。例えば、受信された音声から音声の発声特徴が抽出されることができ、音声の発声特徴は、埋め込みベクトルで表示されることができる。
テキスト音声合成端末(100)は、指定された話者の発声特徴が反映された入力テキストに対する音声データを出力するように構成されることができる。例えば、図1に図示されたように、「How are you」の入力テキストに対する出力音声データを生成するにおいて、選択された「人1」の発声特徴が出力音声データに反映されるように構成されることができる。ここで、特定の話者の発声特徴は、その話者の音声を模写することだけでなく、その発声を構成できるスタイル、韻律、感情、音色、音高などの多様な要素のうち少なくとも1つを含むことができる。このような出力音声データを生成するために、テキスト音声合成端末(100)は、テキスト音声合成装置に入力テキストおよび指定された話者を提供することができ、テキスト音声合成装置から合成された音声データ(例えば、「人1」の発声特徴が反映された「How are you」の音声データ)を受信することができる。テキスト音声合成装置に関しては、以下の図2でより詳細に説明する。テキスト音声合成端末(100)は、合成された音声データをユーザー(110)に出力することができる。これと異なり、テキスト音声合成端末(100)は、テキスト音声合成装置を含むように構成されることができる。
図2は、本開示の一実施例に係るテキスト音声合成装置(200)を示す図である。
図2のテキスト音声合成装置(200)が使用するデータ学習部(図示せず)およびデータ認識部(図示せず)は、後述される図11のテキスト音声合成装置(1100)の構成と同一または類似の構成を含むことができる。テキスト音声合成装置(200)は、発声特徴抽出部(210)、発声特徴調節部(220)、音声データベース(230)、エンコーダ(240)、デコーダ(250)、後処理プロセッサ(260)および通信部(270)を含むことができる。
一実施例によれば、発声特徴抽出部(210)は、話者の音声信号(例えば、音声サンプル)を受信し、受信された音声信号から話者の発声特徴を抽出するように構成されることができる。ここで、受信した音声信号またはサンプルは、話者の発声特徴に関連する情報を示す音声スペクトルデータを含むことができる。話者の発声特徴を抽出するにおいて、話者の音声信号から発声特徴を抽出できる任意の知られた適切な特徴抽出方法が使用されることができる。例えば、メル周波数ケプストラム(MFC)のような音声処理方法を利用して受信された音声信号またはサンプルから発声特徴を抽出することができる。これと異なり、音声サンプルを学習された発声特徴抽出モデル(例えば、人工ニューラルネットワーク)に入力して、発声特徴を抽出することができる。例えば、抽出された話者の発声特徴は、埋め込みベクトルで表すことができる。他の実施例によれば、発声特徴抽出部(210)は、テキストおよびビデオのうちの少なくとも1つを受信することができ、受信されたテキストおよびビデオから話者の発声特徴を抽出するように構成されることができる。抽出された話者の発声特徴は、エンコーダ(240)またはデコーダ(250)のうち少なくとも1つに提供することができる。
一実施例によれば、発声特徴抽出部(210)から抽出された話者の発声特徴は、記憶媒体(例えば、音声データベース(230))または外部記憶装置に格納されることができる。これにより、入力テキストに対する音声合成時に、記憶媒体に予め格納された複数の話者の発声特徴のうち1つ以上の話者の発声特徴が選択または指定されることができ、選択または指定された複数の話者の発声特徴が音声合成に利用されることができる。
発声特徴調節部(220)は、話者の発声特徴を調節するように構成されることができる。一実施例によれば、発声特徴調節部(220)は、話者の発声特徴を調節するための情報を受信することができる。例えば、話者の発声特徴を調節するための情報は、発声特徴調節部(220)によってユーザーから入力されることができる。ユーザーから受信した情報に基づいて、発声特徴調節部(220)は、発声特徴抽出部(210)から抽出された話者の発声特徴を調節することができる。
一実施例によれば、音声データベース(230)は、学習テキストおよび複数の学習テキストに対応する音声を格納することができる。学習テキストは、少なくとも1つの言語で作成されることができ、人が理解できる単語、句および文章のうち少なくとも1つを含むことができる。また、音声データベース(230)に格納された音声は、複数の話者が学習テキストを読んだ音声データを含むことができる。学習テキストおよび音声データは、音声データベース(230)に予め格納されていたり、通信部(270)から受信されたりすることができる。音声データベース(230)が格納している学習テキストおよび音声に基づいて、エンコーダ(240)およびデコーダ(250)のうち少なくとも1つは、単一の人工ニューラルネットワークのテキスト音声合成モデルを含んだり、生成したりすることができる。例えば、エンコーダ(240)およびデコーダ(250)が、単一の人工ニューラルネットワークのテキスト音声合成モデルを構成することができる。
一実施例によれば、音声データベース(230)は、発声特徴抽出部(210)から抽出された1つ以上の話者の発声特徴を格納するように設定されることができる。格納された話者の発声特徴(例えば、話者の発声特徴を表す埋め込みベクトル)は、音声合成時にエンコーダ(240)またはデコーダのうち少なくとも1つに提供されることができる。
また、エンコーダ(240)は、入力テキストを受信することができ、入力テキストを文字埋め込みに変換して生成するように構成されることができる。このような文字埋め込みは、単一の人工ニューラルネットワークのテキスト音声合成モデル(例えば、プレネット(pre−net)、CBHGモジュール、ディープニューラルネットワーク(DNN)、畳み込みニューラルネットワーク+ディープニューラルネットワーク(CNN+DNN)など)に入力して、エンコーダ(240)の隠れ状態を生成することができる。一実施例によれば、エンコーダ(240)は、発声特徴抽出部(210)または発声特徴調節部(220)のうち少なくとも1つから話者の発声特徴をさらに受信し、文字埋め込みおよび話者の発声特徴を単一の人工ニューラルネットワークのテキスト音声合成モデル(例えば、プレネット(pre−net)、CBHGモジュール、ディープニューラルネットワーク(DNN)、畳み込みニューラルネットワーク+ディープニューラルネットワーク(CNN+DNN)など)に入力して、エンコーダ(240)の隠れ状態(hidden states)を生成することができる。このように生成されたエンコーダ(240)の隠れ状態は、デコーダ(820)に提供されることができる。
デコーダ(250)は、話者の発声特徴を受信するように構成されることができる。デコーダ(250)は、発声特徴抽出部(210)および発声特徴調節部(220)のうち少なくとも1つから話者の発声特徴を受信することができる。しかし、これに限定されるものではなく、デコーダ(250)は、通信部(270)または入出力部(I/O部;図示せず)から話者の発声特徴を受信することができる。
デコーダ(250)は、エンコーダ(240)から入力テキストに対応した隠れ状態を受信することができる。一実施例によれば、デコーダ(250)は、現在の時間−ステップ(time−step)で入力テキストのうちどの部分から音声を生成するかを決定するように構成されたアテンションモジュールを含むことができる。
デコーダ(250)は、話者の発声特徴および入力テキストを単一の人工ニューラルネットワークのテキスト音声合成モデルに入力して、入力テキストに対応する出力音声データを生成することができる。このような出力音声データは、話者の発声特徴が反映された合成音声データを含むことができる。一実施例によれば、予め設定された第1の話者の発声特徴に基づいて、第1の話者が入力テキストを読むように見える出力音声データが生成されることができる。例えば、出力音声データは、メルスペクトログラムで表現されることができる。しかし、これに限定されるものではなく、出力音声データは、線形スペクトログラムで表現されることができる。このような出力音声データは、スピーカー、後処理プロセッサ(260)または通信部(270)のうち少なくとも1つに出力されることができる。
一実施例によれば、後処理プロセッサ(260)は、デコーダ(250)で生成された出力音声データをスピーカーで出力可能な音声に変換するように構成されることができる。例えば、変換された出力可能な音声は、波形(waveform)で表示することができる。後処理プロセッサ(260)は、デコーダ(250)で生成された出力音声データがスピーカーで出力されるに不適切な場合にのみ動作するように構成されることができる。つまり、デコーダ(250)で生成された出力音声データがスピーカーで出力されるに適切な場合、出力音声データは、後処理プロセッサ(260)を経由せずに直接スピーカーに出力されることができる。これにより、図2では、後処理プロセッサ(260)がテキスト音声合成装置(200)に含まれるように図示されているが、後処理プロセッサ(260)がテキスト音声合成装置(200)に含まれないように構成されることができる。
一実施例によれば、後処理プロセッサ(260)は、デコーダ(250)で生成されたメルスペクトログラムで表現された出力音声データを、時間ドメインの波形に変換するように構成されることができる。また、後処理プロセッサ(260)は、出力音声データの信号の大きさが予め決定された基準の大きさに達していない場合、出力音声データの大きさを増幅させることができる。後処理プロセッサ(260)は、変換された出力音声データをスピーカーまたは通信部(270)のうち少なくとも1つに出力することができる。
通信部(270)は、テキスト音声合成装置(200)が外部装置と、信号またはデータを送受信するように構成されることができる。外部装置は、図1のテキスト音声合成端末(100)を含むことができる。これと異なり、外部装置は、他のテキスト音声合成装置を含むことができる。また、外部装置は、音声データベースを含む任意の装置であることができる。
一実施例によれば、通信部(270)は、外部装置からテキストを受信するように構成されることができる。ここで、テキストは、単一の人工ニューラルネットワークのテキスト音声合成モデルの学習のために使用される学習テキストを含むことができる。これと異なり、テキストは、ユーザー端末から受信された入力テキストを含むことができる。これらのテキストは、エンコーダ(240)またはデコーダ(250)のうち少なくとも1つに提供されることができる。
一実施例において、通信部(270)は、外部装置から話者の発声特徴を受信することができる。通信部(270)は、外部装置から話者の音声信号またはサンプルを受信し、発声特徴抽出部(210)に送信することができる。
通信部(270)は、ユーザー端末から入力された情報を受信することができる。例えば、通信部(270)は、話者の発声特徴を調節するための入力情報を受信し、受信された入力情報を発声特徴調節部(220)に提供することができる。
通信部(270)は、任意の信号またはデータを外部装置に送信することができる。例えば、通信部(270)は、生成された出力音声に関連する情報、つまり、出力音声データを外部装置に送信することができる。また、生成された単一の人工ニューラルネットワークのテキスト音声合成モデルは、通信部(270)を介してテキスト音声合成端末(100)または他のテキスト音声合成装置に送信されることができる。
一実施例によれば、テキスト音声合成装置(200)は、入出力部(I/O装置;図示せず)をさらに含むことができる。入出力部は、ユーザーから入力を直接受信することができる。また、入出力部は、ユーザーに音声、映像またはテキストのうち少なくとも1つを出力することができる。
図3は、本開示の一実施例に係るテキスト音声合成方法を示すフローチャートである。
まず、ステップ310において、テキスト音声合成装置(200)は、複数の学習テキストおよび複数の学習テキストに対応する音声データに基づいて機械学習を遂行して生成された単一の人工ニューラルネットワークのテキスト音声合成(text−to−speech synthesis)モデルを生成するステップを遂行することができる。テキスト音声合成装置(200)は、ステップ320において、入力テキストを受信するステップを遂行することができる。ステップ330において、テキスト音声合成装置(200)は、話者の発声特徴を受信するステップを遂行することができる。テキスト音声合成装置(200)は、話者の発声特徴を予め学習されたテキスト音声合成モデルに入力して、話者の発声特徴が反映された入力テキストに対する出力音声データを生成するステップをステップ340において遂行することができる。
以下では、図4と一緒にテキスト音声合成方法をより詳細に説明する。
図4は、本開示の一実施例に係るテキスト音声合成装置(400)を示す図である。図4のテキスト音声合成装置(400)は、図2のテキスト音声合成装置(200)の構成と同一または類似の構成を含むことができる。テキスト音声合成装置(400)は、発声特徴抽出部(410)、音声データベース(430)、通信部(470)、エンコーダ(440)およびデコーダ(450)を含むことができる。図4の発声特徴抽出部(410)は、図2の発声特徴抽出部(210)の構成と同一または類似の構成を含むことができる。図4の音声データベース(430)は、図2の音声データベース(230)の構成と同一または類似の構成を含むことができる。図4の通信部(470)は、図2の通信部(270)の構成と同一または類似の構成を含むことができる。図4のエンコーダ(440)は、図2のエンコーダ(240)の構成と同一または類似の構成を含むことができる。図4のデコーダ(450)は、図2のデコーダ(250)の構成と同一または類似の構成を含むことができる。図2のテキスト音声合成装置(200)の説明と図4のテキスト音声合成装置(400)の説明の中で重複する内容は省略する。
一実施例によれば、テキスト音声合成装置(400)は、話者の音声サンプルまたは信号を受信することができる。例えば、音声サンプルは、通信部(470)を介してユーザー端末から受信されることができる。さらに他の例として、このような話者の音声サンプルまたは信号は、音声データベースを含むテキスト音声合成端末から受信されることができる。このような話者の音声サンプルまたは信号は、発声特徴抽出部(410)に提供されることができる。話者の音声サンプルまたは信号は、予め決定された時間区間内に話者から入力された音声データを含むことができる。例えば、予め決定された時間区間は、話者が自分の音声を入力できる比較的短い時間(例:数秒、数十秒または数十分以内)を表すことができる。
一実施例によれば、テキスト音声合成装置(400)は、音声合成の対象である入力テキストを受信するように構成されることができる。例えば、入力テキストは、ユーザー端末から通信部(470)を介して受信されることができる。これと異なり、テキスト音声合成装置(400)は、入出力装置(図示せず)が含まれているため、これらの入力テキストの入力を受けることができる。受信された入力テキストは、発声特徴抽出部(410)に提供されることができる。
一実施例によれば、音声データベース(430)は、1つ以上の話者の音声サンプルまたは信号を格納するように構成されることができる。このような話者の音声サンプルまたは信号は、発声特徴抽出部(410)に提供されることができる。
発声特徴抽出部(410)は、音声サンプルまたは信号から話者の発声特徴を表す埋め込みベクトルを抽出するステップを遂行することができる。発声特徴抽出部(410)は、韻律的特徴抽出部(412)、感情的特徴抽出部(414)、音色および音高抽出部(416)を含むことができる。図4における発声特徴抽出部(410)は、韻律的特徴抽出部(412)、感情的特徴抽出部(414)、音色および音高抽出部(416)を含むように図示されているが、韻律的特徴抽出部(412)、感情的特徴抽出部(414)、音色および音高抽出部(416)のうち少なくとも1つを含むように構成されることができる。
韻律的特徴抽出部(412)は、話者の韻律的特徴を表す第1のサブ埋め込みベクトルを抽出するように構成されることができる。ここで、韻律的特徴は、発話速度に関する情報、発音アクセントに関する情報、休止区間に関する情報および音高に関する情報のうち少なくとも1つを含むことができる。抽出された話者の韻律的特徴を表す第1のサブ埋め込みベクトルは、エンコーダ(440)またはデコーダ(450)のうち少なくとも1つに提供されることができる。一実施例によれば、エンコーダ(440)およびデコーダ(450)は、韻律的特徴を表す第1のサブ埋め込みベクトルを単一の人工ニューラルネットワークのテキスト音声合成モデルに入力して、話者の韻律的特徴が反映された入力テキストに対する出力音声データを生成することができる。
感情的特徴抽出部(414)は、話者の感情的特徴を表す第2のサブ埋め込みベクトルを抽出するように構成されることができる。ここで、感情的特徴は、話者の発話内容に内在された感情に関する情報を含むことができる。例えば、感情的特徴は、予め決定された感情に限定されず、話者の音声に内在されている1つ以上の感情のそれぞれに対する程度および/または内在された感情の組み合わせなどの情報を含むことができる。抽出された話者の感情的特徴を表す第2のサブ埋め込みベクトルは、エンコーダ(440)またはデコーダ(450)のうち少なくとも1つに提供されることができる。一実施例によれば、エンコーダ(440)およびデコーダ(450)は、感情的特徴を表す第2のサブ埋め込みベクトルを単一の人工ニューラルネットワークのテキスト音声合成モデルに入力して、話者の感情的特徴が反映された入力テキストに対する出力音声データを生成することができる。
音色および音高抽出部(416)は、話者の音色および音高に対する特徴を表す第3のサブ埋め込みベクトルを抽出するように構成されることができる。抽出された話者の音色および音高に対する特徴を表す第3のサブ埋め込みベクトルは、エンコーダ(440)またはデコーダ(450)のうち少なくとも1つに提供されることができる。一実施例によれば、エンコーダ(440)およびデコーダ(450)は、話者の音色および音高に対する特徴を表す第3のサブ埋め込みベクトルを単一の人工ニューラルネットワークのテキスト音声合成モデルに入力して、話者の音色および音高に対する特徴が反映された入力テキストに対する出力音声データを生成することができる。
一実施例によれば、エンコーダ(440)は、抽出された話者の発声特徴を表す埋め込みベクトルを受信することができる。エンコーダ(440)は、予め機械学習された1つ以上の話者の発声特徴を表す埋め込みベクトルおよび受信された話者の発声特徴を表す埋め込みベクトルに基づいて、単一の人工ニューラルネットワークのテキスト音声合成モデルを生成または更新することによって、より類似な話者の音声を合成することができる。
図4においては、1つの話者の音声サンプルまたは信号から感情的特徴、韻律的特徴または音声および音高のうち少なくとも1つを抽出して、音声を合成するものとして図示されているが、これに限定されるものではない。他の実施例において、感情的特徴、韻律的特徴または音声および音高のうち少なくとも1つが他の話者の音声サンプルまたは信号から抽出されることもできる。例えば、発声特徴抽出部(410)は、第1の話者の音声サンプルまたは信号を受信し、受信された第1の話者の音声サンプルまたは信号から感情的特徴および韻律的特徴を抽出する一方、第2の話者の音声サンプルまたは信号(例:有名人の音声)を受信し、受信された第2の話者の音声サンプルまたは信号から音色および音高の特徴を抽出することができる。このように抽出された2つの話者の発声特徴は、音声合成時にエンコーダ(440)またはデコーダ(450)のうち少なくとも1つに提供されることができる。これにより、合成される音声には、第1の話者の音声サンプルまたは信号内に含まれた音声を発話した第1の話者の感情と韻律が反映されるが、第2の話者(例示:有名人)の音声サンプルまたは信号内に含まれた音声を発話した第2の話者の音色および音高が反映されることができる。
図5は、人工ニューラルネットワークベースのテキスト音声合成装置の構成を示す図である。
一実施例によれば、エンコーダ(510)は、テキストを発音情報として生成するように構成されることができる。また、生成された発音情報は、アテンションモジュールを含むデコーダ(520)に提供され、デコーダ(520)は、このような発音情報を音声として生成するように構成されることができる。
エンコーダ(510)は、入力テキストを文字埋め込み(character embedding)に変換して生成することができる。エンコーダ(510)において、生成された文字埋め込みは、全結合層(fully−connected layer)を含むプレネット(pre−net)に通過させることができる。また、エンコーダ(510)は、プレネット(pre−net)からの出力をCBHGモジュールに提供し、図5に図示されたように、エンコーダの隠れ状態(Encorder hidden states)eiを出力することができる。例えば、CBHGモジュールは、1次元畳み込みバンク(1D convolution bank)、最大プーリング(max pooling)、ハイウェイネットワーク(highway network)、双方向GRU(bidirectional gated recurrent unit)を含むことができる。
デコーダ(520)は、全結合層から構成されたプレネットとGRU(gated recurrnt unit)を含むアテンション(attention)RNN(recurrent neural network)、レジデュアルGRU(residual GRU)を含むデコーダRNN(decoder RNN)を含むことができる。例えば、デコーダ(520)からの出力は、メルスケールスペクトログラム(mel−scale spectrogram)で表現されることができる。
デコーダ(520)のアテンションRNNおよびデコーダRNNは、音声の話者に該当する情報を受信することができる。例えば、デコーダ(520)は、ワンホット話者IDベクトル(521)を受信することができる。デコーダ(520)は、ワンホット話者IDベクトル(521)に基づいて、話者埋め込みベクトル(522)を生成することができる。デコーダ(520)のアテンションRNNおよびデコーダRNNは、話者埋め込みベクトル(522)を受信して、与えられた話者別に異なる出力音声データを生成することができるように、単一の人工ニューラルネットワークのテキスト音声合成モデルを更新することができる。
また、デコーダ(520)は、エンコーダ(510)と同様に、単一の人工ニューラルネットワークのテキスト音声合成モデルを生成または更新するために、入力テキスト、話者に関連する情報および入力テキストに対応する音声信号のペアで存在するデータベースを利用することができる。デコーダ(520)は、入力テキスト、話者に関連する情報をそれぞれ人工ニューラルネットワークの入力とし、該当の入力テキストに対応する音声信号を正解として学習することができる。デコーダ(520)は、入力テキストと話者に関連する情報を更新された単一の人工ニューラルネットワークのテキスト音声合成モデルに適用して、その話者の音声を出力することができる。
また、デコーダ(520)の出力は、後処理プロセッサ(530)に提供されることができる。後処理プロセッサ(530)のCBHGは、デコーダ(520)のメルスケールスペクトログラムをリニアスケールスペクトログラム(linear−scale spectrogram)に変換するように構成されることができる。例えば、後処理プロセッサ(530)のCBHGの出力信号は、マグニチュードスペクトログラム(magnitude spectrogram)を含むことができる。後処理プロセッサ(530)のCBHGの出力信号の位相(phase)は、グリフィンリム(Griffin−Lim)アルゴリズムを通じて復元され、逆短時間フーリエ変換(inverse short−time fourier transform)されることができる。後処理プロセッサ(530)は、時間ドメイン(time domain)の音声信号に出力することができる。
このような人工ニューラルネットワークベースのテキスト音声合成装置は、テキストと音声信号のペアで存在する大容量のデータベースを利用して学習されることができる。入力としてテキストを入れて出た出力を、該当する正解音声信号と比較して損失関数(loss function)を定義することができる。テキスト音声合成装置は、損失関数を誤差逆伝播(error back propagation)アルゴリズムを通じて学習し、最終的にランダムのテキストを入力したときに所望の音声出力が出る単一の人工ニューラルネットワークのテキスト音声合成モデルを得ることができる。
図6は、本開示の一実施例に係る人工ニューラルネットワークベースのテキスト音声合成装置の構成を示す図である。
図6において、図5で説明した内容と重複する内容は省略される。図6のデコーダ(620)は、エンコーダ(610)からエンコーダの隠れ状態eiを受信することができる。また、図6のデコーダ(620)は、図5のデコーダ(520)と異なり、話者の音声データ(621)を受信することができる。ここで、音声データ(621)は、予め決定された時間区間(短い時間区間、例えば、数秒、数十秒または数十分)内に話者から入力された音声を表すデータを含むことができる。例えば、話者の音声データ(621)は、音声スペクトログラムデータ(例えば、ログメルスペクトログラム)を含むことができる。デコーダ(620)は、話者の音声データに基づいて、話者の発声特徴を表す話者の発声特徴埋め込みベクトル(622)を取得することができる。デコーダ(620)は、話者の発声特徴埋め込みベクトル(622)をアテンションRNNおよびデコーダRNNに提供することができる。
図5に図示されたテキスト音声合成システムは、話者の発声特徴を表す情報として話者(speaker)IDを使用し、これらの話者IDは、ワンホットベクトル(single−hot vector)として表現されることができる。ただし、このようなワンホット話者IDベクトルは、学習データにない新たな話者に対するIDに容易に拡張することができない。このようなテキスト音声合成システムは、ワンホットベクトルで表現された話者に対してのみ埋め込みを学習したため、新たな話者の埋め込みを得る方法がない。新たな話者の音声を生成するためには、全体TTSモデルを再学習したり、TTSモデルの埋め込み層を微調整したりする必要がある。これらの作業は、GPUが搭載された装備を利用する場合、相当な時間が所要されるプロセスに該当する。これに反して、図6に図示されたテキスト音声合成システムは、新たな話者ベクトルを生成するためにTTSモデルを追加で学習したり、話者埋め込みベクトルを手動で検索したりすることなく、新たな話者の音声を即時生成することができるTTSシステムを提供する。つまり、テキスト音声合成システムは、複数の話者に適応的に変更された音声を生成することができる。
一実施例によれば、図6においては入力テキストに対する音声合成時に、第1の話者の音声データ(621)から抽出された第1の話者の発声特徴埋め込みベクトル(622)がデコーダRNNおよびアテンションRNNに入力されるように構成されているが、図5に図示された第2の話者のワンホット話者IDベクトル(521)も一緒にデコーダRNNおよびアテンションRNNに入力されることができる。例えば、発声特徴埋め込みベクトル(622)に関連する第1の話者とワンホット話者IDベクトル(521)に関連する第2の話者は同一であることができる。さらに他の例として、発声特徴埋め込みベクトル(622)に関連する第1の話者とワンホット話者IDベクトル(521)に関連する第2の話者は異なることができる。これにより、入力テキストに対する音声合成時に、第1の話者の発声特徴埋め込みベクトル(622)および第2の話者のワンホット話者IDベクトル(521)が一緒にデコーダRNNおよびアテンションRNNに入力されることによって、入力テキストに対応する第2の話者の音声に第1の話者の発声特徴埋め込みベクトル(622)に含まれた韻律的特徴、感情的特徴または音色および音高の特徴のうち少なくとも1つの特徴が反映された合成音声が生成されることができる。つまり、ワンホット話者IDベクトル(521)と関連する第2の話者の声に、第1の話者の発声特徴、すなわち、韻律的特徴、感情的特徴または音色および音高の特徴のうち少なくとも1つの特徴が反映された合成音声が生成されることができる。
図7は、本開示の一実施例に係る複数の話者の各々を区別することができる埋め込みベクトル(622)を抽出するネットワークを示す図である。
一実施例によれば、図7に図示されたネットワークは、畳み込みネットワーク(convulutional network)および最大オーバータイムプーリング(max−over−time pooling)を含み、ログメルスペクトログラム(log−Mel−spectrogram)の入力を受けて、音声サンプルまたは音声信号として固定次元話者埋め込みベクトルを抽出することができる。ここで、音声サンプルまたは音声信号は、入力テキストに該当する音声データである必要はなく、ランダムに選択された音声信号が使用されることができる。
このようなネットワークにおいて、スペクトログラムが利用されることに制約がないため、任意のスペクトログラムがこのネットワークに挿入されることができる。また、これにより、ネットワークの即時的な適応を介して新たな話者のための発声特徴を表す埋め込みベクトル(622)を生成することができる。入力スペクトログラムは、多様な長さを有することができるが、例えば、時間軸に対して長さが1に固定された次元ベクトルが畳み込み層の終端に位置する最大オーバータイムプーリング(max−over−time pooling)層に入力されることができる。
図7においては、畳み込みネットワーク(convulutional network)および最大オーバータイムプーリング(max−over−time pooling)を含むネットワークを図示しているが、話者の発声特徴を抽出するために多様な層を含むネットワークを構築することができる。例えば、話者の発声特徴のうちアクセントのように時間に応じて音声特徴パターンの変化を表す場合、RNN(Recurrent neural network)を使用して特徴を抽出するようにネットワークを具現することができる。
図8は、本開示の一実施例に係る人工ニューラルネットワークベースのテキスト音声合成装置の構成を示す図である。図8のテキスト音声合成装置に対する説明において、図5または図6のテキスト音声合成装置と重複する説明は省略する。図8において、エンコーダ(810)は、入力テキストを受信することができる。例えば、入力テキストは、複数の言語で構成されることができる。一実施例によれば、入力テキストは、1つ以上の言語で使用される単語、句または文章のうち少なくとも1つを含むことができる。例えば、「アンニョンハセヨ」などのような韓国語の文章または「How are you?」などのような英語の文章のようなテキストの入力を受けることができる。入力テキストが受信されると、エンコーダ(810)は、受信された入力テキストを字母単位、文字単位、音素(phoneme)単位に分離することができる。他の実施例によれば、エンコーダ(810)は、字母単位、文字単位、音素(phoneme)単位に分離された入力テキストを受信することができる。さらに他の実施例によれば、エンコーダ(810)は、入力テキストに対する文字埋め込みを受信することができる。
エンコーダ(810)が入力テキストまたは分離された入力テキストを受信した場合、エンコーダ(810)は、少なくとも1つの埋め込み層を生成するように構成されることができる。一実施例によれば、エンコーダ(810)の少なくとも1つの埋め込み層は、字母単位、文字単位、音素(phoneme)単位に分離された入力テキストに基づいて文字埋め込みを生成することができる。例えば、エンコーダ(810)は、分離された入力テキストに基づいて文字埋め込みを取得するために、すでに学習された機械学習モデル(例えば、確率モデルまたはニューラルネットワークなど)を使用することができる。さらに、エンコーダ(810)は、機械学習を遂行しながら機械学習モデルを更新することができる。機械学習モデルが更新される場合、分離された入力テキストに対する文字埋め込みも変更されることができる。
エンコーダ(810)は、文字埋め込みを全結合層(fully−connected layer)で構成されたDNN(Deep Neural Network)モジュールに通過させることができる。DNNは、一般的なフィードフォワード層(feedforward layer)または線形層(linear layer)を含むことができる。
エンコーダ(810)は、DNNの出力をCNN(convolutional neural network)またはRNN(Recurrent Neural Network)のうち少なくとも1つが含まれたモジュールに提供することができる。また、エンコーダ(810)は、デコーダ(820)で話者の音声データに基づいて生成された話者の発声特徴埋め込みベクトル(s)を受信することができる。CNNは、畳み込みカーネル(convolution kernel)サイズによる地域的特性を捕捉することができる反面、RNNは、長期依存性(long term dependency)を捕捉することができる。エンコーダ(810)は、DNNの出力および話者の発声特徴埋め込みベクトル(s)をCNNまたはRNNのうち少なくとも1つに入力して、エンコーダ(810)の隠れ状態(h)を出力することができる。
デコーダ(820)は、話者の音声データを受信することができる。デコーダ(820)は、話者の音声データに基づいて、話者の発声特徴埋め込みベクトル(s)を生成することができる。埋め込み層は、話者の音声データを受信することができる。埋め込み層は、話者の音声データに基づいて、話者の発声特徴を生成することができる。ここで、話者の発声特徴は、個人別に異なる特徴を有することができる。埋め込み層は、例えば、機械学習に基づいて話者別の発声特徴を区別することができる。例えば、埋め込み層は、話者の発声特徴を表す話者の発声特徴埋め込みベクトル(s)を生成することができる。一実施例によれば、デコーダ(820)は、話者の発声特徴を話者の発声特徴埋め込みベクトル(s)に変換するために、すでに学習された機械学習モデルを使用することができる。デコーダは、機械学習を遂行しながら機械学習モデルを更新することができる。機械学習モデルが更新される場合、話者の発声特徴を表す話者の発声特徴埋め込みベクトル(s)も変更されることができる。例えば、前述した図7の音声抽出ネットワークを利用して、受信された話者の音声データから話者の発声特徴を抽出することができる。
話者の発声特徴埋め込みベクトル(s)は、エンコーダ(810)のCNNまたはRNNのうち少なくとも1つに出力されることができる。また、話者の発声特徴埋め込みベクトル(s)は、デコーダのデコーダRNNおよびアテンションRNNに出力されることができる。
デコーダ(820)のアテンション(attention)は、エンコーダ(810)からエンコーダの隠れ状態(h)を受信することができる。隠れ状態(h)は、エンコーダ(810)の機械学習モデルからの結果値を示すことができる。例えば、隠れ状態(h)は、本開示の一実施例による単一の人工ニューラルネットワークのテキスト音声合成モデルの一部構成要素を含むことができる。また、デコーダ(820)のアテンションは、アテンションRNNから情報を受信することができる。アテンションRNNから受信した情報は、デコーダ(820)が以前の時間−ステップ(time−step)までどの音声を生成したのかに関する情報を含むことができる。また、デコーダ(820)のアテンションは、アテンションRNNから受信した情報およびエンコーダの情報に基づいて、コンテキストベクトルを出力することができる。エンコーダ(810)の情報は、音声を生成すべき入力テキストに関する情報を含むことができる。コンテキストベクトルは、現在の時間−ステップ(time−step)で入力テキストのうちどの部分から音声を生成するかを決定するための情報を含むことができる。例えば、デコーダ(820)のアテンションは、音声生成の初期には、入力テキストの前部分に基づいて音声を生成し、音声が生成されるにつれて、徐々に入力テキストの後部分に基づいて音声を生成するようにする情報を出力することができる。
デコーダ(820)は、話者の発声特徴埋め込みベクトル(s)をアテンション(attention)RNNおよびデコーダ(decoder)RNNに入力して、話者別に異ならせてデコードをするように人工ニューラルネットワークの構造を構成することができる。一実施例によれば、テキスト音声合成システムは、人工ニューラルネットワークを学習させるために、テキスト、話者の発声特徴埋め込みベクトル(s)、音声信号のペアで存在するデータベースを利用することができる。他の実施例においては、図5で説明したように、話者の発声特徴を表す話者の発声特徴埋め込みベクトル(s)の代わりにワンホットベクトルを使用して、データベースが構築されることができる。また、話者の発声特徴埋め込みベクトル(s)とワンホットベクトルが一緒に使用されてデータベースが構築されることができる。
ダミーフレームは、以前の時間−ステップ(time−step)が存在しない場合、デコーダに入力されるフレームである。RNNは、自動回帰(autoregressive)で機械学習をすることができる。つまり、直前の時間−ステップ(822)で出力されたrフレームは、現在の時間−ステップ(823)の入力となることができる。最初の時間−ステップ(821)では直前の時間−ステップが存在しないため、デコーダ(820)は、最初の時間−ステップの機械学習ネットワークにダミーフレームを入力することができる。
一実施例によれば、デコーダ(820)は、全結合層(fully−connected layer)で構成されたDNNを含むことができる。DNNは、一般的なフィードフォワード層(feedforward layer)または線形層(linear layer)のうち少なくとも1つを含むことができる。
一実施例において、デコーダ(820)は、GRUで構成されたアテンション(attention)RNNを含むことができる。アテンションRNNは、アテンションで使用される情報を出力する層である。アテンションに関しては既に上述したため詳細な説明は省略する。
デコーダ(820)は、レジデュアル(residual)GRUで構成されたデコーダ(decoder)RNNを含むことができる。デコーダRNNは、アテンションから入力テキストの位置情報を受信することができる。つまり、位置情報は、デコーダ(820)が入力テキストのどの位置を音声に変換しているかに関する情報を含むことができる。デコーダRNNは、アテンションRNNから情報を受信することができる。アテンションRNNから受信した情報は、デコーダ(820)が以前の時間−ステップ(time−step)までどの音声を生成したのかに関する情報を含むことができる。デコーダRNNは、今まで生成した音声に後続する次の出力音声を生成することができる。例えば、出力音声は、メルスペクトログラムの形態を有することができ、出力音声は、r個のフレームを含むことができる。
テキスト音声合成のために、DNN、アテンションRNNおよびデコーダRNNの動作は、繰り返して遂行されることができる。例えば、最初の時間−ステップ(821)で取得されたr個のフレームは、次の時間−ステップ(822)の入力となることができる。また、時間−ステップ(822)で出力されたr個のフレームは、次の時間−ステップ(823)の入力となることができる。
上述したような過程を通じて、テキストのすべての単位に対する音声が生成されることができる。一実施例によれば、テキスト音声合成システムは、それぞれの時間−ステップ別に出たメルスペクトログラムを時間順に連結(concatenate)して、全体テキストに対するメルスペクトログラムの音声を取得することができる。全体テキストに対するメルスペクトログラムの音声は、ボコーダ(830)に出力されることができる。
本開示の一実施例によるボコーダー(830)のCNNまたはRNNは、エンコーダ(810)のCNNまたはRNNと類似な動作をすることができる。つまり、ボコーダー(830)のCNNまたはRNNは、地域的特性と長期依存性を捕捉することができる。これにより、ボコーダー(830)のCNNまたはRNNは、リニアスケールスペクトログラム(linear−scale spectrogram)を出力することができる。例えば、リニアスケールスペクトログラムは、マグニチュードスペクトログラム(magnitude spectrogram)を含むことができる。ボコーダー(830)は、図8に図示されたように、スペクトログラムの位相(phase)をグリフィンリム(Griffin−Lim)アルゴリズムを通じて予測することができる。ボコーダー(830)は、逆短時間フーリエ変換(Inverse Short−Time Fourier Transform)を利用して、時間ドメイン(time domain)の音声信号を出力することができる。
本開示の他の実施例によるボコーダーは、機械学習モデルに基づいて、メルスペクトログラムから音声信号を生成することができる。機械学習モデルは、メルスペクトログラムと音声信号との間の相関関係を機械学習したモデルを含むことができる。例えば、WaveNetまたはWaveGlowなどのような人工ニューラルネットワークモデルが使用されることができる。
このような人工ニューラルネットワークベースの音声合成装置は、1つ以上の言語で構成されたテキストと音声信号のペアで存在する大容量のデータベースを利用して学習することができる。一実施例によれば、音声合成装置は、テキストを受信し、出力された音声信号を正解音声信号と比較して損失関数(loss function)を定義することができる。音声合成装置は、損失関数を誤差逆伝播(error back propagation)アルゴリズムを通じて学習し、最終的にランダムのテキストを入力したときに所望の音声出力が出る人工ニューラルネットワークを得ることができる。
このような人工ニューラルネットワークベースの音声合成装置においては、テキスト、話者の発声特徴などが人工ニューラルネットワークに入力されて音声信号が出力されることができる。テキスト音声合成装置は、出力された音声信号と正解音声信号を比較して学習することによって、テキストや話者の発声特徴を受信するときにその話者の音声でテキストを読んだ出力音声データを生成することができる。
図9は、本開示の一実施例に係る発声特徴調節部(900)の動作を示すフローチャートである。
図9の発声特徴調節部(900)は、図2の発声特徴調節部(220)の同一または類似の構成を含むことができる。図2と重複する説明は省略する。
発声特徴調節部(900)は、話者の情報を表す埋め込みベクトルを受信することができる。一実施例によれば、これらの埋め込みベクトルは、話者の発声特徴に対する埋め込みベクトルを含むことができる。例えば、話者の情報に対する埋め込みベクトルは、話者の発声特徴のうち互いに直交する複数のサブ埋め込みベクトルの加重和として表示されることができる。
発声特徴調節部(900)は、受信された話者の情報に対する埋め込みベクトルの内在要素を分離することができる。例えば、発声特徴調節部(900)は、話者の情報に対する埋め込みベクトルに基づいて、互いに直交する複数の単位埋め込みベクトルを取得することができる。一実施例によれば、埋め込みベクトルに内在された要素を分離する方法としては、独立成分分析(ICA:independent component analysis)、独立ベクトル分析(IVA:independent vector analysis)、スパースコーディング(sparse coding)、独立因子分析(IFA:independent factor analysis)、独立部分空間分析(ISA:independent subspace analysis)、非負値行列因子分解(NMF:nonnegative matrix factorization)などの多様な方法があり得る。そして、埋め込みベクトルに内在された要素が分離され得るように、テキスト音声合成装置は、話者の情報に対する埋め込みベクトルを学習するときにテキスト音声合成装置の学習式に正規化(regularization)を遂行することができる。テキスト音声合成装置が学習式に正規化を遂行して機械学習をする場合、埋め込みベクトルは、スパースベクトル(sparse vector)に学習されることができる。これにより、テキスト音声合成装置は、スパースベクトルに学習された埋め込みベクトルで、主成分分析(PCA:principle component analysis)を利用して、内在された要素を正確に分離することができる。
一実施例によれば、発声特徴調節部(900)は、出力音声データに対する追加の入力を受信するように構成されることができる。発声特徴調節部(900)は、追加の入力に基づいて、話者の発声特徴を表す埋め込みベクトルを修正することができる。例えば、発声特徴調節部(900)は、追加の入力に基づいて、複数の単位埋め込みベクトルに対する加重値を変更することができる。
一実施例において、発声特徴調節部(900)は、受信された追加の入力に基づいて話者の発声特徴を表す埋め込みベクトルを修正するように構成されることができる。例えば、発声特徴調節部(900)は、追加の入力に応じて変更された加重値を、複数の単位埋め込みベクトルに乗じて加えることにより、話者の情報に対する埋め込みベクトルを再合成することができる。発声特徴調節部(900)は、変更された話者の情報に対する埋め込みベクトルを出力することができる。テキスト音声合成装置は、修正された埋め込みベクトルを単一の人工ニューラルネットワークのテキスト音声合成モデルに入力して、出力音声データを、追加の入力に含まれた情報が反映された入力テキストに対する音声データに変換することができる。
図10は、本開示の一実施例に基づいて出力音声の特性を変更するユーザーインターフェースの例を示す図である。
テキスト音声合成装置は、ユーザーからテキストウィンドウに入力されたテキストを受信することができる。図10に図示された再生ボタンが選択される場合(例えば、タッチされたり、押されたりする場合)、テキスト音声合成装置は、入力されたテキストに対応する出力音声データを生成して、ユーザーインターフェースを含むユーザー端末に提供することができる。
テキスト音声合成装置は、ユーザーからの追加の入力を受信することができる。出力音声データに対する追加の入力は、性別に関する情報、年齢に関する情報、地域別イントネーションに関する情報、発声の速度に関する情報または音高および発声の大きさに関する情報のうち少なくとも1つを含むことができる。
一実施例によれば、テキスト音声合成装置は、現在の選択または指定された話者の発声特徴を、通信部を介してユーザー端末に送信することができ、現在の音声特徴が、図10に図示されたように、ユーザー端末のディスプレイ部に所定の形状(例えば、線、多角形、円形など)で表示されることができる。ユーザーは、入力部を利用して、性別に関する情報、年齢に関する情報、地域別イントネーションに関する情報、発声の速度に関する情報、音高および発声の大きさに関する情報のうち少なくとも1つを変更することができ、ユーザーの入力に基づいて変更された出力音声が出力されることができる。例えば、ユーザーは、図10に図示されたように、女性に近い性別、60代より10代に近い年齢、忠清地方のイントネーションを選択することができる。選択された入力に基づいて、現在の音声特徴が変更され、ユーザー端末に変更された音声特徴が反映されたり、合成された音声が出力されたりすることができる。
以上のように、複数の実施例に基づいて話者の情報に対する埋め込みベクトル中に内在された要素の1つ以上を変更して、声の特性を変更する構成を説明したが、本発明はこれに限定されるものではなく、他の適切な方法によって構成することもできる。一実施例によれば、埋め込みベクトルの内在された要素をSSML(speech synthesis markup language)の属性(attribute)に表現して変更することもできる。例えば、<gender value = 「6」><region value = 「3、4、5」>のようにSSMLの属性に表現することができる。
図11は、本開示の一実施例に係るテキスト音声合成システム(1100)のブロック図である。
図11を参照すると、一実施例によるテキスト音声合成システム(1100)は、データ学習部(1110)およびデータ認識部(1120)を含むことができる。データ学習部(1110)は、データを入力して機械学習モデルを取得することができる。また、データ認識部(302)は、データを機械学習モデルに適用して、出力音声を生成することができる。上述したようなテキスト音声合成システム(1100)は、プロセッサおよびメモリを含むことができる。
データ学習部(1110)は、テキストに対する音声学習をすることができる。データ学習部(1110)は、テキストに応じてどの音声を出力するかに関する基準を学習することができる。また、データ学習部(1110)は、どの音声の特徴を利用して音声を出力するかに関する基準を学習することができる。音声の特徴は、音素の発音、ユーザーの語調、イントネーションまたはアクセントのうち少なくとも1つを含むことができる。データ学習部(1110)は、学習に利用されるデータを取得し、取得されたデータを後述するデータ学習モデルに適用することによって、テキストに応じた音声を学習することができる。
データ認識部(1120)は、テキストに基づいてテキストに対する音声を出力することができる。データ認識部(1120)は、学習されたデータ学習モデルを利用して、所定のテキストから音声を出力することができる。データ認識部(1120)は、学習による予め設定された基準に基づいて、所定のテキスト(データ)を取得することができる。また、データ認識部(1120)は、取得されたデータを入力値としてデータ学習モデルを利用することによって、所定のデータに基づいた音声を出力することができる。また、取得されたデータを入力値としてデータ学習モデルによって出力された結果値は、データ学習モデルを更新するのに利用されることができる。
データ学習部(1110)またはデータ認識部(1120)のうち少なくとも1つは、少なくとも1つのハードウェアチップ形態に製作されて、電子機器に搭載されることができる。例えば、データ学習部(1110)またはデータ認識部(1120)のうち少なくとも1つは、人工知能(AI;artificial intelligence)のための専用ハードウェアチップの形態に製作されることもでき、または既存の汎用プロセッサ(例:CPUまたはapplication processor)またはグラフィック専用プロセッサ(例:GPU)の一部として製作され、すでに説明した各種の電子機器に搭載されることもできる。
また、データ学習部(1110)およびデータ認識部(1120)は、別々の電子機器にそれぞれ搭載されることもできる。例えば、データ学習部(1110)およびデータ認識部(1120)のうち1つは電子機器に含まれ、残りの1つはサーバーに含まれることができる。また、データ学習部(1110)およびデータ認識部(1120)は、有線または無線を通じて、データ学習部(1110)が構築したモデルの情報をデータ認識部(1120)に提供することもでき、データ認識部(1120)に入力されたデータが追加の学習データとしてデータ学習部(1110)に提供されることもできる。
一方、データ学習部(1110)またはデータ認識部(1120)のうち少なくとも1つは、ソフトウェアモジュールで具現されることができる。データ学習部(1110)およびデータ認識部(1120)のうち少なくとも1つが、ソフトウェアモジュール(または、命令(instruction)を含むプログラムモジュール)で具現される場合、ソフトウェアモジュールは、メモリまたはコンピュータ読み取り可能な非一時的な読み取り可能な記録媒体(non−transitory computer readable media)に格納されることができる。また、この場合、少なくとも1つのソフトウェアモジュールは、OS(Operating System)によって提供されたり、所定のアプリケーションによって提供されたりすることができる。これと異なり、少なくとも1つのソフトウェアモジュールのうち一部はOS(Operating System)によって提供され、残りの一部は所定のアプリケーションによって提供されることができる。
本開示の一実施例によるデータ学習部(1110)は、データ取得部(1111)、前処理部(1112)、学習データ選択部(1113)、モデル学習部(1114)およびモデル評価部(1115)を含むことができる。
データ取得部(1111)は、機械学習に必要なデータを取得することができる。学習のためには多くのデータが必要であるため、データ取得部(1111)は、複数のテキストおよびそれに対応する音声を受信することができる。
前処理部(1112)は、ユーザーの心理状態判断のために取得されたデータが機械学習に使用され得るように、取得されたデータを前処理することができる。前処理部(1112)は、後述するモデル学習部(1114)が利用できるように、取得されたデータを予め設定されたフォーマットに加工することができる。例えば、前処理部(1112)は、テキストおよび音声を形態素解析して形態素埋め込みを取得することができる。
学習データ選択部(1113)は、前処理されたデータの中から学習に必要なデータを選択することができる。選択されたデータは、モデル学習部(1114)に提供されることができる。学習データ選択部(1113)は、既設定された基準に基づいて、前処理されたデータの中から学習に必要なデータを選択することができる。また、学習データ選択部(1113)は、後述するモデル学習部(1114)による学習によって、既設定された基準に基づいてデータを選択することもできる。
モデル学習部(1114)は、学習データに基づいて、テキストに応じてどの音声を出力するかに関する基準を学習することができる。また、モデル学習部(1114)は、テキストに応じて音声を出力する学習モデルを学習データとして利用して学習させることができる。この場合、データ学習モデルは、予め構築されたモデルを含むことができる。例えば、データ学習モデルは、基本学習データ(例えば、サンプルイメージなど)の入力を受けて予め構築されたモデルを含むことができる。
データ学習モデルは、学習モデルの適用分野、学習の目的または装置のコンピュータ性能などを考慮して構築されることができる。データ学習モデルは、例えば、ニューラルネットワーク(Neural Network)をベースにするモデルを含むことができる。例えば、ディープニューラルネットワーク(DNN:Deep Neural Network)、回帰型ニューラルネットワーク(RNN:Recurrent Neural Network)、長・短期記憶モデル(LSTM:Long Short-Term Memory models)、双方向性回帰型ディープニューラルネットワーク(BRDNN:Bidirectional Recurrent Deep Neural Network)、畳み込みニューラルネットワーク(CNN:Convolutional Neural Networks)などのようなモデルがデータ学習モデルとして使用されることができるが、これに限定されない。
多様な実施例によれば、モデル学習部(1114)は、予め構築されたデータ学習モデルが複数個存在する場合、入力された学習データと基本学習データの関連性が大きいデータ学習モデルを学習するデータ学習モデルとして決定することができる。この場合、基本学習データは、データのタイプ別に既分類されていることができ、データ学習モデルは、データのタイプ別に予め構築されていることができる。例えば、基本学習データは、学習データが生成された地域、学習データが生成された時間、学習データの大きさ、学習データのジャンル、学習データの生成者、学習データ内のオブジェクトの種類などのような多様な基準で既分類されていることができる。
また、モデル学習部(1114)は、例えば、誤差逆伝播法(error back−propagation)または最急降下法(gradient descent)を含む学習アルゴリズムなどを利用して、データ学習モデルを学習することができる。
また、モデル学習部(1114)は、例えば、学習データを入力値とする教師あり学習(supervised learning)を通じて、データ学習モデルを学習することができる。
また、モデル学習部(1114)は、例えば、別途のガイドなしに、状況判断のために必要なデータの種類を自分で学習することによって状況判断のための基準を発見する教師なし学習(unsupervised learning)を通じて、データ学習モデルを学習することができる。また、モデル学習部(1114)は、例えば、学習による状況判断の結果が正しいかに対するフィードバックを利用する強化学習(reinforcement learning)を通じて、データ学習モデルを学習することができる。
また、データ学習モデルが学習されると、モデル学習部(1114)は、学習されたデータ学習モデルを格納することができる。この場合、モデル学習部(1114)は、学習されたデータ学習モデルを、データ認識部(1120)を含む電子機器のメモリに格納することができる。また、モデル学習部(1114)は、学習されたデータ学習モデルを電子機器と有線または無線ネットワークで接続されるサーバーのメモリに格納することもできる。
この場合、学習されたデータ学習モデルが格納されるメモリは、例えば、電子機器の少なくとも1つの他の構成要素に関係された命令またはデータを一緒に格納することもできる。さらに、メモリは、ソフトウェアおよび/またはプログラムを格納することもできる。プログラムは、例えば、カーネル、ミドルウェア、アプリケーションプログラミングインターフェース(API)および/またはアプリケーションプログラム(または「アプリケーション」)などを含むことができる。
モデル評価部(1115)は、データ学習モデルに評価データを入力し、評価データから出力される結果が所定の基準を満たさない場合、モデル学習部(1114)が再学習するようにすることができる。この場合、評価データは、データ学習モデルを評価するための既設定されたデータを含むことができる。
例えば、モデル評価部(1115)は、評価データに対する学習されたデータ学習モデルの結果の中で、認識結果が正確でない評価データの数または比率が予め設定されたしきい値を超える場合、所定の基準を満たさないものと評価することができる。例えば、所定の基準が比率2%で定義される場合において、学習されたデータ学習モデルが総1000個の評価データの中で20個を超える評価データに対して誤った認識結果を出力する場合、モデル評価部(1115)は、学習されたデータ学習モデルが適していないものであると評価することができる。
一方、学習されたデータ学習モデルが複数個存在する場合、モデル評価部(1115)は、それぞれの学習されたデータ学習モデルに対して所定の基準を満たすかを評価し、所定の基準を満足するモデルを最終データ学習モデルとして決定することができる。この場合、所定の基準を満たすモデルが複数個である場合、モデル評価部(1115)は、評価点数の高い順に予め設定されたある1つまたは所定個数のモデルを最終データ学習モデルとして決定することができる。
一方、データ学習部(1110)内のデータ取得部(1111)、前処理部(1112)、学習データ選択部(1113)、モデル学習部(1114)またはモデル評価部(1115)のうち少なくとも1つは、少なくとも1つのハードウェアチップ形態に製作されて、電子機器に搭載されることができる。例えば、データ取得部(1111)、前処理部(1112)、学習データ選択部(1113)、モデル学習部(1114)またはモデル評価部(1115)のうち少なくとも1つは、人工知能(AI;artificial intelligence)のための専用ハードウェアチップの形態に製作されることもでき、または既存の汎用プロセッサ(例:CPUまたはapplication processor)またはグラフィック専用プロセッサ(例:GPU)の一部として製作され、前述した各種の電子機器に搭載されることもできる。
また、データ取得部(1111)、前処理部(1112)、学習データ選択部(1113)、モデル学習部(1114)およびモデル評価部(1115)は、1つの電子機器に搭載されることもでき、または別の電子機器にそれぞれ搭載されることもできる。例えば、データ取得部(1111)、前処理部(1112)、学習データ選択部(1113)、モデル学習部(1114)およびモデル評価部(1115)のうち一部は電子機器に含まれ、残りの一部はサーバーに含まれることができる。
また、データ取得部(1111)、前処理部(1112)、学習データ選択部(1113)、モデル学習部(1114)またはモデル評価部(1115)のうち少なくとも1つは、ソフトウェアモジュールで具現されることができる。データ取得部(1111)、前処理部(1112)、学習データ選択部(1113)、モデル学習部(1114)またはモデル評価部(1115)のうち少なくとも1つがソフトウェアモジュール(または、命令(instruction)を含むプログラムモジュール)で具現される場合、ソフトウェアモジュールは、コンピュータ読み取り可能な非一時的な読み取り可能な記録媒体(non−transitory computer readable media)に格納されることができる。また、この場合、少なくとも1つのソフトウェアモジュールは、OS(Operating System)によって提供されたり、所定のアプリケーションによって提供されたりすることができる。これと異なり、少なくとも1つのソフトウェアモジュールのうち一部はOS(Operating System)によって提供され、残りの一部は所定のアプリケーションによって提供されることができる。
本開示の一実施例によるデータ認識部(1120)は、データ取得部(1121)、前処理部(1122)、認識データ選択部(1123)、認識結果提供部(1124)およびモデル更新部(1125)を含むことができる。
データ取得部(1121)は、音声を出力するために必要なテキストを取得することができる。逆に、データ取得部(1121)は、テキストを出力するために必要な音声を取得することができる。前処理部(1122)は、音声またはテキストを出力するために取得されたデータが使用され得るように、取得されたデータを前処理することができる。前処理部(1122)は、後述する認識結果提供部(1124)が音声またはテキストを出力するために取得されたデータを利用できるように、取得されたデータを既設定されたフォーマットに加工することができる。
認識データ選択部(1123)は、前処理されたデータの中から音声またはテキストを出力するために必要なデータを選択することができる。選択されたデータは、認識結果提供部(1124)に提供されることができる。認識データ選択部(1123)は、音声またはテキストを出力するための既設定された基準に基づいて、前処理されたデータの中から一部または全部を選択することができる。また、認識データ選択部(1123)は、モデル学習部(1114)による学習によって、既設定された基準に基づいてデータを選択することもできる。
認識結果提供部(1124)は、選択されたデータをデータ学習モデルに適用して、音声またはテキストを出力することができる。認識結果提供部(1124)は、認識データ選択部(1123)によって選択されたデータを入力値として利用することにより、選択されたデータをデータ学習モデルに適用することができる。また、認識結果は、データ学習モデルによって決定されることができる。
モデル更新部(1125)は、認識結果提供部(1124)によって提供される認識結果に対する評価に基づいて、データ学習モデルが更新されるようにすることができる。例えば、モデル更新部(1125)は、認識結果提供部(1124)によって提供される認識結果をモデル学習部(1114)に提供することにより、モデル学習部(1114)がデータ学習モデルを更新するようにすることができる。
一方、データ認識部(1120)内のデータ取得部(1121)、前処理部(1122)、認識データ選択部(1123)、認識結果提供部(1124)またはモデル更新部(1125)のうち少なくとも1つは、少なくとも1つのハードウェアチップの形態に製作されて、電子機器に搭載されることができる。例えば、データ取得部(1121)、前処理部(1122)、認識データ選択部(1123)、認識結果提供部(1124)またはモデル更新部(1125)のうち少なくとも1つは、人工知能(AI;artificial intelligence)のための専用ハードウェアチップの形態に製作されることもでき、または既存の汎用プロセッサ(例:CPUまたはapplication processor)またはグラフィック専用プロセッサ(例:GPU)の一部として製作され、前述した各種の電子機器に搭載されることもできる。
また、データ取得部(1121)、前処理部(1122)、認識データ選択部(1123)、認識結果提供部(1124)およびモデル更新部(1125)は、1つの電子機器に搭載されることもでき、または別の電子機器にそれぞれ搭載されることもできる。例えば、データ取得部(1121)、前処理部(1122)、認識データ選択部(1123)、認識結果提供部(1124)およびモデル更新部(1125)のうち一部は電子機器に含まれ、残りの一部はサーバーに含まれることができる。
また、データ取得部(1121)、前処理部(1122)、認識データ選択部(1123)、認識結果提供部(1124)またはモデル更新部(1125)のうち少なくとも1つは、ソフトウェアモジュールで具現されることができる。データ取得部(1121)、前処理部(1122)、認識データ選択部(1123)、認識結果提供部(1124)またはモデル更新部(1125)のうち少なくとも1つが、ソフトウェアモジュール(または、命令(instruction)を含むプログラムモジュール)で具現される場合、ソフトウェアモジュールは、コンピュータ読み取り可能な非一時的な読み取り可能な記録媒体(non−transitory computer readable media)に格納されることができる。また、この場合、少なくとも1つのソフトウェアモジュールは、OS(Operating System)によって提供されたり、所定のアプリケーションによって提供されたりすることができる。これと異なり、少なくとも1つのソフトウェアモジュールのうち一部はOS(Operating System)によって提供され、残りの一部は所定のアプリケーションによって提供されることができる。
これまでに多様な実施例を中心に説明した。本発明が属する技術分野において通常の知識を有する者は、本発明が、本発明の本質的な特性から逸脱しない範囲で変形された形態で具現され得ることを理解できるであろう。したがって、開示された実施例は、限定的な観点ではなく、説明的な観点から考慮されるべきである。本発明の範囲は、前述した説明ではなく、特許請求の範囲に示されており、それと同等の範囲内にあるすべての違いは、本発明に含まれるものと解釈されるべきである。
一方、上述した本発明の実施例は、コンピュータで実行され得るプログラムで作成可能であり、コンピュータ読み取り可能な記録媒体を利用してプログラムを動作させる汎用デジタルコンピュータで具現されることができる。コンピュータ読み取り可能な記録媒体は、磁気記録媒体(例えば、ロム、フロッピーディスク、ハードディスクなど)、光学的読み取り媒体(例えば、CD−ROM、DVDなど)のような記憶媒体を含む。