(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022147616
(43)【公開日】2022-10-06
(54)【発明の名称】信号処理装置およびプログラム
(51)【国際特許分類】
G10L 13/10 20130101AFI20220929BHJP
【FI】
G10L13/10 111B
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021048936
(22)【出願日】2021-03-23
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
(71)【出願人】
【識別番号】000004352
【氏名又は名称】日本放送協会
(71)【出願人】
【識別番号】591053926
【氏名又は名称】一般財団法人NHKエンジニアリングシステム
(74)【代理人】
【識別番号】100141139
【弁理士】
【氏名又は名称】及川 周
(74)【代理人】
【識別番号】100171446
【弁理士】
【氏名又は名称】高田 尚幸
(74)【代理人】
【識別番号】100114937
【弁理士】
【氏名又は名称】松本 裕幸
(74)【代理人】
【識別番号】100171930
【弁理士】
【氏名又は名称】木下 郁一郎
(72)【発明者】
【氏名】清山 信正
(72)【発明者】
【氏名】齋藤 礼子
(72)【発明者】
【氏名】熊野 正
(72)【発明者】
【氏名】今井 篤
(57)【要約】
【課題】精度よくアクセントのラベルを推定するための信号処理装置を提供する。
【解決手段】信号処理装置は、音響分析部と、言語解析部と、ラベル推定部とを備える。音響分析部は、所定単位のテキストごとに、前記所定単位のテキストに対応する音声信号を基に、フレーム単位の音響特徴量を求める。言語解析部は、前記所定単位のテキストを基に、当該テキストの前記フレーム単位の言語特徴量を求める。ラベル推定部は、前記フレーム単位の前記音響特徴量および前記言語特徴量を予め学習済みの統計モデルに入力することによって、前記統計モデルからの出力として前記テキストに対応するアクセントのラベルを推定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
所定単位のテキストごとに、前記所定単位のテキストに対応する音声信号を基に、フレーム単位の音響特徴量を求める音響分析部と、
前記所定単位のテキストを基に、当該テキストの前記フレーム単位の言語特徴量を求める言語解析部と、
前記フレーム単位の前記音響特徴量および前記言語特徴量を予め学習済みの統計モデルに入力することによって、前記統計モデルからの出力として前記テキストに対応するアクセントのラベルを推定するラベル推定部と、
を備える信号処理装置。
【請求項2】
所定単位の学習用テキストごとに、前記所定単位の学習用テキストに対応する学習用音声信号を基に、フレーム単位の学習用音響特徴量を求める学習用音響分析部と、
前記所定単位の学習用テキストを基に、当該学習用テキストの前記フレーム単位の学習用言語特徴量を求める学習用言語解析部と、
前記学習用言語特徴量に基づいて前記テキストに対応するアクセントの正解ラベルを求める正解ラベル抽出部と、
前記フレーム単位の前記学習用音響特徴量および前記学習用言語特徴量を統計モデルに入力することによって前記統計モデルからの出力として前記学習用テキストに対応するアクセントの学習用推定ラベルを得て、当該学習用推定ラベルと前記正解ラベルとの誤差に基づいて前記統計モデルの学習を行うモデル学習部と、
をさらに備える請求項1に記載の信号処理装置。
【請求項3】
所定単位のテキストごとに、前記所定単位のテキストに対応する音声信号を基に、フレーム単位の音響特徴量を求める音響分析部と、
前記所定単位のテキストを基に、当該テキストの前記フレーム単位の言語特徴量を求める言語解析部と、
前記言語特徴量に基づいて前記テキストに対応するアクセントの正解ラベルを求める正解ラベル抽出部と、
前記フレーム単位の前記音響特徴量および前記言語特徴量を統計モデルに入力することによって前記統計モデルからの出力として前記テキストに対応するアクセントの推定ラベルを得て、当該推定ラベルと前記正解ラベルとの誤差に基づいて前記統計モデルの学習を行うモデル学習部と、
を備える信号処理装置。
【請求項4】
前記所定単位は、アクセント句の単位である、
請求項1から3までのいずれか一項に記載の信号処理装置。
【請求項5】
前記言語特徴量は、発話内の呼気段落位置と、呼気段落内のアクセント句位置と、アクセント句内のモーラ位置と、モーラ内のフレーム位置と、である、
請求項4に記載の信号処理装置。
【請求項6】
前記統計モデルは、ディープニューラルネットワークを用いて実現されるものである、
請求項1から5までのいずれか一項に記載の信号処理装置。
【請求項7】
前記音響特徴量は、メルスペクトログラムである、
請求項1から6までのいずれか一項に記載の信号処理装置。
【請求項8】
コンピューターを、
請求項1から7までのいずれか一項に記載の信号処理装置、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、信号処理装置およびプログラムに関する。
【背景技術】
【0002】
統計的な情報を用いて任意のテキストに対する音声を合成するテキスト音声合成を実現するには、事前準備として、音声信号データと、その発話内容のテキストや、読み方や、アクセントなどの情報を多量に用意しておくことが必要である。多量の音声信号データに対する読み方やアクセントの情報を正しく付与するには、例えばアナウンサーなどアクセントを正確に理解して聞き分けられる専門家による作業が必要となり、コストがかかる。そこで、音声信号データに対するアクセント型を判定する技術が求められ、研究されている。
【0003】
非特許文献1に記載された技術は、与えられた音声信号データがどのアクセント型に該当するかを識別しようとするものである。具体的には、この技術は、事前に、アクセント句内において、モーラ(子音+母音もしくは母音、促音、撥音)を単位として、各モーラを代表するピッチを求める。また、隣接するモーラ間における値の差分値により、(モーラ数-1)次元の特徴ベクトルを構成する。そして、同じアクセント型を持つアクセント句の特徴ベクトルを用いて、アクセント型ごとに(モーラ数-1)次元の特徴ベクトルの正規分布を求めておく。そして、これらのモデル化された正規分布を用いて、判定対象とするアクセント句において算出した(モーラ数-1)次元の特徴ベクトルがどのアクセント型に該当するかを識別するようにしている。
【0004】
また、特許文献1にも、音声信号に対するアクセントの種類を判断するための技術が記載されている。特許文献1の技術は、テキスト音声合成を支援することを目的としている。この技術は、その目的のために、対象語句に対応する音声を複数のアクセント句に分割する。そして、対象とするアクセント句において、モーラ単位でピッチの時間変化の傾きと最終ピッチを求める。そして、この技術は、それらの情報に基づいて、モーラ単位で、ハイ(High)、ロー(Low)、アップ(Up)、ダウン(Down)の4種類の評価関数の値を算出する。そして、アクセント句を構成するモーラ全体の評価関数の値の加算値が最大となる組み合わせを求めることによって、アクセントの種類を判断するようにしている。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【非特許文献1】石井カルロス寿憲,峯松信明,広瀬啓吉,ピッチ知覚を考慮した日本語連続音声のアクセント型判定,電子情報通信学会技術研究報告,SP,音声, 101(270),23-30,2001年08月23日,一般社団法人電子情報通信学会.
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、非特許文献1に記載された技術では、モーラ間のピッチの差分値を用いるため、(モーラ数-1)個の差分値に基づくアクセント型を判定することしかできない。また、特許文献1に記載された技術では、評価関数の計算結果の組合せとして、アクセントの種類への分類を行うものである。
これらの従来技術のいずれの方法もピッチ抽出を前提としており、ピッチ抽出誤りの影響によって識別精度が低下する可能性があり得る。また、これらのいずれの技術も、アクセント句単位の分析に基づくものであり、発話全体あるいはフレーズ単位でのピッチの変動を考慮していない。したがって、精度よくアクセントを推定することができないという問題がある。このように、従来技術では、音声信号から精度よくアクセントを推定することができないという問題があった。
【0008】
本発明は、上記の課題認識に基づいて行なわれたものであり、精度よくアクセントのラベルを推定することのできる信号処理装置およびプログラムを提供しようとするものである。
【課題を解決するための手段】
【0009】
[1]上記の課題を解決するため、本発明の一態様による信号処理装置は、所定単位のテキストごとに、前記所定単位のテキストに対応する音声信号を基に、フレーム単位の音響特徴量を求める音響分析部と、前記所定単位のテキストを基に、当該テキストの前記フレーム単位の言語特徴量を求める言語解析部と、前記フレーム単位の前記音響特徴量および前記言語特徴量を予め学習済みの統計モデルに入力することによって、前記統計モデルからの出力として前記テキストに対応するアクセントのラベルを推定するラベル推定部と、を備えるものである。
【0010】
[2]また、本発明の一態様は、上記の信号処理装置において、所定単位の学習用テキストごとに、前記所定単位の学習用テキストに対応する学習用音声信号を基に、フレーム単位の学習用音響特徴量を求める学習用音響分析部と、前記所定単位の学習用テキストを基に、当該学習用テキストの前記フレーム単位の学習用言語特徴量を求める学習用言語解析部と、前記学習用言語特徴量に基づいて前記テキストに対応するアクセントの正解ラベルを求める正解ラベル抽出部と、前記フレーム単位の前記学習用音響特徴量および前記学習用言語特徴量を統計モデルに入力することによって前記統計モデルからの出力として前記学習用テキストに対応するアクセントの学習用推定ラベルを得て、当該学習用推定ラベルと前記正解ラベルとの誤差に基づいて前記統計モデルの学習を行うモデル学習部と、をさらに備えるものである。
【0011】
[3]また、本発明の一態様による信号処理装置は、所定単位のテキストごとに、前記所定単位のテキストに対応する音声信号を基に、フレーム単位の音響特徴量を求める音響分析部と、前記所定単位のテキストを基に、当該テキストの前記フレーム単位の言語特徴量を求める言語解析部と、前記言語特徴量に基づいて前記テキストに対応するアクセントの正解ラベルを求める正解ラベル抽出部と、前記フレーム単位の前記音響特徴量および前記言語特徴量を統計モデルに入力することによって前記統計モデルからの出力として前記テキストに対応するアクセントの推定ラベルを得て、当該推定ラベルと前記正解ラベルとの誤差に基づいて前記統計モデルの学習を行うモデル学習部と、を備えるものである。
【0012】
[4]また、本発明の一態様は、上記の信号処理装置において、前記所定単位は、アクセント句の単位である、というものである。
【0013】
[5]また、本発明の一態様は、上記の信号処理装置において、前記言語特徴量は、発話内の呼気段落位置と、呼気段落内のアクセント句位置と、アクセント句内のモーラ位置と、モーラ内のフレーム位置、である、というものである。
【0014】
[6]また、本発明の一態様は、上記の信号処理装置において、前記統計モデルは、ディープニューラルネットワークを用いて実現されるものである。
【0015】
[7]また、本発明の一態様は、上記の信号処理装置において、前記音響特徴量は、メルスペクトログラムである、というものである。
【0016】
[8]また、本発明の一態様は、コンピューターを、上記[1]から[7]までのいずれか一項に記載の信号処理装置、として機能させるためのプログラムである。
【発明の効果】
【0017】
本発明によれば、フレーム単位の音響特徴量と言語特徴量で学習した統計モデルを用いることによって、言語特徴量にも基づく発話の影響を考慮して、精度よくアクセントを推定することができる。
【図面の簡単な説明】
【0018】
【
図1】本発明の実施形態によるアクセント推定装置の概略機能構成を示すブロック図である。
【
図2】同実施形態によるアクセント推定装置が持つ前処理部(32)の詳細な機能構成を示すブロック図である。
【
図3】同実施形態によるアクセント推定装置が使用するフルコンテキストラベルの形式を示す概略図(1/3)である。
【
図4】同実施形態によるアクセント推定装置が使用するフルコンテキストラベルの形式を示す概略図(2/3)である。
【
図5】同実施形態によるアクセント推定装置が使用するフルコンテキストラベルの形式を示す概略図(3/3)である。
【
図6】同実施形態による前処理部内の言語解析部がテキストの言語解析処理を行ったことによって抽出するフルコンテキストラベルの例を示す概略図(1/2)である。
【
図7】同実施形態による前処理部内の言語解析部がテキストの言語解析処理を行ったことによって抽出するフルコンテキストラベルの例を示す概略図(2/2)である。
【
図8】同実施形態による第1正解ラベル抽出部および第2正解ラベル抽出部がアクセント句単位の正解ラベルを求めるための処理の手順を示すフローチャートである。
【
図9】同実施形態による第2正解ラベル抽出部がアクセント句単位のトーンを作成する処理の手順を示すフローチャートである。
【
図10】同実施形態のアクセント推定装置における、アクセント句のトーンから正解ラベルの数値への変換の規則を示す概略図である。
【
図11】同実施形態のモデル学習部による統計モデルの学習時の処理の流れを示す概略図である。
【
図12】同実施形態によるラベル推定部がラベルを推定する処理の流れを示す概略図である。
【
図13】同実施形態によるアクセント推定装置が持つ機能を実現するための内部構成の例を示すブロック図である。
【発明を実施するための形態】
【0019】
次に、本発明の一実施形態について、図面を参照しながら説明する。まず、本実施形態が扱ういくつかの概念を説明する。発話(utterance)は、ひとまとまりの文に相当するスピーチである。呼気段落(breath group)は、発話中において休止(ポーズ,pause)によって区切られる一つの塊の単位である。書かれた文における読点で句切られる単位が、ほぼ呼気段落に対応する。アクセント句(accent phrase)は、通常においては、日本語の一単語、あるいは一単語プラス付属語という単位の塊である。モーラ(mora)は、1つの子音プラス1つの母音、または1つの母音もしくは撥音、促音のみから成る言語要素である。1つのモーラは、拗音もしくは主に外来語で使われる小さい母音を含まない場合には、1つの仮名(片仮名等)で表わされる。拗音もしくは主に外来語で使われる小さい母音を含む場合の1つのモーラは、1つの仮名プラス拗音を表す仮名で表わされる。例えば、「チ」や「オ」や「シャ」や「フィ」といったものがそれぞれモーラの単位である。音素(phoneme)は、モーラよりもさらに細かい、子音のみ、あるいは母音のみ、の単位である。
【0020】
本実施形態では、アクセント推定装置は、事前学習においては、発話ごとのテキストをアクセント句単位に分割し、音声信号からアクセント句内でフレーム単位の音響特徴量を求める。また、アクセント推定装置は、テキストを基に、アクセント句内でフレーム単位の言語特徴量とアクセントの正解ラベルを求める。また、アクセント推定装置は、アクセント句内のフレーム単位の音響特徴量と言語特徴量を入力データとして、統計モデルの推定値と正解ラベルの誤差を最小とするように、統計モデルを学習する。
アクセント推定装置は、ラベル推定の処理においては、発話ごとのテキストをアクセント句単位に分割し、音声信号からアクセント句内でフレーム単位の音響特徴量を求める。また、アクセント推定装置は、テキストを基に、アクセント句内でフレーム単位の言語特徴量を求める。そして、アクセント推定装置は、アクセント句内のフレーム単位の音響特徴量と言語特徴量を、学習済みの統計モデルに入力することによって、アクセントのラベルを推定する。
【0021】
図1は、本実施形態によるアクセント推定装置の概略機能構成を示すブロック図である。図示するように、アクセント推定装置1は、モデル記憶部11と、推定用音声コーパス記憶部21と、前処理部22と、ラベル推定部23と、学習用音声コーパス記憶部31と、前処理部32と、モデル学習部33とを含んで構成される。アクセント推定装置1が持つこれらの機能は、例えば、コンピューターと、プログラムとで実現することが可能である。また、各機能は、必要に応じて、記憶手段を有する。記憶手段は、例えば、プログラム上の変数や、プログラムの実行によりアロケーションされるメモリーである。また、必要に応じて、磁気ハードディスク装置やソリッドステートドライブ(SSD)といった不揮発性の記憶手段を用いるようにしてもよい。また、各機能部の少なくとも一部の機能を、プログラムではなく専用の電子回路として実現してもよい。
【0022】
図示するアクセント推定装置1は、学習用音声コーパスに基づいて、機械学習により統計モデル(アクセント推定モデル)を構築する機能を含む。アクセント推定装置1は、構築された統計モデルをモデル記憶部11に書き込む。また、アクセント推定装置は、上記の統計モデルを用いて、未知のテキストのアクセントを表すラベルを推定して出力する機能を含む。未知のテキストは、例えば推定用音声コーパスから得られるものである。
【0023】
アクセント推定装置1が持つ機能のうち、予め構築された統計モデルに基づいて未知のテキストのアクセントを表すラベルを推定する部分の機能のみを、アクセント推定装置2として実施してもよい。その場合、アクセント推定装置2は、上に列挙した機能部のうち、推定用音声コーパス記憶部21と、前処理部22と、ラベル推定部23とを含んで構成される。アクセント推定装置2は、モデル記憶部11が記憶する統計モデルを参照してラベル推定の処理を行うことができる。このときの統計モデルについては学習が完了している。アクセント推定装置1が持つ機能のうち、統計モデルを構築する部分の機能のみを、アクセント推定モデル学習装置3として実施してもよい。その場合、アクセント推定モデル学習装置3は、上に列挙した機能部のうち、学習用音声コーパス記憶部31と、前処理部32と、モデル学習部33とを含んで構成される。アクセント推定モデル学習装置3は、学習して得られる統計モデルの情報を、モデル記憶部11に書き込む。つまり、アクセント推定モデル学習装置3は統計モデルの学習を行うことができる。この統計モデルを用いることによって、入力データに対応するアクセントのラベルを推定することが可能となる。
【0024】
アクセント推定装置1や、アクセント推定装置2や、アクセント推定モデル学習装置3のそれぞれを、「信号処理装置」と呼んでもよい。後述する音声信号や、テキストや、御経特徴量や、言語特徴量などのそれぞれは信号処理装置によって処理される「信号」である。
【0025】
モデル記憶部11は、統計モデルの情報を記憶する。統計モデルは、機械学習可能なモデルである。統計モデルは、例えば、ニューラルネットワークを用いて実現される。統計モデルは、特に、ディープニューラルネットワークを用いて実現するようにしてもよい。ただし、統計モデルを、ニューラルネットワーク以外の手法で実現してもよい。いずれの場合も、統計モデルは、入力されたデータ(入力データ)に統計的に対応するデータ(出力データ)を出力する。モデル記憶部11は、具体的には、統計モデルが持つ内部パラメーターの値を記憶する。なお、統計モデルの機械学習の手法自体は、既存技術を用いて実施することが可能である。
【0026】
学習用音声コーパス記憶部31は、統計モデルを構築するために用いる学習用音声オーパスを記憶する。学習用音声コーパスは、音声信号とテキストの対を、大量に含むものである。音声信号は、例えば、標本化周波数16000ヘルツ(Hz)、変換ビット数16ビット(bit)で標本化されている。ただし、標本化周波数や変換ビット数は、ここに例示した値に限る必要はない。また学習用音声コーパスが持つテキストは、音声信号に対応するものであり、人手での作成あるいは音声認識処理等を用いて適切に作成されたテキストである。
【0027】
前処理部32は、学習用音声コーパス記憶部31から読み出される音声信号とテキストとの対についての処理を行い、学習処理のための入力データと正解ラベルとの対を出力する。なお、前処理部32は、入力されるデータをアクセント句単位に分割し、アクセント句ごとの入力データと正解ラベルとを出力する。入力データは、アクセント句ごとの、フレーム単位の音響特徴量と言語特徴量とを含むものである。前処理部32は、この入力データと正解ラベルとの対を、モデル学習部33に渡す。なお、前処理部32の処理のための詳細な機能構成については、後で
図2を参照しながら説明する。
【0028】
モデル学習部33は、前処理部32から渡される入力データと正解ラベルとの対を用いて、機械学習処理を行う。モデル学習部33は、具体的には、統計モデルを用いて、入力データを基にラベルを推定し、その推定ラベル(「学習用推定ラベル」とも呼ばれる)と正解ラベルとの差(ロス)を求め、そのロスを最小にするように統計モデルの内部パラメーターを調整する。モデル学習部33は、学習用データとして入力データと正解ラベルの多数の対について、繰り返し、内部パラメーターを調整(更新)する処理を行う。モデル学習部33が用いる機械学習の手法自体は、既存技術に属するものである。例えば、統計モデルがニューラルネットワークで実現される場合、モデル学習部33は誤差逆伝播法を用いて統計モデルの学習を行う。
【0029】
言い換えれば、モデル学習部33は、フレーム単位の音響特徴量(学習用音響特徴量)および言語特徴量(学習用言語特徴量)を統計モデルに入力することによって、統計モデルからの出力としてテキスト(学習用テキスト)に対応するアクセントの推定ラベル(学習用推定ラベル)を得て、当該推定ラベル(学習用推定ラベル)と前記正解ラベルとの誤差(ロス)に基づいて統計モデルの学習を行う。つまり、モデル学習部33は、誤差が小さくなる方向に統計モデルの内部のパラメーターを調整(更新)する。
【0030】
推定用音声コーパス記憶部21は、ラベル推定の対象となるテキストを含んだ推定用音声コーパスを記憶する。推定用音声コーパスは、テキストと音声信号との対を含むものである。
【0031】
前処理部22は、推定用音声コーパス記憶部21から読み出されるテキストの前処理を行い、その結果を入力データとしてラベル推定部23に渡す。
【0032】
ラベル推定部23は、統計モデルを用いて、前処理部22から渡される入力データに対応するアクセントのラベルを推定する。ラベル推定部23は、モデル記憶部11を参照することによってラベルを推定する。その時点で、モデル記憶部11は、学習済みの統計モデルの情報を既に記憶している。ラベル推定部23は、具体的には、フレーム単位の音響特徴量および言語特徴量を予め学習済みの統計モデルに入力することによって、統計モデルからの出力としてテキストに対応するアクセントのラベルを推定する。
【0033】
図2は、アクセント推定装置1が持つ前処理部32のさらに詳細な機能構成を示すブロック図である。図示するように、前処理部32は、音響分析部351と、音素セグメンテーション部352と、中心音素抽出部353と、言語解析部354と、モーラ単位統合部361と、アクセント句単位統合部362と、アクセント句分割部371と、第1言語特徴量抽出部381と、第2言語特徴量抽出部382と、第1正解ラベル抽出部386と、第2正解ラベル抽出部387と、音響特徴量言語特徴量統合部391とを含んで構成される。
【0034】
前処理部32は、学習用の前処理を行うものである。前処理部32を「学習用前処理部」と呼んでもよい。前処理部32が持つ音響分析部351を、「学習用音響分析部」と呼んでもよい。音響分析部351が分析対象とする音声信号を、「学習用音声信号」と呼んでもよい。音響分析部351が求める音響特徴量を、「学習用音響特徴量」と呼んでもよい。前処理部32が持つ言語解析部354を、「学習用言語解析部」と呼んでもよい。言語解析部354が解析対象とするテキストを、「学習用テキスト」と呼んでもよい。言語解析部354が求める言語特徴量を、「学習用言語特徴量」と呼んでもよい。
【0035】
音響分析部351は、所定単位のテキストごとに、前記所定単位のテキストに対応する音声信号を基に、フレーム単位の音響特徴量を求める。言い換えれば、学習用音響分析部は、所定単位の学習用テキストごとに、所定単位の学習用テキストに対応する学習用音声信号を基に、フレーム単位の学習用音響特徴量を求める。ここで「所定単位のテキスト」とは、例えば、アクセント句の単位のテキストである。
【0036】
音素セグメンテーション部352は、音声信号に関して、音素のセグメンテーションを行う。つまり、音素セグメンテーション部352は、音声信号内の音素ごとの区間(開始位置および終了位置)を特定する。
【0037】
中心音素抽出部353は、言語解析結果(フルコンテキストラベル)に基づいて、中心音素を抽出する。
【0038】
言語解析部354は、上記の所定単位のテキストを基に、当該テキストのフレーム単位の言語特徴量を求める。言い換えれば、前記所定単位の学習用テキストを基に、当該学習用テキストの前記フレーム単位の学習用言語特徴量を求める。言語解析部354が求める言語特徴量の例は、発話内の呼気段落位置と、呼気段落内のアクセント句位置と、アクセント句内のモーラ位置と、モーラ内のフレーム位置とである。
【0039】
モーラ単位統合部361は、音響分析部351が出力するフレーム単位の音響特徴量のデータを、モーラ単位の音響特徴量のデータに統合する。
【0040】
アクセント句単位統合部362は、前記の音響特徴量のデータを、アクセント句単位の音響特徴量のデータに統合する。
【0041】
アクセント句分割部371は、前記の言語解析処理の結果であるフルコンテキストラベルを、アクセント句の単位に分割する。
【0042】
第1言語特徴量抽出部381は、モーラ内のフレーム単位での言語特徴量を抽出する。
【0043】
第2言語特徴量抽出部382は、アクセント句内のフレーム単位での言語特徴量を抽出する。
【0044】
第1正解ラベル抽出部386は、モーラ内のフレーム単位での正解ラベルを抽出する。
【0045】
第2正解ラベル抽出部387は、アクセント句内のフレーム単位での正解ラベルを抽出する。
【0046】
なお、第1正解ラベル抽出部386と第2正解ラベル抽出部387とをまとめて単に「正解ラベル抽出部」と呼んでもよい。つまり、正解ラベル抽出部は、言語特徴量(学習用言語特徴量)に基づいてテキストに対応するアクセントの正解ラベルを求める。
【0047】
音響特徴量言語特徴量統合部391は、アクセント句単位統合部362が出力する音響特徴量のデータと、第2言語特徴量抽出部382が出力する言語特徴量のデータとを、統合する。音響特徴量言語特徴量統合部391によって統合されたデータは、統計モデルへの入力データとなる。
【0048】
図3、
図4、
図5は、アクセント推定装置1が使用するフルコンテキストラベル(文脈依存音素ラベル)の形式を示す概略図である。フルコンテキストラベルは、テキストを解析した結果として得られるものであり、テキストの文脈に依存する音素ラベルである。
図3から
図5までが、フルコンテキストラベルの1つのデータ構造体を示す。なお、アクセント推定装置1が処理時にフルコンテキストラベルを使用する方法については、後で説明する。
図3、
図4、
図5に図示するように、フルコンテキストラベルは、下に列挙するデータを含んでいる。
【0049】
下記のp1からp5までは、音素情報である。
p1:前音素の前の音素の識別情報
p2:前音素の識別情報
p3:現音素(p1からp5までの中心音素)の識別情報
p4:次音素の識別情報
p5:次音素の次の音素の識別情報
【0050】
下記のa1からa3までは、アクセント情報である。
a1:アクセント型(アクセント核のモーラ位置)と現モーラ識別情報の位置との差
a2:現アクセント句における現モーラ識別情報の位置(前向き)
a3:現アクセント句における現モーラ識別情報の位置(後ろ向き)
【0051】
下記のb1からb3までと、c1からc3までと、d1からd3までとは、品詞情報である。
b1:前の語の品詞
b2:前の語の活用形
b3:前の語の活用型
【0052】
c1:現在の語の品詞
c2:現在の語の活用形
c3:現在の語の活用型
【0053】
d1:次の語の品詞
d2:次の語の活用形
d3:次の語の活用型
【0054】
下記のe1からe5までと、f1からf8までと、g1からg5までとは、アクセント情報である。
e1:前のアクセント句におけるモーラ数
e2:前のアクセント句におけるアクセント型(アクセント核のモーラ位置)
e3:前のアクセント句が疑問詞であるか否か
e4:未定義コンテキスト
e5:前のアクセント句と現アクセント句との間に休止が挿入されるか否か
【0055】
f1:現アクセント句におけるモーラ数
f2:現アクセント句におけるアクセント型(アクセント核のモーラ位置)
f3:現アクセント句が疑問詞であるか否か
f4:未定義コンテキスト
f5:現アクセント句識別情報の、現呼気段落におけるアクセント句単位での位置(前向き)
f6:現アクセント句識別情報の、現呼気段落におけるアクセント句単位での位置(後ろ向き)
f7:現アクセント句識別情報の、現呼気段落におけるモーラ単位での位置(前向き)
f8:現アクセント句識別情報の、現呼気段落におけるモーラ単位での位置(後ろ向き)
【0056】
g1:次のアクセント句におけるモーラ数
g2:次のアクセント句におけるアクセント型(アクセント核のモーラ位置)
g3:次のアクセント句が疑問詞であるか否か
g4:未定義コンテキスト
g5:次のアクセント句と現アクセント句との間に休止が挿入されるか否か
【0057】
下記のh1からh2までと、i1からi8までと、j1からj2までは、呼気段落情報である。
h1:前の呼気段落内におけるアクセント句の数
h2:前の呼気段落内におけるモーラ数
【0058】
i1:現呼気段落内におけるアクセント句の数
i2:現呼気段落内におけるモーラ数
i3:現呼気段落識別情報の呼気段落単位の位置(前向き)
i4:現呼気段落識別情報の呼気段落単位の位置(後ろ向き)
i5:現呼気段落識別情報のアクセント句単位の位置(前向き)
i6:現呼気段落識別情報のアクセント句単位の位置(後ろ向き)
i7:現呼気段落識別情報のモーラ単位の位置(前向き)
i8:現呼気段落識別情報のモーラ単位の位置(後ろ向き)
【0059】
j1:次の呼気段落内におけるアクセント句の数
j2:次の呼気段落内におけるモーラ数
【0060】
下記のk1からk3は、総数情報である。
k1:本発話内における呼気段落の総数
k2:本発話内におけるアクセント句の総数
k3:本発話内におけるモーラの総数
【0061】
図6、
図7は、言語解析部354がテキストの言語解析処理を行ったことによって抽出するフルコンテキストラベルの例を示す概略図である。本例は、「晴れ、のち、曇り。」というテキストに基づくフルコンテキストラベルである。この図では、フルコンテキストラベルのデータの1行が、1音素に対応する。ただし、1行のデータを途中で折り返している。
図6は、データの第1行から第8行までを示す。
図7は、データの第9行から第15行までを示す。各行の先頭部分が、前述の項目p
1からp
5までに対応している。また、各行の「/A:」から始まる部分が、前述の項目a
1からa
3までに対応している。また、各行の「/B:」から始まる部分が、前述の項目b
1からb
3までに対応している。また、各行の「/C:」から始まる部分が、前述の項目c
1からc
3までに対応している。また、各行の「/D:」から始まる部分が、前述の項目d
1からd
3までに対応している。また、各行の「/E:」から始まる部分が、前述の項目e
1からe
5までに対応している。また、各行の「/F:」から始まる部分が、前述の項目f
1からf
8までに対応している。また、各行の「/G:」から始まる部分が、前述の項目g
1からg
5までに対応している。また、各行の「/H:」から始まる部分が、前述の項目h
1からh
2までに対応している。また、各行の「/I:」から始まる部分が、前述の項目i
1からi
8までに対応している。また、各行の「/J:」から始まる部分が、前述の項目j
1からj
2までに対応している。また、各行の「/K:」から始まる部分が、前述の項目k
1からk
3までに対応している。
【0062】
次に、事前学習の処理とラベル推定の処理のそれぞれについて、詳細に説明する。
【0063】
事前学習では、学習用のデータとして、発話ごとの音声信号と、その音声信号に対応するテキストとを利用する。事前学習の処理では、発話ごとのデータから、アクセント句内でフレーム単位のデータを作成し、アクセント句内のフレーム単位のデータを用いて、アクセントの正解ラベルを推定するための統計モデルの学習を行う。具体的には次の通りである。
【0064】
前処理部32は、学習用音声コーパス記憶部31から読み出される音声信号とテキストとの対を処理対象とする。
【0065】
音響分析部351は、音声信号の音響分析の処理を行う。つまり、音響分析部351は、所定の窓幅をシフトしながら、フレームごとの音響特徴の分析を行う。具体的には、音響分析部351は、例えば5ミリ秒(ms)単位のフレームごとに音響特徴量を抽出する。ただし、フレームの長さは5ミリ秒以外であってもよい。音響特徴量としては、メルスペクトログラム(mel spectrogram)を用いる。メルスペクトログラムは、周波数領域の音声信号の情報である。メルスペクトログラムは、周波数がメルスケールに変換されているスペクトログラムである。メルスペクトログラム自体は、既存の手法による音響特徴量である。一例として、下記URLで提供される関数を用いてメルスペクトログラムを抽出することができる。
URL https://librosa.org/doc/latest/generated/librosa.feature.melspectrogram.html
【0066】
音響分析部351は、本実施形態では、最低周波数80Hz、最高周波数7600Hzの範囲でメルスペクトログラムを抽出する。なお、次数を80とする。また、音響分析部351は、有音区間のメルスペクトログラムの次元ごとに算出した平均値と標準偏差によって、発話ごとのメルスペクトログラムを標準化しておく。音響分析部351は、この次数80の数値を、フレーム単位の音響特徴量として出力する。上記のように発話ごとに標準化することにより、発話間の変動や話者間の変動を吸収できることが期待される。
【0067】
言語解析部354は、音声信号に対応するテキストの言語解析処理を行い、文脈に依存したフルコンテキストラベルを求める。言語解析処理は、テキスト(文)の形態素解析および構文解析の処理を含む。フルコンテキストラベルの形式については、
図3、
図4、
図5で説明した通りである。フルコンテキストラベルの抽出例については、
図6、
図7で説明した通りである。これらの図に示すフルコンテキストラベル自体は、既存の手法においても利用されるものである。言語解析部354は、例えば下記URLで提供される音声合成処理ツールキットの解析技術を利用して、テキストから、フルコンテキストラベルを抽出する。
URL http://open-jtalk.sourceforge.net
【0068】
下記の通り、フルコンテキストラベルは、当該音素が含まれる文内の呼気段落位置や、呼気段落内のアクセント句位置や、アクセント句内のモーラ位置などの情報を含んでいる。
【0069】
中心音素抽出部353は、言語解析部354が出力したフルコンテキストラベルから中心音素を抽出する。
【0070】
音素セグメンテーション部352は、音声信号と、中心音素抽出部353が抽出したフルコンテキストラベルの中心音素に基づいて、音素セグメンテーションを行う。音素セグメンテーション部352は、音素セグメンテーションの処理によって、音声信号内に含まれる各音素の音素区間情報を求める。音素区間情報は、音素の開始時間および終了時間の情報である。つまり、音素セグメンテーション部352は、音声信号内における音素の区間を特定する。音素セグメンテーション部352は、例えば下記URLで提供される音声認識処理ツールキットの強制アラインメント(Forced Alignments)の技術を利用して、音素のセグメンテーションを行う。
URL http://htk.eng.cam.ac.uk
【0071】
なお、音素セグメンテーション部352による音素セグメンテーションの処理に加えて、人手によるセグメンテーションの確認および修正を行えるようにしてもよい。
【0072】
一方、アクセント句分割部371は、言語解析部354が出力したフルコンテキストラベルを、アクセント句単位に分割する。アクセント句分割部371は、アクセント句に分割したフルコンテキストラベルの情報を、アクセント句単位統合部362に渡す。
【0073】
モーラ単位統合部361は、音響分析部351が出力する音響特徴量のデータを、モーラ単位に統合する。具体的には、モーラ単位統合部361は、中心音素抽出部353が抽出したフルコンテキストラベルの中心音素と、音素セグメンテーション部352の処理結果による音素区間情報を用いて、モーラ単位での音響特徴量を決定する。モーラ内の音響特徴量は、そのモーラ内のフレーム単位の音響特徴量の集合である。
【0074】
アクセント句単位統合部362は、モーラ単位統合部361が出力したモーラ単位の音響特徴量のデータをアクセント句単位に統合する。具体的には、アクセント句単位統合部362は、フルコンテキストラベルが持つアクセント句情報を用いて、モーラ単位の音響特徴量を統合する。アクセント句内の音響特徴量は、アクセント句内に含まれる、モーラ単位の音響特徴量の集合である。
【0075】
また、その一方で、第1言語特徴量抽出部381および第2言語特徴量抽出部382は、言語解析部354が出力したフルコンテキストラベルから、言語特徴量を求める。第1言語特徴量抽出部381は、モーラ内のフレーム単位言語特徴量を出力する。第2言語特徴量抽出部382は、アクセント句内のフレーム単位言語特徴量を出力する。第1言語特徴量抽出部381は、対象とするアクセント句における各モーラ内における、各フレームに対して、次の4つの情報を割り当てる。
(1)文内の当該呼気段落位置を表す数値
(2)呼気段落内の当該アクセント句位置を表す数値
(3)アクセント句内の当該モーラ位置を表す数値
(4)モーラ内の当該フレーム位置を表す数値
【0076】
具体的に、上記4つの情報は、次の通りである。上記(1)の数値は、文内の当該呼気段落位置を文内の総呼気段落数で除算した値である。
図3~
図5のフルコンテキストラベルの形式の記号を用いた数式で表すと、呼気段落位置BG(breath group)は、BG=i
3/k
1である。上記(2)の数値は、呼気段落内の当該アクセント句位置を呼気段落内の総アクセント句数で除算した値である。同じくフルコンテキストラベルの形式の記号を用いた数式で表すと、アクセント句位置AP(accent phrase)は、AP=f
5/i
1である。上記(3)の数値は、アクセント句内の当該モーラ位置をアクセント句内の総モーラ数で除算した値である。同じくフルコンテキストラベルの形式の記号を用いた数式で表すと、モーラ位置MR(mora)は、MR=a
2/f
1である。上記(4)の数値は、モーラ内の当該フレーム位置をモーラ内の総フレーム数で除算した値である。即ち、フレーム位置FR(frame)は、数式で表わすと、frame
i/frame_moraである。なお、ここで、frame
iはモーラ内におけるフレーム位置(整数値)であり、frame_moraは当該モーラ内の総フレーム数である。これらの次数4次の数値を、フレーム単位の言語特徴量とする。
【0077】
第1言語特徴量抽出部381は、モーラ内のフレーム単位の言語特徴量の集合を抽出し、出力する。つまり、モーラ内の言語特徴量は、モーラ内のフレーム単位の言語特徴量をモーラ内の総フレーム数回繰り返したものである。
【0078】
第2言語特徴量抽出部382は、アクセント句内のフレーム単位の言語特徴量の集合を抽出し、出力する。つまり、アクセント句内の言語特徴量は、アクセント句内のモーラ内の言語特徴量をすべて結合したものである。
【0079】
そして、音響特徴量言語特徴量統合部391は、アクセント句単位統合部362が出力する音響特徴量と、第2言語特徴量抽出部382が出力する言語特徴量とを統合して、モデルを学習するための入力データとする。
【0080】
また、第1正解ラベル抽出部386および第2正解ラベル抽出部387は、フルコンテキストラベルに基づいて、次のような処理によって正解ラベルを抽出する。日本語のアクセントは模擬的に、モーラごとの声の高さが高い(H)か低い(L)かいずれかの、高低のトーンで表すことができる。1つのアクセント句内には、1箇所まで、声の高さが下がるモーラ位置が存在し得る。また、標準語(東京方言とも呼ばれる)では、アクセント句内の1モーラ目のトーンが高く、2モーラ目でトーンが下がる場合(頭高型)を除くと、1モーラ目のトーンが低く、2モーラ目でトーンが上がる特徴がある。
【0081】
図8は、前処理部32内の第1正解ラベル抽出部386および第2正解ラベル抽出部387がアクセント句単位の正解ラベルを求めるための処理の手順を示すフローチャートである。その前提として、言語解析部354は、テキストを解析することによってフルコンテキストラベルを既に求めている。以下、このフローチャートに沿って正解ラベルを求める処理を説明する。
【0082】
ステップS11において、第1正解ラベル抽出部386は、言語解析部354が求めたフルコンテキストラベルに基づいて、テキストをモーラ単位の読み仮名に変換する。例えば、元のテキストが「あらゆる現実を、すべて、自分の方へ捻じ曲げたのだ。」である場合、本ステップの処理により、「ア/ラ/ユ/ル/ゲ/ン/ジ/ツ/オ/ス/ベ/テ/ジ/ブ/ン/ノ/ホ/オ/エ/ネ/ジ/マ/ゲ/タ/ノ/ダ」という読み仮名が得られる。この読み仮名において、スラッシュ(/)は、モーラの区切りを表す。
【0083】
次にステップS12において、第2正解ラベル抽出部387は、フルコンテキストラベルを参照して、上記のモーラ単位の読み仮名を、アクセント句単位の読み仮名に統合する。本ステップの処理により、上記例の読み仮名は、「アラユル/ゲンジツオ/スベテ/ジブンノホオエ/ネジマゲタノダ」というアクセント句単位の読み仮名に変換される。ここでのスラッシュ(/)は、アクセント句の区切りを表す。
【0084】
次にステップS13において、第2正解ラベル抽出部387は、フルコンテキストラベルを参照して、上記のアクセント句単位の読み仮名に対応する、アクセント句単位のトーンを作成する。具体的には、第2正解ラベル抽出部387は、フルコンテキストラベルにおけるアクセント核のモーラ位置の情報からアクセント句単位のトーンを作成する。なお、アクセント核とは、ピッチが下がる直前のモーラである。具体的には、アクセント句内の当該モーラ位置(フルコンテキストラベルの形式の記号で表されるa
2)と、アクセント句におけるモーラ数(フルコンテキストラベルの形式の記号で表されるf
1)、および、アクセント句におけるアクセントタイプ(フルコンテキストラベルの形式の記号で表されるf
2)の値を観測する。f
2=1の場合は頭高型を表し、当該モーラ位置a
2=1のトーンはH、それ以外の位置のトーンはLとする。f
2=f
1の場合は平板型か尾高型を表し、a
2=1のトーンはL、それ以外の位置のトーンはHとする。前記した2つの場合以外は中高型を表し、a
2=1およびa
2>f
2のトーンはL、それ以外の位置のトーンはHとする。本ステップの処理の詳細については、後で
図9を参照しながら説明する。本ステップの処理により、上記例のアクセント句単位の読み仮名に対応して、「LHHL/LHHHH/HLL/LHHHHLL/LHHLLLL」というアクセント句単位のトーンが得られる。ここでのスラッシュ(/)も、アクセント句の区切りを表す。また,Lはlow(低)、Hはhigh(高)に対応する。
【0085】
次にステップS14において、第2正解ラベル抽出部387は、アクセント句単位のトーンを、アクセントの正解ラベルに変換する。本実施形態において、アクセント正解ラベルは、上記のアクセント句単位のトーンに対応する、0、1、2という3種類の数の列である。これらの数値の意味は、次の通りである。即ち、数値2は、アクセント句内のモーラに対して、当該モーラの次のモーラで声の高さが下降する場合に対応する。つまり、隣接するモーラ間でトーンがHからLに変化するときに、当該Hに対応する部分が、2に対応する。数値1は、アクセント句内のモーラに対して、当該モーラの次のモーラで声の高さが上昇する場合に対応する。つまり、隣接するモーラ間でトーンがLからHに変化するときに、当該Lに対応する部分が、1に該当する。数値0は、アクセント句内のモーラに対して、当該モーラの次のモーラで声の高さが変化しない場合に対応する。つまり、隣接するモーラ間で、トーンがL-LあるいはH-Hと推移するときに、その前側のモーラに対応する部分が、0に該当する。また、アクセント句内の最後のモーラに対応する数値も0である。本ステップの処理により、上記例のアクセント句単位のトーンを基に、「1020/10000/200/1000200/1020000」というアクセント句単位の正解ラベルが得られる。ここでのスラッシュ(/)も、アクセント句の区切りを表す。ここでの各数値は、モーラに対応するものである。
【0086】
つまり、正解ラベルに含まれる数値「2」は、声の高さが下降する直前のモーラに対応するものである。また、正解ラベルに含まれる数値「1」は、声の高さが上昇する直前のモーラに対応するものである。また、正解ラベルに含まれる数値「0」は、声の高さが変わらない場合、あるいはアクセント句における最後のモーラである場合に対応する。
【0087】
同ステップにおいて、第2正解ラベル抽出部387は、さらに、上記のモーラの数値(正解ラベル)を、当該モーラ内の各フレームに割り当てる。つまり、第2正解ラベル抽出部387は、あるモーラの正解ラベルに相当する数値(0、1、または2)を、当該モーラ内に含まれるフレーム数分くりかえすようにコピーする。これにより、第2正解ラベル抽出部387は、アクセント句内のフレーム単位の数値の列を生成する。即ち、この次数1次の数値が、アクセント句内のフレーム単位の正解ラベルである。
【0088】
以上説明した処理により、前処理部32の音響特徴量言語特徴量統合部391は、音響特徴量と言語特徴量とを統合したデータを出力する。また第2正解ラベル抽出部387は、アクセントに関する正解ラベルを出力する。この両データの対は、モデル学習部33が統計モデルの学習をするために用いられる。
【0089】
図9は、
図8に示したステップS13の処理の詳細を示すフローチャートである。即ち、第2正解ラベル抽出部387がアクセント句単位のトーンを作成する処理の手順を示すフローチャートである。以下、このフローチャートに沿って説明する。
【0090】
ステップS21において、第2正解ラベル抽出部387は、f2=1であるか否かを判定する。即ち、アクセント句におけるアクセントタイプの値が1であるか否かを判定する。f2=1である場合(ステップS21:YES)には、ステップS22の判定に進む。その他の場合(ステップS21:NO)には、ステップS25の判定に進む。
【0091】
ステップS22において、第2正解ラベル抽出部387は、a2=1であるか否かを判定する。即ち、アクセント句内の当該モーラ位置が1であるか否かを判定する。a2=1である場合(ステップS22:YES)には、トーンを「H」とし(ステップS24)て、本フローチャートの処理を終了する。その他の場合(ステップS22:NO)には、トーンを「L」とし(ステップS23)て、本フローチャートの処理を終了する。
【0092】
ステップS25に進んだ場合、同ステップにおいて、第2正解ラベル抽出部387は、f2=f1であるか否かを判定する。即ち、アクセント句におけるアクセントタイプの値が、アクセント句におけるモーラ数と等しいか否か、を判定する。f2=f1である場合(ステップS25:YES)には、ステップS26の判定に進む。その他の場合(ステップS25:NO)には、ステップS29の判定に進む。
【0093】
ステップS26において、第2正解ラベル抽出部387は、a2=1であるか否かを判定する。即ち、アクセント句内の当該モーラ位置が1であるか否かを判定する。a2=1である場合(ステップS26:YES)には、トーンを「L」とし(ステップS28)て、本フローチャートの処理を終了する。その他の場合(ステップS26:NO)には、トーンを「H」とし(ステップS27)て、本フローチャートの処理を終了する。
【0094】
ステップS29に進んだ場合、同ステップにおいて、第2正解ラベル抽出部387は、(a2=1またはa2>f2)の条件を満たすか否かを判定する。a2=1は、アクセント句内の当該モーラ位置が1である場合に対応する。a2>f2は、アクセント句内の当該モーラ位置がアクセント句におけるアクセントタイプより大きい場合に対応する。(a2=1またはa2>f2)である場合(ステップS29:YES)には、トーンを「L」とし(ステップS31)て、本フローチャートの処理を終了する。その他の場合(ステップS29:NO)には、トーンを「H」とし(ステップS30)て、本フローチャートの処理を終了する。
【0095】
以上、説明したように、第2正解ラベル抽出部387は、本フローチャートで説明した処理によって、アクセント句単位のトーンを作成する。
【0096】
図10は、
図8に示したステップS14の処理における、アクセント句のトーンから正解ラベルの数値への変換の規則を示す概略図である。図示するように、第2正解ラベル抽出部387は、アクセント句のトーンにおける連続する2つのモーラのトーンのパターンに応じて、当該2つのモーラのうちの前側のモーラに対応する正解ラベルの数値を決定する。ただし、第2正解ラベル抽出部387は、アクセント句が終結するモーラ(
図10のパターン(E)または(F))に関しては、当該モーラのトーンに依らずに、当該モーラに対応する正解ラベルの数値を決定する。
【0097】
図10のパターン(A)は、連続する2つのモーラのトーンが「H」→「L」と変化する場合であり、この場合の前側のモーラに対応する正解ラベルの数値は「2」である。パターン(B)は、連続する2つのモーラのトーンが「H」→「L」と変化する場合であり、この場合の前側のモーラに対応する正解ラベルの数値は「1」である。パターン(C)は、連続する2つのモーラのトーンが「H」→「H」と続く場合であり、この場合の前側のモーラに対応する正解ラベルの数値は「0」である。パターン(D)は、連続する2つのモーラのトーンが「L」→「L」と続く場合であり、この場合の前側のモーラに対応する正解ラベルの数値は「0」である。つまり、パターン(C)および(D)は、連続する2つのモーラのトーンが変化せずに続く場合である。パターン(E)および(F)は、アクセント句内の最後のモーラに相当する場合であり、この場合、当該モーラのトーンが「H」であるか「L」であるかに依らず、当該モーラに対応する正解ラベルの数値は「0」である。
【0098】
モデル学習部33は、前処理部32から渡される、アクセント句を単位とする、入力データ(フレーム単位の音響特徴量と言語特徴量を結合したデータ。学習用データ。)と、正解ラベルとを用いて、統計モデルの学習を行う。統計モデルは、例えば、DNN(ディープニューラルネットワーク)を用いて実現される。具体的には、モデル学習部は、上記の入力データに基づいてラベルの推定を行い、推定されたラベルと正解ラベルとの差を求め、その差に基づく誤差逆伝播法により、統計モデルの内部パラメーターを更新する。
【0099】
統計モデルとしては、男性話者の音声用のモデルと女性話者の音声用のモデルとを区別して構築してよい。あるいは、統計モデルとして、男性話者あるいは女性話者を区別せず性別不特定のモデルを構築してもよい。男性話者用モデルの学習を行う場合には、モデル学習部33は、男性話者の学習用データを使用する。女性話者用のモデルの学習を行う場合には、モデル学習部33は、女性話者の学習用データを使用する。性別不特定のモデルの学習を行う場合には、モデル学習部33は、男性話者および女性話者の両方の学習用データを混合して使用する。また、統計モデルとして特定の個人の話者用の統計モデルを構築しても良い。
【0100】
学習用データのうちの入力データは、例えば、音響特徴量80次と言語特徴量4次のデータを結合した84次のデータである。入力データとしては、例えば、数十万件程度のアクセント句のデータを用いる。入力データは、84次の各次元について平均値および標準偏差を求め、標準化しておくようにする。正解ラベルのデータについては、標準化せずに、そのまま扱ってよい。
【0101】
上記のように例えば数十万件の学習用データを、ランダムな順番に並べ替え、例えば8:1:1の割合で、それぞれ、訓練データ、検証データ、評価データに分割して利用するようにする。モデル学習部33による学習処理は、ミニバッチ単位で行う。一度に扱うミニバッチサイズを例えば32個のアクセント句とする。そのミニバッチごとに、フレーム数が最長となるアクセント句(フレーム数:frame_max)に合わせて、より短いアクセント句の後部にはゼロ詰めをして学習に使用する。
【0102】
モデル学習部33が統計モデルを学習する処理自体は、既存技術を利用して行うことができる。一例として、オープンソースソフトウェアの機械学習ツールキットであるTensorFlowを使用することもできる。TensorFlowについては、下記URLに記載されている。
URL https://tensorflow.org
【0103】
図11は、モデル学習部33による統計モデルの学習時の処理の流れを示す概略図である。図示するように、統計モデルは、入力層411(Input Layer)と、マスキング層412(Masking)と、双方向LSTM413(Bidirectional LSTM)と、正規化層414(Layer Normalization)と、ドロップアウト層415(Dropout)と、全結合層416(Dense)と、ソフトマックス関数417(Softmax)との各層を含むように構成される。なお、LSTMは、「Long short-term memory」の略である。双方向LSTMは、「BLSTM」と表記される場合がある。
【0104】
学習の際には、モデル学習部33は、ミニバッチサイズ32で、ミニバッチごとの最長フレーム数frame_maxに合わせた、84次の入力データのテンソル[32,frame_max,84]を入力層に入力する。入力データは、入力層411およびマスキング層412によって処理される。マスキング層412は、ゼロ詰め部分を無視するマスキング情報を持つテンソル[32,frame_max,84]を出力する。マスキング情報は双方向LSTM413以後の層に伝播し、ゼロ詰め部分を無視した演算を可能にする。モデル学習部33は、マスキング層412からの出力テンソル[32,frame_max,84]を、ユニット数64の双方向LSTM層413(順方向と逆方向の出力を加算)×6層に通して、[32,frame_max,64]のテンソルを出力する。なお、双方向LSTM層413においては、過学習を防ぐため、0.001でカーネルに12正則化を適用する。そして、モデル学習部33は、さらに汎化性能を上げるため、6層の双方向LSTM層413からの出力テンソル [32,frame_max,64]を、正規化層414とドロップ率0.5のドロップアウト層415を通して、[32,frame_max,64]のテンソルを出力する。そして、モデル学習部33は、ドロップアウト層415からの出力テンソル[32,frame_max,64]を、ユニット数3の全結合層416に通して、[32,frame_max,3]のテンソルを出力する。全結合層416からの出力テンソル[32,frame_max,3]を基に、モデル学習部33は、フレームごとにマスキングでマスクされた値を無視しながら、ソフトマックス関数417の演算を行う。モデル学習部33は、当該モデルの出力である推定値のテンソル[32,frame_max,3]を出力する。
【0105】
モデル学習部33は、前処理部32から出力された正解ラベル[32,frame_max,1]と、上記の推定値[32,frame_max,3]とを用いて損失関数(差,loss)を演算する。具体的には、モデル学習部33は、正解ラベルのゼロ詰め部分を無視するためのマスク値[32,frame_max,1]を求め、正解ラベル[32,frame_max,1]と推定値[32,frame_max,3]で、多クラス分類でラベルを用いて損失を算出する。損失を演算するためには、モデル学習部33は、SparseCategoricalCrossentropy()関数(疎なカテゴリカル交差エントロピー)の演算を行い、その演算結果[32,frame_max]を求める。そして、モデル学習部33は、その次元をexpand_dims()関数で拡張し[32,frame_max,1]とする。モデル学習部33は、その値と上で求めたマスク値[32,frame_max,1]との論理積(logical_and()関数)をとり、得られた値の平均(reduce_mean()関数)を算出し損失とする。なお、reduce_mean()関数は、テンソルの特定の次元の平均をとる関数である。
【0106】
モデル学習部33は、訓練データのバッチごとにモデルの訓練損失を計算し、訓練損失に関するモデルの重みの勾配を取得し、オプティマイザーを使用して、勾配に基づいてモデルの重みを更新する。モデル学習部33は、その際、オプティマイザーとして、learning_rate=0.00001、decay=1e-6、momentum=0.9のSGD(Stochastic Gradient Descent、確率的勾配降下法)を利用する。
【0107】
モデル学習部33は、上記の訓練損失が前エポック(epoch)までの最小訓練損失を下回ったら、保持するモデルを更新する。モデル学習部33は、訓練データのすべてのミニバッチで計算を済ませる処理を1エポックとして、最大1000エポックまで学習を行う。モデル学習部33は、1エポックごとに検証データでモデルの検証損失と検証精度を求め、検証損失が連続して50エポック改善しない場合は、学習を早期終了(EarlyStop)する。モデル学習部33は、このようにして検証損失が最小となった時に保持したモデルを採用する。
【0108】
モデル学習部33は、採用したモデルのパラメーター情報を、モデル記憶部11に書き込む。
【0109】
次に、ラベル推定の処理の詳細について説明する。ラベル推定の処理の際には、推定の基となるデータとして、発話ごとの音声信号と、当該音声信号に対応する書き起こしテキストが存在する。本実施形態では、推定用音声コーパス記憶部21が、上記の音声信号およびテキストの対を保持している。
【0110】
前処理部22は、前述の前処理部32とほぼ同様の構成を有している。しかし、前処理部22は、正解ラベルを抽出するための構成を持つ必要がない。即ち、
図2に示した前処理部32の第1正解ラベル抽出部386および第2正解ラベル抽出部387の機能を、前処理部22が持つ必要はない。前処理部22は、発話ごとのテキストと音声信号とに基づいて、前処理部32と同様に、アクセント句ごとに、フレーム単位の音響特徴量と言語特徴量からなる入力データを作成し、出力する。前処理部32について
図2を参照しながら説明済みであるため、ここでは、前処理部22が音響特徴量と言語特徴量からなる入力データを作成するための詳細な手順についての説明を省略する。
【0111】
ラベル推定部23は、前処理部22が出力した入力データを基に、アクセントについてのラベルを推定する。
【0112】
図12は、ラベル推定部23がラベルを推定する処理の流れを示す概略図である。図示するように、このときの統計モデルの構成は、
図11に示した構成(符号411から417まで)と同一である。ただし、推定時には、ドロップアウト層415は無視される。ラベル推定処理の時点では、統計モデルは既に学習済みである。即ち、統計モデルが持つパラメーター(重み)の値は、既に決定されている。ラベル推定部23によるラベル推定処理の際には、正解ラベルに基づくパラメーターの調整を行わない。
【0113】
ラベル推定部23が前処理部22から受け取る入力データは、ミニバッチサイズが1、フレーム数がframe、次数が84の入力データのテンソル[1,frame,84]である。ラベル推定部23は、入力データを入力層411から入力する。入力層411からソフトマックス関数417までの各層における処理は、モデル学習のための処理として既に説明した通りである。ラベル推定部23は、この学習済みのモデルにより、ミニバッチサイズが1、フレーム数がframe、次数が3の推定値[1,frame,3]を求める。ラベル推定部23は、得られた推定値[1,frame,3]のフレームごとに、3次の数値のうち最大となるインデックス(0、1、2のいずれか)をフレームごとの推定ラベルの数値とする。1つのモーラには多数のフレームが含まれるため、ラベル推定部23は、モーラ内のフレーム単位の推定ラベルの値(0、1、または2)の多数決をとることによって、モーラ単位の推定ラベルを決定する。
【0114】
アクセント句内のモーラ単位の推定ラベルの値により、アクセントを特定することができる。合成音声による発話を生成する場合には、モーラ単位の推定ラベルの値により、音の高さを調整することが可能となる。モーラ単位の推定ラベルが「1」の場合には、当該モーラの次のモーラにおいて声の高さが上昇する。モーラ単位の推定ラベルが「2」の場合には、当該モーラの次のモーラにおいて声の高さが下降する。モーラ単位の推定ラベルが「0」の場合には、当該モーラの次のモーラで声の高さが変化する状況が生じない(アクセント句内に次のモーラが存在しない場合を含む)。
【0115】
図13は、アクセント推定装置1が持つ機能を実現するための内部構成の例を示すブロック図である。アクセント推定装置1(あるいは少なくともその一部)は、コンピューターを用いて実現され得る。図示するように、そのコンピューターは、中央処理装置901と、RAM902と、入出力ポート903と、入出力デバイス904や905等と、バス906と、を含んで構成される。コンピューター自体は、既存技術を用いて実現可能である。中央処理装置901は、RAM902等から読み込んだプログラムに含まれる命令を実行する。中央処理装置901は、各命令にしたがって、RAM902にデータを書き込んだり、RAM902からデータを読み出したり、算術演算や論理演算を行ったりする。RAM902は、データやプログラムを記憶する。RAM902に含まれる各要素は、アドレスを持ち、アドレスを用いてアクセスされ得るものである。なお、RAMは、「ランダムアクセスメモリー」の略である。入出力ポート903は、中央処理装置901が外部の入出力デバイス等とデータのやり取りを行うためのポートである。入出力デバイス904や905は、入出力デバイスである。入出力デバイス904や905は、入出力ポート903を介して中央処理装置901との間でデータをやりとりする。バス906は、コンピューター内部で使用される共通の通信路である。例えば、中央処理装置901は、バス906を介してRAM902のデータを読んだり書いたりする。また、例えば、中央処理装置901は、バス906を介して入出力ポートにアクセスする。
【0116】
なお、上述した実施形態におけるアクセント推定装置1の少なくとも一部の機能をコンピューターで実現することができる。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM、DVD-ROM、USBメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。つまり、「コンピューター読み取り可能な記録媒体」とは、非一過性の(non-transitory)コンピューター読み取り可能な記録媒体であってよい。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、一時的に、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0117】
以上説明した通り、本実施形態では、アクセント句内のフレーム単位の音響特徴量と言語特徴量で学習した統計モデルを用いることによって、発話内の呼気段落位置、呼気段落内のアクセント句位置、アクセント句内のモーラ位置、モーラ内のフレーム位置といった発話の影響を考慮して、精度よくアクセントを推定することができる。また、本実施形態では、アクセント句内のフレーム単位の音響特徴量と言語特徴量、および正解ラベルに基づいて、統計モデルの学習処理を行うことができる。
【0118】
なお、次の変形例によってアクセント推定装置1、あるいは2や、アクセント推定モデル学習装置3を実施するようにしてもよい。上記実施形態では、アクセント句を単位として、テキストおよび音声信号に基づいて統計モデルの学習を行った。また、学習済みの統計モデルがあることを前提として、アクセント句を単位として、テキストおよび音声信号に基づいてアクセントのラベルを推定する処理を行った。変形例では、アクセント句の単位に限らず、その他の所定の単位のテキストおよび音声信号に基づいて、アクセントのラベルを推定したり、統計モデルの学習を行ったりしてもよい。また、変形例では、発話内の所定単位(アクセント句の単位に限らず、任意の単位)の位置の情報や、モーラの位置の情報や、フレームの位置の情報を、言語特徴量とする。
【0119】
また、上記実施形態では音響特徴量としてメルスペクトログラムを用いた。変形例として、メルスペクトログラム以外の音響特徴量を用いてアクセント推定装置1、あるいは2や、アクセント推定モデル学習装置3を実施するようにしてもよい。
【0120】
以上、この発明の実施形態および変形例について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0121】
[実施例の評価]
以下では、実施例の評価について説明する。実施例においては、アクセント推定モデル学習装置3が、女声用の不特定話者統計モデルと、男声用の不特定話者統計モデルの、それぞれの学習を行った。女声用の不特定話者統計モデルのための学習用データとしては、女性話者8名の37,226個の発話から抽出したアクセント句289,197個を用いた。男声用の不特定話者統計モデルのための学習用データとしては、男性話者9名の39,065個の発話から抽出したアクセント句196,956個を用いた。
【0122】
また、学習済みの、女声用の不特定話者統計モデルおよび男声用の不特定話者統計モデルのそれぞれを用いて、ラベル推定の評価を行った。評価用のデータとしては、モデルの訓練用には使用していないデータを用いた。その結果、推定されたアクセントのラベルの精度は、次の通りであった。即ち、女声用の不特定話者統計モデルの精度は、98.98%であった。男声用の不特定話者統計モデルの精度は、99.28%であった。このように、本実施形態により、高い精度でアクセントのラベルを推定することができた。
【産業上の利用可能性】
【0123】
本発明は、例えば、与えられたアクセント句に対して正確なアクセントのラベルを推定するために利用することができる。さらに本発明は、例えば、音声合成に利用することができる。但し、本発明の利用範囲はここに例示したものには限られない。
【符号の説明】
【0124】
1,2 アクセント推定装置(信号処理装置)
3 アクセント推定モデル学習装置(信号処理装置)
11 モデル記憶部
21 推定用音声コーパス記憶部
22 前処理部
23 ラベル推定部
31 学習用音声コーパス記憶部
32 前処理部
33 モデル学習部
351 音響分析部(学習用音響分析部)
352 音素セグメンテーション部
353 中心音素抽出部
354 言語解析部(学習用言語解析部)
361 モーラ単位統合部
362 アクセント句単位統合部
371 アクセント句分割部
381 第1言語特徴量抽出部
382 第2言語特徴量抽出部
386 第1正解ラベル抽出部(正解ラベル抽出部)
387 第2正解ラベル抽出部(正解ラベル抽出部)
391 音響特徴量言語特徴量統合部
901 中央処理装置
902 RAM
903 入出力ポート
904,905 入出力デバイス
906 バス