JP2009500699A - ソフトウエアプログラムにおける音声認識文法を表現するための強いデータ型の使用 - Google Patents

ソフトウエアプログラムにおける音声認識文法を表現するための強いデータ型の使用 Download PDF

Info

Publication number
JP2009500699A
JP2009500699A JP2008518160A JP2008518160A JP2009500699A JP 2009500699 A JP2009500699 A JP 2009500699A JP 2008518160 A JP2008518160 A JP 2008518160A JP 2008518160 A JP2008518160 A JP 2008518160A JP 2009500699 A JP2009500699 A JP 2009500699A
Authority
JP
Japan
Prior art keywords
grammar
natural language
code
language input
type
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.)
Pending
Application number
JP2008518160A
Other languages
English (en)
Other versions
JP2009500699A5 (ja
Inventor
ペルー ジャン−フランソア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009500699A publication Critical patent/JP2009500699A/ja
Publication of JP2009500699A5 publication Critical patent/JP2009500699A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/253Grammatical analysis; Style critique
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)
  • Machine Translation (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

一実施形態において、自然言語を使用可能なアプリケーションに対する自然言語入力を解釈するためのシステムは、文法、ソースファイル、および音声レコグナイザを有する。文法は、データ型のセットと、そのデータ型のセットに関するルールを定義するセマンティックなコードとを有する。ソースファイルは、データ型のセットのうちの選択されたデータ型をインスタンス化することにより、文法にアクセスするように構成されたコンピュータ読み取り可能コードを含む。音声レコグナイザは、自然言語入力を受け取り、その自然言語入力を、選択されたデータ型にマッピングするように構成されている。

Description

以下の説明は、単に一般的な背景情報を提供するだけに過ぎず、特許請求する主題事項の範囲の決定に際して、補助として使用することを目的とするものではない。
自然言語ソフトウエアアプリケーションとは、口頭の発言、または人が話す方法と並行するテキスト入力を受け取るように構成されたアプリケーションを指す。しかし、音声認識を使用する従来のアプリケーションも、アプリケーションが聴取すべき単語を定義すること、それらの単語を結合することができる方法を定義すること、およびそれらの単語の任意の特定の組み合わせにおけるセマンティックな(semantic)意味を定義することにより、同様のことを行う。
一般的に、用語文法とは、所与の任意の言語の構造を定義するルール、および基礎をなす原理を指し、文法は、自然言語アプリケーションがそうした機能を果たすのに用いる機構として役立つことができる。実用において、自然言語プログラマは、文法をコード化し、次いで、音声レコグナイザが、コード化した文法を使用する。ユーザが自然言語プログラムにアクセスして、文法によって定義された単語およびルールのセットの範囲内にある何かを言うとき、音声レコグナイザは、これらの単語を文法内で定義された文字列または他の型にマッピングする。次いで、音声レコグナイザは、言われたことを、文法によって定義された任意の対応するセマンティックな情報とともに、アプリケーションに対して通知する。多くの場合、これは、さらなる処理のために、マッピングされたオブジェクトをアプリケーションに提供することによってなされる。
このような従来のアプリケーションは、ソフトウエア開発者に対して、膨大なテキスト、および文字列テキスト操作のために、コード化することを要求する。効率的にコード化するため、開発者は、一般に文法を極めて良く理解するとともに、開発者が使用する特定の文法の内部構造に関しても良く理解する必要がある。残念ながら、このような文法的洞察力は、プログラマの知識ベースの一部ではないことが多い。
開発全体のサイクルを早めるため、開発者は、既存の文法を変更すること、および/または、既存の文法に対して追加を行うことにより、既存の文法における何らかの変形を使用しようとすることが多い。しかし、既存の文法を変更するには、開発者がソフトウエア強化の実装に費やすことができる時間を、構造の学習のために割くことが必要となる。在来の技術により、開発者は、他の文法から既存の文法を引用することができるが、その引用は、引用される文法のセマンティックス(semantics)を返す方法をもたらすので、呼び出し側プログラムに対して透過的ではない。
本要約は、下記の発明の詳細な説明において記述するいくつかの概念を簡略化した形式で紹介するために提供するものである。本要約は、特許請求する主題事項の重要な特徴または本質的な特徴を特定することを目的とするものでも、特許請求する主題事項の範囲の決定に際して、補助として使用することを目的とするものでもない。
一実施形態において、自然言語を使用可能なアプリケーションに対する自然言語入力を解釈するためのシステムは、文法、ソースファイル、および音声レコグナイザを有する。文法は、データ型のセットと、そのデータ型のセットに関するルールを定義するセマンティックなコードとを有する。ソースファイルは、データ型のセットのうちの選択されたデータ型をインスタンス化することにより、文法にアクセスするように構成されたコンピュータ読み取り可能コードを含む。音声レコグナイザは、自然言語入力を受け取り、その自然言語入力を、選択されたデータ型にマッピングするように構成されている。
別の実施形態において、自然言語入力認識用のシステムは、入力デバイス、強く型付けされた文法(strongly typed grammar)、認識コンポーネント、および解釈コンポーネントを有する。入力デバイスは、自然言語入力を受け取るように構成されている。強く型付けされた文法は、自然言語入力の要素を表す、型のセットを定義する。認識コンポーネントは、強く型付けされた文法を用いて自然言語入力をテキストに変換し、そのテキストに基づいて認識出力を生成するように構成されている。解釈コンポーネントは、認識出力に基づいて自然言語入力のセマンティックスを識別するように構成されている。
別の実施形態においては、自然言語アプリケーションの文法にアクセスする方法が提供される。1つまたは複数の文法が提供される。各文法は、自然言語を表す、型のセットを有する。自然言語入力に対して操作するプロセスが、1つまたは複数のソースコードファイル内で定義される。実行時において、1つまたは複数の文法から、型のセットのうちの選択された型がインスタンス化される。選択された型は自然言語入力に対応する。
図1は、本発明の実施形態を実装することができる好適なコンピューティングシステム環境100の一例を示している。コンピューティングシステム環境100は、好適なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲についていかなる限定を示唆するようにも意図されてはいない。同様に、コンピューティング環境100は、例示的な動作環境100に示された任意の1つのコンポーネントまたはコンポーネントの組合せに関して、いかなる依存関係または要件を有するようにも解釈するべきではない。
本発明の実施形態は、他の多数の汎用もしくは専用コンピューティングシステム環境、または構成とともに動作可能である。そのような実施形態とともに使用するのに適した周知のコンピューティングシステム、コンピューティング環境、および/またはコンピューティング構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、電話システム、前述した任意のシステムやデバイスを含む分散コンピューティング環境などが含まれるが、これらに限定されるものではない。
本発明の実施形態は、コンピュータ実行可能命令の一般的なコンテキストにおいて説明することができる。このようなコンピュータ実行可能命令には、コンピュータにより実行されるプログラムモジュールなどが含まれる。一般に、プログラムモジュールには、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。本発明は、通信ネットワークを介して接続されたリモート処理デバイスによってタスクが実行される分散コンピューティング環境においても実施することができる。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含むローカルコンピュータ記憶媒体およびリモートコンピュータ記憶媒体の両方に配置することができる。
図1を参照すると、本発明の実施形態を実装するための例示的なシステムは、コンピュータ110の形態の汎用コンピューティングデバイスを含む。コンピュータ110のコンポーネントには、処理ユニット120と、システムメモリ130と、システムメモリ130を含む様々なシステムコンポーネントを処理ユニット120に接続するシステムバス121とを含めることができるが、これらに限定されるものではない。システムバス121は、様々なバスアーキテクチャのいずれかを使用した、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む複数のタイプのいずれのバス構造であってもよい。そのようなアーキテクチャには、ISAバス、MCAバス、EISAバス、VESAローカルバス、および(メザニンバスとしても知られる)PCIバスが含まれるが、これらに限定されるものではない。
通常、コンピュータ110は、様々なコンピュータ読み取り可能な媒体を備える。コンピュータ読み取り可能な媒体は、コンピュータ110によってアクセスできる任意の入手可能な媒体とすることができ、コンピュータ読み取り可能な媒体には、揮発性媒体および不揮発性媒体、ならびに取り外し可能な媒体および取り外し不可能な媒体のいずれもが含まれる。例えば、コンピュータ読み取り可能な媒体には、コンピュータ記憶媒体および通信媒体を含めることができるが、これらに限定されるものではない。用語「コンピュータ記憶媒体」には、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または技術で実現された揮発性媒体および不揮発性媒体、ならびに取り外し可能な媒体および取り外し不可能な媒体のいずれもが含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリ、もしくはその他のメモリ技術、CD−ROM、DVD、もしくはその他の光ディスク記憶デバイス、磁気カセット、磁気テープ、磁気ディスク記憶デバイス、もしくはその他の磁気記憶デバイス、または所望の情報を記憶するために使用でき、かつコンピュータ110によってアクセスすることができる任意のその他の媒体が含まれるが、これらに限定されるものではない。通常、通信媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波やその他の搬送機構などの変調されたデータ信号として具現化したものであり、任意の情報配信媒体を含む。用語「変調されたデータ信号」は、信号内の情報を符号化するような方法で、その信号の1つまたは複数の特徴が設定または変更された信号を意味する。通信媒体には、有線ネットワークまたは直接配線接続などの有線媒体と、音響、RF、赤外線、およびその他の無線媒体などの無線媒体とが含まれるが、これらに限定されるものではない。このような媒体の任意の組合せもコンピュータ読み取り可能な媒体の範囲に含まれるべきである。
システムメモリ130は、ROM131およびRAM132などの揮発性メモリおよび/または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動中などにコンピュータ110内の要素間で情報を転送することに役立つ基本的なルーチンを含むBIOS133は一般に、ROM131に記憶される。通常、RAM132には、処理ユニット120によって直ちにアクセスでき、かつ/または、処理ユニット120によって現在操作されているデータおよび/またはプログラムモジュールが含まれる。例えば、図1には、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137が示されているが、これらに限定されるものではない。
コンピュータ110は、その他の取り外し可能な/取り外し不可能な揮発性/不揮発性コンピュータ記憶媒体を備えてもよい。例として、図1には、取り外し不可能な不揮発性磁気媒体に対して読み書きを行うハードディスクドライブ141と、取り外し可能な不揮発性磁気ディスク152に対して読み書きを行う磁気ディスクドライブ151と、CD−ROMまたはその他の光媒体などの取り外し可能な不揮発性光ディスク156に対して読み書きを行う光ディスクドライブ155とが示されている。例示的な動作環境において使用することができるその他の取り外し可能な/取り外し不可能な揮発性/不揮発性コンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、DVD、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれるが、これらに限定されるものではない。ハードディスクドライブ141は一般に、インターフェイス140などの取り外し不可能なメモリインターフェイスを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は一般に、インターフェイス150などの取り外し可能なメモリインターフェイスを介してシステムバス121に接続される。
図1に示して上述したドライブ群およびそれらドライブに関連するコンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、およびその他のデータの記憶領域をコンピュータ110に提供する。例えば、図1において、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147を記憶するものとして示されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137と同じであってもよいし、異なってもよいことに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147は、少なくともそれらが別のコピーであることを示すために、ここでは異なる番号が付されている。
ユーザは、キーボード162、マイクロフォン163、および、一般的にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス161などの入力デバイスを介して、コンピュータ110に命令および情報を入力することができる。その他の入力デバイス(図示せず)としては、ジョイスティック、ゲームパッド、衛星通信用パラボラアンテナ、スキャナなどを挙げることができる。これらのおよびその他の入力デバイスは、システムバス121に接続されたユーザ入力インターフェイス160を介して処理ユニット120に接続されることが多いが、パラレルポート、ゲームポート、またはUSBなどのその他のインターフェイスおよびバス構造を介して接続されてもよい。モニタ191またはその他のタイプのディスプレイデバイスも、ビデオインターフェイス190などのインターフェイスを介してシステムバス121に接続される。モニタ191に加えて、コンピュータは、出力周辺インターフェイス195を介して接続することができる、スピーカ197およびプリンタ196などのその他の出力周辺デバイスを備えることもできる。
コンピュータ110は、リモートコンピュータ180などの1つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク環境において動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、ハンドヘルドデバイス、サーバ、ルータ、ネットワークPC、ピアデバイス、またはその他の一般的なネットワークノードであってもよく、リモートコンピュータ180は通常、コンピュータ110に関して上述した要素の多くまたは全てを含む。図1に示された論理接続には、ローカルエリアネットワーク(LAN)171およびワイドエリアネットワーク(WAN)173が含まれるが、その他のネットワークが含まれてもよい。そのようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいて一般的である。
LANネットワーキング環境において使用される場合、コンピュータ110は、ネットワークインターフェイスまたはネットワークアダプタ170を介してLAN171に接続される。WANネットワーキング環境において使用される場合、コンピュータ110は通常、インターネットなどのWAN173を介して通信を確立するためのモデム172、またはその他の手段を備える。モデム172は、内蔵型でも外付け型でもよく、ユーザ入力インターフェイス160またはその他の適切な機構を介してシステムバス121に接続することができる。ネットワーク環境において、コンピュータ110に関連して示したプログラムモジュール、またはそのプログラムモジュールの一部は、リモートメモリ記憶デバイスに記憶することもできる。例えば、図1には、リモートコンピュータ180に存在するものとしてリモートアプリケーションプログラム185が示されているが、これに限定されるものではない。図示されたネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立するその他の手段も使用できることが理解されよう。
一実施形態において、音声認識文法および結果は、(オブジェクト指向の専門用語における「クラス」などの)データ型として表現される。従来の自然言語プログラミングアプリケーションは、テキスト文字列またはバイナリデータ構造として文法を表現するが、強く型付けされた文法を代わりに使用して自然言語機能を実行することができる。一般的に、「強く型付けされた」という表現は、言語または文法がデータ型を扱う方法を指す。本明細書で使用される強く型付けされた文法または言語は、コンパイル時に全ての型をチェックできるものである。
一般的に、アプリケーション開発者は、一連のアプリケーションプログラムインターフェイス(API)を呼び出して音声レコグナイザに単語およびルールを追加することによるか、または(例えば、拡張マークアップ言語すなわちXMLファイルフォーマットなどの)テキストファイルを作成することによるかのいずれかによって、文法を定義する。このようなフォーマットは、ワールドワイドウェブコンソーシアム(W3C)の音声認識文法仕様(SRGS)である。テキストファイルは一般に文法を含み、これは、基礎をなす音声レコグナイザを用いてステートマシン(state machine)にコンパイルされる。
図2は、コンパイルプロセスの様々な段階の間における、強く型付けされた文法の一実施形態の要素200の簡略化したブロック図である。要素200は、文法要素およびセマンティックなコード202と、ソースコードファイル204とを含む。文法要素およびセマンティックなコード202は、データ型として音声認識文法と結果とを表現するための、型(または、「クラス」)のセットを定義する。ソースコードファイル204は、特定のアプリケーションに対する自然言語入力を処理するためのプロシージャのセットを定義する。文法要素およびセマンティックなコード202には、例えば、SRGS文法を含めることもできる。ソースコードファイル204には、例えば、1つまたは複数のC#ソースコードファイルを含めることもできる。
セマンティックな情報は、特定の実装に応じて、ソースコードファイル204内か、または文法要素およびセマンティックなコード202内かのいずれかにおいてコード化することができる。コンパイルの間、セマンティックな情報が文法要素およびセマンティックなコード202においてコード化される場合、文法コンパイラが、ファイルを文法要素206とセマンティックなコード208とに分離する。次いで、ソースコードファイル204がコンパイラにロードされセマンティックなコード208と結合されて、中間言語コード214が作成される。文法要素はステートマシン212にコンパイルされる。中間言語コード214およびステートマシン212は、例えば、音声レコグナイザが使用できるバイナリファイルとすることもできる。
文法要素206(聴取する単語の順序)とセマンティックなコード208(単語が意味することに関するルール)とを分離することにより、ステートマシン212が全ての可能な遷移および置換を含み、かつ中間言語コード214がセマンティックな処理情報を含むように、バイナリファイルが単純化される。
一般的に、文法コンパイラは、CFG(Compiled Form Grammar)ファイルまたはクラスライブラリを生成することができる。一般的に、CFGファイルは、ステートマシン212、中間言語コード214、および任意のデバッグ情報を含む。一般的に、CFGファイルは、例えば、セマンティックな値の辞書から、結果を割り当てる(cast)ことを必要とする。
クラスライブラリは、中間言語コード214とステートマシン212とを含む強く型付けされた文法を表す。デバッグ情報は、別個のファイル(図示せず)に記憶されてもよい。クラスライブラリは、様々な文化に関する全ての文法の言語バージョンを同一のファイルに記憶できるようにする。これにより、音声アプリケーション開発者は、自分が使用する話し言葉の文法知識を有する必要がなくなる。例えば、音声アプリケーション開発者は、スペイン語の知識を有することなく、英語およびスペイン語双方に関してコード化することができる。さらに、音声アプリケーションは、文法内で定義された型を共有することができるので、結果は、文法オブジェクトにおけるフィールドおよびプロパティとして返すことができる。
この場合、強く型付けされた文法は、アンチウィルスフィルタや電子メールフィルタなどにとって周知のファイルタイプであるダイナミックリンクライブラリ(dll)内にパッケージされる。強く型付けされた文法がDLL内にパッケージされると、.NETのセマンティックなコードなどのアプリケーションコードは、音声アプリケーションがアクセスできる全てのリソースにアクセスできる。
この場合、開発者は、一般に文法に関する知識がほとんどなく、自分が使用する特定の文法の内部構造に関する知識を全く有していなくても、自然言語アプリケーションをプログラミングすることができる。さらに、開発者は、入力文字列を操作して出力文字列を構文解析することによってではなく、ネイティブのデータ型として、文法と対話する。
一実施形態においては、タグを用いてプロパティを作成する。例えば、年のある月に関連付けられたプロパティは、以下のようにコード化することができる:
<item>February<tag>“month”=2</tag></item>
このコードの断片は、2という整数値を項目Februaryのタグに関連付ける。したがって、例えば、ユーザがプルダウンリストから項目「February」を選択すると、プロパティ「2」がタグ「month」に割り当てられる。
プロパティを結合して強く型付けされた複合オブジェクトを作成することができる。例えば、中間結果から、DateTimeオブジェクトを返すことができる。例えば、
return(new DateTime ( result[“year”], result[“month”], result[“day”])である。
オブジェクトおよびプロパティは、親ルールに基づいて再結合して、最終結果を構築することができる。一般的に、強く型付けされた複合オブジェクトは、セマンティックな処理の間に構築されて、音声アプリケーションに返される。
上述した説明は、主として自然言語アプリケーションの作者が実行するセマンティックな結果の処理(生成)に関するものである。ソースコードは、文法コンパイルプロセスの一部としてコンパイルされ、チェックされる。コード化エラーのほとんどをこの段階で発見し、エラーの正確な位置を識別することができる。さらに、デバッグ情報を記憶し、ブレークポイントをソースファイル内に直接設定し、任意の可変コンテンツを閲覧し、VS.net、Rascalなどを含む任意のデバッガを使用することもできる。
図3は、自然言語アプリケーション設計時における自然言語システム300の一実施形態を示す簡略化したブロック図である。システム300は、クライアント入力デバイス304に接続される、自然言語認識コンポーネント302および解釈コンポーネント306を含む。クライアント入力デバイス304は、マイクロフォン、ペンベースの入力デバイス、キーボードおよびマウス、または任意の他の入力機構とすることができる。一般的に、自然言語認識コンポーネント302は、ユーザから自然言語入力を取り込み、その入力を、後の処理に使用することができる形式に翻訳する。自然言語認識コンポーネント302は、(XML、SRGSなどの)文法マークアップ言語を用いて記述される、強く型付けされた文法308を使用する。自然言語認識コンポーネント302には、音声認識コンポーネント312A、手書き認識コンポーネント312B、キーボードおよびマウスコンポーネント312C、(1つまたは複数の)その他の入力312D、およびシステムにより生成された入力312Eを含めることができる。自然言語音声レコグナイザ302の各認識コンポーネント312A〜312Dは、強く型付けされた文法308を使用することにより自然言語入力をテキストに変換して、強く型付けされた文法内で定義された型に基づいてテキストをタグ付けする(またはカテゴリ化する)。
タグ付けまたはカテゴリ化された単語は、次いで、解釈コンポーネント306に渡される。さらに具体的には、各認識コンポーネント312A〜312Dは、そのカテゴリ化された単語を、それぞれの解釈コンポーネント314A〜314Dに渡す。各解釈コンポーネント314A〜314Dは、セマンティックなコード310を利用して、それぞれの認識コンポーネント302(312A〜312D)からのタグ付けされたユーザ入力に基づいて、ユーザが意図する「意味」または「セマンティックス」を識別する。この時点で、クライアントデバイス304からの入力データが、セマンティックなコード310内で定義されたルールに基づいて、強く型付けされた文法308内で定義された型にマッピングされる。解釈コンポーネント306は、セマンティックな結果のセット316(テキストから型へのマッピング)を統合コンポーネント320に提供する。統合コンポーネント320は、クライアントデバイス304が使用可能な型をセマンティックな結果のセット316から選択するために、スキーマや他のシステムにより生成された入力312に対してセマンティックな結果のセットを処理するように構成されたプロセッサ322を含む。したがって、クライアントデバイス304におけるクライアントアプリケーション内で定義された自然言語特徴にマッピングしない型マッピングは破棄されることになり、適切なマッピングを統合出力に結合することができる。次いで、統合出力は、クライアントアプリケーションが使用するために、クライアントデバイス304に返される。一実施形態において、統合出力は、関連フィールドおよびプロパティを有する1つまたは複数の文法オブジェクトを含む。関連フィールドおよびプロパティは自然言語入力を表すものである。
強く型付けされた文法を用いることにより、コンパイル時におけるより多くのエラーの発見、継承およびカプセル化による再利用、実装詳細の抽象化などの、型に基づくシステムの特徴が、自然言語プログラミングの開発者に利用可能である。これにより、開発者は、ネイティブのデータ型として文法と対話することができる。文法を使用するために、開発者は、文法型を宣言してインスタンス化し、型がエクスポーズするあらゆるプロパティも設定して、インスタンス化した型を音声レコグナイザに渡すことしか必要としない。開発者が文法ファイルを管理する必要はない。その代わりに、開発者が調整可能なあらゆる設定は、型の外部インターフェイスの一部として見ることができる。さらに、強く型付けされた文法により、開発者は、コンストラクタのオーバーロード、エクスポーズされたプロパティなどの標準的なプログラミング技術を通じて、実行時に文法をパラメータ化することができる。パラメータのセットを用いた文法のインスタンス化は、単一の簡単な文を用いて達成できる。すなわち、文法は、実行時パラメータのセットに基づいて、実行時に、すぐにパラメータ化して再構築することができる。また、強く型付けされた文法の使用により、開発者は、様々な言語の構造を定義するルール、および基礎をなす原理を習得する必要なく、多言語文法(multi-lingual grammars)を構築することができる。したがって、音声アプリケーション開発者は、1つの言語(例えば英語)に関してコード化することができ、透過的に、同一コードは、(例えば、スペイン語などの)別の言語の同一文法の変形に役立つ。
レコグナイザ302が、強く型付けされた文法308内で定義されたタグまたはカテゴリを使用して、認識入力にマーク付け、またはラベル付けすることができることが理解されよう。次いで、解釈コンポーネント306が、これらのマーク付けまたはラベル付けされた入力を、開発者が定義したセマンティックなコード310に対して処理して、セマンティックな結果のセット316を作成することができる。セマンティックな結果のセット316は、クライアントデバイス304のオペレータが意図する入力に対応することが好ましい。クライアントデバイス304が統合出力を使用して、ユーザが意図する動作を実行することができる。
図4は、強く型付けされた文法のプログラミング処理の一実施形態を示す簡略化したフロー図である。開発者は、文法オブジェクトを定義するタグ要素のプロパティを作成する(ステップ400)。任意的に、プロパティを結合して、強く型付けされた複合オブジェクトを作成することができる(ステップ402)。任意的に、親ルールにしたがって、強く型付けされた複合オブジェクトを再結合して、最終結果を構築することができる(ステップ404)。文法コンパイラを用いて、ソースコードをコンパイルする(ステップ406)。文法コンパイル処理の一部として文法を検証する(ステップ408)。最後に、中間言語コード出力とともにデバッグ情報を記憶する(ステップ410)。
図5は、強く型付けされた文法を使用して、自然言語プログラムのプログラミングのためのコンパイル処理の一実施形態を示す簡略化したフロー図である。1つまたは複数の専用ソースコードファイルおよび/または文法ファイルにおいて、文法をセマンティックなコードとともに定義する(ステップ500)。コンパイラが、文法をセマンティックなコードから分離する(ステップ502)。文法および関連するセマンティックなコードをコンパイルする(ステップ504)。文法コンパイラが、公開文法ルールごとに1つのクラスを自動的に作成する(ステップ506)。文法コンパイラが、文法に基づいてステートマシンを生成する(ステップ508)。最後に、文法コンパイラが、1つまたは複数の専用ソースコードファイル内および/または文法ファイル内のコードに基づいて、コンパイルした中間言語コードを生成する(ステップ510)。
図6は、自然言語ステートマシンおよび中間言語コードをコンパイルするように構成されたコンパイラシステム600の一実施形態を示す簡略化したブロック図である。システム600は、文法コンパイラ604およびコードコンパイラ606からなるコンパイラ602を含む。文法コンパイラ604は、文法およびセマンティックなコードの双方を含めることができるソース文法ファイル608を受け取るように構成されている。文法コンパイラ604は、セマンティックなコードを文法コードから分離し、文法コードをステートマシン612にコンパイルするように構成されている。文法コンパイラ604は、分離したセマンティックなコードをコードコンパイラ606に提供する。
コードコンパイラ606は、1つまたは複数のソースコードファイル610と、文法コンパイラ604からの分離されたセマンティックなコードを受け取るように構成されている。コードコンパイラ606は、1つまたは複数のソースコードファイル610を、分離されたセマンティックなコードとともに、中間言語コード614にコンパイルするように構成されている。中間言語コード614には、デバッグ情報616を含めることができる。場合によっては、デバッグ情報616を別個のファイルに記憶することもできる。
強く型付けされた文法により、開発者は、別の文法から既存の文法を引用することができる。開発者が型として文法をインスタンス化できることにより、開発者は、サブクラスおよび集約などの標準的なオブジェクト指向プログラミング技術または方法を用いて、既存の文法を容易に再利用または拡張することができる。
従来の技術は、日付を認識する簡単な方法、またはテキストファイルに基づいて日付範囲を制限する簡単な方法を提供しないが、強く型付けされた文法は、コンストラクタのオーバーロードやエクスポーズされたプロパティなどの標準的なプログラミング技術を通じて、実行時にパラメータを受け取ることができるように実装することができる。次いで、文法は、単一の単純なステートメント内のパラメータのセットとともにインスタンス化される。これにより、開発者は、例えば、日付範囲を制限することができる。
図7は、文法をインスタンス化するシステム700の一実施形態を示す簡略化したブロック図である。システム700は、文法702およびアプリケーションコード708を含む。文法702は、強く型付けされた型のセット704から構成されることが好ましい。文法702には、セマンティックなコード706を含めることができ、セマンティックなコード706には、1つまたは複数のコンストラクタ714を含めることができる。アプリケーションコード708は、パラメータ718を用いてコンストラクタ714を呼び出す。コンストラクタ714は、文法コンパイラ716を用い、パラメータのセット718に基づいて、そのステートマシンを再構築する。
文法コンパイラ716は、アプリケーションコード708から呼び出されたパラメータ718に基づいて、文法702をコンパイルするように構成されている。型のセット704からの特定の型のインスタンスは、コンストラクタ714またはアプリケーションコード708内の他のコードに基づいて、パラメータ718とともにインスタンス化することができる。パラメータ718には、特定のインスタンス化に固有の要件を課すことができる。さらに、結果として生じたインスタンス化された文法720(この文法は任意的にパラメータとともにインスタンス化される)は、その型がエクスポーズするプロパティを含む。次いで、このインスタンス化された文法720を音声レコグナイザ722に渡すことができる。音声レコグナイザ722は、自然言語入力724を受け取り、その自然言語入力724を、インスタント化された文法720内のインスタンス化された型にマッピングして、マッピングされたオブジェクト726を生成するように構成されている。
開発者は、文法702を管理する必要はない。その代わり、開発者が調整可能なあらゆる設定は、例えば、コンストラクタ714を介してアクセス可能な型の外部インターフェイスの一部として見ることができる。このような強く型付けされた文法により、開発者は、コンストラクタのオーバーロード、エクスポーズされたプロパティなどの標準的なプログラミング技術を通じて、実行時にアプリケーションをパラメータ化することができる。さらに、インスタンス化された型は、型のセット内の基本の型からプロパティを継承することができる。このように、本発明の実施形態は、自然言語アプリケーションをプログラミングするための、周知のオブジェクト指向の型のセット704またはクラスを提供するので、開発者は、文法の内部構造ではなく、プログラムの特徴に焦点を絞ることができる。
特定の実施形態を参照しながら、本発明について説明したが、当業者であれば、本発明の趣旨および範囲から逸脱することなく、形式および細部の変更が可能であることが理解されよう。
本発明の実施形態を実装することができるコンピューティングシステム環境を示す概略図である。 本発明の実施形態にしたがう、自然言語文法のためのコンパイルプロセスを示す簡略化したブロック図である。 本発明の実施形態にしたがう、自然言語システムの入力コンポーネントを示す簡略化したブロック図である。 本発明の実施形態にしたがう、強く型付けされた文法のプログラミング処理を示す簡略化したフロー図である。 本発明の実施形態にしたがう、強く型付けされた文法を使用して、自然言語プログラムのプログラミングのためのコンパイル処理を示す簡略化したフロー図である。 本発明の実施形態にしたがう、自然言語ステートマシンおよび中間言語コードをコンパイルするように構成されたコンパイラシステムを示す簡略化したブロック図である。 本発明の実施形態にしたがう、文法のインスタンス化のための要素を示す簡略化したブロック図である。

Claims (20)

  1. 自然言語を使用可能なアプリケーションに対する自然言語入力を解釈するためのシステムであって、
    データ型のセットと、該データ型のセットに関するルールを定義するセマンティックなコードとを含む文法と、
    前記データ型のセットのうちの選択されたデータ型をインスタンス化することにより、前記文法にアクセスするように構成されたコンピュータ読み取り可能コードからなるソースファイルと、
    自然言語入力を受け取り、該自然言語入力を前記選択されたデータ型にマッピングするように構成された音声レコグナイザと
    を備えたことを特徴とするシステム。
  2. 前記文法を受け取り、前記データ型のセットを前記セマンティックなコードから分離するように構成され、かつ前記文法から出力を生成するように構成された文法コンパイラ
    をさらに備えたことを特徴とする請求項1に記載のシステム。
  3. 前記出力はステートマシンを含むことを特徴とする請求項2に記載のシステム。
  4. 前記選択されたデータ型は、実行時にパラメータとともにインスタンス化されることを特徴とする請求項1に記載のシステム。
  5. ソースコードと前記ソースファイルとを受け取り、該ソースコードと該ソースファイルとを中間言語コードにコンパイルするように構成されたコードコンパイラ
    をさらに備えたことを特徴とする請求項1に記載のシステム。
  6. 前記中間言語コードは、コンピュータ読み取り可能コード、および関連デバッグ情報を含むことを特徴とする請求項5に記載のシステム。
  7. 自然言語認識用のシステムであって、
    自然言語入力を受け取るように構成された入力デバイスと、
    自然言語入力の要素を表す型のセットを定義する強く型付けされた文法と、
    該強く型付けされた文法を使用して、前記自然言語入力をテキストに変換し、該テキストに基づいて認識出力を生成するように構成された認識コンポーネントと、
    前記認識出力に基づいて前記自然言語入力のセマンティックスを識別するように構成された解釈コンポーネントと
    を備えたことを特徴とするシステム。
  8. 前記文法内の型の意味を定義するセマンティックなコード
    をさらに備えたことを特徴とする請求項7に記載のシステム。
  9. 前記解釈コンポーネントは、前記セマンティックなコードを利用して、前記文法に基づいて前記自然言語入力のセマンティックスを識別することを特徴とする請求項8に記載のシステム。
  10. 前記認識コンポーネントは、前記自然言語入力を、前記文法において指定されたテキストに変換するように構成されることを特徴とする請求項7に記載のシステム。
  11. 前記解釈コンポーネントは、1つまたは複数の解釈コンポーネントを含み、各前記解釈コンポーネントは、前記自然言語入力の可能な解釈を生成するように構成され、前記システムは、
    前記1つまたは複数の解釈コンポーネントが生成する、前記自然言語入力の1つまたは複数の可能な解釈のそれぞれを統合するように構成された統合コンポーネント
    をさらに備えたことを特徴とする請求項7に記載のシステム。
  12. 前記自然言語入力は音声を含むことを特徴とする請求項7に記載のシステム。
  13. 前記自然言語入力は手書きを含むことを特徴とする請求項7に記載のシステム。
  14. 1つまたは複数の専用ソースコードファイル内、および前記強く型付けされた文法を有する文法ファイル内で定義されたアプリケーションコード
    をさらに備えたことを特徴とする請求項7に記載のシステム。
  15. 自然言語アプリケーションの文法にアクセスする方法であって、
    1つまたは複数の文法を提供するステップであって、各前記文法は自然言語を表す型のセットを含む、提供するステップと、
    1つまたは複数のソースコードファイル内で、自然言語入力に対して操作するプロセスを定義するステップと、
    実行時において、前記1つまたは複数の文法から、前記型のセットのうちの選択された型をインスタンス化するステップであって、前記選択された型は自然言語入力に対応する、インスタンス化するステップと
    を備えることを特徴とする方法。
  16. 前記インスタンス化するステップは、
    前記選択された型のうちの少なくとも1つのインスタンス化された型にパラメータを配置するステップ
    をさらに含むことを特徴とする請求項15に記載の方法。
  17. 前記インスタンス化するステップは、
    文法コンパイラを用いて、前記1つまたは複数の文法内の公開文法ルールごとに1つのクラスを作成するステップ
    をさらに含むことを特徴とする請求項15に記載の方法。
  18. 各前記文法は、前記型のセットに関連付けられたセマンティックなコードをさらに含むことを特徴とする請求項15に記載の方法。
  19. 前記選択された型は、型の定義に基づいて、前記文法からプロパティを継承することを特徴とする請求項15に記載の方法。
  20. 文法コンパイラを用いて、前記文法をステートマシンにコンパイルするステップと、
    前記ステートマシン、および前記選択された型に関連付けられたセマンティックなコードを、音声レコグナイザに提供するステップと
    をさらに備えること特徴とする請求項15に記載の方法。
JP2008518160A 2005-06-23 2006-05-08 ソフトウエアプログラムにおける音声認識文法を表現するための強いデータ型の使用 Pending JP2009500699A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/159,648 US7460996B2 (en) 2005-06-23 2005-06-23 Using strong data types to express speech recognition grammars in software programs
PCT/US2006/017588 WO2007001637A2 (en) 2005-06-23 2006-05-08 Using strong data types to express speech recognition grammars in software programs

Publications (2)

Publication Number Publication Date
JP2009500699A true JP2009500699A (ja) 2009-01-08
JP2009500699A5 JP2009500699A5 (ja) 2009-06-25

Family

ID=37568667

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008518160A Pending JP2009500699A (ja) 2005-06-23 2006-05-08 ソフトウエアプログラムにおける音声認識文法を表現するための強いデータ型の使用

Country Status (6)

Country Link
US (1) US7460996B2 (ja)
EP (1) EP1891623A4 (ja)
JP (1) JP2009500699A (ja)
KR (1) KR101213890B1 (ja)
CN (1) CN101185116A (ja)
WO (1) WO2007001637A2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9620117B1 (en) * 2006-06-27 2017-04-11 At&T Intellectual Property Ii, L.P. Learning from interactions for a spoken dialog system
US8024173B1 (en) 2006-09-11 2011-09-20 WordRake Holdings, LLC Computer processes for detecting and correcting writing problems associated with nominalizations
US7827033B2 (en) * 2006-12-06 2010-11-02 Nuance Communications, Inc. Enabling grammars in web page frames
US8175885B2 (en) * 2007-07-23 2012-05-08 Verizon Patent And Licensing Inc. Controlling a set-top box via remote speech recognition
US10387140B2 (en) 2009-07-23 2019-08-20 S3G Technology Llc Modification of terminal and service provider machines using an update server machine
US8572571B2 (en) 2009-07-23 2013-10-29 Shuv Gray Llc Modification of terminal and service provider machines using an update server machine
KR20110036385A (ko) * 2009-10-01 2011-04-07 삼성전자주식회사 사용자 의도 분석 장치 및 방법
US10811004B2 (en) * 2013-03-28 2020-10-20 Nuance Communications, Inc. Auto-generation of parsing grammars from a concept ontology
US11100291B1 (en) 2015-03-13 2021-08-24 Soundhound, Inc. Semantic grammar extensibility within a software development framework
US10843080B2 (en) * 2016-02-24 2020-11-24 Virginia Tech Intellectual Properties, Inc. Automated program synthesis from natural language for domain specific computing applications
US20190354851A1 (en) * 2018-05-17 2019-11-21 International Business Machines Corporation Construction of a machine learning model for structured inputs
KR102396187B1 (ko) 2020-10-12 2022-05-09 광운대학교 산학협력단 음성인식을 이용한 자동코드 작성시스템 및 이를 이용한 자동코드 작성방법
US12056457B2 (en) * 2022-03-22 2024-08-06 Charles University, Faculty Of Mathematics And Physics Computer-implemented method of real time speech translation and a computer system for carrying out the method

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6022222A (en) * 1994-01-03 2000-02-08 Mary Beth Guinan Icon language teaching system
US5642519A (en) * 1994-04-29 1997-06-24 Sun Microsystems, Inc. Speech interpreter with a unified grammer compiler
US6654955B1 (en) * 1996-12-19 2003-11-25 International Business Machines Corporation Adding speech recognition libraries to an existing program at runtime
WO2000021074A1 (en) * 1998-10-05 2000-04-13 Lernout & Hauspie Speech Products N.V. Speech controlled computer user interface
US6314398B1 (en) * 1999-03-01 2001-11-06 Matsushita Electric Industrial Co., Ltd. Apparatus and method using speech understanding for automatic channel selection in interactive television
US6553345B1 (en) * 1999-08-26 2003-04-22 Matsushita Electric Industrial Co., Ltd. Universal remote control allowing natural language modality for television and multimedia searches and requests
US7027991B2 (en) * 1999-08-30 2006-04-11 Agilent Technologies, Inc. Voice-responsive command and control system and methodology for use in a signal measurement system
US6529865B1 (en) * 1999-10-18 2003-03-04 Sony Corporation System and method to compile instructions to manipulate linguistic structures into separate functions
US6934684B2 (en) * 2000-03-24 2005-08-23 Dialsurf, Inc. Voice-interactive marketplace providing promotion and promotion tracking, loyalty reward and redemption, and other features
US7133830B1 (en) * 2001-11-13 2006-11-07 Sr2, Inc. System and method for supporting platform independent speech applications
US7761858B2 (en) * 2004-04-23 2010-07-20 Microsoft Corporation Semantic programming language

Also Published As

Publication number Publication date
WO2007001637A2 (en) 2007-01-04
CN101185116A (zh) 2008-05-21
EP1891623A2 (en) 2008-02-27
WO2007001637A3 (en) 2007-11-08
KR20080018160A (ko) 2008-02-27
US20060293894A1 (en) 2006-12-28
KR101213890B1 (ko) 2012-12-18
US7460996B2 (en) 2008-12-02
EP1891623A4 (en) 2009-04-22

Similar Documents

Publication Publication Date Title
KR101213890B1 (ko) 강한 데이터 유형을 이용하여 소프트웨어 프로그램에서음성 인식 문법을 나타내기 위한 방법
US8607206B2 (en) Automatic synchronous-to-asynchronous software application converter
US7010796B1 (en) Methods and apparatus providing remote operation of an application programming interface
US7500224B2 (en) Code blueprints
US20180136914A1 (en) Programming Language with Extensions using a Strict Meta-Model
US11481201B2 (en) Integrated development environment for developing and compiling query language schemas for application program interfaces
US20060026559A1 (en) Automatic content completion of valid values for method argument variables
JP2009500699A5 (ja)
KR20050039536A (ko) 문맥을 입력 방법에 제공하기 위한 시스템 및 방법
Zhang et al. Ontological approach for the semantic recovery of traceability links between software artefacts
US20070050707A1 (en) Enablement of multiple schema management and versioning for application-specific xml parsers
US9940104B2 (en) Automatic source code generation
US20070169011A1 (en) Delayed loading and instantiation of resources defined in markup
US20060130015A1 (en) Defining expressions in a meta-object model of an application
US7752596B2 (en) Connecting alternative development environment to interpretive runtime engine
US20040122653A1 (en) Natural language interface semantic object module
Cunningham et al. Developing language processing components with GATE (a user guide)
US20060009962A1 (en) Code conversion using parse trees
Irwin et al. Object oriented metrics: Precision tools and configurable visualisations
US7657869B2 (en) Integration of external tools into an existing design environment
US9697021B2 (en) Modifiable high-level intermediate representation of source code
US7418659B2 (en) System and method for declaring a resource within a markup document
US20070050706A1 (en) Method of xml transformation and presentation utilizing an application-specific parser
Bajwa et al. OCL usability: a major challenge in adopting UML
Kalnins et al. Tool support for MOLA

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090508

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090508

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111111

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120406