JP2717652B2 - 連続音声認識システム - Google Patents
連続音声認識システムInfo
- Publication number
- JP2717652B2 JP2717652B2 JP61503471A JP50347186A JP2717652B2 JP 2717652 B2 JP2717652 B2 JP 2717652B2 JP 61503471 A JP61503471 A JP 61503471A JP 50347186 A JP50347186 A JP 50347186A JP 2717652 B2 JP2717652 B2 JP 2717652B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- link
- record
- active
- template
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 claims description 40
- 230000015654 memory Effects 0.000 claims description 27
- 230000001186 cumulative effect Effects 0.000 claims description 25
- 238000010586 diagram Methods 0.000 description 36
- 238000012545 processing Methods 0.000 description 18
- 238000012360 testing method Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 16
- 101001073211 Solanum lycopersicum Suberization-associated anionic peroxidase 2 Proteins 0.000 description 12
- 101000579490 Solanum lycopersicum Suberization-associated anionic peroxidase 1 Proteins 0.000 description 11
- 238000003491 array Methods 0.000 description 8
- OAICVXFJPJFONN-UHFFFAOYSA-N Phosphorus Chemical compound [P] OAICVXFJPJFONN-UHFFFAOYSA-N 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 229910052698 phosphorus Inorganic materials 0.000 description 4
- 239000011574 phosphorus Substances 0.000 description 4
- 241000555745 Sciuridae Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 235000001674 Agaricus brunnescens Nutrition 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000029058 respiratory gaseous exchange Effects 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
- G10L15/19—Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
- G10L15/193—Formal grammars, e.g. finite state automata, context free grammars or word networks
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/14—Speech classification or search using statistical models, e.g. Hidden Markov Models [HMMs]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Probability & Statistics with Applications (AREA)
- Artificial Intelligence (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Machine Translation (AREA)
Description
【発明の詳細な説明】
発明の背景
本発明は音声認識システムに関し、特に、話された単
語(word)の終点(end point)があらかじめ決まって
いない音声の認識に関する。 既知の話し手(speaker)について所定の語彙(vocab
ulary)から孤立した単語を認識することは長い間知ら
れている。語彙の単語を個別のテンプレート(型板)と
してあらかじめ記憶しておき、各テンプレートが語彙に
より単語に対する音のパターンを表わすようにする。孤
立した単語が話されると、システムはその単語を語彙を
表わす各個別のテンプレートと比較する。この方法は一
般に完全単語テンプレート合致法(whole−word templa
te matching)と言われている。好結果を与える認識シ
ステムの多くは動的プログラミングを用いた完全単語テ
ンプレート合致法を採用して、話された単語とあらかじ
め記憶してあるテンプレートとの間の非線形時間尺度の
変化に対処している。 この手法は孤立した単語を認識する用途には有効であ
るが、多くの実用的用途には連続した単語の認識が必要
である。連続単語の認識では、語句中の単語の数は限定
しなくてよく、始めの方の単語の本体は語句が終る前に
決定することができるが、孤立単語認識では、入力パタ
ーンの始まりと終りとを特定するのに区切り記号(deli
miter)を用い、認識は一度に1語ずつ行われる。更
に、連続音声認識システムは入力パターンを他の認識可
能なパターン、背景雑音、呼吸雑音のような話し手から
出る雑音から区別しなければならず、一方孤立認識は通
常、単語の始まりまたは終りに他の認識可能なパターン
を容認できない。 IEEEトランザクション、音響学、音声および信号処
理、vo1.ASSP−27,No.6,pp.588〜595(1979年12月)の
H.Sakoeによる「2レベルDP合致法−接続(connected)
単語認識のためのパターン合致アルゴリズムに基づく動
的プログラミング」では、完全単語テンプレート合致の
方法が接続単語認識を取扱うように拡張されている。こ
の論文は入力パターン全体に最もよく合う一連の単語テ
ンプレートを見出す2パス(two−pass)動的プログラ
ミング・アルゴリズムを提示している。第1のパスで
は、入力パターンの各可能な部分に対して合致(matc
h)した各テンプレート間の類似性を示すスコアを発生
する。第2のパスでは、このスコアを使用して入力パタ
ーン全体に対応する最良のテンプレート列を見出す。 この拡張された方法には明らかな欠点がある。この技
法の1つの欠点は必要な計算時間の量である。特定の設
計要件によっては、この限度のため高価な高速プロセッ
サを不当に必要とすることがある。 この方法の他の欠点は入力パターンの終点をあらかじ
め定めねばならず、入力パターン全体をテンプレートの
合致が正確に生ずるまでシステム内に格納しなければな
らないということである。入力パターンがかなり長い場
合には、認識応答時間が実質上悪くなる。また、終点検
出時の誤差が認識器の性能を甚だしく低下させる。更
に、この情報を格納するのに必要なメモリが極端に多く
なることもある。 IEEEトランザクション、音響学、音声および信号処
理、vo1.ASSP−27,No.6,pp.588〜595(1979年12月)の
P.Brown、J.Spohrer、P.Hochschild、J.Bakerによる
「部分的トレースバック(traceback)および動的プロ
グラミング」では、終点をあらかじめ定めずに任意の長
さの入力パターンの連続音程認識を考慮した技法が延べ
られている。これは部分的トレースバックと呼ばれる技
法を使用して行われる。部分的トレースバックでは、認
識器の性能を犠牲にすることなしに完全な入力パターン
の完成の前に認識された単語が出力される。しかしなが
ら、記されている部分的トレースバック技法はプロセッ
サの負担になるとともに実行が厄介なように思われる。 したがって、容易に実行することができ、しかも実時
間で効果的かつ安価に動作することができる連続音声認
識システムの必要性が存在する。 発明の目的と概要 本発明の目的は実時間用途に対して実施し安価なハー
ドウェアで連続音声を認識することができる音声認識の
機構と方法とを提供することである。 本発明の更に他の目的は認識プロセス中音声認識メモ
リを効果的にメモリ管理できる音声認識の機構と方法と
を提供することである。 本発明の更に他の目的は認識プロセスに対して合致す
る可能性のあるテンプレート(template)を表わすソフ
トウェア・リンク・ネットワークを通して効率的なトレ
ースバック(traceback)ができる音声認識の装置と方
法とを提供することである。 本発明の更に他の目的はストリング全体が入力される
前に入力音声を認識することができる音声認識の装置と
方法とを提供することである。 手短かに言えば、本発明は音声認識システムに関する
ものであり、入力フレーム(input frame)が音声を表
わすあらかじめ格納されているテンプレートに対して処
理され、認識される可能性のあるものとして考慮されて
いるテンプレートはリンク・ネットワーク(linked net
work)に個別に記録されており、各リンク・レコード
(link record)は一般に先祖および子孫のリンク・レ
コードの備えている。音声パターンを認識する1つの装
置と方法はリンク・レコードに対するテンポラリ・ポイ
ンタ(temporary pointers)を設けることと、リンク・
レコードに対応する認識される可能性のあるテンプレー
トを接続するリンク・レコードを選択するのにテンポラ
リ・ポインタを使用してリンク・ネットワークを通して
逆追跡(tracing back)することから成立っている。認
識される可能性のある2つ以上の子孫を持っている先祖
レコードを備えたこれらリンク・レコードはそのテンポ
ラリ・ポインタが除去されている。ネットワーク内の残
りのリンク・レコードは、なおテンポラリ・ポインタの
ラベルが付いているが、認識される単語として出力され
るその関連単語を備えている。 本発明の他の特徴は上記と同様の構成の音声認識シス
テムに関するが、音声認識メモリの管理を目指してい
る。本発明のこの特徴はリンク・レコードをインデック
ス付データ集合体(indexed data sets)として格納す
る手段を備えている。各データ集合体(data set)はテ
ンプレートを表わす記号と、リンク・レコードが格納さ
れた相対的時間を表わすシーケンス・インジケータと、
ネットワーク内のそこからそれが派生して来たリンク・
レコードを示すポインタとを備えている。テーブル(ta
ble)は自由(free)レコード・スペースと設定(estab
lished)レコード・スペースとから構成され、リンク・
レコードは設定レコード・スペースに格納される。更
に、明確に認識されたネットワーク・パス(network pa
ths)の一部であるこれらリンク・レコードを特定する
手段が採用されている。明確に認識されたリンク・レコ
ードは認識されたものとして出力(転置)され、設定レ
コード・スペースから転置されたこれらリンク・レコー
ドはリンク・ネットワークに別のリンク・レコードを引
続き格納するための自由レコード・スペースとして利用
できるようになる。 図面の簡単な説明 本発明の特徴で新規であると信ぜられるものは特許請
求の範囲に特異性とともに示してある。本発明は、その
他の目的と利点とともに、付図と関連して行う次の説明
を参照することにより最も良く理解されるが、付図のい
くつかの図面で同じ参照数字は同じ要素を示している。 第1図は本発明にしたがって描いた音声認識システム
のハードウェアのブロック図である。 第2図は本発明にしたがって実施した音声認識システ
ムの1つの局面を示す認識文法モデルの図式表現であ
る。 第3図は第1図の音声文法モデルによるすべての可能
なパス(径路;paths)を列挙した音声文法トリー(tre
e)の図式表現である。 第4a図、第4b図、および第4c図は本発明による認識プ
ロセスを実施するのに行われる一連のステップを描く流
れ図である。 第5図は第4c図のブロック72を一層詳細に示す流れ図
である。 第6a図、第6b図、第6c図、および第6d図は第4a図のブ
ロック44を一層詳細に示す流れ図である。 第7図は本発明による「トレースバック」の1例を示
す一連の文法トリー図である。 好ましい実施例の詳細な説明 第1図を参照すると、本発明を実施するのに使用する
ことができる音声認識システムのブロック図が示されて
いる。ブロック図はあらかじめ格納した語彙が入ってい
るテンプレート・メモリ10を含んでいる。典型的なあら
かじめ格納した語彙の形成はアメリカ音響学会誌、68
(5)、1980年11月のL.R.Rabiner、J.G.Wilponによる
「訓練された話者に対する簡略化した強力訓練手順、孤
立語認識システム」に述べられている。音響学、音声、
および信号処理に関するIEEEトランザクション、vo1.AS
SP−31,pp.793〜806(1983年8月)のB.A.Dautrich、L.
R.Rabiner、およびT.B.Martinによる「孤立語認識のフ
ィルタ・バンク・パラメータに変化をつけることの効果
について」に述べられているような音響プロセッサ12は
入力音声を、一般に「フレーム」と言う、一連の音声セ
グメント(segments)に変換することができる。各フレ
ームは入力音声の時間セグメントを、通常はLPCまたは
フィルタ・バンク・データの形で表わす。音響プロセッ
サからのフレームは認識器14に伝えられる。 認識器14はテンプレート・メモリ10にあらかじめ格納
してある語彙から単語テンプレートにアクセスし、音響
プロセッサ12からの各入力フレームを単語テンプレート
のセグメントを用いて処理する。このような技法は多く
の音声認識システムに固有のものであり、「テンプレー
ト処理」と言うことができる。 認識器14は第2のメモリ、すなわちリンク・テーブル
16のメモリに両方向からアクセスする。リンク・テーブ
ル16のメモリは5個の関連アレイを格納するのに使用さ
れる。アレイについては更に以下に説明する。 認識器14は2つのプロセッサ、すなわち認識プロセッ
サ18とリンク・トレースバック・プロセッサ20とを用い
て実現することができる。認識プロセッサ18はテンプレ
ート合致、文法、制御、およびリンク・トレースバック
・プロセッサ20との通信のすべてを処理する。リンク・
トレースバック・プロセッサ20はリンク・テーブル用メ
モリを維持する(maintain)のに使用される。この機能
は連続音声を入力しながら可能なテンプレート合致を記
録すること、関連情報をリンク・テーブル用メモリ16に
格納すること、リンク・テーブル用メモリ16のスペース
を他の情報のため自由にすること、および入力音声が特
定されるにつれて認識結果を出力することを含む。認識
プロセッサ18とリンク・トレースバック・プロセッサ20
との機能は1つのプロセッサに組合せたり、あるいは、
図示のように分離することができ、これにより認識プロ
セッサ18を音響学、音声および信号処理に関するIEEE国
際会議議事録pp.899〜902(1982年)のJ.Bridle、M.Bro
wn、およびR.Chamberlainの「接続単語認識のアルゴリ
ズム」に詳細に説明されているように実現することがで
きる。リンク・トレースバック・プロセッサは、本発明
にしたがって使用するときは、モトローラのMC6801のよ
うな8ビットのプロセッサを用いて実現することができ
る。 文法のモデル化 今度は第2図を参照すると、システムが認識すること
ができるすべての可能な単語シーケンスを示す簡略化し
た認識文法モデルが示されている。このモデルは示され
ている語彙が、例示の目的で、一般的に必要なものか
ら、ひどく限定されているので、「簡略化した」と言
う。第2図には、各々が2語から成る6つの可能な単語
ストリングが存在する(第3図で更に説明する)。典型
的な音声認識システムでは、文法モデルは各々が数語を
含む一層多くの可能な単語ストリングを備えることがで
きる。文法モデルのトポロジー(topology)は、ポイン
タがテンプレート・メモリ内の対応するテンプレートを
指している状態で一般メモリに格納される。文法モデル
内の各ノードは、それと関連して、一般メモリに格納さ
れている、テンプレート合致が始まるノードを指すポイ
ンタとその関連する累積距離とを備えている。 文法パスのモデル化 第3図において、第2図からの6つの可能な単語スト
リングの各々がトリー図に列挙されている。3つの可能
な第1語、「ONE」(ワン)、「TWO」(トゥー)、およ
び「THREE」(スリー)が存在する。各可能な第1語に
は2つの可能な第2語「FOUR」(フォー)および「FIV
E」(ファイブ)が続く。テンプレート合致の期間中、
すなわち、入力フレームがあらかじめ格納した単語テン
プレートと比較されている間、認識プロセッサは可能な
「単語終端」を認識する。可能な「単語終端」は一連の
入力フレームが単語テンプレートと合致する可能性があ
れば見つかる。特定された単語テンプレートは、先に述
べたリンク・テーブルに格納されているリンク情報と、
処理されている一連の入力フレームとノードに導くテン
プレートとの間の類似性の尺度を示す累積距離とを通し
てトリー図に付加される。たとえば、第2図および第3
図の語彙ストリングの可能性を与えて、入力フレームの
シーケンスが単語「TWO」と合致する可能性があるもの
として特定されると、「TWO」が始めのノード、すなわ
ちノード24からトリー図に付加される。第3図は別のフ
レームが入力され処理されてから、単語「ONE」が可能
性のある合致となったことを示している。したがって、
これは次にノード24でトリー図にも付加される。次に単
語「THREE」がトリー図に付加され、次いで「FOUR」が
ノード26に付加され、その後同じノードに「FIVE」が付
加され、以下同様となる。これは各可能性ある合致テン
プレートが早晩特定されるにつれてこれをトリー図に付
加しながら続けられる。 「トリー・ノード」と言う言葉、あるいはトリー図中
のノードへの参照はリンク・レコード(link(ed) rec
ord)という言葉と相互に交換可能に使用することにす
る。一般に、リンク・レコードはトリー図中の接続を規
定するメモリに格納されているデータ集合体(date se
t)であり、特定のトリー・ノードの特定とトリー・ト
ポロジー内の前のノードとの関係とを含む。 単語の終端の可能性があるフレームごとに、新しいエ
ントリー、またはリンク・レコードが代表的トリー図中
のリンクに対応するリンク・テーブルに追加される。き
わめて頻繁に、典型的には状態図の形で(状態を表わ
す)一連のフレームとして表わされている単語テンプレ
ートに、入力フレームが処理されるにつれて、単語の終
端である可能性が複数現われることになる。単語の終端
の可能性が検出されるごとに、対応するテンプレートが
新しいリンクとしてトリーに追加される。更に、各テン
プレートの各状態は、現在の入力フレームを通して処理
された蓄積距離と、そのテンプレートに対するデコーデ
ィングが始まるトリーのリンクに対応するリンク・テー
ブルのリンク・レコードを指すリンク・ポインタとを記
録している。テンプレート合致に関するこれ以上の事項
については、上述の「接続単語認識のアルゴリズム」を
参考にすることができる。 残念ながら、語彙が大きいと、トリーに絶えず付加す
るテンプレートから問題が生ずる。第1に、これによっ
て認識応答時間が遅れる。入力フレームのシーケンスが
長くなるほど、オペレータは、システムが認識しその認
識した単語に対して処理を行うまで待たなければならな
い時間が長くなる。 第2に、テンプレートを絶えず追加するにはトリー図
の情報をリンクするための多大なメモリが必要である。
文法モデルが複雑でかつ各可能性のある単語に対して、
いくつかの可能性のある単語終端フレームが、合致する
場合、リンク・テーブル(トリー)に必要なメモリは非
常に急速な割合で大きくなる。大きくなる割合が大きす
ぎれば、メモリの所要条件は非実用的となる。 本発明はリンク・テーブルを独特な構成とし、かつこ
れを非常に効率的に維持することにより、これらの問題
を克服している。 リンク・テーブル リンク・テーブルは、第2図と同様のトリー・ネット
ワークの形に合うように、考察中の可能性のある単語シ
ーケンスのすべてを表わすものである。単語シーケンス
は、事実、テンプレート合致期間中に検出された可能な
単語終端を有する連結されたテンプレートである。この
ような方法でネットワークを設定することにより明白に
すべての可能性のある単語シーケンスの部分であるこれ
らのリンクを分析することができる。この分析プロセス
をトレースバック(traceback)と言う。適格に利用す
れば、トレースバックにより、もはや明らかになお考察
中のシーケンスの一部ではなくなっているリンク・レコ
ードを解放する効率的な方法が可能となる。 トリー図の各リンク、あるいはノード式トリー接続に
は数種類の情報を格納しておかなければならない。この
情報は第1図のリンク・テーブル16のメモリのL−AC
T、L−FWRD、L−BACK、L−WORD、およびL−PTRのア
レイに格納される。この実施例では、各アレイは長さが
255バイトで、256バイトのバウンダリから1バイト過ぎ
た位置に配置されて、効率的アクセスができるようにな
っている。各アレイからの対応する要素は「リンク・レ
コード」を構成している。リンク・レコードは2リンク
式リストになるようにチェインされている。1つのリス
トは自由リンク・レコード、すなわち、追加リンクに利
用できる空きレコード・スペースを備えている。第2の
リストは設定したリストであり、現在使用されているリ
ンクのレコードを備えている。これらのリストはL−PT
Rアレイによって互いにチェインされている。この場合
L−PTR内の1つのエントリは、設定リストまたは自由
リストからの、テーブル内の次のリンク・レコードを示
しており、各レコードは各5つのアレイからの1バイト
を含んでいる。たとえば、設定リスト内の所定のリンク
・レコードについて、L−PTRアレイの対応するバイト
が数「2」の2進表現を含んでいれば、設定リスト内の
次のレコードは5つのアレイすべての第2バイト目に存
在することになる。L−PTRアレイの「0」エントリは
リンク式リストの終端を画定している。 L−BACKアレイとL−WORDアレイとは実際のリンク情
報を備えている。L−BACKはデコード・パス内の前のリ
ンク、すなわち、トリー図の前のノードを指すポインタ
を備えており、一方、L−WORDは現行リンクの終りにデ
コードされた単語を表わす記号を備えている。たとえ
ば、第3図において、トリー・ノード26に単語「FOUR」
を付加してから、L−WORDは単語「FOUR」を表わす8ビ
ット記号を備え、L−BACKはトリー・ノード26に対応す
るリンク・レコードを指すポインタを備えることにな
る。その他の2つのアレイ、L−ACTとL−FWRDとはデ
コード・パスを通る「トレースバック」(可能性ある単
語シーケンス)に使用される。L−ACTは合致の可能性
あるものとしてなお考察中のデコード・パスを示すのに
使用され、L−FWRDはトリー図内の後続ノード、すなわ
ちL−BACKの逆、をポイントするのに使用される。今
後、認識される可能性あるパス(アクティブ・パス(ac
tive path)の一部として考察されているとフラグが立
てられたリンク・レコードをアクティブ・リンク・レコ
ードと称することにする。 リンク・レコードはトレースバック情報を示すので、
その状態に到達するのに使用される単語モデルを通るパ
スを確認することができる。トレースバックはトリーか
ら役に立たない情報を切払うこともできる。これは情報
がメモリ内に余分に蓄積されないようにするのに必要で
ある。トレースバックは明瞭に認識されている単語、す
なわちアクティブ・パスすべてに共通な単語を出力する
のに使用することもできる。リンク・テーブルのL−BA
CKエントリはテーブル内の前のエントリを指しており、
これはトリー図内の前に接続したノードに対応する。し
たがって、トレースバックはトリー図を通ってすべての
パスが会合する点、すなわちトリー・ノードまで逆に追
跡する(tracing back)プロセスであると言われる。す
べてのパスが会合する点まで追跡して戻るという概念は
当業者にはよく知られている。というのは「トレースバ
ック」の一般的説明は前掲の「部分的トレースバックお
よび動的プログラミング」を参照して行われるからであ
る。 上述のアレイを後続の図の説明中の参考のため以下に
掲げる。 L−PTR:255バイト。各バイトはトリー図(テーブル)
に設定リストに対する時間の関数として付加された前の
リンク・レコードを指すポインタとして利用できる。ま
た自由リストの自由リンク・レコードをチェインするの
にも使用される。 L−BACK:255バイト。各バイトはトリー図の前のリンク
・レコードを指すポインタとして利用できる。 L−WORD:255バイト。各バイトは現行リンク・レコード
に対応する、可能性のある認識単語を示す記号として利
用できる。 L−ACT:255バイト。各バイトは現行リンク・レコード
がアクティブか否かを示すのに利用することができる
(トレースバック中に使用される)。 L−FWRD:255バイト。各バイトはトリー図中の後続有効
リンク・レコードを示すポインタとして利用できる(ト
レースバック中に使用される)。 上述のアレイの他に、別の5つのポイタが使用され
る。それらは次の通りである。 HEAD:L−PTRアレイによってチェインされた、設定リス
ト内の最初の、すなわち最も最近に追加されたリンク・
レコードを示す1バイトのポインタ。 FREE:L−PTRアレイによってチェインされた、自由リス
トの最初のリンク・レコードを示す1バイトのポイン
タ。 PTR:処理中の現行トリー・ノードを参照する1バイトの
ポインタ。 TMP1とTMP2:それぞれ認識流れ図に使用される1バイト
のテンポラリ(temporary)・ポインタである。 構造的に、設定リスト内に10個のエントリだけを備え
たテーブルを仮定すると、これらのアレイは次のように
配列することができる。 上記テーブルのエントリを付録Aにトリー図で示す。
HEADはレコード#(番号)7を指し、レコード#3のL
−PTRエントリの「0」はリストの最後のレコードを示
すことに注目すべきである。FREEは図示してない。 L−PTRにより、設定リスト内のレコードを、レコー
ドを自由リストから単に取出してそのL−PTRエントリ
にHEADレコードを指示させ、HEADとFREEとを更新するこ
とにより、入れることができる。トレースバック中にレ
コードをテーブルの設定リストから削除すると、そのレ
コードは、レコード・エントリを自由リストにリンク
し、L−PTRエントリを利用して設定リストの除去レコ
ードにわたってリンクすることにより、テーブルを配列
しなおすことなく利用できるようになる。L−ACTおよ
びL−FWRDのエントリはトレースバック中にのみ使用さ
れ、その他の場合は常に0にリセットされている。 認識流れ図 今度は第4a図から第4c図までを参照すると、認識流れ
図が本発明にしたがって示されている。第4a図の流れ図
はリンク・テーブルとその関連ポインタとをリセットす
ることによりブロック30から始まる。リセット手順には
L−FRWDとL−ACTとの各バイトを0に等しくセットす
ること、HEADポインタを1に等しくセットして設定リス
トの始まりを示すこと、およびL−PTR(1)とL−PTR
(255)とを等しく0にセットしてそれぞれ設定リスト
と自由リストとの終りを示すことが含まれる。また、典
型的には一般メモリに格納されているテンプレート状態
メモリがインアクティブ(inactive)にされる。したが
って、第1のレコードは設定リストから構成され、レコ
ード2から255まではL−PTRエントリを使用して自由リ
ストを形成するようにチェインされる。ここでHEADは設
定リストの始まりを指し、FREEは自由リストの始まり
(リンク・レコード#2)を指す。 第4a図のブロック32で、認識文法モデルが初期設定さ
れる。初期設定はモデルの最初のノードをアクティブに
マーキングすることを含む。これはそのノードに低い累
積距離尺度を任意に割当て文法内の始発点を示すことに
より行われる。最初のノードに対するリンク・ポインタ
は1にセットされるが、これはリンク・テーブル内で初
期設定された最初のエントリに対応する。逆に、文法モ
デル内の他のすべてのノードはインアクティブに初期設
定される。ノードに対する累積距離を、処理が始まると
きこのノードで起りそうもないことを示す無限大に等し
くセットすれば、そのノードをインアクティブにセット
することができる。 ブロック34で、トレースバック・カウンタが10に初期
設定される。トレースバック・カウンタはトレースバッ
ク・プロセスを行うべきことを周期的に示すのに使用さ
れる。この実施例では、トレースバックは10個の入力フ
レームが処理されるごとに行われる。 ブロック36で次の入力フレームが先に述べたテンプレ
ート合致のためにシステムに入力される。この流れ図の
残りのステップはすべて現在の入力フレームの処理に関
係する。 トレースバック・カウンタはブロック38でデクレメン
ト(decrement)してフレームが丁度入力されたことを
示す。 ブロック40で文法モデルのすべてのノードが処理され
たか否かを確認する試験が行われる。換言すれば、入力
フレームが文法モデル全体について処理されたか否かに
ついてである。文法モデルのすべてのノードが処理され
てしまっていれば、流れはブロック42に進んでトレース
バック・カウンタがトレースバックがこのフレームで行
うべきことを示しているか確認する。もしそうなってい
れば、第6a図から第6d図までの後に説明するトレースバ
ック・サブルーチン44を呼んでトレースバックが行われ
る。トレースバックに続き、ブロック36で次の入力フレ
ームを処理する前に、ブロック46でトレースバック・カ
ウンタがリセットされる。 文法モデルのノードがすべては処理されてしまってい
なければ、流れは第4a図のブロック40から第4b図のブロ
ック50に進む。ブロック50で、認識文法モデルの処理が
次のノードまで進む。このフレームについてノードが処
理されていなければ、「次のノード」は文法モデルの最
初のノードである。今後、ブロック50で、「次のノー
ド」とは丁度処理されたばかりのノードに続くノードま
たはそれと平行なノードを指す。特に、処理のためのノ
ードの順序は、そのノードで終るすべてのテンプレート
に対する始発ノードが現行フレームに対して処理されて
しまうまで、ノードが処理されないようになっていなけ
ればならない。これはノード累積距離とリンクとがテン
プレートの始発ノードについて、これらのテンプレート
が処理される前に確実に更新されるようにするためであ
る。 ブロック52で、新しいノードがインアクティブにセッ
トされる。これはそのノードに関する累積距離を無限大
に等しくセットすることにより行われる。 ブロック54でこのノードで終るすべてのテンプレート
が処理されてしまったか否かを確認する試験が行われ
る。その後文法モデルの各ノードの直ぐ前の各テンプレ
ートが他のノードに進む前に処理されることが認識され
る。このノードで終るテンプレートのすべてが処理され
てしまうと、流れは後に説明する第4c図のブロック68に
進む。すべてのテンプレートがまだ処理されていなけれ
ば、流れはブロック56に進み、現在の入力フレームに対
して、トレースバックが必要であるか確認する。したが
ってトレースバック・カウンタが0と比較される。 この時点で、これまで認識流れ図で示された認識文法
モデルの処理を要約するのが有用であろう。もう一度第
2図を参照すると、文法モデルの初期ノード22がアクテ
ィブにセットされ、対応するリンク・テーブル・エント
リが可能性のあるすべての文法パス(トリーの枝)が発
生する基準を示すように初期設定される。入力フレーム
が処理されるごとに、文法モデルは1度に1ノードずつ
始発ノードから終了ノードまで進む。更に、文法モデル
の各ノードに対して、そのノードで終る各テンプレート
が、後に説明するように、1度に1つのテンプレートを
処理する。したがって、各入力フレームごとに、各ノー
ドが処理され、各ノードごとに、そのノードで終る各テ
ンプレートが処理される。 ブロック56で示したように、トレースバックが必要で
あるか否かに無関係に、次のテンプレートがブロック58
かブロック60かで処理される。いずれかのブロックでテ
ンプレートが合致すると、現行入力フレーム、テンプレ
ート、およびテンプレートのあらゆる状態に対する累積
距離およびリンク・ポインタの他に文法モデルの始発ノ
ードに対する累積距離およびリンク・ポインタに基づい
て、テンプレートのあらゆる状態に対する累積距離とリ
ンク・ポインタとが更新される。現在のフレームのこの
テンプレートに対して単語終端である可能性が存在すれ
ば、可能性ある単語終端に対応する累積距離とリンク・
ポインタとが発生する。前掲のIEEE国際会議議事録「接
続単語認識のアルゴリズム」を参照。 流れがブロック56からブロック60に進み、トレースバ
ックが、上述のテンプレート処理の他に、このフレーム
を処理していることを示すと、そのテンプレート内の各
アクティブ状態に対するリンク・ポインタが指すリンク
・レコードに対応するL−ACTエントリのすべてが非ゼ
ロにセットされる。「アクティブ」テンプレート状態は
有限累積距離を有するものである。 次に流れはブロック62に進み、ここでそのテンプレー
トに関連する累積距離がこのフレームに対するノードで
終る先に処理された最良のテンプレート(これはこれが
このノードに対して処理された最初のテンプレートであ
る場合には無限大になる)に対応する現行累積距離より
良いか否かを確認する試験が行われる。この試験の結果
は現在の入力フレームのテンプレート合致が単語テンプ
レートの単語終端である可能性があることを示す場合に
のみ真である。先に述べたとおり、単語終端である可能
性があれば入力フレームのシーケンスがテンプレート・
メモリに格納されている単語テンプレートと対応する、
すなわち合致することを示す。 テンプレートに現在の入力フレームに対して単語終端
の可能性がなければ、その関連の累積距離は無限にな
る。 最も最近に処理されたテンプレートにそのノードに関
して格納されている前の累積距離より良い累積距離がな
いことがわかれば流れはブロック54に戻り、ここでその
ノードで終る別のテンプレートが処理される。 最も最近処理されたテンプレートに対する累積距離が
そのノードに関して今まで処理されたものの中で最良で
あることがわかれば、流れはブロック64に進んでこの情
報を記録する。ブロック64で、上で処理されたテンプレ
ートに対応する累積距離とリンク・ポインタとが文法モ
デルのノードとして記録される。他に、テンプレートを
表わす単語番号、あるいは記号が記録される。単語番号
は、後に認識されたと確認されれば単語を引続き出力す
るために記録される。ブロック64から、流れは上に説明
したようにブロック54に進む。 ブロック54で、そのノードで終るすべてのテンプレー
トが処理されたことが示されれば、流れは第4c図のブロ
ック68に進む。第4c図で、ブロック68から74まではリン
ク・レコードをトリーに加えるべかき否かを確認し、も
し加えるべきである場合には、リンク・レコードがリン
ク・アレイを通してトリーに加えられる。 ブロック68で、文法モデルのノードがアクティブであ
るか確認する試験が行われる。ノードがアクティブにな
っていることができる唯一の態様は、そのノードに対し
て処理された少なくとも1つの単語テンプレートが現在
の入力フレームに対して単語終端である可能性がある場
合である。ノードがインアクティブである場合には、流
れは第4a図のブロック40に進み、現在フレームに対して
処理する他のノードを探す。それ以外の場合は、流れは
ブロック70に進む。 ブロック70で、そのノードで終る最良テンプレートが
単語テンプレートであったか否かを確認する試験が行わ
れる。ある例では、無音テンプレートのような別種のテ
ンプレートであってもよく、この場合には流れは第4a図
のブロック40に進む。無音テンプレートは、典型的には
認識されているような無音を出力する必要がないから、
トリーには加えられない。そのノードで終る最良のテン
プレートが単語テンプレートであった場合には、LINKサ
ブルーチン(第5図)が呼出されてリンク・レコードを
トリー図に加える。そのテンプレートの始発リンク・レ
コードに対応するリンク・ポインタとテンプレートを表
わす単語番号とを示すパラメータはLINKサブルーチンに
送られる。 以下に説明するように、リンク・レコードが加えられ
てから、新しいリンク・ポインタがLINKから戻される。
ブロック74で、文法モデルの現行ノードに対するリンク
・ポインタがLINKから送られたリンク・ポインタにセッ
トされる。 ブロック74に続いて、流れは第4a図のブロック40に進
み、文法トリーのすべてのノードが現在の入力フレーム
に対して処理されてしまったかチェックする。 リンクのトリーへの付加 今度は第5図を参照すると、先に説明したようにこの
サブルーチンはリンク・レコードをリンク・アレイで規
定されたようにトリー図に追加する。サブルーチンに送
られるパラメータはそこから加えられるトリーのノード
に対応する単語番号とリンク・ポインタとである。 ブロック78で、自由リンク・レコードが存在するか否
かを確認する試験が行われる。これはFREEと0とを比較
することにより行われる。FREEが0に等しければ、もは
や自由リンク・レコードは存在しない。上に説明した
が、リンク・アレイ内のレコードは、L−PTRアレイで
互いにチェインされており、自由リンク・レコードと設
定リンク・レコードとから構成されている。自由リンク
・レコードは別のリンク・レコードをトリー図に追加で
きるようにする。したがって、自由リンク・レコードが
存在しなければ、すべてのリンク・レコードは使用され
ており、流れはブロック80に進んでエラーが報告され、
システムがリセットされる。ブロック80のこのステップ
はリンク・テーブルをオーバフローさせるおそれのある
異常状態から保護するときにのみ使用することに注意す
べきである。正常状態では、本発明は適当な長さのリン
ク・テーブルを使用して自由リンク・レコードがなくな
らないようにしている。 1つ以上の自由リンク・レコードがあれば、流れはブ
ロック82に進み、次の利用可能なリンク・レコードが自
由リストから取出され、HEADおよびFREEのポインタを更
新することにより設定リストの最上部、すなわち始まり
に挿入される。FREEは次の自由レコードのインデックス
(index)を指すようにセットされ、HEADは丁度加えら
れたばかりのリンク・レコードを指すようにセットされ
る。新しいHEADリンク・レコードのL−PTRは新しいレ
コードを設定リストにチェインする、前のHEADリンク・
レコードを指すようにセットされる。 ブロック86では、HEADは設定リストに丁度加えられた
ばかりのリンク・レコードを指すので、このサブルーチ
ンに送られた単語番号がL−WORDアレイに新しいレコー
ドとして記録される。また、このサブルーチンに送られ
たリンク・ポインタはL−BACKアレイにリンク・レコー
ドとして記録される。 ブロック88で現在の入力フレームにトレースバックが
必要であるか否かを確認する試験が行われる。必要であ
れば、流れはブロック90に進み、新しく加えられたリン
ク・レコードにアクティブの印が付く。これはそのレコ
ードのL−ACTアレイを1に等しくセットすることによ
り行われる。現在の入力フレームに対してトレースバッ
クが必要でなければ、サブルーチンは終り、流れは第4c
図のブロック74に戻る。 トリーを通るトレーシング・バック 今度は第6a図から第6d図までを参照すると、トレース
バック・サブルーチン、すなわち、第4a図のブロック44
が詳細に示されている。トレースバック・サブルーチン
はトリー図を通して可能性のある合致として特定されて
いる単語を探し、合致の一義性(uniqueness)にあいま
いさ(ambiguity)があるか否か確認する。一義的に特
定されている単語は認識システムから認識された単語と
して出力される。更に、トレースバック・サブルーチン
は死んだすべてのリンク・レコード、すなわち、もはや
可能性ある合致として考察していないレコードを自由リ
ストに取出し、メモリを将来のリンク・レコードに利用
できるようにする。トレースバックに入る前に、L−AC
Tが上述のようにすべてのアクティブ・リンク・レコー
ドに対してセットされる、すなわちフラグが掲げられ
る。トレースバックのはじめに、アクティブ・リンク・
レコードはトリーを通るまだ考察中のすべてのパスの終
りを表わす。トレースバックの基本概念はトリーを通し
てすべてのアクティブ・パスの終り(はじめにL−ACT
アレイにより印がつけられている)から「トレースバッ
クしてすべてのアクティブ・パスがどこで会合するかを
見つけることである。すべてのアクティブ・パスに共通
なトレーの部分は明確な部分パスを表わしており、この
明確な部分パスに対応するこれらの単語は認識されてい
るとして出力することができる。トレースバック中、L
−FWRDアレイは部分パスを順方向に(トリーの終りの方
に向って)チェインするのに使用される。これら部分パ
スが形成されるにつれて各部分パスの基本ノードがL−
ACTアレイを経由してアクティブとされる。部分パスを
(L−BACK情報を使用して)現行ノードから既にアクテ
ィブと記されている前のノードに拡張しようとすると、
1つ以上の可能なパスがこの前のノードから発生して両
ノードからの部分パスが削除される(順方向ポインタ・
チェイン(L−FWRD)が0にリセットする)。アクティ
ブと記されているすべてのノードはこのような仕方で処
理される。ノード処理の順序はリンク・レコードがリン
ク・テーブルに追加された時間の順序とは反対の順序で
ある。この順序は設定リストの構造に固有のものであ
る。処理される最後のノードはトリーのルート(root)
・ノードである。この点でそのノードから出る順方向チ
ェイン(部分パス)は明確な部分パスを表わしており、
対応する認識された単語が出力される。トレースバック
手順はまたL−FWRDおよびL−ACTアレイが0へのリセ
ットを完了したら直ちにそれ自身「掃除する(cleans u
p)」。更に、アクティブ・パス上にないすべてのリン
ク・レコードは、既に出力されている明確な部分パス上
のリンク・レコードとともに、自由リストに戻される。 トレースバック・サブルーチンを詳細に説明する前
に、図示例に入るのが役に立つであろう。第7図を参照
すると、このような例が一連のトリー図AからIまでと
して描かれている。 図Aでは、トリーはトレースバックの前に示されてお
り、アクティブ・リンク・レコード、すなわち、アクテ
ィブ単語リンクが出ているリンクはリンクの右側に太い
点で記してある。トレースバックの第1のステップは丁
度良い時期に加えられた最も最近のアクティブ・リンク
・レコード、この場合は25と記したノード、を確定する
ことである。トリーのこのノードの直前にアクティブ・
ノードが存在するか確認する試験が行われる。存在すれ
ば、この例でノード25を経由するかまたはノード21を経
由するというように、どのパスがノード21に戻るかに関
してあいまいさが存在する。あいまいさが生ずるとあい
まいなノードに対する順方向ポインタがそのチェインさ
れた順方向ポインタを、もし存在すれば、取除く。これ
は各後続のリンク・レコードに対してL−FWRDアレイに
0を挿入することによって行われる。この例では、どの
ノードにも順方向ポインタがない。すなわちL−FWRD=
0である。 次の最も最近加えられたアクティブ・リンク・レコー
ドが特定される(ノード24)。ノード24の先行リンクも
ノード21であり、上述のノード25の処理と同様に処理さ
れる。 次の最も最近加えられたアクティブ・ノードはノード
23である。このノードにはアクティブな先行ノードがな
いので、トレースバック・プロセスは先行ノードをアク
ティブとし、現在処理しているノード、ノード23、に等
しい、先行ノード、ノード19、の順方向ポインタ(L−
FWRD)を記録する。図Bはノード23を処理した後の図A
を示しており、ノード19に加えられた順方向ポインタを
太線で描いてある。各ノードが処理されたら、それがア
クティブ・ノードであることを示しているそのL−ACT
エントリが取除かれる。したがって、トリー図Bはもは
やノード23、24、および25をアクティブと描いていな
い。 ノード22はアクティブ・ノードを備えている、次に最
も最近加えられたエントリである。これにはアクティブ
な先行ノードがない。したがって、ノード23に対して行
ったように、ノード18の順方向ポインタがノード22に等
しくセットされ、ノード18にアクティブの印が付けられ
る。図Cはノード22を処理した後のトリーを示す。 ノード21は、図Dに示すように、その先行ノードがア
クティブでないので、ノード22と同様に処理される。 ノード20は次に処理されるべきアクティブ・ノードで
ある。ノード20に先行するノードはアクティブであり、
これはあいまいさを示す。あいまいさが生ずると、あい
まいさのノード、この場合ノード18と20、に対する順方
向ポインタはその順方向ポインタ・チェインが解かれ
る。この例ではノード18にだけ順方向ポインタがある。
ノード18の後に太線で示したように、ノード18に対する
順方向ポインタはノード22と等しくセットされている。
したがって、図Eで、ノード18の順方向ポインタを0に
等しくセットすることにより、太線が除去される。 ノード19は次に最も最近加えられた、アクティブ・ノ
ードを備えているエントリである。その先行ノードはア
クティブであるから、図Fに示すように、あいまいさに
よって両ノード16および19に対する順方向ポインタ・チ
ェインを外さなければならない。 ノード18が次に処理される。その先行ノード、16、は
アクティブであるが、ノード16または18はいずれも順方
向ポインタを備えていないので、ノードのアクティビテ
ィを示す太い点を除去すること以外何らの処置も取られ
ない。 次にアクティブ・ノードはノード16であり、これの先
行ノードはアクティブでない。この場合には、トレース
バック・プロセスは先行ノードをアクティブとし、現在
処理されているノード、ノード16、に等しい。先行ノー
ド、ノード13、に対する順方向ポインタを記録する。図
Gはノード16を処理した後のトリー図Aを示す。 ノード13はノード16と同様に処理される。したがっ
て、図Hではトリーはノード11だけをアクティブと記し
て示してあり、ノード11と13とに対する順方向ポインタ
だけが残っている。 一旦トレースバック・プロセスが、先行する他のノー
ドが無いトリーのルート・ノード(ノード11)に到達す
れば、順方向ポインタを通してチェインした単語を認識
単語として出力する。これはチェインされた順方向ポイ
ンタを備えているリンク・レコードをL−FWRD内でルー
ト・ノードから出発して引続き探すことにより行われ
る。図Iで示すように、そのそれぞれのL−WORDアレイ
に「eight」および「five」を記録するリンク・レコー
ドを出力する。その他、図Hで、ノード11と16との間の
リンクを表わすリンク・レコードが設定リストから除去
され、L−PTRアレイおよびFREEポインタで示したよう
に、自由リストにリンクされる。この時点でのトリーの
新しいルート・ノードはノード16である。残りのトリー
は図Iに示してあり、これは別の入力フレームが処理さ
れるとき、すなわち、流れが認識流れ図の第4a図のブロ
ック46に戻る場合に使用される。 今度は第6a〜6d図を参照してトレースバック流れ図を
詳細に説明することにする。第6a図で、リンク・テーブ
ルから最も最近加えられたアクティブであるリンク・レ
コードを探す。ブロック94で、リンク・テーブルの最初
のレコードが設定レコード・リスト内の唯一のレコード
であるか否かを確認する試験が行われる。これはHEADに
より指示されているL−PTRアレイのインデックスを探
すことによって行われる。前述のとおり、HEADは最も最
近加えられたリンク・レコードのインデックスを備えて
いる。HEADに対応するL−PTRエントリが0に等しけれ
ば、チェインは終結し、テーブルの中には他にレコード
がない。この場合には、流れはブロック96に進み、対応
するL−ACTエントリがインアクティブに設定される。
ブロック96から、サブルーチンは認識流れ図の第4a図の
ブロック46に戻る。 テーブルの中に別のリンク・レコードが存在する場合
には、ブロック98で最初のリンク・レコードがアクティ
ブであるか認識する試験が行われる。その対応するL−
ACTエントリが0に等しくなければリンク・レコードは
アクティブである。 リンク・レコードがアクティブであれば、流れはブロ
ック100に進む。ブロック100で、リンク・レコードが既
に考慮に入れられてしまっていることを示すには、リン
ク・レコードをインアクティブに設定する。次に流れは
ブロック110に進み、HEADで指示されたレコードがテン
ポラリ・ポインタPTRに格納される。ブロック110から、
流れは、引続き説明するが、ブロック120に進む。 最初のリンク・レコードがインアクティブに戻ってし
まえば、流れはブロック98からブロック112に進む。ブ
ロック112で、L−PTRはアクティブ・リンク・レコード
が見つかるまで動き回り、アクティブ・リンク・レコー
ドが見つかると、そのアクティブ・レコードに対するイ
ンデックスがPTRに格納される。ブロック114で、アクテ
ィブのインジケータがクリアされ、ブロック100で行っ
たと同様に、そのリンク・レコードに対する処理を示
す。 ブロック116で、ポインタHEADとPTRとの間で示された
ように、インアクティブであるとわかったリンク・レコ
ードが将来の使用のため自由リストに戻される。 ブロック118で、リンク・テーブル内に更にリンクが
あるか確認する試験が行われる。この試験は上のブロッ
ク94で行われた試験と同じである。 設定リスト内にもはやリンク・レコードが存在しなけ
れば、サブルーチンは認識流れ図に第4a図のブロック46
で戻る。 ブロック120で現行リンクに先行するリンク(ノー
ド)がインアクティブであるか否かを確認する試験が行
われる。これは現行リンク・レコードのバック・ポイン
タを探し、その対応するL−ACTエントリを探すことに
より行われる。先行ノードがアクティブであれば、流れ
は第6b図のブロック124に進み、先に説明したあいまい
さの問題を処理する。先行ノードがインアクティブであ
れば、流れは第6c図のブロック142に進む。 今度は第6b図を参照すると、ここのステップは、先行
ノードがなお合致について考察中のノードから発生する
2つ以上のリンク・レコードがある可能性のあることを
示しているとき、あいまいさを処理する。この状態はア
クティブ・ノードに先行するノードもアクティブである
ときに起る。リンク・レコード・データを操作するため
第6b図で3つのテンポラリ・ポインタ(TMP1,TMP2およ
びPTR)を使用する。ブロック121のステップは順方向ポ
インタ・チェインを前のリンクから取外す。このステッ
プにはブロック124、126、128、および130が含まれてい
る。第6b図にはPTRが現在処理されているノード、ある
いはリンク・レコードを指示した状態で入る。リンク・
レコードに対応するL−BACKエントリは、第7図により
上述したように、現在処理されているノードの直前のノ
ードを指している。リンク・レコードに関連するL−FW
RDエントリは可能性のある子孫リンク・レコードだけを
指示する。 ブロック124で、現行アクティブ・ノードの直前のノ
ードを指すポインタがTMP1に格納される。ブロック126
で、先行ノードの、L−FWRDにより指示された子孫リン
ク・レコードがTMP2に格納される。 ブロック128で、TMP2で指示されたノードが実際のL
−FWRDエントリを備えているか、あるいはそれが0にセ
ットされているかを確認する試験が行われる。TMP2で指
示されたノードが順方向ポインタを備えていれば(L−
FWRDが0に等しくなければ)、流れはブロック130に進
み、そのノードに対する順方向ポインタが除去される。
ブロック130で、TMP2の内容もTMP1に移動し、これによ
り現行ノードの参照が一時点にTMP2により指示されてい
るノードに移動し、次いで、ブロック126から始まっ
て、上記のステップが後続のノードに対して、順方向チ
ェイン内に、ブロック128で示したように、順方向チェ
イン終りを示す順方向ポインタを持たないノードが見つ
かるまで、繰返される。 ブロック122のステップは、PTRで示されているよう
に、現行リンクから順方向ポインタ・チェインを除去す
る。ブロック132で、現行リンク・レコード・ポインタP
TRがTMP1に格納される。ブロック134で、そのリンク・
レコードに対するL−FWRDエントリがTMP2に格納され
る。ブロック136で、上のブロック128で行われたよう
に、このリンク・レコードに対する順方向ポインタが存
在するか確認する試験が行われる。このリンク・レコー
ドに対する順方向ポインタが存在すれば、流れはブロッ
ク138に進み、ここで順方向ポインタが除去され、子孫
ノードが、その順方向ポインタをも同様に除去するた
め、TMP1に格納される。ブロック134から始めて、上の
ステップは、現行ノードからチェインされている順方向
ポインタがすべて削除されるまで繰返される。次に、ブ
ロック136から、流れは第6c図のブロック144に進み、次
のアクティブ・リンク・レコードを処理する。 第6a図のブロック120に戻って参照すると、現行ノー
ドに先行するノードがインアクティブである場合には、
流れは第6c図のブロック142に進む。これについて説明
する。 第6c図のブロック142では、先行ノード(リンク・レ
コード)がインアクティブであるとわかっているので、
このノードがアクティブにセットされ、その順方向ポイ
ンタが現行リンク・レコードを指すようにセットされ
る。ブロック144で、現行リンク・レコードから始め
て、次のアクティブ・リンク・レコードが見つかり、PT
Rがこのレコードを指すようにセットされ、新しい現行
リンクレコードを示すようになるまでテーブルが捜索さ
れる。ブロック146で、ブロック144のステップ中に遭遇
したすべてのインアクティブ・レコードが、L−PTRア
レイ中の適切なエントリを修正することにより、自由リ
ストに戻される。ブロック148で、新しいノードがイン
アクティブにセットされて、第6a図のブロック100およ
び114で行われたと同様に、そのノードが既に考慮に入
れられていることを示す。 ブロック152でこの新しいリンク・レコードがチェイ
ンの最後であるか否かを確認する試験が行われる。最後
である場合には、すべてのリンク・レコードが処理され
てしまっており、流れは第6d図のブロック156に進んで
トレースバック・プロセス中に認識された単語を出力す
る。この新しいリンク・レコードがチェインの最後でな
ければ、流れは更に処理するため第6a図のブロック120
に進む。 今度は第6d図を参照すると、ブロック156で現行リン
ク・レコードのインデックスが、これはトリーのルート
・ノードであるが、TMP1に格納される。ブロック158
で、現行ノードの順方向ポインタによって表わされてい
るノード(リンク・レコード)がTMP2に格納される。た
とえば、第7図の図Hを参照すると、TMP1は11(ノード
11)を含んでおり、TMP2は13(ノード13)を含んでい
る。 ブロック160で、TMP1に格納されているノードからの
子孫となる順方向ポインタが存在するか確認する試験が
行われる。これはTMP2の内容と0とを比較して行われ
る。もしTMP1に格納されているノードからの子孫となる
ある順方向ポインタが存在すれば、流れはブロック162
に進み、現行ノードに対する順方向ポインタが除去さ
れ、現行ノードが、TMP2に格納されている現行ノードの
順方向ポインタによって示されているように、順方向チ
ェイン内の次のノードまで持ち上げられる。ブロック16
4で、現行リンク・レコードに関連する単語が認識され
た単語として出力される。ブロック158から始まって、
上記のステップは、順方向ポインタ・チェインの各リン
ク・レコードが、認識された単語としてその関連単語を
備えるようになるまで、繰返される。ブロック160での
ステップ中、順方向ポインタを備えていない子孫リンク
・レコードが見つかるが、この場合には、流れはブロッ
ク168に進み、TMP1およびPTRの間に示されているよう
に、すべての死んだリンク・レコードが自由リストに戻
される。その他に、ブロック168でL−PTRアレイがPTR
により現在指示されている新しい基底(base)ノードに
対するL−PTRエントリを0にセットすることにより更
新される。このレコード内の0はトリーのルート(roo
t)とリンク・レコードの設定リストの終りとを示す。
ブロック168で、トレースバックは完了し、流れは第4a
図のブロック46に進む。 本発明はしたがって連続音声認識のための新しいかつ
改良されたシステムと方法とを提供する。本発明は効率
的に様式化した上述の流れ図により説明したように簡単
かつ安価な8ビットのプロセッサで実時間認識を行うよ
うに簡単に実現することができる。本発明は更に入力フ
レームを処理するとき最小限の数のリンク・レコードだ
けを格納すればよいようなすぐれたメモリ管理法を提供
する。 本発明について特に好ましい実施例を参照して図示
し、説明したが、当業者には上述の本発明に対しその精
神および範囲を逸脱することなく各種修正および変更を
行い得ることが理解されるであろう。
語(word)の終点(end point)があらかじめ決まって
いない音声の認識に関する。 既知の話し手(speaker)について所定の語彙(vocab
ulary)から孤立した単語を認識することは長い間知ら
れている。語彙の単語を個別のテンプレート(型板)と
してあらかじめ記憶しておき、各テンプレートが語彙に
より単語に対する音のパターンを表わすようにする。孤
立した単語が話されると、システムはその単語を語彙を
表わす各個別のテンプレートと比較する。この方法は一
般に完全単語テンプレート合致法(whole−word templa
te matching)と言われている。好結果を与える認識シ
ステムの多くは動的プログラミングを用いた完全単語テ
ンプレート合致法を採用して、話された単語とあらかじ
め記憶してあるテンプレートとの間の非線形時間尺度の
変化に対処している。 この手法は孤立した単語を認識する用途には有効であ
るが、多くの実用的用途には連続した単語の認識が必要
である。連続単語の認識では、語句中の単語の数は限定
しなくてよく、始めの方の単語の本体は語句が終る前に
決定することができるが、孤立単語認識では、入力パタ
ーンの始まりと終りとを特定するのに区切り記号(deli
miter)を用い、認識は一度に1語ずつ行われる。更
に、連続音声認識システムは入力パターンを他の認識可
能なパターン、背景雑音、呼吸雑音のような話し手から
出る雑音から区別しなければならず、一方孤立認識は通
常、単語の始まりまたは終りに他の認識可能なパターン
を容認できない。 IEEEトランザクション、音響学、音声および信号処
理、vo1.ASSP−27,No.6,pp.588〜595(1979年12月)の
H.Sakoeによる「2レベルDP合致法−接続(connected)
単語認識のためのパターン合致アルゴリズムに基づく動
的プログラミング」では、完全単語テンプレート合致の
方法が接続単語認識を取扱うように拡張されている。こ
の論文は入力パターン全体に最もよく合う一連の単語テ
ンプレートを見出す2パス(two−pass)動的プログラ
ミング・アルゴリズムを提示している。第1のパスで
は、入力パターンの各可能な部分に対して合致(matc
h)した各テンプレート間の類似性を示すスコアを発生
する。第2のパスでは、このスコアを使用して入力パタ
ーン全体に対応する最良のテンプレート列を見出す。 この拡張された方法には明らかな欠点がある。この技
法の1つの欠点は必要な計算時間の量である。特定の設
計要件によっては、この限度のため高価な高速プロセッ
サを不当に必要とすることがある。 この方法の他の欠点は入力パターンの終点をあらかじ
め定めねばならず、入力パターン全体をテンプレートの
合致が正確に生ずるまでシステム内に格納しなければな
らないということである。入力パターンがかなり長い場
合には、認識応答時間が実質上悪くなる。また、終点検
出時の誤差が認識器の性能を甚だしく低下させる。更
に、この情報を格納するのに必要なメモリが極端に多く
なることもある。 IEEEトランザクション、音響学、音声および信号処
理、vo1.ASSP−27,No.6,pp.588〜595(1979年12月)の
P.Brown、J.Spohrer、P.Hochschild、J.Bakerによる
「部分的トレースバック(traceback)および動的プロ
グラミング」では、終点をあらかじめ定めずに任意の長
さの入力パターンの連続音程認識を考慮した技法が延べ
られている。これは部分的トレースバックと呼ばれる技
法を使用して行われる。部分的トレースバックでは、認
識器の性能を犠牲にすることなしに完全な入力パターン
の完成の前に認識された単語が出力される。しかしなが
ら、記されている部分的トレースバック技法はプロセッ
サの負担になるとともに実行が厄介なように思われる。 したがって、容易に実行することができ、しかも実時
間で効果的かつ安価に動作することができる連続音声認
識システムの必要性が存在する。 発明の目的と概要 本発明の目的は実時間用途に対して実施し安価なハー
ドウェアで連続音声を認識することができる音声認識の
機構と方法とを提供することである。 本発明の更に他の目的は認識プロセス中音声認識メモ
リを効果的にメモリ管理できる音声認識の機構と方法と
を提供することである。 本発明の更に他の目的は認識プロセスに対して合致す
る可能性のあるテンプレート(template)を表わすソフ
トウェア・リンク・ネットワークを通して効率的なトレ
ースバック(traceback)ができる音声認識の装置と方
法とを提供することである。 本発明の更に他の目的はストリング全体が入力される
前に入力音声を認識することができる音声認識の装置と
方法とを提供することである。 手短かに言えば、本発明は音声認識システムに関する
ものであり、入力フレーム(input frame)が音声を表
わすあらかじめ格納されているテンプレートに対して処
理され、認識される可能性のあるものとして考慮されて
いるテンプレートはリンク・ネットワーク(linked net
work)に個別に記録されており、各リンク・レコード
(link record)は一般に先祖および子孫のリンク・レ
コードの備えている。音声パターンを認識する1つの装
置と方法はリンク・レコードに対するテンポラリ・ポイ
ンタ(temporary pointers)を設けることと、リンク・
レコードに対応する認識される可能性のあるテンプレー
トを接続するリンク・レコードを選択するのにテンポラ
リ・ポインタを使用してリンク・ネットワークを通して
逆追跡(tracing back)することから成立っている。認
識される可能性のある2つ以上の子孫を持っている先祖
レコードを備えたこれらリンク・レコードはそのテンポ
ラリ・ポインタが除去されている。ネットワーク内の残
りのリンク・レコードは、なおテンポラリ・ポインタの
ラベルが付いているが、認識される単語として出力され
るその関連単語を備えている。 本発明の他の特徴は上記と同様の構成の音声認識シス
テムに関するが、音声認識メモリの管理を目指してい
る。本発明のこの特徴はリンク・レコードをインデック
ス付データ集合体(indexed data sets)として格納す
る手段を備えている。各データ集合体(data set)はテ
ンプレートを表わす記号と、リンク・レコードが格納さ
れた相対的時間を表わすシーケンス・インジケータと、
ネットワーク内のそこからそれが派生して来たリンク・
レコードを示すポインタとを備えている。テーブル(ta
ble)は自由(free)レコード・スペースと設定(estab
lished)レコード・スペースとから構成され、リンク・
レコードは設定レコード・スペースに格納される。更
に、明確に認識されたネットワーク・パス(network pa
ths)の一部であるこれらリンク・レコードを特定する
手段が採用されている。明確に認識されたリンク・レコ
ードは認識されたものとして出力(転置)され、設定レ
コード・スペースから転置されたこれらリンク・レコー
ドはリンク・ネットワークに別のリンク・レコードを引
続き格納するための自由レコード・スペースとして利用
できるようになる。 図面の簡単な説明 本発明の特徴で新規であると信ぜられるものは特許請
求の範囲に特異性とともに示してある。本発明は、その
他の目的と利点とともに、付図と関連して行う次の説明
を参照することにより最も良く理解されるが、付図のい
くつかの図面で同じ参照数字は同じ要素を示している。 第1図は本発明にしたがって描いた音声認識システム
のハードウェアのブロック図である。 第2図は本発明にしたがって実施した音声認識システ
ムの1つの局面を示す認識文法モデルの図式表現であ
る。 第3図は第1図の音声文法モデルによるすべての可能
なパス(径路;paths)を列挙した音声文法トリー(tre
e)の図式表現である。 第4a図、第4b図、および第4c図は本発明による認識プ
ロセスを実施するのに行われる一連のステップを描く流
れ図である。 第5図は第4c図のブロック72を一層詳細に示す流れ図
である。 第6a図、第6b図、第6c図、および第6d図は第4a図のブ
ロック44を一層詳細に示す流れ図である。 第7図は本発明による「トレースバック」の1例を示
す一連の文法トリー図である。 好ましい実施例の詳細な説明 第1図を参照すると、本発明を実施するのに使用する
ことができる音声認識システムのブロック図が示されて
いる。ブロック図はあらかじめ格納した語彙が入ってい
るテンプレート・メモリ10を含んでいる。典型的なあら
かじめ格納した語彙の形成はアメリカ音響学会誌、68
(5)、1980年11月のL.R.Rabiner、J.G.Wilponによる
「訓練された話者に対する簡略化した強力訓練手順、孤
立語認識システム」に述べられている。音響学、音声、
および信号処理に関するIEEEトランザクション、vo1.AS
SP−31,pp.793〜806(1983年8月)のB.A.Dautrich、L.
R.Rabiner、およびT.B.Martinによる「孤立語認識のフ
ィルタ・バンク・パラメータに変化をつけることの効果
について」に述べられているような音響プロセッサ12は
入力音声を、一般に「フレーム」と言う、一連の音声セ
グメント(segments)に変換することができる。各フレ
ームは入力音声の時間セグメントを、通常はLPCまたは
フィルタ・バンク・データの形で表わす。音響プロセッ
サからのフレームは認識器14に伝えられる。 認識器14はテンプレート・メモリ10にあらかじめ格納
してある語彙から単語テンプレートにアクセスし、音響
プロセッサ12からの各入力フレームを単語テンプレート
のセグメントを用いて処理する。このような技法は多く
の音声認識システムに固有のものであり、「テンプレー
ト処理」と言うことができる。 認識器14は第2のメモリ、すなわちリンク・テーブル
16のメモリに両方向からアクセスする。リンク・テーブ
ル16のメモリは5個の関連アレイを格納するのに使用さ
れる。アレイについては更に以下に説明する。 認識器14は2つのプロセッサ、すなわち認識プロセッ
サ18とリンク・トレースバック・プロセッサ20とを用い
て実現することができる。認識プロセッサ18はテンプレ
ート合致、文法、制御、およびリンク・トレースバック
・プロセッサ20との通信のすべてを処理する。リンク・
トレースバック・プロセッサ20はリンク・テーブル用メ
モリを維持する(maintain)のに使用される。この機能
は連続音声を入力しながら可能なテンプレート合致を記
録すること、関連情報をリンク・テーブル用メモリ16に
格納すること、リンク・テーブル用メモリ16のスペース
を他の情報のため自由にすること、および入力音声が特
定されるにつれて認識結果を出力することを含む。認識
プロセッサ18とリンク・トレースバック・プロセッサ20
との機能は1つのプロセッサに組合せたり、あるいは、
図示のように分離することができ、これにより認識プロ
セッサ18を音響学、音声および信号処理に関するIEEE国
際会議議事録pp.899〜902(1982年)のJ.Bridle、M.Bro
wn、およびR.Chamberlainの「接続単語認識のアルゴリ
ズム」に詳細に説明されているように実現することがで
きる。リンク・トレースバック・プロセッサは、本発明
にしたがって使用するときは、モトローラのMC6801のよ
うな8ビットのプロセッサを用いて実現することができ
る。 文法のモデル化 今度は第2図を参照すると、システムが認識すること
ができるすべての可能な単語シーケンスを示す簡略化し
た認識文法モデルが示されている。このモデルは示され
ている語彙が、例示の目的で、一般的に必要なものか
ら、ひどく限定されているので、「簡略化した」と言
う。第2図には、各々が2語から成る6つの可能な単語
ストリングが存在する(第3図で更に説明する)。典型
的な音声認識システムでは、文法モデルは各々が数語を
含む一層多くの可能な単語ストリングを備えることがで
きる。文法モデルのトポロジー(topology)は、ポイン
タがテンプレート・メモリ内の対応するテンプレートを
指している状態で一般メモリに格納される。文法モデル
内の各ノードは、それと関連して、一般メモリに格納さ
れている、テンプレート合致が始まるノードを指すポイ
ンタとその関連する累積距離とを備えている。 文法パスのモデル化 第3図において、第2図からの6つの可能な単語スト
リングの各々がトリー図に列挙されている。3つの可能
な第1語、「ONE」(ワン)、「TWO」(トゥー)、およ
び「THREE」(スリー)が存在する。各可能な第1語に
は2つの可能な第2語「FOUR」(フォー)および「FIV
E」(ファイブ)が続く。テンプレート合致の期間中、
すなわち、入力フレームがあらかじめ格納した単語テン
プレートと比較されている間、認識プロセッサは可能な
「単語終端」を認識する。可能な「単語終端」は一連の
入力フレームが単語テンプレートと合致する可能性があ
れば見つかる。特定された単語テンプレートは、先に述
べたリンク・テーブルに格納されているリンク情報と、
処理されている一連の入力フレームとノードに導くテン
プレートとの間の類似性の尺度を示す累積距離とを通し
てトリー図に付加される。たとえば、第2図および第3
図の語彙ストリングの可能性を与えて、入力フレームの
シーケンスが単語「TWO」と合致する可能性があるもの
として特定されると、「TWO」が始めのノード、すなわ
ちノード24からトリー図に付加される。第3図は別のフ
レームが入力され処理されてから、単語「ONE」が可能
性のある合致となったことを示している。したがって、
これは次にノード24でトリー図にも付加される。次に単
語「THREE」がトリー図に付加され、次いで「FOUR」が
ノード26に付加され、その後同じノードに「FIVE」が付
加され、以下同様となる。これは各可能性ある合致テン
プレートが早晩特定されるにつれてこれをトリー図に付
加しながら続けられる。 「トリー・ノード」と言う言葉、あるいはトリー図中
のノードへの参照はリンク・レコード(link(ed) rec
ord)という言葉と相互に交換可能に使用することにす
る。一般に、リンク・レコードはトリー図中の接続を規
定するメモリに格納されているデータ集合体(date se
t)であり、特定のトリー・ノードの特定とトリー・ト
ポロジー内の前のノードとの関係とを含む。 単語の終端の可能性があるフレームごとに、新しいエ
ントリー、またはリンク・レコードが代表的トリー図中
のリンクに対応するリンク・テーブルに追加される。き
わめて頻繁に、典型的には状態図の形で(状態を表わ
す)一連のフレームとして表わされている単語テンプレ
ートに、入力フレームが処理されるにつれて、単語の終
端である可能性が複数現われることになる。単語の終端
の可能性が検出されるごとに、対応するテンプレートが
新しいリンクとしてトリーに追加される。更に、各テン
プレートの各状態は、現在の入力フレームを通して処理
された蓄積距離と、そのテンプレートに対するデコーデ
ィングが始まるトリーのリンクに対応するリンク・テー
ブルのリンク・レコードを指すリンク・ポインタとを記
録している。テンプレート合致に関するこれ以上の事項
については、上述の「接続単語認識のアルゴリズム」を
参考にすることができる。 残念ながら、語彙が大きいと、トリーに絶えず付加す
るテンプレートから問題が生ずる。第1に、これによっ
て認識応答時間が遅れる。入力フレームのシーケンスが
長くなるほど、オペレータは、システムが認識しその認
識した単語に対して処理を行うまで待たなければならな
い時間が長くなる。 第2に、テンプレートを絶えず追加するにはトリー図
の情報をリンクするための多大なメモリが必要である。
文法モデルが複雑でかつ各可能性のある単語に対して、
いくつかの可能性のある単語終端フレームが、合致する
場合、リンク・テーブル(トリー)に必要なメモリは非
常に急速な割合で大きくなる。大きくなる割合が大きす
ぎれば、メモリの所要条件は非実用的となる。 本発明はリンク・テーブルを独特な構成とし、かつこ
れを非常に効率的に維持することにより、これらの問題
を克服している。 リンク・テーブル リンク・テーブルは、第2図と同様のトリー・ネット
ワークの形に合うように、考察中の可能性のある単語シ
ーケンスのすべてを表わすものである。単語シーケンス
は、事実、テンプレート合致期間中に検出された可能な
単語終端を有する連結されたテンプレートである。この
ような方法でネットワークを設定することにより明白に
すべての可能性のある単語シーケンスの部分であるこれ
らのリンクを分析することができる。この分析プロセス
をトレースバック(traceback)と言う。適格に利用す
れば、トレースバックにより、もはや明らかになお考察
中のシーケンスの一部ではなくなっているリンク・レコ
ードを解放する効率的な方法が可能となる。 トリー図の各リンク、あるいはノード式トリー接続に
は数種類の情報を格納しておかなければならない。この
情報は第1図のリンク・テーブル16のメモリのL−AC
T、L−FWRD、L−BACK、L−WORD、およびL−PTRのア
レイに格納される。この実施例では、各アレイは長さが
255バイトで、256バイトのバウンダリから1バイト過ぎ
た位置に配置されて、効率的アクセスができるようにな
っている。各アレイからの対応する要素は「リンク・レ
コード」を構成している。リンク・レコードは2リンク
式リストになるようにチェインされている。1つのリス
トは自由リンク・レコード、すなわち、追加リンクに利
用できる空きレコード・スペースを備えている。第2の
リストは設定したリストであり、現在使用されているリ
ンクのレコードを備えている。これらのリストはL−PT
Rアレイによって互いにチェインされている。この場合
L−PTR内の1つのエントリは、設定リストまたは自由
リストからの、テーブル内の次のリンク・レコードを示
しており、各レコードは各5つのアレイからの1バイト
を含んでいる。たとえば、設定リスト内の所定のリンク
・レコードについて、L−PTRアレイの対応するバイト
が数「2」の2進表現を含んでいれば、設定リスト内の
次のレコードは5つのアレイすべての第2バイト目に存
在することになる。L−PTRアレイの「0」エントリは
リンク式リストの終端を画定している。 L−BACKアレイとL−WORDアレイとは実際のリンク情
報を備えている。L−BACKはデコード・パス内の前のリ
ンク、すなわち、トリー図の前のノードを指すポインタ
を備えており、一方、L−WORDは現行リンクの終りにデ
コードされた単語を表わす記号を備えている。たとえ
ば、第3図において、トリー・ノード26に単語「FOUR」
を付加してから、L−WORDは単語「FOUR」を表わす8ビ
ット記号を備え、L−BACKはトリー・ノード26に対応す
るリンク・レコードを指すポインタを備えることにな
る。その他の2つのアレイ、L−ACTとL−FWRDとはデ
コード・パスを通る「トレースバック」(可能性ある単
語シーケンス)に使用される。L−ACTは合致の可能性
あるものとしてなお考察中のデコード・パスを示すのに
使用され、L−FWRDはトリー図内の後続ノード、すなわ
ちL−BACKの逆、をポイントするのに使用される。今
後、認識される可能性あるパス(アクティブ・パス(ac
tive path)の一部として考察されているとフラグが立
てられたリンク・レコードをアクティブ・リンク・レコ
ードと称することにする。 リンク・レコードはトレースバック情報を示すので、
その状態に到達するのに使用される単語モデルを通るパ
スを確認することができる。トレースバックはトリーか
ら役に立たない情報を切払うこともできる。これは情報
がメモリ内に余分に蓄積されないようにするのに必要で
ある。トレースバックは明瞭に認識されている単語、す
なわちアクティブ・パスすべてに共通な単語を出力する
のに使用することもできる。リンク・テーブルのL−BA
CKエントリはテーブル内の前のエントリを指しており、
これはトリー図内の前に接続したノードに対応する。し
たがって、トレースバックはトリー図を通ってすべての
パスが会合する点、すなわちトリー・ノードまで逆に追
跡する(tracing back)プロセスであると言われる。す
べてのパスが会合する点まで追跡して戻るという概念は
当業者にはよく知られている。というのは「トレースバ
ック」の一般的説明は前掲の「部分的トレースバックお
よび動的プログラミング」を参照して行われるからであ
る。 上述のアレイを後続の図の説明中の参考のため以下に
掲げる。 L−PTR:255バイト。各バイトはトリー図(テーブル)
に設定リストに対する時間の関数として付加された前の
リンク・レコードを指すポインタとして利用できる。ま
た自由リストの自由リンク・レコードをチェインするの
にも使用される。 L−BACK:255バイト。各バイトはトリー図の前のリンク
・レコードを指すポインタとして利用できる。 L−WORD:255バイト。各バイトは現行リンク・レコード
に対応する、可能性のある認識単語を示す記号として利
用できる。 L−ACT:255バイト。各バイトは現行リンク・レコード
がアクティブか否かを示すのに利用することができる
(トレースバック中に使用される)。 L−FWRD:255バイト。各バイトはトリー図中の後続有効
リンク・レコードを示すポインタとして利用できる(ト
レースバック中に使用される)。 上述のアレイの他に、別の5つのポイタが使用され
る。それらは次の通りである。 HEAD:L−PTRアレイによってチェインされた、設定リス
ト内の最初の、すなわち最も最近に追加されたリンク・
レコードを示す1バイトのポインタ。 FREE:L−PTRアレイによってチェインされた、自由リス
トの最初のリンク・レコードを示す1バイトのポイン
タ。 PTR:処理中の現行トリー・ノードを参照する1バイトの
ポインタ。 TMP1とTMP2:それぞれ認識流れ図に使用される1バイト
のテンポラリ(temporary)・ポインタである。 構造的に、設定リスト内に10個のエントリだけを備え
たテーブルを仮定すると、これらのアレイは次のように
配列することができる。 上記テーブルのエントリを付録Aにトリー図で示す。
HEADはレコード#(番号)7を指し、レコード#3のL
−PTRエントリの「0」はリストの最後のレコードを示
すことに注目すべきである。FREEは図示してない。 L−PTRにより、設定リスト内のレコードを、レコー
ドを自由リストから単に取出してそのL−PTRエントリ
にHEADレコードを指示させ、HEADとFREEとを更新するこ
とにより、入れることができる。トレースバック中にレ
コードをテーブルの設定リストから削除すると、そのレ
コードは、レコード・エントリを自由リストにリンク
し、L−PTRエントリを利用して設定リストの除去レコ
ードにわたってリンクすることにより、テーブルを配列
しなおすことなく利用できるようになる。L−ACTおよ
びL−FWRDのエントリはトレースバック中にのみ使用さ
れ、その他の場合は常に0にリセットされている。 認識流れ図 今度は第4a図から第4c図までを参照すると、認識流れ
図が本発明にしたがって示されている。第4a図の流れ図
はリンク・テーブルとその関連ポインタとをリセットす
ることによりブロック30から始まる。リセット手順には
L−FRWDとL−ACTとの各バイトを0に等しくセットす
ること、HEADポインタを1に等しくセットして設定リス
トの始まりを示すこと、およびL−PTR(1)とL−PTR
(255)とを等しく0にセットしてそれぞれ設定リスト
と自由リストとの終りを示すことが含まれる。また、典
型的には一般メモリに格納されているテンプレート状態
メモリがインアクティブ(inactive)にされる。したが
って、第1のレコードは設定リストから構成され、レコ
ード2から255まではL−PTRエントリを使用して自由リ
ストを形成するようにチェインされる。ここでHEADは設
定リストの始まりを指し、FREEは自由リストの始まり
(リンク・レコード#2)を指す。 第4a図のブロック32で、認識文法モデルが初期設定さ
れる。初期設定はモデルの最初のノードをアクティブに
マーキングすることを含む。これはそのノードに低い累
積距離尺度を任意に割当て文法内の始発点を示すことに
より行われる。最初のノードに対するリンク・ポインタ
は1にセットされるが、これはリンク・テーブル内で初
期設定された最初のエントリに対応する。逆に、文法モ
デル内の他のすべてのノードはインアクティブに初期設
定される。ノードに対する累積距離を、処理が始まると
きこのノードで起りそうもないことを示す無限大に等し
くセットすれば、そのノードをインアクティブにセット
することができる。 ブロック34で、トレースバック・カウンタが10に初期
設定される。トレースバック・カウンタはトレースバッ
ク・プロセスを行うべきことを周期的に示すのに使用さ
れる。この実施例では、トレースバックは10個の入力フ
レームが処理されるごとに行われる。 ブロック36で次の入力フレームが先に述べたテンプレ
ート合致のためにシステムに入力される。この流れ図の
残りのステップはすべて現在の入力フレームの処理に関
係する。 トレースバック・カウンタはブロック38でデクレメン
ト(decrement)してフレームが丁度入力されたことを
示す。 ブロック40で文法モデルのすべてのノードが処理され
たか否かを確認する試験が行われる。換言すれば、入力
フレームが文法モデル全体について処理されたか否かに
ついてである。文法モデルのすべてのノードが処理され
てしまっていれば、流れはブロック42に進んでトレース
バック・カウンタがトレースバックがこのフレームで行
うべきことを示しているか確認する。もしそうなってい
れば、第6a図から第6d図までの後に説明するトレースバ
ック・サブルーチン44を呼んでトレースバックが行われ
る。トレースバックに続き、ブロック36で次の入力フレ
ームを処理する前に、ブロック46でトレースバック・カ
ウンタがリセットされる。 文法モデルのノードがすべては処理されてしまってい
なければ、流れは第4a図のブロック40から第4b図のブロ
ック50に進む。ブロック50で、認識文法モデルの処理が
次のノードまで進む。このフレームについてノードが処
理されていなければ、「次のノード」は文法モデルの最
初のノードである。今後、ブロック50で、「次のノー
ド」とは丁度処理されたばかりのノードに続くノードま
たはそれと平行なノードを指す。特に、処理のためのノ
ードの順序は、そのノードで終るすべてのテンプレート
に対する始発ノードが現行フレームに対して処理されて
しまうまで、ノードが処理されないようになっていなけ
ればならない。これはノード累積距離とリンクとがテン
プレートの始発ノードについて、これらのテンプレート
が処理される前に確実に更新されるようにするためであ
る。 ブロック52で、新しいノードがインアクティブにセッ
トされる。これはそのノードに関する累積距離を無限大
に等しくセットすることにより行われる。 ブロック54でこのノードで終るすべてのテンプレート
が処理されてしまったか否かを確認する試験が行われ
る。その後文法モデルの各ノードの直ぐ前の各テンプレ
ートが他のノードに進む前に処理されることが認識され
る。このノードで終るテンプレートのすべてが処理され
てしまうと、流れは後に説明する第4c図のブロック68に
進む。すべてのテンプレートがまだ処理されていなけれ
ば、流れはブロック56に進み、現在の入力フレームに対
して、トレースバックが必要であるか確認する。したが
ってトレースバック・カウンタが0と比較される。 この時点で、これまで認識流れ図で示された認識文法
モデルの処理を要約するのが有用であろう。もう一度第
2図を参照すると、文法モデルの初期ノード22がアクテ
ィブにセットされ、対応するリンク・テーブル・エント
リが可能性のあるすべての文法パス(トリーの枝)が発
生する基準を示すように初期設定される。入力フレーム
が処理されるごとに、文法モデルは1度に1ノードずつ
始発ノードから終了ノードまで進む。更に、文法モデル
の各ノードに対して、そのノードで終る各テンプレート
が、後に説明するように、1度に1つのテンプレートを
処理する。したがって、各入力フレームごとに、各ノー
ドが処理され、各ノードごとに、そのノードで終る各テ
ンプレートが処理される。 ブロック56で示したように、トレースバックが必要で
あるか否かに無関係に、次のテンプレートがブロック58
かブロック60かで処理される。いずれかのブロックでテ
ンプレートが合致すると、現行入力フレーム、テンプレ
ート、およびテンプレートのあらゆる状態に対する累積
距離およびリンク・ポインタの他に文法モデルの始発ノ
ードに対する累積距離およびリンク・ポインタに基づい
て、テンプレートのあらゆる状態に対する累積距離とリ
ンク・ポインタとが更新される。現在のフレームのこの
テンプレートに対して単語終端である可能性が存在すれ
ば、可能性ある単語終端に対応する累積距離とリンク・
ポインタとが発生する。前掲のIEEE国際会議議事録「接
続単語認識のアルゴリズム」を参照。 流れがブロック56からブロック60に進み、トレースバ
ックが、上述のテンプレート処理の他に、このフレーム
を処理していることを示すと、そのテンプレート内の各
アクティブ状態に対するリンク・ポインタが指すリンク
・レコードに対応するL−ACTエントリのすべてが非ゼ
ロにセットされる。「アクティブ」テンプレート状態は
有限累積距離を有するものである。 次に流れはブロック62に進み、ここでそのテンプレー
トに関連する累積距離がこのフレームに対するノードで
終る先に処理された最良のテンプレート(これはこれが
このノードに対して処理された最初のテンプレートであ
る場合には無限大になる)に対応する現行累積距離より
良いか否かを確認する試験が行われる。この試験の結果
は現在の入力フレームのテンプレート合致が単語テンプ
レートの単語終端である可能性があることを示す場合に
のみ真である。先に述べたとおり、単語終端である可能
性があれば入力フレームのシーケンスがテンプレート・
メモリに格納されている単語テンプレートと対応する、
すなわち合致することを示す。 テンプレートに現在の入力フレームに対して単語終端
の可能性がなければ、その関連の累積距離は無限にな
る。 最も最近に処理されたテンプレートにそのノードに関
して格納されている前の累積距離より良い累積距離がな
いことがわかれば流れはブロック54に戻り、ここでその
ノードで終る別のテンプレートが処理される。 最も最近処理されたテンプレートに対する累積距離が
そのノードに関して今まで処理されたものの中で最良で
あることがわかれば、流れはブロック64に進んでこの情
報を記録する。ブロック64で、上で処理されたテンプレ
ートに対応する累積距離とリンク・ポインタとが文法モ
デルのノードとして記録される。他に、テンプレートを
表わす単語番号、あるいは記号が記録される。単語番号
は、後に認識されたと確認されれば単語を引続き出力す
るために記録される。ブロック64から、流れは上に説明
したようにブロック54に進む。 ブロック54で、そのノードで終るすべてのテンプレー
トが処理されたことが示されれば、流れは第4c図のブロ
ック68に進む。第4c図で、ブロック68から74まではリン
ク・レコードをトリーに加えるべかき否かを確認し、も
し加えるべきである場合には、リンク・レコードがリン
ク・アレイを通してトリーに加えられる。 ブロック68で、文法モデルのノードがアクティブであ
るか確認する試験が行われる。ノードがアクティブにな
っていることができる唯一の態様は、そのノードに対し
て処理された少なくとも1つの単語テンプレートが現在
の入力フレームに対して単語終端である可能性がある場
合である。ノードがインアクティブである場合には、流
れは第4a図のブロック40に進み、現在フレームに対して
処理する他のノードを探す。それ以外の場合は、流れは
ブロック70に進む。 ブロック70で、そのノードで終る最良テンプレートが
単語テンプレートであったか否かを確認する試験が行わ
れる。ある例では、無音テンプレートのような別種のテ
ンプレートであってもよく、この場合には流れは第4a図
のブロック40に進む。無音テンプレートは、典型的には
認識されているような無音を出力する必要がないから、
トリーには加えられない。そのノードで終る最良のテン
プレートが単語テンプレートであった場合には、LINKサ
ブルーチン(第5図)が呼出されてリンク・レコードを
トリー図に加える。そのテンプレートの始発リンク・レ
コードに対応するリンク・ポインタとテンプレートを表
わす単語番号とを示すパラメータはLINKサブルーチンに
送られる。 以下に説明するように、リンク・レコードが加えられ
てから、新しいリンク・ポインタがLINKから戻される。
ブロック74で、文法モデルの現行ノードに対するリンク
・ポインタがLINKから送られたリンク・ポインタにセッ
トされる。 ブロック74に続いて、流れは第4a図のブロック40に進
み、文法トリーのすべてのノードが現在の入力フレーム
に対して処理されてしまったかチェックする。 リンクのトリーへの付加 今度は第5図を参照すると、先に説明したようにこの
サブルーチンはリンク・レコードをリンク・アレイで規
定されたようにトリー図に追加する。サブルーチンに送
られるパラメータはそこから加えられるトリーのノード
に対応する単語番号とリンク・ポインタとである。 ブロック78で、自由リンク・レコードが存在するか否
かを確認する試験が行われる。これはFREEと0とを比較
することにより行われる。FREEが0に等しければ、もは
や自由リンク・レコードは存在しない。上に説明した
が、リンク・アレイ内のレコードは、L−PTRアレイで
互いにチェインされており、自由リンク・レコードと設
定リンク・レコードとから構成されている。自由リンク
・レコードは別のリンク・レコードをトリー図に追加で
きるようにする。したがって、自由リンク・レコードが
存在しなければ、すべてのリンク・レコードは使用され
ており、流れはブロック80に進んでエラーが報告され、
システムがリセットされる。ブロック80のこのステップ
はリンク・テーブルをオーバフローさせるおそれのある
異常状態から保護するときにのみ使用することに注意す
べきである。正常状態では、本発明は適当な長さのリン
ク・テーブルを使用して自由リンク・レコードがなくな
らないようにしている。 1つ以上の自由リンク・レコードがあれば、流れはブ
ロック82に進み、次の利用可能なリンク・レコードが自
由リストから取出され、HEADおよびFREEのポインタを更
新することにより設定リストの最上部、すなわち始まり
に挿入される。FREEは次の自由レコードのインデックス
(index)を指すようにセットされ、HEADは丁度加えら
れたばかりのリンク・レコードを指すようにセットされ
る。新しいHEADリンク・レコードのL−PTRは新しいレ
コードを設定リストにチェインする、前のHEADリンク・
レコードを指すようにセットされる。 ブロック86では、HEADは設定リストに丁度加えられた
ばかりのリンク・レコードを指すので、このサブルーチ
ンに送られた単語番号がL−WORDアレイに新しいレコー
ドとして記録される。また、このサブルーチンに送られ
たリンク・ポインタはL−BACKアレイにリンク・レコー
ドとして記録される。 ブロック88で現在の入力フレームにトレースバックが
必要であるか否かを確認する試験が行われる。必要であ
れば、流れはブロック90に進み、新しく加えられたリン
ク・レコードにアクティブの印が付く。これはそのレコ
ードのL−ACTアレイを1に等しくセットすることによ
り行われる。現在の入力フレームに対してトレースバッ
クが必要でなければ、サブルーチンは終り、流れは第4c
図のブロック74に戻る。 トリーを通るトレーシング・バック 今度は第6a図から第6d図までを参照すると、トレース
バック・サブルーチン、すなわち、第4a図のブロック44
が詳細に示されている。トレースバック・サブルーチン
はトリー図を通して可能性のある合致として特定されて
いる単語を探し、合致の一義性(uniqueness)にあいま
いさ(ambiguity)があるか否か確認する。一義的に特
定されている単語は認識システムから認識された単語と
して出力される。更に、トレースバック・サブルーチン
は死んだすべてのリンク・レコード、すなわち、もはや
可能性ある合致として考察していないレコードを自由リ
ストに取出し、メモリを将来のリンク・レコードに利用
できるようにする。トレースバックに入る前に、L−AC
Tが上述のようにすべてのアクティブ・リンク・レコー
ドに対してセットされる、すなわちフラグが掲げられ
る。トレースバックのはじめに、アクティブ・リンク・
レコードはトリーを通るまだ考察中のすべてのパスの終
りを表わす。トレースバックの基本概念はトリーを通し
てすべてのアクティブ・パスの終り(はじめにL−ACT
アレイにより印がつけられている)から「トレースバッ
クしてすべてのアクティブ・パスがどこで会合するかを
見つけることである。すべてのアクティブ・パスに共通
なトレーの部分は明確な部分パスを表わしており、この
明確な部分パスに対応するこれらの単語は認識されてい
るとして出力することができる。トレースバック中、L
−FWRDアレイは部分パスを順方向に(トリーの終りの方
に向って)チェインするのに使用される。これら部分パ
スが形成されるにつれて各部分パスの基本ノードがL−
ACTアレイを経由してアクティブとされる。部分パスを
(L−BACK情報を使用して)現行ノードから既にアクテ
ィブと記されている前のノードに拡張しようとすると、
1つ以上の可能なパスがこの前のノードから発生して両
ノードからの部分パスが削除される(順方向ポインタ・
チェイン(L−FWRD)が0にリセットする)。アクティ
ブと記されているすべてのノードはこのような仕方で処
理される。ノード処理の順序はリンク・レコードがリン
ク・テーブルに追加された時間の順序とは反対の順序で
ある。この順序は設定リストの構造に固有のものであ
る。処理される最後のノードはトリーのルート(root)
・ノードである。この点でそのノードから出る順方向チ
ェイン(部分パス)は明確な部分パスを表わしており、
対応する認識された単語が出力される。トレースバック
手順はまたL−FWRDおよびL−ACTアレイが0へのリセ
ットを完了したら直ちにそれ自身「掃除する(cleans u
p)」。更に、アクティブ・パス上にないすべてのリン
ク・レコードは、既に出力されている明確な部分パス上
のリンク・レコードとともに、自由リストに戻される。 トレースバック・サブルーチンを詳細に説明する前
に、図示例に入るのが役に立つであろう。第7図を参照
すると、このような例が一連のトリー図AからIまでと
して描かれている。 図Aでは、トリーはトレースバックの前に示されてお
り、アクティブ・リンク・レコード、すなわち、アクテ
ィブ単語リンクが出ているリンクはリンクの右側に太い
点で記してある。トレースバックの第1のステップは丁
度良い時期に加えられた最も最近のアクティブ・リンク
・レコード、この場合は25と記したノード、を確定する
ことである。トリーのこのノードの直前にアクティブ・
ノードが存在するか確認する試験が行われる。存在すれ
ば、この例でノード25を経由するかまたはノード21を経
由するというように、どのパスがノード21に戻るかに関
してあいまいさが存在する。あいまいさが生ずるとあい
まいなノードに対する順方向ポインタがそのチェインさ
れた順方向ポインタを、もし存在すれば、取除く。これ
は各後続のリンク・レコードに対してL−FWRDアレイに
0を挿入することによって行われる。この例では、どの
ノードにも順方向ポインタがない。すなわちL−FWRD=
0である。 次の最も最近加えられたアクティブ・リンク・レコー
ドが特定される(ノード24)。ノード24の先行リンクも
ノード21であり、上述のノード25の処理と同様に処理さ
れる。 次の最も最近加えられたアクティブ・ノードはノード
23である。このノードにはアクティブな先行ノードがな
いので、トレースバック・プロセスは先行ノードをアク
ティブとし、現在処理しているノード、ノード23、に等
しい、先行ノード、ノード19、の順方向ポインタ(L−
FWRD)を記録する。図Bはノード23を処理した後の図A
を示しており、ノード19に加えられた順方向ポインタを
太線で描いてある。各ノードが処理されたら、それがア
クティブ・ノードであることを示しているそのL−ACT
エントリが取除かれる。したがって、トリー図Bはもは
やノード23、24、および25をアクティブと描いていな
い。 ノード22はアクティブ・ノードを備えている、次に最
も最近加えられたエントリである。これにはアクティブ
な先行ノードがない。したがって、ノード23に対して行
ったように、ノード18の順方向ポインタがノード22に等
しくセットされ、ノード18にアクティブの印が付けられ
る。図Cはノード22を処理した後のトリーを示す。 ノード21は、図Dに示すように、その先行ノードがア
クティブでないので、ノード22と同様に処理される。 ノード20は次に処理されるべきアクティブ・ノードで
ある。ノード20に先行するノードはアクティブであり、
これはあいまいさを示す。あいまいさが生ずると、あい
まいさのノード、この場合ノード18と20、に対する順方
向ポインタはその順方向ポインタ・チェインが解かれ
る。この例ではノード18にだけ順方向ポインタがある。
ノード18の後に太線で示したように、ノード18に対する
順方向ポインタはノード22と等しくセットされている。
したがって、図Eで、ノード18の順方向ポインタを0に
等しくセットすることにより、太線が除去される。 ノード19は次に最も最近加えられた、アクティブ・ノ
ードを備えているエントリである。その先行ノードはア
クティブであるから、図Fに示すように、あいまいさに
よって両ノード16および19に対する順方向ポインタ・チ
ェインを外さなければならない。 ノード18が次に処理される。その先行ノード、16、は
アクティブであるが、ノード16または18はいずれも順方
向ポインタを備えていないので、ノードのアクティビテ
ィを示す太い点を除去すること以外何らの処置も取られ
ない。 次にアクティブ・ノードはノード16であり、これの先
行ノードはアクティブでない。この場合には、トレース
バック・プロセスは先行ノードをアクティブとし、現在
処理されているノード、ノード16、に等しい。先行ノー
ド、ノード13、に対する順方向ポインタを記録する。図
Gはノード16を処理した後のトリー図Aを示す。 ノード13はノード16と同様に処理される。したがっ
て、図Hではトリーはノード11だけをアクティブと記し
て示してあり、ノード11と13とに対する順方向ポインタ
だけが残っている。 一旦トレースバック・プロセスが、先行する他のノー
ドが無いトリーのルート・ノード(ノード11)に到達す
れば、順方向ポインタを通してチェインした単語を認識
単語として出力する。これはチェインされた順方向ポイ
ンタを備えているリンク・レコードをL−FWRD内でルー
ト・ノードから出発して引続き探すことにより行われ
る。図Iで示すように、そのそれぞれのL−WORDアレイ
に「eight」および「five」を記録するリンク・レコー
ドを出力する。その他、図Hで、ノード11と16との間の
リンクを表わすリンク・レコードが設定リストから除去
され、L−PTRアレイおよびFREEポインタで示したよう
に、自由リストにリンクされる。この時点でのトリーの
新しいルート・ノードはノード16である。残りのトリー
は図Iに示してあり、これは別の入力フレームが処理さ
れるとき、すなわち、流れが認識流れ図の第4a図のブロ
ック46に戻る場合に使用される。 今度は第6a〜6d図を参照してトレースバック流れ図を
詳細に説明することにする。第6a図で、リンク・テーブ
ルから最も最近加えられたアクティブであるリンク・レ
コードを探す。ブロック94で、リンク・テーブルの最初
のレコードが設定レコード・リスト内の唯一のレコード
であるか否かを確認する試験が行われる。これはHEADに
より指示されているL−PTRアレイのインデックスを探
すことによって行われる。前述のとおり、HEADは最も最
近加えられたリンク・レコードのインデックスを備えて
いる。HEADに対応するL−PTRエントリが0に等しけれ
ば、チェインは終結し、テーブルの中には他にレコード
がない。この場合には、流れはブロック96に進み、対応
するL−ACTエントリがインアクティブに設定される。
ブロック96から、サブルーチンは認識流れ図の第4a図の
ブロック46に戻る。 テーブルの中に別のリンク・レコードが存在する場合
には、ブロック98で最初のリンク・レコードがアクティ
ブであるか認識する試験が行われる。その対応するL−
ACTエントリが0に等しくなければリンク・レコードは
アクティブである。 リンク・レコードがアクティブであれば、流れはブロ
ック100に進む。ブロック100で、リンク・レコードが既
に考慮に入れられてしまっていることを示すには、リン
ク・レコードをインアクティブに設定する。次に流れは
ブロック110に進み、HEADで指示されたレコードがテン
ポラリ・ポインタPTRに格納される。ブロック110から、
流れは、引続き説明するが、ブロック120に進む。 最初のリンク・レコードがインアクティブに戻ってし
まえば、流れはブロック98からブロック112に進む。ブ
ロック112で、L−PTRはアクティブ・リンク・レコード
が見つかるまで動き回り、アクティブ・リンク・レコー
ドが見つかると、そのアクティブ・レコードに対するイ
ンデックスがPTRに格納される。ブロック114で、アクテ
ィブのインジケータがクリアされ、ブロック100で行っ
たと同様に、そのリンク・レコードに対する処理を示
す。 ブロック116で、ポインタHEADとPTRとの間で示された
ように、インアクティブであるとわかったリンク・レコ
ードが将来の使用のため自由リストに戻される。 ブロック118で、リンク・テーブル内に更にリンクが
あるか確認する試験が行われる。この試験は上のブロッ
ク94で行われた試験と同じである。 設定リスト内にもはやリンク・レコードが存在しなけ
れば、サブルーチンは認識流れ図に第4a図のブロック46
で戻る。 ブロック120で現行リンクに先行するリンク(ノー
ド)がインアクティブであるか否かを確認する試験が行
われる。これは現行リンク・レコードのバック・ポイン
タを探し、その対応するL−ACTエントリを探すことに
より行われる。先行ノードがアクティブであれば、流れ
は第6b図のブロック124に進み、先に説明したあいまい
さの問題を処理する。先行ノードがインアクティブであ
れば、流れは第6c図のブロック142に進む。 今度は第6b図を参照すると、ここのステップは、先行
ノードがなお合致について考察中のノードから発生する
2つ以上のリンク・レコードがある可能性のあることを
示しているとき、あいまいさを処理する。この状態はア
クティブ・ノードに先行するノードもアクティブである
ときに起る。リンク・レコード・データを操作するため
第6b図で3つのテンポラリ・ポインタ(TMP1,TMP2およ
びPTR)を使用する。ブロック121のステップは順方向ポ
インタ・チェインを前のリンクから取外す。このステッ
プにはブロック124、126、128、および130が含まれてい
る。第6b図にはPTRが現在処理されているノード、ある
いはリンク・レコードを指示した状態で入る。リンク・
レコードに対応するL−BACKエントリは、第7図により
上述したように、現在処理されているノードの直前のノ
ードを指している。リンク・レコードに関連するL−FW
RDエントリは可能性のある子孫リンク・レコードだけを
指示する。 ブロック124で、現行アクティブ・ノードの直前のノ
ードを指すポインタがTMP1に格納される。ブロック126
で、先行ノードの、L−FWRDにより指示された子孫リン
ク・レコードがTMP2に格納される。 ブロック128で、TMP2で指示されたノードが実際のL
−FWRDエントリを備えているか、あるいはそれが0にセ
ットされているかを確認する試験が行われる。TMP2で指
示されたノードが順方向ポインタを備えていれば(L−
FWRDが0に等しくなければ)、流れはブロック130に進
み、そのノードに対する順方向ポインタが除去される。
ブロック130で、TMP2の内容もTMP1に移動し、これによ
り現行ノードの参照が一時点にTMP2により指示されてい
るノードに移動し、次いで、ブロック126から始まっ
て、上記のステップが後続のノードに対して、順方向チ
ェイン内に、ブロック128で示したように、順方向チェ
イン終りを示す順方向ポインタを持たないノードが見つ
かるまで、繰返される。 ブロック122のステップは、PTRで示されているよう
に、現行リンクから順方向ポインタ・チェインを除去す
る。ブロック132で、現行リンク・レコード・ポインタP
TRがTMP1に格納される。ブロック134で、そのリンク・
レコードに対するL−FWRDエントリがTMP2に格納され
る。ブロック136で、上のブロック128で行われたよう
に、このリンク・レコードに対する順方向ポインタが存
在するか確認する試験が行われる。このリンク・レコー
ドに対する順方向ポインタが存在すれば、流れはブロッ
ク138に進み、ここで順方向ポインタが除去され、子孫
ノードが、その順方向ポインタをも同様に除去するた
め、TMP1に格納される。ブロック134から始めて、上の
ステップは、現行ノードからチェインされている順方向
ポインタがすべて削除されるまで繰返される。次に、ブ
ロック136から、流れは第6c図のブロック144に進み、次
のアクティブ・リンク・レコードを処理する。 第6a図のブロック120に戻って参照すると、現行ノー
ドに先行するノードがインアクティブである場合には、
流れは第6c図のブロック142に進む。これについて説明
する。 第6c図のブロック142では、先行ノード(リンク・レ
コード)がインアクティブであるとわかっているので、
このノードがアクティブにセットされ、その順方向ポイ
ンタが現行リンク・レコードを指すようにセットされ
る。ブロック144で、現行リンク・レコードから始め
て、次のアクティブ・リンク・レコードが見つかり、PT
Rがこのレコードを指すようにセットされ、新しい現行
リンクレコードを示すようになるまでテーブルが捜索さ
れる。ブロック146で、ブロック144のステップ中に遭遇
したすべてのインアクティブ・レコードが、L−PTRア
レイ中の適切なエントリを修正することにより、自由リ
ストに戻される。ブロック148で、新しいノードがイン
アクティブにセットされて、第6a図のブロック100およ
び114で行われたと同様に、そのノードが既に考慮に入
れられていることを示す。 ブロック152でこの新しいリンク・レコードがチェイ
ンの最後であるか否かを確認する試験が行われる。最後
である場合には、すべてのリンク・レコードが処理され
てしまっており、流れは第6d図のブロック156に進んで
トレースバック・プロセス中に認識された単語を出力す
る。この新しいリンク・レコードがチェインの最後でな
ければ、流れは更に処理するため第6a図のブロック120
に進む。 今度は第6d図を参照すると、ブロック156で現行リン
ク・レコードのインデックスが、これはトリーのルート
・ノードであるが、TMP1に格納される。ブロック158
で、現行ノードの順方向ポインタによって表わされてい
るノード(リンク・レコード)がTMP2に格納される。た
とえば、第7図の図Hを参照すると、TMP1は11(ノード
11)を含んでおり、TMP2は13(ノード13)を含んでい
る。 ブロック160で、TMP1に格納されているノードからの
子孫となる順方向ポインタが存在するか確認する試験が
行われる。これはTMP2の内容と0とを比較して行われ
る。もしTMP1に格納されているノードからの子孫となる
ある順方向ポインタが存在すれば、流れはブロック162
に進み、現行ノードに対する順方向ポインタが除去さ
れ、現行ノードが、TMP2に格納されている現行ノードの
順方向ポインタによって示されているように、順方向チ
ェイン内の次のノードまで持ち上げられる。ブロック16
4で、現行リンク・レコードに関連する単語が認識され
た単語として出力される。ブロック158から始まって、
上記のステップは、順方向ポインタ・チェインの各リン
ク・レコードが、認識された単語としてその関連単語を
備えるようになるまで、繰返される。ブロック160での
ステップ中、順方向ポインタを備えていない子孫リンク
・レコードが見つかるが、この場合には、流れはブロッ
ク168に進み、TMP1およびPTRの間に示されているよう
に、すべての死んだリンク・レコードが自由リストに戻
される。その他に、ブロック168でL−PTRアレイがPTR
により現在指示されている新しい基底(base)ノードに
対するL−PTRエントリを0にセットすることにより更
新される。このレコード内の0はトリーのルート(roo
t)とリンク・レコードの設定リストの終りとを示す。
ブロック168で、トレースバックは完了し、流れは第4a
図のブロック46に進む。 本発明はしたがって連続音声認識のための新しいかつ
改良されたシステムと方法とを提供する。本発明は効率
的に様式化した上述の流れ図により説明したように簡単
かつ安価な8ビットのプロセッサで実時間認識を行うよ
うに簡単に実現することができる。本発明は更に入力フ
レームを処理するとき最小限の数のリンク・レコードだ
けを格納すればよいようなすぐれたメモリ管理法を提供
する。 本発明について特に好ましい実施例を参照して図示
し、説明したが、当業者には上述の本発明に対しその精
神および範囲を逸脱することなく各種修正および変更を
行い得ることが理解されるであろう。
Claims (1)
- (57)【特許請求の範囲】 1.メモリに格納された文法モデルを使用する音声認識
方法であって、 (a)リンク・テーブルおよびテンプレート状態メモリ
をリセットする段階(30)、 (b)前記文法モデルを初期化する段階であって、 (c)トレースバック・カウンタを初期化する段階(3
4)を含むもの、 (d)入力フレームを読み取る段階(36)、 (e)これに応じて、前記トレースバック・カウンタを
減分する段階(38)、 (f)もし前記文法モデルの全てのノードが処理されて
いなければ(40)、 (f1)次のノードを選択する段階(50)、 (f2)次のノードをインアクティブにセットする段階
(52)、 (f3)もし次のノードで終了する全てのテンプレートが
処理されていなければ(54)、 (f4)次のテンプレートを処理し(56),(60)かつ、
もし前記トレースバック・カウンタが所定の値を有して
いれば、次のテンプレートにおける各々のアクティブ状
態に対するリンクテーブルのエントリをアクティブにセ
ットする段階(60)、 (f5)次のテンプレートに対する累積距離が最良の前に
処理されたテンプレートに対する累積距離を超えている
か否かを判定する段階(62)、 (f6)もし次のテンプレートに対する累積距離が最良の
前に処理されたテンプレートに対する累積距離を超えて
いれば、次のテンプレートに対する累積距離を次のノー
ドに対する累積距離として格納する段階(64)、 (f7)前記段階(f3),(f4),(f5)および(f6)を
前記次のノードで終了する全てのテンプレートが処理さ
れるまで反復する段階、 (g)もし次のノードで終了する全てのテンプレートが
処理されれば(54)、 (g1)もし次のノードがアクティブであれば(68)、そ
して (g2)もし次のノードで終了する最良のテンプレートが
単語テンプレートであれば(70)、 (g3)リンクテーブルにリンクレコードを加える段階
(72)、 (h)もし前記文法モデルの全てのノードが処理されれ
ば、前記トレースバック・カウンタが所定の値を有する
か否かを判定する段階(42)、 (i)もし前記トレースバック・カウンタが前記所定の
値を有していなければ、次の入力フレームを読み取る段
階(36)、 (j)もし前記トレースバック・カウンタが前記所定の
値を有していれば、ネットワークを通してトレースバッ
クを行なう段階、 を具備し、前記トレースバックを行なう段階は以下の
(j1)〜(j17)、すなわち (j1)もしリンク・レコードがアクティブであれば(9
8)、最初のリンク・レコードをインアクティブにセッ
トし(100)かつポインタを向け直す段階(110)、 (j2)もし第1のリンク・レコードがアクティブでなけ
れば、最初のアクティブなリンク・レコードを現行のリ
ンク・レコードと判定しかつ前記ポインタを向け直す段
階(112)、 (j3)現行のリンク・レコードをインアクティブにセッ
トする段階(114)、 (j4)インアクティブなリンク・レコードを自由レコー
ドのリストに戻す段階(118)、 (j5)もし先行ノードがアクティブでありあいまいさを
示していれば(120)、 (j6)前記先行ノードから順方向ポインタ・チェインを
除去する段階(121)、そして (j7)現行のリンク・レコードから順方向ポインタ・チ
ェインを除去する段階(122)、 (j8)もし先行ノードがインアクティブであれば(12
0)、 (j9)先行ノードをアクティブにセットする段階(14
2)、そして (j10)前記現行のリンク・レコードから前記順方向ポ
インタ・チェインをアクティブとしてセットする段階
(142)、 (j11)前記新しい現行のリンク・レコードとして次の
アクティブ・リンク・レコードを探す段階(144)、 (j12)インアクティブなリンク・レコードを前記自由
レコードのリストに戻す段階(146)、 (j13)前記新しい現行のリンク・レコードをインアク
ティブにセットする段階(148)、 (j14)全てのリンク・レコードが処理されるまで前記
段階(j5)〜(j13)を反復する段階(152)、 (j15)前記現行のリンク・レコードに対するインデク
ス(156)および前記現行のリンク・レコードからの順
方向ポインタ・チェインに対するインデクスを記憶する
段階(158)、 (j16)もし前記現行のリンク・レコードからのいずれ
かの順方向ポインタ・チェインが延びていれば、認識さ
れた単語として前記順方向ポインタ・チェインの各々の
リンク・レコードに関連する各々の単語を提供する段階
(164)、 (j17)前記現行のリンク・レコードから何らの順方向
ポインタ・チェインも延びていなければ、死んだリンク
・レコードを自由レコードのリストに戻し(168)、ト
レースバック・カウンタを再初期化し(46)かつ次の入
力フレームを読み取る段階(36)、 を備えていることを特徴とするメモリに格納された文法
モデルを使用する音声認識方法。 2.前記段階(g3)は、 自由リストから次に利用可能なリンク・レコードを取出
しかつ確立されたリストの始めに次に利用可能なリンク
・レコードを挿入する段階(82)、そして もしトレースバックが現行の入力フレームに対して必要
であれば、次の利用可能なリンク・レコードをアクティ
ブとしてセットする段階、 を具備することを特徴とする請求項1に記載の方法。 3.前記段階(b)は、 (b1)前記文法モデルの最初のノードをアクティブとし
て初期化する段階(32)、そして (b2)前記文法モデルの全ての他のノードをインアクテ
ィブとして初期化する段階(32)、 を具備することを特徴とする請求項1に記載の方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US1986/001224 WO1987007749A1 (en) | 1986-06-02 | 1986-06-02 | Continuous speech recognition system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01502611A JPH01502611A (ja) | 1989-09-07 |
JP2717652B2 true JP2717652B2 (ja) | 1998-02-18 |
Family
ID=22195542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61503471A Expired - Lifetime JP2717652B2 (ja) | 1986-06-02 | 1986-06-02 | 連続音声認識システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US5040127A (ja) |
JP (1) | JP2717652B2 (ja) |
CA (1) | CA1301340C (ja) |
WO (1) | WO1987007749A1 (ja) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3043439B2 (ja) * | 1990-12-28 | 2000-05-22 | 富士通株式会社 | データ処理装置におけるネットワーク記憶方法 |
DE4130631A1 (de) * | 1991-09-14 | 1993-03-18 | Philips Patentverwaltung | Verfahren zum erkennen der gesprochenen woerter in einem sprachsignal |
DE4130633A1 (de) * | 1991-09-14 | 1993-03-18 | Philips Patentverwaltung | Verfahren zum erkennen der gesprochenen woerter in einem sprachsignal |
US6385312B1 (en) | 1993-02-22 | 2002-05-07 | Murex Securities, Ltd. | Automatic routing and information system for telephonic services |
WO1994022131A2 (en) * | 1993-03-25 | 1994-09-29 | British Telecommunications Public Limited Company | Speech recognition with pause detection |
US6230128B1 (en) | 1993-03-31 | 2001-05-08 | British Telecommunications Public Limited Company | Path link passing speech recognition with vocabulary node being capable of simultaneously processing plural path links |
JPH08508583A (ja) * | 1993-03-31 | 1996-09-10 | ブリテイッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー | 接続スピーチ認識 |
AU682380B2 (en) * | 1993-07-13 | 1997-10-02 | Theodore Austin Bordeaux | Multi-language speech recognition system |
JP3004883B2 (ja) * | 1994-10-18 | 2000-01-31 | ケイディディ株式会社 | 終話検出方法及び装置並びに連続音声認識方法及び装置 |
US5970457A (en) | 1995-10-25 | 1999-10-19 | Johns Hopkins University | Voice command and control medical care system |
US5799276A (en) * | 1995-11-07 | 1998-08-25 | Accent Incorporated | Knowledge-based speech recognition system and methods having frame length computed based upon estimated pitch period of vocalic intervals |
US5835893A (en) * | 1996-02-15 | 1998-11-10 | Atr Interpreting Telecommunications Research Labs | Class-based word clustering for speech recognition using a three-level balanced hierarchical similarity |
US5872938A (en) * | 1996-06-28 | 1999-02-16 | International Business Machines Corp. | Service priority queue implemented with ordered sub-queues and sub-queue pointers pointing to last entries in respective sub-queues |
US5884258A (en) * | 1996-10-31 | 1999-03-16 | Microsoft Corporation | Method and system for editing phrases during continuous speech recognition |
US5829000A (en) * | 1996-10-31 | 1998-10-27 | Microsoft Corporation | Method and system for correcting misrecognized spoken words or phrases |
US5950160A (en) * | 1996-10-31 | 1999-09-07 | Microsoft Corporation | Method and system for displaying a variable number of alternative words during speech recognition |
US5899976A (en) * | 1996-10-31 | 1999-05-04 | Microsoft Corporation | Method and system for buffering recognized words during speech recognition |
US6006181A (en) * | 1997-09-12 | 1999-12-21 | Lucent Technologies Inc. | Method and apparatus for continuous speech recognition using a layered, self-adjusting decoder network |
GB2333172A (en) * | 1998-01-13 | 1999-07-14 | Softsound Limited | Recognition |
US5983180A (en) * | 1997-10-23 | 1999-11-09 | Softsound Limited | Recognition of sequential data using finite state sequence models organized in a tree structure |
US6442520B1 (en) | 1999-11-08 | 2002-08-27 | Agere Systems Guardian Corp. | Method and apparatus for continuous speech recognition using a layered, self-adjusting decoded network |
US20040205035A1 (en) * | 2000-05-01 | 2004-10-14 | Norbert Rimoux | Method and system for adaptive learning and pattern recognition |
KR100450396B1 (ko) * | 2001-10-22 | 2004-09-30 | 한국전자통신연구원 | 트리탐색기반 음성 인식 방법 및 이를 이용한 대용량 연속음성 인식 시스템 |
US20040064315A1 (en) * | 2002-09-30 | 2004-04-01 | Deisher Michael E. | Acoustic confidence driven front-end preprocessing for speech recognition in adverse environments |
CN1839383A (zh) * | 2003-09-30 | 2006-09-27 | 英特尔公司 | 动态贝叶斯网络的维特比路径生成 |
US7529657B2 (en) * | 2004-09-24 | 2009-05-05 | Microsoft Corporation | Configurable parameters for grammar authoring for speech recognition and natural language understanding |
US20070214153A1 (en) * | 2006-03-10 | 2007-09-13 | Mazzagatti Jane C | Method for processing an input particle stream for creating upper levels of KStore |
US8086463B2 (en) * | 2006-09-12 | 2011-12-27 | Nuance Communications, Inc. | Dynamically generating a vocal help prompt in a multimodal application |
US8060367B2 (en) * | 2007-06-26 | 2011-11-15 | Targus Information Corporation | Spatially indexed grammar and methods of use |
US9390708B1 (en) * | 2013-05-28 | 2016-07-12 | Amazon Technologies, Inc. | Low latency and memory efficient keywork spotting |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4277644A (en) * | 1979-07-16 | 1981-07-07 | Bell Telephone Laboratories, Incorporated | Syntactic continuous speech recognizer |
US4783809A (en) * | 1984-11-07 | 1988-11-08 | American Telephone And Telegraph Company, At&T Bell Laboratories | Automatic speech recognizer for real time operation |
JPS62275300A (ja) * | 1986-05-16 | 1987-11-30 | 沖電気工業株式会社 | 連続音声認識方法 |
-
1986
- 1986-06-02 WO PCT/US1986/001224 patent/WO1987007749A1/en unknown
- 1986-06-02 JP JP61503471A patent/JP2717652B2/ja not_active Expired - Lifetime
- 1986-06-02 US US07/357,071 patent/US5040127A/en not_active Expired - Lifetime
-
1987
- 1987-06-01 CA CA000538501A patent/CA1301340C/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5040127A (en) | 1991-08-13 |
WO1987007749A1 (en) | 1987-12-17 |
JPH01502611A (ja) | 1989-09-07 |
CA1301340C (en) | 1992-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2717652B2 (ja) | 連続音声認識システム | |
US5581655A (en) | Method for recognizing speech using linguistically-motivated hidden Markov models | |
US5729656A (en) | Reduction of search space in speech recognition using phone boundaries and phone ranking | |
US4819271A (en) | Constructing Markov model word baseforms from multiple utterances by concatenating model sequences for word segments | |
JP2739945B2 (ja) | 音声認識方法 | |
US5983180A (en) | Recognition of sequential data using finite state sequence models organized in a tree structure | |
CA1167967A (en) | Continuous speech pattern recognizer | |
JP3860613B2 (ja) | 音声信号中の発声単語列の認識方法及び装置 | |
US5987409A (en) | Method of and apparatus for deriving a plurality of sequences of words from a speech signal | |
JPH0583918B2 (ja) | ||
JPS62246097A (ja) | 音声認識のための単語マルコフ・モデル合成装置 | |
JP4289715B2 (ja) | 音声認識装置及び音声認識方法並びにその方法に用いられる木構造辞書の作成方法 | |
EP0248377B1 (en) | Continuous speech recognition system | |
Eckert et al. | Combining stochastic and linguistic language models for recognition of spontaneous speech | |
EP0482395A2 (en) | Method and apparatus for generating models of spoken words based on a small number of utterances | |
Ney | A comparative study of two search strategies for connected word recognition: Dynamic programming and heuristic search | |
Nakagawa | Spoken sentence recognition by time-synchronous parsing algorithm of context-free grammar | |
US9514122B1 (en) | Processing natural language grammar | |
JP3914709B2 (ja) | 音声認識方法およびシステム | |
CA1336017C (en) | Continuous speech recognition system | |
JP3583299B2 (ja) | 連続音声認識用の探索装置および連続音声認識用の探索方法 | |
JP3727173B2 (ja) | 音声認識方法及び装置 | |
US5956677A (en) | Speech recognizer having a speech data memory storing speech data and a reference pattern memory storing partial symbol trains of words for recognition | |
JP3818154B2 (ja) | 音声認識方法 | |
JPH03155600A (ja) | スピーチ信号内のワードストリングの認識方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |