IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本放送協会の特許一覧 ▶ 一般財団法人NHKエンジニアリングシステムの特許一覧

<>
  • 特開-音声認識装置およびプログラム 図1
  • 特開-音声認識装置およびプログラム 図2
  • 特開-音声認識装置およびプログラム 図3
  • 特開-音声認識装置およびプログラム 図4
  • 特開-音声認識装置およびプログラム 図5
  • 特開-音声認識装置およびプログラム 図6
  • 特開-音声認識装置およびプログラム 図7
  • 特開-音声認識装置およびプログラム 図8
  • 特開-音声認識装置およびプログラム 図9
  • 特開-音声認識装置およびプログラム 図10
  • 特開-音声認識装置およびプログラム 図11
  • 特開-音声認識装置およびプログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024027914
(43)【公開日】2024-03-01
(54)【発明の名称】音声認識装置およびプログラム
(51)【国際特許分類】
   G10L 15/16 20060101AFI20240222BHJP
【FI】
G10L15/16
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022131105
(22)【出願日】2022-08-19
(71)【出願人】
【識別番号】000004352
【氏名又は名称】日本放送協会
(71)【出願人】
【識別番号】591053926
【氏名又は名称】一般財団法人NHKエンジニアリングシステム
(74)【代理人】
【識別番号】100141139
【弁理士】
【氏名又は名称】及川 周
(74)【代理人】
【識別番号】100171446
【弁理士】
【氏名又は名称】高田 尚幸
(74)【代理人】
【識別番号】100114937
【弁理士】
【氏名又は名称】松本 裕幸
(74)【代理人】
【識別番号】100171930
【弁理士】
【氏名又は名称】木下 郁一郎
(72)【発明者】
【氏名】佐藤 裕明
(72)【発明者】
【氏名】河合 吉彦
(72)【発明者】
【氏名】望月 貴裕
(72)【発明者】
【氏名】三島 剛
(57)【要約】
【課題】対象の話題(領域)のテキストのみを用いて音声認識モデルに学習させ、推論時に話題(領域)に適した記号列を出力させることのできる音声認識装置を提供する。
【解決手段】音声認識装置は、音響特徴量のフレームの列を入力し前記音響特徴量のフレームに対応する記号の列として成る出力記号列を出力するように、複数階層で成るモデルを有し、前記モデルのそれぞれの階層が学習可能となるように構成されたエンコーダー部と、記号列を入力し、前記エンコーダー部の前記モデルの最終層または中間層に入力するための潜在特徴量を出力する潜在特徴量生成部と、を備える。前記エンコーダー部は、目標領域の記号列に基づいて前記潜在特徴量生成部が出力する前記潜在特徴量を目標領域への適応化を行うことを可能として構成される。
【選択図】図10
【特許請求の範囲】
【請求項1】
音響特徴量のフレームの列を入力し前記音響特徴量のフレームに対応する記号の列として成る出力記号列を出力するように、複数階層で成るモデルを有し、前記モデルのそれぞれの階層が学習可能となるように構成されたエンコーダー部と、
記号列を入力し、前記エンコーダー部の前記モデルの最終層または中間層に入力するための潜在特徴量を出力する潜在特徴量生成部と、
を備え、
前記エンコーダー部の前記複数階層のモデルにおけるある階層のモデルから次の階層のモデルへは中間特徴量が渡されるものであり、
前記エンコーダー部は、所定領域の前記音響特徴量のフレーム列と前記出力記号列との関係に基づく機械学習をした後に、前記所定領域とは異なる目標領域の記号列に基づいて前記潜在特徴量生成部が出力する前記潜在特徴量を前記エンコーダー部の前記モデルの最終層または中間層に入力して前記最終層のモデルから得られる出力記号列と、正解の当該目標領域の記号列と、の関係に基づく損失である第1損失を用いて前記潜在特徴量を入力した階層よりも後の階層の前記目標領域への適応化を行うことを可能として構成され、
前記潜在特徴量生成部は、
記号列に基づいて、前記記号列に含まれる各記号の時間方向の長さである発話長を予測する発話長予測部と、
前記発話長予測部によって予測された前記発話長に基づいて、前記記号に対応する前記潜在特徴量の時間方向の長さを調節する発話長調整部と、
を備えることによって、前記発話長調整部によって時間方向の長さが調節された前記潜在特徴量を出力する、
音声認識装置。
【請求項2】
前記潜在特徴量生成部は、所定の音響特徴量に基づいて前記エンコーダー部の中間層である第K1層から出力される第1潜在特徴量に基づいて前記潜在特徴量生成部が生成する潜在特徴量と、当該音響特徴量に基づく前記エンコーダー部の中間層である第K2層(ただし、第K2層は前記第K1層よりも後段)から出力される第2潜在特徴量と、の差である第2損失を用いて学習可能となるように構成された、
請求項1に記載の音声認識装置。
【請求項3】
前記潜在特徴量生成部が備える前記発話長予測部は、前記第1潜在特徴量に基づいて前記発話長予測部が予測した発話長と、前記第1潜在特徴量に対応する正解の発話長と、の差である第3損失に基づいて学習可能となるように構成された、
請求項2に記載の音声認識装置。
【請求項4】
前記潜在特徴量生成部は、前記潜在特徴量生成部の学習時、あるいは前記目標領域の記号列に基づいて前記エンコーダー部のモデルの前記目標領域への適応化を行う時、の少なくともいずれかにおいて、前記発話長予測部によって予測された前記発話長に複数の係数値をそれぞれ掛けることによって、前記目標領域に属する1つの前記記号列から、複数通りの時間方向の長さに基づく前記潜在特徴量を出力する、
請求項2または3に記載の音声認識装置。
【請求項5】
前記目標領域の記号列に基づいて前記エンコーダー部の前記目標領域への適応化を行う際に、前記第1損失とともに、前記所定領域の前記音響特徴量のフレーム列に基づいて前記エンコーダー部が出力する出力記号列と当該音響特徴量のフレーム列に対応する正解の記号列との差である第4損失にも基づいて前記エンコーダー部を最適化する、
請求項1に記載の音声認識装置。
【請求項6】
音響特徴量のフレームの列を入力し前記音響特徴量のフレームに対応する記号の列として成る出力記号列を出力するように、複数階層で成るモデルを有し、前記モデルのそれぞれの階層が学習可能となるように構成されたエンコーダー部と、
記号列を入力し、前記エンコーダー部の前記モデルの最終層または中間層に入力するための潜在特徴量を出力する潜在特徴量生成部と、
を備え、
前記エンコーダー部の前記複数階層のモデルにおけるある階層のモデルから次の階層のモデルへは中間特徴量が渡されるものであり、
前記エンコーダー部は、所定領域の前記音響特徴量のフレーム列と前記出力記号列との関係に基づく機械学習をした後に、前記所定領域とは異なる目標領域の記号列に基づいて前記潜在特徴量生成部が出力する前記潜在特徴量を前記エンコーダー部の前記モデルの最終層または中間層に入力して前記最終層のモデルから得られる出力記号列と、正解の当該目標領域の記号列と、の関係に基づく損失である第1損失を用いて前記潜在特徴量を入力した階層よりも後の階層の前記目標領域への適応化を行うことを可能として構成され、
前記潜在特徴量生成部は、
記号列に基づいて、前記記号列に含まれる各記号の時間方向の長さである発話長を予測する発話長予測部と、
前記発話長予測部によって予測された前記発話長に基づいて、前記記号に対応する前記潜在特徴量の時間方向の長さを調節する発話長調整部と、
を備えることによって、前記発話長調整部によって時間方向の長さが調節された前記潜在特徴量を出力する、
音声認識装置、としてコンピューターを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音声認識装置およびプログラムに関する。
【背景技術】
【0002】
音声認識処理のために用いる手法の一つとして、CTC音声認識モデルがある。CTCは、「Connectionist Temporal Classification」(コネクショニスト時間分類)の略である。CTC音声認識モデルは、発音記号等を介さずに、音声と文字列との関係を直接学習するように構成したモデルである。つまり、CTC音声認識モデルは、end-to-end音声認識モデルの手法の一つである。CTC音声認識モデルは、出力記号列に空白文字列<blank>を挿入することと、出力記号列に同一の記号が連続して出現することを許す。これにより、CTC音声認識モデルは、特徴量フレームと出力記号列とを対応させる。
【0003】
非特許文献1には、Intermediate Loss Regularization(中間損失正則化)の手法が記載されている。Intermediate Loss Regularizationは、CTC音声認識モデルの中間層にCTC損失関数を算出する手段を設け、複数の層のCTC損失関数の値を重み付けして加算することで学習する手法である。
【0004】
非特許文献2には、Shallow Fusion(シャローフュージョン)の手法が記載されている。Shallow Fusionは、テキストデータのみで学習した言語モデルを音声認識に活用する手法の一つである。Shallow Fusionの手法では、推論時に音声認識モデルと言語モデルの推論確率を対数領域で線形補間することによって、認識結果を出力する。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Jaesong Lee, Shinji Watanabe, “Intermediate Loss Regularization for CTC-based Speech Recognition,” In Proc. 2021 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), pp. 6224-6228, 2021年.
【非特許文献2】Caglar Gulcehre, Orhan Firat, Kelvin Xu, Kyunghyun Cho, Loic Barrault, Huei-Chi Lin, Fethi Bougares, Holger Schwenk, Yoshua Bengio, “On Using Monolingual Corpora in Neural Machine Translation,” in arXiv:1503.03535v2, 2015年.
【発明の概要】
【発明が解決しようとする課題】
【0006】
例えば日本語では、「橋」(はし)と「端」(はし)のように、異なる記号列であるがその発音が同一または類似となる表現が存在する。CTC音声認識モデルは、出力記号(文字)間の確率が独立であると仮定するモデルである。言い換えれば、出力記号の確率は、隣接する他の記号または近傍の他の記号の確率に依存しない。このため、CTC音声認識モデルは、複数の出力記号列の候補が存在する発音に対して、学習結果として得られた発音と記号列との対応に従って、記号列を出力する。このようなCTC音声認識モデルに、学習時に使用したテキストの話題と異なる話題の音声を認識させると、学習時のテキストに基づいた記号列を出現してしまう傾向がある。例えば、CTC音声認識モデルは、認識対象の音声が天気の話題に関するものであって認識結果として「最低気温」と出力すべき箇所において、「最適音」と出力してしまうことが起こり得る。つまり、CTC音声認識モデルは、推論するテキストの話題に適さない記号列を出力し、認識誤りを引き起こすという問題がある。
【0007】
目的とする話題の音声とテキスト(音声認識結果の正解)との対のデータが入手できれば、そのデータを用いて事前にCTC音声認識モデルの学習を行うこともできるが、そのような音声のデータが事前に入手できるとは限らない。また、そのようなデータの入手が可能であっても、音声に対するアノテーションの作業にはコストがかかる。つまり、従来技術におけるCTC音声認識モデルの出力記号列を所望の話題に適応させることは、不可能または困難である。
【0008】
本発明は、上記の課題認識に基づいて行なわれたものであり、推論対象の話題(領域)について音声とテキストとの対のデータが入手できない場合であっても、テキストのみが入手できれば、そのテキストのデータのみを用いて音声認識モデルに学習させ、推論時に話題(領域)に適した記号列を出力させることのできる音声認識装置およびプログラムを提供しようとするものである。
【課題を解決するための手段】
【0009】
[1]上記の課題を解決するため、本発明の一態様による音声認識装置は、音響特徴量のフレームの列を入力し前記音響特徴量のフレームに対応する記号の列として成る出力記号列を出力するように、複数階層で成るモデルを有し、前記モデルのそれぞれの階層が学習可能となるように構成されたエンコーダー部と、記号列を入力し、前記エンコーダー部の前記モデルの最終層または中間層に入力するための潜在特徴量を出力する潜在特徴量生成部と、を備え、前記エンコーダー部の前記複数階層のモデルにおけるある階層のモデルから次の階層のモデルへは中間特徴量が渡されるものであり、前記エンコーダー部は、所定領域の前記音響特徴量のフレーム列と前記出力記号列との関係に基づく機械学習をした後に、前記所定領域とは異なる目標領域の記号列に基づいて前記潜在特徴量生成部が出力する前記潜在特徴量を前記エンコーダー部の前記モデルの最終層または中間層に入力して前記最終層のモデルから得られる出力記号列と、正解の当該目標領域の記号列と、の関係に基づく損失である第1損失を用いて前記潜在特徴量を入力した階層よりも後の階層の前記目標領域への適応化を行うことを可能として構成され、前記潜在特徴量生成部は、記号列に基づいて、前記記号列に含まれる各記号の時間方向の長さである発話長を予測する発話長予測部と、前記発話長予測部によって予測された前記発話長に基づいて、前記記号に対応する前記潜在特徴量の時間方向の長さを調節する発話長調整部と、を備えることによって、前記発話長調整部によって時間方向の長さが調節された前記潜在特徴量を出力する、というものである。
【0010】
なお、上記の「第1損失」の例は、第2実施形態におけるCTC損失計算部1060が式(66)によって算出するLh,iや、式(69)によって算出するLt,iである。
【0011】
なお、「学習可能となるように構成された」という構成は、例えば、機械学習の手法を適用することによって実現される。つまり、演算を行うためのモデルが複数(例えば、多数)の内部パラメーターを持ち、所望の結果が得られるようにその内部パラメーターの値を調整することができるようにする。内部パラメーターの調整は、学習用データ等を用いた機械学習過程において行われる。内部パラメーターの調整の手法としては、既存技術を用いることができる。機械学習可能なモデルの一形態として、ニューラルネットワークを用いてよい。ニューラルネットワークの内部パラメーターを調整するためには、例えば、誤差逆伝播法を用いることができる。なお、以下に記す構成においても同様である。
【0012】
[2]本発明の一態様は、上記[1]の音声認識装置において、前記潜在特徴量生成部は、所定の音響特徴量に基づいて前記エンコーダー部の中間層である第K1層から出力される第1潜在特徴量に基づいて前記潜在特徴量生成部が生成する潜在特徴量と、当該音響特徴量に基づく前記エンコーダー部の中間層である第K2層(ただし、第K2層は前記第K1層よりも後段)から出力される第2潜在特徴量と、の差である第2損失を用いて学習可能となるように構成されたものである。
【0013】
なお、上記の「第2損失」の例は、第2実施形態における損失計算部1260が式(58)によって算出するLlatentである。
【0014】
[3]本発明の一態様は、上記[2]の音声認識装置において、前記潜在特徴量生成部が備える前記発話長予測部は、前記第1潜在特徴量に基づいて前記発話長予測部が予測した発話長と、前記第1潜在特徴量に対応する正解の発話長と、の差である第3損失に基づいて学習可能となるように構成されたものである。
【0015】
なお、上記の「第3損失」の例は、第2実施形態における損失計算部1360が式(59)によって算出するLdurationである。
【0016】
[4]本発明の一態様は、上記[2]または[3]の音声認識装置において、前記潜在特徴量生成部は、前記潜在特徴量生成部の学習時、あるいは前記目標領域の記号列に基づいて前記エンコーダー部のモデルの前記目標領域への適応化を行う時、の少なくともいずれかにおいて、前記発話長予測部によって予測された前記発話長に複数の係数値をそれぞれ掛けることによって、前記目標領域に属する1つの前記記号列から、複数通りの時間方向の長さに基づく前記潜在特徴量を出力するものである。
【0017】
[5]本発明の一態様は、上記[1]から[4]までのいずれかの音声認識装置において、前記目標領域の記号列に基づいて前記エンコーダー部の前記目標領域への適応化を行う際に、前記第1損失とともに、前記所定領域の前記音響特徴量のフレーム列に基づいて前記エンコーダー部が出力する出力記号列と当該音響特徴量のフレーム列に対応する正解の記号列との差である第4損失にも基づいて前記エンコーダー部を最適化するものである。
【0018】
なお、上記の「第4損失」の例は、第2実施形態におけるCTC損失計算部1060が式(73)によって算出するLs,jである。
【0019】
[6]本発明の一態様は、上記の音声認識装置において、音響特徴量のフレームの列を入力し前記音響特徴量のフレームに対応する記号の列として成る出力記号列を出力するように、複数階層で成るモデルを有し、前記モデルのそれぞれの階層が学習可能となるように構成されたエンコーダー部と、記号列を入力し、前記エンコーダー部の前記モデルの最終層または中間層に入力するための潜在特徴量を出力する潜在特徴量生成部と、を備え、前記エンコーダー部の前記複数階層のモデルにおけるある階層のモデルから次の階層のモデルへは中間特徴量が渡されるものであり、前記エンコーダー部は、所定領域の前記音響特徴量のフレーム列と前記出力記号列との関係に基づく機械学習をした後に、前記所定領域とは異なる目標領域の記号列に基づいて前記潜在特徴量生成部が出力する前記潜在特徴量を前記エンコーダー部の前記モデルの最終層または中間層に入力して前記最終層のモデルから得られる出力記号列と、正解の当該目標領域の記号列と、の関係に基づく損失である第1損失を用いて前記潜在特徴量を入力した階層よりも後の階層の前記目標領域への適応化を行うことを可能として構成され、前記潜在特徴量生成部は、記号列に基づいて、前記記号列に含まれる各記号の時間方向の長さである発話長を予測する発話長予測部と、前記発話長予測部によって予測された前記発話長に基づいて、前記記号に対応する前記潜在特徴量の時間方向の長さを調節する発話長調整部と、を備えることによって、前記発話長調整部によって時間方向の長さが調節された前記潜在特徴量を出力する、音声認識装置、としてコンピューターを機能させるためのプログラムである。
【0020】
[参考態様1]参考態様による音声認識装置は、音響特徴量のフレームの列を入力し前記音響特徴量のフレームに対応する記号の列として成る出力記号列を出力するように、複数階層で成るモデルを有し、前記複数階層のモデルのそれぞれが機械学習可能に構成されたエンコーダー部と、目的とする領域に属する記号列を入力し、前記エンコーダー部の最終層のモデルに入力するための特徴量を出力するアダプター部と、を備え、前記エンコーダー部の前記複数階層のモデルにおけるある階層のモデルから次の階層のモデルへは中間特徴量が渡されるものであり、前記エンコーダー部は、前記音響特徴量のフレーム列と前記出力記号列との関係に基づく機械学習をした後に、前記アダプター部が出力する前記特徴量を前記エンコーダー部の前記最終層のモデルに入力して前記最終層のモデルからの出力に基づく損失である第1損失を用いて前記最終層のモデルの前記目的とする領域への適応化を行うことを可能として構成された、ものである。
【0021】
[参考態様2]また、参考態様の一つは、上記の参考態様のいずれかの音声認識装置において、前記目的とする領域に属するテキストを基に、前記テキスト内の文字の繰り返し、または前記テキスト内の文字と文字との間への0個以上のブランク記号の挿入、の少なくともいずれかを行うことによって、前記アダプター部に入力するための前記記号列を生成する擬似記号列生成部、をさらに備える。
【0022】
[参考態様3]また、参考態様の一つは、上記の参考態様のいずれかの音声認識装置において、所定の統計データを基に得られた出力文字確率分布にしたがって、前記目的とする領域に属するテキストに含まれる文字を別の文字で置換する処理を行う置換処理部、をさらに備え、前記擬似記号列生成部は、前記置換処理部が出力する置換処理後の前記目的とする領域に属するテキストを基に、前記記号列を生成する、ものである。
【0023】
[参考態様4]また、参考態様の一つは、上記の参考態様のいずれかの音声認識装置において、前記擬似記号列生成部は、前記テキスト内の文字を繰り返す際の同一文字の繰り返し回数を、前記音響特徴量のフレーム列と前記出力記号列との関係に基づいて学習済みの前記エンコーダー部における所定の階層の前記モデルから出力される特徴量に基づいて算出される記号列である中間記号列における同一文字の繰り返し回数に関する統計に基づいて決定し、前記テキスト内の文字と文字との間に挿入するブランク記号の連続する個数を、前記中間記号列における前記ブランク記号の連続する個数に関する統計に基づいて決定する、ものである。
【0024】
[参考態様5]また、参考態様の一つは、上記の参考態様のいずれかの音声認識装置において、前記アダプター部を学習するために前記アダプター部への入力となる記号列を、前記音響特徴量に基づいて前記エンコーダー部の所定の層のモデルから出力された前記中間特徴量に基づいて生成する記号列生成部と、前記記号列生成部によって生成された前記記号列に基づいて前記アダプター部が出力する特徴量についての損失である第2損失を算出するアダプター部用損失計算部と、をさらに備え、前記アダプター部用損失計算部が算出した前記第2損失を用いて前記アダプター部の機械学習を行えるように構成した、ものである。
【0025】
[参考態様6]また、参考態様の一つは、上記の参考態様のいずれかの音声認識装置において、前記アダプター部用損失計算部は、前記アダプター部から出力される特徴量を前提としたときの正解の出力記号列の尤度に基づく損失と、前記アダプター部から出力される特徴量と前記エンコーダー部において対応する階層のモデルからの出力である特徴量との差を表す損失と、に基づく前記第2損失を算出する、ものである。
【0026】
[参考態様7]また、参考態様の一つは、上記の参考態様のいずれかの音声認識装置において、前記出力記号列の中で繰り返されている文字を集約するとともに、前記出力記号列に含まれる前記ブランク記号を削除することによって得られる文字列を音声認識結果として出力する、ものである。
【0027】
[参考態様8]また、参考態様の一つは、上記の参考態様のいずれかの音声認識装置において、前記エンコーダー部は、前記第1損失を用いて前記最終層のモデルの前記目的とする領域への適応化を行う際に、前記音響特徴量のフレーム列に基づいて前記エンコーダー部が有する前記複数階層で成るモデルが出力した記号列と、前記音響特徴量のフレーム列に対応する正解の前記出力記号列と、から得られる第3損失にも基づいた適応化を行う、というものである。なお、本態様は、後述する第2再学習手法を用いるものである。本態様によると、前記目的とする領域(ターゲットドメインと呼ぶ)への適応化を行いながら、エンコーダー部の元の学習を行った領域(ソースドメインと呼ぶ)での認識性能の劣化を防ぐ、あるいは少なくとも抑制することが可能である。
【0028】
[参考態様9]また、参考態様の一つは、音響特徴量のフレームの列を入力し前記音響特徴量のフレームに対応する記号の列として成る出力記号列を出力するように、複数階層で成るモデルを有し、前記複数階層のモデルのそれぞれが機械学習可能に構成されたエンコーダー部と、目的とする領域に属する記号列を入力し、前記エンコーダー部の最終層のモデルに入力するための特徴量を出力するアダプター部と、を備え、前記エンコーダー部の前記複数階層のモデルにおけるある階層のモデルから次の階層のモデルへは中間特徴量が渡されるものであり、前記エンコーダー部は、前記音響特徴量のフレーム列と前記出力記号列との関係に基づく機械学習をした後に、前記アダプター部が出力する前記特徴量を前記エンコーダー部の前記最終層のモデルに入力して前記最終層のモデルからの出力に基づく損失である第1損失を用いて前記最終層のモデルの前記目的とする領域への適応化を行うことを可能として構成された、音声認識装置、としてコンピューターを機能させるためのプログラムである。
【発明の効果】
【0029】
本発明によれば、目的領域のテキストデータのみを用いて、音声認識モデルのドメイン適応を行うことが可能となる。
【図面の簡単な説明】
【0030】
図1】本発明の第1実施形態による音声認識装置の概略機能構成を示したブロック図である。
図2】第1実施形態による音声認識装置が持つ音声認識機能の主要部の機能構成を示すブロック図である。
図3】第1実施形態による音声認識装置が持つ、アダプター部の学習を行うための機能構成を示すブロック図である。
図4】第1実施形態による音声認識装置が、第1再学習手法を用いてEncoder(第3層エンコーダー部)の再学習を行うための機能の構成を示すブロック図である。
図5】第1実施形態による音声認識装置が、第2再学習手法を用いてEncoder(第3層エンコーダー部)の再学習を行うための機能の構成を示すブロック図である。
図6】第1実施形態における、文字列を基にして擬似的なCTC記号列への変換の処理の手順を示すフローチャート(1/2)である。
図7】第1実施形態における、文字列を基にして擬似的なCTC記号列への変換の処理の手順を示すフローチャート(2/2)である。
図8】第1実施形態による音声認識装置の内部構成の例を示すブロック図である。
図9】第1実施形態の音声認識装置における、変形例5による置換処理のための部分の機能構成を示すブロック図である。
図10】第2実施形態による音声認識装置の概略機能構成を示すブロック図である。
図11】第2実施形態における潜在ベクトル生成部の内部のさらに詳細な機能構成を示すブロック図である。
図12】第2実施形態における潜在ベクトル生成部で用いる手法の基礎となっているFastspeechの機能構成を説明するための概略図である。
【発明を実施するための形態】
【0031】
次に、本発明の複数の実施形態について、図面を参照しながら説明する。
【0032】
[第1実施形態]
以下では、本実施形態が前提とする技術事項を最初に説明した後で、本実施形態に特有の構成を順次説明する。
【0033】
発音記号等を介さずに音声と文字列との関係を直接学習させるEnd-to-end音声認識モデルは、長さTのログメルペクトログラムのような入力音響特徴量系列を、長さLの出力記号列(文字列)に変換するモデルである。この入力音響特徴量系列xは、下の式(1)で表わされる。また、出力記号列yは、下の式(2)で表わされる。
【0034】
【数1】
【0035】
【数2】
【0036】
上の式(1)におけるDは、1フレーム分の音響特徴量x[t]の次元数である。上の式(2)におけるVは、出力記号の集合(ボキャブラリー)である。
【0037】
従来技術に属する手法であるShallow Fusion(非特許文献2)は、推論時に、音声認識モデルの推論確率と言語モデルの推論確率とを対数領域で線形補間する。Shallow Fusionの手法による認識結果y(ハット)は、下の式(3)で表わされる。
【0038】
【数3】
【0039】
式(3)におけるPAM(y|x)は、音声認識モデルの出力記号列の推論確率(入力音響特徴量系列xを前提としたときの出力記号列yの確率)である。また、PLM(y)は、言語モデルの出力記号列の推論確率(出力記号列yの確率)である。この言語モデルPLM(y)は、テキストデータのみを用いて学習し得るものである。一方、音声認識モデルPAM(y|x)は、音声とテキストとの対のデータを用いて学習するものである。
【0040】
本実施形態の特徴は、テキストデータのみを用いて、言語モデルPLM(y)ではなく、音声認識モデルPAM(y|x)を学習するための構成を有することである。つまり、本実施形態の音声認識装置は、学習用のテキストデータが持つ話題に音声認識モデルを適応化するものである。
【0041】
次に、CTC音声認識モデルの概要を説明する。CTC音声認識モデル自体は、既存技術に属する手法である。CTC音声認識モデルは、入力される特徴量1フレームごとに1記号を出力する。特徴量のフレーム長と出力記号間の系列長との差は、ブランク記号<blank>を挿入し得ることと、出力記号(文字)を連続させ得ることとで吸収される。一例として、4フレームの音響特徴に対して「天気」という記号列を対応させる場合のアラインメントは、以下の17通りである。なお、ここでは、ブランク記号<blank>を「_」に置き換えて表記している。また、記号と記号との間の区切りを、スラッシュで表わしている。
01: _/_/天/気
02: _/天/_/気
03: _/天/気/_
04: 天/_/_/気
05: 天/_/気/_
06: 天/気/_/_
07: _/天/天/気
08: 天/_/天/気
09: 天/天/_/気
10: 天/天/気/_
11: _/天/気/気
12: 天/_/気/気
13: 天/気/_/気
14: 天/気/気/_
15: 天/気/気/気
16: 天/天/気/気
17: 天/天/天/気
【0042】
CTC音声認識モデルが推論結果として出力した記号列は、ブランク記号<blank>を消去するとともに、連続した同一の記号を1文字に圧縮することによって、認識結果に変換され得る。つまり、上記の17通りのアラインメントのそれぞれは、「天気」という認識結果に変換される。ただし、正解とする文字が例えば「いい天気」における「いい」のように、正解の認識結果において同一の文字が連続する場合のアラインメントは、これらの「い」と「い」の間に必ずブランク記号<blank>が挿入されなければならない。
【0043】
CTC音声認識モデルの学習については、次の通りである。CTC音声認識モデルを用いた認識処理では、ニューラルネットワークから抽出された特徴量フレーム列hに対して、出力記号列のアラインメントaの確率を計算する。ここで、特徴量フレーム列hは、下の式(4)で表わされる。また、アラインメントaは、下の式(5)で表わされる。なお、式(4)および式(5)におけるTは、系列の長さである。
【0044】
【数4】
【0045】
【数5】
【0046】
入力される特徴量フレーム列hを前提とした出力記号列のアラインメントaは、下の式(6)で表わされる。
【0047】
【数6】
【0048】
出力記号列yの、あり得るすべてのアライメントにおける確率の総和は、下の式(7)で求められる。
【0049】
【数7】
【0050】
式(7)におけるβ-1(y)は、出力記号列yと特徴量列hに対してとり得るすべてのアラインメントの集合である。CTC損失関数Lは、上記のP(y|h)の対数をとり、下の式(8)で計算される。
【0051】
【数8】
【0052】
CTC音声認識モデルの学習は、上記の損失関数値Lを最小化するようにニューラルネットワークの内部パラメーターの値を更新することによって行われる。
【0053】
本実施形態の音声認識装置が持つ機能のそれぞれは、例えば、コンピューターと、プログラムとで実現することが可能である。また、それらの機能の各々は、必要に応じて、記憶手段を有する。記憶手段は、例えば、プログラム上の変数や、プログラムの実行によりアロケーションされるメモリーである。また、必要に応じて、磁気ハードディスク装置やソリッドステートドライブ(SSD)といった不揮発性の記憶手段を用いるようにしてもよい。また、各機能部の少なくとも一部の機能を、プログラムではなく専用の電子回路として実現してもよい。
【0054】
本実施形態の音声認識装置1は、Intermediate CTC(非特許文献1)を前提として構成される。本実施形態での音声認識モデルの概要は、次の通りである。本実施形態の音声認識モデルは、Githubで提供されるオープンソースEspnet(https://github.com/espnet/espnet)をベースとして改良を加えたものである。Intermediate CTCでは、ニューラルネットワークの中間の層でもCTC損失関数の値を計算し、層ごとの重み付けを行った和を最終的な損失関数として、モデルの学習を行う。
【0055】
図1は、本実施形態による音声認識装置1の概略機能構成を示すブロック図である。図示するように、音声認識装置1は、音声供給部10と、畳み込みニューラルネットワーク部20と、第1層エンコーダー部30(Encoder・30)と、第2層エンコーダー部40(Encoder・40)と、第3層エンコーダー部50(Encoder・50)と、目的領域テキスト供給部110と、擬似CTC記号列生成部120と、アダプター部130と、CTC記号列生成部210と、平均二乗誤差損失計算部220と、CTC損失計算部230とを含んで構成される。
【0056】
音声供給部10は、音声認識装置1による認識処理の対象となる音声のデータを供給する。音声供給部10は、音声のデータを、畳み込みニューラルネットワーク部20に渡す。音声供給部10は、音声のデータとして、例えばベクトルで表わされる音響特徴量の列を供給する。
【0057】
畳み込みニューラルネットワーク部20は、音声供給部10から渡される音声データの畳み込み処理を行う。畳み込みニューラルネットワーク部20は、畳み込み処理の結果として得られる特徴量(後述するh)を、第1層エンコーダー部30に渡す。
【0058】
第1層エンコーダー部30と、第2層エンコーダー部40と、第3層エンコーダー部50とは、3層構成のエンコーダーである。第1層エンコーダー部30と、第2層エンコーダー部40と、第3層エンコーダー部50とのそれぞれは、セルフアテンションニューラルネットワークを用いて実現される。音声認識装置1は、第1層エンコーダー部30と、第2層エンコーダー部40と、第3層エンコーダー部50とのそれぞれの出力について、損失を計算する機能(CTC損失計算部)を有するが、本図ではその機能を省略している。損失を計算する機能については、図2で説明する。
【0059】
複数の階層のモデルで構成される第1層エンコーダー部30と、第2層エンコーダー部40と、第3層エンコーダー部50とを、あわせて「エンコーダー部」と呼んでもよい。エンコーダー部は、音響特徴量のフレームの列を入力し前記音響特徴量のフレームに対応する記号の列として成る出力記号列を出力するように、複数階層で成るモデルを有し、前記複数階層のモデルのそれぞれが機械学習可能に構成されたものである。エンコーダー部の複数階層のモデルにおけるある階層のモデルから次の階層のモデルへは中間特徴量(後述するhやh)が渡される。なお、このエンコーダー部は、前記音響特徴量のフレーム列と前記出力記号列との関係に基づく機械学習をした後に、前記アダプター部が出力する前記特徴量を前記エンコーダー部の前記最終層のモデル(第3層エンコーダー部50)に入力して前記最終層のモデル(第3層エンコーダー部50)からの出力に基づく損失である第1損失を用いて前記最終層のモデル(第3層エンコーダー部50)の前記目的とする領域への適応化を行うことを可能として構成されている。
【0060】
第1層エンコーダー部30は、Encoder・30とも呼ばれ、畳み込みニューラルネットワーク部20から受け取る特徴量hを基に、特徴量hを算出し、第2層エンコーダー部40に渡す。第2層エンコーダー部40は、Encoder・40とも呼ばれ、第1層エンコーダー部30から受け取る特徴量hを基に、特徴量hを算出し、第3層エンコーダー部50に渡す。第3層エンコーダー部50は、Encoder・50とも呼ばれ、第2層エンコーダー部40から受け取る特徴量hを基に、特徴量hを算出し、出力する。
【0061】
なお、特徴量h、h、h、hのそれぞれは、ベクトルの系列である。
【0062】
目的領域テキスト供給部110は、Encoder・50の適応化を行うためのテキストデータを供給する。「目的領域」は、「目標領域」あるいは「ターゲットドメイン」等とも呼ばれる。目的領域テキスト供給部110は、推論時にEncoder・50が目的とする領域(ドメイン)に合ったテキストを出力するように、当該領域のテキストを供給する。目的領域テキスト供給部110は、目的領域のテキストを擬似CTC記号列生成部120に渡す。
【0063】
擬似CTC記号列生成部120は、目的領域テキスト供給部110から渡されるテキスト文字列を基に、擬似的なCTC記号列を生成する。擬似CTC記号列生成部120は、単に「擬似記号列生成部」とも呼ばれる。擬似的なCTC記号列の生成の方法については、後でフローチャート等を参照しながら詳細に説明する。1つのテキスト文字列に対して、複数のCTC記号列が対応し得る。つまり、擬似CTC記号列生成部120は、1つのテキスト文字列に対応して、複数の擬似的なCTC記号列を出力する。言い換えれば、擬似CTC記号列生成部120は、1つのテキスト文字列を、複数通りの擬似的CTC記号列に変換する。なお、擬似CTC記号列生成部120は、目的領域テキスト供給部110が供給するテキストデータに含まれるそれぞれのテキスト文字列に対応して、複数の擬似的CTC記号列を生成することができる。
【0064】
擬似CTC記号列生成部120は、目的とするドメインに属するテキストを基に、前記テキスト内の文字の繰り返し、または前記テキスト内の文字と文字との間への0個以上のブランク記号の挿入、の少なくともいずれかを行うことによって、アダプター部130に入力するための記号列を生成するものである。擬似CTC記号列生成部120は、前記テキスト内の文字を繰り返す際の同一文字の繰り返し回数を、前記音響特徴量のフレーム列と前記出力記号列との関係に基づいて学習済みの前記エンコーダー部における所定の階層の前記モデルから出力される特徴量に基づいて算出される記号列である中間記号列における同一文字の繰り返し回数に関する統計に基づいて決定してよい。また、擬似CTC記号列生成部120は、前記テキスト内の文字と文字との間に挿入するブランク記号の連続する個数を、前記中間記号列における前記ブランク記号の連続する個数に関する統計に基づいて決定してよい。
【0065】
アダプター部130は、Encoder・50の適応化を行う場合に、擬似CTC記号列生成部120から渡される擬似CTC記号列のそれぞれを、Encoder・50に入力するための特徴量に変換する。つまり、アダプター部130は、ターゲットとする領域に属する記号列(擬似CTC記号列)を入力し、その記号列に基づいて、前記エンコーダー部の最終層のモデル(Encoder・50)に入力するための特徴量を出力するものである。
【0066】
なお、アダプター部130は、セルフアテンションニューラルネットワークを用いて実現され、学習可能となるように構成されている。つまり、アダプター部130は、学習する。アダプター部130の学習を行う場合には、アダプター部130は、後述するCTC記号列生成部210から渡される記号列を基に、Encoder・40が出力する特徴量に近い特徴量を生成する。アダプター部130の学習により、アダプター部130が出力する特徴量は、Encoder・40が出力する特徴量に近づくことが期待される。アダプター部130の学習の際には、後述する平均二乗誤差損失計算部220とCTC損失計算部230とが計算する損失に基づいて、アダプター部130の内部のニューラルネットワークのパラメーターの調整が行われる。つまり、アダプター部130は、後述する「第2損失」を用いて機械学習を行えるように構成されている。
【0067】
CTC記号列生成部210は、アダプター部130の学習を行う際に、Encoder・30から出力される特徴量hを基に、アラインメントa(ハット)を求める。CTC記号列生成部210は、求めたa(ハット)をアダプター部130に渡す。つまり、CTC記号列生成部210は、アダプター部130を学習するためにアダプター部130への入力となる記号列を、音響特徴量に基づいてエンコーダー部の所定の層(Encoder・30)のモデルから出力された中間特徴量に基づいて生成する。CTC記号列生成部210は、単に「記号列生成部」とも呼ばれる。
【0068】
平均二乗誤差損失計算部220とCTC損失計算部230とは、アダプター部130の学習を行う際に、それぞれ、アダプター部130から出力される特徴量h(ハット)に関する損失を計算する。つまり、平均二乗誤差損失計算部220とCTC損失計算部230とのそれぞれは、アダプター部130の学習のための損失を計算するアダプター部用損失計算部の機能の一部である。平均二乗誤差損失計算部220およびCTC損失計算部230が算出する損失の詳細については、後で説明する。平均二乗誤差損失計算部220とCTC損失計算部230とが算出する損失は、アダプター部130の内部のニューラルネットワークのパラメーターの更新のために用いられる。
【0069】
[音声認識機能]
図2は、本実施形態による音声認識装置1が持つ音声認識機能の主要部の機能構成を示すブロック図である。図示するように、音声認識装置1は、畳み込みニューラルネットワーク部20と、Encoder・30と、CTC損失計算部32と、Encoder・40と、CTC損失計算部42と、Encoder・50と、CTC損失計算部52とを含んで構成される。
【0070】
図示する通り、音声認識モデルは、Convolution(畳み込みニューラルネットワーク部20)、Encoder・30(低レベルエンコーダー)、Encoder・40(中間レベルエンコーダー)、Encoder・50(高レベルエンコーダー)の4つのニューラルネットワークを持つように構成される。これら4つのニューラルネットワークのそれぞれは、複数の層で構成される。なお、Encoder・30と、Encoder・40と、Encoder・50とは、それぞれセルフアテンションネットワークである。この音声認識モデルは、Encoder・30、Encoder・40、Encoder・50の出力から、それぞれ、CTC損失関数値L、L、Lを算出する。なお、Convolutionの出力である特徴量hは、下の式(9)および式(10)の通りである。
【0071】
【数9】
【0072】
【数10】
【0073】
なお、式(9)において、Tは、特徴量の系列長である。また、Dは、hに含まれる個々のベクトルの次元数である。また、式(10)に示すように、hは、音響特徴量xを入力したときのConvolutionの出力である。
【0074】
Encoder・30からの出力h、Encoder・40からの出力h、およびEncoder・50からの出力hは、下の式(11)の通りであり、それぞれ、式(12)、式(13)、および式(14)で算出される。
【0075】
【数11】
【0076】
【数12】
【0077】
【数13】
【0078】
【数14】
【0079】
即ち、特徴量hは、特徴量hを入力としてEncoder・30が出力する量である。また、特徴量hは、特徴量hを入力としてEncoder・40が出力する量である。また、特徴量hは、特徴量hを入力としてEncoder・50が出力する量である。
【0080】
Encoder・30、Encoder・40、およびEncoder・50が出からの出力に対するそれぞれの損失関数値L、L、およびLは、それぞれ下の式(15)、式(16)、および式(17)によって算出される。CTC損失計算部32は、Encoder・30から出力される特徴量hを基に、損失Lを算出する。CTC損失計算部42は、Encoder・40から出力される特徴量hを基に、損失Lを算出する。CTC損失計算部52は、Encoder・50から出力される特徴量hを基に、損失Lを算出する。
【0081】
【数15】
【0082】
【数16】
【0083】
【数17】
【0084】
ベースモデルにおける目的関数は、例えば上記の損失関数値LとLとLとの平均として、下の式(18)で計算される。
【0085】
【数18】
【0086】
つまり、本実施形態が前提とするIntermediate CTCでは、式(18)によって算出されるLossを最小化するように、ニューラルネットワークの内部パラメーターを更新することによって学習を行う。
【0087】
次に、本実施形態の音声認識装置1において、目的とする話題のテキストデータを用いて、音声認識モデルを再学習するための構成について説明する。本実施形態では、テキスト文字列を疑似的にCTC記号列に変換し、その変換結果であるCTC記号列を、後述するニューラルネットワークAdapterで特徴量フレームに変換する。本実施形態では、この特徴量フレームを用いて前述のIntermediate CTC音声認識モデル(本実施形態が前提とするモデル)のEndocerを再学習することによって、目的とする話題にニューラルネットワークを適応させる。
【0088】
[Adapterの学習]
図3は、本実施形態による音声認識装置1が持つ、アダプター部130(単に「Adapter」とも呼ぶ)の学習を行うための構成を示すブロック図である。Adapterは、後述する音声認識モデルの再学習において、擬似CTC記号列を、Encoder・50に入力するための特徴量に変換する役割を果たす。図示するように、音声認識装置1は、畳み込みニューラルネットワーク部20と、Encoder・30と、Encoder・40と、Encoder・50と、アダプター部130と、CTC記号列生成部210と、平均二乗誤差損失計算部220と、CTC損失計算部230とを含んで構成される。
【0089】
図3に示す各部の機能については、既に説明した通りである。つまり、CTC記号列生成部210は、Encoder・30から出力される特徴量hに基づいて、アラインメントa(ハット)を生成する。アダプターは、アラインメントa(ハット)を入力し、特徴量の推定値h(ハット)を出力する。平均二乗誤差損失計算部220およびCTC損失計算部230がそれぞれ算出する損失に基づいて、アダプター部130の学習が行われる。学習により、アダプター部130は、Encoder・40が出力する特徴量hに近い特徴量を出力するようになることが期待される。
【0090】
ここで、ニューラルネットワークAdapterの学習の詳細について説明する。音声認識装置1は、学習済みのIntermediate CTC音声認識モデル(図3)に音響特徴量xを入力し、下の式(19)および式(20)によって特徴量hを算出する。
【0091】
【数19】
【0092】
【数20】
【0093】
このhの算出の過程は、既に式(10)、式(12)、および式(13)で説明した計算と同様である。また、特徴量hに対して最も尤度の高いアラインメントa(ハット)は、次の式(21)で算出される。
【0094】
【数21】
【0095】
音声認識装置1は、CTCアラインメント系列がEncoderの出力特徴量フレームhに近づくように、Adapterの学習を行う。つまり、音声認識装置1は、Adapterが持つニューラルネットワークの内部パラメーターを更新する。アラインメントa(ハット)をAdapterに入力したときの出力であるh(ハット)は、下の式(22)で求められる。
【0096】
【数22】
【0097】
音声認識装置1は、式(22)のh(ハット)をhに近づけるように、Adapterの学習を行う。具体的には、音声認識装置1は、下の式(23)で算出される損失関数値Lと、式(24)によって算出される損失関数値Lmseに基づいて、Adapterが持つニューラルネットワークの内部パラメーターを更新する。なお、CTC損失計算部230が、式(23)に基づいて、Adapterからの出力であるh(ハット)を前提としたときの正解の出力記号列であるyの尤度に基づく損失Lを算出する。また、平均二乗誤差損失計算部220が、式(24)に基づいて、Adapterからの出力であるh(ハット)とEncoder・40(Adapterに対応する階層のモデル)からの出力である特徴量との差を表す損失Lmseを算出する。
【0098】
【数23】
【0099】
【数24】
【0100】
式(24)に示す損失関数値Lmseは、平均二乗誤差損失である。音声認識装置1が、Adapterを学習する際の目的関数の一例は、下の式(25)によって計算されるものである。
【0101】
【数25】
【0102】
なお、式(25)において、αはハイパーパラメーターである。音声認識装置1は、式(25)で表わされる損失Lossを最小化するように、Adapterが持つニューラルネットワークの内部パラメーターを更新する。この損失Lossを便宜的に「第2損失」と呼ぶ場合がある。なお、音声認識装置1は、Adapter内の複数層のニューラルネットワークの最終層以外の層についてのパラメーターを更新するように、Adapterの学習を行う。なお、音声認識装置1は、Adapterの学習時には、学習済みのEncoder・40の最終層のパラメーターの値をそのままAdapterの最終層のパラメーターに流用する。このようにすることで、Encoder・40の出力が模擬できるように、Adapterの最終層以外の層のパラメーターが調整(更新)される。このようなAdapterの学習を行うことによって、Adapterは、CTC記号列をEncoderの出力特徴量フレームhに変換するモデルになることが期待される。
【0103】
[Encoder・50の再学習]
次に、Encoder・50の再学習について説明する。Encoder・50の再学習では、推論対象の音声の話題が含まれるテキスト文字列を学習データとして用いて、推論対象の話題の認識精度を向上させる。以下において、前述のIntermediate CTC音声認識モデルおよびAdapterを学習した音声の話題が属するドメインをソースドメインと呼び、推論対象の音声の話題が属するドメインをターゲットドメインと呼ぶ。Encoder・50の再学習を行うための手法として、以下に説明する、第1再学習手法および第2再学習手法のいずれかを用いるようにしてよい。本実施形態では、用途等に応じて、第1再学習手法あるいは第2再学習手法のいずれかを任意に選択することができる。
【0104】
[Encoder・50の再学習: 第1再学習手法]
図4は、本実施形態による音声認識装置1が、第1再学習手法を用いてEncoder・50の再学習を行うための機能の構成を示すブロック図である。第1再学習手法では、ターゲットドメインのテキストのみを用いたドメイン適応を行う。Encoder・50の再学習を行うのは、上述したAdapterの学習が完了していることが前提である。図示するように、音声認識装置1は、Encoder・50と、CTC損失計算部52と、擬似CTC記号列生成部120と、アダプター部130とを含んで構成される。なお、図4には、畳み込みニューラルネットワーク部20と、Encoder・30と、Encoder・40も記載している。
【0105】
なお、図示する通り、擬似CTC記号列生成部120と、アダプター部130と、Encoder・50と、CTC損失計算部52とを含む構成を、モデル適応化装置2と呼んでもよい。モデル適応化装置2は、畳み込みニューラルネットワーク部20と、Encoder・30と、Encoder・40と、Encoder・50とを含んで成る音声認識モデルの、少なくとも認識結果出力側の層のエンコーダー(本実施形態ではEncoder・50のみ)の目的領域への適応化を行う。本実施形態の特徴は、このモデル適応化装置2が、目的とする領域の音声データを必要とせず、その領域のテキストデータのみに基づいて動作する点である。
【0106】
なお、図4に示す各部の機能の概略については、既に説明した通りである。つまり、学習済みのアダプター部130は、擬似CTC記号列生成部120が出力する擬似CTC記号列に基づいて、Encoder・40が出力するであろう特徴量hに近い特徴量を出力する。Encoder・50は、そのアダプター部130からの出力に基づいて、特徴量hh,i(ハット)を出力する。Encoder・50は、CTC損失計算部52が算出する損失に基づいて、内部のニューラルネットワークのパラメーターを調整する。なお、Encoder・50の再学習のためにCTC損失計算部52が算出する損失を便宜的に「第1損失」と呼ぶ場合がある。つまり、第1損失は、Adapterが出力する特徴量をEncoder・50のモデルに入力して得られるEncoder・50からの出力に基づく損失である。
【0107】
図4を参照しながら、第1再学習手法によるEncoder・50の再学習の詳細について説明する。上でAdapterの学習方法について説明したが、ここでは、学習済みのAdapterを用いて、Encoder・50の再学習を行う。Encoder・50の再学習では、認識対象とする音声の話題が含まれるテキスト文字列のみを学習データとして用いる。言い換えれば、Encoder・50の再学習では、目的とする話題(領域)のテキスト文字列の学習データを用いる。
【0108】
第1再学習手法によるEncoder・50の再学習においては、音声認識装置1は、まず、学習データであるターゲットドメインのテキスト文字列を基に、後述する擬似CTC記号列変換手法を用いて、N個の擬似的なCTC記号列を生成する。このN個の擬似的なCTC記号列は、下の式(26)で表わされるa(ハット)である。
【0109】
【数26】
【0110】
音声認識装置1のCTC損失計算部52は、上記のa(ハット)に対して、下の式(27)および式(28)によって、損失関数値Lh,iを計算する。
【0111】
【数27】
【0112】
【数28】
【0113】
つまり、i番目の損失関数値(i=1,・・・,N)であるLh,iは、i番目のCTC記号列であるa(ハット)を入力することによってAdapterが出力する特徴量を、Encoder・50に入力することによって得られるhh,i(ハット)を基に算出される。第1再学習手法によってEncoder・50の適応化学習を行う際の目的関数は、N個の損失関数値の平均として下の式(29)によって計算される。
【0114】
【数29】
【0115】
Encoderの再学習の過程では、音声認識装置1は、式(29)で表わされるLossの値を最小化するように、ニューラルネットワークの内部パラメーターを更新する。ただし、Encoder・50の再学習の際には、音声認識装置1は、学習済みのAdapterのパラメーターを固定とする。即ち、音声認識装置1は、Encoder・50の再学習の段階では、Adapterの内部パラメーターを更新せず、Encoder・50の内部パラメーターの更新を行う。
【0116】
上記のような再学習を完了したときには、Encoder・50のニューラルネットワークは、再学習に用いたテキスト文字列の話題に適応していることが期待される。
【0117】
[Encoder・50の再学習: 第2再学習手法]
図5は、本実施形態による音声認識装置1が、第1再学習手法を用いてEncoder・50の再学習を行うための機能の構成を示すブロック図である。図示するように、音声認識装置1は、Encoder・50と、CTC損失計算部52と、擬似CTC記号列生成部120と、アダプター部130と、畳み込みニューラルネットワーク部20と、Encoder・30と、Encoder・40とを含んで構成される。また、ここでは、Encoder・50と、CTC損失計算部52と、擬似CTC記号列生成部120と、アダプター部130と、畳み込みニューラルネットワーク部20と、Encoder・30と、Encoder・40とを含む構成は、第2再学習手法による処理を実行するモデル適応化装置2として機能する。第2再学習手法では、Encoder・50の再学習に、ターゲットドメインのテキストだけではなく、ソースドメインの音声テキスト対も用いたドメイン適応を行う。第2再学習手法を用いる場合には、ソースドメインの音声認識精度劣化を軽減する効果が期待される。
【0118】
第2再学習手法によるEncoder・50の再学習においては、音声認識装置1は、学習データであるターゲットドメインのテキスト文字列を基に、後述する擬似CTC記号列変換手法を用いて、N個の擬似的なCTC記号列を生成する。このN個の擬似的なCTC記号列は、下の式(30)で表わされるat,i(ハット)である。
【0119】
【数30】
【0120】
音声認識装置1のCTC損失計算部52は、上記のat,i(ハット)に対して、下の式(31)および式(32)によって、損失関数値Lt,iを計算する。
【0121】
【数31】
【0122】
【数32】
【0123】
また、学習済みのIntermediate CTC音声認識モデルにN個の音響特徴量の列を入力することによって、損失関数値Ls,jを計算する。この音響特徴量の列は、下の式(33)によって表される。また、損失関数値Ls,jは、式(34)、式(35)、式(36)、および式(37)によって計算される。
【0124】
【数33】
【0125】
【数34】
【0126】
【数35】
【0127】
【数36】
【0128】
【数37】
【0129】
つまり、畳み込みニューラルネットワーク部20は、音響特徴量の列xの畳み込みを行い、Convolution(x)を出力する。Encoder・30は、Convolution(x)を基に、hsl,jを出力する。Encoder・40は、hsl,jを基に、hsm,jを出力する。Encoder・50は、hsm,jを基に、hsh,jを出力する。
【0130】
第2再学習手法における目的関数は、下の式(38)に表わされるLossstである。
【0131】
【数38】
【0132】
つまり、Lossstは、N個の損失関数値Lt,iの平均に対して、N個の損失関数値Ls,jの平均を、ソースドメインの認識精度劣化を抑制する正則化項として加えたものである。モデル適応化装置2は、Lossstを最小化するようにモデルのパラメーターを更新することにより、Encoder・50の再学習を行う。ただし、このとき、Adapterのパラメーターについては学習せず、固定とする。再学習の完了したEncoder・50は、ソースドメインの音声に対する処理能力を落とさずに、テキスト文字列の話題に適応したニューラルネットワークとなる。
【0133】
上記の式(37)によって算出される損失を便宜的に「第3損失」と呼ぶ。つまり、第3損失は、音響特徴量のフレーム列に基づいてエンコーダー部が有する複数階層(本実施形態では、第1層エンコーダー部30、第2層エンコーダー部40、および第3層エンコーダー部50)で成るモデルが出力した記号列と、音響特徴量のフレーム列に対応する正解の出力記号列と、から得られる(算出される)損失である。つまり、ここで説明する第2再学習手法では、エンコーダー部は、第1損失を用いて最終層のモデルの目的とする領域(ターゲットドメイン)への適応化を行う際に、上記の第3損失にも基づいた適応化を行う。即ち、式(38)で表わされる損失Lossstに基づく再学習を行う。第2再学習手法によると、目的とする領域(ターゲットドメイン)への適応化を行いながら、エンコーダー部の元の学習を行った領域(ソースドメイン)での認識性能の劣化を防ぐ、あるいは少なくとも抑制することが可能である。
【0134】
以上において説明した第1再学習手法と第2再学習手法とを比較したとき、第1再学習手法を用いる場合の方が、第2再学習手法を用いる場合よりも、ターゲットドメインでの音声認識精度の向上が期待できる。なお、第1再学習手法を用いた場合には、ソースドメインでの音声認識精度は劣化する。第2再学習手法を用いる場合には、ターゲットドメインの音声認識精度の改善効果は小さくなるが、ソースドメインの音声認識精度劣化を軽減する効果が期待できる。
【0135】
[擬似CTC記号列の生成]
次に、テキスト文字列を、疑似的なCTC記号列に変換する方法について説明する。擬似CTC記号列は、上述したEncoder・50の再学習のために用いたものである。音声認識装置1は、学習用のテキストデータに含まれる文字列を基に、擬似的なCTC記号列の集合を生成する。
【0136】
あるテキスト文字列を疑似的なCTC記号列に変換する場合を考える。例えば、CTC記号列の長さを6に限定した場合、「いい天気」という文字列に対応するCTC記号列は以下の9通りである。
1: _/い/_/い/天/気
2: い/_/_/い/天/気
3: い/_/い/_/天/気
4: い/_/い/天/_/気
5: い/_/い/天/気/_
6: い/い/_/い/天/気
7: い/_/い/い/天/気
8: い/_/い/天/天/気
9: い/_/い/天/気/気
【0137】
上記の擬似的なCTC記号列において、「_」は、ブランク記号<blank>を簡略化した表現である。CTC記号列では、「いい」のように同じ記号が連続する箇所には必ずブランク記号<blank>がその間に挿入される。なお、記号と記号との間の区切りを、スラッシュで表わしている。
【0138】
ブランク記号<blank>の位置は、特徴量フレームのうちの発音が存在しない位置(時間帯)であると捉えることができる。上で例示したように、ある文字列(ここでは「いい天気」)に対応するCTC記号列は数多く存在する。つまり、ある文字列に対応するすべてのCTC記号列のパターンを用いてニューラルネットワークの学習を行うと、その学習処理に膨大な時間を必要とする場合もある。一方で、CTC記号列においては、存在し得る記号列であるが現実的には生じにくい記号列も存在する。例えば、「いい天気」という文字列に対して、長さ10のCTC記号列が生成されることを仮定した場合に、「い/_/_/_/_/_/_/い/天/気」といった、「い」と「い」の間に長時間発音が存在しない区間がある場合や、「い/_/い/天/気/気/気/気/気/気」のように特定の記号の繰り返し(発音区間)が所定の長さ以上に長くなるような特徴量フレームは、現実的には生じにくい。したがって、あるテキスト文字列をCTC記号列に変換するときに、現実的に生じ得ると考えられるパターンの記号列のみに限定することもできる。
【0139】
そこで、本実施形態の音声認識装置1は、学習済みのIntermediate CTCのEncoderから出力される特徴量フレームhに基づいて算出されるCTC記号列であるa(ハット)において、統計に基づいて、生じやすい擬似的なCTC記号列への変換を行う。具体的には、音声認識装置1は、同一記号の連続数およびブランク記号<blank>の連続数の統計から生成する確率密度関数に則って、疑似的なCTC記号列への変換を行う。
【0140】
擬似的なCTC記号列を生成するための統計をとるために、例えば、Intermediate CTCの学習に使用した音声データを使用する。音声データを、学習済みのIntermediate CTCに入力し、Encoderから出力されるa(ハット)を基に統計をとる。具体的には、a(ハット)において、同一の記号(ただしブランク記号を除く)が連続してn回出現した回数をN(n)とし、ブランク記号<blank>が連続してn回出現した回数をN(n)とする。これらの回数のデータを基に、同一の記号(ただしブランク記号を除く)の連続数の確率密度関数P(n)、およびブランク記号<blank>の連続数の確率密度関数P(n)を、それぞれ、下の式(39)および式(40)で求める。つまり、本実施形態では、音声に基づいてエンコーダーから実際に出力される記号列に関する統計に基づいて、確率密度関数を生成する。
【0141】
【数39】
【0142】
【数40】
【0143】
確率密度関数を求めるための計算の例は、次の通りである。音声データの中に、「いい天気」および「明日」という2つの言語表現が含まれる場合を想定する。「いい天気」および「明日」という音声に対してEncoderが出力するCTC記号列が、それぞれ、「_/_/い/_/い/い/い/_/天/気/_/_/_」および「_/明/明/_/_/_/日/日/_」である場合に、記号の連続数は次の通りである。なお、ブランク記号<blank>を「_」と表している。
【0144】
ブランク記号以外の記号(文字)の連続数ごとの出現回数は、以下の通りである。
(0)=0
(1)=3 : (「い」、「天」、「気」が該当)
(2)=2 : (「明/明」、「日/日」が該当)
(3)=1 : (「い/い/い」が該当する)
【0145】
よって、確率P(n)は、次の通りである。
(0)=0/6=0
(1)=3/6=1/2
(2)=2/6=1/3
(3)=1/6
【0146】
一方、ブランク記号<blank>の連続数ごとの出現回数は、以下の通りである。
(0)=1 : (「天」と「気」の間に「_」が存在しないため、N(0)をカウントする)
(1)=4 : (「い」と「い」の間、「い」と「天」の間、「明」の前、「日」の後が該当)
(2)=1 : (「い」の前が該当)
(3)=2 : (「気」の後、「明」と「日」の間が該当)
【0147】
よって、確率P(n)は、次の通りである。
(0)=1/8
(1)=4/8=1/2
(2)=1/8
(3)=2/8=1/4
【0148】
上記の例は、「いい天気」および「明日」という2つの音声データに基づいて算出した確率値であるが、実際にとる統計はIntermediate CTCの学習に用いたすべての音声データに基づいて作成するものである。これにより、学習に用いた音声データに対応するCTC記号列において、連続して出現する記号(ブランク記号以外、あるいはブランク記号<blank>)の連続数に関する確率(傾向)が把握される。
【0149】
図6および図7は、擬似的なCTC記号列への変換の処理の手順を示すフローチャートである。図6図7とは結合子で結合されており、これら両図で1つのフローチャートである。このフローチャートの処理を実行するのは、擬似CTC記号列生成部120である。以下では、このフローチャートを参照しながら、CTC記号列を生成するための処理の手順を説明する。
【0150】
このフローチャートの処理では、テキスト文字列cを、CTC記号列a(ハット)に変換する。このフローチャートの処理を繰り返すことにより、複数の(N個の)CTC記号列a(ハット)(ただし、i=1,・・・,N)を作り出すことができる。なお、テキスト文字列cは、下の式(41)で表わされる通りである。なお、式(41)において、Vはブランク記号を含まない出力記号(つまり、文字)の集合であり、Jは文字列cの長さ(文字数)である。
【0151】
【数41】
【0152】
まず図6のステップS1において、擬似CTC記号列生成部120は、a(ハット)をヌル記号列に設定(初期化)する。
【0153】
次のステップS2は、ループ1の始点である。ここで擬似CTC記号列生成部120は、ループ1に関する条件の制御を行う。このフローチャートにおいて、jは、ループ1における繰り返しの指標となる変数である。そして、ループ1の初期条件はj=1である。ループ1の繰り返し時の条件は「+1」(即ち、j=j+1)である。ループ1の終了判定条件は「J」(j≦Jの条件を満たさなくなるようなjの場合にはループを抜ける)である。つまり、ループ1の処理は、j=1のときから、j=Jのときまで、jを1ずつ増分させながら繰り返される。なお、ループ1の終点は、ステップS10である。
【0154】
次にステップS3において、擬似CTC記号列生成部120は、P(n)に従い、確率的にブランク記号<blank>の連続数Nを選択する。つまり、擬似CTC記号列生成部120は、予め得られた統計に基づいて且つランダムな要素にしたがって連続数Nを選択する。ステップS3の処理では、確率がゼロでない限りは、N=0,1,2,・・・のいずれかであり得る。
【0155】
次にステップS4において、擬似CTC記号列生成部120は、その時点での文字の位置jに関して、(j≠1)且つ(c[j-1]==c[j])という条件の真偽を判定する。なお、j=1の場合には条件が偽であることが確定するためc[j-1]を参照しないようにしてもよい。あるいはc[0]が任意の何らかの記号であるという前提を置いてもよい。上記の条件が真の場合(ステップS4:YES)には次のステップS5に進む。上記の条件が偽の場合(ステップS4:NO)には図7のステップS8に飛ぶ。このステップS4における条件判定に基づく分岐は、入力文字列内において同一文字が連続する箇所についてのみ、ステップS5からS7までの処理を実行させるためのものである。
【0156】
次にステップS5に進んだ場合、次の通りである。即ち、ステップS5は、ループ2の始点である。ここで擬似CTC記号列生成部120は、ループ2に関する条件の制御を行う。ループ2の内部の処理が実行される条件は、(N=0)である。Nの初期値(ステップS3において決定されたN)が0ではない場合には、ループ2の内部の処理は一度も実行されない。Nの初期値が0である場合は、Nの値が0である間、ループ2の処理を繰り返す。Nの値が0ではなくなったときに、ループ2を抜け出す。なお、ループ2の終点は、ステップS7である。
【0157】
ステップS6は、ループ2の内部における唯一のステップである。ステップS6において、擬似CTC記号列生成部120は、P(n)に従い、確率的にブランク記号<blank>の連続数Nを選択する。なお、Nの選択を行う都度、異なる確率的要素に基づいた選択を行うこととする。つまり、Nの選択を繰り返すうちに、Nとして0以外の値が選択されることが期待できる。
【0158】
ステップS7は、ループ2の終点である。前記の(N=0)の条件が真である場合には、ループ2の処理を繰り返す。(N=0)の条件が偽である場合には、ループ2を抜け出して次の図7のステップS8に進む。つまり、ループ2を抜け出した時点で、Nとして0以外の値が選択されている。
【0159】
図7のステップS8において、擬似CTC記号列生成部120は、既に決定されているNの値に基づいて、N個のブランク記号<blank>を、その時点での記号列a(ハット)の後側(通常は、右側)に連結する。
【0160】
次にステップS9において、擬似CTC記号列生成部120は、予め求められているP(n)に従い、確率的に文字(ブランク記号以外の記号)の連続数Nを選択する。つまり、擬似CTC記号列生成部120は、予め得られた統計に基づいて且つランダムな要素にしたがって連続数Nを選択する。つまり、確率がゼロでない限りは、N=0,1,2,・・・のいずれかであり得る。次に、擬似CTC記号列生成部120は、連続するN個(Nは、本ステップにおいて選択された値)の文字c[j]を、その時点での記号列a(ハット)の後側(通常は、右側)に連結する。
【0161】
ステップS10は、ループ1の終点である。前記の条件の通り、jの値を+1(増分1)して、その結果としてjの値が1,2,・・・,Jのいずれかである限りは、ループ1の処理を繰り返す。繰り返しの条件が満たされなくなるとき、即ち、Jを増分することによってjの値がJ+1に達する場合には、ループ1を抜け出して次のS11に進む。つまり、ループ1を抜け出した時点で、変換元の文字列における文字c[1]からc[J]までの処理が完了している。
【0162】
次にステップS11において、擬似CTC記号列生成部120は、予め求められているP(n)に従い、確率的にブランク記号<blank>の連続数Nを選択する。つまり、擬似CTC記号列生成部120は、予め得られた統計に基づいて且つランダムな要素にしたがって連続数Nを選択する。つまり、確率がゼロでない限りは、N=0,1,2,・・・のいずれかであり得る。次に、擬似CTC記号列生成部120は、連続するN個(Nは、本ステップにおいて選択された値)のブランク記号<blank>を、その時点での記号列a(ハット)の最後に連結する。
【0163】
このフローチャートで示す処理のうち、ステップS1の処理を初期化処理と捉えることができる。また、ステップS3からS8までの処理を第1フェーズの処理と捉えることができる。第1フェーズの処理は、連続するブランク記号<blank>の連続数を決めてその数のブランク記号<blank>を生成すべき文字列の一部として連結する処理である。また、ステップS9の処理を第2フェーズの処理と捉えることができる。第2フェーズの処理は、連続する文字(ブランク記号以外)の連続数を決めてその数の文字生成すべき文字列の一部として連結する処理である。第1フェーズの処理と第2フェーズの処理とは、変換元のテキスト文字列に含まれる各文字(先頭から順に)について繰り返される(ステップS2とステップS10とで制御されるループ1の処理)。そして、ステップS11の処理を第3フェーズの処理と捉えることができる。第3フェーズの処理は、上記のループ1の処理の後に、即ち入力文字列の最後の文字の後に続くブランク記号<blank>の連続数を決めてその数のブランク記号<blank>を生成すべき文字列の一部として連結する処理である。
【0164】
ここで、実例を用いて、上記のフローチャートの処理を説明する。例として、変換元のテキスト文字列が「明日はいい天気」である場合を想定する。
【0165】
<第1フェーズの処理>
前述のフローチャートのステップS3における処理として、算出済みのP(n)にしたがって、確率的にブランク記号<blank>の連続数であるNを選択する。ここでは選択されたNが3である場合を想定する。N=3が選択される確率は、前記の例ではP(3)=1/4である。前述のフローチャートのステップS8における処理として、a(ハット)に3個のブランク記号<blank>を連結すると、a(ハット)=「_/_/_」となる。ただし、スラッシュは、便宜的に挿入している記号間の区切りである。
【0166】
<第2フェーズの処理>
前述のフローチャートのステップS9における処理として、算出済みのP(n)にしたがって、確率的にブランク以外の記号(つまり、文字)の連続数であるNを選択する。選択されたNが2である場合を想定する。ここではN=2が選択される確率は、前記の例ではP(2)=1/3である。そして、N個(即ちここでは2個)の文字「明」の連続を、a(ハット)に連結する。すると、a(ハット)=「_/_/_/明/明」となる。スラッシュは、便宜的に挿入している記号間の区切りである。
【0167】
<第1フェーズと第2フェーズの繰り返し>
入力文字列に含まれる残りの文字である「日」、「は」、「い」、「い」、「天」、「気」のそれぞれについても、上記の第1フェーズおよび第2フェーズの処理が繰り返される。
【0168】
<第3フェーズの処理>
上記の繰り返し処理が終了した後に、第3フェーズの処理を行うことにより、CTC記号列に、最後に連続するブランク記号<blank>が付加される。
【0169】
なお、入力文字列内において同一の文字が連続する場合(「明日はいい天気」における「いい」が該当)には、その連続する文字(「い」と「い」)の間のブランク記号<blank>の数Nは0にはならない。このことは、フローチャート内のステップS5からS7までの処理によって保証される。
【0170】
以上のようにして、「明日はいい天気」という文字列を基に、例えば、「_/_/_/明/明/_/日/日/_/_/は/い/_/い/_/天/天/気/_/_」などといったCTC記号列が出力される。なお、N個のCTC記号列a(ハット)のそれぞれは、確率的要素(文字の連続数またはブランク記号<blank>の連続数)に基づいて生成されるため、偶然に一致する場合の組を除いて互いに異なる記号列となることが充分に期待される。
【0171】
[推論時の処理]
次に、モデルの学習が完了した状態における音声認識装置1の推論時の処理について説明する。なお、推論を実行する前提として、目的とする領域のテキストデータを用いたEncoderの再学習も完了している。
【0172】
入力される認識対象の音声xに対して、音声認識装置1は、下の式(42)によって、出力特徴量hを算出する。また、音声認識装置1は、下の式(43)によって、特徴量hを基に、CTC記号列a(ハット)を求める。
【0173】
【数42】
【0174】
【数43】
【0175】
そして、音声認識装置1は、従来技術におけるCTC音声認識の手法と同様に、求められたCTC記号列a(ハット)に含まれる同一文字の連続を1文字にまとめるとともに、ブランク記号<blank>を削除することにより、音声認識結果のテキストを得る。つまり、音声認識装置1は、出力記号列(a(ハット))の中で繰り返されている文字を集約するとともに、当該出力記号列に含まれるブランク記号を削除することによって得られる文字列を音声認識結果として出力する。
【0176】
図8は、本実施形態の音声認識装置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を介して入出力ポートにアクセスする。
【0177】
なお、上述した実施形態における音声認識装置1の少なくとも一部の機能をコンピューターで実現することができる。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM、DVD-ROM、USBメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。つまり、「コンピューター読み取り可能な記録媒体」とは、非一過性の(non-transitory)コンピューター読み取り可能な記録媒体であってよい。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、一時的に、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0178】
なお、ニューラルネットワークの学習(パラメーターの更新)においては、算出された損失に基づく誤差逆伝播法を用いることができる。
【0179】
以上、実施形態を説明したが、さらに下記のような変形例でも実施することが可能である。なお、複数の実施形態および変形例を、組み合わせることが可能な限りにおいて、組み合わせて実施してもよい。
【0180】
[第1実施形態の変形例1]
上記実施形態では、エンコーダーを3階層(第1層エンコーダー部30(Encoder・30)と、第2層エンコーダー部40(Encoder・40)と、第3層エンコーダー部50(Encoder・50))で実現した。エンコーダーの階層数を他の数としてもよい。例えば、エンコーダーの階層数を4以上としてもよい。そのような場合にも、少なくともエンコーダーの最終層(高レベル側)を含む層について、目的領域のテキストに基づく適応化を行えるようにする。
【0181】
[第1実施形態の変形例2]
図1に示した音声認識装置1の全体を実施する代わりに、図4に示したモデル適応化装置2のみを実施してもよい。その場合にも、モデル適応化装置2は、音声認識モデルの適応化を行うことができる。つまり、モデル適応化装置2は、目的領域のテキストに基づいて、音声認識モデルが目的領域に合った音声認識結果の文字列を出力するように、適応化を行うことができる。
【0182】
[第1実施形態の変形例3]
話題(分野、領域)ごとに異なるEncoder・50の再学習を予め行っておいてもよい。その場合には、音声認識対象の話題に合ったEncoder・50をその都度選択することにより、話題に合った音声認識結果の文字列が出力されることとなる。また、逆に、その都度、目的とする話題のテキストを用いて、Encoderの学習を行ってもよい。
【0183】
[第1実施形態の変形例4]
上記実施形態では、Encoder・50の再学習のために、擬似CTC記号列生成部120が擬似的なCTC記号列を生成した。変形例として、擬似CTC記号列生成部120を設ける代わりに、目的とする領域に属する記号列(擬似CTC記号列に相当するもの)を外部から与えるようにしてもよい。この場合にも、Adapterは、その記号列に基づいて、Encoder・50に入力するための特徴量を算出して、出力する。
【0184】
[第1実施形態の変形例5]
変形例5として、テキスト文字列を疑似的なCTC記号列に変換する前に、テキスト文字列における文字の置換処理を行ってもよい。このような置換処理を行うことにより、テキスト文字列は、Encoder・30が出力する文字列の誤りのパターンに似るという効果がある。そして、そのような置換処理後のテキスト文字列を基に、擬似的なCTC記号列を生成するようにする。つまり、このような誤りを含み得る文字列に対応するCTC記号列を基に、Adapterを介して、Encoder・50の再学習を行うことができる。これにより、認識性能のさらなる向上を期待することができる。
【0185】
図9は、音声認識装置1内における、この変形例5による置換処理のための部分の機能構成を示すブロック図である。図示するように、変形例5による音声認識装置1(モデル適応化装置2)は、置換処理部115を備える。置換処理部115は、目標領域テキスト供給部110が供給するテキストデータ(文字列)における文字の置換の処理を行う。置換処理部115は、置換後のテキストデータ(文字列)を、擬似CTC記号列生成部120に渡す。変形例5においては、擬似CTC記号列生成部120は、目的領域テキスト供給部110から渡されるテキスト文字列を基に、置換処理部115が文字の置換を行った後の文字列を用いて、擬似的なCTC記号列を生成する。
【0186】
変形例5で用いる出力文字確率分布の算出方法は、次の通りである。学習済みのIntermediate CTCに、Intermediate CTCの学習に使用した音声データを入力する。各音声データに対してEncoder・30が出力した最も高い確率であるアライメントa(ハット)は下の式(44)で表わされる。
【0187】
【数44】
【0188】
このa(ハット)の位置t=t´において、下の式(45)である場合を考える。
【0189】
【数45】
【0190】
上記の式(45)の場合に、t=t´の位置において、Encoder・30が各記号v(vはVの要素)を出力する確率を、下の式(46)の通りとする。つまり、式(46)が表す確率は、記号sが記号vによって置換される確率であり、tに依存しない。
【0191】
【数46】
【0192】
各学習データの各tにおいて、その位置の記号がs(sは、上記の通りVの要素)であった場合に、上記の式(46)の確率を計算し、計算された確率を平均したものを、出力文字確率分布P(v)と定義する。この出力文字確率分布が求まると、下の式(47)で表わされる値は、ある文字sが正解の文字である場合に、Encoder・30が誤って他の文字s´を出力する確率であるとみなせる。
【0193】
【数47】
【0194】
すべてのs(sはVの要素)に対し、出力文字確率分布P(v)を算出し、テキスト文字列の置換処理に利用することができる。
【0195】
この変形例5におけるテキスト文字列の置換処理は、次のように行われる。つまり、テキスト文字列cに含まれる各文字c[j]に対して、下の式(48)で表わされる出力文字確率分布(上で獲得済み)にしたがって、文字の置換を行う。
【0196】
【数48】
【0197】
例えばテキスト文字列cが「天気予報です」である場合、c[1]=天である。また、文字の置換に関して、下の式(49)および式(50)の通りであるとする。
【0198】
【数49】
【数50】
【0199】
この例の場合には、0.8の確率で天から天への置換処理を行う。即ち、天の文字は変化せず、このような置換によって元の文字列cは変化しない。一方、0.1の確率で天から点への置換処理を行う。即ち、天が点に置換されるため、元の文字列cは「点気予報です」に変化する。上記の置換処理を、文字列cに含まれるすべてのc[j]について行うことによって、Encoder・30が出力する文字列の誤りに類似することを意図した文字列を得ることができる。そして、このような置換処理に基づいて得られるCTC記号列を用いて、Encoder・50の再学習を行うことができる。
【0200】
つまり、変形例5において、置換処理部115は、所定の統計データを基に得られた出力文字確率分布にしたがって、目的とする領域に属するテキスト(目標領域テキスト供給部110から供給されるテキスト)に含まれる文字を別の文字で置換する処理を行う。また、擬似CTC記号列生成部120は、この置換処理部115が出力する置換処理後の目的とする領域に属するテキストを基に、CTC記号列を生成する処理を行う。
【0201】
以上、この発明の実施形態(変形例を含む)について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0202】
以上説明したように、本実施形態(変形例を含む)では、テキストデータのみによってend-to-end音声認識モデルを適応化することができる。つまり、テキストデータのみで(音声データなしで)、音声認識モデルをドメイン適応させ、対象ドメインの認識精度を向上させることが可能である。
【0203】
[第1実施形態の構成の効果の検証]
上で説明した第1実施形態による音声認識装置1の効果を検証するための実証実験を行った。実証実験に用いた第1の音声は、音声学に関する学会発表音声等を収録するCSJコーパスである。このCSJコーパスを用いて、Intermediate CTCの学習、およびAdapterの学習を行った。その後、上で学習済みのIntermediate CTCのうちのEncoderについて、天気予報のテキストデータを用いて、第1再学習手法および第2再学習手法のそれぞれでの再学習を行った。天気予報のテキストデータによる再学習の前後のそれぞれのEncoderを用いて、第2の音声である天気予報評価セットとCSJコーパス評価セットにおける文字誤り率(CER、Character Error Rate)を算出した。また、テキスト文字列の置換処理(変形例5で説明した処理)がある場合とない場合との文字誤り率を算出した。
【0204】
第1再学習手法および第2再学習手法の両方に共通する実験の諸元は、次の通りである。
特徴量:ログメルスペクトログラム80次元+ピッチ3次元+Δ+ΔΔの合計249次元
文字種:3260種類
【0205】
使用したモデルは、次の通りである。
Convolution: 畳み込みニューラルネットワーク2層
Encoder: Conformer 6層
Encoder: Conformer 3層
Encoder: Conformer 3層
Adapter: Conformer 6層
生成する疑似CTC記号列数N: 64
【0206】
以下は、Encoder・50の再学習を行うための、第1再学習手法と第2再学習手法のそれぞれの個別の実験諸元と実験結果である。
【0207】
第1再学習手法(ターゲットドメインのテキストのみを用いたドメイン適応)に関する学習用データは、次の通りである。
1)Intermediate CTCの学習: CSJコーパス
2)Adapterの学習: CSJコーパス
3)Encoderの再学習: 天気予報テキスト1000文
【0208】
第1再学習手法に関する評価データは、次の通りである。
1)CSJ評価セットの、eval1、eval2、およびeval3
2)天気予報評価音声2時間分 ただし、Encoderの再学習に使用した天気予報テキスト1000文の音声は含まれていない。
【0209】
第1再学習手法に関する学習諸元は、次の通りである。
1)Intermediate CTCの学習: 100エポック(epoch)中の、validation loss(検証損失)が最も低かったときのエポックを学習したモデルを使用
2)Adapterの学習: 50エポック中、validation loss が最も低かったときのエポックを学習したモデルを使用
3)Encoderの再学習: 20エポック中、最もCER(Character Error Rate,文字誤り率)の改善が見られたエポックを学習したモデルを使用
なお、疑似CTC文字列数Nは、64である。
【0210】
下の表1は、Encoderの再学習(第1再学習手法の場合)の前後におけるCER(文字誤り率)の比較結果を示す。
【0211】
【表1】
【0212】
上の表1の通り、天気予報評価音声については、テキスト文字列の置換処理がない場合には、CERは、Encoderの再学習前の18.7%から15.5%に、3.2%改善した。テキスト文字列の置換処理がある場合(変形例5の場合)には、CERは、Encoderの再学習前の18.7%から13.7%に、5.0%改善した。逆に、CSJコーパスのeval1、eval2、eval3のそれぞれの音声については、当然ながら、Encoderの再学習を行ったことにより、CERが悪化している。CSJコーパスの評価データで、Encoderの再学習後において認識精度が劣化したのは、Encoderが、元のCSJコーパスの話題から天気予報の話題に適応し直したためである。
【0213】
天気予報評価音声についての改善の具体例(ただし、テキスト文字列の置換処理がある場合)は、下記の通りである。
評価音声の発話: 「予想最低気温です」
Encoderの再学習前の認識結果:「予想最適基音です」
Encoderの再学習後の認識結果:「予想最低気温です」
【0214】
以上のように、ここに記した実証実験では、天気予報のテキストデータのみを用いてEncoderの再学習を行い、推論時に天気予報の話題に適した記号列を出力させることが可能となったことを示せた。
【0215】
第2再学習手法(ターゲットドメインのテキストと、ソースドメインの音声テキスト対とを用いたドメイン適応)に関する学習用データは、次の通りである。
1)Intermediate CTCの学習: CSJコーパス
2)Adapterの学習: CSJコーパス
3)Encoderの再学習: 天気予報テキスト1000文およびCSJコーパス
【0216】
第2再学習手法に関する評価データは、次の通りである。
1)CSJ評価セットの、eval2
2)天気予報評価音声2時間分 ただし、Encoderの再学習に使用した天気予報テキスト1000文の音声は含まれていない。
【0217】
第2再学習手法に関する学習諸元は、次の通りである。
1)Intermediate CTCの学習: 100エポック(epoch)中の、validation loss(検証損失)が最も低かったときのエポックを学習したモデルを使用
2)Adapterの学習: 50エポック中、validation loss が最も低かったときのエポックを学習したモデルを使用
3)Encoderの再学習: 20エポック中、最もCERの改善が見られたエポックを学習したモデルを使用(下の表2における、第2再学習手法でのEncoderの再学習後)
ただしエポックに関して、天気予報テキストの学習が一巡した際に1エポックとカウントした。
疑似CTC文字列数Nは、64である。
疑似CTC文字列と同時に学習するCSJ音声数Nは、64である。
【0218】
下の表2は、Encoderの再学習(第2再学習手法の場合)の前後におけるCERの比較結果を示す。ただし、表2に示す再学習後の結果は、テキスト文字列の置換処理を行った場合(変形利5)である。
【0219】
【表2】
【0220】
表2に示す結果において、Encoderの再学習前と、第2再学習手法でのEncoderの再学習後との両方において、ソースドメインであるCSJ評価セット(CSJ eval2)のCERは、いずれも、5.2%である。つまり、ソースドメインにおける認識精度は、第2再学習手法での再学習によって劣化していない。一方で、ターゲットドメインである天気予報評価セット(天気予報)におけるCERは、再学習前の18.7%から、第2再学習手法による再学習後の15.3%へと改善されている。
【0221】
表2において、第1再学習手法でのEncoderの再学習後(4エポックの場合および5エポックの場合)のCERは、比較対象である。これは、ソースドメインの音声認識精度を劣化させずにターゲットドメインの音声認識精度を改善する方法として、テキストデータのみを学習データとして用いた第1再学習手法による再学習を途中で停止させる方法が考えられるためである。つまり、第1再学習手法を用いた場合に、第2再学習手法を用いた場合の天気予報評価セットのCER(15.3%)と同等のCERが達成されるのが、4エポック(CERは15.5%)あるいは5エポック(CERは15.1%)である。第1再学習手法での再学習後4エポックの場合の、CSJ評価セット(CSJ eval2)のCERは5.8%である。また、第1再学習手法での再学習後5エポックの場合の、CSJ評価セット(CSJ eval2)のCERは6.1%である。つまり、4エポックの場合も5エポックの場合も、CSJ評価セット(CSJ eval2)でのCERは、再学習前の5.2%からは劣化している。つまり、ソースドメインの音声認識精度を劣化させないという目的においては、比較対象の第1再学習手法よりも第2再学習手法が有効であることを確認できた。
【0222】
以上のように、第1再学習手法と第2再学習手法とは、適宜、使い分けることができる。また、第1再学習手法と第2再学習手法のいずれを用いる場合にも、本実施形態による再学習を行う方法は有効であることを示せた。つまり、予め学習させた汎用音声認識モデルに対し、認識させたい話題の音声に対する認識精度を向上させたい場合を想定する。例えば、流行り始めのスポーツの話題について、音声とテキストとの対のペアが入手できず、テキストのみが入手できる状況であると仮定する。このような状況において、対象スポーツの話題のテキストを用いて、本実施形態の適応化学習(Encoderの再学習)をすることにより、認識性能を改善することができる。
【0223】
[第2実施形態]
次に、本発明の第2実施形態について説明する。なお、前実施形態において既に説明した事項については以下において説明を省略する場合がある。ここでは、本実施形態に特有の事項を中心に説明する。
【0224】
本実施形態の音声認識装置1001においては、目標領域のテキストを用いてIntermediate CTC 音声認識モデルの再学習を行う際に、Duration Predictor(発話長予測部)が発話長を予測し、その予測値に基づいて潜在ベクトルを時間方向に伸縮可能とする。本実施形態の音声認識装置1001は、そのように発話長が調整された潜在ベクトルを生成する機能を持ち、その潜在ベクトルを正解として用いてIntermediate CTC 音声認識モデルの再学習を行う。なお、Duration Predictor(発話長予測部)は、ニューラルネットワークを用いて実現され、発話長の正解値に基づいて予め機械学習を行っておく。また、Duration Predictor(発話長予測部)によって予測された発話長に適宜係数を乗じることによって、与えられる目標領域のテキストに対して発話長にバリエーションを持たせるようにしてもよい。そのような音声認識装置1001の具体的な構成例を、次に図10および図11を参照しながら説明する。
【0225】
図10は、本実施形態による音声認識装置1001の概略機能構成を示すブロック図である。図示するように、音声認識装置1001は、音声供給部1010と、畳み込みニューラルネットワーク部1020と、第1層エンコーダー部(Encoder)1030と、第2層エンコーダー部(Encoder)1040と、第3層エンコーダー部(Encoder)1050と、CTC損失計算部1060と、目標領域テキスト供給部1100と、最尤アライメント出力部1110と、ブランク記号込み文字列生成部1120と、潜在ベクトル生成部1200とを含んで構成される。なお、上記の構成のうち、畳み込みニューラルネットワーク部1020と、第1層エンコーダー部(Encoder)1030と、第2層エンコーダー部(Encoder)1040と、第3層エンコーダー部(Encoder)1050とをまとめて「エンコーダー部」と呼ぶ場合がある。音声認識装置1001を構成するそれぞれの機能部は、例えば、コンピューターと、プログラムとで実現することが可能である。また、各機能部は、必要に応じて、記憶手段を有する。記憶手段は、例えば、プログラム上の変数や、プログラムの実行によりアロケーションされるメモリーである。また、必要に応じて、磁気ハードディスク装置やソリッドステートドライブ(SSD)といった不揮発性の記憶手段を用いるようにしてもよい。また、各機能部の少なくとも一部の機能を、プログラムではなく専用の電子回路として実現してもよい。各部の機能は、次の通りである。
【0226】
音声供給部1010は、音声認識装置1001が認識処理の対象とする音声を供給する。音声供給部1010は、音声のデータを、畳み込みニューラルネットワーク部1020に渡す。音声供給部1010は、音声のデータとして、例えばベクトルで表わされる音響特徴量の列を供給する。
【0227】
畳み込みニューラルネットワーク部1020は、音声供給部1010から渡される音声データの畳み込み処理を行う。畳み込みニューラルネットワーク部1020は、畳み込み処理の結果として得られる特徴量(h)を、第1層エンコーダー部(Encoder)1030に渡す。
【0228】
第1層エンコーダー部(Encoder)1030と、第2層エンコーダー部(Encoder)1040と、第3層エンコーダー部(Encoder)1050とは、3層構成のエンコーダーである。第1層エンコーダー部(Encoder)1030と、第2層エンコーダー部(Encoder)1040と、第3層エンコーダー部(Encoder)1050とのそれぞれは、例えば、セルフアテンションニューラルネットワークを用いて実現される。音声認識装置1001は、第1層エンコーダー部(Encoder)1030と、第2層エンコーダー部(Encoder)1040と、第3層エンコーダー部(Encoder)1050とのそれぞれの出力について、損失を計算する機能を有するが、本図ではその機能を省略している。
【0229】
畳み込みニューラルネットワーク部1020と、第1層エンコーダー部(Encoder)1030と、第2層エンコーダー部(Encoder)1040と、第3層エンコーダー部(Encoder)1050とをまとめた構成であるエンコーダー部は、音響特徴量のフレームの列を入力し前記音響特徴量のフレームに対応する記号の列として成る出力記号列を出力するように、複数階層で成るモデルを有し、前記モデルのそれぞれの階層が学習可能となるように構成されたものである。このエンコーダー部の複数階層のモデルにおけるある階層のモデルから次の階層のモデルへは中間特徴量(潜在ベクトル、潜在特徴量)が渡される。即ち、第1層エンコーダー部(Encoder)1030は、畳み込みニューラルネットワーク部1020から受け取る特徴量hを基に、特徴量hを算出し、第2層エンコーダー部(Encoder)1040に渡す。第2層エンコーダー部(Encoder)1040は、第1層エンコーダー部(Encoder)1030から受け取る特徴量hを基に、特徴量hを算出し、第3層エンコーダー部(Encoder)1050に渡す。第3層エンコーダー部(Encoder)1050は、第2層エンコーダー部(Encoder)1040から受け取る特徴量hを基に、特徴量hを算出し、出力する。なお、特徴量h、h、h、hのそれぞれは、ベクトルの系列である。
【0230】
このエンコーダー部は、所定領域の音響特徴量のフレーム列とその音響特徴量のフレーム列に対応する出力記号列との関係に基づく機械学習を行うことができる。その機械学習の後に、エンコーダー部は、前記の所定領域とは異なる領域である目標領域の記号列に基づいて、再学習を行う。つまり、潜在ベクトル生成部1200が出力する潜在ベクトルをエンコーダー部が持つモデルの最終層または中間層に入力して最終層のモデルから得られる出力記号列と、正解の当該目標領域の記号列と、の関係に基づく損失である第1損失を用いて潜在ベクトルを入力した階層よりも後の階層の、目標領域への適応化を行うことを可能としている。本実施形態においては、モデルは、第1層エンコーダー部(Encoder)1030と、第2層エンコーダー部(Encoder)1040と、第3層エンコーダー部(Encoder)1050との3層の構成としている。潜在ベクトル生成部1200が出力する潜在ベクトル(目標領域の特徴を有する潜在ベクトル)は、最終層である第3層エンコーダー部(Encoder)1050に入力され、第3層エンコーダー部(Encoder)1050の再学習に使用される。なお、上記の「第1損失」は、下のCTC損失計算部1060によって算出される。
【0231】
CTC損失計算部1060は、上記のエンコーダー部の学習を行うための損失を算出する。
【0232】
目標領域テキスト供給部1100は、エンコーダー部の再学習を行うために用いられる目標領域のテキスト(記号列)を供給する。
【0233】
最尤アライメント出力部1110は、第1層エンコーダー部(Encoder)1030から渡される潜在ベクトルhに対応する最尤アライメントを求める。最尤アライメント出力部1110は、その最尤アラインメントをブランク記号込み文字列生成部1120に渡す。
【0234】
ブランク記号込み文字列生成部1120は、最尤アライメント出力部1110が求めた最尤アライメントを基に、文字列を生成する。ブランク記号込み文字列生成部1120は、その最尤アライメントを基に一度音声認識結果を得てから、その認識結果の文頭と文字間と文末のそれぞれにブランク記号を挿入することによって、ブランク記号入り文字列を生成する。
【0235】
潜在ベクトル生成部1200は、入力される記号列(テキスト等)に応じた潜在ベクトル(潜在特徴量)を生成する。潜在ベクトル生成部1200は、「潜在特徴量生成部」とも呼ばれる。潜在ベクトル生成部1200が入力される記号列に基づいて生成する潜在ベクトル(潜在特徴量)は、前記のエンコーダー部が持つモデルの最終層または中間層に入力するための潜在ベクトルである。潜在ベクトル生成部1200のさらに詳細な機能構成については、後で、別の図を参照しながら説明する。
【0236】
図11は、本実施形態による潜在ベクトル生成部1200の内部のさらに詳細な機能構成を示すブロック図である。図示するように、潜在ベクトル生成部1200は、線形変換ニューラルネットワーク1210と、セルフアテンションニューラルネットワーク(Generator)1220と、Length Regulator(発話長調整部,潜在ベクトル複製部)1230と、セルフアテンションニューラルネットワーク(Generator)1240と、損失計算部1260と、Duration Predictor(発話長予測部)1310と、発話長決定部1320と、係数決定部1330と、発話長正解生成部1350と、損失計算部1360と、を含んで構成される。潜在ベクトル生成部1200の内部に設けられるそれぞれのニューラルネットワークの内部パラメーター値は、学習により、更新可能である。潜在ベクトル生成部1200を構成する各部の機能は、次の通りである。
【0237】
線形変換ニューラルネットワーク1210は、前述のブランク記号込み文字列生成部1120が生成した文字列(記号列)を線形変換して、ベクトルに変換する。線形変換ニューラルネットワーク1210は、ブランク記号込み文字列生成部1120から渡される文字列(記号列)に含まれる1文字に対応して、1個のベクトルを出力する。線形変換ニューラルネットワーク1210は、学習可能なように構成される。
【0238】
セルフアテンションニューラルネットワーク(Generator)1220は、線形変換ニューラルネットワーク1210から渡されるベクトルに基づいて、潜在ベクトルを生成する。セルフアテンションニューラルネットワーク(Generator)1220は、線形変換ニューラルネットワーク1210から受け取るベクトル1個に対応して、1個のベクトルを出力する。つまり、セルフアテンションニューラルネットワーク(Generator)1220が出力するベクトル1個は、ブランク記号込み文字列生成部1120から渡される文字(記号)1個に対応する。セルフアテンションニューラルネットワーク(Generator)1220は、生成した潜在ベクトルを、Length Regulator(発話長調整部,潜在ベクトル複製部)1230と、Duration Predictor(発話長予測部)1310とに渡す。
【0239】
Length Regulator(発話長調整部,潜在ベクトル複製部)1230は、下のDuration Predictor(発話長予測部)1310によって予測された結果である発話長(予測値)に基づいて、潜在ベクトル生成部1200への入力記号に対応する潜在ベクトルの時間方向の長さを調節する。具体的には、Length Regulator(発話長調整部,潜在ベクトル複製部)1230は、予測された発話長に基づいて、セルフアテンションニューラルネットワーク(Generator)1220が生成する潜在ベクトルを複製することによって、その時間方向の長さの調整を行う。言い換えれば、Length Regulator(発話長調整部,潜在ベクトル複製部)1230は、セルフアテンションニューラルネットワーク(Generator)1220から渡されるベクトル1個を複製することにより、そのベクトルが発話長決定部1320が決定した発話長(整数)分の繰り返しになるようにする。つまり、セルフアテンションニューラルネットワーク(Generator)1220が生成する潜在ベクトルの時間方向の長さは、Length Regulator(発話長調整部,潜在ベクトル複製部)1230によって伸縮可能である。Length Regulator(発話長調整部,潜在ベクトル複製部)1230は、時間方向の長さの調節を行った結果である潜在ベクトルを、次のセルフアテンションニューラルネットワーク(Generator)1240に渡す。
【0240】
セルフアテンションニューラルネットワーク(Generator)1240は、Length Regulator(発話長調整部,潜在ベクトル複製部)1230から渡される時間方向の長さを調整したベクトルに基づいて、出力用の潜在ベクトルを生成する。
【0241】
損失計算部1260は、セルフアテンションニューラルネットワーク(Generator)1240から渡される潜在ベクトルと、第2層エンコーダー部(Encoder)1040から渡される潜在ベクトルとの差である損失(後で説明するLlatent)を算出する。
【0242】
Duration Predictor(発話長予測部)1310は、入力される特徴量に基づいて、その特徴量の元となった記号列に含まれる各記号の時間方向の長さである発話長を予測する。Duration Predictor(発話長予測部)1310は、例えばニューラルネットワークを用いて実現される。Duration Predictor(発話長予測部)1310は、精度よく発話長を予測することができるように、予め学習しておくことが可能である。
【0243】
具体的には、Duration Predictor(発話長予測部)1310は、セルフアテンションニューラルネットワーク(Generator)1220から渡されるベクトル(第1潜在特徴量)に基づいてDuration Predictor(発話長予測部)1310が予測した発話長と、そのベクトル(第1潜在特徴量)に対応する正解の発話長(発話長正解生成部1350から渡される)と、の差である第3損失に基づいて学習可能となるように構成されている。この「第3損失」は、損失計算部1360によって算出される損失(後で説明するLduration)である。
【0244】
発話長決定部1320は、Duration Predictor(発話長予測部)1310が予測した発話長に係数決定部1330から渡される係数γを乗算することによって、発話長を決定する。発話長決定部1320は、適宜四捨五入等の丸め処理を行うことによって、整数値としての発話長を決定する。係数決定部1330が複数通りの係数を決定する場合には、発話長決定部1320は、それらのそれぞれの係数値を用いて、発話長を決定する。
【0245】
係数決定部1330は、Duration Predictor(発話長予測部)1310が予測した発話長を変化させるための係数値を決定する。係数決定部1330は、複数通りの係数値を決定してもよい。係数決定部1330が決定する係数値は、例えば、所定の値の範囲内において一様分布またはそれに近い分布をするものであってよい。係数決定部1330は、例えば、予め定められた分布にしたがってランダムに係数値を決定してもよい。また、係数決定部1330は、所定の計算式等によって決定される係数値や、予め決定されて記憶されている係数値を決定してもよい。
【0246】
発話長正解生成部1350は、セルフアテンションニューラルネットワーク(Generator)1220からDuration Predictor(発話長予測部)1310に渡されるベクトルに対応する、発話長の正解を生成する。この正解は、損失計算部1360によって、損失を求めるために使用される。発話長正解生成部1350が正解を生成する方法については、後述する。
【0247】
損失計算部1360は、Duration Predictor(発話長予測部)1310が予測した発話長と、発話長正解生成部1350から供給される発話長の正解値と、の差である損失を求める。損失計算部1360が算出する損失は、後で説明するLduration(発話長についての損失)である。
【0248】
以上の構成により、潜在ベクトル生成部1200は、Length Regulator(発話長調整部,潜在ベクトル複製部)1230によって時間方向の長さが調節された潜在ベクトルを出力することができる。
【0249】
なお、係数決定部1330が決定する係数に基づいて、Length Regulator(発話長調整部,潜在ベクトル複製部)1230が調節する発話長を可変とすることができる。つまり、潜在ベクトル生成部1200は、潜在ベクトル生成部1200自身の学習の時、あるいは目標領域の記号列に基づいてエンコーダー部のモデル(本実施形態においては、第3層エンコーダー部(Encoder)1050)の目標領域への適応化(再学習)を行う時、の少なくともいずれかにおいて、複数通りの発話長の潜在ベクトルを生成して出力する。つまり、発話長決定部1320は、Duration Predictor(発話長予測部)1310によって予測された発話長(予測値)に、係数決定部1330から渡される複数の係数値をそれぞれ掛けること(乗算)によって、複数通りの発話長を決定する。つまり、潜在ベクトル生成部1200は、目標領域に属する1つの記号列から、複数通りの時間方向の長さに基づく潜在ベクトルを生成して出力する。
【0250】
また、以上の構成により、潜在ベクトル生成部1200は、所定の音響特徴量に基づいて前記のエンコーダー部の中間層である第K1層(本実施形態においては、第1層エンコーダー部(Encoder)1030)から出力される第1潜在特徴量に基づいて潜在ベクトル生成部1200が生成する潜在特徴量(セルフアテンションニューラルネットワーク(Generator)1240からの出力)と、当該音響特徴量に基づくエンコーダー部の中間層である第K2層(ただし、第K2層は前記第K1層よりも後段。本実施形態においては、第2層エンコーダー部(Encoder)1040である。)から出力される第2潜在特徴量と、の差である第2損失を用いて学習可能となっている。なお、この第2損失は、損失計算部1260によって算出される損失(後で説明するLlatent)である。
【0251】
[Fastspeechおよびその応用]
第2実施形態における潜在ベクトル生成部1200は、例えば、Fastspeech(ファストスピーチ)の技術を利用して実現可能である。Fastspeechの技術は、非自己回帰的型(non-autoregressive)のニューラルネットワークをベースとした音声合成の手法である。Fastspeechは、入力される文字列を音響特徴の系列に変換する。Fastspeechの特徴の一つは、合成する音声の発話長が任意の比率で伸縮可能な点である。なお、Fastspeechの手法自体は、既存の技術であり、下記の参考文献などにも記載されている。
[参考文献]Yi Ren, Yangjun Ruan, Xu Tan, Tao Qin, Sheng Zhao, Zhou Zhao, Tie-Yan Liu,FastSpeech: Fast, Robust and Controllable Text to Speech,In Proc. NeurIPS2019,2019年,arXiv:1905.09263v5,https://doi.org/10.48550/arXiv.1905.09263
【0252】
図12は、Fastspeechの機能構成を説明するための概略図である。図12(A)は、Fastspeechの構成を示す。図12(A)に示す通り、Fastspeechは、発話長を制御するためのLength Regulator(発話長調整部)と、Length Regulatorの前段および後段のそれぞれにおけるFeed-Forward Transformer (FFT) Block(フィードフォワードトランスフォーマーブロック)と、を含む構成をとる。Length RegulatorおよびFeed-Forward Transformer (FFT) Blockのそれぞれは、ニューラルネットワークを用いて実現される。Fastspeechは、音素(phoneme)を入力し、音響特徴量の系列を出力する。図12(B)は、上記のForward Transformer (FFT) Blockの内部の構成を示す。Forward Transformer (FFT) Blockは、畳み込みニューラルネットワークやMulti-Head Attention(マルチヘッドアテンション)等を含んで構成される。図12(C)は、上記のLength Regulatorの内部の構成を示す。Length Regulatorは、内部に、Duration Predictor(発話長予測部)を備える。Duration Predictorは、畳み込みニューラルネットワーク等で構成されるモジュールである。図12(D)は、そのDuration Predictorの内部の構成を示す。Duration Predictorは、入力される各文字の発話長あるいは各単語の発話長を予測する。図12(C)のLength Regulatorは、Duration Predictorによって予測された発話長にしたがって、潜在ベクトルを複製することにより、発話長を伸縮させることができる。
【0253】
図12(A)における前段側のFFT Blockは、1文字ずつ、あるいは1単語ずつの入力を取り込み、各文字あるいは各単語を潜在ベクトルに変換して出力する。前段側のFFT Blockから出力されたそれぞれの潜在ベクトルは、Length Regulator内のDuration Predictor(図12(C)および(D))に入力される。Duration Predictorは、発話長をスカラー値の系列として出力する。この系列の要素は、各文字あるいは各単語についてDuration Predictorによって予測された発話長である。Length Regulator(図12(C))は、Duration Predictorが出力した発話長予測値にしたがって、Length Regulatorに入力されたそれぞれの潜在ベクトルを複製することにより発話長の調整を行う。Length Regulatorから出力された発話長調整後の潜在ベクトルは、図12(A)における後段側のFFT Blockに入力される。後段側のFFT Blockは音響特徴系列を推定し、出力する。
【0254】
Fastspeechの学習は、複数の種類の損失を複合的に用いて行われる。第1に、学習用データに基づいて後段側のFFT Blockから出力された音響特徴系列と、予め学習用データ内の音声(入力される音素(テキスト)に対応する音声)から抽出された音響特徴系列との、L1損失あるいはL2損失が用いられる。また、第2に、学習用データに基づいてDuration Predictorから出力される潜在ベクトルに対応する長さと、予め学習用データに含まれるテキストの1文字あるいは1単語に対応する音響特徴系列の長さとの、L1損失あるいはL2損失が用いられる。例えばこれら2種類の損失の和を、Fastspeechの学習のために用いることができる(式(60)も参照)。つまり、Fastspeechの学習のための学習用データとしては、テキスト文字列と、その文字列に対応する音響特徴系列と、各文字あるいは単語に対応する音響特徴系列の長さの情報を用いるようにする。
【0255】
学習済みのFastspeechによる推論時には、Fastspeechは学習時と同様の計算を行うことにより音響特徴系列を出力する。本実施形態では、Duration Predictorが予測した発話長に所定の係数αを乗算するようにする。係数αの値は、例えばユーザーが予め任意に設定することが可能である。また、係数αとして、様々な値をその都度決めて用いるようにしてもよい。また、係数αとして、ランダムに決定される値をその都度用いるようにしてもよい。係数αを乗算した発話長を用いて、Length Regulatorは潜在ベクトルの複製を行う。これにより、生成される音声特徴系列の長さ(発話長)を様々な比率(例えば、任意の比率)で伸縮させることができる。
【0256】
[発話長の予測]
音声合成モデルを用いて発話長の予測を行う方法について説明する。音声認識装置1001は、上で説明したFastspeechのようなLength RegulatorおよびDuration Predictorを備えた非自己回帰的型の音声合成モデル(潜在ベクトル生成部1200)を用いて、テキストから発話長を予測する。また、この音声合成モデル(潜在ベクトル生成部1200)を用いて、テキストをIntermediate CTC 音声認識モデルの中間層の潜在ベクトル(例えば、第2層エンコーダー部1040(Encoder)からの出力に対応する潜在ベクトル)に変換する。これにより、本実施形態にけるIntermediate CTC音声認識モデル内の第3層エンコーダー部1050(Encoder)の再学習を行うことで、目標領域の話題にニューラルネットワークを適応させる。
【0257】
本実施形態では、Fastspeechそのものとは異なり、潜在ベクトル生成部1200に単にテキスト文字列を入力するのではなく、学習済みのIntermediate CTCの中間層から出力するCTC記号列から求められるブランク記号込みの文字列を入力する。このブランク記号込みの文字列をEnd-to-end音声認識モデルの中間層の潜在ベクトル(例えば、第2層エンコーダー部1040(Encoder)からの出力に対応する潜在ベクトル)に変換するように、潜在ベクトル生成部1200の学習を行う。
【0258】
[潜在ベクトル生成部1200の学習]
本実施形態では、ブランク記号込みの文字列を用いることにより、ブランクの長さもDuration Predictor1310が予測することが可能になる。ドメイン適応時には、目標領域のテキストの先頭と、末尾と、文字と文字の間とにブランク記号を挿入し、Duration Predictor1310によって各文字(ブランク記号を含む)発話長を予測する。Length Regulator(潜在ベクトル複製部)1230は、予測された発話長に基づいて、セルフアテンションニューラルネットワーク1220(Generator)が出力する潜在ベクトルを複製することにより、潜在ベクトルの時間方向の長さを調整する。潜在ベクトル生成部1200は、このようにしてIntermediate CTC 音声認識モデルの中間層の潜在ベクトルを生成する。潜在ベクトル生成部1200が生成した潜在ベクトルを第3層エンコーダー部1050(Encoder)に入力することによって第3層エンコーダー部1050(Encoder)の再学習を可能とする。つまり、第3層エンコーダー部1050(Encoder)のドメイン適応を行う。以下ではその方法をさらに具体的に説明する。
【0259】
潜在ベクトル生成部1200の学習の際には、学習済みのIntermediate CTC音声認識モデルに音響特徴量xを入力する。畳み込みニューラルネットワーク部1020は、この音響特徴量xに基づき、潜在ベクトルを出力する。この畳み込みニューラルネットワーク部1020からの出力に基づき、第1層エンコーダー部1030(Encoder)および第2層エンコーダー部1040(Encoder)は、順次、各層の計算を行い、潜在ベクトルを出力する。つまり、潜在ベクトル生成部1200が目的とする潜在ベクトルは、hであり、次の式(51)および式(52)により計算される。
【0260】
【数51】
【0261】
【数52】
【0262】
一方で、最尤アライメント出力部1110は、潜在ベクトルhに対応する最尤アライメントa(ハット)を、次の式(53)により計算して出力する。
【0263】
【数53】
【0264】
ブランク記号込み文字列生成部1120は、上で最尤アライメント出力部1110が求めた最尤アライメントa(ハット)を基に、文字列を生成する。即ち、ブランク記号込み文字列生成部1120は、最尤アライメントa(ハット)を基に一度認識結果を得てから、その認識結果の文頭と文字間と文末のそれぞれにブランク記号を挿入することによって、次のブランク記号入り文字列を生成する。
【0265】
【数54】
【0266】
例えば、最尤アライメントa(ハット)が、「<b>環環<b><b><b>境音音」である場合、上記手順によってブランク記号込み文字列生成部1120が生成する文字列は、「<b>環<b>境<b>音<b>」となる。なお、<b>はブランク記号である。
【0267】
なお、ブランク記号込み文字列生成部1120は、上記の代わりに、hに対応する最尤アラインメントa(ハット)からブランク記号入り文字列を求めてもよい。また、ブランク記号込み文字列生成部1120は、代わりに、正解文字列を基にブランク記号入り文字列を求めてもよい。
【0268】
潜在ベクトル生成部1200内の線形変換ニューラルネットワーク1210は、上のブランク記号込み文字列生成部1120が生成した文字列を線形変換してベクトルに変換する。
【0269】
さらに、セルフアテンションニューラルネットワーク1220は、線形変換ニューラルネットワーク1210から出力されるベクトルを基に、
【数55】
を生成する。ここで、セルフアテンションニューラルネットワーク1220は、Transformer(トランスフォーマー)あるいはConformer(コンフォーマー)で構成されたジェネレーター(Generator)である。
【0270】
Duration Predictor1310(発話長予測部)は、上記のセルフアテンションニューラルネットワーク1220(Generator)からの出力を基に、発話長dを予測する。
【0271】
つまり、発話長dは、下の式(54)および式(55)により求められる。ただし、これらの式において、Linear(・)は、線形変換ニューラルネットワーク1210による作用を表す。また、Generator(・)は、セルフアテンションニューラルネットワーク1220による作用を表す。またDP(・)は、Duration Predictor1310(発話長予測部)による作用を表す。
【0272】
【数56】
【0273】
【数57】
【0274】
Duration Predictor1310(発話長予測部)の学習は、上記の式(55)によって求められる発話長dと、発話長の正解dtargetと、の間の誤差を逆伝播させることによって行われる。発話長の正解dtargetは、発話長正解生成部1350によって求められる。
【0275】
なお、発話長正解生成部1350は、発話長の正解dtargetを、上記のa(ハット)より求めるa(ハット)に含まれる記号(文字やブランク記号)の連続数を正解dtargetとすることができる。dtargetは、各記号の長さを表す整数の列として表わされる。
【0276】
例えば、最尤アライメントa(ハット)が、「<b>環環<b><b><b>境音音」である場合、dtarget=[1,2,3,1,0,2,0]である。この正数の列は、最初のブランク記号の長さ(連続数)が1、次の「環」の長さが2、その次のブランク記号の長さが3、次の「境」の長さが1、その次のブランク記号の長さが0、次の「音」の長さが2、そして最後のブランク記号の長さが0であることを表す。a(ハット)の中のブランク記号が出現し得る位置でブランク記号が出現しなかった場合に、そのブランク記号の連続数は0である。つまり、上記の最尤アライメントa(ハット)の例の場合には、「環」と「音」の間と、最後の「音」の後とにブランク記号が出現し得るが、実際にはブランク記号<b>が出現していないため、当該箇所におけるブランク記号の長さ(連続数)は0となっている。
【0277】
そして、求められた発話長の正解dtargetに基づいて、Length Regulator1230(発話長調整部)が発話長の調整を行う。つまり、Length Regulator1230(発話長調整部)は、正解dtargetの値を用いて、セルフアテンションニューラルネットワーク1220(Generator)から出力されるベクトルを複製することによって発話長を調整する。
【0278】
セルフアテンションニューラルネットワーク1220(Generator)からの出力は、
【数58】
である。
【0279】
また、Length Regulator1230(発話長調整部)による発話長調整後の結果として生成されるベクトルは、
【数59】
である。
【0280】
セルフアテンションニューラルネットワーク1240(Generator)は、上記のLength Regulator1230(発話長調整部)からの出力を基に計算を行い、潜在ベクトルh(ハット)を出力する。このセルフアテンションニューラルネットワーク1240(Generator)もまた、Transformer(トランスフォーマー)あるいはConformer(コンフォーマー)で構成されたジェネレーターである。
【0281】
つまり、潜在ベクトルh(ハット)は、下の式(56)および式(57)によって算出される。これらの式において、LR(a,b)は、発話長bに基づいてベクトルaにおける発話長の調整を行った結果を表す。また、Generator(・)は、セルフアテンションニューラルネットワーク1240(Generator)による作用を表す。
【0282】
【数60】
【0283】
【数61】
【0284】
潜在ベクトル生成部1200の学習を行う際には、下記の損失Llatentおよび損失Ldurationに基づいて行うようにする。損失Llatentは、第2層エンコーダー部1040(Encoder)から出力されたIntermediate CTC 音声認識モデルの中間層の潜在ベクトルhと、セルフアテンションニューラルネットワーク1240(Generator)から出力された言語的な潜在ベクトルh(ハット)とのL1損失として求められる。また、損失Ldurationは、Duration Predictor1310から出力された発話長dと発話長の正解dtargetとのL1損失として求められる。つまり、下の式(58)および式(59)の通りである。
【0285】
【数62】
【0286】
【数63】
【0287】
損失計算部1260が上記の損失Llatentを算出する。また、損失計算部1360が上記の損失Ldurationを算出する。
【0288】
例えば上記の2つの損失の和であるLossを、潜在ベクトル生成部1200の学習のために用いるようにしてよい。つまりLossは下の式(60)で算出される。
【0289】
【数64】
【0290】
なお、上で説明したL1損失に代えて、L2損失を用いるようにしてもよい。
【0291】
上記の損失Lossに基づいて行う学習の対象は、潜在ベクトル生成部1200の内部のニューラルネットワークのパラメーターのみとする。この学習においては、その他のニューラルネットワークのパラメーターについての更新は行わず、固定とする。
【0292】
以上、潜在ベクトル生成部1200の学習について説明した。学習済みの潜在ベクトル生成部1200は、例えば「<b>環<b>境<b>音<b>」などといったブランク記号込みの文字列を基に、式(57)で示したベクトルh(ハット)を生成するようになる。このベクトルh(ハット)は、Intermediate CTC 音声認識モデルの中間層の潜在ベクトルhに近い値となることが期待される。
【0293】
[第3層エンコーダー部1050(Encoder)の再学習]
次に、第2実施形態における第3層エンコーダー部1050(Encoder)の再学習について説明する。第1実施形態においては擬似CTC記号列を用いてEncoderの学習を行った。第2実施形態では、学習済みの潜在ベクトル生成部1200を用いて生成した潜在ベクトルに基づいて、第3層エンコーダー部1050(Encoder)の再学習を行うようにする。ただし、ここでは、Duration Predictor1310(発話長予測部)が予測した発話長をそのまま用いるだけではなく、潜在ベクトル生成部1200が生成する潜在ベクトルの発話長を様々に変更することによって第3層エンコーダー部1050(Encoder)の再学習の効果を高めるようにする。具体的には、以下に説明する通りである。
【0294】
第3層エンコーダー部1050(Encoder)の再学習のためには、目標領域に属するテキスト文字列を用いる。即ち、推論対象となる音声の話題を含む分野のテキスト文字列を学習のために用いる。この学習のために、目標領域テキスト供給部1100は、目標領域のテキストを供給する本実施形態の再学習では、第1実施形態において用いたような擬似的なCTC記号列を生成するのではなく、Duration Predictor1310(発話長予測部)によって予測された発話長dに、N個(Nは2以上の整数)の様々な係数γを乗算することにより、N種類の発話長を生成する。例えば、所定の条件の下でランダムにN種類の係数γの値を決めてよい。このようにすることによって、様々なパターンの発話長に対応して第3層エンコーダー部1050(Encoder)が頑強に再学習されることが期待される。
【0295】
例えば、係数γの値は、1.0-τ<γ<1.0+τの範囲内での一様分布からランダムに選択される値であってもよい。ここで、τは適宜設定される正定数である。例えば、τの値は、0.2、0.3、あるいは0.4等の値であってよい。ただし、係数γの値は必ずしもランダムに選択されるものではなくてもよい。例えば、1.0-τ<γ<1.0+τの範囲内において適度に分散しているγの値の集合を予め定めておいてそれらのγの値を係数として用いてもよい。
【0296】
第3層エンコーダー部1050(Encoder)の再学習のためにN種類の発話長を使用する場合には、上記の範囲内でN通りのγの値をランダムにサンプリングするようにしてよい。なお、係数γの値が定められると、このγを乗算することにより発話長γdを用いて潜在ベクトル生成部1200は潜在ベクトルを生成するが、その際にはγdの値の小数点第1位以下を四捨五入するようにしてよい。潜在ベクトル生成部1200においては、そのようにして得られたN種の発話長に基づいてLength Regulator1230が様々な発話長の潜在ベクトルを生成する。それらの潜在ベクトルを用いて、第3層エンコーダー部1050(Encoder)の再学習を行うようにする。このように多様な発話長の潜在ベクトルを用いて第3層エンコーダー部1050(Encoder)の再学習を行うことができるため、再学習後のIntermediate CTC音声認識モデルは、発話長の変化に対するも対応能力の高い対応可能な高精度の音声認識モデルとなる。
【0297】
以下では、第3層エンコーダー部1050(Encoder)の再学習のための具体的な2種類の手法(手法1および手法2)を説明する。用途や目的等に応じて、この2種類の手法のうちのどちらかを選択して実施してよい。
【0298】
[再学習の手法1: ターゲットドメインのテキストのみを用いたドメイン適応]
手法1では、第3層エンコーダー部1050(Encoder)の再学習に、目標領域(ターゲットドメイン)のテキストのみを用いる。このような再学習を行った場合には、ソースドメインに属する音声の認識精度は劣化するが、ターゲットドメインについての音声認識精度は、後述する手法2の場合よりも向上することが期待できる。
【0299】
具体的には、ブランク記号込み文字列生成部1120は、目標領域テキスト供給部1100から供給されるターゲットドメインのテキスト文字列yの、文頭、文字間、および文末のそれぞれの位置に、ブランク記号を挿入する。これによりブランク記号込みの文字列が得られる。
【0300】
このブランク記号込みの文字列は、
【数65】
と表わされる。
【0301】
そして、下の式(61)により、発話長を調整する前の潜在ベクトルが得られる。既に説明したように、この式におけるLinear(・)は、線形変換ニューラルネットワーク1210による作用である。また、Generator(・)は、セルフアテンションニューラルネットワーク1220(Generator)による作用である。
【0302】
【数66】
【0303】
さらに、上の式(61)の結果に基づいて、下の式(62)により予測発話長dが得られる。式(62)におけるDP(・)は、Duration Predictor1310(発話長予測部)による作用を表す。
【0304】
【数67】
【0305】
次に、潜在ベクトル生成部1200は,N通りの係数γ(i=1,2,・・・,N)を用いて、下の式(63)および式(64)の計算を行う。ここでは一例として、係数γは、1.0-τ<γ<1+τの範囲内での一様分布にしたがってランダムにサンプリングされた値である。ただし、係数γは、1.0-τ<γ<1+τの範囲内で、ランダムサンプリング以外の方法で適宜定められたものであってもよい。τは、適宜定められる正定数であり、例えば、0.2、0.3、あるいは0.4などといった値であってよい。
【0306】
【数68】
【0307】
【数69】
【0308】
式(63)におけるLR(・)は、Length Regulator1230(発話長調整部)による作用を表す。式(63)の左辺は、Length Regulator1230(発話長調整部)によって発話長が調整された後のi番目の潜在ベクトルを表す表現である。式(64)におけるGenerator(・)は、セルフアテンションニューラルネットワーク1240(Generator)による作用を表す。式(64)によって算出されるhm,i(ハット)は、潜在ベクトル生成部1200が生成する第i番目(1≦i≦N)の潜在ベクトルである。
【0309】
それぞれのi(1≦i≦N)に関して、式(64)で生成されたhm,i(ハット)を第3層エンコーダー部1050(Encoder)に入力する。第3層エンコーダー部1050(Encoder)は、その入力に対応して下の式(65)により、hh,i(ハット)を算出する。
【0310】
【数70】
【0311】
そして、CTC損失計算部1060は、hh,i(ハット)に基づいて、式(66)によりCTC損失Lh,iを算出する。
【0312】
【数71】
【0313】
つまり、損失Lh,iは、第3層エンコーダー部1050(Encoder)からの出力であるhh,i(ハット)を前提としたときの正解テキストyの確率の対数に-1を乗じた値である。
【0314】
CTC損失計算部1060は、1≦i≦Nの範囲内のN通りのiのそれぞれについて、式(66)によるCTC損失Lh,iを計算する。ここでの第3層エンコーダー部1050(Encoder)の最適化における目的関数は、それらのN個のCTC損失の平均として計算される。即ち、CTC損失計算部1060は、損失Lossを下の式(67)によって求める。
【0315】
【数72】
【0316】
つまり、第3層エンコーダー部1050(Encoder)の再学習においては、上記の損失Lossを最小化するように、誤差逆伝播法を用いてニューラルネットワークの内部パラメーターを更新する。なお、第3層エンコーダー部1050(Encoder)の再学習を行う際には、潜在ベクトル生成部1200の内部のパラメーターについては更新対象とせず、固定とする。所定の基準によって再学習が完了した第3層エンコーダー部1050(Encoder)は、ターゲットドメインの話題に適応したニューラルネットワークとなっていることが期待される。
【0317】
[再学習の手法2: ターゲットドメインのテキストとソースドメインの音声テキストとの対を用いたドメイン適応]
手法2では、第3層エンコーダー部1050(Encoder)の再学習に、ターゲットドメインのテキストとソースドメインの音声テキストとの対を用いる。このような再学習を行った場合には、前述の手法1の場合と比較して、ターゲットドメインにおける音声認識精度の改善効果は相対的に小さくなるが、ソースドメインの音声認識精度劣化を軽減する効果が得られる。
【0318】
手法2の場合に、潜在ベクトル生成部1200は、ターゲットドメインのテキスト文字列を基に、N通りの潜在ベクトルを生成する。ターゲットドメインのテキストに基づいて生成される第i番目(1≦i≦N)の潜在ベクトルをhtm,i(ハット)と表す。この潜在ベクトルをhtm,i(ハット)を基に第3層エンコーダー部1050(Encoder)の処理を下の式(68)の通り行う。
【0319】
【数73】
【0320】
さらに、それぞれのiについて、下の式(69)にしたがって、CTC損失計算部1060は、CTC損失を算出する。つまり、CTC損失計算部1060は、N通りのCTC損失Lt,i(1≦i≦N)を算出する。
【0321】
【数74】
【0322】
一方で、学習済みのIntermediate CTC音声認識モデルは、入力されるN個の音響特徴量x(j=1,2,・・・,N)に基づく処理を行う。その処理は、下の式(70)、式(71)、式(72)の通りである。なお、Nは、適宜決定される正整数である。また、hsl,j、hsm,j、およびhsh,jは、Intermediate CTC音声認識モデル内の各層において生成される潜在ベクトルである。
【0323】
【数75】
【0324】
【数76】
【0325】
【数77】
【0326】
また、CTC損失計算部1060は、第3層エンコーダー部1050(Encoder)からの出力hsh,jに基づいて、下の式(73)により、損失を求める。これらの損失に基づいて、誤差逆伝播法により、第3層エンコーダー部1050(Encoder)のパラメーターの調整を行うことができる。
【0327】
【数78】
【0328】
つまり、CTC損失計算部1060は、N通りの損失Ls,j(1≦j≦N)を算出する。
【0329】
この手法2を用いる場合の目的関数の例は、上記のN個の損失Lt,iとN個の損失Ls,jに基づくものであり、下の式(74)で表わされるLossstである。即ち、損失Lossstは、N個の損失Lt,iの平均値に、ソースドメインの認識精度劣化を抑制するための正則化項としてN個の損失Ls,jの平均値を加えたものである。
【0330】
【数79】
【0331】
第3層エンコーダー部1050(Encoder)の再学習においては、上記のLossstの値を最小化する方向に、ニューラルネットワークの内部パラメーターの調整を行う。ただし、この再学習の際には、潜在ベクトル生成部の内部のパラメーターの更新を行わず、これらについては固定とする。つまり、この再学習においては、第3層エンコーダー部(Encoder)1050の内部のパラメーターのみを調整する。
【0332】
つまり、手法2においては、目標領域の記号列に基づいて前記のエンコーダー部の目標領域への適応化(本実施形態においては、第3層エンコーダー部(Encoder)1050の再学習)を行う際に、前述の第1損失(具体的には、上記の損失Lt,i)とともに、第4損失(具体的には、上記のLs,j)にも基づいてエンコーダー部を最適化する。第4損失は、所定領域(当初のエンコーダー部の学習を行った際の領域)の音響特徴量のフレーム列に基づいてエンコーダー部が出力する出力記号列と、当該音響特徴量のフレーム列に対応する正解の記号列と、の差である。
【0333】
以上の通り、手法2を用いて、即ちターゲットドメインおよびソースドメインの両方の入力を用いて第3層エンコーダー部(Encoder)1050の再学習を行う。これにより、再学習後の第3層エンコーダー部(Encoder)1050は、ソースドメインの音声に対する認識精度を落とさずに、ターゲットドメインのテキスト文字列の話題に適応したエンコーダーとなる。
【0334】
学習済みの音声認識装置1001(目標領域に合わせたIntermediate CTC音声認識モデルの再学習も完了済み)は、学習結果として得られたニューラルネットワークのパラメーター値に基づいて認識処理を行う。即ち、音声認識装置1001は、音声供給部1010から供給される音声についての認識処理を行う。
【0335】
第2実施形態の音声認識装置1001もまた、第1実施形態(図8を参照)と同様に、コンピューターとプログラムとを用いて実現するようにしてもよい。コンピューターとプログラムとを用いた実施方法については、第1実施形態において説明したので、ここではその詳細な説明を省略する。
【0336】
[第2実施形態の変形例1]
第2実施形態の処理としては、Duration Predictor1310が出力する発話長の予測値に様々な係数γ(ただし、1.0-τ<γ<1+τの範囲内)を乗算することによって、発話長決定部1320が決定する発話長が様々に変化するようにした。変形例としては、係数γ(あるいはγ)の値を固定値としてもよい。例えば、γ=1.0としてもよい。あるいは、γとしてその他の固定値を用いてもよい。
【0337】
[第2実施形態の変形例2]
上記実施形態では、エンコーダーを3階層(第1層エンコーダー部(Encoder)1030と、第2層エンコーダー部(Encoder)1040と、第3層エンコーダー部(Encoder)1050)で実現した。エンコーダーの階層数を他の数としてもよい。例えば、エンコーダーの階層数を4以上としてもよい。そのような場合にも、少なくともエンコーダーの最終層(高レベル側)を含む層について、目標領域のテキストに基づく適応化を行えるようにする。いずれの場合にも、潜在ベクトル生成部1200が生成した潜在ベクトルを、所定の中間層あるいは最終層に入力するようにして、当該階層およびその後段の階層の、目標領域のテキストに基づく適応化を行う。
【0338】
[第2実施形態の変形例3]
話題(分野、領域)ごとに異なるエンコーダー(第3層エンコーダー部(Encoder)1050等)の再学習を予め行っておいてもよい。その場合には、音声認識対象の話題に合ったエンコーダーをその都度選択することにより、話題に合った音声認識結果の文字列が出力されることとなる。また、逆に、その都度、目的とする話題のテキストを用いて、エンコーダーの学習を行ってもよい。
【0339】
[第2実施形態の構成の効果の検証]
第2実施形態による音声認識装置1001の効果を検証するための実証実験を行った。実証実験に用いた第1の音声は、音声学に関する学会発表音声等を収録するCSJコーパスである。このCSJコーパスを用いて、Intermediate CTC音声認識モデルの学習、および潜在ベクトル生成部1200の学習を行った。その後、天気予報のテキストデータを用いて、上記の「手法2」による第3層エンコーダー部(Encoder)1050の再学習を行った。この実験では、この第3層エンコーダー部(Encoder)1050の再学習の前後において、天気予報評価セットおよびCSJコーパス評価セットでの文字誤り率(CER)を算出した。また、テキスト文字列の置換処理がある場合とない場合とのそれぞれの文字誤り率(CER)を算出した。
【0340】
実験諸元は、以下の通りである。
特徴量:ログメルスペクトログラム80次元+ピッチ3次元+Δ+ΔΔの合計249次元
文字種:3260種類
【0341】
使用したIntermediate-CTC音声認識モデルは、次の通りである。
Convolution: 畳み込みニューラルネットワーク2層
Encoder: Conformer 4層
Encoder: Conformer 4層
Encoder: Conformer 4層
【0342】
潜在ベクトル生成部1200に関しては、次の通りである。
Generator: Conformer 6層
Generator: Conformer 6層
Duration Predictor: 畳み込みニューラルネットワーク2層
【0343】
使用した学習用データについては、次の通りである。
Intermediate CTC音声認識モデルの学習: CSJコーパス
潜在ベクトル生成部1200の学習: CSJコーパス
第3層エンコーダー部(Encoder)1050の再学習: 天気予報テキスト1000文
【0344】
評価用に用いたデータは、天気予報評価音声2時間分である。ただし、この評価用データ内には、第3層エンコーダー部(Encoder)1050の再学習: 天気予報テキスト1000文のデータは含まれていない。
【0345】
学習諸元は、次の通りである。
Intermediate CTC音声認識モデルの学習: 100エポック(epoch)中、バリデーションロス(validation loss)が最も低かったときのエポックを学習したモデルを、評価のために使用
潜在ベクトル生成部1200の学習: 30エポック中、バリデーションロスが最も低かったときのエポックを学習したモデルを、評価のために使用
第3層エンコーダー部(Encoder)1050の再学習: 50エポック中、最もCERの改善が見られたエポックを学習したモデルを使用。ただし、再学習用のデータである天気予報セットの学習が一巡した際に1エポックとカウントした。
発話長のバリエーション数: N=40、N=40
【0346】
下の表3は、本実施形態での第3層エンコーダー部(Encoder)1050の再学習の前後におけるCER(文字誤り率)の比較結果を示す。この表において、τは、予測発話長に乗算するための係数γの決定要因となる値である。即ち、係数γの値は、1.0-τ<γ<1+τの範囲内での一様分布にしたがって例えばランダムにサンプリングされる。τが0.0の場合には、Duration Predictor1310(発話長予測部)が予測した発話長の小数点第1位をそのまま四捨五入することによって、生成されるベクトルの発話長が決まる。τの値が大きければ大きいほど、様々なバリエーションの発話長を用いて学習することになる。この実験においては、τの値として、0.0から0.5まで、0.1刻みで6通りの値を用いている。
【0347】
【表3】
【0348】
上の表3に示した通り、第3層エンコーダー部(Encoder)1050の再学習前のCERが19.2%であったのに対して、再学習後のCERは、τの値に依るが、14.9%から15.3%までの範囲内である。τ=0.0のときにCERは15.1%であり、最も改善した場合としてはτ=0.2または0.3のときにCERは14.9%である。つまり、CERの4%以上の改善が可能であることがわかった。本実施形態で最も改善効果があったのは、誤変換等の置換誤りに関する改善であった。本実験では、例えば、音声認識モデルの再学習によって天気予報の話題に適応したことにより、「寒」(かん)等の同音異義語が多い文字に関する誤りの改善が大きかった。τの値の違いに関しては、τ=0.0の場合のCER15.1%から、τ=0.2または0.3の場合のCER14.9%への0.2%の改善に留まった。τ=0.1の場合のCER15.3%と、τ=0.2または0.3の場合のCER14.9%との差も、0.4%に留まった。
【0349】
なお、本実験では前記の通り4層のConformerで第3層エンコーダー部(Encoder)1050を実現している。この層数を5層以上に増やす場合には、第3層エンコーダー部(Encoder)1050が様々な発話長を処理する能力を向上させ、より一層のCERの改善が期待できる。
【産業上の利用可能性】
【0350】
本発明は、例えば、音声認識処理や、音声認識のためのモデルの適応化の処理のために利用することができる。このような発明を利用できる業種は、広範囲に渡る。なお、本発明の利用範囲はここに例示したものには限られない。
【符号の説明】
【0351】
1 音声認識装置
2 モデル適応化装置
10 音声供給部
20 畳み込みニューラルネットワーク部
30 第1層エンコーダー部(Encoder
32 CTC損失計算部
40 第2層エンコーダー部(Encoder
42 CTC損失計算部
50 第3層エンコーダー部(Encoder
52 CTC損失計算部
110 目的領域テキスト供給部
115 置換処理部
120 擬似CTC記号列生成部(擬似記号列生成部)
130 アダプター部
210 CTC記号列生成部(記号列生成部)
220 平均二乗誤差損失計算部(アダプター部用損失計算部)
230 CTC損失計算部(アダプター部用損失計算部)
901 中央処理装置
902 RAM
903 入出力ポート
904,905 入出力デバイス
906 バス
1001 音声認識装置
1010 音声供給部
1020 畳み込みニューラルネットワーク部
1030 第1層エンコーダー部(Encoder
1040 第2層エンコーダー部(Encoder
1050 第3層エンコーダー部(Encoder
1060 CTC損失計算部
1100 目標領域テキスト供給部
1110 最尤アライメント出力部
1120 ブランク記号込み文字列生成部
1200 潜在ベクトル生成部
1210 線形変換ニューラルネットワーク
1220 セルフアテンションニューラルネットワーク(Generator
1230 Length Regulator(発話長調整部,潜在ベクトル複製部)
1240 セルフアテンションニューラルネットワーク(Generator
1260 損失計算部
1310 Duration Predictor(発話長予測部)
1320 発話長決定部
1330 係数決定部
1350 発話長正解生成部
1360 損失計算部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12