(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025008853
(43)【公開日】2025-01-20
(54)【発明の名称】音声認識システム、音声認識方法およびプログラム
(51)【国際特許分類】
G10L 15/16 20060101AFI20250109BHJP
G10L 15/10 20060101ALI20250109BHJP
G10L 15/18 20130101ALI20250109BHJP
【FI】
G10L15/16
G10L15/10 300G
G10L15/18 300G
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023111421
(22)【出願日】2023-07-06
(71)【出願人】
【識別番号】301022471
【氏名又は名称】国立研究開発法人情報通信研究機構
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】李 勝
(57)【要約】 (修正有)
【課題】大規模言語モデルを利用して、より推論精度の高い音声認識システムを提供する。
【解決手段】音声認識システムは、音声信号に含まれる単語に対応するトークンをトークン単位で出力することのできる第1の学習済み推論モデル(SSLモデル20)と、1または複数のトークンの入力に基づく推論によって、対応する1または複数のトークンを出力する第2の学習済み推論モデル(大規模言語モデル30)と、第1の学習済み推論モデルの第1推論出力22と、第2の学習済み推論モデルの出力であって、第1推論出力に対応する第2推論出力32とを単語単位で乗算する乗算器26と、を含む。乗算器の出力である新たな確率分布に基づき選択した単語が、第2の学習済み推論モデルに入力される。
【選択図】
図3
【特許請求の範囲】
【請求項1】
音声信号に含まれる単語に対応するトークンをトークン単位で出力することのできる第1の学習済み推論モデルと、
1または複数のトークンの入力に基づく推論によって、対応する1または複数のトークンを出力する第2の学習済み推論モデルと、
前記第1の学習済み推論モデルの第1推論出力と、前記第2の学習済み推論モデルの出力であって、前記第1推論出力に対応する第2推論出力とを単語単位で乗算する乗算器とを備え、
前記乗算器の出力である新たな確率分布に基づき選択した単語が、前記第2の学習済み推論モデルに入力される、音声認識システム。
【請求項2】
前記乗算器の出力は、音声認識システムの認識出力として利用される、請求項1に記載の音声認識システム。
【請求項3】
前記第2の学習済み推論モデルは、音声認識の対象言語のコーパスを用いて、少なくとも入力シーケンスに対する次の単語を予測するタスクを事前学習済みである、請求項1または2に記載の音声認識システム。
【請求項4】
前記第2の学習済み推論モデルは、前記対象言語の方言データを用いてファインチューニングされている、請求項3に記載の音声認識システム。
【請求項5】
コンピュータが実行する音声認識方法であって、
第1の学習済み推論モデルを用いて、音声信号に含まれる単語に対応するトークンをトークン単位で出力するステップと、
第2の学習済み推論モデルを用いて、1または複数のトークンの入力に基づく推論によって、対応する1または複数のトークンを出力するステップと、
前記第1の学習済み推論モデルの第1推論出力と、前記第2の学習済み推論モデルの出力であって、前記第1推論出力に対応する第2推論出力とを単語単位で乗算するステップと、
前記乗算の結果得られる新たな確率分布に基づき選択した単語を前記第2の学習済み推論モデルに入力するステップとを備える、音声認識方法。
【請求項6】
音声認識を行うためのプログラムであって、コンピュータに、
第1の学習済み推論モデルを用いて、音声信号に含まれる単語に対応するトークンをトークン単位で出力するステップと、
第2の学習済み推論モデルを用いて、1または複数のトークンの入力に基づく推論によって、対応する1または複数のトークンを出力するステップと、
前記第1の学習済み推論モデルの第1推論出力と、前記第2の学習済み推論モデルの出力であって、前記第1推論出力に対応する第2推論出力とを単語単位で乗算するステップと、
前記乗算の結果得られる新たな確率分布に基づき選択した単語を前記第2の学習済み推論モデルに入力するステップとを実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音声認識システム、音声認識方法およびプログラムに関する。
【背景技術】
【0002】
ASR(Automatic Speech Recognition)のアプリケーションの一例として、大規模に学習された大規模言語モデルを含む音声認識を行うシステムが公知である。大規模言語モデルとして、代表的には、エンコーダベースのモデルと、デコーダベースのモデルとが存在する。
【0003】
エンコーダベースのモデルとして、例えば、BERT(非特許文献1など参照)やTransformerの双方向エンコーダ(非特許文献2など参照)などが知られている。デコーダベースのモデルとして、例えば、GPT-2(非特許文献3など参照)や、一方向性Transformerデコーダ)などが知られている。
【0004】
大規模言語モデルは、主として、エラー訂正、モデル圧縮、再スコアリング、マルチモーダルアプリケーションなどに用いることもできる。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】J. Devlin, M.-W. Chang, K. Lee, and K. Toutanova, "Bert: Pre-training of deep bidirectional transformers for language understanding," arXiv preprint arXiv:1810.04805, 2018.
【非特許文献2】Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Lukasz Kaiser, and Illia Polosukhin, Attention is all you need, Proc. NeurlPS 30 (2017).
【非特許文献3】A. Radford, J. Wu, R. Child, D. Luan, D. Amodei, I. Sutskever et al., "Language models are unsupervised multitask learners," OpenAI blog, vol. 1, no. 8, p. 9, 2019.
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述したような大規模言語モデルは、ベクトルのシーケンスの入力に対して対応するベクトルのシーケンスを出力するように設計されている。このようなシーケンス・トゥ・シーケンスの設計を前提として、センテンス単位(文単位)で処理する、大規模言語モデルを含む音声認識システムが提案されている。
【0007】
本発明は、大規模言語モデルを利用して、より推論精度の高い音声認識システムを提供することを目的とする。
【課題を解決するための手段】
【0008】
ある実施の形態に従う音声認識システムは、音声信号に含まれる単語に対応するトークンをトークン単位で出力することのできる第1の学習済み推論モデルと、1または複数のトークンの入力に基づく推論によって、対応する1または複数のトークンを出力する第2の学習済み推論モデルと、第1の学習済み推論モデルの第1推論出力と、第2の学習済み推論モデルの出力であって、第1推論出力に対応する第2推論出力とを単語単位で乗算する乗算器とを含む。乗算器の出力である新たな確率分布に基づき選択した単語が、第2の学習済み推論モデルに入力される。
【0009】
乗算器の出力は、音声認識システムの認識出力として利用されてもよい。
第2の学習済み推論モデルは、音声認識の対象言語のコーパスを用いて、少なくとも入力シーケンスに対する次の単語を予測するタスクを事前学習済みであってもよい。
【0010】
第2の学習済み推論モデルは、対象言語の方言データを用いてファインチューニングされていてもよい。
【0011】
別の実施の形態に従うコンピュータが実行する音声認識方法は、第1の学習済み推論モデルを用いて、音声信号に含まれる単語に対応するトークンをトークン単位で出力するステップと、第2の学習済み推論モデルを用いて、1または複数のトークンの入力に基づく推論によって、対応する1または複数のトークンを出力するステップと、第1の学習済み推論モデルの第1推論出力と、第2の学習済み推論モデルの出力であって、第1推論出力に対応する第2推論出力とを単語単位で乗算するステップと、乗算の結果得られる新たな確率分布に基づき選択した単語を第2の学習済み推論モデルに入力するステップとを含む。
【0012】
さらに別の実施の形態に従えば、音声認識を行うためのプログラムが提供される。プログラムは、コンピュータに、第1の学習済み推論モデルを用いて、音声信号に含まれる単語に対応するトークンをトークン単位で出力するステップと、第2の学習済み推論モデルを用いて、1または複数のトークンの入力に基づく推論によって、対応する1または複数のトークンを出力するステップと、第1の学習済み推論モデルの第1推論出力と、第2の学習済み推論モデルの出力であって、第1推論出力に対応する第2推論出力とを単語単位で乗算するステップと、乗算の結果得られる新たな確率分布に基づき選択した単語を第2の学習済み推論モデルに入力するステップとを実行させる。
【発明の効果】
【0013】
本発明によれば、大規模言語モデルを利用して、より推論精度の高い音声認識システムを提供できる。
【図面の簡単な説明】
【0014】
【
図1】関連技術に従う音声認識システムのモデル構成の一例を示す模式図である。
【
図2】
図1に示す乗算器による乗算処理の一例を説明するための図である。
【
図3】本実施の形態に従う音声認識システムのモデル構成の一例を示す模式図である。
【
図4】本実施の形態に従う音声認識システムにおける処理例を説明するための図である。
【
図5】本実施の形態に従う音声認識システムのモデル構成の別の一例を示す模式図である。
【
図6】本実施の形態に従う音声認識システムにおける処理例を説明するための図である。
【
図7】本実施の形態に従う音声認識システムを実現するハードウェア構成例を示す模式図である。
【
図8】本実施の形態に従う音声認識システムにおける処理手順例を示すフローチャートである。
【
図9】本実施の形態に従う音声認識システムにおける処理手順例を示すフローチャートである。
【発明を実施するための形態】
【0015】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0016】
[A.モデル構成]
本実施の形態に従う音声認識システムのモデル構成について説明する。
【0017】
図1は、関連技術に従う音声認識システム3のモデル構成の一例を示す模式図である。
まず、
図1を参照して、本実施の形態を理解するための基本的な考え方を説明する。音声認識システム3は、入力シーケンス4に含まれる各単語に対応するトークン6を最終的に算出するSSL(Self-Supervised Learning:自己教師あり学習)モデル20と、トークン6を入力として、単語シーケンスを最終的に出力する大規模言語モデル30とを含む。
【0018】
SSLモデル20は、自動音声認識(ASR)タスクのためのモデルである。SSLモデル20は、第1の学習済み推論モデルに相当し、音声信号に含まれる単語に対応するトークンをトークン単位で出力する。SSLモデル20は、音声信号の入力から特徴量を抽出する多層のCNN(Convolutional Neural Network)を含む。
【0019】
SSLモデル20は、例えば、エンコーダベースのモデルであってもよく、Word2Vec(W2V)などを用いることができる。
【0020】
音声認識システム3には、システム全体で共通に参照される語彙辞書(図示せず)が存在する。語彙辞書には、音声認識の処理の単位である単語(トークン化される単位)が登録されている。登録されている各単語には、各単語を特定するための識別情報(以下、「単語ID」とも称す。)が割り当てられている。出力されるセンテンスは、認識された単語自体の列であってもよいが、処理の都合上、語彙辞書において各単語に割り当てられている単語IDの列とすることが好ましい。
図1に示す音声認識システム3においては、SSLモデル20から大規模言語モデル30へは、語彙辞書において定義された単語IDが出力される。なお、単語IDに基づいて語彙辞書を参照することにより、対応する単語自体をいつでも取り出すことができる。
【0021】
SSLモデル20は、ラベル無し音声を用いたSSLに基づく事前学習により生成できる。また、ラベルありデータを用いて、CTC(Connectionist Temporal Classification)アルゴリズムに従って、SSLモデル20はファインチューニングされている。そのため、SSLモデル20の推論出力22(1または複数のトークン6)は、ProbCTCと表記されている。
【0022】
SSLモデル20の推論出力22は、音声認識結果を示し、語彙辞書に含まれる単語についての確率分布である。argmax層24は、推論出力22に含まれる最大の確率をもつ単語(単語ID)を最終的な音声認識結果(トークン6)として出力する。順次出力される1または複数のトークン6がセンテンス8(1文に相当する)となる。
【0023】
大規模言語モデル30は、エンコーダベースのモデル(例えば、BERTなど)であってもよいし、デコーダベースのモデル(例えば、GPT-2やその後継モデルなど)であってもよい。大規模言語モデル30は、SSLモデル20による音声認識の対象言語のコーパスを用いて、少なくとも入力シーケンスに対する次の単語を予測するタスクを事前学習済みである。
【0024】
さらに、大規模言語モデル30は、SSLモデル20による音声認識の対象言語の方言データを用いてファインチューニングされていてもよい。例えば、後述するように、中国語(簡体字)のコーパスを用いて事前学習した上で、中国語(簡体字)-中国語(繁体字)データセットを用いてファインチューニングされていてもよい。
【0025】
大規模言語モデル30は、SSLモデル20から出力されるセンテンス8の入力に対して、センテンス8に含まれる各単語の次に存在する単語についての確率を出力する。大規模言語モデル30は、第2の学習済み推論モデルに相当し、センテンス8(1または複数のトークン6)の入力に基づく推論によって、対応する1または複数のトークンを出力する。大規模言語モデル30の推論出力32は、SSLモデル20の推論出力22と同様、語彙辞書に含まれる単語についての確率分布である。そのため、大規模言語モデル30の推論出力32は、ProbPLMと表記されている。
【0026】
乗算器34は、SSLモデル20の推論出力22(単語についての確率分布)と大規模言語モデル30の推論出力32(単語についての確率分布)とを乗算して、乗算結果10を出力する。乗算結果10は、SSLモデル20の推論出力22および大規模言語モデル30の推論出力32と同様、語彙辞書に含まれる単語についての確率分布である。乗算器34は、SSLモデル20の推論出力22と、大規模言語モデル30の出力のうち、推論出力22に対応する推論出力32とを単語単位で乗算する。
【0027】
図2は、
図1に示す乗算器34による乗算処理の一例を説明するための図である。
図2を参照して、乗算器34による乗算処理の一例について、さらに詳しく説明する。
【0028】
図2において、推論出力22は、入力シーケンス4のある位置におけるSSLモデル20が出力する単語についての確率分布を示す。推論出力22において、語彙辞書に含まれるすべての単語について、確率が算出されている。
図2において、推論出力32は、入力シーケンス4の同じ位置における大規模言語モデル30が出力する単語についての確率分布を示す。
【0029】
単語単位で推論出力22と推論出力32とを乗算して得られる乗算結果10は、語彙辞書に含まれるすべての単語について、新たな確率分布を示す。確率は、0~1の間の値をとるため、推論出力22および推論出力32において、相対的に大きな値の確率をもつ単語は、相対的に小さな値の確率をもつ単語より大きな値を乗算結果10において示す。その結果、SSLモデル20の推論出力22は、大規模言語モデル30の推論出力32により補正されることになる。
【0030】
図1および
図2に示すように、SSLモデル20の推論出力22を大規模言語モデル30の推論出力32により補正することで、推論精度を高めることができる。
【0031】
図1および
図2には、大規模言語モデル30としてGPT-2を用いる例を示すが、大規模言語モデル30としてBERTを用いた場合も同様に、推論精度を高めることができる。
【0032】
図3は、本実施の形態に従う音声認識システム1のモデル構成の一例を示す模式図である。
図3を参照して、音声認識システム1は、
図1に示す音声認識システム3に比較して、乗算器34に代えて乗算器26を含む。
図3には、大規模言語モデル30として、GPT-2またはその後継モデルを用いた構成例を示す。
【0033】
乗算器26は、SSLモデル20の推論出力22(単語についての確率分布)と大規模言語モデル30の推論出力32(単語についての確率分布)とを乗算して、乗算結果を出力する。乗算結果は、SSLモデル20の推論出力22および大規模言語モデル30の推論出力32と同様、語彙辞書に含まれる単語についての確率分布である。乗算器26は、SSLモデル20の推論出力22と、大規模言語モデル30の出力のうち、推論出力22に対応する推論出力32とを単語単位で乗算する。
【0034】
図3に示す音声認識システム1においては、現時点のステップt+1におけるSSLモデル20の推論出力と、1つ前のステップ(ステップt)における大規模言語モデル30の推論出力とを組み合わせた結果を、大規模言語モデル30に入力することで、現時点のステップt+1の推論出力を得る。
【0035】
このように、乗算器26の出力である新たな確率分布に基づき選択した単語が、大規模言語モデル30に入力される。
【0036】
このように、先に得られたそれぞれのモデルの推論出力を順次フィードバックすることで、大規模言語モデル30に入力するトークンの精度を向上でき、その結果、大規模言語モデル30の推論精度を高めることができる。
【0037】
図4は、本実施の形態に従う音声認識システム1における処理例を説明するための図である。
図4を参照して、音声認識システム1における処理例について、さらに詳しく説明する。
【0038】
図4においては、処理のステップごとに、SSLモデル20の出力の状態(Prob CTC & Combine & argmax)と、大規模言語モデル30の出力の状態および大規模言語モデル30への入力をマスクするための信号(以下、「マスク信号」とも称す。)の状態(Prob PLM-GPT)が示されている。
【0039】
図4に示す例では、1つのセンテンスは4つの単語を含む。以下の説明において、確率分布Pについて、SSLモデル20の推論出力を下付き文字「S」を用いて表記し、大規模言語モデル30の推論出力を下付き文字「L」を用いて表記する。また、確率分布Pについて、どのステップの状態の確率分布であるかを上付き文字を用いて表記する。例えば、「P
S
1」は、ステップ(r=1)におけるSSLモデル20の推論出力22であることを示す。
【0040】
図4を参照して、まずステップ(r=1)においては、大規模言語モデル30の推論出力32が得られていないため、予め定められたダミー値(P
L
1=1)が用いられる。その結果、乗算器26は、SSLモデル20の推論出力22である確率分布P
S
1をそのまま出力する。SSLモデル20の確率分布P
S
1がそのままargmax層24に与えられる。argmax層24において、確率分布P
S
1に含まれる最大の確率をもつ単語(単語ID)が選択され、単語シーケンスの最初の単語h
1として出力される。出力された単語h
1は、音声認識結果として利用されるとともに、大規模言語モデル30の入力としても利用される。すなわち、乗算器26の出力は、音声認識システム1の認識出力として利用される。
【0041】
大規模言語モデル30には、文頭を示すトークン「CLS」が単語h1の前にh0として付加された、h0(CLS)h1が入力される。このとき、このときマスク信号として、[1100]が用いられる。マスク信号[1100]に従って、大規模言語モデル30は、h0(CLS)h1を用いて2番目の単語を推論する。すなわち、大規模言語モデル30は、センテンスの2番目の単語についての確率分布PL
2を出力する。
【0042】
次のステップ(r=2)においては、SSLモデル20は、2番目の単語の音声認識結果である確率分布PS
2を出力する。乗算器26は、SSLモデル20の確率分布PS
2と、先のステップにおいて算出された大規模言語モデル30の確率分布PL
2(2番目の単語の推論出力)とを乗算する。argmax層24において、乗算結果(新たな確率分布)に含まれる最大の確率をもつ単語(単語ID)が選択され、単語h2として出力される。出力された単語h2は、音声認識結果として利用されるとともに、大規模言語モデル30の入力としても利用される。
【0043】
大規模言語モデル30には、文頭を示すトークン「CLS」が単語h1の前にh0として付加された、h0(CLS)h1h2が入力される。このとき、このときマスク信号として、[1110]が用いられる。マスク信号[1100]に従って、大規模言語モデル30は、h0(CLS)h1h2を用いて3番目の単語を推論する。すなわち、大規模言語モデル30は、センテンスの3番目の単語についての確率分布PL
3を出力する。
【0044】
次のステップ(r=3)においては、SSLモデル20は、3番目の単語の音声認識結果である確率分布PS
3を出力する。乗算器26は、SSLモデル20の確率分布PS
3と、先のステップにおいて算出された大規模言語モデル30の確率分布PL
3(3番目の単語の推論出力)とを乗算する。argmax層24において、乗算結果(新たな確率分布)に含まれる最大の確率をもつ単語(単語ID)が選択され、単語h3として出力される。出力された単語h3は、音声認識結果として利用されるとともに、大規模言語モデル30の入力としても利用される。
【0045】
大規模言語モデル30には、文頭を示すトークン「CLS」が単語h1の前にh0として付加された、h0(CLS)h1h2h3が入力される。このとき、このときマスク信号として、[1110]が用いられる。マスク信号[1110]に従って、大規模言語モデル30は、h0(CLS)h1h2h3を用いて4番目の単語を推論する。すなわち、大規模言語モデル30は、センテンスの4番目の単語についての確率分布PL
4を出力する。
【0046】
次のステップ(r=4)においては、SSLモデル20は、4番目の単語の音声認識結果である確率分布PS
4を出力する。乗算器26は、SSLモデル20の確率分布PS
4と、先のステップにおいて算出された大規模言語モデル30の確率分布PL
4(4番目の単語の推論出力)とを乗算する。argmax層24において、乗算結果(新たな確率分布)に含まれる最大の確率をもつ単語(単語ID)が選択され、単語h4として出力される。出力された単語h4は、音声認識結果として利用される。
【0047】
次に、大規模言語モデルとしてBERTを用いる例について説明する。
図5は、本実施の形態に従う音声認識システム2のモデル構成の別の一例を示す模式図である。
図5を参照して、音声認識システム2は、
図3に示す音声認識システム1と同様に、乗算器28を含む。
図5には、大規模言語モデル36として、BERTを用いた構成例を示す。
【0048】
図3に示す音声認識システム1と同様に、音声認識システム2においては、SSLモデル20の推論出力22は、大規模言語モデル36の推論出力38により補正されて、大規模言語モデル36に入力されることで、単語単位で処理が実行される。
【0049】
すなわち、乗算器28は、SSLモデル20の推論出力22(単語についての確率分布)と大規模言語モデル36の推論出力38(単語についての確率分布)とを乗算して、乗算結果を出力する。乗算結果は、SSLモデル20の推論出力22および大規模言語モデル36の推論出力38と同様、語彙辞書に含まれる単語についての確率分布である。乗算器26は、SSLモデル20の推論出力22と、大規模言語モデル36の出力のうち、推論出力22に対応する推論出力38とを単語単位で乗算する。乗算器26の出力である新たな確率分布に基づき選択した単語が、大規模言語モデル36に入力される。
【0050】
このように、先に得られたそれぞれのモデルの推論出力を順次フィードバックすることで、大規模言語モデル36に入力するトークンの精度を向上でき、その結果、大規模言語モデル36の推論精度を高めることができる。
【0051】
図6は、本実施の形態に従う音声認識システム2における処理例を説明するための図である。
図6を参照して、音声認識システム2における処理例について、さらに詳しく説明する。
【0052】
図6においては、
図4と同様に、処理のステップごとに、SSLモデル20の出力の状態(Prob CTC & Combine & argmax)と、大規模言語モデル36の出力の状態および大規模言語モデル36への入力をマスクするための信号(マスク信号)の状態(Prob PLM-GPT)が示されている。
【0053】
図6に示す例では、1つのセンテンスは4つの単語を含む。確率分布Pについては、
図4と同様である。
【0054】
図6を参照して、まずステップ(r=1)においては、SSLモデル20の推論出力22である確率分布P
S
1が得られる。確率分布P
S
1は、1番目の単語の音声認識結果である。この段階では、大規模言語モデル36の推論出力38が得られていないため、予め定められたダミー値(P
L
1=1)を用いて、確率分布P
S
1と確率分布P
L
1とが乗算される。この乗算によって、SSLモデル20の推論出力22である確率分布P
S
1が補正される(ただし、この段階では、実質的な補正は行われず、確率分布P
S
1がそのまま出力される)。argmax層24において、乗算結果(確率分布P
S
1)に含まれる最大の確率をもつ単語(単語ID)が選択され、単語シーケンスの最初の単語h
1として出力される。出力された単語h
1は、音声認識結果として利用される。すなわち、乗算器28の出力は、音声認識システム2の認識出力として利用される。
【0055】
次のステップ(r=2)においては、SSLモデル20は、2番目の単語の音声認識結果である確率分布PS
2を出力する。先のステップ(r=1)において、推論された単語h1が得られているので、大規模言語モデル36には、文頭を示すトークン「CLS」を単語h0として単語h1の前に付加された結果、および、マスク信号[1011]が入力される。この入力に対して、大規模言語モデル36の推論出力である確率分布PL
2が得られると、乗算器28は、確率分布PS
2と確率分布PL
2とを乗算する。この乗算によって、SSLモデル20の推論出力22である確率分布PS
2が補正される。argmax層24は、補正後の確率分布PS
2に含まれる最大の確率をもつ単語(単語ID)が選択され、単語シーケンスの2番目の単語h2として出力する。出力された単語h2は、音声認識結果として利用される。
【0056】
次のステップ(r=3)においては、SSLモデル20は、3番目の単語の音声認識結果である確率分布PS
3を出力する。先のステップにおいて、推論された単語h1および単語h2が得られているので、大規模言語モデル36には、文頭を示すトークン「CLS」としての単語h0と単語h1、単語h2を連結した結果、および、マスク信号[1101]が入力される。この入力に対して、大規模言語モデル36の推論出力である確率分布PL
3が得られると、乗算器28は、確率分布PS
3と確率分布PL
3とを乗算する。この乗算によって、SSLモデル20の推論出力22である確率分布PS
3が補正される。argmax層24は、補正後の確率分布PS
3に含まれる最大の確率をもつ単語(単語ID)が選択され、単語シーケンスの3番目の単語h3として出力する。出力された単語h3は、音声認識結果として利用される。
【0057】
次のステップ(r=4)においては、SSLモデル20は、4番目の単語の音声認識結果である確率分布PS
4を出力する。先のステップにおいて、推論された単語h1、単語h2および単語h3が得られているので、大規模言語モデル36には、文頭を示すトークン「CLS」としての単語h0と単語h1、単語h2、単語h3を連結した結果、および、マスク信号[1110]が入力される。この入力に対して、大規模言語モデル36の推論出力である確率分布PL
4が得られると、乗算器28は、確率分布PS
4と確率分布PL
4とを乗算する。この乗算によって、SSLモデル20の推論出力22である確率分布PS
4が補正される。argmax層24は、補正後の確率分布PS
4に含まれる最大の確率をもつ単語(単語ID)が選択され、単語シーケンスの4番目の単語h4として出力する。出力された単語h4は、音声認識結果として利用される。
【0058】
次に、上述した処理について、数式を用いて、一般化して説明する。1つのセンテンスがR個の単語を含む場合を想定する。単語単位で処理する場合には、初期状態を含めて、(R+1)回の処理が必要となる。
【0059】
大規模言語モデル30としてGPT-2を用いた場合には、r番目の単語の音声認識結果をhr(ただし、1≦r≦t)とすると、r番目の単語のSSLモデル20の推論出力22である確率分布PS
rとr番目の単語の大規模言語モデル30の推論出力PL
rとを用いて、(1)式のように示すことができる。
【0060】
大規模言語モデル30には、現時点のステップまでに出力された単語シーケンスが入力される。大規模言語モデル30に入力される単語シーケンスHL
rは、(2)式のように示すことができる。次のステップにおける大規模言語モデル30の推論出力である確率分布PL
t+1は、(3)式のように示すことができる。なお、ΘLは、大規模言語モデル30を示す。
【0061】
【0062】
大規模言語モデル36としてBERTを用いた場合には、r番目の単語の音声認識結果をhrは、r番目の単語のSSLモデル20の推論出力22である確率分布PS
rとr番目の単語の大規模言語モデル36の推論出力PL
rとを用いて、(4)式のように示すことができる。また、大規模言語モデル36に入力される単語シーケンスHL
rは、(5)式のように示すことができる。
【0063】
【0064】
以下のTable1には、大規模言語モデル30としてGPT-2を用いた場合(example GPT)、および、大規模言語モデル36としてBERTを用いた場合(example BERT)の各々において、順次出力される結果および対応するマスク信号の例を示す。なお、Table1には、主として台湾で使用される中国語の発話を音声認識する例を示す。そのため、大規模言語モデルは、繁体字中国語の単語からなる推論出力を出力する。
【0065】
【0066】
Table1において、step0~step5の各々に対応する行には、大規模言語モデルに入力されるシーケンスに含まれる1または複数の単語を示す。
【0067】
大規模言語モデル30としてGPT-2を用いた場合には、各ステップにおいて処理される単語および当該単語に先行して得られた処理結果を含むトークン列が大規模言語モデル30に入力される。
【0068】
一方、大規模言語モデル36としてBERTを用いた場合には、SSLモデル20から出力されるトークン列のうち、推論対象となるトークンをマスクしたものが大規模言語モデル36に入力される。
【0069】
[B.評価例]
次に、本実施の形態に従う音声認識システムによる認識精度についての評価例について説明する。以下の評価例においては、台湾アクセントの発話音声に対する自動音声認識(ASR)タスクを想定する。台湾アクセントの発話音声は、中国語の標準語(Mandarin)に類似しているが、語彙において大きな相違が存在し得る(http://old-site.clsp.jhu.edu/ws04/groups/ws04casrなどを参照)。
【0070】
Common Voice(https://commonvoice.mozilla.org/zh-TW)のうち中国語(簡体字)-中国語(繁体字)データセット(Zh-Tw dataset)を用いて、ファインチューニングされるとともに評価されたモデルを用いた。ファインチューニングのデータセットとして、3.3時間分(3,507発話)を用いるとともに、テストには、2.9時間分(2,895発話)の大規模言語モデルを用いた。語彙サイズは、21,128語である。発話入力として、16kHzでサンプリングされたものを用いた。なお、データ制限により、使用されたデータセットのサイズが小さいので、テキストベースの大規模言語モデルに着目した。
【0071】
事前学習済みSSLモデルとして、"wav2vec2-large-xlsr-533"(https://huggingface.co/facebook/wav2vec2-large-xlsr-53)を用いた。なお、SSLモデルは、中国語(簡体字)-中国語(繁体字)データセット(Zh-Tw dataset)を用いて、ファインチューニングされている。
【0072】
事前学習済み大規模言語モデルとして、GPT-2の一例として、"gpt2-base-chinese"を用いるとともに、BERTの一例として、"bert-base-chinese"(https://github.com/ckiplab/ckip-transformers)を用いた。両モデルとも、中国語(簡体字)-中国語(繁体字)データセット(Zh-Tw dataset)のテキストを用いて、ファインチューニングされている。
【0073】
各モデルのパラメータは、以下のTable2にようになっている。
【0074】
【0075】
モデルの評価指標としては、認識精度の一例として、字誤り率であるCER(Character Error Rate)を用いるとともに、処理速度の指標であるRTF(Real-Time Factor)を用いた。以下のTable3に評価例を示す。Table3における矢印は、モデル同士のつながり(データの流れ)を示す。
【0076】
【0077】
「baseline」(関連技術)および「proposed」(本実施の形態)は、いずれも大規模言語モデルによる効果を示す。Table3に示すように、GPT-2およびBERTのいずれを用いた場合であっても、関連技術における指標を超える性能が発揮されていることが分かる。また、GPT-2については、ファインチューニングすることで、より性能を高められることが分かる。
【0078】
処理速度についても、GPT-2を用いた場合には、処理速度が低下することが示されているが、許容範囲内であると評価できる。また、BERTを用いた場合には、処理速度に実質的な影響はない。なお、並列処理を採用することで、処理速度を向上できる可能性がある。
【0079】
次に、本実施の形態に従う音声認識システムによる推論出力の一例を示す。以下のTable4には、2つの推論出力の例を示す。
【0080】
【0081】
Table4のexample1に示す推論出力においては、SSLモデル20(W2V)が出力するセンテンス内の3単語(2番目、6番目および7番目)に誤りが存在する。
【0082】
「baseline」(関連技術)によれば、大規模言語モデル30において、2単語(2番目および6番目)が修正されるものの、1単語(7番目)には誤りが残っている。これに対して、「proposed」(本実施の形態)によれば、センテンス内のすべての単語を正しく認識できている。
【0083】
同様に、Table4のexample2に示す推論出力においては、SSLモデル20(W2V)が出力するセンテンス内の3単語(4番目、10番目および11番目)に誤りが存在する。
【0084】
「baseline」(関連技術)によれば、大規模言語モデル30において、2単語(4番目および11番目)が修正されるものの、1単語(12番目)には誤りが残っている。これに対して、「proposed」(本実施の形態)によれば、センテンス内のすべての単語を正しく認識できている。
【0085】
[C.ハードウェア構成例]
次に、本実施の形態に従う音声認識システムを実現するためのハードウェア構成例について説明する。
【0086】
図7は、本実施の形態に従う音声認識システムを実現するハードウェア構成例を示す模式図である。音声認識システムは、例えば、コンピュータの一例である情報処理装置100を用いて実現される。
【0087】
図7を参照して、情報処理装置100は、主要なハードウェアコンポーネントとして、CPU(Central Processing Unit)102と、GPU(Graphics Processing Unit)104と、主メモリ106と、ディスプレイ108と、ネットワークインターフェイス(I/F:interface)110と、入力デバイス112と、光学ドライブ114と、二次記憶装置120とを含む。
【0088】
CPU102および/またはGPU104は、音声認識システムの実現に必要な処理を実行するプロセッサである。CPU102およびGPU104は、複数個配置されてもよいし、複数のコアを有していてもよい。
【0089】
主メモリ106は、プロセッサ(CPU102および/またはGPU104)が処理を実行するにあたって、プログラムコードやワークデータなどを一時的に格納(あるいは、キャッシュ)する記憶領域であり、例えば、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性メモリデバイスなどで構成される。
【0090】
ディスプレイ108は、処理に係るユーザインターフェイスや処理結果などを出力する表示部であり、例えば、LCD(Liquid Crystal Display)や有機EL(Electroluminescence)ディスプレイなどで構成される。
【0091】
ネットワークインターフェイス110は、インターネット上またはイントラネット上の任意の情報処理装置などとの間でデータをやり取りする。ネットワークインターフェイス110としては、例えば、イーサネット(登録商標)、無線LAN(Local Area Network)、Bluetooth(登録商標)などの任意の通信方式を採用できる。
【0092】
入力デバイス112は、ユーザからの指示や操作などを受け付けるデバイスであり、例えば、キーボード、マウス、タッチパネル、ペンなどで構成される。入力デバイス112は、マイクなどの音声信号を収集するデバイスを含む。
【0093】
光学ドライブ114は、CD-ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)などの光学ディスク116に格納されている情報を読出して、他のコンポーネントへ出力する。光学ディスク116は、非一過的(non-transitory)な記録媒体の一例であり、任意のプログラムを不揮発的に格納した状態で流通する。光学ドライブ114が光学ディスク116からプログラムを読み出して、二次記憶装置120などにインストールすることで、コンピュータが音声認識システムとして機能するようになる。したがって、本発明の主題は、二次記憶装置120などにインストールされたプログラム自体、または、本実施の形態に従う機能や処理を実現するためのプログラムを格納した光学ディスク116などの記録媒体であってもよい。
【0094】
図7には、非一過的な記録媒体の一例として、光学ディスク116などの光学記録媒体を示すが、これに限らず、フラッシュメモリなどの半導体記録媒体、ハードディスクまたはストレージテープなどの磁気記録媒体、MO(Magneto-Optical Disk)などの光磁気記録媒体を用いてもよい。
【0095】
二次記憶装置120は、コンピュータを情報処理装置100として機能させるために必要なプログラムおよびデータを格納する。例えば、ハードディスク、SSD(Solid State Drive)などの不揮発性記憶装置で構成される。
【0096】
より具体的には、二次記憶装置120は、SSLモデルプログラム122と、大規模言語モデルプログラム124と、制御プログラム126と、OS(Operating System)128とを格納している。
【0097】
SSLモデルプログラム122は、SSLモデル20を生成するためのコンピュータ読取可能命令を含む。大規模言語モデルプログラム124は、大規模言語モデル30,36を生成するためのコンピュータ読取可能命令を含む。制御プログラム126は、コントロールシグナルを生成し、大規模言語モデル30,36に入力するシーケンスを制御するための処理に対応するコンピュータ読取可能命令を含む。
【0098】
プロセッサ(CPU102および/またはGPU104)がプログラムを実行する際に必要となるライブラリや機能モジュールの一部を、OS128が標準で提供するライブラリまたは機能モジュールにより代替してもよい。この場合には、プログラム単体では、対応する機能を実現するために必要なプログラムモジュールのすべてを含むものにはならないが、OS128の実行環境下にインストールされることで、目的の処理を実現できる。このような一部のライブラリまたは機能モジュールを含まないプログラムであっても、本発明の技術的範囲に含まれる。
【0099】
また、これらのプログラムは、上述したようないずれかの記録媒体に格納されて流通するだけでなく、インターネットまたはイントラネットを介してサーバ装置などからダウンロードすることで配布されてもよい。
【0100】
図7には、単一のコンピュータを用いて情報処理装置100を構成する例を示すが、これに限らず、コンピュータネットワークを介して接続された複数のコンピュータが明示的または黙示的に連携して、音声認識システムを実現するようにしてもよい。
【0101】
プロセッサ(CPU102および/またはGPU104)がプログラムを実行することで実現される機能の全部または一部を、集積回路などのハードワイヤード回路(hard-wired circuit)を用いて実現してもよい。例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などを用いて実現してもよい。
【0102】
当業者であれば、本発明が実施される時代に応じた技術を適宜用いて、本実施の形態に従う情報処理装置100を実現できるであろう。
【0103】
[D.処理手順例]
次に、本実施の形態に従う音声認識システム1の処理手順例について説明する。
【0104】
図8は、本実施の形態に従う音声認識システム1における処理手順例を示すフローチャートである。
図8に示す各ステップは、情報処理装置100のCPU102および/またはGPU104が、SSLモデルプログラム122と、大規模言語モデルプログラム124と、制御プログラム126とを実行することで実現されてもよい。
【0105】
図8を参照して、情報処理装置100は、入力シーケンス4をSSLモデル20に入力する(ステップS100)。SSLモデル20からの推論出力22(単語についての確率分布P
S)が得られると(ステップS102においてYES)、情報処理装置100は、前回の処理における大規模言語モデル30からの推論出力32(単語についての確率分布P
L)が存在するか否かを判断する(ステップS104)。
【0106】
前回の処理における大規模言語モデル30からの推論出力32が存在しなければ(ステップS104においてNO)、情報処理装置100は、確率分布PLに予め定められたダミー値(=1)を設定する(ステップS106)。
【0107】
前回の処理における大規模言語モデル30からの推論出力32が存在すれば(ステップS104においてYES)、または、ステップS106の実行後、情報処理装置100は、今回の処理で得られた確率分布PSと前回の処理で得られた確率分布PLとを乗算して、新たな確率分布PSを得る(ステップS108)。情報処理装置100は、新たな確率分布PSに含まれる最大の確率をもつ単語hを音声認識結果として出力する(ステップS110)。
【0108】
情報処理装置100は、これまで出力された単語hの列(トークン列)を大規模言語モデル30に入力する(ステップS112)。このとき、入力される単語hの列の先頭に、文頭を示すトークン(CLS)が付加される。情報処理装置100は、大規模言語モデル30からの推論出力32(単語についての確率分布PL)を一時的に格納する(ステップS114)。
【0109】
情報処理装置100は、SSLモデル20からの推論出力22(単語についての確率分布PS)が継続しているか否かを判断する(ステップS116)。SSLモデル20からの推論出力22が継続していれば(ステップS116においてYES)、ステップS104以下の処理が繰り返される。
【0110】
SSLモデル20からの推論出力22が継続していなければ(ステップS116においてNO)、情報処理装置100は、これまで出力された単語hの列(トークン列)を音声認識結果として出力する(ステップS118)。そして、処理は終了する。
【0111】
図9は、本実施の形態に従う音声認識システム2における処理手順例を示すフローチャートである。
図9に示す各ステップは、情報処理装置100のCPU102および/またはGPU104が、SSLモデルプログラム122と、大規模言語モデルプログラム124と、制御プログラム126とを実行することで実現されてもよい。
【0112】
図9を参照して、情報処理装置100は、入力シーケンス4をSSLモデル20に入力する(ステップS200)。SSLモデル20からの推論出力22(単語についての確率分布P
S)が得られると(ステップS202においてYES)、情報処理装置100は、これまで出力された単語hが存在するか否かを判断する(ステップS204)。
【0113】
これまで出力された単語hが存在しなければ(ステップS204においてNO)、情報処理装置100は、今回の処理で得られた確率分布PLとして、予め定められたダミー値(=1)を設定する(ステップS206)。そして、ステップS212の処理が実行される。
【0114】
これまで出力された単語hが存在すれば(ステップS204においてYES)、情報処理装置100は、これまで出力された単語hの列および対応するマスクを大規模言語モデル30に入力する(ステップS208)。このとき、入力される単語hの列の先頭に文頭を示すトークン(CLS)が付加される。情報処理装置100は、今回の処理で得られた確率分布PLとして、大規模言語モデル30からの推論出力32を得る(ステップS210)。
【0115】
情報処理装置100は、今回の処理で得られた確率分布PSと今回の処理で得られた確率分布PLとを乗算して、新たな確率分布PSを得る(ステップS212)。情報処理装置100は、新たな確率分布PSに含まれる最大の確率をもつ単語hを音声認識結果として出力する(ステップS214)。
【0116】
情報処理装置100は、SSLモデル20からの推論出力22(単語についての確率分布PS)が継続しているか否かを判断する(ステップS216)。SSLモデル20からの推論出力22が継続していれば(ステップS216においてYES)、ステップS202以下の処理が繰り返される。
【0117】
SSLモデル20からの推論出力22が継続していなければ(ステップS216においてNO)、情報処理装置100は、これまで出力された単語hの列(トークン列)を音声認識結果として出力する(ステップS218)。そして、処理は終了する。
【0118】
[E.変形例]
上述の説明においては、センテンスに含まれるトークンの数に応じて処理が繰り返される例を示したが、処理の回数およびマスクアウトするトークンなどを適宜変更してもよい。
【0119】
例えば、大規模言語モデルから出力される推論出力に特定の1または複数の単語が出現すると、当該特定の単語が出現した時点で、当該センテンスについての処理を打ち切ってもよい。
【0120】
特定の単語としては、例えば、推論出力に誤りが生じることが極めて少ない1または複数の単語であってもよいし、何らかの意味をもつ1または複数の単語であってもよい。Table5には、処理を2回で打ち切っている例を示す。
【0121】
【0122】
あるいは、大規模言語モデルから出力される推論出力に特定の1または複数の単語が出現すると、当該特定の単語が出現した時点で、処理対象のトークンをスキップまたはジャンプしてもよい。処理対象のトークンを本来の順序より早めることで、推論処理に要する時間を短縮できる。Table6には、先頭のトークンを処理した後、最後のトークンを処理することで、1つのセンテンスに対して、トータルで2回の処理のみを行っている例を示す。
【0123】
【0124】
なお、上述したような処理の打ち切り、スキップおよびジャンプなどを決定するための制御部を追加してもよい。
【0125】
このように、推論出力が予め定められた条件を満たすと、前回の処理における処理対象のトークンから離れたトークンを処理対象のトークンに変更してもよい。
【0126】
[F.利点]
本実施の形態によれば、SSLモデル20による音声認識結果を大規模言語モデルの推論出力を用いて補正することで、プログレシブな誤り訂正が可能になる。このようなプログレシブな誤り訂正を採用することで、現実のアプリケーションにおいて生じ得る、言語モデルの学習に用いられた標準的な音声だけではなく、アクセントの違いや方言といった非標準的な音声により認識性能に特有の課題を解決できる。
【0127】
本実施の形態によれば、大規模言語モデルにおいて単語単位で処理を行わせることができるので、単語単位での誤り訂正が可能となり、音声認識精度(推論精度)を向上できる。
【0128】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0129】
1,2,3 音声認識システム、4 入力シーケンス、6 トークン、8 センテンス、10 乗算結果、20 SSLモデル、22,32,38 推論出力、24 argmax層、26,28,34 乗算器、30,36 大規模言語モデル、40 コントロールシグナル生成部、100 情報処理装置、102 CPU、104 GPU、106 主メモリ、108 ディスプレイ、110 ネットワークインターフェイス、112 入力デバイス、114 光学ドライブ、116 光学ディスク、120 二次記憶装置、122 モデルプログラム、124 大規模言語モデルプログラム、126 制御プログラム、128 OS。