(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024167852
(43)【公開日】2024-12-04
(54)【発明の名称】音声認識システムおよびプログラム
(51)【国際特許分類】
G10L 15/16 20060101AFI20241127BHJP
【FI】
G10L15/16
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023084223
(22)【出願日】2023-05-22
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り (1)令和4年11月2日(米国は11月1日)掲載 (論文掲載サイト) https://arxiv.org/abs/2211.00858v1 https://arxiv.org/pdf/2211.00858v1.pdf (上記の論文掲載サイトへのリンクサイト) https://jglobal.jst.go.jp/en/detail?JGLOBAL_ID=202202209452716756 (上記の論文掲載サイトに掲載した論文を発表する会議の開催者サイト) https://ieeexplore.ieee.org/document/10094614を通じて論文を発表 (2)令和5年2月21日掲載 https://ipsj.ixsq.nii.ac.jp/ej/?action=pages_view_main&active_action=repository_view_main_item_detail&item_id=224406&item_no=1&page_id=13&block_id=8を通じて論文を発表 (3)令和5年2月28日発表 一般社団法人情報処理学会の第146回音声言語情報処理研究会(SIG-SLP)の研究発表会、沖縄県立博物館・美術館(おきみゅー)にて、スライドを用いて発表
(71)【出願人】
【識別番号】899000068
【氏名又は名称】学校法人早稲田大学
(74)【代理人】
【識別番号】100114638
【弁理士】
【氏名又は名称】中野 寛也
(72)【発明者】
【氏名】小林 哲則
(72)【発明者】
【氏名】藤江 真也
(72)【発明者】
【氏名】小川 哲司
(72)【発明者】
【氏名】趙 懐博
(72)【発明者】
【氏名】佐久間 仁
(57)【要約】
【課題】高精度を維持しつつ、低遅延を実現可能な音声認識システムおよびプログラムを提供する。
【解決手段】主入力データ(ターゲット部および先読み部を含む)のターゲット部に対応するコードを出力する主エンコーダ32と、部分先読み用の補助入力データ(ターゲット部を含み、かつ、主入力データよりも短い先読み部を含む)のターゲット部に対応するコードを出力する補助エンコーダ33および/またはゼロ先読み用の補助入力データ(ターゲット部を含み、かつ、先読み部を含まない)のターゲット部に対応するコードを出力する補助エンコーダ34とを設け、主エンコーダ32と補助エンコーダ33,34との少なくとも一部のエンコーダ層のパラメータを共有化し、音声認識システム10を構成した。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ブロック処理によるストリーミング音声認識処理を実行するコンピュータにより構成された音声認識システムであって、
音声信号から得られた複数の音響特徴量で構成されるブロック化された入力データとして音声認識対象のターゲット部およびこのターゲット部よりも時間的に後の発声で得られる先読み部を含む主入力データの入力に対し、この主入力データについての前記ターゲット部を構成する前記音響特徴量に対応するコードを出力する主エンコーダを備えるとともに、
前記ブロック化された入力データとして前記ターゲット部を含み、かつ、前記先読み部を含まないゼロ先読み用の補助入力データの入力に対し、このゼロ先読み用の補助入力データについての前記ターゲット部を構成する前記音響特徴量に対応するコードを出力するゼロ先読み用の補助エンコーダと、
前記ブロック化された入力データとして前記ターゲット部を含み、かつ、前記主入力データについての前記先読み部よりも短い先読み部を含む部分先読み用の補助入力データの入力に対し、この部分先読み用の補助入力データについての前記ターゲット部を構成する前記音響特徴量に対応するコードを出力する部分先読み用の補助エンコーダとのうち、
少なくとも一方の補助エンコーダを備え、
前記主エンコーダと、前記補助エンコーダとは、少なくとも一部のエンコーダ層のパラメータが共有化されていることを特徴とする音声認識システム。
【請求項2】
運用時に、音声信号から得られた複数の前記音響特徴量で構成される最新の入力データから、前記主入力データについての前記先読み部を構成する前記音響特徴量を自己の前記ターゲット部とする前記補助入力データを作成することにより、前記主入力データ、および前記主入力データに対して前記最新の入力データにおける前記ターゲット部の位置を未来方向にずらした状態の前記補助入力データを用意する入力処理手段を備え、
前記主エンコーダおよび前記補助エンコーダは、
前記主入力データによる学習用のデータセットと、前記補助入力データによる学習用のデータセットとを用いて、ブロック中の固定位置に、前記主入力データおよび前記補助入力データのそれぞれの前記ターゲット部が来るように、前記主入力データおよび前記補助入力データを入力することにより、1つのニューラルネットワークを機械学習して得られたエンコーダであり、同一のネットワーク構造を有し、かつ、全ての層が同一のパラメータにより構成され、
運用時には、前記主入力データを前記主エンコーダに入力し、前記ブロック中の固定位置で、前記主入力データについての前記ターゲット部を構成する前記音響特徴量に対応するコードを出力する処理と、
前記入力処理手段により作成された前記補助入力データについての前記ターゲット部の位置が前記ブロック中の固定位置に来るように、前記補助入力データを前記補助エンコーダに入力することにより、前記ブロック中の固定位置で、前記補助入力データについての前記ターゲット部を構成する前記音響特徴量に対応するコードを出力する処理とを並列処理で実行し、
前記主エンコーダから出力されたコードと、前記補助エンコーダから出力されたコードとをまとめた状態で、トークンの出力処理を実行する後段ネットワークへ送る構成とされている
ことを特徴とする請求項1に記載の音声認識システム。
【請求項3】
前記主エンコーダおよび前記補助エンコーダは、
入力層から出力層までの中間位置で分岐する1つのニューラルネットワークにより構成され、
前記主エンコーダは、
前記補助エンコーダと共有する分岐前の共有層と、分岐後の主エンコーダ用の固有層とを備えて構成され、
前記補助エンコーダは、
前記主エンコーダと共有する分岐前の前記共有層と、分岐後の補助エンコーダ用の固有層とを備えて構成され、
前記共有層、前記主エンコーダ用の固有層、および前記補助エンコーダ用の固有層は、
前記共有層の入力側に、前記主入力データとみなした場合の前記ターゲット部と前記補助入力データとみなした場合の前記ターゲット部とがブロック中の異なる位置になる入力データを入力し、
主タスクとして、前記主エンコーダ用の固有層の出力側から、前記主入力データについての前記ターゲット部を構成する前記音響特徴量に対応するコードを出力するとともに、
補助タスクとして、前記補助エンコーダ用の固有層の出力側から、前記補助入力データについての前記ターゲット部を構成する前記音響特徴量に対応するコードを出力するように機械学習して得られたエンコーダ層である
ことを特徴とする請求項1に記載の音声認識システム。
【請求項4】
ブロック処理によるストリーミング音声認識処理を実行するコンピュータにより構成された音声認識システムであって、
音声信号から得られた複数の音響特徴量で構成されるブロック化された入力データを、音声認識対象のターゲット部およびこのターゲット部よりも時間的に後の発声で得られる先読み部を含む主入力データとみなした場合の学習用のデータセットを用いるとともに、
前記ブロック化された入力データを、前記ターゲット部を含み、かつ、前記先読み部を含まないゼロ先読み用の補助入力データとみなした場合と、
前記ブロック化された入力データを、前記ターゲット部を含み、かつ、前記主入力データについての前記先読み部よりも短い先読み部を含む部分先読み用の補助入力データとみなした場合とのうち、
少なくとも一方の補助入力データとみなした場合の学習用のデータセットを用いて、
前記主入力データとみなした場合の前記ターゲット部と前記補助入力データとみなした場合の前記ターゲット部とがブロック中の異なる位置になるように、前記ブロック化された入力データを入力し、前記主入力データとみなした場合の前記ターゲット部を構成する前記音響特徴量に対応するコードと、前記補助入力データとみなした場合の前記ターゲット部を構成する前記音響特徴量に対応するコードとを別々に出力するように機械学習して得られたエンコーダを備え、
運用時に、音声信号から得られた複数の前記音響特徴量で構成される最新の入力データを前記エンコーダに入力し、前記最新の入力データを前記主入力データとみなした場合の前記ターゲット部を構成する前記音響特徴量に対応するコードと、前記最新の入力データを前記補助入力データとみなした場合の前記ターゲット部を構成する前記音響特徴量に対応するコードとを前記エンコーダから同時に出力し、これらのコードをまとめた状態で、トークンの出力処理を実行する後段ネットワークへ送る構成とされていることを特徴とする音声認識システム。
【請求項5】
請求項1~4のいずれかに記載の音声認識システムとして、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ブロック処理によるストリーミング音声認識処理を実行するコンピュータにより構成された音声認識システムおよびプログラムに係り、例えば、コンテクスチュアル・ブロック・ストリーミング・トランスデューサ(Contextual Block Streaming Transducer:CBS-T)やコンテクスチュアル・ブロック・ストリーミング・エンコーダ・デコーダ(Contextual Block Streaming Encoder-Decode:CBS-E/D)等に利用できる。
【背景技術】
【0002】
近年、音声認識器は、全体を1つのニューラルネットワークで構築したエンド・ツー・エンド(End-to-End)モデルが主流になっている。従来のように、音響モデルにより音声信号から音素列を出力し、言語モデルにより音素列から文字列を出力するという処理では、誤差蓄積が生じていたが、End-to-Endモデルでは、これを防ぐため、音声信号から文字列を直接推定する。
【0003】
このようなEnd-to-Endモデルの音声認識器として、ブロック処理を用いたエンコーダ・デコーダ型の音声認識モデルであるコンテクスチュアル・ブロック・ストリーミング・エンコーダ・デコーダ(Contextual Block Streaming Encoder-Decode:以下、CBS-E/Dと略記する。)が知られている(非特許文献1参照)。このCBS-E/Dモデルでは、ストリーミング音声認識を実現するために、文脈を考慮したブロック処理(Contextual Block processing)を行う。
【0004】
図28には、上記の非特許文献1に記載されたCBS-E/Dモデルのエンコーダの文脈継承の仕組み(The context inheritance mechanism of the encoder)が示されている。このCBS-E/Dのエンコーダ(以下、CBSエンコーダともいう。)は、複数層(Ne層)のエンコーダ層を備えている。時間軸は、図中の左側(過去側)から右側(未来側)に向かって進む。通常のブロック処理では、ブロック毎の情報しか使用しないため、狭い範囲での特徴しか使用することができない。しかし、音声認識の性能向上のためには、より広い範囲の言語的な文脈を捉えることも重要である。そこで、非特許文献1では、
図28に示すような文脈継承の仕組みが提案されている。この仕組みでは、各層で各ブロックの文脈ベクトル(contextual vector)を算出し、次のブロックでの1つ上の層での処理に利用する。最初の層に入力する文脈ベクトル(contextual vector)としては、トランスフォーマ(Transformer)で用いられる位置エンコーディング(positional encoding)、入力ブロックの平均値、入力ブロックの最大値の3種類が提案されている。
【0005】
CBSエンコーダに入力される各ブロックZ((b-1)番目のブロックZ
b-1、b番目のブロックZ
b、(b+1)番目のブロックZ
b+1)は、それぞれNL個の音響特徴量X(
図28では、X
1~X
4)により構成される履歴部(History frames)と、NC個の音響特徴量X(
図28では、X
5,X
6)により構成されるターゲット部(Target frames)と、NR個の音響特徴量X(
図28では、X
7~X
10)により構成される先読み部(Look-Ahead frames)とに分割される。NL,NC,NRは、1つのブロック中におけるLeft(左側)、Center(中央)、Right(右側)の音響特徴量Xの個数(Number)を意味する。
【0006】
CBSエンコーダにおけるb番目の入力ブロックZ
bの処理では、b番目の入力ブロックZ
bと、(b-1)番目の入力ブロックZ
b-1から得られる文脈ベクトルC
b-1とから、ターゲット部に対応するコードh(AE)
Tと、文脈ベクトルC
bとを出力する。h(AE)
TのAEは、オーディオ(またはアコースティック)・エンコーダの意味であり、Tは、現在の時点の意味である。エンコーダの出力h(AE)
Tは、ターゲット部を構成するNC個の音響特徴量X(
図28では、X
5,X
6)に対応する各コードh
5,h
6の集合である。従って、CBSエンコーダのブロック処理では、履歴部、ターゲット部、および先読み部を使って、ターゲット部に対応するコード(後段のデコーダに送るコード)を出力する。
【0007】
なお、ブロックZのシフト量は、ターゲット部のサイズと同じであり、NC個の音響特徴量X(または、それらのXが得られる時間長)である。
図28では、2個の音響特徴量Xである。
【0008】
また、本発明に関連する文献として、ブロック同期ビームサーチによるストリーミング・トランスフォーマ音声認識について記載された文献(非特許文献2)、リカレント・ニューラルネットワークによるトランスデューサ(RNN-T)について記載された文献(非特許文献3,4)が知られている。
【0009】
また、本発明の効果を確認するために比較実験を行っているが、その学習用のデータセットについて記載した文献として、ウォール・ストリート・ジャーナルに基づくデータセット(以下、WSJと略記する。WSJは、アメリカ・ニューヨークに拠点を置くニューズ・コーポレーションの子会社であるダウ・ジョーンズ社が発行する日刊経済新聞である。)について記載した文献(非特許文献5)、TEDトーク用のデータセット(以下、TEDと略記する。TEDは、アメリカ・ニューヨークに本部がある非営利団体である。)について記載した文献(非特許文献6)が知られている。
【先行技術文献】
【非特許文献】
【0010】
【非特許文献1】E. Tsunoo(エミル・ツノオ), Y. Kashiwagi(ヨースケ・カシワギ), T. Kumakura(トシユキ・クマクラ), and S. Watanabe(シンジ・ワタナベ), “Transformer asr with contextual block processing(コンテクスチュアル・ブロック処理によるトランスフォーマ音声認識),” 2019 IEEE Automatic Speech Recognition and Understanding Workshop (ASRU), pp. 427-433, 2019.
【非特許文献2】E. Tsunoo(エミル・ツノオ), Y. Kashiwagi(ヨースケ・カシワギ), and S. Watanabe(シンジ・ワタナベ), “Streaming transformer asr with blockwise synchronous beam search(ブロック同期ビームサーチによるストリーミング・トランスフォーマ音声認識),” Proc. SLT, pp. 22-29, 2020.
【非特許文献3】Alex Graves(アレックス・グレイヴス), “Sequence transduction with recurrent neural networks(リカレント・ニューラルネットワークによるシーケンス・トランスダクション),” ArXiv, vol. abs/1211.3711, 2012.
【非特許文献4】Qian Zhang(チャン・チェン), Han Lu(ハン・ルー), Hasim Sak(ハシム・サク), Anshuman Tripathi(アンシュマン・トリパティ), Erik McDermott(エリック・マクダーモット), Stephen Koo(スティーブン・クー), Shankar Kumar(シャンカール・クマール), “TRANSFORMER TRANSDUCER: A STREAMABLE SPEECH RECOGNITION MODEL WITH TRANSFORMER ENCODERS AND RNN-T LOSS(トランスフォーマ・トランスデューサ:トランスフォーマ・エンコーダを備えたストリーミング可能な音声認識モデルとRNN-T損失),” arXiv:2002.02562v2 [eess.AS] 14 Feb 2020.
【非特許文献5】D. B. Paul(ポール) and J. Baker(ベイカー), “The design for the wall street journal-based CSR corpus(ウォール・ストリート・ジャーナルによるCSRコーパス用の設計),” in Speech and Natural Language: Proceedings of a Workshop Held at Harriman, New York, 1992.
【非特許文献6】A. Rousseau(アンソニー・ルソー), P. Deleglise(ポール・ドレグリーズ), and Y. Esteve(ヤニック・エステーヴ), “Enhancing the TEDLIUM corpus with selected data for language modeling and more TED talks(言語モデリングとその他のTEDトーク用に選択されたデータによるTEDLIUMコーパスの強化),” in Proc. LREC, 2014.
【発明の概要】
【発明が解決しようとする課題】
【0011】
前述したように、CBSエンコーダのブロック処理では、履歴部、ターゲット部、および先読み部を使って、ターゲット部に対応するコード(後段のデコーダに送るコード)を出力する(
図28参照)。従って、先読み部を使うこと(Look-Ahead)により、ターゲット部に対する音声認識(ASR)の精度を高めていることになる。
【0012】
しかし、先読み部を使うことにより高精度な音声認識結果が得られるものの、その分だけ、音声認識結果が得られるまでの時間に遅延が生じる。リズムよくターンテイキングができる会話システムや、同時通訳には、高精度で、かつ、低遅延の音声認識器が必要である。通常、性能と遅延はトレードオフの関係にあり、遅延の少ない音声認識処理の精度は低い。
【0013】
本発明の目的は、高精度を維持しつつ、低遅延を実現可能な音声認識システムおよびプログラムを提供するところにある。
【課題を解決するための手段】
【0014】
本発明は、先読み部の長さの異なる入力データを符号化する複数のエンコーダを設け、それらのエンコーダで少なくとも一部のパラメータを共有化するか、またはそれらのエンコーダを統合した状態の1つのエンコーダを設けることにより、マルチ・ルック・アヘッド(Multi-look-ahead)の音声認識処理(MLA-ASR)を実現して前記目的を達成するものである。具体的には、以下の通りである。
【0015】
なお、本発明の構成や内容の説明において、先読み部、ターゲット部、主入力データ、ゼロ先読み用の補助入力データ、部分先読み用の補助入力データ、マルチ・ルック・アヘッドという用語を使用するが、従来技術(
図28参照)との関係で、用語の意味の混乱と誤解を避けるには、第3実施形態のユニティモデルの説明における「(従来技術との相違点)」というサブタイトルの記載(特に「注意すべき第2の点」という記載)を参照するとよい。
【0016】
<主エンコーダおよび少なくとも1つの補助エンコーダを備えた構成>
【0017】
本発明は、ブロック処理によるストリーミング音声認識処理を実行するコンピュータにより構成された音声認識システムであって、
音声信号から得られた複数の音響特徴量で構成されるブロック化された入力データとして音声認識対象のターゲット部およびこのターゲット部よりも時間的に後の発声で得られる先読み部を含む主入力データの入力に対し、この主入力データについてのターゲット部を構成する音響特徴量に対応するコードを出力する主エンコーダを備えるとともに、
ブロック化された入力データとしてターゲット部を含み、かつ、先読み部を含まないゼロ先読み用の補助入力データの入力に対し、このゼロ先読み用の補助入力データについてのターゲット部を構成する音響特徴量に対応するコードを出力するゼロ先読み用の補助エンコーダと、
ブロック化された入力データとしてターゲット部を含み、かつ、主入力データについての先読み部よりも短い先読み部を含む部分先読み用の補助入力データの入力に対し、この部分先読み用の補助入力データについてのターゲット部を構成する音響特徴量に対応するコードを出力する部分先読み用の補助エンコーダとのうち、
少なくとも一方の補助エンコーダを備え、
主エンコーダと、補助エンコーダとは、少なくとも一部のエンコーダ層のパラメータが共有化されていることを特徴とするものである。
【0018】
ここで、本発明では、「ブロック処理」を行うために「ブロック化」する音響特徴量には、「ターゲット部」や「先読み部」を構成する音響特徴量が含まれていればよく、本発明における「ブロック」は、必ずしも従来の場合(前述した
図28の非特許文献1の場合)のような固定長の履歴部を含むブロックである必要はない。すなわち、「ターゲット部」よりも過去側(左側)の音響特徴量は、ブロック処理の対象とせずに、それらの音響特徴量を別途の処理で後段ネットワークへ送るためのコードの作成に寄与させるようにしてもよく、その際の履歴部(ターゲット部よりも過去側の部分)の長さ(音響特徴量の数)は、任意であり、従来の場合(前述した
図28の非特許文献1の場合)よりも長くしてもよく、可変長(例えば、時間が経過して最新の処理時点が未来の時刻に進むに従って長くなる。)としてもよい。
【0019】
また、「音響特徴量」は、周波数分析して得られた音響特徴量とすることが好適であるが、必ずしもこれに限定されるものではなく、周波数分析以外の分析も含め、何らかの分析処理を行って音声信号から得られた音響特徴量であればよい。
【0020】
さらに、「少なくとも一方の補助エンコーダを備え」とは、(1)「ゼロ先読み用の補助エンコーダ」だけでもよく(この場合は、補助エンコーダの数は、1つとなる。)、(2)「ゼロ先読み用の補助エンコーダ」および「部分先読み用の補助エンコーダ」の双方を備えていてもよく(この場合は、1つのゼロ先読み用の補助エンコーダ、および、少なくとも1つの部分先読み用の補助エンコーダを備えていることになる。)、(3)「部分先読み用の補助エンコーダ」だけでもよい(この場合は、少なくとも1つの部分先読み用の補助エンコーダを備えているが、ゼロ先読み用の補助エンコーダは備えていないことになる。)という意味である。但し、より遅延を少なくするという観点では、(1)または(2)のように「ゼロ先読み用の補助エンコーダ」を備えていることが好ましい。
【0021】
このような本発明においては、主エンコーダおよび少なくとも1つの補助エンコーダを備えているので、マルチ・ルック・アヘッド(Multi-look-ahead)の音声認識処理(MLA-ASR)を実現し、高精度を維持しつつ、低遅延の音声認識処理を行うことが可能となる。
【0022】
より詳細には、主エンコーダにより、従来と同等な長さの先読み部(相対的に長い先読み部)を有する主入力データ(フル先読み用の入力データ)を用いたエンコーディング(符号化処理)を行うことにより、主入力データのターゲット部について、従来と同等な精度(相対的に高精度)の音声認識結果を得るとともに、補助エンコーダにより、先読み部を有しないか、または相対的に短い先読み部を有する補助入力データ(ゼロ先読み用および/または部分先読み用の補助入力データ)を用いたエンコーディングを行うことにより、補助入力データのターゲット部について、従来よりも早いタイミングで音声認識結果を得ることが可能となる。
【0023】
つまり、補助入力データの先読み部は、ゼロである(先読み部を設定しない)か、または主入力データの先読み部よりも短いので、補助入力データのターゲット部は、主入力データのターゲット部よりも、時間的に未来側(右側)に設定される。従って、主入力データおよび少なくとも1つの補助入力データの設定により、同じ最新の入力データに対し、時間的に位置をずらした複数のターゲット部(音声認識結果であるトークンの出力処理を実行する後段ネットワークに送るコードに対応する部分)が設定される。このため、得られた音声認識結果のうちの最も未来側(右側)の部分は、補助エンコーダによる音声認識結果であるため、精度は相対的に低いが、遅延の少ない音声認識結果となり、一方、それよりも過去側(左側)の部分、すなわち、従来はそこまでしか音声認識結果が得られていなかった部分は、主エンコーダによる音声認識結果であるため、遅延はあるが、高精度な音声認識結果となる。
【0024】
また、主エンコーダと、補助エンコーダとは、少なくとも一部のエンコーダ層のパラメータが共有化されているので、全く共有部分のない複数のエンコーダを用意する場合に比べ、パラメータの数を減らし、構造の簡易化を図ることができるとともに、先読み部を無くすか、短くしたことによる補助エンコーダの音声認識結果の精度の犠牲を低く抑えることが可能となり、これらにより前記目的が達成される。
【0025】
なお、このような主エンコーダおよび少なくとも1つの補助エンコーダを備えた構成としては、例えば、以下に示すような雁木(Gangi)モデルと、分岐モデル(2分岐モデル(Bifurcationモデル)や、3分岐以上のモデル)とがある。但し、これらの雁木モデルや分岐モデルに限定されるものではない。いずれのモデルも「少なくとも一部のエンコーダ層のパラメータが共有化されている」という点で共通している。雁木モデルの場合は、全てのエンコーダ層のパラメータが共有化され、分岐モデルの場合は、共有層において、パラメータが共有化されている。
【0026】
<雁木(Gangi)モデルの構成>
【0027】
すなわち、上述した主エンコーダおよび少なくとも1つの補助エンコーダを備えた構成とする場合において、
運用時に、音声信号から得られた複数の音響特徴量で構成される最新の入力データから、主入力データについての先読み部を構成する音響特徴量を自己のターゲット部とする補助入力データを作成することにより、主入力データ、および主入力データに対して最新の入力データにおけるターゲット部の位置を未来方向にずらした状態の補助入力データを用意する入力処理手段を備え、
主エンコーダおよび補助エンコーダは、
主入力データによる学習用のデータセットと、補助入力データによる学習用のデータセットとを用いて、ブロック中の固定位置に、主入力データおよび補助入力データのそれぞれのターゲット部が来るように、主入力データおよび補助入力データを入力することにより、1つのニューラルネットワークを機械学習して得られたエンコーダであり、同一のネットワーク構造を有し、かつ、全ての層が同一のパラメータにより構成され、
運用時には、主入力データを主エンコーダに入力し、ブロック中の固定位置で、主入力データについてのターゲット部を構成する音響特徴量に対応するコードを出力する処理と、
入力処理手段により作成された補助入力データについてのターゲット部の位置がブロック中の固定位置に来るように、補助入力データを補助エンコーダに入力することにより、ブロック中の固定位置で、補助入力データについてのターゲット部を構成する音響特徴量に対応するコードを出力する処理とを並列処理で実行し、
主エンコーダから出力されたコードと、補助エンコーダから出力されたコードとをまとめた状態で、トークンの出力処理を実行する後段ネットワークへ送る構成を採用することができる。
【0028】
ここで、「入力処理手段」による「補助入力データ」の作成では、主入力データについてのターゲット部に対し、補助入力データについてのターゲット部が未来方向(右側方向)にずれることになる。従って、従来の場合(前述した非特許文献1の場合、
図28参照)のようにブロックが固定長の履歴部を含む場合には、ブロック化された最新のデータから過去側(左側)の音響特徴量を削除して補助入力データを作成することになる(例えば、
図8の場合等)。また、前述したように、本発明では、ブロックには必ずしも履歴部が含まれていなくてもよく、その場合には、最新の入力データ(履歴部については、ブロック化されていない。)から過去側(左側)の音響特徴量を削除してもよく、あるいは、履歴部を可変長とするときは、履歴部の長さ(音響特徴量の数)を固定数に調整する必要はないので、過去側(左側)の音響特徴量を削除する必要はなく、補助入力データについてのターゲット部が、主入力データについてのターゲット部よりも未来側(右側)にずれた分だけ、補助入力データについての履歴部の長さを、主入力データについての履歴部の長さよりも長くしてもよい(音響特徴量の数を多くしてもよい)。
【0029】
また、「ブロック中の固定位置」は、主入力データについてのターゲット部の位置である。従って、従来の場合(前述した非特許文献1の場合、
図28参照)のようにブロックが固定長の履歴部を含む場合には、主入力データについてのターゲット部の過去側(左側)には、履歴部があり、未来側(右側)には、先読み部があるので、「ブロック中の固定位置」は、ブロック中における中間位置である。また、ブロックに履歴部が含まれない場合には、主入力データについてのターゲット部の未来側(右側)に、先読み部があるだけであるため、「ブロック中の固定位置」は、中間位置ではなく、ブロック中における過去側(左側)の位置である。
【0030】
このような雁木(Gangi)モデルの構成とした場合(
図7、
図8参照)には、同じネットワーク構造で、かつ、同じパラメータを有する主エンコーダおよび少なくとも1つの補助エンコーダを並列設置するので、運用時に最新の入力データが得られたときに、その最新の入力データから、主入力データおよび少なくとも1つの補助入力データを用意することになり、また、事前に行う機械学習では、主入力データおよび少なくとも1つの補助入力データによる各データセットを用いて、1つのニューラルネットワークを学習することになる。
【0031】
さらに、このような雁木(Gangi)モデルの構成とする場合において、時間の経過に伴ってブロック処理を繰り返す際のブロックのシフト量は、主入力データについてのターゲット部のサイズよりも小さい構成としてもよい。
【0032】
このように雁木(Gangi)モデルにおいて、ブロックのシフト量が、主入力データのターゲット部のサイズ(音響特徴量の数またはその数で示される時間長)よりも小さい構成とした場合には、補助エンコーダの数を抑えつつ、より短い時間間隔でブロック処理を繰り返すことが可能となる。すなわち、主入力データのターゲット部に対する補助入力データのターゲット部のシフト量は、主入力データのターゲット部のサイズの整数倍であるため、従来のようにブロックのシフト量をターゲット部のサイズと同じにしたままでは、より短い時間間隔でブロック処理を繰り返そうとしてブロックのシフト量を小さくすると、それに合わせてターゲット部のサイズを小さくしなければならず、補助エンコーダの数が増え、エンコーダの構造が複雑化してしまうという不都合が生じる。これに対し、ブロックのシフト量を、主入力データのターゲット部のサイズよりも小さくすれば、ターゲット部のサイズを小さくしなくても、つまり補助エンコーダの数を増やさなくても、より短い時間間隔でブロック処理を繰り返すことが可能となる。
【0033】
<分岐モデル(2分岐(Bifurcation)モデルを含む)の構成>
【0034】
また、前述した主エンコーダおよび少なくとも1つの補助エンコーダを備えた構成とする場合において、
主エンコーダおよび補助エンコーダは、
入力層から出力層までの中間位置で分岐する1つのニューラルネットワークにより構成され、
主エンコーダは、
補助エンコーダと共有する分岐前の共有層と、分岐後の主エンコーダ用の固有層とを備えて構成され、
補助エンコーダは、
主エンコーダと共有する分岐前の共有層と、分岐後の補助エンコーダ用の固有層とを備えて構成され、
共有層、主エンコーダ用の固有層、および補助エンコーダ用の固有層は、
共有層の入力側に、主入力データとみなした場合のターゲット部と補助入力データとみなした場合のターゲット部とがブロック中の異なる位置になる入力データを入力し、
主タスクとして、主エンコーダ用の固有層の出力側から、主入力データについてのターゲット部を構成する音響特徴量に対応するコードを出力するとともに、
補助タスクとして、補助エンコーダ用の固有層の出力側から、補助入力データについてのターゲット部を構成する音響特徴量に対応するコードを出力するように機械学習して得られたエンコーダ層である構成を採用することができる。
【0035】
ここで、「主入力データとみなした場合のターゲット部と補助入力データとみなした場合のターゲット部とがブロック中の異なる位置になる入力データ」とは、1つの入力データを、主入力データとみなした場合のターゲット部と、補助入力データとみなした場合のターゲット部とが、ブロック中の異なる位置になるという意味である。
【0036】
このように分岐モデル(2分岐(Bifurcation)モデルを含む)の構成とした場合(例えば、
図12~
図17の場合)には、主エンコーダと、少なくとも1つの補助エンコーダとが、共有層で重なった状態になるので、つまり、エンコーディングを行う前段ネットワークとしては、途中で分岐はしているものの、1つのニューラルネットワークで構成されることになるので、運用時に最新の入力データが得られたときに、共有層の入力側では、その1つの最新の入力データが入力され、分岐後の各固有層に至ってから、その1つの最新の入力データを主入力データとみなした場合の固有の処理と、補助入力データとみなした場合の固有の処理とが行われ、主エンコーダ用および補助エンコーダ用の各固有層の出力側から、それぞれの固有層の処理で得られたコードが出力される。
【0037】
<ユニティ(Unity)モデルの構成>
【0038】
また、前述した雁木モデルや分岐モデルでは、主エンコーダおよび補助エンコーダという複数のエンコーダを設けてマルチ・ルック・アヘッド(Multi-look-ahead)の音声認識処理(MLA-ASR)を実現するとともに、それらのエンコーダで少なくとも一部のパラメータを共有化していたが、次に示すユニティ(Unity)モデルのように、1つのエンコーダでも、MLA-ASRを実現することができ、また、パラメータを共有化することができる。
【0039】
すなわち、本発明は、ブロック処理によるストリーミング音声認識処理を実行するコンピュータにより構成された音声認識システムであって、
音声信号から得られた複数の音響特徴量で構成されるブロック化された入力データを、音声認識対象のターゲット部およびこのターゲット部よりも時間的に後の発声で得られる先読み部を含む主入力データとみなした場合の学習用のデータセットを用いるとともに、
ブロック化された入力データを、ターゲット部を含み、かつ、先読み部を含まないゼロ先読み用の補助入力データとみなした場合と、
ブロック化された入力データを、ターゲット部を含み、かつ、主入力データについての先読み部よりも短い先読み部を含む部分先読み用の補助入力データとみなした場合とのうち、
少なくとも一方の補助入力データとみなした場合の学習用のデータセットを用いて、
主入力データとみなした場合のターゲット部と補助入力データとみなした場合のターゲット部とがブロック中の異なる位置になるように、ブロック化された入力データを入力し、主入力データとみなした場合のターゲット部を構成する音響特徴量に対応するコードと、補助入力データとみなした場合のターゲット部を構成する音響特徴量に対応するコードとを別々に出力するように機械学習して得られたエンコーダを備え、
運用時に、音声信号から得られた複数の音響特徴量で構成される最新の入力データをエンコーダに入力し、最新の入力データを主入力データとみなした場合のターゲット部を構成する音響特徴量に対応するコードと、最新の入力データを補助入力データとみなした場合のターゲット部を構成する音響特徴量に対応するコードとをエンコーダから同時に出力し、これらのコードをまとめた状態で、トークンの出力処理を実行する後段ネットワークへ送る構成とされていることを特徴とするものである。
【0040】
このように本発明をユニティ(Unity)モデルの構成とした場合(例えば、
図18~
図23の場合等)には、1つのエンコーダが、主エンコーダでもあり、かつ、補助エンコーダでもある状態に等しいので、マルチ・ルック・アヘッド(Multi-look-ahead)の音声認識処理(MLA-ASR)を実現することができ、また、パラメータの共有化も実現することができるので、前述した主エンコーダおよび少なくとも1つの補助エンコーダを備えた構成とする場合(雁木モデルや分岐モデルにする場合)と同様に、高精度を維持しつつ、低遅延の音声認識を実現可能となり、これにより前記目的が達成される。
【0041】
<プログラムの発明>
【0042】
さらに、本発明のプログラムは、以上に述べた音声認識システムとして、コンピュータを機能させるためのものである。
【0043】
なお、上記のプログラムまたはその一部は、例えば、光磁気ディスク(MO)、コンパクトディスク(CD)、デジタル・バーサタイル・ディスク(DVD)、フレキシブルディスク(FD)、磁気テープ、読出し専用メモリ(ROM)、電気的消去および書換可能な読出し専用メモリ(EEPROM)、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、フラッシュディスク等の記録媒体に記録して保存や流通等させることが可能であるとともに、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等の有線ネットワーク、あるいは無線通信ネットワーク、さらにはこれらの組合せ等の伝送媒体を用いて伝送することが可能であり、また、搬送波に載せて搬送することも可能である。さらに、上記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。
【発明の効果】
【0044】
以上に述べたように本発明によれば、先読み部の長さの異なる入力データを符号化する複数のエンコーダを設け、それらのエンコーダで少なくとも一部のパラメータを共有化するか、またはそれらのエンコーダを統合した状態の1つのエンコーダを設けるので、マルチ・ルック・アヘッド(Multi-look-ahead)の音声認識処理(MLA-ASR)により、高精度で、かつ、低遅延の音声認識を実現することができるという効果がある。
【図面の簡単な説明】
【0045】
【
図1】本発明の第1実施形態の音声認識システムである雁木モデルの要部を示すエンコーダの説明図。
【
図2】第1実施形態の音声認識システムである雁木モデルの全体構成図。
【
図3】本発明の音声認識システムに適用可能な後段ネットワークを含む全体構成(CBS-T)の説明図。
【
図4】本発明の音声認識システムに適用可能な後段ネットワークを含む別の全体構成(CBS-E/D)の説明図。
【
図5】本発明のエンコーダに入力するブロックの構成データ(音響特徴量X)の作成方法の説明図
【
図6】第1実施形態の雁木モデルにおけるブロック設定の説明図。
【
図7】第1実施形態の雁木モデルの学習時の処理の説明図。
【
図8】第1実施形態の雁木モデルの運用時の処理の説明図。
【
図9】本発明の後段ネットワークにおけるビームサーチの説明図。
【
図10】本発明の後段ネットワークにおけるビームサーチの別の説明図。
【
図11】第1実施形態の雁木モデルの後段ネットワークにおけるビームサーチの説明図。
【
図12】本発明の第2実施形態の音声認識システムである分岐モデル(2分岐の場合)の要部を示すエンコーダの説明図。
【
図13】第2実施形態の音声認識システムである分岐モデルの全体構成図。
【
図14】第2実施形態の分岐モデル(2分岐の場合)の学習時の処理の説明図。
【
図15】第2実施形態の分岐モデル(2分岐の場合)の運用時の処理の説明図。
【
図16】第2実施形態の分岐モデル(3分岐の場合)の学習時の処理の説明図。
【
図17】第2実施形態の分岐モデル(3分岐の場合)の運用時の処理の説明図。
【
図18】本発明の第3実施形態の音声認識システムであるユニティモデル(2パターン統合の場合)の要部を示すエンコーダの説明図。
【
図19】第3実施形態の音声認識システムであるユニティモデルの全体構成図。
【
図20】第3実施形態のユニティモデル(2パターン統合の場合)の学習時の処理の説明図。
【
図21】第3実施形態のユニティモデル(2パターン統合の場合)の運用時の処理の説明図。
【
図22】第3実施形態のユニティモデル(3パターン統合の場合)の学習時の処理の説明図。
【
図23】第3実施形態のユニティモデル(3パターン統合の場合)の運用時の処理の説明図。
【
図24】比較実験のための分離モデルの学習時の処理の説明図。
【
図25】比較実験[のための分離モデルの運用時の処理の説明図。
【
図27】比較実験(2)(共有層の数と性能との関係)の結果を示す図。
【
図28】従来のブロック処理によるストリーミング音声認識用のエンコーダ(CBSエンコーダ)の構成図。
【発明を実施するための形態】
【0046】
以下に本発明の各実施形態について図面を参照して説明する。第1実施形態は、雁木(Gangi)モデルであり、第2実施形態は、分岐モデル(2分岐のBifurcationモデルを含む)であり、第3実施形態は、ユニティ(Unity)モデルである。また、これらの各モデルおよび比較用に構築した分離(Separate)モデルについての比較実験結果を示す。
【0047】
[第1実施形態]
【0048】
図1は、本発明の第1実施形態の音声認識システム10の雁木(Gangi)モデルの要部を示すエンコーダの説明図であり、
図2には、雁木モデルの全体構成が示されている。
図3および
図4は、本発明の音声認識システム(雁木モデルに限らず、全てのモデル)に適用可能な後段ネットワークを含む全体構成(CBS-T、CBS-E/D)の説明図であり、
図5は、本発明の音声認識システム(雁木モデルに限らず、全てのモデル)のエンコーダに入力するブロックの構成データ(音響特徴量X)の作成方法の説明図である。
図6は、雁木モデルにおけるブロック設定の説明図である。
図7および
図8は、雁木モデルの学習時および運用時の処理の説明図である。
図9および
図10は、本発明の音声認識システム(雁木モデルに限らず、全てのモデル)の後段ネットワークにおけるビームサーチの説明図であり、
図11は、雁木モデルの後段ネットワークにおけるビームサーチの説明図である。
【0049】
(雁木モデルの音声認識システム10の全体構成:
図1、
図2)
図1および
図2において、音声認識システム10は、雁木(Gangi)モデルであり、1台または複数台のコンピュータにより構成され、音声信号からトークンを出力する音声認識器20と、その学習装置50とを備えている。音声認識器20は、ニューラルネットワークにより構成されたエンド・ツー・エンド(End-to-End)のストリーミング音声認識器であり、音声信号からコード(エンコードされた符号)を出力するエンコーダ30と、このエンコーダ30から受け取ったコードからトークンを出力する後段ネットワーク40とを備えている。
【0050】
ここで、トークンは、音声認識を行うために音声認識器の設計者や研究者等が便宜的に定めた言語情報の分割単位であり、音素よりも粒度が粗いものである。英語の場合には、トークンは、英単語(this, will, us等)と1対1の関係である場合も多いが、未知語を減らしたり、語彙(vocabulary)を減らすために、トークンをサブワード(ing, er, ly等)と対応付ける場合も多く、逆に、連単語をトークンと対応付けてもよく、さらには、文頭または文末を示す<SOS(Start of Sentence)/EOS(End of Sentence)>トークンもあるので、トークンは、テキスト(文字情報)を含む記号である。日本語の場合は、トークンは、文字(仮名文字、例えば、「あ」、「い」、「う」、「ば」、「ぱ」等の平仮名文字)や文字列(「では」、「しかし」等)に対応付けられ、1~2文字である場合が多いが、トークンに漢字を含めてもよく、漢字を含めない場合には、仮名文字から漢字への変換は別途に行えばよい。このようにトークンは、音声認識を行うために、便宜上、区切ったものであるから、どのように区切ったトークンでも、本発明を適用することができる。
【0051】
また、後段ネットワーク40は、広義のデコーダである。本願の説明では、「デコーダ」という語を、後述する
図4のCBSエンコーダ・デコーダを構成するデコーダのように、狭義のデコーダとして使用する場合があるので、広義のデコーダを指す場合には、「後段ネットワーク」という語を使用している。従って、後段ネットワーク40は、例えば、後述する
図3のジョイントネットワークやラベルエンコーダであってもよく、これらも広義のデコーダである。
【0052】
(雁木モデルのエンコーダ30の構成)
図1および
図2において、エンコーダ30は、入力処理手段31と、主エンコーダ32と、第1の補助エンコーダ33と、第2の補助エンコーダ34とを備えている。なお、雁木モデルにおける補助エンコーダの数は、この例では2つだが、2つに限定されるものではなく、1つでもよく、3つ以上でもよい。
【0053】
入力処理手段31は、音声信号から音響特徴量Xを作成する処理と、主エンコーダ32、第1の補助エンコーダ33、第2の補助エンコーダ34への各入力データを作成する処理とを実行するが、その詳細は、
図5を用いて後述する。
【0054】
主エンコーダ32は、エンコーディング手段32Aと、エンコーダ用パラメータ記憶手段32Bとを備えて構成されている。第1の補助エンコーダ33は、エンコーディング手段33Aと、エンコーダ用パラメータ記憶手段33Bとを備えて構成されている。第2の補助エンコーダ34は、エンコーディング手段34Aと、エンコーダ用パラメータ記憶手段34Bとを備えて構成されている。
【0055】
エンコーディング手段32A,33A,34Aは、複数層のエンコーダ層を有するニューラルネットワークによるエンコードの処理(符号化処理)のためのアルゴリズムを実行するものであり、コンピュータの内部に設けられた演算処理装置(CPUやGPU等)およびその動作手順を規定する1つまたは複数のプログラム、並びに主メモリやキャッシュメモリ等の作業用メモリなどにより構成されている。これらのエンコーディング手段32A,33A,34Aによる各処理は、運用時(推論時)に並列処理で実行される。
【0056】
エンコーダ用パラメータ記憶手段32B,33B,34Bは、ニューラルネットワークのパラメータを記憶するものであり、演算中は主メモリにより構成され、コンピュータが稼働していないときは、HDDやSSD等の不揮発性メモリにより構成されている。
【0057】
主エンコーダ32、第1の補助エンコーダ33、第2の補助エンコーダ34のニューラルネットワークの構造は同じであり、パラメータも同じである。従って、各エンコーディング手段32A,33A,34Aの処理内容は同じであり、運用時(推論時)における入力データが異なるだけである。また、各エンコーダ用パラメータ記憶手段32B,33B,34Bに記憶されるパラメータも同じである。運用時の各エンコーディング手段32A,33A,34Aの処理内容の詳細については、
図8を用いて後述する。
【0058】
(雁木モデルの後段ネットワーク40の構成)
後段ネットワーク40は、ニューラルネットワークによるデコードの処理のためのアルゴリズムを実行する後段処理手段41と、後段ネットワーク用パラメータ記憶手段42とを備えて構成されている。後段ネットワークのバリエーションについては、
図3、
図4を用いて後述する。また、後段処理手段41で実行されるビームサーチの処理については、
図9~
図11を用いて後述する。後段ネットワーク40のハードウェア構成(プログラムの実行とそれに必要な情報の記憶のための構成)は、エンコーダ30と同様である。
【0059】
(雁木モデルの学習装置50の構成)
学習装置50は、学習手段51と、エンコーダ用パラメータ記憶手段52と、後段ネットワーク用パラメータ記憶手段53とを備えて構成されている。学習手段51は、主エンコーダ32、第1の補助エンコーダ33、第2の補助エンコーダ34として使用するニューラルネットワークの学習処理を実行し、そのパラメータを決定し、エンコーダ用パラメータ記憶手段52に記憶させるとともに、併せて後段ネットワーク40として使用するニューラルネットワークの学習処理を実行し、そのパラメータを決定し、後段ネットワーク用パラメータ記憶手段53に記憶させる。この学習処理の詳細については、
図7を用いて後述する。また、学習装置50のハードウェア構成(プログラムの実行とそれに必要な情報の記憶のための構成)は、エンコーダ30と同様である。
【0060】
そして、学習装置50は、
図2中の点線に示すように、エンコーダ用パラメータ記憶手段52に記憶されたパラメータを、エンコーダ30の各エンコーダ用パラメータ記憶手段32B,33B,34Bにコピーする(同じパラメータをコピーする)。また、学習装置50は、後段ネットワーク用パラメータ記憶手段53に記憶されたパラメータを、後段ネットワーク40の後段ネットワーク用パラメータ記憶手段42にコピーする。
【0061】
(後段ネットワークのバリエーション:
図3、
図4)
図3には、CBSトランスデューサ(Contextual Block Streaming Transducer:以下、CBS-Tと略記する。)の概略構成が示され、
図4には、CBSエンコーダ・デコーダ(Contextual Block Streaming Encoder-Decode:以下、CBS-E/Dと略記する。)の概略構成が示されている。
図3は、前述したQian Zhang(チャン・チェン)らの非特許文献4に記載された説明図と同じであり(但し、非特許文献4では、CBS-Tではなく、RNN/Transformer Transducer architectureの説明図として記載されている。)、
図4は、前述したE. Tsunoo(エミル・ツノオ)らの非特許文献1に記載された説明図と同じである。但し、これらの図において、XやY等の符号は変えている。本発明の処理内容は、これらの公知の文献に記載された図の内容とは異なるが、全体的な概略構成については、外形的に見ると同じであるため、これらの図を引用し、説明に使用している。
【0062】
より詳細には、本発明では、これらの公知の音声認識器に対し、エンコーダ(本第1実施形態のエンコーダ30を含め、全モデルのエンコーダ)の置き換えを行っている。また、後段ネットワーク(本第1実施形態の後段ネットワーク40を含め、全モデルの後段ネットワーク)は、基本的には、公知の構成を採用することができるが、後述する
図9~
図11に示すようなビームサーチの処理を行う場合は、その処理内容は従来と異なっている。従って、本発明を適用可能な音声認識器は、
図3に示すCBS-Tや、
図4に示すCBS-E/Dに限定されるものではなく、エンコーダの置き換えが可能な音声認識器(但し、ブロック処理を行うストリーミング音声認識器に限る。)であれば、どのような既存の音声認識器や今後開発される音声認識器にも、本発明を適用することができる。また、ビームサーチの処理の変更または組込みが可能であれば、
図9~
図11に示すようなビームサーチの処理を行う。
【0063】
なお、CBS-E/Dは、デコーダの処理が、Alex Graves(アレックス・グレイヴス)らの非特許文献3に記載されたリカレント・ニューラルネットワークによるトランスデューサ(以下、RNN-Tと略記する。)に比べて遅い点が課題となる。そこで、RNN-TのエンコーダにCBSエンコーダを利用した構成を、
図3に示すように、CBS-Tとして記載している。つまり、
図3は、元々、RNN-Tの図であったが、本願では、これをCBS-Tというタイトルで記載している。
【0064】
図3において、ジョイントネットワーク(Joint Network)、ソフトマックス(Softmax)、およびラベルエンコーダ(Label Encoder)が、後段ネットワーク40に該当する。本第1実施形態の雁木モデル以外のモデルにおける後段ネットワークの場合も同様である。オーディオエンコーダ(Audio Encoder)の部分に、本発明におけるエンコーダが適用される。
【0065】
このオーディオエンコーダに、現在時刻Tで得られた1つのブロックZを構成する音響特徴量X
1~X
Tを入力すると、これらの音響特徴量X
1~X
Tのうちのターゲット部に対応するコードh(AE)
Tが出力される。この点は、
図28に示した従来の場合と同様であるが、本発明では、詳細は後述するように、エンコーダから出力されるコードh(AE)
Tは、主入力データのターゲット部に対応するコードのみならず、補助入力データのターゲット部に対応するコードも加わることになる。また、ラベルエンコーダに、1番目から(u-1)番目までのトークン列Y
1~Y
u-1を入力すると、それらのトークン列に対応するコードh(LE)
u-1が出力される。そして、ジョイントネットワークに、コードh(AE)
Tおよびコードh(LE)
u-1を入力し、それぞれ線形層を通過させた後に、その和を活性化関数(tanh関数:Hyperbolic tangent function)に通すと、コードhが出力される。このコードhをソフトマックスに入力すると、u番目のトークンがY
uになる確率が出力される。そして、uを1ずつ増やしながらこの処理を繰り返すと、音声認識結果であるトークン列が得られる。
【0066】
図4において、右側のデコーダが、後段ネットワーク40に該当する。本第1実施形態の雁木モデル以外のモデルにおける後段ネットワークの場合も同様である。左側のエンコーダのエンコーダ層(Ne層)に、本発明におけるエンコーダが適用される。
【0067】
この左側のエンコーダに、現在時刻Tで得られた1つのブロックZを構成する音響特徴量X
1~X
Tを入力すると、これらの音響特徴量X
1~X
Tのうちのターゲット部に対応するコードh(AE)
Tが出力される。この点は、
図28に示した従来の場合と同様であるが、本発明では、詳細は後述するように、エンコーダから出力されるコードh(AE)
Tは、主入力データのターゲット部に対応するコードのみならず、補助入力データのターゲット部に対応するコードも加わることになる。左側のエンコーダの処理は、図中の下側(入力側)から、畳み込み層&レルー関数(活性化関数)が2回あり、その後、線形層、位置エンコーディング、複数層(Ne層)のエンコーダ層、正規化という流れであり、このうち複数層(Ne層)のエンコーダ層以外の部分の処理は、非特許文献1と同じであるが、本発明のポイント部分ではないため、変形してもよい。右側のデコーダの処理の流れも、非特許文献1と同じであるが、本発明のポイント部分ではないため、変形してもよい。
【0068】
(エンコーダ層に入力する音声特徴量Xの作成:
図5)
入力処理手段31は、
図5に示すように、音声信号を用いて周波数分析を行うことにより、ブロックZを構成する音声特徴量Xを作成する。但し、周波数分析以外の分析方法により音声特徴量Xを作成してもよい。
【0069】
例えば、フレームサイズΔT1(サンプル数S1)、フレームシフトΔT2(サンプル数S2)で音声信号を区切っていく。サンプリング周波数を例えば16,000(Hz)とすると、ΔT1=32(ms)、S1=512サンプルとなり、シフト量は、ΔT2=8(ms)、S2=128サンプルとなる。但し、これらの数値は一例にすぎない。
【0070】
その後、例えばMFCC(メル周波数ケプストラム係数)等の周波数分析によりM1次元(例えば80次元)の音響特徴量を得る。このM1次元の音響特徴量は、フレーム毎に得られるので、時間間隔ΔT2で得られる。さらに、サブサンプリングを行うことにより、複数本(例えば4本)のM1次元の音響特徴量から、1本のM2次元(例えば256次元)の音響特徴量Xを作成する。4本をまとめて音響特徴量Xを作成すると、上記の数値例では、1本の音響特徴量Xは、ΔT2×7=56msの情報から作成されていることになる。サブサンプリングを行う際の複数本(例えば4本)に重なりは設けなくてよい。これにより、ΔT3の時間間隔で音響特徴量X1,X2,X3,…を得ることができる。フレームシフトΔT2(サンプル数S2)を、フレームサイズΔT1(サンプル数S1)の1/4とし、サブサンプリングで重なりなく4本のM1次元の音響特徴量をまとめて1本のM2次元の音響特徴量Xを作成すると、時間間隔ΔT3は、フレームサイズΔT1と同じとなり、上記の数値例では、32(ms)となる。但し、音響特徴量Xを得る時間間隔ΔT3は、フレームサイズΔT1と一致させる必要はない。また、このようにサブサンプリングを行う2段階の処理とせずに、1段階の処理で音響特徴量Xを作成するようにしてもよい。
【0071】
入力処理手段31による以上の音響特徴量Xの作成処理は、本第1実施形態の雁木モデルを含め、全てのモデルの入力処理手段により実行される。この他に、入力処理手段31は、雁木モデルに特有の処理として、次の補助入力データの作成処理を実行する。
【0072】
(雁木モデルに特有の補助入力データの作成処理:
図6)
入力処理手段31は、
図6に示すように、雁木モデルに特有の処理として、運用時(推論時)に、最新の入力データ(現在時刻Tで得られた音響特徴量X
Tを含むブロック化された複数の音響特徴量X
1~X
T)から、従来と同様な長さの先読み部を有する主入力データ(フル先読み用の入力データ)に加え、この主入力データの先読み部よりも短い先読み部を有する部分先読み用の補助入力データと、先読み部を有しないゼロ先読み用の補助入力データとを作成する。これらの主入力データ、部分先読み用の補助入力データ、ゼロ先読み用の補助入力データは、1つの最新の入力データ(同一のデータ)から作成され、それぞれのターゲット部(
図6中の太線の部分)は、ブロック中の異なる位置に設定される。この際、それぞれのターゲット部は、重なりなく、かつ、隙間なく設定される。
【0073】
部分先読み用およびゼロ先読み用の補助入力データは、いずれも主入力データとターゲット部および履歴部のそれぞれの長さ(構成する音響特徴量Xの個数)が同じであり、先読み部の長さだけが異なる。
【0074】
主入力データ(フル先読み用の入力データ)は、主エンコーダ32への入力データであり、ターゲット部(NC個の音響特徴量XNL+1~XNL+NC)と、その過去側(左側)の履歴部(NL個の音響特徴量X1~XNL)と、その未来側(右側)の先読み部(NR個の音響特徴量XNL+NC+1~XNL+NC+NR(XT))とにより構成されている。この先読み部は、高精度な音声認識結果を確保するために、従来と同様な長さとされている。但し、従来の先読み部の長さが定まっているわけではないので、相対的に長い先読み部ということになり、確保したい音声認識精度(従来の構成において、遅延を許容して確保していた、すなわち遅延と引き換えに確保していた音声認識精度)に応じた長さの先読み部であるといえる。
【0075】
部分先読み用の補助入力データは、補助エンコーダ(
図1および
図2の例では、第1の補助エンコーダ33)への入力データであり、ターゲット部(NC個の音響特徴量X)と、その過去側(左側)の履歴部(NL個の音響特徴量X)と、その未来側(右側)の先読み部(NR個よりも少ない個数であるが、ゼロではない個数の音響特徴量X)とにより構成されている。この部分先読み用の補助入力データは、1つでもよく、2以上でもよく、ゼロ先読み用の補助入力データがあれば、無くてもよい。
【0076】
ゼロ先読み用の補助入力データは、補助エンコーダ(
図1および
図2の例では、第2の補助エンコーダ34)への入力データであり、ターゲット部(NC個の音響特徴量X)と、その過去側(左側)の履歴部(NL個の音響特徴量X)とにより構成され、ターゲット部の未来側(右側)に先読み部はない。このゼロ先読み用の補助入力データは、通常は1つであるが、部分先読み用の補助入力データがあれば、無くてもよい。但し、最大限、遅延を少なくするには、部分先読み用の補助入力データの作成だけでは不足であり、ゼロ先読み用の補助入力データがあったほうがよい。
【0077】
図6に示すように、補助入力データについて、第kの補助エンコーダへの入力データという表現をすると、第kの補助エンコーダに入力する補助入力データは、ターゲット部(NC
k個(=NC個)の音響特徴量X)と、その過去側(左側)の履歴部(NL
k個(=NL個)の音響特徴量X)と、その未来側(右側)の先読み部(NR
k個の音響特徴量X)とにより構成されている。ここで、先読み部を構成する音響特徴量Xの個数は、NR
k=(NR-k×NC)になる。従って、ゼロ先読み用の補助入力データを作成する場合(最大限、遅延を少なくする場合)は、最新の入力データにおいて(1つのブロック中において)、ターゲット部が重なりなく、かつ、隙間なくずれていくので、作成する補助入力データの個数は、(NR/NC)となる。そして、k=(NR/NC)を入力すると、第(NR/NC)の補助エンコーダに入力する補助入力データについては、その先読み部を構成する音響特徴量Xの個数は、NR
NR/NC={NR-(NR/NC)×NC}=0となり、ゼロ先読み用の補助入力データとなる。一方、補助入力データの数が、例えば2以上である場合(つまり、第2以降の補助エンコーダが設置される場合であり、NRがNCの2倍以上の場合)には、例えばk=1を入力すると、第1の補助エンコーダに入力する補助入力データについては、その先読み部を構成する音響特徴量Xの個数は、NR
1=(NR-1×NC)となり、NC以上の個数となるので、部分先読み用の補助入力データとなる。
【0078】
また、入力処理手段31は、補助入力データを作成する際には、その履歴部の長さは、NL個で固定されているので、(NL+NC+NR)個の音響特徴量Xにより構成される最新の入力データから、最も過去側(左側)の音響特徴量Xを削除する。この際、削除する音響特徴量Xの数は、第kの補助エンコーダのkという番号が1つ増えるごとに、NC個ずつ増えていく。例えば、第1、第2、第3の補助エンコーダへの入力データ(ゼロ先読み用または部分先読み用の補助入力データ)を作成する際には、1×NC個、2×NC個、3×NC個の音響特徴量Xをそれぞれ削除する。各補助入力データのターゲット部を構成する音響特徴量Xが、
図6中の太線の部分で示すように、NC個ずつずれていくからである。この点については、
図7および
図8を用いて詳述する。
【0079】
(雁木モデルの学習時の処理:
図7)
図7において、先ず、学習装置50で学習を行う際には、学習用のデータセットとして、主入力データ(フル先読み用の入力データ)と、部分先読み用の補助入力データと、ゼロ先読み用の補助入力データと、それらに対応する正解データ(正解トークン列)とを用意する。
図1および
図2に示すように、主エンコーダ32、第1の補助エンコーダ33、第2の補助エンコーダ34は、並列処理を実行するために、別のエンコーダとして設置されるが、ネットワーク構造およびパラメータは同じであるため、学習時には、先読み部の長さの異なる3種類のデータセットを用いて1つのニューラルネットワークを学習する。なお、
図7の例では、
図1および
図2の例に対応させて、3種類のデータセットを用意するが、エンコーダ30に含まれる主エンコーダおよび補助エンコーダの数(ゼロを含めた先読み部の長さの異なる入力データの種類の数)に応じて何種類のデータセットを用意するかが決まるので、2種類、または4種類以上のデータセットを用意する場合もある。
【0080】
具体的には、学習時には、連続する長い音声信号と、それに対応する正解データ(正解トークン列)とが存在するので、その音声信号を区切って作成した1つのブロックを構成する複数の音響特徴量X(
図5参照)と、それに対応する正解データ(正解トークン列)とによる学習用のデータセットを用意する。学習装置50では、
図7に示すように、例えば、区切って作成した1つのブロックを構成する10個の音響特徴量X
1~X
10があるときに、主入力データは、これら全部を使って作成され、(NL,NC,NR)=(4,2,4)であるとすると、主入力データの履歴部は、音響特徴量X
1~X
4であり、ターゲット部は、音響特徴量X
5,X
6であり、先読み部は、音響特徴量X
7~X
10である。
【0081】
主入力データのターゲット部が、2つの音響特徴量X5,X6で構成されるので、運用時に補助入力データを作成する際のターゲット部のシフト量は、音響特徴量Xの2つ分である。従って、学習時に部分先読み用の補助入力データを作成する際は、主入力データの場合よりも、先読み部を音響特徴量Xの2つ分だけ短くする。雁木モデルでは、学習時および運用時のいずれのときでも、ブロック中の固定位置(つまり、主入力データのターゲット部と同じ位置)に、補助入力データのターゲット部が来るようにする。これにより、主エンコーダ32、および第1、第2の補助エンコーダ33,34のパラメータを同じものとすることができる。換言すれば、それらのパラメータを1つのニューラルネットワークで学習して決定することができる。
【0082】
この際、学習時には、10個の音響特徴量X1~X10のうち、最も未来側(右側)の2つの音響特徴量X9,X10をマスクすれば、先読み部を2つ減らすことができ、ターゲット部を音響特徴量X5,X6にしたままで部分先読み用の補助入力データを作成することができる。従って、作成した部分先読み用の補助入力データの履歴部は、音響特徴量X1~X4であり、ターゲット部は、音響特徴量X5,X6であり、先読み部は、音響特徴量X7,X8である。ターゲット部が音響特徴量X5,X6のままであるということは、それに対応する正解データも、主入力データのときと同じでよいことになる。
【0083】
また、学習時には、10個の音響特徴量X1~X10のうち、最も未来側(右側)の4つの音響特徴量X7~X10をマスクすれば、先読み部を4つ減らしてゼロにすることができ、ターゲット部を音響特徴量X5,X6にしたままでゼロ先読み用の補助入力データを作成することができる。従って、作成したゼロ先読み用の補助入力データの履歴部は、音響特徴量X1~X4であり、ターゲット部は、音響特徴量X5,X6であり、先読み部はない。ターゲット部が音響特徴量X5,X6のままであるということは、それに対応する正解データも、主入力データのときと同じでよいことになる。
【0084】
このように学習時には、後述する運用時(
図8参照)とは異なる考え方で、部分先読み用およびゼロ先読み用の補助入力データを作成することができ、学習用のデータセットを比較的容易に用意することができる。
【0085】
次に、用意した主入力データ、部分先読み用の補助入力データ、ゼロ先読み用の補助入力データによるデータセットを用いて、学習用のエンコーダ32G(1つのニューラルネットワークであり、学習時には符号32,33,34ではなく、符号32Gを付した。)および後段ネットワーク40G(学習時には符号40ではなく、符号40Gを付した。)の学習処理を実行し、それらのパラメータを決定し、エンコーダ用パラメータ記憶手段52および後段ネットワーク用パラメータ記憶手段53(
図2参照)に記憶させる。この際、主入力データ、部分先読み用の補助入力データ、ゼロ先読み用の補助入力データは、別々にランダムな順番で入力する。主入力データをエンコーダ32Gに入力すると、そのターゲット部である音響特徴量X
5,X
6に対応するコードh
5,h
6がエンコーダ32Gから出力されて後段ネットワーク40Gに送られ、後段ネットワーク40Gからトークン列が出力されるので、そのトークン列が正解データとなるようにエンコーダ32Gおよび後段ネットワーク40Gのパラメータを決定する学習を行う。部分先読み用およびゼロ先読み用の補助入力データを入力する場合も同様である。この際、音響特徴量Xの列と、対応するトークン列とのマッピングを学習させるが、その学習は既存の方法でよい。なお、後段ネットワーク40(学習時には符号40Gを付している。)が
図3のCBS-Tの場合には、ジョイントネットワーク&ラベルエンコーダも、オーディオエンコーダとともに学習され、
図4のCBS-E/Dの場合には、デコーダも、エンコーダとともに学習される。
【0086】
また、使用する主入力データ、部分先読み用の補助入力データ、ゼロ先読み用の補助入力データの数の比率は、例えば、50%、25%、25%であり、この比率で、主エンコーダ32、第1の補助エンコーダ33、第2の補助エンコーダ34のそれぞれのための学習を行っていることになる。なお、比率は、これらの数値に限定されないが、主入力データの比率を高くすることが好ましい。
【0087】
(雁木モデルの運用時の処理:
図8)
図8において、運用時には、最新の入力データ(1つのブロックを構成する10個の音響特徴量X
1~X
10)から、入力処理手段31により、主入力データ、部分先読み用の補助入力データ、ゼロ先読み用の補助入力データを作成する。この際、主入力データは、10個の音響特徴量X
1~X
10をそのまま全部使って作成する。従って、(NL,NC,NR)=(4,2,4)であるとすると、主入力データの履歴部は、音響特徴量X
1~X
4であり、ターゲット部は、音響特徴量X
5,X
6であり、先読み部は、音響特徴量X
7~X
10である。
【0088】
部分先読み用の補助入力データは、運用時には、主入力データに対し、ターゲット部の位置が未来方向(右方向)に2つ分ずれるように作成する。すなわち、最新の入力データを構成する10個の音響特徴量X1~X10のうちの音響特徴量X7,X8を、部分先読み用の補助入力データのターゲット部とする。そして、このターゲット部である音響特徴量X7,X8を、ブロック中の固定位置(つまり、主入力データのターゲット部と同じ位置)にする必要がある。従って、10個の音響特徴量X1~X10のうち、最も過去側(左側)の2つの音響特徴量X1,X2を削除する。また、入力データの次元数を合わせるために、最も未来側(右側)に、2つ分のゼロを入れる。従って、部分先読み用の補助入力データの履歴部は、音響特徴量X3~X6であり、ターゲット部は、音響特徴量X7,X8であり、先読み部は、音響特徴量X9,X10である。
【0089】
ゼロ先読み用の補助入力データは、運用時には、主入力データに対し、ターゲット部の位置が未来方向(右方向)に4つ分ずれるように作成する。すなわち、最新の入力データを構成する10個の音響特徴量X1~X10のうちの音響特徴量X9,X10を、部分先読み用の補助入力データのターゲット部とする。そして、このターゲット部である音響特徴量X9,X10を、ブロック中の固定位置(つまり、主入力データのターゲット部と同じ位置)にする必要がある。従って、10個の音響特徴量X1~X10のうち、最も過去側(左側)の4つの音響特徴量X1~X4を削除する。また、入力データの次元数を合わせるために、最も未来側(右側)に、4つ分のゼロを入れる。従って、ゼロ先読み用の補助入力データの履歴部は、音響特徴量X5~X8であり、ターゲット部は、音響特徴量X9,X10であり、先読み部はない。
【0090】
次に、作成した主入力データ、部分先読み用の補助入力データ、ゼロ先読み用の補助入力データを、主エンコーダ32、第1の補助エンコーダ33、第2の補助エンコーダ34にそれぞれ入力する。これらの入力は、各エンコーダ32,33,34で並列処理を実行するので、同時入力となる。前述した
図1では、運用時の時間軸に対し、主エンコーダ32、第1の補助エンコーダ33、第2の補助エンコーダ34を雁木のようにずらして記載することにより、この状況を示している。
【0091】
その後、主エンコーダ32からは、主入力データのターゲット部を構成する音響特徴量X5,X6に対応するコードh5,h6が出力され、第1の補助エンコーダ33からは、部分先読み用の補助入力データのターゲット部を構成する音響特徴量X7,X8に対応するコードh7,h8が出力され、第2の補助エンコーダ34からは、ゼロ先読み用の補助入力データのターゲット部を構成する音響特徴量X9,X10に対応するコードh9,h10が出力されるので、これらのコードh5~h10をまとめて後段ネットワーク40に送り、後段ネットワーク40から、音声認識結果として、コードh5~h10に対応するトークン列を出力する。この際、例えば、前述したE. Tsunoo(エミル・ツノオ)らの非特許文献2に記載されたブロック境界検知(Block Boundary Detection)アルゴリズムを用いて、それぞれの入力データのターゲット部を連結した音響特徴量X5~X10に対応するコードh5~h10に何個のトークンが含まれるのか等を検知し、音声認識のためのデコードの処理を実行する。
【0092】
これにより、音響特徴量X
5,X
6だけではなく、音響特徴量X
5~X
10に対応するトークン列が出力されるので、音声認識における遅延が少なくなる。なお、本発明では、音声認識遅延を低減するために、マルチ・ルック・アヘッド(Multi-look-ahead)の音声認識処理(MLA-ASR)を導入しているが、MLA-ASRを導入しても、デバイスによる処理遅延(
図5のタイムラグを含む。)はなくならないので、音声認識遅延をゼロにすることはできない。
【0093】
(後段ネットワークにおけるビームサーチ:
図9、
図10)
図9、
図10に示すように、本発明では、後段ネットワークで従来とは異なるビームサーチ(Beam Search)の処理が実行される。
図9には、ブロックのシフト量が主入力データのターゲット部のサイズと一致する場合のビームサーチの処理が示され、
図10には、ブロックのシフト量が主入力データのターゲット部のサイズよりも小さい場合のビームサーチの処理が示されている。いずれの処理も、本第1実施形態の雁木モデルに限らず、全てのモデルにおける後段ネットワークの処理に適用することができる。
【0094】
ビームサーチの処理は、従来から実行され、前述したE. Tsunoo(エミル・ツノオ)らの非特許文献2にも記載されている。従来は、本発明でいう主入力データ(フル先読み用の入力データ)のターゲット部を構成する音響特徴量Xに対応するコードだけしか後段ネットワークに送っていなかった、つまり1つのブロック中では、その部分だけしか音声認識対象としていなかったことと、時間の経過とともにブロックをシフトしていく際のシフト量を、本発明でいう主入力データのターゲット部のサイズと一致させていたことから、各ブロックの処理で後段ネットワークに送られるコードが時間的に重なることはなかった。
【0095】
しかし、本発明では、MLA-ASRを導入するので、主入力データ(フル先読み用の入力データ)のターゲット部だけではなく、補助入力データ(部分先読み用および/またはゼロ先読み用の補助入力データ)のターゲット部を構成する音響特徴量Xに対応する各コードも、後段ネットワークに送る。このため、後段ネットワークにおける各ブロックでのビームサーチの処理範囲に重なりが生じる。
【0096】
図9の場合は、(b-1)番目のブロックZ
b-1では、後段ネットワークに入力される全てのコード(主入力データおよび補助入力データの各ターゲット部に対応するコードの全部)を対象としてビームサーチが実行されるので、ビームサーチの開始点および終了点は、T
b-1(S)、T
b-1(E)となる。
【0097】
次のb番目のブロックZbでは、上記と同様に、後段ネットワークに入力される全てのコードを対象としてビームサーチが実行されるので、ビームサーチの開始点および終了点は、Tb(S)、Tb(E)となる。従って、ブロックZbでは、1つ前のブロックZb-1のビームサーチの終了点Tb-1(E)からではなく、時間的にTb(S)まで戻ってビームサーチを開始する。さらに次の(b+1)番目のブロックZb+1でも同様であり、1つ前のブロックZbのビームサーチの終了点Tb(E)からではなく、時間的にTb+1(S)まで戻ってビームサーチを開始する。
【0098】
図9の下部には、(b-1)番目のブロックZ
b-1でビームサーチを実行し、条件付き確率が高いトークンを並べたトークン列のビームが複数本伸びていく状態が、実線で示されている。例えば、トークンのボキャブラリー数は、図示されているトークンYの数よりも多く、ビームサイズ(ビームの本数)が3であるとすると、最初に条件付き確率が高くなるようにトークンY
a1、Y
a3、Y
a4が選択され、次に、トークンY
b2、Y
b3、Y
b5が選択され、さらにその次に、トークンY
c1、Y
c4、Y
c7が選択されるという具合に、〇で囲んだトークンYを並べたトークン列を示す3本のビームが伸びていく。各ビームのトークン列を構成する各トークンおよびその条件付き確率は、記憶しておく。主メモリへの記憶でよい。
【0099】
b番目のブロックZbのビームサーチは、点線で示されている。このビームサーチは、トークンYb2、Yb3、Yb5に戻って開始される。従って、ブロックZbの処理では、戻った時点のYb2、Yb3、Yb5のそれぞれに繋がるトークン列がサーチされる。例えば、最初にYg1、Yg2、Yg3が選択され、次に、Yh1、Yh2、Yh3が選択されるという具合に、点線の〇で囲んだトークンYを並べたトークン列を示す3本のビームが伸びていく。なお、紙面の都合上、3本の各ビームの後半部分のトークンの記載は省略し、点線での記載としている。
【0100】
(b+1)番目のブロックZb+1のビームサーチは、一点鎖線で示されている。このビームサーチは、トークンYh1、Yh2、Yh3に戻って開始される。従って、ブロックZb+1の処理では、戻った時点のYh1、Yh2、Yh3のそれぞれに繋がるトークン列がサーチされる。なお、紙面の都合上、3本の各ビームのトークンの記載は省略し、一点鎖線での記載としている。
【0101】
また、
図9の上部に示す通り、主入力データのターゲット部を構成する音響特徴量Xに対応する各コードは、ブロックZ
b-1、ブロックZ
b、ブロックZ
b+1で時間的に重なりがなく、かつ、隙間なく、ずれているので、主入力データのターゲット部に対応するコードの全部が、確度の高い音声認識結果を得るための本認識部となる。一方、補助入力データのターゲット部を構成する音響特徴量Xに対応する各コードは、次のブロックで書き換えられるオーバーライト部分であるため、仮認識部となる。この点が、下記の
図10の場合と異なる。
【0102】
図10の場合は、後段ネットワークに入力されるコードのうち、主入力データのターゲット部に対応するコードの全部ではなく、その一部が、確度の高い音声認識結果を得るための本認識部となる。この点が、上記の
図9の場合と異なる。ブロックのシフト量が、主入力データのターゲット部のサイズよりも小さいので、そのような設定となる。大別すると、このような本認識部の設定方法は3通りあり、主入力データのターゲット部に対応するコードのうちの中間位置に本認識部を設定する設定方法Aと、未来側(右側)の位置に本認識部を設定する設定方法Bと、過去側(左側)の位置に本認識部を設定する設定方法Cとがある。
【0103】
本認識部の設定方法Aでは、主入力データのターゲット部に対応するコードのうちの中間位置に本認識部が設定されるので(「本」で示されている部分)、この本認識部の過去側(左側)のコードは、不使用部のコードとして捨てられる(「捨」で示されている部分)。つまり、この「捨」の部分のビームサーチは行われない。また、主入力データのターゲット部に対応するコードのうち本認識部の未来側(右側)の部分は、補助入力データのターゲット部に対応するコードとともに、仮認識部となり(「仮」で示されている部分)、ビームサーチが行われる。
【0104】
従って、ブロックZb-1の処理では、ビームサーチの開始点および終了点は、Tb-1(S)、Tb-1(E)となる。次のブロックZbの処理では、1つ前のブロックZb-1のビームサーチの終了点Tb-1(E)からではなく、時間的にTb(S)まで戻ってビームサーチを開始する。つまり、「捨」の部分はビームサーチに使用しないので、「捨」の部分の過去側(左側)の端部の位置までは戻らない。さらに次のブロックZb+1でも同様であり、1つ前のブロックZbのビームサーチの終了点Tb(E)からではなく、時間的にTb+1(S)まで戻ってビームサーチを開始する。
【0105】
本認識部の設定方法Bでは、主入力データのターゲット部に対応するコードのうちの未来側(右側)の位置に本認識部が設定されるので(「本」で示されている部分)、この本認識部の過去側(左側)のコードは、不使用部のコードとして捨てられる(「捨」で示されている部分)。つまり、この「捨」の部分のビームサーチは行われない。
【0106】
この本認識部の設定方法Bでも、「捨」の部分をビームサーチに使用しないように戻るという点は、前述した設定方法Aの場合と同様である。従って、ブロックZbの処理では、1つ前のブロックZb-1のビームサーチの終了点Tb-1(E)からではなく、時間的にTb(S)まで戻ってビームサーチを開始する。つまり、「捨」の部分はビームサーチに使用しないので、「捨」の部分の過去側(左側)の端部の位置までは戻らない。
【0107】
本認識部の設定方法Cでは、主入力データのターゲット部に対応するコードのうちの過去側(左側)の位置に本認識部が設定されるので(「本」で示されている部分)、この本認識部の未来側(右側)の部分は、補助入力データのターゲット部に対応するコードとともに、仮認識部となり(「仮」で示されている部分)、ビームサーチが行われる。従って、本認識部の設定方法Cでは、主入力データのターゲット部に対応するコードの全部について、ビームサーチが行われるので、不使用部として捨てられるコード(「捨」で示される部分)はない。
【0108】
そして、本認識部の設定方法A,B,Cのいずれの方法でも、時間の経過に伴ってブロックZb-1,Zb,Zb+1と処理が進んでいく際に、それぞれのブロックZb-1,Zb,Zb+1の本認識部は、重なりなく、かつ、隙間なく、ずれているので、確度の高い音声認識結果を得るための本認識部だけを見ていくと、従来と同様なシフトが行われていることになる。
【0109】
(雁木モデルの後段ネットワークにおけるビームサーチ:
図11)
本第1実施形態の雁木モデルでは、
図9に示したブロックのシフト(ブロックのシフト量を主入力データのターゲット部のサイズと一致させる。)を行ってもよいが、
図10に示したブロックのシフト(ブロックのシフト量を主入力データのターゲット部のサイズよりも小さくする。)を行うことが好ましい。雁木の段数(主エンコーダおよび補助エンコーダの数)を増やすことなく、より短い時間間隔でのブロック処理を実現するためでる。この際、
図10に記載した本認識部の設定方法A,B,Cのいずれを選択してもよいが、
図11には、本認識部の設定方法Aを選択した場合のシフト状況を示す。
【0110】
雁木モデルでは、主入力データのターゲット部に対し、補助入力データのターゲット部の位置が未来方向(右方向)にシフトしていく。このシフト量は、ターゲット部のサイズ(NC個の音響特徴量X)毎であり、重なりなく、かつ、隙間なく、シフトが行われる。つまり、このシフトに伴って、補助入力データの先読み部は、NC個の音響特徴量Xのサイズずつ、短くなっていく。
図1や
図6に示された雁木のような階段状の図は、この状況を示している。従って、ゼロ先読み用の補助入力データを使う場合には、主入力データの先読み部のサイズ(NR個)をターゲット部のサイズ(NC個)で除した数(NR/NC)が、補助エンコーダの数となる。このため、ターゲット部のサイズ(NC個)を大きくすると、補助エンコーダの数が減り、ターゲット部のサイズ(NC個)を小さくすると、補助エンコーダの数が多くなるという関係にある。
【0111】
一方、ブロック処理によるストリーミング音声認識を行う場合は、ブロックをシフトさせていく。このブロックのシフト量は、
図28の従来例に示したように、ターゲット部のサイズ(NC個)と同じである。音声認識対象のターゲット部が、重なりなく、かつ、隙間なく、ずれていくようにするためである。このため、短い時間間隔で、次の音声認識結果を得たい場合は、ターゲット部のサイズ(NC個)を小さくすることになる。
【0112】
ところが、上述したように、雁木モデルの場合は、ターゲット部のサイズ(NC個)を小さくすると、補助エンコーダの数が多くなり、構造が複雑化するという不都合が生じる。そこで、
図11に示すように、雁木モデルの場合において、ブロックのシフト量を、主入力データのターゲット部のサイズ(NC個)よりも小さくすると、補助エンコーダの数を増やすことなく、短い時間間隔で、次の音声認識結果を得ることができる。
【0113】
ブロックのシフト量を、主入力データのターゲット部のサイズ(NC個)よりも小さくすると、後段ネットワークの処理で、主入力データのターゲット部に対応するコードの全部ではなく、その一部が本認識部となるので、通常、想起しにくい設定であるが、雁木モデルの場合には、補助エンコーダの数を少なくすることができるという効果がある。
【0114】
雁木モデルにおけるターゲット部のシフトは、1つのブロック内で行われる処理であり、ブロックのシフトとは、別の処理であるが、
図11には、これらの2種類のシフトの関係が示されている。すなわち、
図11において、太枠で囲まれたターゲット部のシフト(エンコード層への入力データ)と、シフトされた各ターゲット部に対応するコード(後段ネットワークへの入力データ)と、得られたコードに割り当てられる不使用部、本認識部、仮認識部(それぞれ「捨」、「本」、「仮」で示されている。)の設定と、ビームサーチの範囲との関係を確認することができる。
【0115】
(本第1実施形態の雁木モデルの効果)
このような本第1実施形態によれば、次のような効果を得ることができる。すなわち、音声認識器20は、主エンコーダ32、および第1、第2の補助エンコーダ33,34(但し、補助エンコーダの数は1つでも、3つ以上でもよい。)を備えているので、マルチ・ルック・アヘッド(Multi-look-ahead)の音声認識処理(MLA-ASR)を実現し、高精度を維持しつつ、低遅延の音声認識処理を行うことができる。
【0116】
より詳細には、主エンコーダ32により、相対的に長い先読み部を有する主入力データ(フル先読み用の入力データ)を用いたエンコーディングを行うことにより、主入力データのターゲット部について、相対的に高精度の音声認識結果を得るとともに、補助エンコーダ33,34により、先読み部を有しないか、または相対的に短い先読み部を有する補助入力データ(ゼロ先読み用および/または部分先読み用の補助入力データ)を用いたエンコーディングを行うことにより、補助入力データのターゲット部について、従来よりも早いタイミングで音声認識結果を得ることができる。
【0117】
つまり、補助入力データの先読み部は、ゼロである(先読み部を設定しない)か、または主入力データの先読み部よりも短いので、補助入力データのターゲット部は、主入力データのターゲット部よりも、時間的に未来側(右側)に設定される。従って、主入力データおよび少なくとも1つの補助入力データの作成により、同じ最新の入力データに対し、時間的に位置をずらした複数のターゲット部を設定できる。このため、新たに得られた音声認識結果のうちの未来側(右側)の部分は、補助エンコーダ33,34による音声認識結果であるため、精度は相対的に低いが、遅延の少ない音声認識結果を得ることができ、一方、それよりも過去側(左側)の部分、すなわち、従来はそこまでしか音声認識結果が得られていなかった部分は、主エンコーダ32による音声認識結果であるため、遅延はあるが、高精度な音声認識結果を得ることができる。
【0118】
また、主エンコーダ32と、補助エンコーダ33,34とは、エンコーダ層のパラメータが共有化されているので、全く共有部分のない複数のエンコーダを用意する場合に比べ、マルチ・ルック・アヘッド(Multi-look-ahead)の音声認識処理(MLA-ASR)としたことによる認識精度の犠牲を低く抑えることができ、高い性能を発揮させることができる。
【0119】
さらに、
図11を用いて既に詳述したように、雁木モデルにおいて、ブロックのシフト量を、主入力データのターゲット部のサイズ(NC個)よりも小さくすると、補助エンコーダの数を維持しながら、すなわち補助エンコーダの数を増やさなくても、短い時間間隔で次のブロック処理による音声認識結果を得ることができる。
【0120】
[第2実施形態]
【0121】
図12は、本発明の第2実施形態の音声認識システム200の分岐モデル(2分岐の場合)の要部を示すエンコーダの説明図であり、
図13には、分岐モデルの全体構成が示されている。
図14および
図15には、分岐モデル(2分岐の場合)の学習時および運用時の処理が示され、
図16および
図17は、分岐モデル(3分岐の場合)の学習時および運用時の処理が示されている。
【0122】
(分岐モデルの音声認識システム200の全体構成:
図12、
図13)
図12および
図13において、音声認識システム200は、分岐モデルであり、1台または複数台のコンピュータにより構成され、音声信号からトークンを出力する音声認識器220と、その学習装置250とを備えている。音声認識器220は、ニューラルネットワークにより構成されたエンド・ツー・エンド(End-to-End)のストリーミング音声認識器であり、音声信号からコード(エンコードされた符号)を出力するエンコーダ230と、このエンコーダ230から受け取ったコードからトークンを出力する後段ネットワーク240とを備えている。
【0123】
(分岐モデルのエンコーダ230の構成)
図12および
図13において、エンコーダ230は、入力処理手段231と、入力層から出力層に至るまでの中間位置で分岐(
図12および
図13の例では、2分岐)した1つのニューラルネットワークを構成する分岐前の部分である共有層232(エンコーダ層の層数Ne-comは、複数層が好ましいが、1層でもよい。)と、分岐後の部分である主エンコーダ用の固有層233(エンコーダ層の層数Ne-priは、複数層が好ましいが、1層でもよい。)と、分岐後の部分である補助エンコーダ用の固有層234(エンコーダ層の層数Ne-auxは、複数層が好ましいが、1層でもよい。)とを備えて構成されている。そして、共有層232と、主エンコーダ用の固有層233とにより、主エンコーダ235が構成され、共有層232と、補助エンコーダ用の固有層234とにより、補助エンコーダ236が構成されている。
【0124】
なお、分岐モデルにおける補助エンコーダの数は、この例では1つであるが、1つに限定されるものではなく、2以上でもよい。従って、分岐数は、この例では2分岐であるが、3分岐以上でもよい。また、分岐後の部分をさらに分岐し、多段分岐のマルチタスクのネットワーク構造としてもよく、例えば、1番目の分岐で、主タスクの出力に至る部分αと、複数(第1、第2、第3、…)の補助タスクに共有の部分βとに分岐させ、2番目の分岐で、部分βを、複数の補助タスクのそれぞれの出力に至る部分β1,β2,β3…に分岐させる等のネットワーク構造としてもよい。
【0125】
入力処理手段231は、前記第1実施形態の入力処理手段31と同様に、
図5に示すような音声信号から音響特徴量Xを作成する処理を実行する。なお、入力処理手段231は、前記第1実施形態の入力処理手段31の場合とは異なり、運用時に、主入力データおよび補助入力データ(ゼロ先読み用および/または部分先読み用の補助入力データ)を作成する処理は行わない。共有層232への入力データは、1つの最新の入力データであり、その1つのデータを、主入力データや補助入力データとみなしてエンコードの処理を行うからである。
【0126】
共有層232は、共有層処理手段232Aと、共有層パラメータ記憶手段232Bとを備えて構成されている。主エンコーダ用の固有層233は、主エンコーダ用の固有層処理手段233Aと、主エンコーダ用の固有層パラメータ記憶手段233Bとを備えて構成されている。補助エンコーダ用の固有層234は、補助エンコーダ用の固有層処理手段234Aと、補助エンコーダ用の固有層パラメータ記憶手段234Bとを備えて構成されている。
【0127】
共有層処理手段232A、主エンコーダ用の固有層処理手段233A、補助エンコーダ用の固有層処理手段234Aは、説明の便宜上、分けて記載されているが、途中で分岐する1つのニューラルネットワークによるエンコードの処理(符号化処理)のためのアルゴリズムを実行するものであり、コンピュータの内部に設けられた演算処理装置(CPUやGPU等)およびその動作手順を規定する1つまたは複数のプログラム、並びに主メモリやキャッシュメモリ等の作業用メモリなどにより構成されている。運用時の共有層処理手段232A、主エンコーダ用および補助エンコーダ用の固有層処理手段233A,234Aの処理内容の詳細については、
図15を用いて後述する。
【0128】
共有層パラメータ記憶手段232B、主エンコーダ用および補助エンコーダ用の固有層パラメータ記憶手段233B,234Bは、ニューラルネットワークのパラメータを記憶するものであり、演算中は主メモリにより構成され、コンピュータが稼働していないときは、HDDやSSD等の不揮発性メモリにより構成されている。
【0129】
(分岐モデルの後段ネットワーク240の構成)
後段ネットワーク240は、ニューラルネットワークによるデコードの処理のためのアルゴリズムを実行する後段処理手段241と、後段ネットワーク用パラメータ記憶手段242とを備えて構成されている。この後段ネットワーク240は、前記第1実施形態の後段ネットワーク40と同様な構成であり、そのバリエーションとして、
図3のCBS-Tや
図4のCBS-E/Dを採用することができ、その他の構成でもよい。また、後段処理手段241で実行されるビームサーチの処理は、前記第1実施形態の後段ネットワーク40と同様であり、既に
図9、
図10を用いて詳述した通りである。後段ネットワーク240のハードウェア構成(プログラムの実行とそれに必要な情報の記憶のための構成)は、エンコーダ230と同様である。
【0130】
(分岐モデルの学習装置250の構成)
学習装置250は、学習手段251と、エンコーダ用パラメータ記憶手段252と、後段ネットワーク用パラメータ記憶手段253とを備えて構成されている。学習手段251は、共有層232、並びに主エンコーダ用および補助エンコーダ用の固有層233,234を備えた1つのニューラルネットワークの学習処理を実行し、それらのパラメータを決定し、エンコーダ用パラメータ記憶手段252に記憶させるとともに、併せて後段ネットワーク240として使用するニューラルネットワークの学習処理を実行し、そのパラメータを決定し、後段ネットワーク用パラメータ記憶手段253に記憶させる。この学習処理の詳細については、
図14を用いて後述する。また、学習装置250のハードウェア構成(プログラムの実行とそれに必要な情報の記憶のための構成)は、エンコーダ230と同様である。
【0131】
そして、学習装置250は、
図13中の点線に示すように、エンコーダ用パラメータ記憶手段252に記憶されたパラメータを、エンコーダ230の共有層パラメータ記憶手段232B、主エンコーダ用および補助エンコーダ用の固有層パラメータ記憶手段233B,234Bにコピーする。また、学習装置250は、後段ネットワーク用パラメータ記憶手段253に記憶されたパラメータを、後段ネットワーク240の後段ネットワーク用パラメータ記憶手段242にコピーする。
【0132】
(分岐モデル(2分岐の場合=Bifurcationモデル)の学習時の処理:
図14)
図14において、先ず、学習装置250で学習を行う際には、学習用のデータセットとして、主入力データ(フル先読み用の入力データ)と、補助入力データ(
図14の例では、ゼロ先読み用の補助入力データだけであるが、部分先読み用の補助入力データがあってもよい。)と、それらに対応する正解データ(正解トークン列)とを用意する。但し、共有層232(学習時には符号232Gを付している。)に入力するのは、1つの入力データであるから、その1つの入力データを、主入力データとみなした場合の正解データ(正解トークン列)と、補助入力データとみなした場合の正解データ(正解トークン列)とを用意する。
【0133】
具体的には、学習装置250では、
図14に示すように、連続する長い音声信号を区切って作成した1つのブロックを構成する10個の音響特徴量X
1~X
10があるときに、これを(NL,NC,NR)=(4,2,4)の主入力データとみなした場合は、その主入力データの履歴部は、音響特徴量X
1~X
4であり、ターゲット部は、音響特徴量X
5,X
6であり、先読み部は、音響特徴量X
7~X
10である。
【0134】
また、上記の1つのブロックを構成する10個の音響特徴量X1~X10を(NL1,NC1,NR1)=(6,4,0)の補助入力データ(つまり、ゼロ先読み用の補助入力データ)とみなした場合は、その補助入力データの履歴部は、音響特徴量X1~X6であり、ターゲット部は、音響特徴量X7~X10であり、先読み部はない。
【0135】
次に、用意した主入力データによる学習用のデータセット(共有層232Gへの入力データを主入力データとみなした場合とそのターゲット部に対応する正解データ(正解トークン列)とからなる学習用のデータセット)と、補助入力データによる学習用のデータセット(共有層232Gへの入力データを補助入力データとみなした場合とそのターゲット部に対応する正解データ(正解トークン列)とからなる学習用のデータセット)とを用いて、共有層232G、主エンコーダ用および補助エンコーダ用の固有層233G,234G(学習時には符号232,233,234ではなく、符号232G,233G,234Gを付した。)、並びに後段ネットワーク240G(学習時には符号240ではなく、符号240Gを付した。)の学習処理を実行し、それらのパラメータを決定し、エンコーダ用パラメータ記憶手段252および後段ネットワーク用パラメータ記憶手段253(
図13参照)に記憶させる。
【0136】
この際、共有層232Gへの入力データを主入力データとみなした場合は、主エンコーダ用の固有層233Gから、主入力データのターゲット部である音響特徴量X5,X6に対応するコードh5,h6が出力されて後段ネットワーク240Gに送られ、後段ネットワーク240Gからトークン列が出力されるので、そのトークン列が正解データとなるように共有層232G、主エンコーダ用の固有層233G、および後段ネットワーク240Gのパラメータを決定するための学習を行う。この学習は、主エンコーダ235用の学習に相当する。
【0137】
また、共有層232Gへの入力データを補助入力データとみなした場合は、補助エンコーダ用の固有層234Gから、補助入力データのターゲット部である音響特徴量X7~X10に対応するコードh7~h10が出力されて後段ネットワーク240Gに送られ、後段ネットワーク240Gからトークン列が出力されるので、そのトークン列が正解データとなるように共有層232G、補助エンコーダ用の固有層234G、および後段ネットワーク240Gのパラメータを決定するための学習を行う。この学習は、補助エンコーダ236用の学習に相当する。
【0138】
そして、主タスク(主エンコーダ用の固有層233Gからの出力)と、補助タスク(補助エンコーダ用の固有層234Gからの出力)とについての損失関数の重みは、例えば、主タスク:補助タスク=1.0:0.2等とする。損失関数の重みの比は、この数値に限定されるものではないが、主タスクの重みを大きくすることが好ましい。
【0139】
(分岐モデル(2分岐の場合=Bifurcationモデル)の運用時の処理:
図15)
図15において、運用時には、最新の入力データ(1つのブロックを構成する10個の音響特徴量X
1~X
10)を共有層232に入力すると、主エンコーダ用の固有層233から、共有層232への入力データを主入力データとみなした場合のターゲット部である音響特徴量X
5,X
6に対応するコードh
5,h
6が出力されるとともに、補助エンコーダ用の固有層234から、共有層232への入力データを補助入力データとみなした場合のターゲット部である音響特徴量X
7~X
10に対応するコードh
7~h
10が出力される。その後、これらのコードh
5~h
10をまとめて後段ネットワーク240に送り、後段ネットワーク240から音声認識結果としてのトークン列を出力する。これにより、音響特徴量X
5,X
6だけではなく、音響特徴量X
5~X
10に対応するトークン列が出力されるので、音声認識における遅延が少なくなる。
【0140】
(分岐モデル(3分岐の場合)の学習時の処理:
図16)
分岐モデルを3分岐にする場合は、例えば、
図16および
図17に示すような学習時および運用時の処理となる。学習装置250の符号はそのままとするが、2分岐の場合の共有層232、主エンコーダ用の固有層233、補助エンコーダ用の固有層234、後段ネットワーク240の各符号は、3分岐の場合には、共有層262、主エンコーダ用の固有層263、第1、第2の補助エンコーダ用の固有層264,265、後段ネットワーク270(学習時は、262G,263G,264G,265G,270G)にそれぞれ置き換えるものとする。
【0141】
図16において、先ず、学習装置250で学習を行う際には、学習用のデータセットとして、主入力データ(フル先読み用の入力データ)と、部分先読み用の補助入力データと、ゼロ先読み用の補助入力データと、それらに対応する正解データ(正解トークン列)とを用意する。但し、共有層262(学習時は262G)に入力するのは、1つの入力データであるから、その1つの入力データを、主入力データとみなした場合の正解データ(正解トークン列)と、部分先読み用の補助入力データとみなした場合の正解データ(正解トークン列)と、ゼロ先読み用の補助入力データとみなした場合の正解データ(正解トークン列)とを用意する。
【0142】
具体的には、学習装置250では、
図16に示すように、連続する長い音声信号を区切って作成した1つのブロックを構成する10個の音響特徴量X
1~X
10があるときに、これを(NL,NC,NR)=(4,2,4)の主入力データとみなした場合は、その主入力データの履歴部は、音響特徴量X
1~X
4であり、ターゲット部は、音響特徴量X
5,X
6であり、先読み部は、音響特徴量X
7~X
10である。
【0143】
また、上記の1つのブロックを構成する10個の音響特徴量X1~X10を(NL1,NC1,NR1)=(6,2,2)の補助入力データ(つまり、部分先読み用の補助入力データ)とみなした場合は、その部分先読み用の補助入力データの履歴部は、音響特徴量X1~X6であり、ターゲット部は、音響特徴量X7,X8であり、先読み部は、音響特徴量X9,X10である。
【0144】
また、上記の1つのブロックを構成する10個の音響特徴量X1~X10を(NL2,NC2,NR2)=(8,2,0)の補助入力データ(つまり、ゼロ先読み用の補助入力データ)とみなした場合は、そのゼロ先読み用の補助入力データの履歴部は、音響特徴量X1~X8であり、ターゲット部は、音響特徴量X9,X10であり、先読み部はない。
【0145】
次に、用意した主入力データによる学習用のデータセット(共有層262Gへの入力データを主入力データとみなした場合とそのターゲット部に対応する正解データ(正解トークン列)とからなる学習用のデータセット)と、部分先読み用の補助入力データによる学習用のデータセット(共有層262Gへの入力データを部分先読み用の補助入力データとみなした場合とそのターゲット部に対応する正解データ(正解トークン列)とからなる学習用のデータセット)と、ゼロ先読み用の補助入力データによる学習用のデータセット(共有層262Gへの入力データをゼロ先読み用の補助入力データとみなした場合とそのターゲット部に対応する正解データ(正解トークン列)とからなる学習用のデータセット)とを用いて、共有層262G、主エンコーダ用および第1、第2の補助エンコーダ用の固有層263G,264G,265G、並びに後段ネットワーク270Gの学習処理を実行し、それらのパラメータを決定し、エンコーダ用パラメータ記憶手段252および後段ネットワーク用パラメータ記憶手段253(
図13参照)に記憶させる。
【0146】
この際、共有層262Gへの入力データを主入力データとみなした場合は、主エンコーダ用の固有層263Gから、主入力データのターゲット部である音響特徴量X5,X6に対応するコードh5,h6が出力されて後段ネットワーク270Gに送られ、後段ネットワーク270Gからトークン列が出力されるので、そのトークン列が正解データとなるように共有層262G、主エンコーダ用の固有層263G、および後段ネットワーク270Gのパラメータを決定するための学習を行う。この学習は、主エンコーダ用の学習に相当する。
【0147】
また、共有層262Gへの入力データを部分先読み用の補助入力データとみなした場合は、第1の補助エンコーダ用の固有層264Gから、部分先読み用の補助入力データのターゲット部である音響特徴量X7,X8に対応するコードh7,h8が出力されて後段ネットワーク270Gに送られ、後段ネットワーク270Gからトークン列が出力されるので、そのトークン列が正解データとなるように共有層262G、第1の補助エンコーダ用の固有層264G、および後段ネットワーク270Gのパラメータを決定するための学習を行う。この学習は、第1の補助エンコーダ用の学習に相当する。
【0148】
さらに、共有層262Gへの入力データをゼロ先読み用の補助入力データとみなした場合は、第2の補助エンコーダ用の固有層265Gから、ゼロ先読み用の補助入力データのターゲット部である音響特徴量X9,X10に対応するコードh9,h10が出力されて後段ネットワーク270Gに送られ、後段ネットワーク270Gからトークン列が出力されるので、そのトークン列が正解データとなるように共有層262G、第2の補助エンコーダ用の固有層265G、および後段ネットワーク270Gのパラメータを決定するための学習を行う。この学習は、第2の補助エンコーダ用の学習に相当する。
【0149】
(分岐モデル(3分岐の場合)の運用時の処理:
図17)
図17において、運用時には、最新の入力データ(1つのブロックを構成する10個の音響特徴量X
1~X
10)を共有層262に入力すると、主エンコーダ用の固有層263から、共有層262への入力データを主入力データとみなした場合のターゲット部である音響特徴量X
5,X
6に対応するコードh
5,h
6が出力されるとともに、第1の補助エンコーダ用の固有層264から、共有層262への入力データを部分先読み用の補助入力データとみなした場合のターゲット部である音響特徴量X
7,X
8に対応するコードh
7,h
8が出力され、第2の補助エンコーダ用の固有層265から、共有層262への入力データをゼロ先読み用の補助入力データとみなした場合のターゲット部である音響特徴量X
9,X
10に対応するコードh
9,h
10が出力される。その後、これらのコードh
5~h
10をまとめて後段ネットワーク270に送り、後段ネットワーク270から音声認識結果としてのトークン列を出力する。これにより、音響特徴量X
5,X
6だけではなく、音響特徴量X
5~X
10に対応するトークン列が出力されるので、音声認識における遅延が少なくなる。
【0150】
(第2実施形態の分岐モデルの効果)
このような本第2実施形態によれば、次のような効果を得ることができる。すなわち、音声認識器220のエンコーダ230は、エンコーダ層として、共有層232、主エンコーダ用および補助エンコーダ用の固有層233,234を備えているので(
図12、
図13参照)、共有層232と主エンコーダ用の固有層233とにより主エンコーダ235を構成することができ、共有層232と補助エンコーダ用の固有層234とにより補助エンコーダ236を構成することができる。また、共有層232を設けることにより、主エンコーダ235と補助エンコーダ236とのパラメータの共有化を図ることもできる。このため、前記第1実施形態の場合と同様に、マルチ・ルック・アヘッド(Multi-look-ahead)の音声認識処理(MLA-ASR)を実現し、高精度を維持しつつ、低遅延の音声認識処理を行うことができる。
【0151】
[第3実施形態]
【0152】
図18は、本発明の第3実施形態の音声認識システム300のユニティ(Unity)モデル(2パターン統合の場合)の要部を示すエンコーダの説明図であり、
図19には、ユニティモデルの全体構成が示されている。
図20および
図21には、ユニティモデル(2パターン統合の場合)の学習時および運用時の処理が示され、
図22および
図23は、ユニティモデル(3パターン統合の場合)の学習時および運用時の処理が示されている。
【0153】
(ユニティモデルの音声認識システム300の全体構成:
図18、
図19)
図18および
図19において、音声認識システム300は、ユニティモデルであり、1台または複数台のコンピュータにより構成され、音声信号からトークンを出力する音声認識器320と、その学習装置350とを備えている。音声認識器320は、ニューラルネットワークにより構成されたエンド・ツー・エンド(End-to-End)のストリーミング音声認識器であり、音声信号からコード(エンコードされた符号)を出力するエンコーダ330と、このエンコーダ330から受け取ったコードからトークンを出力する後段ネットワーク340とを備えている。
【0154】
(ユニティモデルのエンコーダ330の構成)
図18および
図19において、エンコーダ330は、入力処理手段331と、エンコーディング手段332と、エンコーダ用パラメータ記憶手段333とを備えて構成されている。
【0155】
入力処理手段331は、前記第1実施形態の入力処理手段31と同様に、
図5に示すような音声信号から音響特徴量Xを作成する処理を実行する。なお、入力処理手段331は、前記第1実施形態の入力処理手段31の場合とは異なり、運用時に、主入力データおよび補助入力データ(ゼロ先読み用および/または部分先読み用の補助入力データ)を作成する処理は行わない。エンコーダ330への入力データは、1つの最新の入力データであり、その1つのデータを、主入力データや補助入力データとみなしてエンコードの処理を行うからである。
【0156】
エンコーディング手段332は、複数層のエンコーダ層を有するニューラルネットワークによるエンコードの処理(符号化処理)のためのアルゴリズムを実行するものであり、コンピュータの内部に設けられた演算処理装置(CPUやGPU等)およびその動作手順を規定する1つまたは複数のプログラム、並びに主メモリやキャッシュメモリ等の作業用メモリなどにより構成されている。運用時のエンコーディング手段332の処理内容の詳細については、
図21を用いて後述する。
【0157】
エンコーダ用パラメータ記憶手段333は、ニューラルネットワークのパラメータを記憶するものであり、演算中は主メモリにより構成され、コンピュータが稼働していないときは、HDDやSSD等の不揮発性メモリにより構成されている。
【0158】
(ユニティモデルの後段ネットワーク340の構成)
後段ネットワーク340は、ニューラルネットワークによるデコードの処理のためのアルゴリズムを実行する後段処理手段341と、後段ネットワーク用パラメータ記憶手段342とを備えて構成されている。この後段ネットワーク340は、前記第1実施形態の後段ネットワーク40と同様な構成であり、そのバリエーションとして、
図3のCBS-Tや
図4のCBS-E/Dを採用することができ、その他の構成でもよい。また、後段処理手段341で実行されるビームサーチの処理は、前記第1実施形態の後段ネットワーク40と同様であり、既に
図9、
図10を用いて詳述した通りである。後段ネットワーク340のハードウェア構成(プログラムの実行とそれに必要な情報の記憶のための構成)は、エンコーダ330と同様である。
【0159】
(ユニティモデルの学習装置350の構成)
学習装置350は、学習手段351と、エンコーダ用パラメータ記憶手段352と、後段ネットワーク用パラメータ記憶手段353とを備えて構成されている。学習手段351は、エンコーダ330のエンコーダ層を構成するニューラルネットワークの学習処理を実行し、それらのパラメータを決定し、エンコーダ用パラメータ記憶手段352に記憶させるとともに、併せて後段ネットワーク340として使用するニューラルネットワークの学習処理を実行し、そのパラメータを決定し、後段ネットワーク用パラメータ記憶手段353に記憶させる。この学習処理の詳細については、
図20を用いて後述する。また、学習装置350のハードウェア構成(プログラムの実行とそれに必要な情報の記憶のための構成)は、エンコーダ330と同様である。
【0160】
そして、学習装置350は、
図19中の点線に示すように、エンコーダ用パラメータ記憶手段352に記憶されたパラメータを、エンコーダ330のエンコーダ用パラメータ記憶手段333にコピーする。また、学習装置350は、後段ネットワーク用パラメータ記憶手段353に記憶されたパラメータを、後段ネットワーク340の後段ネットワーク用パラメータ記憶手段342にコピーする。
【0161】
(ユニティモデル(2パターン統合の場合)の学習時の処理:
図20)
図20において、先ず、学習装置350で学習を行う際には、学習用のデータセットとして、主入力データ(フル先読み用の入力データ)と、補助入力データ(
図20の例では、ゼロ先読み用の補助入力データだけであるが、部分先読み用の補助入力データがあってもよい。)と、それらに対応する正解データ(正解トークン列)とを用意する。但し、エンコーダ330(学習時には符号330Gを付している。)に入力するのは、1つの入力データであるから、その1つの入力データを、主入力データとみなした場合の正解データ(正解トークン列)と、補助入力データとみなした場合の正解データ(正解トークン列)とを用意する。
【0162】
具体的には、学習装置350では、
図20に示すように、連続する長い音声信号を区切って作成した1つのブロックを構成する10個の音響特徴量X
1~X
10があるときに、これを(NL,NC,NR)=(4,2,4)の主入力データとみなした場合は、その主入力データの履歴部は、音響特徴量X
1~X
4であり、ターゲット部は、音響特徴量X
5,X
6であり、先読み部は、音響特徴量X
7~X
10である。
【0163】
また、上記の1つのブロックを構成する10個の音響特徴量X1~X10を(NL1,NC1,NR1)=(6,4,0)の補助入力データ(つまり、ゼロ先読み用の補助入力データ)とみなした場合は、その補助入力データの履歴部は、音響特徴量X1~X6であり、ターゲット部は、音響特徴量X7~X10であり、先読み部はない。
【0164】
次に、用意した主入力データによる学習用のデータセット(エンコーダ330への入力データを主入力データとみなした場合とそのターゲット部に対応する正解データ(正解トークン列)とからなる学習用のデータセット)と、補助入力データによる学習用のデータセット(エンコーダ330への入力データを補助入力データとみなした場合とそのターゲット部に対応する正解データ(正解トークン列)とからなる学習用のデータセット)とを用いて、エンコーダ330Gのエンコーダ層、および後段ネットワーク340Gの学習処理を実行し、それらのパラメータを決定し、エンコーダ用パラメータ記憶手段352および後段ネットワーク用パラメータ記憶手段353(
図19参照)に記憶させる。
【0165】
この際、エンコーダ330Gへの入力データを主入力データとみなした場合は、エンコーダ330Gから、主入力データのターゲット部である音響特徴量X5,X6に対応するコードh5,h6が出力されて後段ネットワーク340Gに送られ、後段ネットワーク340Gからトークン列が出力されるので、そのトークン列が正解データとなるようにエンコーダ330Gのエンコーダ層および後段ネットワーク340Gのパラメータを決定するための学習を行う。
【0166】
また、エンコーダ330Gへの入力データを補助入力データとみなした場合は、エンコーダ330Gから、補助入力データのターゲット部である音響特徴量X7~X10に対応するコードh7~h10が出力されて後段ネットワーク340Gに送られ、後段ネットワーク340Gからトークン列が出力されるので、そのトークン列が正解データとなるようにエンコーダ330Gのエンコーダ層および後段ネットワーク340Gのパラメータを決定するための学習を行う。
【0167】
そして、エンコーダ330Gへの入力データを主入力データとみなした場合と、エンコーダ330Gへの入力データを補助入力データとみなした場合とについての損失関数の重みは、例えば、主入力データ:補助入力データ=1.0:0.2等とする。損失関数の重みの比は、この数値に限定されるものではないが、主入力データの重みを大きくすることが好ましい。
【0168】
(ユニティモデル(2パターン統合の場合)の運用時の処理:
図21)
図21において、運用時には、最新の入力データ(1つのブロックを構成する10個の音響特徴量X
1~X
10)をエンコーダ330に入力すると、エンコーダ330から、その入力データを主入力データとみなした場合のターゲット部である音響特徴量X
5,X
6に対応するコードh
5,h
6と、補助入力データとみなした場合のターゲット部である音響特徴量X
7~X
10に対応するコードh
7~h
10が同時に出力される。その後、これらのコードh
5~h
10をまとめて後段ネットワーク340に送り、後段ネットワーク340から音声認識結果としてのトークン列を出力する。これにより、音響特徴量X
5,X
6だけではなく、音響特徴量X
5~X
10に対応するトークン列が出力されるので、音声認識における遅延が少なくなる。
【0169】
(ユニティモデル(3パターン統合の場合)の学習時の処理:
図22)
ユニティモデルを3パターン統合にする場合は、例えば、
図22および
図23に示すような学習時および運用時の処理となる。学習装置350の符号はそのままとするが、2パターン統合の場合のエンコーダ330、後段ネットワーク340の各符号は、3パターン統合の場合には、エンコーダ360、後段ネットワーク370(学習時は、360G,370G)にそれぞれ置き換えるものとする。
【0170】
図22において、先ず、学習装置350で学習を行う際には、学習用のデータセットとして、主入力データ(フル先読み用の入力データ)と、部分先読み用の補助入力データと、ゼロ先読み用の補助入力データと、それらに対応する正解データ(正解トークン列)とを用意する。但し、エンコーダ360(学習時は360G)に入力するのは、1つの入力データであるから、その1つの入力データを、主入力データとみなした場合の正解データ(正解トークン列)と、部分先読み用の補助入力データとみなした場合の正解データ(正解トークン列)と、ゼロ先読み用の補助入力データとみなした場合の正解データ(正解トークン列)とを用意する。
【0171】
具体的には、学習装置350では、
図22に示すように、連続する長い音声信号を区切って作成した1つのブロックを構成する10個の音響特徴量X
1~X
10があるときに、これを(NL,NC,NR)=(4,2,4)の主入力データとみなした場合は、その主入力データの履歴部は、音響特徴量X
1~X
4であり、ターゲット部は、音響特徴量X
5,X
6であり、先読み部は、音響特徴量X
7~X
10である。
【0172】
また、上記の1つのブロックを構成する10個の音響特徴量X1~X10を(NL1,NC1,NR1)=(6,2,2)の補助入力データ(つまり、部分先読み用の補助入力データ)とみなした場合は、その部分先読み用の補助入力データの履歴部は、音響特徴量X1~X6であり、ターゲット部は、音響特徴量X7,X8であり、先読み部は、音響特徴量X9,X10である。
【0173】
また、上記の1つのブロックを構成する10個の音響特徴量X1~X10を(NL2,NC2,NR2)=(8,2,0)の補助入力データ(つまり、ゼロ先読み用の補助入力データ)とみなした場合は、そのゼロ先読み用の補助入力データの履歴部は、音響特徴量X1~X8であり、ターゲット部は、音響特徴量X9,X10であり、先読み部はない。
【0174】
次に、用意した主入力データによる学習用のデータセット(エンコーダ360Gへの入力データを主入力データとみなした場合とそのターゲット部に対応する正解データ(正解トークン列)とからなる学習用のデータセット)と、部分先読み用の補助入力データによる学習用のデータセット(エンコーダ360Gへの入力データを部分先読み用の補助入力データとみなした場合とそのターゲット部に対応する正解データ(正解トークン列)とからなる学習用のデータセット)と、ゼロ先読み用の補助入力データによる学習用のデータセット(エンコーダ360Gへの入力データをゼロ先読み用の補助入力データとみなした場合とそのターゲット部に対応する正解データ(正解トークン列)とからなる学習用のデータセット)とを用いて、エンコーダ360Gのエンコーダ層、および後段ネットワーク370Gの学習処理を実行し、それらのパラメータを決定し、エンコーダ用パラメータ記憶手段352および後段ネットワーク用パラメータ記憶手段353(
図19参照)に記憶させる。
【0175】
この際、エンコーダ360Gへの入力データを主入力データとみなした場合は、エンコーダ360Gから、主入力データのターゲット部である音響特徴量X5,X6に対応するコードh5,h6が出力されて後段ネットワーク370Gに送られ、後段ネットワーク370Gからトークン列が出力されるので、そのトークン列が正解データとなるようにエンコーダ360Gのエンコーダ層および後段ネットワーク370Gのパラメータを決定するための学習を行う。
【0176】
また、エンコーダ360Gへの入力データを部分先読み用の補助入力データとみなした場合は、エンコーダ360Gから、部分先読み用の補助入力データのターゲット部である音響特徴量X7,X8に対応するコードh7,h8が出力されて後段ネットワーク370Gに送られ、後段ネットワーク370Gからトークン列が出力されるので、そのトークン列が正解データとなるようにエンコーダ360Gのエンコーダ層および後段ネットワーク370Gのパラメータを決定するための学習を行う。
【0177】
さらに、エンコーダ360Gへの入力データをゼロ先読み用の補助入力データとみなした場合は、エンコーダ360Gから、ゼロ先読み用の補助入力データのターゲット部である音響特徴量X9,X10に対応するコードh9,h10が出力されて後段ネットワーク370Gに送られ、後段ネットワーク370Gからトークン列が出力されるので、そのトークン列が正解データとなるようにエンコーダ360Gのエンコーダ層および後段ネットワーク370Gのパラメータを決定するための学習を行う。
【0178】
(ユニティモデル(3パターン統合の場合)の運用時の処理:
図23)
図23において、運用時には、最新の入力データ(1つのブロックを構成する10個の音響特徴量X
1~X
10)をエンコーダ360に入力すると、エンコーダ360から、その入力データを主入力データとみなした場合のターゲット部である音響特徴量X
5,X
6に対応するコードh
5,h
6と、部分先読み用の補助入力データとみなした場合のターゲット部である音響特徴量X
7,X
8に対応するコードh
7,h
8と、ゼロ先読み用の補助入力データとみなした場合のターゲット部である音響特徴量X
9,X
10に対応するコードh
9,h
10とが同時に出力される。その後、これらのコードh
5~h
10をまとめて後段ネットワーク370に送り、後段ネットワーク370から音声認識結果としてのトークン列を出力する。これにより、音響特徴量X
5,X
6だけではなく、音響特徴量X
5~X
10に対応するトークン列が出力されるので、音声認識における遅延が少なくなる。
【0179】
(従来技術との相違点)
前記第1実施形態の雁木(Gangi)モデル(
図1参照)や、前記第2実施形態の分岐モデル(
図12参照)の場合は、それらの構造上、図面を見れば、従来技術(
図28参照)との相違点が一目瞭然である。これに対し、本第3実施形態のユニティモデル(
図18参照)の場合は、図面だけでは従来技術(
図28参照)との相違点がわかりにくいため、再度、その相違点を説明する。
【0180】
従来は、
図28に示すように、エンコーダへの入力データについて、ターゲット部(NC個の音響特徴量X)の未来側(右側)に先読み部(NR個の音響特徴量X)を設定し、その先読み部(NR個)を含む入力に対し、ターゲット部(NC個)に対応するコードだけを後段ネットワークに送っていた。つまり、後段ネットワークに送るコードは、ターゲット部(NC個)に対応するコードだけであり、先読み部(NR個)に対応するコードは送っていなかった。このため、従来のエンコーダのパラメータは、そういう流れでのみ学習されたパラメータになっていた。本発明では、前述したように履歴部のブロック化は必須としていないので、これに合わせて、履歴部を除いて
図28の従来技術を説明すると、従来は、エンコーダに「ターゲット部+先読み部」を入力すると、エンコーダから「ターゲット部のみ」に対応するコードが出力されて後段ネットワークへ送られ、後段ネットワークから「ターゲット部のみ」に対応するトークン列(音声認識結果)が出力されるような学習を行い、エンコーダのパラメータは、そのような学習で決定されたものとなっていた。
【0181】
これに対し、本発明の第3実施形態のユニティモデルは、同様な理由で履歴部を除いて説明すると、
図28の従来技術の先読み部(NR個)に相当する部分に対応するコードについても、エンコーダから出力し、その出力コードを後段ネットワークに送り、その先読み部(NR個)(あくまでも従来技術でいうときの先読み部に相当する部分)に対応するトークン列(音声認識結果)が後段ネットワークから出力されるような学習も加えて行い、エンコーダのパラメータは、そのような学習で決定されたものとなっている。
【0182】
注意すべき第1の点は、ユニティモデルの学習時には、エンコーダから「ターゲット部+先読み部(あくまでも従来でいう先読み部に相当する部分)」に対応するコードを出力し、それらの出力コードをまとめて後段ネットワークに送っているのではなく、
図20や
図22に明示した通り、学習時には、エンコーダから出力されたターゲット部に対応するコードと、先読み部(あくまでも従来でいう先読み部に相当する部分)に対応するコードとを、別々に後段ネットワークに送り、それぞれで発生する正解データとの誤差で学習を行い、エンコーダのパラメータを決定している。つまり、エンコーダから出力されたターゲット部に対応するコードと、先読み部(あくまでも従来でいう先読み部に相当する部分)に対応するコードとは、別々の学習用のデータセット(本願では、主入力データによる学習用のデータセット、補助入力データによる学習用のデータセットと呼んでいる。)による学習中に生じたコードであるという位置付けである。
【0183】
注意すべき第2の点は、ユニティモデルでは、先読み部(あくまでも従来でいう先読み部に相当する部分)について、それに対応するコードをエンコーダから出力し、その出力コードを後段ネットワークに送ってトークン列(音声認識結果)を得ているので、その先読み部(あくまでも従来でいう先読み部に相当する部分)は、紛れもなく音声認識対象のターゲット部と呼ぶべきものである。そして、先読み部(あくまでも従来でいう先読み部に相当する部分)を、ターゲット部と呼ぶと(上記のように考えて、そう呼ぶことが正しい。)、そう呼んだときの先読み部は、無くなるか、または、従来でいう先読み部よりも短い先読み部となる。このような用語上の混乱や誤解を避けるため、本願では、主入力データと、補助入力データ(ゼロ先読み用の補助入力データ、部分先読み用の補助入力データ)という用語を使用し、同じデータについて、主入力データとみなしてターゲット部の位置を設定する場合と、補助入力データとみなしてターゲット部の位置を設定する場合とを区別している。従って、本願でマルチ・ルック・アヘッド(Multi-look-ahead)といっているのは、主入力データと、補助入力データ(ゼロ先読み用の補助入力データ、部分先読み用の補助入力データ)とで、それぞれの先読み部(look-ahead)の長さが異なるからである。
【0184】
なお、前記第1実施形態の雁木(Gangi)モデル(
図1、
図2参照)では、運用時に、入力処理手段31により主入力データ(フル先読み用の入力データ)と、補助入力データ(ゼロ先読み用の補助入力データおよび/または部分先読み用の補助入力データ)とを、別々のデータとして作成し、複数のエンコーダ32,33,34で並列処理を実行するので、用語の意味の理解が容易である。
【0185】
これに対し、前記第2実施形態の分岐モデル(
図12、
図13参照)の場合や、本第3実施形態のユニティモデル(
図18、
図19参照)の場合は、運用時に主入力データや補助入力データを別々のデータとして作成するわけではなく、入力される1つの最新のデータについて、それを主入力データとみなした場合および補助入力データとみなした場合の双方の処理が実行されるという点で、前記第1実施形態の雁木(Gangi)モデルとは異なっている。しかし、内容的には、いずれのモデルも、マルチ・ルック・アヘッド(Multi-look-ahead)の音声認識処理(MLA-ASR)を行っている。
【0186】
(第3実施形態のユニティモデルの効果)
このような本第3実施形態によれば、次のような効果を得ることができる。すなわち、音声認識器320のエンコーダ330は、主入力データによる学習用のデータセットと、ゼロ先読み用および/または部分先読み用の補助入力データによる学習用のデータセットとを用いて学習されたエンコーダ層を備えているので(
図20、
図22参照)、マルチ・ルック・アヘッド(Multi-look-ahead)の音声認識処理(MLA-ASR)を実現し、かつ、構造も簡易であるため、非常に低遅延の音声認識処理を行うことができる。また、パラメータの共有化により、ある程度、高精度を維持することもできる。
【0187】
なお、本発明の他のモデル(前記第1実施形態の雁木モデル、第2実施形態の分岐モデル)と比べると、より低遅延を達成可能であるが、その分だけ相対的に精度は犠牲になる傾向にある。
【0188】
また、本第3実施形態のユニティモデル(
図18、
図19参照)では、図面で構造的に主エンコーダと補助エンコーダとを認識することはできず、この点が、前記第1実施形態の雁木モデル(
図1、
図2参照)、第2実施形態の分岐モデル(
図12、
図13参照)とは異なるが、学習の形態(
図20、
図22参照)からすると、主エンコーダと補助エンコーダとが統合され、全てのエンコーダ層でパラメータの共有化が行われている状態である。
【0189】
[比較用のモデル]
【0190】
図24および
図25には、分離(Separate)モデルの学習時および運用時の処理が示されている。この分離モデルは、後述する比較実験で使用する比較用のモデルであり、複数層のエンコーダ層を有する主エンコーダ432と、複数層のエンコーダ層を有する補助エンコーダ433と、後段ネットワーク440とを備えている。主エンコーダ432と補助エンコーダ433とのパラメータの共有化は行われていない。
【0191】
(分離モデルの学習時の処理:
図24)
図24において、先ず、学習を行う際には、学習用のデータセットとして、主入力データ(フル先読み用の入力データ)と、補助入力データ(
図24の場合は、ゼロ先読み用の補助入力データ)と、それらに対応する正解データ(正解トークン列)とを用意する。
【0192】
具体的には、
図24に示すように、例えば、連続する長い音声信号を区切って作成した1つのブロックを構成する10個の音響特徴量X
1~X
10があるときに、主入力データを(NL,NC,NR)=(4,2,4)とし、補助入力データを(NL
1,NC
1,NR
1)=(6,4,0)とする。
【0193】
次に、用意した主入力データによる学習用のデータセット(主入力データおよびそのターゲット部に対応する正解データ)を用いて、主エンコーダ432Gおよび後段ネットワーク440Gを学習する。また、用意した補助入力データによる学習用のデータセット(補助入力データおよびそのターゲット部に対応する正解データ)を用いて、補助エンコーダ433Gおよび後段ネットワーク440Gを学習する。そして、これらの学習により、主エンコーダ432G、補助エンコーダ433G、および後段ネットワーク440Gのパラメータを決定する。この際、主入力データによる主エンコーダ432Gの学習と、補助入力データによる補助エンコーダ433Gの学習との比率は、ユニティモデルと同様でよい。
【0194】
(分離モデルの運用時の処理:
図25)
図25において、運用時には、最新の入力データ(1つのブロックを構成する10個の音響特徴量X
1~X
10)を主エンコーダ432に入力し、主エンコーダ432から、その最新の入力データを主入力データとみなした場合のターゲット部である音響特徴量X
5,X
6に対応するコードh
5,h
6を出力するとともに、これと並列処理で、同じ最新の入力データを補助エンコーダ433にも入力し、補助エンコーダ433から、その最新の入力データを補助入力データとみなした場合のターゲット部である音響特徴量X
7~X
10に対応するコードh
7~h
10を出力する。その後、これらのコードh
5~h
10をまとめて後段ネットワーク440に送り、後段ネットワーク440から音声認識結果としてのトークン列を出力する。これにより、音響特徴量X
5,X
6だけではなく、音響特徴量X
5~X
10に対応するトークン列が出力される。
【0195】
この分離モデルでは、マルチ・ルック・アヘッド(Multi-look-ahead)の音声認識処理(MLA-ASR)を実現しているので、従来技術(
図28参照)に比べ、遅延は低減できるが、主エンコーダ432と補助エンコーダ433とのパラメータの共有化は行っていないので、音声認識精度については、高精度を十分に維持することはできない。従って、低遅延化の達成の程度と、高精度の維持の程度との双方を勘案し、本願では、比較用のモデルの位置付けとしている。
【0196】
[比較実験]
【0197】
図26には、比較実験(1)の結果が示され、
図27には、比較実験(2)(共有層の数と性能との関係)の結果が示されている。
【0198】
図26の比較実験(1)では、WSJ(非特許文献5参照)およびTED2(非特許文献6参照)のデータセットを用いて、ベースラインとしてのシングル・ルック・アヘッド(Single-look-ahead)の従来モデル(
図28参照)と、前記第1実施形態の雁木(Gangi)モデルと、前記第3実施形態のユニティ(Unity)モデルと、前記第2実施形態の分岐モデル(2分岐のBifurcationモデル)との性能比較を行っている。
【0199】
ブロック設定の(〇-〇-〇)という数字は、履歴部、ターゲット部、先読み部を構成する音響特徴量Xの数である。従来モデルについては、シングル・ルック・アヘッド(先読み部は1つ)であるため、(NL-NC-NR)=(8-4-12)の1つだけである。雁木(Gangi)モデルの(8-4-12,8,4,0)については、主入力データが(8-4-12)であり、部分先読み用の補助入力データが(8-4-8)、(8-4-4)の2つであり、ゼロ先読み用の補助入力データが(8-4-0)である。ユニティ(Unity)モデルおよび分岐モデル(2分岐のBifurcationモデル)については、主入力データが(8-4-12)であり、ゼロ先読み用の補助入力データが(12-12-0)である。
【0200】
図26の比較実験(1)の結果によれば、シングル・ルック・アヘッド(Single-look-ahead)の従来モデルに対し、雁木(Gangi)モデル、ユニティ(Unity)モデル、分岐モデル(2分岐のBifurcationモデル)のいずれも十分に低遅延であり、マルチ・ルック・アヘッド(Multi-look-ahead)にした効果が得られている。遅延(Delay)の低減効果については、太枠で囲ったように、特に、ユニティ(Unity)モデルが顕著である。一方、単語誤り率WERを見ると、音声認識精度については、太枠で囲ったように、雁木(Gangi)モデルや分岐モデル(2分岐のBifurcationモデル)が高精度を示している。
【0201】
図27の比較実験(2)では、TED2をデータセットとして用いている。ブロック設定は、シングル・ルック・アヘッド(Single-look-ahead)の従来モデルについては、(8-4-8)であり、それ以外のマルチ・ルック・アヘッド(Multi-look-ahead)のモデルについては、主入力データが(8-4-12)であり、補助入力データが(12-12-0)である。
【0202】
共有層の数は、シングル・ルック・アヘッド(Single-look-ahead)の従来モデルについては、共有の概念が生じないので、数字の記載がなく、ユニティ(Unity)モデルについては、主エンコーダと補助エンコーダとが統合されて全てのエンコーダ層が共有化されていると考え、12層としている。分岐モデル(2分岐のBifurcationモデル)については、共有層の数(
図12の層数Ne-com)が、9層、6層、3層という3通りの場合を用意した。分離(Separate)モデルについては、比較用のモデルとして用意したので、マルチ・ルック・アヘッド(Multi-look-ahead)ではあるが、共有層の数はゼロである。
【0203】
図27の比較実験(2)の結果によれば、シングル・ルック・アヘッド(Single-look-ahead)の従来モデルに対し、共有層の数に関係なく、ユニティ(Unity)モデル、3通りの分岐モデル(2分岐のBifurcationモデル)のいずれも十分に低遅延であり、マルチ・ルック・アヘッド(Multi-look-ahead)にした効果が得られている。遅延(Delay)の低減効果については、太枠で囲ったように、特に、ユニティ(Unity)モデルが顕著であり、パラメータ数が少ない構造に起因していると考えられる。なお、分離(Separate)モデルでも、マルチ・ルック・アヘッド(Multi-look-ahead)にした効果により、低遅延が達成されている。一方、単語誤り率WERを見ると、音声認識精度については、太枠で囲ったように、分岐モデル(2分岐のBifurcationモデル)で共有層を6層にした場合が最も高精度を示している。従って、共有層の数は、多くし過ぎても、少なくし過ぎても最良の結果は得られず、最高の精度が得られる層数が存在し、それは中間的な層数であることがわかった。
【0204】
[変形の形態]
【0205】
なお、本発明は前記各実施形態に限定されるものではなく、本発明の目的を達成できる範囲内での変形等は本発明に含まれるものである。
【0206】
すなわち、前記各実施形態では、履歴部がブロック化されていたが、本発明では、必ずしも履歴部をブロック化する必要はなく、ターゲット部および先読み部がブロックに含まれていればよいので(ブロック処理の対象となっていればよいので)、エンコーダにおいて、履歴部を構成する音響特徴量は、ブロック処理とは別途の処理を行って後段ネットワークへ送るコードの作成に使用するようにしてもよい。
【0207】
また、前記各実施形態では、文脈ベクトル(contextual vector)を用いたコンテクスチュアル・ブロック・ストリーミング(Contextual Block Streaming:CBS)の処理を行っていたが、本発明は、文脈ベクトルを使用しないブロック処理(文脈ベクトルに代わる別の情報を使用する場合を含む。)に適用してもよい。但し、高精度の音声認識が可能であるという点で、CBS処理に適当することが好ましい。
【産業上の利用可能性】
【0208】
以上のように、本発明の音声認識システムおよびプログラムは、例えば、CBS-TやCBS-E/D等に用いるのに適している。
【符号の説明】
【0209】
10,200,300 音声認識システム
20,220,320 音声認識システムを構成する音声認識器
30,230,330,360 エンコーダ
31 入力処理手段
32,235 主エンコーダ
33,34,236 補助エンコーダ
40,240,270,340,370 後段ネットワーク
232,262 共有層
233,263 主エンコーダ用の固有層
234,264,265 補助エンコーダ用の固有層