(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022145608
(43)【公開日】2022-10-04
(54)【発明の名称】音声認識のためのネットワークにおけるデコーディング方法及びデコーディング装置
(51)【国際特許分類】
G10L 15/08 20060101AFI20220926BHJP
G10L 15/16 20060101ALI20220926BHJP
【FI】
G10L15/08 200J
G10L15/16
【審査請求】未請求
【請求項の数】24
【出願形態】OL
(21)【出願番号】P 2022038236
(22)【出願日】2022-03-11
(31)【優先権主張番号】10-2021-0035353
(32)【優先日】2021-03-18
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】朴 晋佑
(72)【発明者】
【氏名】李 敏重
(72)【発明者】
【氏名】李 知▲ひょん▼
(72)【発明者】
【氏名】李 鎬式
(57)【要約】 (修正有)
【課題】音声認識のためのネットワークにおけるデコーディング方法及びデコーディング装置を提供すること。
【解決手段】デコーディング方法は、現在時点の入力音声に対応する入力シーケンスを受信し、音声認識のためのネットワークにおいて、入力シーケンスをエンコーディングして符号化されたベクトルシーケンスを生成し、2つ以上の以前時点の候補ビームを比較することで、以前時点の候補ビームからリユーストークンを決定し、リユーストークン及びベクトルシーケンスに基づいて、リユーストークンに後続する1つ以上のトークンをデコーディングする。
【選択図】
図3
【特許請求の範囲】
【請求項1】
デコーディング方法であって、
現在時点の入力音声に対応する入力シーケンスを受信するステップと、
音声認識のためのネットワークにおいて、
前記入力シーケンスをエンコーディングして符号化されたベクトルシーケンスを生成するステップと、
2つ以上の以前時点の候補ビームを比較することで、前記以前時点の候補ビームからリユーストークンを決定するステップと、
前記リユーストークン及び前記ベクトルシーケンスに基づいて、前記リユーストークンに後続する1つ以上のトークンをデコーディングするステップと、
を含む、
方法。
【請求項2】
前記リユーストークンを決定するステップは、
n-2(n≧3である自然数)以前時点の候補ビームと、n-2以前時点に後続するn-1以前時点の候補ビームとの間の比較結果に基づいて、n-1以前時点に後続する現在時間であるn現在時点におけるトークンのリユース時点を決定するステップと、
前記リユース時点まで累積された候補ビームを前記リユーストークンとして決定するステップと、
を含む、請求項1に記載の方法。
【請求項3】
前記リユース時点を決定するステップは、
n-2以前時点の候補ビーム及びn-1以前時点の候補ビームにおいて、下位文字列(sub string)が最も多く一致する時点を、前記n現在時点における前記トークンのリユース時点として決定するステップ、
を含む、請求項2に記載の方法。
【請求項4】
前記方法は、さらに、
前記リユース時点までの候補ビームの確率のうち最も高い確率を有する候補ビームと、
前記最も高い確率を有する候補ビームに対応するビームステート(beam state)のうちいずれか1つ又は2つ、
を格納するステップと、
を含む、請求項2に記載の方法。
【請求項5】
前記1つ以上のトークンをデコーディングするステップは、
前記2つ以上の以前時点でデコーディングの以前時点におけるトークンの組み合わせの確率に基づいて、次の時点のデコーディングに使用される候補ビームを決定するステップと、
前記候補ビームのうち、トークンのリユース時点に該当する1つ以上の候補ビームを用いて前記1つ以上のトークンをデコーディングするステップと、
を含む、請求項1に記載の方法。
【請求項6】
前記1つ以上のトークンをデコーディングするステップは、
前記候補ビームのうち、トークンのリユース時点に該当する1つ以上の候補ビームを前記ネットワークに含まれている自己回帰的デコーダレイヤに入力するステップと、
前記1つ以上のトークンをデコーディングするステップと、
を含む、請求項5に記載の方法。
【請求項7】
前記1つ以上のトークンをデコーディングするステップは、
前記入力音声が終了していない場合、予め設定された回数だけ前記1つ以上のトークンをデコーディングするステップ、
を含む、請求項1に記載の方法。
【請求項8】
前記1つ以上のトークンをデコーディングするステップは、
前記リユーストークン及び前記ベクトルシーケンスに基づいて、前記リユーストークンに後続する複数のトークン候補の確率を予測するステップと、
前記複数のトークン候補の確率に基づいて、前記1つ以上のトークンを決定するステップと、
を含む、請求項1に記載の方法。
【請求項9】
前記ベクトルシーケンスを生成するステップは、
前記ネットワークに含まれているエンコーダレイヤによって前記入力シーケンスをエンコーディングすることで、前記符号化されたベクトルシーケンスを生成するステップ、
を含む、請求項1に記載の方法。
【請求項10】
前記方法は、さらに、
前記ネットワークにおいて、
前記以前時点までの入力シーケンスに前記現在時点の入力音声に対応する入力シーケンスが累積されたシーケンスを生成するステップ、を含み、
前記ベクトルシーケンスを生成するステップは、
前記累積されたシーケンスをエンコーディングし、前記符号化されたベクトルシーケンスを生成するステップ、
を含む、請求項1に記載の方法。
【請求項11】
前記ネットワークは、
エンコーダレイヤ及び自己回帰的デコーダレイヤを含むアテンション基盤のエンコーダ-デコーダモデルを含む、
請求項1に記載の方法。
【請求項12】
前記方法は、さらに、
前記リユーストークンに後続するデコーディングされた1つ以上のトークンに基づいて、前記入力音声の音声認識結果を生成するステップ、
を含む、請求項1に記載の方法。
【請求項13】
コンピュータで読み出し可能な記録媒体に格納されたコンピュータプログラムであって、
前記コンピュータプログラムは、複数の命令を含み、
前記命令が実行されると、ハードウェアと結合して、請求項1に記載の方法を実行させる、
コンピュータプログラム。
【請求項14】
音声認識のためのネットワークを含むデコーディング装置であって、
現在時点の入力音声に対応する入力シーケンスを受信する、通信インターフェースと、
プロセッサであり、
前記入力シーケンスをエンコーディングして符号化されたベクトルシーケンスを生成し、
2つ以上の以前時点の候補ビームを比較することで、前記以前時点の候補ビームからリユーストークンを決定し、
前記リユーストークン及び前記ベクトルシーケンスに基づいて、前記リユーストークンに後続する1つ以上のトークンをデコーディングする、
プロセッサと、
を含む、装置。
【請求項15】
前記リユーストークンを決定するために、前記プロセッサは、
n-2以前時点の候補ビームと、n-2以前時点に後続するn-1以前時点の候補ビームと間の比較結果に基づいて、n-1以前時点に後続する現在時間であるn現在時点におけるトークンのリユース時点を決定し、
前記リユース時点まで累積された候補ビームを前記リユーストークンとして決定する、
請求項14に記載の装置。
【請求項16】
前記リユーストークンを決定するために、前記プロセッサは、
n-2以前時点の候補ビーム及びn-1以前時点の候補ビームで下位文字列が最も多く一致する時点を、前記n現在時点における前記トークンのリユース時点として決定する、
請求項15に記載の装置。
【請求項17】
前記装置は、さらに、
次の時点のデコーディングに使用される候補ビームを格納するメモリ、
を含み、
前記1つ以上のトークンをデコーディングするために、前記プロセッサは、
前記2つ以上の以前時間のうち、前記デコーディングの以前時点におけるトークンの組み合せの確率に基づいて、次の時点のデコーディングに使用される候補ビームを決定し、
前記候補ビームのうちトークンのリユース時点に該当する1つ以上の候補ビームを用いて前記1つ以上のトークンをデコーディングする、
請求項14に記載の装置。
【請求項18】
前記1つ以上のトークンをデコーディングするために、前記プロセッサは、
前記候補ビームのうち、トークンのリユース時点に該当する1つ以上の候補ビームを前記ネットワークに含まれている自己回帰的デコーダレイヤに入力し、
前記1つ以上のトークンをデコーディングする、
請求項17に記載の装置。
【請求項19】
前記1つ以上のトークンをデコーディングするために、前記プロセッサは、
前記リユーストークン及び前記ベクトルシーケンスに基づいて、前記リユーストークンに後続する複数のトークン候補の確率を予測し、
前記複数のトークン候補の確率に基づいて、前記1つ以上のトークンを決定する、
請求項14に記載の装置。
【請求項20】
前記プロセッサは、
前記ネットワークに含まれているエンコーダレイヤによって前記入力シーケンスをエンコーディングすることで、前記符号化されたベクトルシーケンスを生成する、
請求項14に記載の装置。
【請求項21】
前記プロセッサは、前記ネットワークを用いて、
前記以前時点までの入力シーケンスに前記現在時点の入力音声に対応する入力シーケンスが累積されたシーケンスを生成し、
前記エンコーディングされたベクトルシーケンスの生成のために、前記累積されたシーケンスをエンコーディングして前記符号化されたベクトルシーケンスを生成する、
請求項14に記載の装置。
【請求項22】
デコーディング方法であって、
音声認識のためのネットワークにおいて、
現在のデコーディング時間ステップにおける入力音声に対応する入力シーケンスをエンコーディングすることで、符号化されたベクトルシーケンスを生成するステップと、
以前時間ステップの候補ビーム間にマッチングされるトークンの最も大きいシーケンスに基づいて、リユーストークンを決定するステップと、 前記リユーストークン及び前記エンコーディングされたベクトルシーケンスに基づいて、前記リユーストークンに後続する1つ以上のトークンをデコーディングするステップと、
を含む、方法。
【請求項23】
前記リユーストークンを決定するステップは、
現在時間ステップに先行する以前時間ステップのうち1つの候補ビームの部分を、前記以前時間ステップの候補ビーム間にマッチングされるトークンの最も大きいシーケンスに対応する時間まで決定するステップ、
を含む、請求項22に記載の方法。
【請求項24】
前記以前時間ステップの候補ビーム間にマッチングされるトークンの最も大きいシーケンスは、初期時間ステップにおいて前記現在時間ステップの以前時間ステップまでである、
請求項23に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
以下の実施形態は、音声認識のためのネットワークにおけるデコーディング方法及びデコーディング装置に関する。
【背景技術】
【0002】
音声認識(speech recognition)技術は、ヒトが発話した音声のような音響学的な信号(acoustic speech signal)をコンピューティング装置の分析を通じて認識する技術を意味する。音声認識として、例えば、音声データから抽出された周波数特徴を音響モデルにおいて処理する隠れマルコフモデル(Hidden Markov Model;HMM)を用いて発音を分析して、音声を認識したり、又は、ネットワークから構成されたエンドツーエンド(end-to-end)方式のモデルとして、別途の音響モデルなしに音声データから単語や文章などのテキストを直接認識する方式を用いる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許出願第20180013879号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
一実施形態によれば、アテンション(attention)基盤のエンコーダ-デコーダ(encoder-decoder)音声認識モデルに部分デコード(partial decoding)方式を適用するとき、自己回帰的(auto-regressive)デコーディングステップを繰り返すために費やされる時間を低減することができる。
【0005】
一実施形態によれば、各部分デコードで以前の部分デコード結果のうち、安定的な部分に該当するトークンをリユースすることで、各部分デコードに必要とされるデコーディングステップのうち前半部の演算消耗を節約することができる。
【0006】
一実施形態によれば、自己回帰的デコーディング時の繰り返し回数(デコーディング回数)を制限し、各部分デコードに必要とされるデコーディングステップのうち後半部の演算消耗を節約することができる。
【課題を解決するための手段】
【0007】
一実施形態によれば、デコーディング方法は、現在時点の入力音声に対応する入力シーケンスを受信するステップと、音声認識のためのネットワークにおいて、前記入力シーケンスをエンコーディングして符号化されたベクトルシーケンスを生成するステップと、2つ以上の以前時点の候補ビームを比較することで、前記以前時点の候補ビームからリユーストークンを決定するステップと、前記リユーストークン及び前記ベクトルシーケンスに基づいて、前記リユーストークンに後続する1つ以上のトークンをデコーディングするステップと、を含む。
【0008】
前記リユーストークンを決定するステップは、n-2(n≧3である自然数)以前時点の候補ビームと、n-2以前時点に後続するn-1以前時点の候補ビームとの間の比較結果に基づいて、n-1以前時点に後続する現在時間であるn現在時点におけるトークンのリユース時点を決定するステップと、前記リユース時点まで累積された候補ビームを前記リユーストークンとして決定するステップと、を含むことができる。
【0009】
前記リユース時点を決定するステップは、n-2以前時点の候補ビーム及びn-1以前時点の候補ビームにおいて、下位文字列(sub string)が最も多く一致する時点を、前記n現在時点における前記トークンのリユース時点として決定するステップを含むことができる。
【0010】
前記デコーディング方法は、前記リユース時点までの候補ビームの確率のうち最も高い確率を有する候補ビームと、前記最も高い確率を有する候補ビームに対応するビームステート(beam state)のうちいずれか1つ又は2つを格納するステップと、をさらに含むことができる。
【0011】
前記1つ以上のトークンをデコーディングするステップは、前記2つ以上の以前時点でデコーディングの以前時点におけるトークンの組み合わせの確率に基づいて、次の時点のデコーディングに使用される候補ビームを決定するステップと、前記候補ビームのうち、トークンのリユース時点に該当する1つ以上の候補ビームを用いて前記1つ以上のトークンをデコーディングするステップと、を含むことができる。
【0012】
前記1つ以上のトークンをデコーディングするステップは、前記候補ビームのうち、トークンのリユース時点に該当する1つ以上の候補ビームを前記ネットワークに含まれている自己回帰的デコーダレイヤに入力するステップと、前記1つ以上のトークンをデコーディングするステップと、を含むことができる。
【0013】
前記1つ以上のトークンをデコーディングするステップは、前記入力音声が終了していない場合、予め設定された回数だけ前記1つ以上のトークンをデコーディングするステップ、を含むことができる。
【0014】
前記1つ以上のトークンをデコーディングするステップは、前記リユーストークン及び前記ベクトルシーケンスに基づいて、前記リユーストークンに後続する複数のトークン候補の確率を予測するステップと、前記複数のトークン候補の確率に基づいて、前記1つ以上のトークンを決定するステップ、とを含むことができる。
【0015】
前記ベクトルシーケンスを生成するステップは、前記ネットワークに含まれているエンコーダレイヤによって前記入力シーケンスをエンコーディングすることで、前記符号化されたベクトルシーケンスを生成するステップ、を含むことができる。
【0016】
前記デコーディング方法は、前記ネットワークにおいて、前記以前時点までの入力シーケンスに前記現在時点の入力音声に対応する入力シーケンスが累積されたシーケンスを生成するステップ、をさらに含む。前記ベクトルシーケンスを生成するステップは、前記累積されたシーケンスをエンコーディングし、前記符号化されたベクトルシーケンスを生成するステップ、を含むことができる。
【0017】
前記ネットワークは、エンコーダレイヤ及び自己回帰的デコーダレイヤを含むアテンション基盤のエンコーダ-デコーダモデルを含むことができる。
【0018】
前記デコーディング方法は、前記リユーストークンに後続するデコーディングされた1つ以上のトークンに基づいて、前記入力音声の音声認識結果を生成するステップ、をさらに含むことができる。
【0019】
一実施形態に係る音声認識のためのネットワークを含むデコーディング装置は、現在時点の入力音声に対応する入力シーケンスを受信する通信インターフェースと、前記入力シーケンスをエンコーディングして符号化されたベクトルシーケンスを生成し、2つ以上の以前時点の候補ビームを比較することで、前記以前時点の候補ビームからリユーストークンを決定し、前記リユーストークン及び前記ベクトルシーケンスに基づいて、前記リユーストークンに後続する1つ以上のトークンをデコーディングするプロセッサとを含むことができる。
【0020】
前記リユーストークンを決定するために、前記プロセッサは、n-2以前時点の候補ビームと、n-2以前時点に後続するn-1以前時点の候補ビームと間の比較結果に基づいて、n-1以前時点に後続する現在時間であるn現在時点におけるトークンのリユース時点を決定し、前記リユース時点まで累積された候補ビームを前記リユーストークンとして決定することができる。
【0021】
前記リユーストークンを決定するために、前記プロセッサは、n-2以前時点の候補ビーム及びn-1以前時点の候補ビームで下位文字列が最も多く一致する時点を、前記n現在時点における前記トークンのリユース時点として決定することができる。
【0022】
前記デコーディング装置は、前記次の時点のデコーディングに使用される候補ビームを格納するメモリをさらに含み、前記1つ以上のトークンをデコーディングするために、前記プロセッサは、前記2つ以上の以前時間のうち、前記デコーディングの以前時点におけるトークンの組み合せの確率に基づいて、次の時点のデコーディングに使用される候補ビームを決定し、前記候補ビームのうちトークンのリユース時点に該当する1つ以上の候補ビームを用いて前記1つ以上のトークンをデコーディングすることができる。
【0023】
前記1つ以上のトークンをデコーディングするために、前記プロセッサは、前記候補ビームのうち、トークンのリユース時点に該当する1つ以上の候補ビームを前記ネットワークに含まれている自己回帰的デコーダレイヤに入力し、前記1つ以上のトークンをデコーディングすることができる。
【0024】
前記1つ以上のトークンをデコーディングするために、前記プロセッサは、前記リユーストークン及び前記ベクトルシーケンスに基づいて、前記リユーストークンに後続する複数のトークン候補の確率を予測し、前記複数のトークン候補の確率に基づいて、前記1つ以上のトークンを決定することができる。
【0025】
前記プロセッサは、前記ネットワークに含まれているエンコーダレイヤによって前記入力シーケンスをエンコーディングすることで前記符号化されたベクトルシーケンスを生成することができる。
【0026】
前記プロセッサは、前記ネットワークを用いて、前記以前時点までの入力シーケンスに前記現在時点の入力音声に対応する入力シーケンスが累積されたシーケンスを生成し、前記エンコーディングされたベクトルシーケンスの生成のために、前記累積されたシーケンスをエンコーディングして前記符号化されたベクトルシーケンスを生成することができる。
【0027】
一実施形態に係るデコーディング方法は、音声認識のためのネットワークにおいて、現在のデコーディング時間ステップにおける入力音声に対応する入力シーケンスをエンコーディングすることで、符号化されたベクトルシーケンスを生成するステップと、以前時間ステップの候補ビーム間にマッチングされるトークンの最も大きいシーケンスに基づいてリユーストークンを決定するステップと、前記リユーストークン及び前記エンコーディングされたベクトルシーケンスに基づいて、前記リユーストークンに後続する1つ以上のトークンをデコーディングするステップと、を含む。
【0028】
前記リユーストークンを決定するステップは、前記リユーストークンであって、前記現在時間ステップに先行する以前時間ステップのうち1つの候補ビームの部分を、前記以前時間ステップの候補ビーム間にマッチングされるトークンの最も大きいシーケンスに対応する時間まで決定するステップ、を含むことができる。
【0029】
前記以前時間ステップの候補ビーム間にマッチングされるトークンの最も大きいシーケンスは、初期時間ステップにおいて前記現在時間ステップの以前時間ステップまでであってもよい。
【発明の効果】
【0030】
一側面によれば、アテンション(attention)基盤のエンコーダ-デコーダ(encoder-decoder)音声認識モデルに部分デコード(partial decoding)方式を適用するとき、自己回帰的デコーディングステップを繰り返すために費やされる時間を低減することができる。
【0031】
一側面によれば、各部分デコードにおいて、以前の部分デコード結果のうち安定的な部分に該当するトークンをリユースすることで、各部分デコードに必要とされるデコーディングステップのうち前半部の演算消耗を節約することができる。
【0032】
一側面によれば、自己回帰的デコーディング時の繰り返し回数(デコーディング回数)を制限し、各部分デコードに必要とされるデコーディングステップのうち後半部の演算消耗を節約することができる。
【図面の簡単な説明】
【0033】
【
図1】音声認識のための部分デコードが実行される過程を説明するための図である。
【
図2】一実施形態に係るデコーディング装置の動作概念を説明する図である。
【
図3】一実施形態に係るデコーディング方法を示したフローチャートである。
【
図4】一実施形態に係る音声認識のためのネットワークにおけるデコーディング方法を説明するための図である。
【
図5】一実施形態に係るリユーストークンを決定する方法を説明するための図である。
【
図6】他の実施形態に係るリユーストークンを決定する方法を説明するための図である。
【
図7】一実施形態に係るデコーディング方法を説明するための図である。
【
図8】一実施形態に係るデコーディング方法を説明するための図である。
【
図9】一実施形態に係るデコーディング装置の動作過程を説明するための図である。
【
図10】一実施形態に係るデコーディング装置のブロック図である。
【発明を実施するための形態】
【0034】
実施形態に対する特定の構造的又は機能的な説明は、単なる例示目的として開示されたものであって、様々な形態に変更され得る。したがって、実施形態は、特定の開示形態に限定されるものではなく、本明細書の範囲は、技術的な思想に含まれる変更、均等物、ないし代替物を含む。
【0035】
第1又は第2などの用語を複数の構成要素を説明するために用いることがあるが、このような用語は、1つの構成要素を他の構成要素から区別する目的としてのみ解釈されなければならない。例えば、第1構成要素は第2構成要素と命名することができ、同様に、第2構成要素は第1構成要素にも命名することができる。
【0036】
単数の表現は、文脈上、明白に異なる意味をもたない限り、複数の表現を含む。本明細書において、「含む」又は「有する」等の用語は、明細書上に記載した特徴、数字、ステップ、動作、構成要素、部品、又はこれらを組み合わせたものが存在することを示すものであって、1つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、又はこれを組み合わせたものなどの存在又は付加の可能性を予め排除しないものとして理解しなければならない。
【0037】
異なるように定義さがれない限り、技術的又は科学的な用語を含んで、ここにおいて用いられる全ての用語は、本実施形態が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる予め定義された用語は、関連技術の文脈上で有する意味と一致する意味を有するものと解釈されなければならず、本明細書で明白に定義しない限り、理想的又は過度に形式的な意味として解釈されることはない。
【0038】
また、図面を参照して説明する際に、図面番号に拘わらず、同じ構成要素には同じ参照符号を付与し、これに対する重複した説明は省略する。実施形態の説明において関連する公知技術に対する具体的な説明が本発明の要旨を不要に曖昧にすると判断される場合、その詳細な説明は省略される。
【0039】
図1は、音声認識のための部分デコードが実行される過程を説明するための図である。
図1を参照すると、例えば、「Hi Bixby、what is the weather like tomorrow?」という入力音声に対する部分デコードが実行される過程が示されている。
【0040】
アテンションに基づいたエンコーダ-デコーダ(encoder-decoder)構造の音声認識装置は、音源とトークンとの間の配列情報がなくとも、音源の特徴的な部分に直ちに高い加重値を加えて処理することができ、並列化が容易であるため、大量のデータで迅速にトレーニングされ得る。エンコーダ-デコーダ構造において、エンコーダは、音源が入力されて、デコーダが処理できる符号化されたベクトルのシーケンスに変換することができる。また、デコーダは、以前までは自分がデコーディングしたトークン出力を再び入力として受ける自己回帰的(auto-regressive)方式に基づき、エンコーダがエンコーディングしたベクトルが共に入力されて、次に出てくるトークンの確率を予測することができる。
【0041】
音声認識装置は、例えば、開始トークンが入力され、自分がデコーディングした出力を再び入力して、次のトークンを予測するデコーディングステップ(decoding step)を繰り返し、全体の文章が終わった後には終了トークンを出力してデコーディングステップを終了することができる。
【0042】
上述のように、音声認識において、ユーザの音声命令が直ちに処理されることを示す応答性を達成するために、1つ以上の実施形態の音声認識装置は、音声の入力される間に中間結果を出力するストリーミングを行ってもよい。特に、アテンション基盤のエンコーダ-デコーダ音声認識モデルでデコーディングする音源を全て入力した後で、音源の全部に対して一回にデコーディングを開始する場合に、一般的な音声認識装置は、音声の入力される間に中間結果を出力するためのストリーミングを実行しないため、応答性が良好でないことに対してユーザが不満を感じる。従って、ユーザの音声命令が直ちに処理されたことを示す応答性は音声認識を向上させるため、本発明の一実施形態に係る音声認識装置は、音声が入力される間にストリーミングを行って認識結果を出力することができる。音源の入力される間にもデコーディング結果を出力するストリーミングのため、持続的に入ってくる音源をバッファに引き続き累積しながら、一定の時間間隔でそれまで累積された音源をデコーディングする部分デコード(partial decoding)方法を考慮することができる。
【0043】
デコーディングが自然に見えるために、極めて短い間隔(例えば、300msec)ごとに累積される音源に対して部分デコードを実行してもよい。この場合、ステップ(0)110では「hi」、ステップ(1)120では「hi bixby hu」、ステップ(2)130では「hi bixby what esh」、ステップ(3)140では「hi bixby what is thea」のように部分デコードが実行されてもよい。
【0044】
図1に示すように部分デコードを行う場合、デコーディングステップが増加するほど各ステップに追加される音源の長さは短いが、累積されるたびに全体入力に対して全体演算を再び行わなければならないことから多くの処理時間が費やされる。また、部分デコード時に、入力中である音声の終わり部分が300msecに合わせてステップ(1)120の「hu」、ステップ(2)130の「esh」、及びステップ(3)140の「thea」のように突然切られることから、不正確な中間デコーディング結果を出力することになる。
【0045】
その他にも、デコーディングステップの繰り返し回数に比例して処理時間が多く費やされるため、音源が長くなるほど処理時間が増大し、次のデコーディングステップが開始される300msec以前に部分デコードを終了しない場合もある。特に、音源の最後での部分デコードは、音源が完全に終了した後に開始することになる。この場合、部分デコードを使用するとしても、以前に音源の累積する時間を全く活用できないことから、音源終了時点と最終音声デコーディングの結果を受信する時点との間の最終遅延時間(latency)が増加してしまう。
【0046】
図2は、一実施形態に係るデコーディング装置の動作概念を説明する図である。
図2を参照すると、入力音声である「hi, bix by」に対する自己回帰的(auto-regressive)デコーディング過程を示している。
【0047】
一実施形態に係るデコーディング装置は、決定されていない長さの出力をネットワークで算出するために、トークンごとにネットワークの以前出力を入力にして、次の出力を続けて出力していく自己回帰的デコーディングを実行し、話者の入力音声に集中することができる。「トークン(token)」は、1つのシーケンスを構成している単位であって、例えば、単語(word)、部分単語(subword)、下位文字列(sub string)、字(character)、あるいは単一の字をなしている単位(例えば、ハングルでは初音、中音、終音など)がある。
【0048】
例えば、入力音声「hi, bix by」が順次入力されてもよい。この場合、デコーディング装置は、入力音声に対して
図2に示すように、自己回帰的デコーディングを介してデコーディングステップを繰り返し、毎回以前ステップの出力が入力され、次のステップのトークンを探す。自己回帰的デコーディングは、以前のステップの出力トークンが、次のステップの出力トークンを決定するのに影響を及ぼす。
【0049】
一実施形態に係るエンコーディング装置のネットワークは、例えば、アテンション基盤のエンコーダ-デコーダ音声認識モデルを含んでもよい。エンコーディング装置は、持続的に入ってくる音源をバッファに引き続き累積し、一定の時間間隔をもって今まで累積されてきた音源をデコーディングすることを繰り返す部分デコード(partial decoding)方法に基づいてデコーディングを行ってもよい。
【0050】
デコーディング装置は、次のステップに対する部分デコードが開始される前に、以前のステップに対するデコーディングを終了させることができ、ストリーミングのための特別な学習方法や構造変化がなくても、アテンション基盤エンコーダ-デコーダ音声認識モデルを用いて、ユーザの音声命令を発話している間に直ちにデコーディングを行うことができる。
【0051】
ステップ(0)210において、デコーディング装置は、入力音声の開始を示す開始トークン<s>と共に「hi」を部分デコードし得る。デコーディング装置は、音源のうち「hi」に該当する部分に高い加重値を付加することで「hi」に集中して音源をデコーディングできる。
【0052】
ステップ(1)220において、デコーディング装置は、「hi」に後続する「bix」を部分デコードし得る。デコーディング装置は、「bix」に該当する部分に集中して音源をデコーディングできる。
【0053】
同様に、デコーディング装置は、ステップ(2)230において、「bix」に後続する「by」に集中して部分デコードを行う。
【0054】
デコーディング装置は、ステップ(3)240において、「by」以後に該当入力音声の最後を示す終了トークン<e>をデコーディングする。
【0055】
部分デコードを行う場合、1つ以上の実施形態に係るデコーディング装置は、トレーニング時に順次演算する必要がなく、開始トークン<s>に右側シフト(right shift)された入力音声から終了トークン<e>が付いている最後のトークンをすぐ探すため、並列化に有利である。推論の際に、デコーディング装置は、特定のステップまでの出力を正確に把握すれば、引き続きデコーディングしてきたように、直ちに次のステップのトークンを予測することができる。
【0056】
部分デコードの結果において、新しく累積された音源付近では、その音源内に含まれている新しいトークン、あるいは不正確な予測によりデコーディング結果が変わり得る場合もあるが、
図2に示すように、音源が十分に累積されている前の部分のデコーディング結果はほとんど変わらない。また、並列的に学習可能なデコーダは、開始トークンでのみ自己回帰的デコーディングを開始する必要がなく、トークンシーケンスが入力されたときのすぐ次のステップから出力されるトークンの確率を予測することができる。
【0057】
一実施形態において、前述した事項に基づいて、1つ以上の実施形態に係るデコーディング装置は、以前の部分デコード結果のうち安定的な部分に該当するトークンを各部分デコードにおいてユースすることができる。従って、1つ以上の実施形態に係るデコーディング装置は、自己回帰的デコーディングステップで繰り返す前の部分を処理するために費やされる処理負荷を節減できる。このような方式は、例えば、前のランナーが次のランナーにバトンを伝達するリレー走りのように、前のデコーディングステップの結果を次のデコーディングステップにおいてリユースするという点で、「リレーデコーディング(relay decoding)」と呼ぶことができる。
【0058】
また、一実施形態において、自己回帰的デコーディング時にデコーディングステップの繰り返し回数を予め設定された回数に制限することで、各部分デコードに必要とされるデコーディングステップのうち、後の部分を処理するために費やされる負荷を低減できる。一実施形態において、各部分デコードの全体デコーディングステップの数を減らすことで全体の演算量を節約し、各デコーディングステップで費やされる時間を低減できる。このような方式は、前述したリレーデコーディングに加えて、部分デコードの繰り返し回数を制限するという点で、「限られたリレーデコーディング(limited relay decoding)」と呼ぶことができる。
【0059】
図3は、一実施形態に係るデコーディング方法を示したフローチャートである。
図3を参照すると、デコーディング装置が、ステップS310~ステップS340を介して、音声認識(speech recognition)のためのネットワークにより現在時点の入力音声に対する1つ以上のトークンを出力する過程が示されている。
【0060】
ネットワークは、例えば、エンコーダレイヤ及び自己回帰的デコーダレイヤを含む、アテンション基盤のエンコーダ-デコーダモデルを含んでもよい。
【0061】
又は、ネットワークは、例えば、セルフアテンションネットワーク(SANN;Self-Attention Neural Network)、回帰型ニューラルネットワーク(RNN;Recurrent Neural Network)、畳み込みニューラルネットワーク(CNN;Convolutional Neural Network)、BRNN(Bi-directional RNN)、LSTM(Long Short Term Memory)、BLSTM(Bi-directional LSTM)、GRU(Gated Recurrent Unit)、及び/又は、BGRU(Bi-directional GRU)などであってもよく、必ずしもこれに限定されることはない。
【0062】
ネットワークは、入力音声に対応する入力特徴ベクトルが入力され、これに対応する認識結果を出力することができる。ネットワーク内のレイヤのノードは非線形であって、互いに影響を与える関係であり、各ノードから出力される値、ノード間の関係などのようなネットワークのパラメータは、トレーニングによって最適化される。
【0063】
ネットワークは、一方の端から入力されて他方の端において出力を生成するが、入力及び出力を直接考慮して、ネットワークの加重値を最適化することができる。ネットワークは、例えば、エンコーダレイヤ及び自己回帰的デコーダレイヤを含んでもよい。エンコーダレイヤは「エンコーダ」のように称し、デコーダレイヤは「デコーダ」のように称してもよい。以下、エンコーダレイヤとエンコーダは互いに混用され、デコーダレイヤとデコーダも互いに混用されてよい。
【0064】
ネットワークは、例えば、エンコーダ-デコーダ構造のネットワークであってもよい。ネットワークは、ネットワークモデルの全てのパラメータが1つの損失関数に対して同時にトレーニングされてよく、別にトレーニングされてもよい。ネットワークモデルの全てのパラメータが1つの損失関数に対して同時にトレーニングされる場合、エンコーダとデコーダが、同時にトレーニングされ得る。
【0065】
エンコーダとデコーダは、入力された特徴ベクトルから認識結果のシーケンスを生成するように予めトレーニングされてよい。例えば、エンコーダとデコーダは、入力音声に対応する正解テキストの対のシーケンスから認識結果のシーケンスを生成するように予めトレーニングされてもよい。
【0066】
ステップS310において、デコーディング装置は、現在時点の入力音声に対応する入力シーケンスを受信する。「入力音声」は、話者の入力音声信号をウェーブ(wave)形態で示したウェーブファイルを、周波数の形態で示したスペクトログラム(spectrogram)、MFCC(Mel-Frequency Cepstral Coefficient)など、を全て含む包括的な意味である。入力シーケンスは、入力音声と入力音声から抽出された入力音声特徴ベクトルを含んでもよい。入力シーケンスは、ネットワークによって処理可能に切れた信号である。
【0067】
ステップS320において、デコーディング装置は、ステップS310で受信した入力シーケンスをエンコーディングして、符号化されたベクトルシーケンスを生成する。デコーディング装置は、ネットワークに含まれているエンコーダレイヤによって入力シーケンスをエンコーディングすることで、符号化されたベクトルシーケンスを生成することができる。エンコーダレイヤは、入力された入力シーケンスをエンコーディングし、エンコーディングされた特徴(例えば、符号化されたベクトルシーケンス)を生成することができる。例えば、エンコーダレイヤは、特徴ベクトルの次元を変換させ、エンコーディングされた情報を生成することができる。エンコーダレイヤによりエンコーディングされた特徴(例えば、符号化されたベクトルシーケンス)は、デコーダで印加されてもよい。エンコーダレイヤは、入力シーケンスを順次入力されて、エンコーディングした後でデコーダレイヤに送信し、デコーダレイヤは、エンコーディング結果(例えば、エンコーディングの結果)を受信して、エンコーディング結果に基づいて、音声認識された単語を1個ずつ順次出力することができる。
【0068】
ステップS320において、デコーディング装置は、以前時点までの入力シーケンスに、現在時点の入力音声に対応する入力シーケンスが累積されたシーケンスを生成する。デコーディング装置は、累積されたシーケンスをエンコーディングして、符号化されたベクトルシーケンスを生成することができる。
【0069】
ステップS330において、デコーディング装置は、2つ以上の以前時点の候補ビームを比較することで、以前時点の候補ビームからリユーストークンを決定する。デコーディング装置は、n-2(n≧3である自然数)以前時点の候補ビームと、n-2以前時点に後続するn-1以前時点の候補ビームとの間の比較結果に基づいて、n-1以前時点に後続するn現在時点におけるトークンのリユース時点を決定することができる。デコーディング装置は、例えば、n-2以前時点の候補ビーム及びn-1以前時点の候補ビームにおいて最も多い下位文字列(sub string)が一致する時点を、n現在時点におけるトークンのリユース時点として決定することができる。リユース時点は、デコーディング結果が変化することなく安定的な時点であるため、「安定的な時点」のように称してもよい。以下、リユース時点と安定的な時点は互いに混用されてもよい。一実施形態において、n-2以前時点は、n-2デコーディングステップに対応する時点を意味し、n-1以前時点は、n-1デコーディングステップに対応する時点を意味し、n現在時点は、nデコーディングステップに対応する時点を意味するものと理解されてもよい。以下、「n-2以前時点」と「n-2デコーディングステップ」、「n-1以前時点」と「n-1デコーディングステップ」、及び、「現在時点」と「nデコーディングステップ」は、互いに混用されてもよい。
【0070】
デコーディング装置は、リユース時点まで累積された候補ビームを、リユーストークンとして決定することができる。自己回帰的エンコーダレイヤからエンコーディングされた特徴を受信したデコーダレイヤは、トークン単位で認識結果を出力してもよい。自己回帰的デコーダレイヤは、以前のステップまで選択されていた入力トークンに従属されて、出力トークンを生成してもよい。デコーディング装置は、出力トークンとして選択されたトークンが次の入力トークンとして決定されてもよい。デコーディング装置は、自己回帰的デコーダレイヤにより、各デコーディングステップにおいて、次のステップのトークンを出力するときに、リユーストークンを使用することができる。例えば、自己回帰的デコーダレイヤは、「天気はどうですか?」という文章から「どうですか」を認識するときに、「天気は」という出力を使用することができる。デコーディング装置がリユーストークンを決定する方法について、以下の
図5~
図6を参照して、より具体的に説明する。
【0071】
ステップS340において、デコーディング装置は、ステップS320で生成したベクトルシーケンス、及び、ステップS330で決定したリユーストークンに基づいて、リユーストークンに後続する1つ以上のトークンをデコーディングする。デコーディング装置は、デコーディングの以前の時点におけるトークンの組み合せの確率に基づいて、次の時点のデコーディングに使用される候補ビームを決定することができる。デコーディング装置は、候補ビームのうち、トークンのリユース時点に該当する1つ以上の候補ビームを用いて1つ以上のトークンをデコーディングしてもよい。ここで、候補ビームは、次の時点のビームサーチ(beam search)を行う候補ビームである。デコーディング装置は、候補ビームのうちトークンのリユース時点に該当する1つ以上の候補ビームを用いて1つ以上のトークンをデコーディングしてもよい。デコーディング装置は、候補ビームのうち確率の高い候補ビームをリユースするビームサーチアルゴリズムによりトークンのリユース時点に該当する1つ以上の候補ビームを決定してもよい。デコーディング装置は、デコーディングの以前時点ごとに次の時点のデコーディングに使用される候補ビームを格納してもよい。デコーディング装置は、例えば、リユース時点までの候補ビームのうち、最も高い候補ビーム、及び、最も高い候補ビームに対応するビームステート(beam state)のうち少なくとも1つを格納してもよい。ビームステートについては後述する。
【0072】
デコーディング装置は、候補ビームのうちトークンのリユース時点に該当する1つ以上の候補ビームをネットワークに含まれている自己回帰的デコーダレイヤに入力して、1つ以上のトークンをデコーディングすることができる。ここで、自己回帰的デコーダレイヤは、トークンごとに以前のステップまで認識されたトークンに基づいて、出力トークンを決定する自己回帰的デコーディングを行うことができる。デコーディング装置は、ステップごとにエンコーダレイヤから算出された情報に基づいて、出力トークンを算出する。ここで、出力トークンは、以前のステップまで選択された入力トークンに従属する。
【0073】
ステップS340において、デコーディング装置は、リユーストークン及びベクトルシーケンスに基づいて、リユーストークンに後続する複数のトークン候補の確率を予測する。デコーディング装置は、複数のトークン候補の確率に基づいて、1つ以上のトークンを決定してもよい。デコーディング装置は、複数のトークン候補のうち確率の最も高いトークン候補を最終的にデコーディングされるトークンとして決定することができる。
【0074】
例えば、入力音声が終了していない場合、デコーディング装置は、予め設定された回数だけ1つ以上のトークンをデコーディングしてもよい。予め設定された回数は、例えば、3回、又は、5回であってもよい。音声が終了していない場合、自己回帰的デコーディングステップの最後まで全てをデコーディングする必要がないため、デコーディング装置は、限られた回数だけデコーディングステップを行うことで、デコーディング時間を低減することができる。ここで、デコーディング装置は、デコーディングステップごとのビーム候補及び/又はビーム候補のビームステートを格納してもよい。デコーディング装置が1つ以上のトークンをデコーディングする方法について、以下の
図7~
図8を参照して、より具体的に説明する。
【0075】
図4は、一実施形態に係る音声認識のためのネットワークにおけるデコーディング方法を説明するための図である。
図4を参照すると、デコーディング装置がリユーストークンによって入力音声(「Hi Bixby、what is the weather like tomorrow?」)をデコーディングする一つの実施例を示している。
【0076】
例えば、部分デコードステップ(0)410において、「hi」が受信されたとする。デコーディング装置は、部分デコードステップ(0)410直前の2つの部分デコードステップがないため、ビーム候補なしに「hi」に対する自己回帰的デコーディングを実行する。
【0077】
部分デコードステップ(1)420において、「hi bixby hu」が受信されたとする。デコーディング装置は、同様に、部分デコードステップ(1)420直前の2つの部分デコードステップがないため、ビーム候補なしに「hi bixby hu」に対する自己回帰的デコーディングを実行する。
【0078】
部分デコードステップ(2)430において、「hi bixby what eshh」が受信されたとする。デコーディング装置は、部分デコードステップ(2)430の「hi bixby what eshh」に対応する候補ビームを、例えば、
図5に示すn-2番目のステップ510の候補ビームのように生成することができる。
【0079】
また、部分デコードステップS(3)440において、「hi bixby what is thea」が受信されたとする。デコーディング装置は、部分デコードステップS(3)440の「hi bixby what is thea」に対応する候補ビームを、例えば、
図5に示すn-1番目のステップ530の候補ビームのように生成することができる。
【0080】
デコーディング装置は、「hi bixby what eshh」に対応する候補ビーム、および、「hi bixby what is thea」に対応する候補ビームのうち、最も多い下位文字列である「hi bixby what」が一致する時点(例えば、690msec)をリユース時点として決定することができる。デコーディング装置は、リユース時点まで累積された候補ビーム(「hi bixby what」)をリユーストークンとして決定する。
【0081】
デコーディング装置は、前述のように、以前のステップの部分デコード結果を比較して、安定的な時点、言い換えれば、リユース時点に対応するリユーストークンを決定する。また、デコーディング装置は、リユース時点のビーム候補を、安定的なビーム候補とみなして、<開始>トークンの代わりに、デコーダの入力として用いてもよい。デコーディング装置は、リユーストークンを用いてデコーディングを開始することで、<開始>トークンから自己回帰的デコーディングを引き続いてきたように、直ちに、次のステップのトークンを予測することができる。
【0082】
デコーディング装置は、次の部分デコードステップで新しく累積された音源および安定的なビーム候補から、ビームサーチを開始する際に使用するビーム候補の確率を再算出することができる。ここで、アテンション(attention)算出に必要な隠れステート(hidden state)は、ネットワークをトレーニングするときのように、マトリックス演算を介して様々なデコーディングステップを繰り返すことなく、一回で算出することができる。
【0083】
図5は、一つの実施形態により、リユーストークンを決定する方法を説明するための図である。
図5を参照すると、一つの実施形態により、ビームサーチアルゴリズムを用いることなく、リユーストークンを決定する過程を示している。
【0084】
デコーディング装置が自己回帰的に自分の出力を再び入力するとき、全てのリユーストークンについて次のトークンの確率を予測すれば、可能な全ての組み合わせを比較することができる。
【0085】
例えば、現在時点が部分デコードステップのうちn番目のステップ570であると仮定する。この場合、デコーディング装置は、n番目の部分デコードステップ直前の2つのステップ(n-2番目の部分デコードステップ510と、n-1番目の部分デコードステップ520)の出力結果(候補ビーム)において最も多くの下位文字列が一致する時点である3番目のトークン(<s>hi bixby)まで、を安定的なビーム候補として決定することができる。
【0086】
デコーディング装置は、前述したリレーデコーディングによってn番目のステップ570の開始時に開始トークンである<s>の代わりに、安定的なビーム候補(<s>hi bixby)550をリユーストークンとして決定し、デコーダの入力575として使用できる。ここで、デコーディング装置は、3番目のトークン(<s>hi bixby)までをビーム候補としてデコーダの入力575に全てコピーしてもよい。
【0087】
n番目のステップ570において、デコーディング装置は、新しく累積された音源(例えば、「what」)とビーム候補(<s>hi bixby)550から、ビームサーチ時に使用するビーム候補の確率を再算出する。
【0088】
但し、n番目のステップ570のように、単に同一である部分(例えば、3番目のトークン(<s>hi bixby)まで)をビーム候補550として決定し、自己回帰的デコーディング時にデコーダの入力575として全てコピーする場合、部分デコードステップごとにビームの大きさが1に減少して性能が低下する恐れがある。
【0089】
図6は、他の実施形態によりリ、ユーストークンを決定する方法を説明するための図である。
図6を参照すると、一つの実施形態に係るビームサーチアルゴリズムを用いてリユーストークンを決定する過程が示されている。
【0090】
一つの実施形態において、トークンのうち確率の高い上位数個の複数のトークン候補を再び入力として使用するビームサーチ(beam search)アルゴリズムを用いて、最大に多くのトークンの組み合せ確率を算出し、このうち最適に近似の正解を探すことができる。従って、一つの実施形態に係る復号化装置は、部分デコードステップごとに、ビームの大きさが1に減少することによって、発生する性能低下を解消できる。
【0091】
例えば、最も確率の高いビーム候補が保持されている状態で、デコーディングステップを無条件に繰り返す場合には、予測する出力トークンの確率が次第に低下することがある。デコーディング装置は、現在最も確率の高いビーム候補よりも高い確率を有するビーム候補、又は、トークン候補を見つからない場合、ビームサーチアルゴリズムを終了し、探されたビーム候補のうち最も確率の高いビーム候補を最終デコーディング結果として出力することができる。
【0092】
例えば、現在時点が部分デコードステップのうちn番目のステップ670であると仮定する。デコーディング装置は、n番目のステップ670直前の2つの部分デコードステップ(n-2番目のステップ610と、n-1番目のステップ620)の出力結果(候補ビーム)において最も多い下位文字列が一致する時点に対応する3番目のトークン(<s>hi bixby)まで、を安定的なビーム候補としてみなす。ここで、デコーディング装置は、直前の部分デコードのデコーディングステップごとに、ビームサーチアルゴリズムの実行結果に該当のビームステートを格納しておく。ここで、ビームステートは、自己回帰的デコーディングにおいてデコーダレイヤに入力されるシーケンス(以下、ビーム)を示すために使用される用語である。デコーディングレイヤは、現在のステップで取得した全てのトークン(例えば、ビーム×総トークンの個数だけのトークン)の確率を出力することができる。ここで、本来のビームの確率に現在のステップで出力されるトークンの確率を乗算すると、現在のステップまでの文章が出力された確率が取得される。デコーディング装置は、1トークンずつ増加した文章のうち、確率の高い順にビームサイズの個数だけのトークンを抽出して、次の自己回帰的デコーディングステップにデコーダレイヤに入力されるビームとして用いてもよい。ここで、デコーディング装置は、毎回固定された数を選ぶことから、幅が一定である意味として「ビームサーチ(beam search)」という名を用いることができる。
【0093】
ビームステートは、前述のように、デコーディングステップごとに1トークンずつ増加した文章のうち、確率の高い順に予め設定された個数のトークンを抽出した結果である。一般的に、次のデコーディングステップにおいて最終的にデコーダレイヤに印加されるものをビームと呼ぶが、一つの実施形態では、確率の高い順に予め設定された個数のトークンをステップごとに格納し、このように格納されたトークンをビームステートと呼ぶ。
【0094】
デコーディング装置は、n-2番目のステップ610のビームステートと、n-1番目のステップ620のビームステートを格納することができる。
【0095】
デコーディング装置は、直前の2つの部分デコードステップの出力を比較し、安定的な時点の位置が、例えば、3番目のトークンまでの位置として決定された場合、安定的な時点の位置に該当するn-1番目のステップ630のビームステート635を、リレーデコードに直ちに使用することができる。
【0096】
デコーディング装置は、安定的な時点の位置(3番目のトークン)までのビームサーチアルゴリズムの実行結果であるビームステート635を、n番目のステップ670の開始時に開始トークン<s>の代わりに、デコーダの入力675として用いてもよい。
【0097】
n番目のステップ670において、デコーディング装置は、新しく累積された音源(例えば、「what」)とデコーダ入力675からビームサーチ時に使用するビーム候補の確率を再算出することができる。
【0098】
図7は、一つの実施形態に係るデコーディング方法を説明するための図である。
図7を参照すると、前述したリレーデコーディングを介して、部分デコードステップの実行回数が減少した結果を示す、図面700が示されている。
【0099】
一つの実施形態によれば、前述したリレーデコーディングを介して、図面700において、安定的な時点に対応するトークンを矢印710のように、次のステップで開始トークンの代わりにリユースすることで、部分デコード時に安定的な時点に対応する以前ステップ730の実行を節減することができる。デコーディング装置は、各部分デコード時に、前のステップ730を除外した残りの自己回帰的ステップ750を行ってもよい。
【0100】
図8は、一つの実施形態に係るデコーディング方法を説明するための図である。
図8を参照すると、前述した限られたリレーデコーディングを介して、部分デコードステップの実行回数が減少した結果を示す図面800が示されている。
【0101】
図7を参照して前述したように、デコーディング装置は、図面800で安定的な時点に対応するトークンを、矢印810及び矢印820のように、次のステップで開始トークンの代わりにリユースすることで、部分デコード時に安定的な時点に該当する以前ステップ830の実行を節減することができる。
【0102】
また、デコーディング装置は、各部分デコード時に前のステップ830を除外した残りの自己回帰的ステップの繰り返し回数を、例えば、3回又は5回に制限して、制限回数を超過する後のステップ840のデコーディングを実行しなくてもよい。
【0103】
例えば、トレーニングの間にトレーニングサンプルは、レコーディングの環境上、一時的に前後に無音(silence)を含む場合があるが、突然切られた音源において安定的な時点であると決定することができ、切られた領域に隣接するデコーディングの結果が正確でないこともある。また、人の正常な発話速度では、部分デコードが実行される1単位である300ms内に2~3個のトークン以上を話すのは難しい。従って、1回の部分デコードに追加的に得られるリユーストークンも所定のトークン数を超えないようにすることができる。
【0104】
一つの実施形態において、音源入力が終了せず累積された場合、自己回帰的ステップの繰り返し回数を3回に制限し、前のステップ830の後に、3回の自己回帰的ステップのみを繰り返し、制限回数を超過する後続のステップ840を実行するによって、メモリ及びプロセッシングの負荷を減らすことができる。
【0105】
例えば、音源入力が終了する場合、デコーディング装置は、音源入力が終了した後の最後のデコードステップ850において、本来のビームサーチアルゴリズムの終了条件に応じて音源の最後まで、デコーディングを行うことができる。
【0106】
図9は、一つの実施形態に係るデコーディング装置の動作過程を説明するための図である。
図9を参照すると、エンコーダレイヤを含むエンコーダモジュール910、限られた自己回帰的デコーディングモジュール(limited auto-regressive decoding)(以下、「デコーディングモジュール」)920、安定化ビーム決定モジュール950、及び確率再算出モジュール960を含む、デコーディング装置900が示されている。
【0107】
デコーディングモジュール920は、デコーダモジュール923及びビームサーチモジュール926を含む。ビームサーチモジュール926は、候補ビームのうち確率の高い候補ビームをリユースするビームサーチアルゴリズムによって、トークンのリユース時点に該当する1つ以上の候補ビームを決定することができる。デコーダモジュール923は、ビームサーチモジュール926によって決定されたいずれか1つの候補ビームのうち、トークンのリユース時点に該当する1つ以上の候補ビームを、ビームサーチモジュール926に入力して、1つ以上のトークンをデコーディングすることができる。
【0108】
例えば、n-2番目の部分デコードステップにおいて、話者の入力音声に対応する部分波(partial wave)形態の入力シーケンス905が受信されたと仮定する。
【0109】
デコーディング装置900は、エンコーダモジュール910-1によって入力シーケンス905をエンコーディングして、符号化されたベクトルシーケンスを生成することができる。符号化されたベクトルシーケンスは、デコーディングモジュール920-1に伝達され得る。符号化されたベクトルシーケンスは、デコーダモジュール923-1に印加されて、デコーディングされてもよい。デコーダモジュール923-1のデコーディング結果は、ビームサーチモジュール926-1に伝達される。ビームサーチモジュール926-1は、ビームサーチアルゴリズムによって、デコーダモジュール923-1のデコーディング結果に該当する候補ビームのうち、確率の最も高いいずれか1つの候補ビームを決定してもよい。確率の最も高いいずれか1つの候補ビームは、n-2部分デコードステップのデコーディング結果930として出力される一方で、自己回帰的デコーディングのために、デコーダモジュール923-1に再入力されてもよい。
【0110】
300msec以後のn-1番目の部分デコードステップにおいて、話者の入力音声に対応する部分波形態の入力シーケンス935が受信されたと仮定する。ここで、入力シーケンス935は、入力シーケンス905以後の300msecに該当する入力音声が追加的に累積されたものである。
【0111】
デコーディング装置900は、エンコーダモジュール910-2によって入力シーケンス935をエンコーディングして、符号化されたベクトルシーケンスを生成する。符号化されたベクトルシーケンスは、デコーディングモジュール920-2に伝達される。符号化されたベクトルシーケンスは、デコーダモジュール923-2に印加されて、デコーディングされてもよい。デコーダモジュール923-2のデコーディング結果は、ビームサーチモジュール926-2に伝達される。ビームサーチモジュール926-2は、ビームサーチアルゴリズムによりデコーダモジュール923-2のデコーディング結果に該当する候補ビームのうち、確率の最も高いいずれか1つの候補ビームを決定することができる。確率の最も高いいずれか1つの候補ビームは、n-1番目の部分デコードステップのデコーディング結果940として出力される一方で、自己回帰的デコーディングのためにデコーダモジュール923-2に再入力されてもよい。
【0112】
ここで、n-2番目の部分デコードステップ及びn-1番目の部分デコードステップでは、直前の2つの部分デコードステップがないため、デコーディング装置900は、ビーム候補なしに一般的な自己回帰的デコーディングを限られた回数(例えば、3回又は5回)分だけ実行することができる。
【0113】
デコーディング装置900は、各ステップの部分デコードでビームサーチアルゴリズムを行うとき、自己回帰的デコーディングで、再びデコーダモジュール923に入力されるビーム候補を、全て格納することができる。また、デコーディング装置900は、ビームサーチアルゴリズムの実行結果に該当するビームステートを、デコーディングステップごとに全て格納することができる。
【0114】
例えば、安定化ビーム決定モジュール(Stabilized beam decision module)950は、直前の2つのステップのデコーディング結果、言い換えれば、n-2番目の部分デコードステップのデコーディング結果930と、n-1番目の部分デコードステップのデコーディング結果940とを比較し、最も多くの部分文字列が一致する時点を安定的なデコーディングステップとして決定する。
【0115】
安定化ビーム決定モジュール950は、直前の2つのステップの実行により、格納していたビーム候補のうち、安定的なデコーディングステップに該当するビーム候補、又は直前の2つのステップのビームサーチアルゴリズムの実行結果に該当するビームステートを呼び出して、デコーダモジュール923-3に提供することができる。デコーディング装置900は、呼び出したビーム候補又はビームステートからn番目の部分デコードステップを開始する。
【0116】
n番目の部分デコードステップにおいて、デコーディング装置900は、エンコーダモジュール910-3によって、入力シーケンス955をエンコーディングして、符号化されたベクトルシーケンスを生成する。エンコーダモジュール910-3は、入力シーケンス955をエンコーディングして生成した、符号化されたベクトルシーケンスを確率再算出モジュール960に伝達することができる。
【0117】
ここで、入力シーケンス955は、以前のn-1ステップに比べて300ms分量がさらに増加したため、デコーディング装置900は、確率再算出モジュール960を介して、増加した音源分量に対するビーム候補の確率を再算出することができる。すでにビーム候補のトークンを把握しているため、確率再算出モジュール960は、順次にデコーディングステップを繰り返す自己回帰的デコーディングを行う必要がなく、各トークンの確率を並列的に一回に算出し、合わせて確率を一回に取得できる。これによって、演算量そのものは同一であるが、該当ステップまで自己回帰的デコーディングを繰り返すために費やされる時間を減らすことができる。
【0118】
デコーディング装置900は、n番目の部分デコードステップのためにデコーダモジュール923-3に入力されるビーム候補と、ビームサーチモジュール926-3に入力される初期確率値とを備えた後で、デコーディングモジュール920-3が限られた回数だけ自己回帰的デコーディングを行うようにすることができる。
【0119】
デコーダモジュール923-3は、入力シーケンス955をエンコーディングして生成した、符号化されたベクトルシーケンス、及び、安定化ビーム決定モジュール950から伝達された安定的なデコーディングステップに該当するビーム候補、又は、直前の2つのステップにおけるビームサーチアルゴリズムの実行結果に該当するビームステート、に対するデコーディングを行ってもよい。デコーダモジュール923-3の出力結果は、例えば、4×1088個のビーム候補である。
【0120】
ビームサーチモジュール926-3は、4×1088個のビーム候補のうち、最も確率の高いビーム候補をn番目のステップのデコーディング結果970として出力することができる。
【0121】
一つの実施形態においては、安定化の可能性の高い先頭部分のみを強制的にデコーディングすることで、音源が不安定になる確率が低くなるため、一つの実施形態に係るデコーディング装置900は、デコーディングステップが頻繁に繰り返されることを防止できる。また、一つの実施形態に係るデコーディング装置900は、自己回帰的デコーディングを決定回数だけ実行することで、音源が増加して音源が長くなっても、それぞれの部分デコードステップごとに費やされる時間を一定に保持することができる。
【0122】
もし、音声入力が明確な発音を有するために持続的に高い確率を示す場合、安定的なビーム決定モジュール950は、毎回、部分デコードステップにおいて追加されたデコーディングされた結果のほとんどが持続的に安定したものと判断し、部分デコードステップごとに安定的な(音源)領域が迅速に増加するようにすることができる。これとは反対に、デコーディングされた結果が頻繁に変わる場合、安定的なビームモジュール950は、毎回、部分デコードステップにおける追加結果を廃棄し、デコーディング結果が安定化するよう十分に累積されるまで、繰り返しデコーディングを行うことができる。
【0123】
これ以上音源が入ってこない最後の部分デコードステップにおいて、デコーディング装置900は、デコーディング回数が制限されることなく、ビームサーチモジュール926が終了条件を満足するまでデコーディングを実行し、結果を出力することができる。
【0124】
図10は、一つの実施形態に係るデコーディング装置のブロック図である。
図10を参照すると、一つの実施形態に係るデコーディング装置1000は、通信インターフェース1010、プロセッサ1030(例えば、1つ以上のプロセッサ)、及びメモリ1050(例えば、1つ以上のメモリ)を含む。通信インターフェース1010、プロセッサ1030、及びメモリ1050は、通信バス1005を介して通信することができる。
【0125】
通信インターフェース1010は、現在時点の入力音声に対応する入力シーケンスを受信する。
【0126】
プロセッサ1030は、入力シーケンスをエンコーディングして、符号化されたベクトルシーケンスを生成する。プロセッサ1030は、2つ以上の以前時点の候補ビームを比較することで、以前時点の候補ビームからリユーストークンを決定することができる。プロセッサ1030は、リユーストークン及びベクトルシーケンスに基づいて、リユーストークンに後続する1つ以上のトークンをデコーディングする。
【0127】
プロセッサ1030は、リユーストークン後にデコーディングされた1つ以上のトークンに基づいて、入力された音声の音声認識結果を生成する。通信インターフェース1010は、音声認識結果を(例えば、通信インターフェース1010のディスプレイ及び/又はスピーカを介して)出力してもよい。
【0128】
また、プロセッサ1030は、
図1~
図9を参照して前述した1つ以上の方法又は1つ以上の方法に対応するアルゴリズムを行ってもよい。プロセッサ1030は、目的とする動作(desired operations)を実行させるための物理的な構造を有する回路付きハードウェアで具現化されたデータ処理装置であってもよい。例えば、目的とする動作は、プログラムに含まれたコード(code)又は命令(instructions)を含んでもよい。例えば、ハードウェアで具現化されたデータ処理装置は、マイクロプロセッサー(microprocessor)、中央処理装置(central processing unit)、プロセッサコア(processor core)、マルチ-コアプロセッサ(multi-core processor)、マルチプロセッサ(multiprocessor)、ASIC(Application-Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)を含んでもよい。
【0129】
プロセッサ1030は、プログラムを実行し、デコーディング装置1000を制御する。プロセッサ1030によって実行されるプログラムコードは、メモリ1050に格納されてもよい。
【0130】
メモリ1050は、デコーディングの以前時点ごとに次の時点のデコーディングに使用される候補ビームを格納することができる。メモリ1050は、上述したプロセッサ1030における処理過程で生成される様々な情報を格納してもよい。その他にも、メモリ1050は、各種のデータとプログラムなどを格納してもよい。メモリ1050は、揮発性メモリ又は不揮発性メモリを含んでもよい。メモリ1050は、ハードディスクなどのような大容量ストレージ媒体を備えて、各種のデータを格納してもよい。
【0131】
デコーディング装置、エンコーダモジュール、デコーディングモジュール、デコーダモジュール、ビームサーチモジュール、安定化されたビーム決定モジュール、確率再算出モジュール、通信インターフェース、プロセッサ、メモリ、通信バス、デコーディング装置900、エンコーダモジュール910、エンコーダモジュール910-1、エンコーダモジュール910-2、エンコーダモジュール910-3、デコーディングモジュール920、デコーディングモジュール920-1、デコーディングモジュール920-2、デコーディングモジュール920-3、デコーダモジュール923、デコーダモジュール923-1、デコーダモジュール923-2、デコーダモジュール923-3、ビームサーチモジュール926、ビームサーチモジュール926-1、ビームサーチモジュール926-2、ビームサーチモジュール926-3、安定化されたビーム決定モジュール950、確率再算出モジュール960、デコーディング装置1000、通信インターフェース1010、プロセッサ1030、メモリ1050、通信バス1005、及び、以上の
図1~
図10に関連して説明された実施形態は、ハードウェア構成要素、ソフトウェア構成要素、又は、ハードウェア構成要素及びソフトウェア構成要素の組み合せで具現化される。例えば、本実施形態で説明した装置及び構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPA(field programmable array)、PLU(programmable logic unit)、マイクロプロセッサー、又は、命令(instruction)を実行して応答する異なる装置のように、1つ以上の汎用コンピュータ又は特殊目的コンピュータを用いて具現化される。処理装置は、オペレーティングシステム(OS)及びオペレーティングシステム上で実行される1つ以上のソフトウェアアプリケーションを実行する。また、処理装置は、ソフトウェアの実行に応答して、データをアクセス、格納、操作、処理、及び生成する。理解の便宜のために、処理装置は、1つが使用されるものとして説明する場合もあるが、当技術分野で通常の知識を有する者は、処理装置が複数の処理要素(processing element)及び/又は複数類型の処理要素を含むことを把握する。例えば、処理装置は、複数のプロセッサ、又は、1つのプロセッサ及び1つのコントローラを含む。また、並列プロセッサ(parallel processor)のような、他の処理構成も可能である。
【0132】
ソフトウェアは、コンピュータプログラム、コード、命令、又は、そのうちの一つ以上の組合せを含み、希望の通りに動作するように処理装置を構成したり、独立的又は結合的に処理装置を命令することができる。ソフトウェア及び/又はデータは、処理装置によって解釈され、処理装置に命令又はデータを提供するために、いずれかの類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、もしくは、送信される信号波に永久的又は一時的に具体化することができる。ソフトウェアは、ネットワークに連結されたコンピュータシステム上に分散され、分散した方法で格納されたり、実行され得る。ソフトウェア及びデータは、1つ以上のコンピュータ読出し可能な記録媒体に格納され得る。
【0133】
本実施形態による方法は、様々なコンピュータ手段を介して実施されるプログラム命令の形態で具現化され、コンピュータ読取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独又は組み合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり、使用可能なものであってもよい。コンピュータ読取り可能な記録媒体の例として、ハードディスク、フロッピー(登録商標)ディスク、及び磁気テープのような磁気媒体、CD-ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気-光媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置、を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。ハードウェア装置は、本発明に示す動作を実行するために、1つ以上のソフトウェアモジュールとして作動するように構成してもよく、その逆も同様である。
【0134】
上述のように、実施形態が限定された図面によって説明されてきても、当技術分野で通常の知識を有する者であれば、上記の説明に基づいて、様々な技術的な修正及び変形を適用することができる。例えば、説明された技術が説明された方法とは異なる順で実行されてよく、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法と異なる形態で、結合又は組み合わせられてもよいし、他の構成要素又は均等物によって置き換え又は置換されたとしても、適切な結果を達成することができる。
【0135】
したがって、他の具現化、他の実施形態、および特許請求の範囲と均等なものも後述する特許請求範囲の範囲に属する。
【符号の説明】
【0136】
1000:デコーディング装置
1005:通信バス
1010:通信インターフェース
1030:プロセッサ
1050:メモリ