(57)【要約】【課題】ハードウェアスペックが限られた端末においても多数の話者の音声合成を可能にする最適な構成の辞書を配信する辞書配信システムを提供することである。【解決手段】実施形態の音声合成辞書配信装置は、話者の識別情報と前記話者の音響モデルとを関連付けて保存する第１辞書と、複数話者の音声データを利用し作成された汎用的な音響モデルを持つ第２辞書とを記憶すると共に、話者の識別情報と前記第２辞書に用いるための話者のパラメータとを関連付けて記憶する音声合成辞書データベースと、前記第１辞書と前記第２辞書のどちらを使用するか判定する条件判定部と、端末が送信した話者の識別情報を受信し、受信した前記話者の識別情報および前記条件判定部の判定結果に基づき、辞書またはおよびパラメータを配信する送受信部と、を備える。【選択図】  図１
2019040166.tif 000002
【特許請求の範囲】
【請求項１】
音声合成を行うための辞書を端末に配信する音声合成辞書配信装置であって、
話者の識別情報と前記話者の音響モデルとを関連付けて保存する第１辞書と、複数話者の音声データを利用し作成された汎用的な音響モデルを持つ第２辞書とを記憶すると共に、話者の識別情報と前記第２辞書に用いるための話者のパラメータとを関連付けて記憶する音声合成辞書データベースと、
前記第１辞書と前記第２辞書のどちらを使用するか判定する条件判定部と、
端末が送信した話者の識別情報を受信し、受信した前記話者の識別情報および前記条件判定部の判定結果に基づき、辞書またはおよびパラメータを配信する送受信部と、
を備える音声合成辞書配信装置。
【請求項２】
複数話者の音声データを利用し作成された汎用的な音響モデルを持つ第２辞書が記憶された端末に、音声合成を行うための辞書を配信する音声合成辞書配信装置であって、
話者の識別情報と前記話者の音響モデルとを関連付けて保存する第１辞書を記憶すると共に、話者の識別情報と前記第２辞書に用いるための話者のパラメータとを関連付けて保存する音声合成辞書データベースと、
前記第１辞書と前記第２辞書のどちらを使用するか判定する条件判定部と、
端末が送信した話者の識別情報を受信し、受信した前記話者の識別情報および前記条件判定部の判定結果に基づき、前記第１辞書またはおよびパラメータを配信する送受信部と、
を備える音声合成辞書配信装置。
【請求項３】
前記音声合成辞書配信装置は、ネットワークの通信状態を測定する通信状態測定部を備え、
前記条件判定部は、前記通信状態測定部の測定結果に基づいて、使用する辞書を判定する、
請求項１または請求項２に記載の音声合成辞書配信装置。
【請求項４】
前記音声合成配信装置は、話者の重要度を算出する話者重要度計算部を備え、
前記条件判定部は、前記話者重要度計算部の算出結果に基づいて、使用する辞書を判定する、
請求項１ないし請求項３いずれかに記載の音声合成辞書配信装置。
【請求項５】
前記音声合成配信装置は、辞書に基づいて合成された音響特徴量と話者の肉声から抽出した音響特徴量とを比較し、再現度を算出する話者再現度計算部を備え、
前記条件判定部は、前記再現度計算部の算出結果に基づいて、使用する辞書を判定する、
請求項１ないし請求項４のいずれかに記載の音声合成辞書配信装置。
【請求項６】
合成音声を端末に配信する音声合成辞書配信装置であって、
話者の識別情報と前記話者の音響モデルとを関連付けて保存する第１辞書と、複数話者の音声データを利用し作成された汎用的な音響モデルを持つ第２辞書とを記憶すると共に、話者の識別情報と前記第２辞書に用いるための話者のパラメータとを関連付けて記憶する音声合成辞書データベースと、
端末が送信した話者の識別情報を受信する送受信部と、
前記音声合成辞書データベースを参照し、メモリにロードする辞書またはおよびパラメータを選択する辞書構成部と、
前記辞書構成部で選択された辞書を利用して音声を合成する音声合成部と、を備え、
前記送受信部はさらに、前記音声合成部で合成した音声を端末に配信する音声合成辞書配信装置。
【請求項７】
前記辞書構成部は、音声合成辞書配信装置のサーバ負荷を算出し、
前記算出したサーバ負荷が閾値よりも大きい場合に、使用頻度が最も少ない辞書またはおよびパラメータをメモリからアンロードする、
請求項６に記載の音声合成装置。
【請求項８】
音声合成を行うための辞書を端末に配信する音声合成辞書配信装置で実行されるプログラムであって、
話者の識別情報と前記話者の音響モデルとを関連付けて保存する第１辞書と、複数話者の音声データを利用し作成された汎用的な音響モデルを持つ第２辞書とを記憶すると共に、話者の識別情報と前記第２辞書に用いるための話者のパラメータとを関連付けて記憶する記憶機能と、
前記記憶機能によって記憶された辞書を参照し、使用する辞書を判定する条件判定機能と、
端末が送信した話者の識別情報を受信し、受信した前記話者の識別情報および前記条件判定部の判定結果に基づき、辞書またはおよびパラメータを配信する送受信機能と、
を備えることをコンピュータに実現させる、音声合成辞書配信プログラム。
【請求項９】
複数話者の音声データを利用し作成された汎用的な音響モデルを持つ第２辞書が記憶された端末に、音声合成を行うための辞書を配信する音声合成辞書配信装置で実行されるプログラムであって、
話者の識別情報と前記話者の音響モデルとを関連付けて保存する第１辞書を記憶すると共に、話者の識別情報と前記第２辞書に用いるための話者のパラメータとを関連付けて記憶する記憶機能と、
前記記憶機能によって記憶された辞書を参照し、使用する辞書を判定する条件判定機能と、
端末が送信した話者の識別情報を受信し、受信した前記話者の識別情報および前記条件判定部の判定結果に基づき、辞書またはおよびパラメータを配信する送受信機能と、
を備えることをコンピュータに実現させる、音声合成辞書配信プログラム。
【請求項１０】
合成音声を端末に配信する音声合成装置で実行されるプログラムであって、
話者の識別情報と前記話者の音響モデルとを関連付けて保存する第１辞書と、複数話者の音声データを利用し作成された汎用的な音響モデルを持つ第２辞書とを記憶すると共に、話者の識別情報と前記第２辞書に用いるための話者のパラメータとを関連付けて記憶する記憶機能と、
端末が送信した話者の識別情報を受信する送受信機能と、
前記記憶機能によって記憶された辞書を参照し、メモリにロードするまたはおよびパラメータを選択する辞書構成機能と、
前記辞書構成機能で選択された辞書を利用して音声を合成する音声合成機能と、を備え、
前記送受信機能はさらに、前記音声合成機能で合成した音声を端末に配信することをコンピュータに実現させる、音声合成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、音声合成辞書配信装置、音声合成配信システムおよびプログラムに関する。
【背景技術】
【０００２】
近年、音声合成技術の発展により、入力したテキストから様々な話者の音声合成音を作成できるようになった。その方法として、（１）対象話者の声を直接モデル化する方法と、（２）パラメータの操作で様々な声を作成可能な方式（後述の固有声、重回帰ＨＳＭＭなど）で対象話者の声に合うパラメータを算出する方法の、大きく二種類がある。（１）の方法を使用すれば、より対象話者に似た音声合成音を合成可能であり、（２）の方法を使用すれば、1人の話者を表すのに必要なデータサイズが小さく済む。このような音声合成技術の提供形態として、音声合成サービスがある。音声合成サービスとは、音声合成の機能やアプリケーションをＷｅｂサービスとして提供するもので、例えば、あるユーザが話者を選択し、その話者に発話させたいテキストを入力すると合成音声が提供されるサービスである。ここで、ユーザとは、音声合成サービスを利用して様々な合成音声を使う側であり、話者とは、音声合成辞書等を生成するために自身の音声を提供し、ユーザに合成音声として使われる側を指す。なお、ユーザが自身の音声を提供すれば、自身を話者として選択することも可能である。
【０００３】
音声合成サービスで多数の話者の音声合成音を提供する場合、（ａ）ネットワークに接続されたサーバ上で話者を切り替えて作成した音声合成音を端末に送信する方法と、（ｂ）端末で動作する音声合成エンジンに音声合成辞書(以下、辞書）を配信する方法がある。しかし（ａ）の構成では、端末が常にネットワークに接続していないと音声が合成できない。また（ｂ）の構成では、端末が常時ネットワークに接続している必要はないが、端末のハードウェアスペックにより辞書に対する制約が強くなる。例えば、ＳＮＳの読み上げアプリケーションにおいて、端末上で異なる１０００人の話者を使いたい場合、各話者の辞書に配信条件（辞書サイズなど）を指定したとしても、結局は１０００個の音声合成辞書を端末に配信する必要があり、端末上で１０００個の音声合成辞書を保存して管理する必要があった。これだけの数の辞書を端末に配信して管理することはネットワーク帯域や端末の記憶容量を考慮すると非現実的であり、多数の話者を用いるアプリケーションはネットワークに常時接続できない端末上では実現できないという課題があった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２９７７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、ハードウェアスペックが限られた端末においても多数の話者の音声合成を可能にする最適な構成の辞書を配信する辞書配信システムを提供することである。
【課題を解決するための手段】
【０００６】
実施形態の音声合成辞書配信装置は、話者の識別情報と前記話者の音響モデルとを関連付けて保存する第１辞書と、複数話者の音声データを利用し作成された汎用的な音響モデルを持つ第２辞書とを記憶すると共に、話者の識別情報と前記第２辞書に用いるための話者のパラメータとを関連付けて記憶する音声合成辞書データベースと、前記第１辞書と前記第２辞書のどちらを使用するか判定する条件判定部と、端末が送信した話者の識別情報を受信し、受信した前記話者の識別情報および前記条件判定部の判定結果に基づき、辞書またはおよびパラメータを配信する送受信部と、を備える。
【図面の簡単な説明】
【０００７】
【図１】第一の実施形態に係る音声合成辞書配信システムを表すブロック図。
【図２】第一の実施形態に係る辞書配信サーバ１００の音声合成辞書DB１０５に記憶されるデータテーブルの一例。
【図３】第一の実施形態に係る端末１１０の音声合成辞書DB１１４に記憶されるデータテーブルの一例。
【図４】第一の実施形態に係る辞書配信サーバ１００の辞書配信の処理フロー。
【図５】第一の実施形態に係る辞書配信サーバ１００の辞書作成（Ｓ４０１）の処理をより詳細化したフロー。
【図６】第一の実施形態に係る端末１１０の処理フロー。
【図７】第一の実施形態に係る端末１１０の音声合成（Ｓ６０３）の処理をより詳細化した処理フロー。
【図８】第二の実施形態における辞書配信サーバ１００のブロック図。
【図９】第二の実施形態に係る辞書配信サーバ１００の辞書配信の処理フロー。
【図１０】第二の実施形態に係る話者重要度テーブル１００１の一例。
【図１１】第三の実施形態に係る辞書配信サーバ１００のブロック図。
【図１２】第三の実施形態に係る辞書配信サーバ１００の辞書配信の処理フロー。
【図１３】第三の実施形態に係る話者再現度テーブル１４０１の一例。
【図１４】第三の実施形態に係る話者再現度の計算方法の一例示す処理フロー。
【図１５】第四の実施形態に係る音声合成システムを表すブロック図。
【図１６】第四の実施形態に係る音声合成サーバ１５００の処理フロー。
【図１７】第四の実施形態に係る辞書のロード（Ｓ１６０１）の処理をより詳細化した処理フロー。
【図１８】第四の実施形態に係る話者リクエスト頻度テーブル１８０１の一例。
【発明を実施するための形態】
【０００８】
以下、発明を実施するための実施形態について説明する。
【０００９】
（第一の実施形態）
図１は、第一の実施形態に係る音声合成辞書配信システムを表すブロック図である。音声合成辞書配信システムは、辞書配信サーバ１００と端末１１０がネットワーク１２０を介して接続される。
【００１０】
辞書配信サーバ１００は、話者データベース（以下、ＤＢ）１０１と、第１辞書作成部１０２と、第２辞書作成部１０３と、条件判定部１０４と、音声合成辞書ＤＢ１０５と、通信状態測定部１０６と、送受信部１０７を備える。端末１１０は、入力部１１１と、送受信部１１２と、辞書管理部１１３と、音声合成辞書ＤＢ１１４と、合成部１１５と、出力部１１６を備える。
【００１１】
話者ＤＢ１０１は、１以上の話者の収録音声と収録テキストが格納されている。この収録音声と収録テキストを用いて第１辞書と第２辞書を作成する。
【００１２】
第１辞書作成部１０２は、話者ＤＢ１０１に格納された話者の収録音声と当該収録音声の収録テキストから、話者毎の音声合成辞書である第１辞書を作成する。第２辞書作成部１０３は、話者ＤＢ１０１に格納された１以上の話者の収録音声から第２辞書を作成するとともに、各話者のパラメータを推定する。
【００１３】
第１辞書とはある特定の話者の音声のみを合成できる辞書である。例えば、話者Ａの辞書、話者Ｂの辞書、話者Ｃの辞書というように話者毎に異なる辞書が存在する。一方、第２辞書とは各話者のパラメータ（Ｎ次元ベクトルで表される）を入力することで複数の話者の音声を合成できる汎用的な辞書である。話者Ａのパラメータ、話者Ｂのパラメータ、話者Ｃのパラメータを第２辞書に入力することで複数の話者の音声を合成できる（詳細は後述する）。
【００１４】
作成した各話者の第１辞書、第２辞書、推定した各話者のパラメータは音声合成辞書ＤＢ１０５に格納する。
【００１５】
音声合成辞書ＤＢ１０５は、例えば図２に示すデータテーブル２０１を記憶する。データテーブル２０１は、話者の識別情報である話者ＩＤ２０２、第１辞書のファイル名２０３、第２辞書で用いる話者パラメータ２０４を格納する欄を備える。本実施形態では、話者パラメータは０から１００の範囲の７次元ベクトルで表され、各数値がその話者の声質の特徴を表す。
【００１６】
条件判定部１０４は、端末から辞書配信リクエストがあった際に、各話者について第１辞書と第２辞書のどちらを用いるかを判定する。本実施形態では、判定の基準として通信状態測定部１０６が測定したネットワーク１２０の通信状態を用いる。送受信部１０７は、辞書配信サーバ１００と端末１１０間のリクエストの受信や辞書配信を行う。
【００１７】
端末１１０は、入力部１１１と、送受信部１１２と、辞書管理部１１３と、音声合成辞書ＤＢ１１４と、合成部１１５と、出力部１１６を備える。入力部１１１は、合成するテキストと使用する話者を取得する。送受信部１１２は、入力部１１１で取得した話者のリストを辞書配信サーバ１００に向けて送信したり、辞書を受信する。
【００１８】
辞書管理部１１３は、話者リストの話者の第１辞書および第２辞書の話者パラメータが既に辞書配信サーバ１００より配信済みか否か、端末の音声合成辞書ＤＢ１１４を参照して判定し、未配信の場合は辞書配信サーバ１００に辞書配信リクエストを出す。また、既に第１辞書またはパラメータが辞書配信サーバ１００より配信済みの場合は、第１辞書と第２辞書のどちらで音声を合成するか判定する。
【００１９】
端末の音声合成辞書ＤＢ１１４は、例えば図３に示すデータテーブル３０１を記憶する。データテーブル３０１は、辞書配信サーバ１００へ辞書配信リクエストを出した話者ＩＤ３０２、辞書配信サーバ１００から配信された第１辞書のファイル名３０３、第２辞書で用いる話者パラメータ３０４を格納する欄を備える。辞書配信サーバ１００の音声合成辞書ＤＢ１０８に記憶されたデータテーブル２０１と異なり、配信されていない第１辞書や話者パラメータの値は空白で表している。辞書管理部１１３は、音声合成を行う話者ＩＤの第１辞書や話者パラメータが配信済みか否かはデータベースのエントリが空白か否かで判定する。また、音声合成辞書ＤＢ１１４には、データテーブル３０１とは別に第２辞書も記憶されている。
【００２０】
合成部１１５は、テキストと、第１辞書あるいは第２辞書とパラメータを用いて音声を合成する。出力部１１６は合成音を再生する。
【００２１】
図４は、本実施形態に係る辞書配信サーバ１００の辞書配信の処理フローである。まず、ユーザが本実施形態に係るシステムを起動したり、ログインした際等に、辞書配信サーバ１００の第１辞書作成部１０２および第２辞書作成部１０３は、話者DB１０１を参照し、辞書を作成する（Ｓ４０１）。辞書作成の詳細は、後述する。次に、辞書配信サーバ１００の送受信部１０７は、端末１１０からの辞書配信リクエストを受信する（Ｓ４０２）。辞書配信のリクエストでは、端末１１０が音声合成をする話者の話者ＩＤを辞書配信サーバ１００に向けて送信する。例えば、端末１１０で１０００人の話者の音声を合成したい場合、辞書配信サーバ１００は、１０００人分の話者ＩＤを受信する。続いて、通信状態測定部１０６は、辞書配信サーバ１００と端末１１０との間の通信状態を測定する（Ｓ４０３）。ここで、通信状態とは、条件判定部１０４における判定で使用される指標であり、例えば、ネットワークの通信速度やネットワーク上の通信量の測定値等を含む。通信状態を判断できるのであれば、どのような指標であっても構わない。
【００２２】
次に、条件判定部１０４は、Ｓ４０３にて測定した通信状態が閾値以上か未満か判定する（Ｓ４０４）。受信した各話者ＩＤに対して、通信状態が閾値以上で「良い」とされる場合（Ｓ４０４のYes）、送受信部１１２を通して端末１１０に第１辞書を配信する。通信状態が閾値未満で「悪い」とされる場合（Ｓ４０４のNo）、送受信部１１２を通して第１辞書の代わりにパラメータを端末１１０に配信する。パラメータは辞書に比べてサイズが小さいため通信量を削減することができる。以上により、辞書配信サーバ１００の辞書配信の処理フローは終了する。
【００２３】
図５は、本実施形態に係る辞書配信サーバ１００の辞書作成（Ｓ４０１）の処理をより詳細化した処理フローである。まず、辞書配信サーバ１００の第１辞書作成部１０２は、各話者の第１辞書を作成するか否か判定する（S５01）第１辞書を作成する場合（S５０１のYes）、例えば、話者DB１０１に保存された話者のうち第１辞書が作成されていない話者が存在する場合や、あるユーザが本実施形態に係るシステムを初めて使う場合、端末１１０の入力部１１１を通して「第１辞書を作り直す」旨の入力があった場合等は、S５０２へ進む。第１辞書を作成しない場合、例えば、話者が以前にシステムを利用したことがあり、当該話者の第１辞書が既に存在する場合（S５０１のNo)、第１辞書の作成処理は終了する。
【００２４】
S５０２では、第１辞書作成部１０２は、話者DB１０１を参照し、話者の収録音声と当該音声の収録テキストから当該話者の第１辞書を作成する。ここでは、収録音声から音響特徴量を抽出、収録テキストから言語特徴量を抽出し、言語特徴量から音響特徴量への写像である音響モデルを学習する。そして、１つ以上の音響特徴量（例えば、スペクトル、音高、時間長など）の音響モデルを一つにまとめて第１辞書とする。第１辞書作成方法の詳細は、ＨＭＭ音声合成（非特許文献１）として一般的に知られているためここでは詳細な説明は省略する。作成した第１辞書は、話者IDと関連付けて音声合成辞書ＤＢ１０５に保存する。
（非特許文献１）K. Tokuda“Speech Synthesis based on Hidden Markov Models,”in Proceedings of the IEEE, vol.101, no.5, pp.1234-1252, 2013.
【００２５】
話者DB101に格納されている話者の収録音声は、例えば、端末１１０の図示しない表示部に表示した収録テキストを話者が読み上げ、当該話者の読み上げた音声を入力部１１１より取得し、ネットワーク１２０を介して辞書配信サーバ１００に送信することで、取得した音声と収録テキストを関連付けて話者DB１０１に保存する。あるいは、辞書配信サーバ１００の図示しない入力部より音声を取得しても良い。ここで、収録テキストは予め用意したものを話者DB１０１あるいは端末１１０に保存しておいても良いし、話者やシステムの管理者等が端末１１０の入力部１１１や辞書配信サーバ１００の図示しない入力部より収録テキストを入力しても良い。また、取得した音声を音声認識することでテキスト化し、収録テキストとしても良い。以上により、第１辞書作成処理は終了する。
【００２６】
次に、第２辞書の作成について説明する。まず、ユーザが本実施形態に係るシステムを起動したり、ログインした際に、辞書配信サーバ１００の第２辞書作成部１０３は、第２辞書が存在するか否か判定する（S５０３）。第２辞書が存在する場合（S５０３のYes）は、S５０６へ進む。
【００２７】
第２辞書が存在しない場合（S５０３のNo)、第２辞書作成部１０３は、第２辞書を作成する（Ｓ５０４）。ここで、例えば、話者ＤＢ１０５に格納された複数の話者の音響特徴量を用いる。各話者ごとに辞書がある第１辞書と異なり、第２辞書は１つである。第２辞書を作成する方法は固有声（非特許文献２）、重回帰ＨＳＭＭ（非特許文献３）、クラスタ適応学習（非特許文献４）などいくつかの方法が知られているためここでは詳細な説明は省略する。
（非特許文献２）K. Shichiri et al. “Eigenvoices for HMM-based speech synthesis,”in Proceedings ofICSLP-2002.
（非特許文献３）M. Tachibana et al. “A technique for controlling voice quality of synthetic speech using multiple regression HSMM,”in Proceedings of INTERSPEECH 2006.
（非特許文献４）Y. Ohtani et al. “Voice quality control using perceptual expressions for statistical parametric speech synthesis based on cluster adaptive training,”in Proceedings of INTERSPEECH 2016.
【００２８】
第２辞書を作成する際に用いられる話者の音響特徴量は、性別、年齢等バランス良く含まれるのが望ましい。例えば、話者DB１０１に話者の性別、年齢を含む属性を保存しておき、第２辞書作成部１０３は、話者DB101に記憶された話者の属性を参照し、属性に偏りがないよう、音響特徴量が使用される話者を選出しても良い。あるいは、話者DB１０１に記憶された話者の音響特徴量を使用したり、予め用意した話者の音響特徴量を使用することで、システムの管理者等が予め第２辞書を作成しておいても良い。作成した第２辞書は、音声合成辞書DB105に保存する。
【００２９】
続いて、作成した第２辞書を端末１１０へ送信する（S５０５）。予め第２辞書を端末１１０に送信しておくことで、第２辞書を使用する際はパラメータのみ配信すればよい。次に、第２辞書作成部１０３が話者DB内に保存されている各話者に対して、パラメータが推定済みか否か判定する（Ｓ５０６）。パラメータが推定されている場合（S５０６のYes）、第２辞書作成処理は終了する。パラメータが推定されていない場合（S５０６のNo）、第２辞書作成部１０３は、第２辞書を用いて当該話者のパラメータを推定する（Ｓ５０７）。以上により、第２辞書作成処理は終了する。
【００３０】
パラメータの推定は、第２辞書の作成方法によって詳細が異なるが、公知であるため、詳細な説明は省略する。例えば、第２辞書の作成に固有声を用いた場合は、各固有ベクトルの固有値がパラメータになる。推定したパラメータは、話者IDと関連付けて音声合成辞書ＤＢ１０８に保存する。ここで、第２辞書の作成方法に固有声を用いた場合は、７次元ベクトルの各軸は人が解釈できるような意味は持たないが、例えば重回帰ＨＳＭＭやクラスタ適応学習を用いた場合は、７次元ベクトルの各軸は声の明るさ、柔らかさなどの人が解釈可能な意味を持たせることができる。つまりパラメータとは、話者の音声の特徴を表す係数である。パラメータは、第２辞書に適用した際に話者の音声の近似が可能であれば、どのようなものであっても構わない。
【００３１】
なお、第２辞書は、話者が一定数増えた場合や、一定期間毎に周期的に更新されても良い。その際、パラメータの再調整が必要となるため、全ての話者のパラメータの再調整を行っても良いし、第２辞書およびパラメータのバージョンを管理することで、パラメータのバージョンに対応する第２辞書を使用し、音声合成を実現しても良い。
【００３２】
このように、第１辞書は話者ごとに専用の音響モデルを学習するため話者再現性が高いという利点がある。しかし、話者一人あたりの辞書サイズが大きく、アプリケーションで多くの話者を使用したい場合はその人数分の辞書をあらかじめ端末に配信しなければならない。一方、第２辞書の特徴は、一つの辞書に対してパラメータを入力するだけで任意の話者の合成音を作れるため話者一人あたりの辞書サイズが小さいという利点がある。さらに、予め端末に第２辞書を送信しておけば、非常にサイズが小さいパラメータのみを配信するだけで端末上で多くの話者の音声を合成できる。しかし、パラメータはあくまで近似であるため第１辞書に比べると話者再現性が低い可能性がある。本実施形態では、第１辞書と第２辞書という特徴の異なる複数の辞書を使い分けることで、端末のハードウェアスペックに依存せず、多数の話者の音声を合成可能にする。
【００３３】
図６は、本実施形態に係る端末１１０の処理フローである。まず、端末１１０は、音声合成したい話者について辞書配信サーバ１００へ話者ＩＤを送信し、辞書配信のリクエストを行う（Ｓ６０１）。端末１１０の送受信部１１２は、現在のネットワークの通信状態の測定結果に基づいて辞書配信サーバ１００が送信した第１辞書またはパラメータを受信し、音声合成辞書ＤＢ１１４に保存する（Ｓ６０２）。ここまでの処理は端末がネットワークに接続されている状態で行う必要があるが、ネットワークの通信状態に応じて適切な辞書が配信される。次に、音声合成を行う（Ｓ６０３）。この音声合成処理はすでに第１辞書、第２辞書とパラメータを受信済みであることを想定しているためネットワークに接続していなくても実行できる。
【００３４】
図７は、本実施形態に係る端末１１０の音声合成（Ｓ６０３）の処理をより詳細化した処理フローである。まず、端末１１０は、入力部１１１から合成するテキストを取得する（Ｓ７０１）。ここで、例えば、ユーザが合成したいテキストを入力してもよいし、ＳＮＳのようなアプリケーションでは合成したいテキストを選択するだけでもよい。次に、合成したい話者を指定する（Ｓ７０２）。ここでも、例えば、ユーザが話者リストから選択する方式でもよいし、事前にテキストと話者が関連付けられていれば、関連付けられた話者を自動的に指定してもよい。
【００３５】
次に、辞書管理部１１３は、音声合成辞書ＤＢ１１４を参照し、第１辞書が配信済みであるか否か判定する（Ｓ７０３）。第１辞書が配信済みであれば（Ｓ７０３のYes）、合成部１１５が第１辞書で音声を合成する（Ｓ７０４）。第１辞書がなく、パラメータのみ配信されていれば（Ｓ７０３のNo）、合成部１１５は第２辞書とパラメータを用いて音声を合成する（Ｓ７０５）。第１辞書とパラメータのどちらも配信されている場合は、話者再現性が高い第１辞書を優先させる。ただし、端末のハードウェアスペック（たとえば、辞書をロードするメモリ）が不足している場合等はパラメータを優先させてもよい。
【００３６】
この段階では、使いたい話者はすべて第１辞書またはパラメータが配信済みであると仮定しているが、どちらも配信されていない場合は、次回ネットワークに接続したときに自動的に必要な話者をダウンロードするようにキューを用意してもよい。また、通信状態が非常によく常時接続が期待できるときは従来手法と同様に第１辞書を配信せずにサーバ側で音声を合成し、音声のみを配信する構成と組み合わせてもよい。
【００３７】
続いて、出力部１１６は、合成部１１５にて合成した音声を再生する（Ｓ７０６）。次に、入力部１１１は、音声合成を続けるか否かのリクエスト信号を取得する（Ｓ７０７）。例えば、ユーザが合成音声を気に入らなかった場合や、他の話者の合成音声を取得したい場合等、合成を続ける場合、ユーザは入力部１１１から「合成を続ける」旨のリクエスト信号を入力する（Ｓ７０６のYes)。入力部１１１は「音声合成を続ける」旨のリクエスト信号を取得し、Ｓ７０１へ進む。合成を終了する場合、ユーザは入力部１１１から「システムを終了する」旨のリクエスト信号を入力する（Ｓ７０６のNo）。入力部１１１は「システムの終了する」旨のリクエスト信号を受信し、音声合成処理は終了する。ここで、一定時間以上ユーザの操作がない場合にも、音声合成処理を終了しても良い。また、ユーザがリクエスト信号を入力する際に、例えば、端末１１０の図示しない表示部に選択ボタンが設けられており、選択ボタンをタップすることによりリクエスト信号の入力を行っても良い。
【００３８】
本実施形態における音声合成辞書配信システムは、サーバと端末をつなぐネットワークの通信状態に基づいて第１辞書（１辞書で１話者のみ合成可能、話者再現性が高い）と第２辞書（１辞書で多数話者合成可能、第１辞書と比較すると話者再現性が低い）を動的に切り替えて端末に辞書を配信するシステムである。これにより、通信状態が良い場合には、話者再現性は高いが１話者あたりの通信量が大きい第１辞書を配信し、通信状態が悪い場合には、話者再現性は低いが通信量が小さい第２辞書の話者パラメータのみを配信することで、話者再現性をなるべく維持したまま多数の話者の音声を端末上で合成できる。
【００３９】
本実施の形態によれば入力部において１０００話者をサーバに要求することも可能である。その場合、最初にサイズが小さいパラメータのみを一括でダウンロードして第２辞書を用いて合成し、通信状態がよくなったら順次話者再現性が高い第１辞書で置き換えていくといった使い方も可能である。また本実施の形態の亜種として、ネットワークの通信状態だけでなく、ユーザのネットワーク使用量の制限を考慮してもよい。たとえば、当月のネットワーク使用量を考慮して第１辞書と第２辞書を切り替えることも可能である。
【００４０】
本実施の形態によれば、ネットワークへの接続が制限された端末においても、話者再現性をなるべく維持したまま多数の話者の音声を端末上で合成できる。
【００４１】
（第二の実施形態）
図８は、第二の実施形態における辞書配信サーバ１００のブロック図である。第一の実施形態と同じモジュールは同一番号を付与している。本実施形態では、第１の実施形態の通信状態測定部１０６が話者重要度計算部８００に置き換わる。話者重要度計算部８００は、端末１１０が要求した話者と付帯情報から話者の重要度を計算する。
【００４２】
図９は、本実施形態に係る辞書配信サーバ１００の辞書配信の処理フローである。辞書作成の処理フロー、端末の処理フロー、音声合成の処理フローは第１の実施形態と同一であるため、ここでは省略する。第一の実施形態と同じステップは、同一のステップ番号を付与している。異なる点は、ユーザの端末１１０から話者ＩＤだけでなく、重要度を算出するために必要な付帯情報を送受信部１０７が受信し（Ｓ９０１）、話者重要度計算部８００は、受信した付帯情報を用いて、当該ユーザと各話者間との重要度を計算する（Ｓ９０２）点である。計算した話者重要度は、音声合成辞書ＤＢ１０８に保存する。話者重要度はユーザによって異なるため、ユーザ毎に保存する必要がある。そして、条件判定部１０４が、第１辞書とパラメータのどちらを配信するか否か判定する条件として話者重要度を用いる（Ｓ９０３）。例えば、話者重要度が予め指定した閾値以上であった場合（Ｓ９０３のYes）に第１辞書を配信し（Ｓ４０５）、閾値未満であった場合（Ｓ９０２のNo）パラメータを配信する（Ｓ４０６）。以上により、本実施形態に係る辞書配信サーバ１００の辞書配信の処理フローは終了する。
【００４３】
音声合成辞書ＤＢ１０５は、各ユーザの話者重要度を保持したデータテーブルである話者重要度テーブル１００１をさらに記憶する。話者重要度テーブル１００１の一例を図１０に示す。話者重要度テーブル１００１は少なくとも、話者ＩＤ１００２と、各ユーザの話者重要度１００３を関連付けて格納する。この例では、話者重要度は０から１００の範囲の数値で表され、値が大きいほど当該話者の重要度が高いと判定される。
【００４４】
例えば、ユーザ１にとって話者１、話者２、話者４の話者重要度がそれぞれ１００、８５、９０であり、ユーザ１にとって重要な話者であるが、それ以外の話者はあまり重要でないことを表している。閾値を５０とすると話者１、話者２、話者４の音声を合成するときは話者再現性が高い第１辞書を配信し、それ以外の話者を合成するときはパラメータのみを配信し、第２辞書を用いて合成する。
【００４５】
話者重要度の計算方法はアプリケーションによって大きく異なる。ここでは、一例としてＳＮＳのタイムラインの読み上げを考える。前提として当該ＳＮＳに登録されているユーザ各々に対し、サーバの音声合成辞書ＤＢ１０５に対応する話者（必ずしも本人の声である必要はない）が登録されていると仮定する。このようなアプリケーションでは、端末は付帯情報としてフォローユーザの情報やタイムライン上に上がるユーザの頻度情報をサーバに送信すればよい。辞書配信サーバでは、当該ユーザがフォローしているユーザの話者重要度が高いと判定したり、タイムライン上によく出現するユーザほど話者重要度が高いと判定したりできる。また、このような付帯情報から自動判定する以外にユーザが重要だと考えるユーザを直接指定できるようにしてもよい。
【００４６】
本実施の形態によれば、ネットワークへの接続が制限された端末においても、ユーザが特に重要だと考える話者の再現性をなるべく維持したまま多数の話者の音声を端末上で合成できる。
【００４７】
本実施形態における音声合成辞書配信システムは、話者の重要度に基づいて第１辞書と第２辞書を動的に切り替えて端末に辞書を配信するシステムである。これにより、重要度の高い話者は辞書サイズは大きいが話者類似性が高い第１辞書でそれ以外の話者は辞書サイズは小さいが話者類似性が低い第２辞書で音声を再生することができ、話者再現性をなるべく維持したまま多数の話者の音声を端末上で合成できる。
【００４８】
（第三の実施形態）
図１１は、第三の実施形態に係る辞書配信サーバ１００のブロック図である。第一の実施形態と同じモジュールは同一番号を付与している。本実施形態では、第一の実施形態の通信状態測定部１０６が話者再現度計算部１１００に置き換わる。話者再現度計算部１１００は、端末が要求した話者の第２辞書を用いて、パラメータから生成した合成音が元の肉声にどれだけ近いかを算出する。
【００４９】
図１２は、本実施形態に係る辞書配信サーバ１００の辞書配信の処理フローである。辞書作成の処理フロー、端末の処理フロー、音声合成の処理フローは第１の実施形態と同一であるため、ここでは省略する。第一の実施形態と同じステップは、同一のステップ番号を付与している。異なる点は、話者の辞書作成（Ｓ４０１）の後に、話者再現度計算部１１０２が各話者の話者再現度を計算する点である（Ｓ１２０１）。話者再現度とは、第２辞書を用いてパラメータから生成した合成音が元の肉声にどれだけ近いかを表す指標である。算出した話者再現度は、音声合成辞書ＤＢ１０５に保存する。
【００５０】
図１４は、各話者の話者再現度を保持したデータテーブルである話者再現度テーブル１４０１の一例である。話者再現度テーブル１４０１には、少なくとも話者ＩＤ１４０２と各ユーザの話者再現度１４０３が関連づけて格納される。この例では、話者再現度は０から１００の範囲の数値で表され、値が大きいほどその話者再現度が高いと判断する。そして、条件判定部１０４が、第１辞書とパラメータのどちらを配信するか判定する条件として算出した話者再現度を用いる（Ｓ１２０２）。
【００５１】
例えば、話者再現度が予め指定した閾値より小さかった場合（Ｓ１２０２のYes）、第２辞書とパラメータでは十分な話者性を再現できていないため、第１辞書を配信し（Ｓ４０５）、閾値以上であった場合（Ｓ１２０２のNo）、パラメータで話者性を十分近似できているため、パラメータを配信する（Ｓ４０６）。たとえば、図１４の例で閾値を７０とした場合、話者再現度が閾値より高い話者１、話者５、話者９はパラメータによる再現度が十分高いためパラメータを配信し、それ以外の話者はパラメータで十分な話者再現度が得られなかったため第１辞書を配信すればよい。以上により、本実施形態に係る辞書配信サーバ１００の辞書配信の処理フローは終了する。
【００５２】
図１３は、S１２０１における話者再現度の計算方法の一例示す処理フローである。まず、各話者の話者再現度を計算するために話者DB101を参照し、各々の話者が使用した収録テキストに対応する収録音声から、各々の音響特徴量を抽出する（Ｓ１３０１）。音響特徴量は、例えば声色を表すメルＬＳＰ、声の高さを表すＬＦ０などがある。次に、第２辞書と各話者のパラメータから、各々の話者が使用した収録テキストの音響特徴量を生成する（Ｓ１３０２）。ここでは、音響特徴量の比較を行いたいため、音響特徴量から合成音を生成する必要はない。続いて、肉声から抽出した音響特徴量と第２辞書から生成した音響特徴量間の距離を求める（Ｓ１３０３）。例えば、ユークリッド距離などが使用される。最後に、全テキストの距離を平均化し、逆数を取ることで距離を類似度（話者再現度）に変換する（Ｓ１３０４）。話者再現度が大きいほど元の話者の肉声と第２辞書から生成した合成音が近く、第２辞書とパラメータによって元話者の肉声が十分再現できたことを意味する。
【００５３】
第２辞書から推定したパラメータは、元話者の声質特徴の近似であるが、話者によってその近似精度が異なることがわかっている。第２辞書を作成するのに用いた話者ＤＢ１０１に声質が類似する話者が多いほどその近似精度は高くなり、第２辞書とパラメータを用いて対象話者の話者性が十分に再現できることが知られている。
【００５４】
本実施の形態によれば、ネットワークへの接続が制限された端末においても、話者再現性が高い話者はパラメータで配信することでネットワークの通信量が抑えられ多数の話者の音声を端末上で合成できる。
【００５５】
本実施形態における音声合成辞書配信システムは、第２辞書で合成した際の話者再現性に基づいて第１辞書と第２辞書を動的に切り替えて端末に辞書を配信するシステムである。これにより、第２辞書での話者再現性の高い話者はサイズが小さいパラメータでそれ以外の話者は第１辞書を用いることで、話者再現性をなるべく維持したまま多数の話者の音声を端末上で合成できる。
【００５６】
（第四の実施形態）
図１５は、本実施形態に係る音声合成システムを表すブロック図である。第１の実施形態と同じモジュールは同一番号を付与している。本実施形態では、端末１１０側にあった合成部１１５が音声合成サーバ１５００側に移動し、条件判定部１０４が辞書構成部１５０１に置き換わる。辞書構成部１５０１は、例えば音声合成サーバ１５００のサーバ負荷や話者の重要度に応じて第１辞書と第２辞書のメモリ上への配置や使用を動的に切り替える。音声合成部１５０２は、第１辞書または第２辞書を使用して合成した音声を送受信部１０７を通して端末に配信する。本実施形態において端末１１０には、音声合成部１５０２がなく、送受信部１１２が受信した音声を出力部１１６で再生する。
【００５７】
図１６は、本実施形態に係る音声合成サーバ１５００の処理フローである。ここで、本実施形態では、予め各話者の第１辞書、第２辞書とパラメータは作成されており、音声合成DB１０５に保存されているとする。あるいは、後述する辞書のロード（Ｓ１６０１）を開始する前に、第一の実施形態と同じフローにより作成しても良い。
【００５８】
まず、辞書構成部１５０１は、音声合成辞書ＤＢ１０５の辞書を音声合成サーバ１５００のメモリにロードする（Ｓ１６０１）。次に、音声合成サーバ１５００の送受信部１０７は、端末１１０から音声合成のリクエストを受信する（Ｓ１６０２）。音声合成のリクエストとは、端末１１０が音声合成を要求している話者の話者ＩＤを音声合成サーバ１５００に向けて送信する。続いて、辞書構成部１５０１が、端末１１０から要求された話者の第１辞書がメモリにロード済みか否か判定する（Ｓ１６０３）。ロード済みであった場合（Ｓ１６０３のＹes）は、音声合成部１５０２が、第１辞書で音声を合成する（Ｓ１６０８）。もし、メモリ上にロードされていなかった場合（Ｓ１６０３のＮo）は、辞書構成部１５０1が、現在のサーバ負荷を測定する（Ｓ１６０４）。ここで、サーバ負荷とは、辞書構成部１５０ における判定で使用される指標であり、例えば、音声合成サーバ１５００内のメモリの空き容量や、音声合成サーバ１５００に接続している端末１１０の数等に基づいて算出される。サーバ負荷を判断できるのであれば、どのような指標であっても構わない。
【００５９】
サーバ負荷が閾値以上だった場合（Ｓ１６０５のＹＥＳ）は、第１辞書を用いた音声合成処理はできないと判定し、辞書構成部１５０２が、端末からリクエストがあった話者のパラメータをロード（Ｓ１６０９）し、第２辞書とパラメータを用いて合成部１１５が音声を合成する（Ｓ１６１０）。もし、サーバ負荷が閾値より小さかった場合（Ｓ１６０５のＮＯ）は、メモリにこれ以上第１辞書をロードできないため辞書構成部１５０２が話者リクエスト頻度（後述）のもっとも低い第１辞書をメモリからアンロードする（Ｓ１６０６）。そして、端末からリクエストがあった話者の第１辞書をメモリにロードし（Ｓ１６０７）、合成部１１５がメモリにロードした第１辞書で音声を合成する（Ｓ１６０８）。第１辞書または第２辞書で合成した音声は送受信部１０７を通してサーバから端末に配信する（Ｓ１６１１）。以上により、音声合成サーバ１５００の処理フローは終了する。
【００６０】
図１７は、辞書のロード（Ｓ１６０１）の処理をより詳細化した処理フローである。まず、音声合成サーバ１５００内のメモリに第２辞書をロードする（Ｓ１７０１）。次に、話者リクエスト頻度を取得する（Ｓ１７０２）。話者リクエスト頻度とは、話者毎に音声合成のリクエストがあった頻度を示したデータテーブルであり、その一例を図１８に示す。図１８に示す話者リクエスト頻度テーブル１８０１は、少なくとも話者ＩＤとリクエスト頻度（端末１１０から音声合成のリクエストがあった回数）１７０３を関連づけて保存する。リクエスト頻度１７０３は、ユーザからの音声合成リクエスト（Ｓ１６０２）を受信するたびにリクエストがあった話者のカウントを増やす。カウントを増やすだけではなく、定期的に頻度をリセットしたり、時間経過によって頻度が徐々に減衰するような工夫を取り入れることもできるが、ここでは省略する。
【００６１】
次に、話者リクエスト頻度の降順に話者ＩＤをソートする（Ｓ１７０３）。そして、話者リクエスト頻度が高い話者からメモリに第１辞書をロードする（Ｓ１７０４）。以上により辞書のロードの処理フローは終了する。ここでは、音声合成辞書ＤＢ１０５に格納されているすべての話者の第１辞書をメモリ上にロードできないと仮定している。そのため、話者リクエスト頻度が高い話者を優先的にメモリにロードすることで音声合成の処理効率を上げられる。
【００６２】
本実施形態における音声合成辞書配信システムは、従来システムと同様にサーバ側で音声を合成し、音声のみを端末に配信する構成である。通常、このような構成ではサーバのレスポンスをよくするためあらかじめ合成に必要な辞書をメモリにロードしておくことが一般的に行われている。しかし、サーバ上で多数の話者を提供する場合、あらかじめすべての話者の辞書をメモリにロードしておくことはハードウェアスペックの観点から困難である。
【００６３】
本実施形態では話者の重要度に応じてメモリ上にロードする第１辞書と第２辞書の使用を動的に切り替えてサーバのレスポンスと話者再現性を両立することで多数の話者の音声合成を可能にする。
【００６４】
尚、上記の実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスク等）、光ディスク（CD−ROM、DVD等）、光磁気ディスク（MO）、半導体メモリ等の記憶媒体に格納して頒布することもできる。
【００６５】
ここで、記憶媒体としては、プログラムを記憶でき、且つコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。
【００６６】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のMW（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行しても良い。
【００６７】
さらに、本実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【００６８】
また、記憶媒体は１つに限らず、複数の媒体から本実施形態における処理が実行される場合も本実施形態における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【００６９】
尚、本実施形態におけるコンピュータとは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【００７０】
また、本実施形態の各記憶装置は１つの記憶装置で実現しても良いし、複数の記憶装置で実現しても良い。
【００７１】
そして、本実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本実施形態の機能を実現することが可能な機器、装置を総称している。
【００７２】
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、説明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７３】
１００…辞書配信サーバ
１０１…話者DB
１０２…第１辞書作成部
１０３…第２辞書作成部
１０４…条件判定部
１０５…音声合成辞書DB
１０６…通信状態測定部
１０７…送受信部
１１０…端末
１１１…入力部
１１２…送受信部
１１３…辞書管理部
１１４…音声合成辞書DB
１１５…合成部
１１６…出力部
１２０…ネットワーク
２０１…辞書配信サーバ１００の音声合成辞書DB１０５に記憶されるデータテーブル
２０２…話者ＩＤ欄
２０３…第１辞書ファイル名欄
２０４…第２辞書で用いる話者パラメータ欄
３０１…端末１１０の音声合成辞書DB１１４に記憶されるデータテーブル
３０２…話者ＩＤ欄
３０３…第１辞書ファイル名欄
３０４…第２辞書で用いる話者パラメータ欄
８００…話者重要度計算部
１００１…話者重要度テーブル
１００２…話者ＩＤ欄
１００３…ユーザ欄
１１００…話者再現度計算部
１４０１…話者再現度テーブル
１４０２…話者ＩＤ欄
１４０３…話者再現度欄
１５００…音声合成サーバ
１５０１…辞書構成部
１５０２…音声合成部
１８０１…話者リクエスト頻度テーブル
１８０２…話者ＩＤ欄
１８０３…リクエスト頻度欄
【図１】
2019040166.tif 000003
【図２】
2019040166.tif 000004
【図３】
2019040166.tif 000005
【図４】
2019040166.tif 000006
【図５】
2019040166.tif 000007
【図６】
2019040166.tif 000008
【図７】
2019040166.tif 000009
【図８】
2019040166.tif 000010
【図９】
2019040166.tif 000011
【図１０】
2019040166.tif 000012
【図１１】
2019040166.tif 000013
【図１２】
2019040166.tif 000014
【図１３】
2019040166.tif 000015
【図１４】
2019040166.tif 000016
【図１５】
2019040166.tif 000017
【図１６】
2019040166.tif 000018
【図１７】
2019040166.tif 000019
【図１８】
2019040166.tif 000020