JP6728125B2 - 自然言語バーチャルアシスタントでの全二重発話処理 - Google Patents

自然言語バーチャルアシスタントでの全二重発話処理 Download PDF

Info

Publication number
JP6728125B2
JP6728125B2 JP2017230590A JP2017230590A JP6728125B2 JP 6728125 B2 JP6728125 B2 JP 6728125B2 JP 2017230590 A JP2017230590 A JP 2017230590A JP 2017230590 A JP2017230590 A JP 2017230590A JP 6728125 B2 JP6728125 B2 JP 6728125B2
Authority
JP
Japan
Prior art keywords
query
response
utterance
processing
computer
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.)
Active
Application number
JP2017230590A
Other languages
English (en)
Other versions
JP2018106702A (ja
Inventor
スコット・ハルストベット
バーナード・モン−レイノー
カジ・アシフ・ワダッド
Original Assignee
サウンドハウンド,インコーポレイテッド
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 サウンドハウンド,インコーポレイテッド filed Critical サウンドハウンド,インコーポレイテッド
Publication of JP2018106702A publication Critical patent/JP2018106702A/ja
Application granted granted Critical
Publication of JP6728125B2 publication Critical patent/JP6728125B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/04Segmentation; Word boundary detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/165Management of the audio stream, e.g. setting of volume, audio stream path
    • 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/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/63Querying
    • G06F16/635Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • 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
    • 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
    • G10L15/222Barge in, i.e. overridable guidance for interrupting prompts
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • 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/223Execution procedure of a spoken command
    • 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/225Feedback of the input speech
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • G10L25/87Detection of discrete points within a voice signal

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Description

技術分野
開示された実施形態は、概して、自然言語バーチャルアシスタントにおいて、ユーザの口語入力に対するより直観的な反応を当該ユーザに提供するための、コンピュータによって実現される方法に関する。
分類分野:704/246
背景
従来のシステムにおいては、人とバーチャルアシスタントまたは他の自然言語処理システムとの間のマン・マシン対話は、厳密な順序交代ポリシーを有する。このようなバーチャルアシスタントは、先行のクエリについてのアシスタントの応答がユーザに完全に通信されるまで、新しいクエリをユーザから受付けない。このように融通性が欠如しているため、結果として、通信が不自然になってしまう。
一実施形態に従った、クエリ処理が行なわれるシステム環境を示す図である。 一実施形態に従った、クエリ処理モジュールのコンポーネントを示す図である。 さまざまな実施形態に従った、異なるシナリオでの時間の経過に伴うユーザスピーチの処理を示す図である。 さまざまな実施形態に従った、異なるシナリオでの時間の経過に伴うユーザスピーチの処理を示す図である。 さまざまな実施形態に従った、異なるシナリオでの時間の経過に伴うユーザスピーチの処理を示す図である。 さまざまな実施形態に従った、異なるシナリオでの時間の経過に伴うユーザスピーチの処理を示す図である。 さまざまな実施形態に従った、異なるシナリオでの時間の経過に伴うユーザスピーチの処理を示す図である。 さまざまな実施形態に従った、異なるシナリオでの時間の経過に伴うユーザスピーチの処理を示す図である。 さまざまな実施形態に従った、異なるシナリオでの時間の経過に伴うユーザスピーチの処理を示す図である。 さまざまな実施形態に従った、異なるシナリオでの時間の経過に伴うユーザスピーチの処理を示す図である。 一実施形態に従った、図1のクエリ処理サーバまたはクライアントデバイスの一部またはすべてとして用いられるコンピュータの物理コンポーネントを例示するハイレベルブロック図である。
上記図は、本発明のさまざまな実施形態を例示だけを目的として示している。当業者であれば、この明細書中に例示されている構造および方法についての他の代替的な実施形態が、この明細書中に記載される本発明の原理から逸脱することなく採用され得ることを、以下の記載から容易に認識するだろう。
詳細な説明
図1は、一実施形態に従った、クエリ処理が行なわれるシステム環境を示す。クライアントデバイス110のユーザは、動作についての要求(たとえば、「本日の午後7時にカールとの夕食についてカレンダーのアポイントメントを作成する(create a calendar appointment for dinner with Karl at 7 PM today)」)および情報についての要求(たとえば、「ローマでは、明日、どんな天候でしょうか?(what is the weather tomorrow in Rome?)」)を含むユーザ自身の希望を表現するのにスピーチを用いる。
図1に示される実施形態においては、クエリ処理は、ネットワーク140上に遠隔に位置するクエリ処理サーバ100上で行なわれる。しかしながら、他の実施形態においては、クエリ処理はローカルなものであり、たとえばクライアントデバイスにインストールされたバーチャル・アシスタント・アプリケーションの一部として、クライアントデバイス110上で直接行なわれる。いくつかの実施形態においては、スピーチは、サーバ100上で実行される処理がテキストセグメント上で機能している間に、クライアントデバイス110上においてローカルにセグメント化されて書き起こされる(transcribed)。いくつかの実施形態においては、サーバ100はいくつかの物理サーバにわたって分散されている。
クライアントデバイス110は、コンピューティングデバイスであって、たとえば、スマートフォン、タブレット、ラップトップコンピュータもしくはデスクトップコンピュータなど、またはスマート機器もしくは他のデバイス(たとえばデータ処理能力を備えた車もしくはコーヒーメーカー)など、または、自然言語クエリを入力することができるとともにクエリに応答を出力することができる他の任意のデバイスなどである。クライアントデバイス110は、音声を取込んでデジタルオーディオデータに変換するマイクロホンおよびA/D変換器などの音声入力装置112と、デジタルオーディオデータを対応する可聴出力に変換するD/A変換器およびスピーカなどの音声出力装置113とを有する。
(図1に示されるようなネットワークが用いられている実施形態における)ネットワーク140は、データ伝送のための如何なる好適な通信ネットワークであってもよい。図1に例示されるような一実施形態においては、ネットワーク140は、標準的な通信技術および/またはプロトコルを用いており、インターネットを含み得る。別の実施形態においては、エンティティは特定用途向けのおよび/または専用のデータ通信技術を用いる。
クエリ処理サーバ100およびクライアントデバイス110のシステムは、異なる実施形態においてさまざまな形態のハードウェアで実現され得る。すべての実施形態においては、クエリ処理論理は、この明細書中にさらに記載されるように、コンピュータによって実現されるアルゴリズムのセットである。最後に、以下の説明から明らかになるように、この明細書中に記載されるアルゴリズムおよびプロセスは、コンピュータシステム上で実現される必要があり、如何なる有用な実施形態においても、人による知的ステップを用いて実行することができない。
いくつかの実施形態は、クエリを形成して実行するために、クライアントデバイスを用いて発話(utterance)を取込み、サーバを用いて発話を処理する。いくつかの実施形態は、単一のデバイスにおいて取込みおよび処理を実行する。
図2は、一実施形態に従った、クエリ処理モジュール150のコンポーネントを示す。入力モジュール210は、デジタルオーディオストリームを入力として受取る。オーディオストリームは、音声入力装置112によって取込まれ、ユーザが話したクエリを表現し得る。「発話」はスピーチの連続セグメントである。入力モジュール210は入力されたオーディオを発話にセグメント化する。これを行なうために、入力モジュール210は、スピーチにおける一時的な停止を識別することに基づいて、または非スピーチオーディオに基づいて、または、ユーザがジェスチャ(スワイプする、ボタンを押す)もしくは他の手段を実行するなどのUIイベントに基づいて、各々の発話についての始まりおよび終わりを検出する。たとえば、特定のユーザが「明日、どんな天候でしょうか」と述べ、暫くの間(たとえば500ミリ秒)一時停止し、次いで、「ローマでは」と続ける場合、スピーチ入力は、500ミリ秒の非スピーチ部分によって分離される2つの別個の発話を含む。
図2の実施形態においては、入力モジュール210が発話ストリームを出力する。発話ストリームにおける各々の発話は、処理モジュール220によって順々に処理される。処理モジュール220における第1のステップは自然言語パーサ222を用いて解析することである。この開示においては、「解析する(parse)」「パーサ(parser)」および「解析すること(parsing)」という語は、クエリの構文を自然言語文法と照合する狭い意味で用いられるのではなく、その形式および意味の両方の観点からクエリを「認識する」というより広い意味で用いられる。このため、パーサ222は、意味論的パーサであって、その機能はクエリを認識することである。クエリ認識222は、成功した場合には、クエリの意味を表現する構造を含む。クエリの認識によりこの表現が構築され、クエリキュー244に追加される。
パーサ222はまた、構文上誤って形成されているかまたは意味論的に無意味であるクエリを拒否する。解析の試みの失敗は、さまざまな方法でさまざまなシステムによって処理される。場合によっては、エラーメッセージが応答としてユーザに送信される。他の場合には、応答が与えられない。いずれにしても、後で実行されるクエリキュー244にはクエリは追加されない。
処理モジュール220の増分的な実施形態においては、連続的な発話は、それら発話が入力モジュールから入手可能になると直ちに解析され、入力ストリームにおいて常に処理が進められる。このような実施形態においては、パーサ222は増分的なパーサである。増分解析のためのアルゴリズムは当業者にとって公知である。増分解析のコンテキストにおいては、「解析する」とは、クエリを行なう完全な解析とは対照的に、部分的に完了した解析を広く意味している。増分的なパーサは、入力トークンが入力ストリームから追加されるたびに(部分的な)解析を更新することにより、入力ストリームのうち実現可能なすべての解析(または十分に実現される可能性のある解析)を並列に維持する。クエリは、構文的な観点および意味論的な観点の両方から、部分的な解析のいずれかが完全な解析になると直ちに認識される。これが起こると、増分的なパーサは対応するクエリデータ構造を出力し、これをクエリキュー244に追加する。この時点で、パーサは、現在の解析状態から入力ストリームの処理を再開する。解析の状態は、ストリームにおけるその位置および方向と、すべての並列な部分的解析の状態とを含む。
いくつかの実施形態においては、クエリを認識するには、クエリの終端に発話の終わりの境界が存在していることが必要となる。他の実施形態においては、クエリ認識は、クエリを完了させるのに発話の終わりの境界を必要としない。後者の実施形態においては、発話ストリームから「明日、どんな天候でしょうか」を受取った後、増分的なパーサ222は第1のクエリ「どんな天候でしょうか」を認識することができ、解析の状態を維持しつつ、これをクエリキュー244に追加する。次に、「明日、どんな天候でしょうか」が第2のクエリとして認識される。(発話の終わりが必要とされる実施形態においては、第2のクエリだけが認識されるだろう。)パーサの増分的な性質により、当該パーサは、「明日、どんな天候でしょうか」という入力中の1つのクエリまたは2つのクエリを認識するために、「どんな天候でしょうか」と「明日」との間における一時停止期間などのセグメント化要因に対して高い感度を得ることができる。「ローマでは、明日、どんな天候でしょうか」(「ローマでは」の後に「明日、どんな天候でしょうか」が続いている)という拡張された入力は、追加のクエリをもたらす。この場合、3つの連続したクエリが認識され得る。
非増分的なパーサを用いる実施形態においては、同様の出力が何らかの追加処理を犠牲にして達成される。実際には、非増分的なパーサは新しい発話が連結されているとき再開される。(この開示においては、オーディオセグメントの連結を示すためにオペレータ「+」が用いられる。)たとえば、発話U1がスピーチセグメント「どんな天候でしょうか」であり、U2が「明日」であり、U3が「ローマでは」である場合、非増分的なパーサは、3つの発話U1、U1+U2およびU1+U2+U3の各々を入力として得るために順番に(コールドスタートから)再開させなければならない。いくつかの実施形態においては、複雑さが追加されるものの、増分的な実施形態と同様のクエリ認識能力を提供する、提示された技術の非増分的な実施形態が実現可能である。
共有のクエリ認識能力は以下のとおりである。発話のストリーム{Ui,i=0〜N}を入力として想定すると、パーサ222は(増分的であろうとなかろうと)、クエリのストリーム{Qk,k=0〜M}を生成することができる。この場合、クエリQkは、発話Uiから、または発話の連結Ui+…+Ujから認識される。
いくつかの実施形態においては、入力モジュール210は、自動音声認識(automatic speech recognition:ASR)を実行し、識別されたすべての発話からテキストセグメントを書き起こし、これが入力としてパーサ222に提示される。この場合、パーサ222によって入力として受取られたストリームは、オーディオセグメントからではなく、テキストセグメントまたは場合によっては単語から作成されている。パーサ222はこれに従って動作する。このため、当業者であれば、このように機能するようにクエリ処理モジュール150を容易に適合させ得るだろう。
パーサ222がクエリの認識に成功すると、パーサ222は、実施可能なデータ構造として表現されておりクエリの意味を顕著に含むクエリデータ構造を出力として作成する。クエリデータ構造は、クエリの意味を後の実行に適した形式で符号化するだけではなく、パーサ222によって生成されるとともに実行以外の目的のために有用ないずれの追加データも符号化する。便宜上、「クエリを実行する」という句は、「クエリデータ構造を実行する」ことを表すか、または代替的には、「クエリの実施可能な意味を実行する」ことを表すだろう。たとえば、「明日、どんな天候でしょうか」というクエリに応答して、パーサ222は、「どんな天候でしょうか」という核心となる質問を符号化するクエリデータ構造と、「明日」という修飾子を含む修飾子リストとを出力する。これは、現在のコンテキストにおける「明日」(time_1)の値に設定されたフィールド「時(when)」と、都市名および経緯度の対(lat_long_1)などの現在の位置にデフォルトで設定されたフィールド「場所(where)」とを備えたタイプ「天候クエリ」のクエリデータ構造を作成する。クエリに応答するために、このコマンドデータ構造は、ウェブベースの天候サービスにアクセスする手続き呼出しWEATHER_DATA(lat_long_1,time_1)によって実行され得る。
いくつかのクエリを実行することは、動作を実行すること(たとえば、特定の人との特定の時間にわたるカレンダーのアポイントメントを作成すること)または情報を調べることを含む。たとえば、天候クエリを実行することによって、ウェブベースの天候サービスにアクセスされる。上述のシナリオ例においては、天候サービスは、明日の天候を「所により曇り、高くて80低くて60」というテキスト形式の記載として記述して、関連する画像を構築する。いくつかの実施形態においては、実行モジュール224によるクエリの履行がクエリ処理モジュール150と同じシステム上で実行される。いくつかの実施形態においては、クエリを履行するには、サービスAPIモジュール241を介するリモートサービス(たとえばフライト予約システム)への呼出しが必要となる。
クエリの履行は、場合によっては、かなりの時間を必要とする可能性がある。この場合、クエリを並列に処理することが望ましい。処理モジュール220は、実行モジュール224の複数のインスタンスを用いることにより、複数のクエリを並列に実行することをサポートする。当然、Q2の処理の開始前にQ1が応答されていた場合、Q1およびQ2という2つのクエリを並列に実行するための機会はない。クエリが存在する場合(これはパーサ222によって認識されたものであり、対応するクエリデータ構造が作成されている)、そのクエリは「アクティブ」と称され、その実行モジュールは完全ではなくなる。実行が完了すると、結果クエリ234に登録される結果記録が生成される。並列実行のための候補は、同時にアクティブとなるクエリである。クエリが同時にアクティブになると、それらクエリの並列実行を許可する決定がクエリシリアライザモジュール243によって行なわれる。
クエリの実行は、ユーザに対して表示される応答を生成し得る。たとえば、情報についての要求(たとえば、「明日、どんな天候でしょうか」)は、本質的にユーザに対する応答を要求する。いくつかの実施形態においては、すべてのクエリは、結果として、応答をもたらす(たとえば、動作について要求はまた、動作が成功したか否かを示す応答を生成する)。図2の実施形態においては、これが2段階で発生する。最初に、実行モジュール224のインスタンスによってクエリが実行されると、結果記録が出力として作成される。第二に、出力マネージャ230が、結果キュー234からの結果記録に基づいて、ユーザに提示されるべき実際の応答を作成する。図2の実施形態においては、実行モジュール224のインスタンスによって作成される結果記録は、結果キュー234に入力され、出力マネージャ230が結果キュー234から結果記録を引出す。結果キュー234は、プロセス間通信キューであって、生成された結果記録のために並列−直列変換を実行する。
出力マネージャ230はユーザに応答データ(仮に存在していれば)を出力する。いくつかの実施形態においては、応答がそれを介して最終的にユーザに与えられるだろうクライアントデバイス110の能力またはデータの性質に応じて、応答データがさまざまな形式で出力される。たとえば、出力マネージャ230は、応答を口語形式で(たとえばテキスト−スピーチ間のアルゴリズムによって)出力させ得るか、または、(クライアントデバイス110がビジュアルユーザインターフェイス能力を有すると想定して)視覚的形式で出力させ得る。さらに、各々のコンポーネントはさまざまな環境下で用いられるように、短い形態および長い形態を有してもよい。出力マネージャ230はまた、応答が表示される順序を決定し得る。
サービスAPIモジュール241は、ネットワークベースのサービスについてのAPI要求を用いて、特定のクエリの実行をサポートする論理を含んでいる。たとえば、「明日、どんな天候でしょうか?」というクエリは、第三者のウェブベースの天候サービスにアクセスすることによって実行される。サービスAPIモジュール241は、特定の天候特徴(たとえば、&time=tomorrow)を表現するパラメータを含むURLに対してクエリをマッピングし得る。いくつかの実施形態においては、利用可能性および価格を含む理由から、天候サービスの1つのプロバイダに対して別のプロバイダ(one provider of weather services, \vs. another)、などの同様の機能を備えた競合するサービス同士の間で選択がなされる。
図2に示される実施形態においては、クエリがクエリキュー244に格納される。クエリは、これらクエリがパーサ222によって作成されると直ちにクエリキュー244に登録される。クエリシリアライザモジュール243は、どのクエリが並列で実行され得るかと、どのクエリが並列で実行され得ないかとを判断する。これについては後に説明する。クエリは、実行モジュール224による当該クエリの実行が完了すると、キュー244から削除される。クエリの実行は、対応する結果記録が結果キュー234に追加された時に完了する。結果キュー234は出力マネージャ230によって処理される。
一実施形態においては、クエリの並列実行が最大限にまで許可される。このような実施形態においては、処理モジュール220が、実行モジュール224の複数のインスタンスを実行することによってクエリを並列に実行する。2つのクエリは、可能であれば非同期的に実行され得る。すなわち、(1)2つのクエリがともに同時にアクティブであり(クエリキュー244がアクティブなクエリをすべて含んでいる)、(2)2つのクエリの並列実行を防ぐための直列の制約がない。クエリシリアライザモジュール243は、以下に記載されるように、アクティブなクエリ間における直列の制約の存在を判断する。これらの定義は、いくつかのアクティブなクエリの並列実行をサポートする。すべてのアクティブなクエリ間における直列の制約が判断された後では、(どのクエリが即時実行されるのに適しているかを判断する)順番付けの選択が単純になる。すなわち、先行のクエリに対する直列依存性を持たないクエリはいずれも実行するのに適している。たとえば、キューにおいてクエリQ1、Q2およびQ3がアクティブであると想定し、直列の制約がQ1がQ3の前に処理されるべきであると規定しているとする。他に直列の制約は存在しない。この場合、(入力の制約を持たない)クエリQ1およびQ2は並列実行に適している。Q3は、Q1がその実行を完了するまで実行することができない。Q1が終了すれば、Q3は実行可能となる。Q2がその時点において依然としてアクティブであれば、Q3はQ2と並列に実行されることとなる。いくつかの実施形態においては、並列性が最大限まで実施されるのを防ぐリソース制限などの他の要因によって、クエリの実行中における並列の度合いが制限される。
並列実行は多くの方法で実現することができる。一実施形態においては、複数のコンピュータを用いて、クエリストリームからのクエリを実行するために必要な並列性をサポートする。これは計算上のリソースの多用につながる。一実施形態においては、(Linux(登録商標)OSの意味での)複数の「プロセス」が、クエリ処理において並列性をサポートするのに用いられる。一実施形態においては、(同様に、Linux OSの意味での)マルチスレッドプロセスが、並列性を可能にするために複数のスレッドをサポートする(軽量処理とも称される)。別の実施形態においては、並列性は、協調的なスケジューリングによって、スレッド、中断またはタイマ無しで、適切にシミュレートされる。協調的なスケジューラにおいては、タスクは(一旦アクティブにされると)、それが制御を自発的に戻すまで実行されることが許可される。協調的なスケジューリングアプローチは、適用可能であれば、低オーバヘッドという利点を有する。これはハードウェアサポートを必要とせず、小規模な組込み型システムにおいて用いることができるが、クエリ実行は、通常、複雑すぎるので、スレッドレス・スケジューラには適していない。
クエリシリアライザモジュール243は、2つのクエリQ1およびQ2が、処理モジュール220がクエリを処理するべき相対的順序を決定する依存関係性(直列の制約)を有するかどうかを判断する役割を果たす。クエリシリアライザモジュール243が、たとえば、Q2の前にQ1を実行しなければならないと判断しない限り、アクティブな2つのクエリQ1およびQ2は並列で実行されることが可能となるだろう。
クエリシリアライザ243は、その名前が示しているように、発話に対してではなくクエリに対する直列の制約についての認識を実行する。これは、発話が未翻訳のスピーチセグメントであるからである。このため、クエリと認識されるまで、発話は、直列の制約をもたらしてしまう依存関係性の検出を可能にすることができない。さらに、あたかも対応するクエリと認識されているかのように発話を参照することは好都合であり、この規定は以下のとおり採用されている。たとえば、(引用されたテキストがスピーチのセグメントを表わしている場合)「どんな天候でしょうか」という発話と、(引用された同じテキストが解析されて翻訳されたクエリを表わしている場合)「どんな天候でしょうか」というクエリとを同じように参照することは(技術的には不正確であるが)直観的である。この定義を用いれば、(1)UがクエリQ1と認識され、かつ、(2)2つの連続した発話の連結U+UがクエリQ2と認識された場合、発話UがUの「続き」であると言明することは利便的であるだろう。この定義に従うと、「ローマでは」という発話は、「明日は、どんな天候でしょうか」という発話の続きとなる。なぜなら、大多数の文法に従うと、「ローマでは、明日、どんな天候でしょうか?」という連結された発話がクエリとして認識され得るからである。対照的に、「2%の利率では(at a 2% interest rate)という発話は、「明日、どんな天候でしょうか」という発話の続きではない。なぜなら、「2%の利率では、明日、どんな天候でしょうか」という発話は、大抵の文法ではクエリとして認識することができないからである。
クエリシリアライザ243による直列の制約の検出は、以下に説明されるように、主として論理依存性によって左右されるが、(計算上のコスト、処理遅延またはAPIにアクセスするコストなどの)実用性を検討することも同様の役割を果たす。「ローマでは、どんな天候でしょうか」というクエリは、「どんな天候でしょうか」(局所的な天候についての質問)というクエリと並列に実行可能である。なぜなら、これは、ローマにおける天候が(世界の他のいずれかの地域における)局所的な天候とは無関係であることを適正に推測するからであり、かつ、ローマにいるのであれば、局所的な天候を含む2つのクエリが連続して発行されれば、これは予想外の驚くべきこととなり得るからである。ローマにおける天候と局所的な天候とが論理依存性を有していないと推測する(かまたは地理的距離を調べることによって確認する)と、これらは並列に実行することができる。
直列の制約についての認識の別の例として、「私のホテルの近くで中華料理店を見つける(Find Chinese restaurants near my hotel)」という発話の後に「そして、格付けによって分類してください(and sort them by rating)」と続く発話について検討する。この例においては、第2の発話は第1の発話の続きであるが、先行の例とは異なり、第2のクエリに対する回答は、第1のクエリに対する回答に基づいたものとして最もよく見られるものであり、したがって、直列の制約が検出されて、並列実行が防止される。(「私のホテルの近くで中華料理店を見つける」および「私のホテルの近くで中華料理店を見つけ、そして、格付けによって分類してください」という2つのクエリを並列に実行することは可能であるが、計算上それほど効率的ではない。)
一実施形態においては、クエリシリアライザ243は、パーサ222と密に一体化されており、クエリ認識中にパーサの状態に基づいて順序付け依存性がクエリQ1とクエリQ2との間に存在しているかどうかを判断する。先行の例は、Q2が修飾子(「そして、格付けによって分類してください」)を情報探索クエリ(「私のホテルの近くで中華料理店を見つける」)に追加するたびに、クエリQ2に対する応答が先行のクエリQ1に対する応答に依存し得ることを示している。別の例として、「四つ星付き(with four stars)」という発話は、「ダウンタウンのサンホセにあるホテルを私に教えてください(Show me hotels in downtown San Jose)」という先行の発話の続きであり、かつ、この発話に対する修飾子として、ダウンタウンのサンホセにあり4つ星の格付けを有するホテルのサブセットを選択するという役割を果たす。
いくつかの実施形態においては、新しいクエリが先行の対話のコンテキストに依存しているとクエリシリアライザ243が判断すると、順序付けの制約が検出される。これは、新しいクエリが(上述のホテルの例におけるように)先行のクエリ、またはより広範には、最近のクエリに対する回答に依存している場合、起こる可能性がある。結果依存性の別の例は、「シカゴでは、気温は何度ですか?(what is the temperature in Chicago?)」の後に「ニューヨークよりも寒いですか?(is it colder in New York?)」が続くクエリである。この場合、「よりも寒い(colder)」という句は、暗黙的に先行の気温を指しており、先行の対話において言及されているものを見つけ出すことが期待されている。ここで、先行の気温は、第1のクエリが実行されるまで未知である。これは、論理(すなわちデータフロー)依存性であって、結果として、クエリ間に直列の制約をもたらして、並列実行を防止する。
一実施形態においては、依存性の照合は、会話状態(先行の対話から選択された情報を保持するデータ構造)の表現を維持して当該表現にアクセスすることに基づいている。いくつかのクエリは、会話状態に依存しているが、これは直列の制約を示唆するものではない。新しいクエリが最近のクエリに依存しているがそれに対する回答には依存していない場合、直列依存は存在しない可能性がある。たとえば、「そこでの天候はどうですか?(How is the weather there?)」などの未解決のクエリの意味を判断するために、そこでの位置が何を表わしているかを知る必要がある。同一指示の解決技術はこの問題に対応している。位置情報が無いことは、直列制約についての根拠ともなり得るが根拠にならないこともある。たとえば、「私に、土曜日のニューヨークへのフライトを見つけてください(Find me a flight to New York on Saturday)」と言った後に「そこでの天候はどうですか?」と続けた場合、直列の制約は存在しない。なぜなら、第2のクエリを解析するときに以前の対話データ(会話状態)を用いて、位置を決定することができるからである。逆に、「オバマ大統領が生まれたのはどの町でしょう(What town was President Obama born in)」と言った後に「そこでの天候はどうですか?」と続けた場合、直列の制約が存在している。なぜなら、第1のクエリを実行することによって、必要とされる位置だけを決定することができるからである。
「仮に利率が4%だったらどうでしょうか?(what if the interest rate is 4%?)」などの意味論的に不完全な別のクエリに応答するために、或る実施形態は、利率の使用を含む先行のクエリについての最近の対話を調べて、特定の利率に依存する(抵当権計算などにおいて)事前に用いられている式を見出し得る。次いで、この式が、以前の利率の代わりに4%の利率で再評価され得る。このような場合、直列の制約は存在しない。より概略的に説明すれば、結果を取得するためにクエリ実行が必要となることとは対照的に、(たとえば、結果が会話状態内にあるかまたは先行のクエリのキャッシュされた結果内にあるので)最近の対話に関する不十分なクエリの依存性を認識時間で処理することができる場合、直列の制約は存在せず、クエリ実行時間に並列性が可能となる。
クエリの認識は、クエリの実行が先行のクエリの実行に依存しているかどうかを確実に判断することができる。このことは、共有された値によって起こるものである。「そこでの天候はどうですか?」というクエリへの回答がなされた後、回答の一部として温度が予想される。「摂氏何度ですか?(what is that in Celsius?)」という後続のクエリは、先行の天候クエリの回答から温度値を用いることを必要としており、対応するクエリ間において直列の制約をもたらす。
並列−直列の変換は結果キュー234によって達成される。キューは、実行モジュール224の並列なインスタンスから非同期的に結果記録を受取り、シングルスレッドの出力マネージャ230がキューを連続的に処理する。結果キュー234におけるエントリ(結果記録)は複雑になる可能性があり、複数のマルチメディアコンポーネント、たとえば、画面上に表示される短いテキスト応答または長いテキスト応答;クライアントのテキスト−スピーチ間(text-to-speech:TTS)ソフトウェアを用いてテキストをスピーチオーディオに変換するための、TTSマークアップ付きの短いテキスト応答またはTTSマークアップ付きの長いテキスト応答;サーバのTTSソフトウェアを用いて既にテキストからオーディオに変換されていた短いスピーチ応答または長いスピーチ応答;などを含み得る。さらに、ピュアオーディオセグメントまたは音楽セグメント、オーディオ有りまたはオーディオ無しのビデオセグメント、グラフィック要素、アニメーション、および、このようなすべてのコンポーネントの視覚的または聴覚的表示についてのメタデータをも含み得る。加えて、結果記録エントリが伝達し得るスクリプト、ルールまたは制約は、出力マネージャ230によって結果記録が好ましく使用されることに適用される。
以下は、出力マネージャ230のさまざまな実施形態についてのより詳細な説明である。結果記録は、複数のコンテンツコンポーネント、たとえば、印刷すべきテキスト、TTSモジュールによってオーディオに変換すべきマークアップ付きテキスト、再生されるべき記録済みオーディオ;再生されるべき静止画像、アニメーションまたは映像を含む表示用の視覚的要素;および、URLなどの外部からの参照によってアクセス可能な一般的に任意のマルチメディアコンテンツ;などを含み得る。結果記録はまた、特定の環境下でマルチメディアデータのうちどの部分を表示しなければならないかについての詳細を含み得る。いくつかの実施形態においては、出力マネージャ230は、ユーザが見るかまたは聞く特定のマルチメディアコンテンツを選択する。いくつかの実施形態においては、クライアントデバイスには選択肢が全体的または部分的に残されている。
出力マネージャ230は、主として、コンテンツの表示の順序に関する役割を担っている。クエリを並列に処理すると、結果記録は元のクエリ順序とは異なる順序で結果キュー234によって受取られる。いくつかの実施形態においては、制約は、ユーザにマルチメディアコンテンツを送達する順序またはタイミングを制約するように結果記録によって特定される。出力マネージャ230は、特にイベントの順番付けおよび画面空間の管理の観点から、ユーザの視聴覚出力デバイスを制御する。
出力マネージャ230は、いずれかの一人のユーザのためにシングルスレッドである。これは、ユーザの経験により、結果として、制御された時間順序がもたらされることを確実にする。結果記録は非同期的に取得されるが、結果キュー234はそれらをシリアライズする。出力マネージャ230は、次いで、結果キュー234を読出すことにより、アクティブな結果のシーケンス全体にアクセスすることができる。これは、特に、出力マネージャ230が結果キュー234から結果記録をキューの順序で引出す必要がないことを意味している。
結果キュー234のいくつかの実施形態は共有メモリを用いて、結果記録自体を格納し、さらに、共有される結果記録に対するポインタを単にプロセス間キューに格納するだけである。プロセス間キューを実現するさまざまな方法が当業者に公知である。いくつかの実施形態はポインタおよびリンクに基づいている。いくつかの実施形態は、先頭インデックスおよび末尾インデックスを備えた円形の配列を用いる。これが実現可能となるのは、キュー要素が一定の要素サイズを有している(結果記録は一般にさまざまなサイズを有しているが、それら結果記録に対するポインタは一定のサイズを有する)場合であって、かつ、キューが、典型的には妥当である一定の最大サイズを有している場合である。なぜなら、大抵の応用例にとってはわずかな並列性だけで十分であるからである。円形配列の実施形態においては、出力マネージャ230は、スケジューリング選択をより適切に通知するために、キューの先頭以外の要素をピークすることができる。
出力マネージャ230はスケジューリングの制約を考慮に入れる。このような制約はグローバルデフォルトによって公知であり得る。たとえば、出力オーディオセグメントは、特に指定のない限り、時間が重複していない可能性がある。非重複のルールは、TTSからのオーディオと、音楽オーディオまたは他の記録されたオーディオとの両方にデフォルトで適用される。しかしながら、(ソフトバックグラウンドミュージックまたは特殊目的の音声などの)何らかのオーディオは、このルールから外されてもよく、フォアグラウンドオーディオの再生中に再生されてもよい。いくつかの実施形態においては、デフォルト制約以外の制約がマルチメディア結果記録の一部として指定される。(非重複のルールに準拠しない)バックグラウンドオーディオの特異点が結果記録において指定され得る。
スケジューリング制約は2つのタイプのイベント(すなわち、同時発生的イベントと連続的イベントと)を区別し得る。頻繁に起こるタイプの制約はイベント間の時間的関係である。「時間同時性」という制約は、特定の時点(同時発生的イベント、または連続的イベントの始まりもしくは終わり)が(イベントへの参照によって同様に定義される)別の時点と同期的にスケジューリングされるべきであることを示している。「優先順位」の制約は、イベントが別のイベントの前(または後)にスケジューリングされなければならないことを示している。連続的イベントは時間範囲を有する。制約は、連続的イベントがいくつかの条件下で、中断可能であるかまたは中断不可能であることを示し得る。制約は、連続的イベントが他のイベントと部分的に重複され得る条件を示し得る。たとえば、TTSオーディオセグメントに関連付けられたデフォルト制約は、別の任意の可聴イベントが相対的な音の大きさについての何らかの適切な定義に従って比較的静かに再生されるバックグラウンドミュージックでない限り、TTSオーディオセグメントが上記可聴イベントと重複し得ないことである。連続的イベントは以下を含む:
・ オーディオ(または音楽)セグメントの再生。
・ ビデオセグメントの再生。
・ TTSオーディオセグメントの再生。
・ 表示画面上に視覚的要素(テキスト、グラフィックまたはアニメーション)を視覚可能に維持。
同時発生的イベントは同時発生性の制約および先行性の制約に従う。これらは以下を含む:
・ オーディオ(または音楽)セグメントの開始[または終了]。
・ ビデオセグメントの開始[または終了]。
・ TTSオーディオセグメントの開始[または終了]。
・ 画面の一部上における何らかのテキストの出現[または消失]。
・ 画面の一部上における何らかのグラフィックの出現[または消失]。
・ 画面の一部上における何らかのアニメーションの出現[または消失]。
・ 特定の視覚的要素の画面からのスクロールオフ。
・ 上述のイベントのうちいずれかのN秒前またはN秒後の時点。
出力マネージャ230に与えられる制約のセットは過剰判断され得るかまたは過少判断され得る。制約のセットを処理して過剰判断された制約のセットを検出するために、出力マネージャ230は、以下のステップシーケンスなどの単純な手順に依拠し得る。
1)イベントを同時発生性の制約に従って同期グループにパーティショニングする。
2)イベント間の既存の先行性の制約を同期グループ間の対応する先行性の制約にマッピングする。
a)同期グループが別の同期グループの前および後の両方に存在しなければならない場合、グループをマージする;さらなる変更が不可能になるまでこのステップを繰返す。
3)スケジューリングの矛盾が依然として存在する場合、以下の戦略のうち1つ以上が用いられてもよい(戦略の順序および利用可能性は動作モードに依存している)。
a)視覚的アイコンを用いて、ユーザがオーディオセグメントの再生を制御することを可能にする(これについて以下にさらに述べる)。
b)2つのオーディオセグメントが非重複テストに失敗した場合、対応するクエリと同じ順序でオーディオセグメントを再生するためのより単純なアプローチに戻るために少なくとも1つの制約を削除する。
c)中断可能なオーディオセグメントをチェックし、トリミングを用いる。
スケジュールを決定するための十分な制約が結果記録から得られない場合、出力マネージャ230は、スケジュールを完成させるためにそれ自体の制約をさらに追加するだろう。これを行なう場合、典型的にはデフォルト戦略に依拠する。それとは逆の反対の制約が無い場合、(TTSからのオーディオを含む)オーディオセグメントはキューにおける結果記録の順序で再生される。これはデフォルト戦略である。この順序は、必ずしもクエリの元々の順序と同じであるとは限らない。後者の場合、出力マネージャ230は、元々の順序付けを保存しようと試みて、短時間だけ待った後、キューをピークしてもよい。
視覚的表示を管理するために、出力マネージャ230が使用可能な1つの戦略は、視覚的要素(テキストまたはグラフィック)を別の要素に置換えることである。この場合、タイミング制約を用いることにより、ユーザが表示を読取るのに十分な時間を得ることができる。別の戦略はスクロールすることである。これはディスプレイ装置がスクロール区域を有する場合に適用可能である。ディスプレイ装置は複数の区域に分割されていてもよく、その各々は、スクロールするものとして指定されてもよく、またはスクロールしないものとして指定されてもよい。いくつかの実施形態においては、スクロール区域が上方または下方にスクロール移動する。いくつかの実施形態においては、スクロール区域が左方または右方にスクロール移動する。視覚的要素を表示するようにとの要求が対象とする特定の地域は、スクロール移動してもよいしまたはスクロール移動しなくてもよい。いずれの場合も、要求は、その区域が表示前にクリアされることを必要とする可能性がある。
いくつかの実施形態においては、スクロールすることにより、スクロール区域の上部(または下部)において視覚的要素を追加し、新しい要素のための空間を設けるのに必要とされる限り遠くまで他の視覚的要素を移動させる。スクロール区域がフルになると、視覚的要素がスクロールされてその区域から外れてしまい、もはや視認することができなくなる。(スクロールする方向、またはフルになったときにその区域がクリアされているか否かなどのスクロール方法に関する選択が、いくつかの実施形態においては全体的に行なわれ、いくつかの実施形態においてはクエリ特有の制約によって推進される。スクロールの主な2つの変形例はスクロールされたデータの保持に応じて異なる。すなわち、「忘れる(forgetting)変形例においては、画面外に出て行ったデータは内部メモリからクリアされており、検索することができない。「記憶する(remembering)」変形例においては、画面からスクロールされて外れてしまった視覚的材料がバッファに格納され、スワイプまたは他の手段によって視界の中にスクロールして戻すことができる。いくつかの「記憶する」実施形態においては、バッファリング量の規定が制約されており、バッファデータをクリアするための環境も制約されている。
上述のとおり、オーディオセグメントは出力マネージャ230によって(オーディオセグメントの順序が応答としてそれらを引出したクエリの順序と一致するかどうか)決定された特定の順位で再生されるが、オーディオセグメントは、ユーザによって指定されない順序で一回だけ再生される。代替的な実施例は、オーディオセグメントに永続的アクセスを提供して、ユーザが「永続的な」オーディオセグメントを0回以上再生することを可能にする。永続的と指定されたオーディオセグメントのために、出力マネージャ230は、オーディオセグメントに関連付けられた視覚的GUI要素を追加する。視覚的要素は画面等のうちクリック可能またはタップ可能な区域である。視覚的要素をクリックするかタップすることにより、ユーザは、対応するオーディオセグメントの再生をトリガすることができる。これは、オーディオが中断された場合または順序がばらばらに再生される場合に特に有用である。いくつかの実施形態においては、このような視覚的要素が、出力マネージャ230の動作モードに従って、忘れるタイプまたは記憶するタイプのスクロール区域において表示される。このようなモードは、各々のマルチメディア要素タイプ(テキスト、オーディオ、映像、静的グラフィック、アニメーション)に対応するデフォルトによって、または特定のクエリに対する結果記録に付与された制約によって、または、これら両方の組合せによって推進され得る。いくつかの実施形態においては、対応するGUI要素がタップされる場合には、オーディオセグメントまたはビデオセグメントが再生されるだけである。これは、より多くの詳細を得るためのオプションをユーザに与えるために、書面テキストまたはTTSオーディオなどの短い応答が既に与えられた後には有用である。
図3〜図10は、さまざまな実施形態に従った、異なるシナリオでの時間の経過に伴うユーザスピーチの処理を示す図である。時間が水平軸に沿って示されており、さまざまな動作(リスニング、ユーザスピーチ、実行および応答)が垂直軸のさまざまな部分に示されている。「リスニング」動作は、発話ストリームに新しいスピーチ発話として含めるために入力オーディオデータを受取ってセグメント化する図2の入力モジュール210を表わしている。「ユーザスピーチ」動作は、クライアントデバイス110に口語入力を提供することによって発話ストリーム入力データを作成するユーザを表わしている。「処理」動作は、図2の処理モジュール220の処理(認識222および実行224)を表わしている。「応答」動作は、出力マネージャ230による応答データの作成を表わしている。マルチメディア応答データは、口語形式または視覚的形式ならびに他の形式でユーザに提示されてもよいが、図3〜図10においては、時間セグメントとして示されている。
図3は、図2の入力モジュール210がクエリの処理中および応答の出力中に追加入力を無視する「半二重」の実施形態を示す。具体的には、ユーザが発話Uを始める時間tにおいて、入力モジュール210は発話を規定するオーディオデータをリスニングしている。ユーザが時間tにおいて発話を終えたすぐ後の時間tにおいて、入力モジュール210は、発話が終了していると判断し、これにより、(1)追加の発話ストリーム入力データのリスニングを停止し、(2)識別された発話U(すなわち時間tとtとの間のオーディオ入力データ)の処理を開始する。発話Uの処理が時間tにおいて終了すると、出力マネージャ230は、処理の結果に基づいてオーディオ形式または視覚的形式などで応答を出力する(たとえば、Uが情報についての要求である場合、応答は要求された情報を表現している)。応答の出力がtにおいて終了すると、次いで、入力モジュール210は再び追加の発話のリスニングを開始するだけである。
図4は、図3の実施形態に起因する発声データの損失を示す。処理が行なわれている最中のtとtとの間である時間t′において、ユーザはtまで続く追加の発話U(または代替例として、t′まで続く発話U)を開始する。入力モジュール210がtになるまでリスニングを再開しないので、発話Uのすべてが失われる(かまたは、代替例においては、Uのうちtとt′との間の部分を除くすべてが失われる)。
図5は、いくつかの実施形態に従った、連続的なリスニングと、第2の発話に応答した第1の発話に関する不成功の動作とを示す。発話Uが終了したことを入力モジュールが時間tによって認識すると、処理モジュール220が処理Uを開始する。Uの処理がまだ行なわれている間の時間tにおいて、ユーザは第2の発話Uを開始する。(たとえば、ユーザは「明日、どんな天候でしょうか?」(U)と述べ、一旦停止して、次に「ローマでは」(U)と続ける。)いくつかの実施形態においては、処理モジュール220は、Uの始まりを検出するために処理Pが完了する前にこの処理Pを終了させる。他の実施形態においては、処理モジュール220はUの処理を完了させるが、Pの処理が行なわれている間、Uのリスニングも継続する。これにより、Uが完了したときにUに対する処理Pを実行することができるようになる。
図5の実施形態においては、Pが完了した後、応答Rが提供される。Uを認識した後に、UがUの続きであると図2のクエリシリアライザ243が判断した場合、処理モジュール220は、UおよびUの連結に起因するクエリを実行し、このクエリに基づいて応答Rを提供して、先行の応答を出力しないことにより、Pだけに基づいてこのような先行の応答をいずれも廃棄する。
対照的に、UがUの続きではなかったと処理モジュール220が判断した場合、処理モジュール220は、Uとは別個にUを処理する。先の例に続けて、Uが「明日、どんな天候でしょうか」であり、Uが「カレンダーのアポイントメントを作成する」であった場合、いくつかの実施形態においては、応答Rは、UおよびUの両方に対する応答(たとえば、天候の説明、およびカレンダーアポイントメントの作成が成功したかどうかの記載)を含む。(図5には示されない)他の実施形態においては、応答マネージャ230は、たとえば、UがUの続きではないと処理Pによって判断されると直ちに、Pに基づいて応答Rを出力する前に、処理Pに基づいて応答を出力し始める。
ネットワーク待ち時間またはオペレーティングシステムのプロセス間通信待ち時間があるため、場合によっては、ユーザが第2の発話を開始した後に第1の発話の処理を開始することが可能になる。本発明は、第2の発話の損失を確実に防ぐ。処理モジュール220は、最終的に第2の発話についてのオーディオを受取ると、適切に動作するはずである。場合によっては、適切な動作は処理Pをキャンセルすることである。場合によっては、適切な動作は、Pを終了させてその結果を廃棄することである。場合によっては、適切な動作は、処理Pの結果とは無関係にPの結果を提供することである。
図6は、一実施形態に従った並列なクエリ処理を示す。tにおいてUの処理Pを開始した後、第2の発話(U)が開始する。処理モジュール220は、Uの処理Pを続け、Uの完了後にUの処理Pを開始する。(仮にUがUの続きであったと処理モジュール220が判断していれば、いくつかの実施形態においては、代わりに、UとUとの連結を処理していただろう。)処理モジュール220は、別個の実行スレッドで、ステップPおよびPを、図6の例において時間tと時間tとの間で行なわれているように並列に行なうことができるように、実行する。応答モジュール130は、それぞれの処理(すなわちPおよびP)が終了した直後に、UおよびU(すなわち、RおよびRのそれぞれ)に対応する応答を出力する。
図7は、一実施形態に従った、処理完了の順序に基づいてクエリ応答をばらばらの順序で出力することを示す。発話UはUの前に始まって、これに応じてUのための処理PがUのためのPの前に始まるが、PはPよりも早く完了する(たとえば、Pがより計算集約的であるか、またはより長い待ち時間などを有する外部サービスの使用を必要とするからである)。したがって、Uについての応答Rは、(tから始まる)Uについての応答Rよりも早く(tから始まる)出力される。図7に示される実施形態においては、出力マネージャ230は、たとえ応答Rがより早い時間tにおいて準備ができていたとしても。Rの出力が完了すると、時間tまで応答Rの提供の開始を遅らせる。このような遅延は、応答が聞き取れるように出力される場合などに、重複する応答の出力が逸らされるような態様でこれらの応答が出力されれば、有益である。(図7に示されない)他の実施形態においては、または、さまざまな応答がユーザに逸らされることなく重複した時間に出力され得る状況の場合(たとえば、応答が、ビジュアルユーザインターフェイスのさまざまな部分において視覚的に出力され得る場合)、より後の時間に準備のできた応答は、より早い応答が完全に出力されるまで遅らせなくてもよい。
図8は、応答が、それらの対応する発話が受取られた順序に対応する順序で出力される実施形態を示す。すなわち、UがUよりも前に受取られているので、対応する応答RはRよりも前に出力される。この場合、出力マネージャ230は、第1の発話Uの処理Pが完了するまで、如何なる応答の出力をも遅らせる。それらの対応する発話と同じ順序で結果を提供することは、結果が同様のタイプでありユーザにとって容易に識別可能とならない場合など、たとえば、UおよびUの両方が天候状態に関係する場合などのいくつかの事例においては有益である。上述のように、いくつかの実施形態またはシナリオにおいては、Rは、Rと時間を部分的にまたは全体的に重複させて出力することができるかもしれない。これは、たとえば、第1の結果が天候に関するものであり第2の結果が住民数に関するものである場合などのように、上記結果が異なるタイプであるためにユーザにとって容易に識別可能である状況においては、許容可能である。
図9は、一実施形態に従った、連続する発話間の依存性に基づいて第2の応答を提供する際の遅延を示す。入力モジュール210が発話Uの終わりを検出した後、処理モジュール220は、クエリシリアライザに関して上述したように、時間tによって(たとえば、連結U+Uをうまく解析しようと試みることによって)UがUの続きであることと、Uに対する応答がUに対する応答に依存することとを判断し得る。したがって、処理モジュール220は、Pが完了する(とともに、これにより応答Rが計算される)まで処理の実行段階を遅らせる。Pが時間tにおいて完了すると、処理モジュールは、処理P、応答Rを基礎として応答Rを規定し、Pが完了したtにおいてRを出力する、という実行段階を実行する。
図10は、一実施形態に従った応答の中断を示す。パーサ222は、段階Pにおいて処理されるクエリQ1を作成する発話Uを処理し、時間tまでに応答Rを生成する。出力マネージャ230は時間tにおいて応答Rを出力し始める。より遅い時間tにおいて、入力モジュール210は第2の発話Uを検出し、U+UがクエリQとして解析される。一実施形態においては、QおよびQの論理関係性がクエリシリアライザ243によって分析されてから、時間tにおいて出力マネージャ230によって応答Rの出力を停止させ、代わりに、時間tで処理Pを開始し、時間tにおいて結果Rを出力する。したがって、出力マネージャ230はRの出力を停止させる。たとえば、Uが「明日、どんな天候でしょうか」という句であった場合、出力モジュールは、ユーザの現在の位置について翌日の予測された天候の記述を出力し始めるが、Uが「ローマでは」という句であった場合、(ユーザがローマまたはその付近にはいないと想定して)ユーザの現在の位置における翌日の天候は関連性がなくなるだろう。このため、出力マネージャ230は、局所的な天候の記述を出力するのを停止するだろう。
コンピュータアーキテクチャの例
図11は、一実施形態に従った、図1のクエリ処理サーバ100またはクライアントデバイス110の一部またはすべてとして用いられるコンピュータ1100の物理コンポーネントを例示するハイレベルブロック図である。チップセット1104に結合された少なくとも1つのプロセッサ1102が示される。チップセット1104には、メモリ1106、ストレージデバイス1108、キーボード1110、グラフィックスアダプタ1112、ポインティングデバイス1114およびネットワークアダプタ1116が結合される。ディスプレイ1118はグラフィックスアダプタ1112に結合される。一実施形態においては、チップセット1104の機能は、メモリコントローラハブ1120およびI/Oコントローラハブ1122によって提供される。別の実施形態においては、メモリ1106が、チップセット1104の代わりにプロセッサ1102に直接結合される。
ストレージデバイス1108は、ハードドライブ、コンパクトディスク読取り専用メモリ(compact disk read-only memory:CD−ROM)、DVDまたはソリッドステートメモリデバイスなどの任意の非一時的なコンピュータ読取り可能記憶媒体である。メモリ1106は、プロセッサ1102によって用いられる命令およびデータを保持する。ポインティングデバイス1114は、マウス、トラックボールまたは他のタイプのポインティングデバイスであってもよく、コンピュータ1100にデータを入力するためにキーボード1110と組合わせて用いられる。グラフィックスアダプタ1112は画像および他の情報をディスプレイ1118上に表示する。ネットワークアダプタ1116はコンピュータ1100をローカルエリアネットワークまたはワイドエリアネットワークに結合する。
当該技術において公知であるように、コンピュータ1100は、図11に示されるものとは異なるコンポーネントおよび/または図11に示される以外のコンポーネントを含み得る。加えて、コンピュータ1100には、図示されるいくつかのコンポーネントが含まれていない可能性がある。一実施形態においては、サーバとして機能するコンピュータ1100には、キーボード1110、ポインティングデバイス1114、グラフィックスアダプタ1112および/またはディスプレイ1118が含まれていない可能性がある。さらに、ストレージデバイス1108は、(ストレージエリアネットワーク(storage area network:SAN)内で具体化されるような)コンピュータ1100からローカルおよび/またはリモートであってもよい。
当該技術において公知であるように、コンピュータ1100は、この明細書中に記載される機能を提供するためのコンピュータプログラムモジュールを実行するように適合されている。この明細書中において用いられているように、「モジュール」という語は、特定の機能を提供するために利用されるコンピュータプログラム論理を指している。このため、モジュールはハードウェア、ファームウェアおよび/またはソフトウェアにおいて実現することができる。一実施形態においては、プログラムモジュールは、ストレージデバイス1108上に格納され、メモリ1106にロードされ、プロセッサ1102によって実行される。
他の検討事項
多くの変更例および変形例が当業者にとって明らかになるだろう。変更例および変形例は、開示された特徴の如何なる関連する組合せをも含む。明細書における「一実施形態」または「或る実施形態」についての言及は、実施形態に関連して記載された特定の機能、構造または特徴が少なくとも1つの実施形態に含まれていることを意味している。明細書のさまざまな箇所における「一実施形態における」という句は必ずしもすべてが同じ実施形態を指しているわけではない。不定冠詞「a」および「an」は、文脈に応じて適宜、単数形および複数形を共に含むものと理解されるべきである。このため、「ブロック」は、たとえば、「少なくとも1つのブロック」を意味するものと理解されるべきである。
なお、プロセスステップおよび命令がソフトウェア、ファームウェアまたはハードウェアで具体化されるものであり、かつ、ソフトウェアで具体化される場合には、さまざまなオペレーティングシステムによって用いられるさまざまなプラットフォーム上に常駐するようにダウンロードすることができ、さまざまなオペレーティングシステムによって用いられるさまざまなプラットフォームから動作させることができることに留意されたい。
この明細書中における動作は装置によって実行されてもよい。さらに、この明細書中において言及されるコンピュータは、シングルプロセッサを含み得るか、または、高いコンピューティング能力のために複数のプロセッサ設計を採用しているアーキテクチャであってもよい。この明細書中に記載されるように本発明の教示を実現するためにさまざまなプログラミング言語が使用され得ること、および、特定言語についての以下のいずれの言及も本発明の使用可能性および最適モードを開示するためになされたものであることが認識されるだろう。
本発明が好ましい実施形態およびいくつかの代替的な実施形態に関連付けて特別に図示および記載されてきたが、当業者であれば、形式および詳細のさまざまな変更が、本発明の精神および範囲から逸脱することなくこの明細書中でなされ得ることを理解するだろう。
最後に、明細書において用いられる言語が主に読みやすさおよび教示の目的で選択されたものであり、発明の主題を詳細に描写するかまたは限定するために選択されたものでない可能性があることに留意されたい。したがって、本発明の開示は、添付の特許請求の範囲において記載されている発明の範囲を限定するのではなく例示するものとして意図されている。
100 クエリ処理サーバ、110 クライアントデバイス、112 音声入力装置、113 音声出力装置、140 ネットワーク、150 クエリ処理モジュール。

Claims (9)

  1. 口語入力に対する応答を生成する、コンピュータによって実現される方法であって、前記方法は、
    オーディオ入力ストリームを取得するステップと、
    前記オーディオ入力ストリームにおいて第1の発話の始まりを検出するステップと、
    前記オーディオ入力ストリームにおいて前記第1発話の終わりを検出するステップと、
    前記第1の発話の前記終わりを検出したことに応じて、第1のクエリを認識するために前記第1の発話の処理を開始するステップと、
    前記第1の発話を処理している間、
    前記オーディオ入力ストリームを受取り続けるステップと、
    前記オーディオ入力ストリームにおいて第2の発話の始まりを検出するステップと
    第1の応答を決定するために前記第1のクエリを実行するステップと、
    前記オーディオ入力ストリームにおいて前記第2の発話の終わりを検出するステップと、
    第2のクエリを認識するために前記第2の発話を処理するステップと、
    前記第1のクエリと前記第2のクエリとの間の直列の依存性を識別するステップと、
    前記第2のクエリにおける要素が前記第1のクエリの実行によって決定される場合に、前記第1のクエリと前記第2のクエリが並行して実行され得ないと決定するステップと、を含み、
    前記第1のクエリと前記第2のクエリが並行して実行され得ないと決定された場合に、前記第1のクエリの実行の後で前記第2のクエリが実行されるように前記第2のクエリの実行が遅らされ、前記方法は、さらに、
    第2の応答を決定するために前記第2のクエリを実行するステップと、
    前記第2の応答を出力するステップと、を含む、コンピュータによって実現される方法。
  2. 前記第1の応答を出力するステップは前記第2のクエリを実行するステップと同時に実行される、請求項に記載の、コンピュータによって実現される方法。
  3. 前記第1の応答は視覚的に出力され、前記方法はさらに、
    前記第1の応答が視覚的に出力されてから表示期間が経過したかどうかを判断するステップと、
    前記表示期間の経過後に前記応答の視覚的な出力をクリアするステップとを含む、請求項1または2に記載の、コンピュータによって実現される方法。
  4. 発話の終わりを検出することは、口語の前記オーディオ入力ストリームにおける一時的な停止、前記オーディオ入力ストリームにおける非スピーチ部分、および、ユーザによって実施されたユーザ入力イベント、の中の少なくとも一つを識別することを含む、請求項1〜3のいずれか1項に記載の、コンピュータによって実行される方法。
  5. 前記直列の依存性を識別するステップは、前記第1のクエリと前記第2のクエリの内容に基づく、請求項1〜4のいずれか1項に記載の、コンピュータによって実行される方法。
  6. 請求項1からのいずれか1項に記載の方法をコンピュータに実行させるためのプログラム。
  7. 請求項に記載のプログラムを格納するように構成されたメモリと、
    前記メモリに格納された前記プログラムを実行するように構成されたプロセッサとを含む、コンピュータ。
  8. 請求項に記載のプログラムを格納するように構成されたメモリと、
    前記メモリに格納された前記プログラムを実行するように構成されたプロセッサとを含む、スマート機器。
  9. 請求項に記載のプログラムを格納するように構成されたメモリと、
    前記メモリに格納された前記プログラムを実行するように構成されたプロセッサとを含む、車。
JP2017230590A 2016-12-22 2017-11-30 自然言語バーチャルアシスタントでの全二重発話処理 Active JP6728125B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/389,122 2016-12-22
US15/389,122 US10311875B2 (en) 2016-12-22 2016-12-22 Full-duplex utterance processing in a natural language virtual assistant

Publications (2)

Publication Number Publication Date
JP2018106702A JP2018106702A (ja) 2018-07-05
JP6728125B2 true JP6728125B2 (ja) 2020-07-22

Family

ID=60937550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017230590A Active JP6728125B2 (ja) 2016-12-22 2017-11-30 自然言語バーチャルアシスタントでの全二重発話処理

Country Status (6)

Country Link
US (2) US10311875B2 (ja)
EP (1) EP3340241A1 (ja)
JP (1) JP6728125B2 (ja)
KR (1) KR102192062B1 (ja)
CN (1) CN108228131B (ja)
HK (1) HK1256569A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10095759B1 (en) 2014-01-27 2018-10-09 Microstrategy Incorporated Data engine integration and data refinement
US11921715B2 (en) 2014-01-27 2024-03-05 Microstrategy Incorporated Search integration
US10255320B1 (en) 2014-01-27 2019-04-09 Microstrategy Incorporated Search integration
US11386085B2 (en) 2014-01-27 2022-07-12 Microstrategy Incorporated Deriving metrics from queries
US10210095B2 (en) * 2017-07-06 2019-02-19 International Business Machines Corporation Configurable hardware queue management and address translation
CN107832439B (zh) 2017-11-16 2019-03-08 百度在线网络技术(北京)有限公司 多轮状态追踪的方法、系统及终端设备
US11347801B2 (en) * 2018-05-07 2022-05-31 Google Llc Multi-modal interaction between users, automated assistants, and other computing services
WO2019216875A1 (en) 2018-05-07 2019-11-14 Google Llc Multi-modal interaction between users, automated assistants, and other computing services
US11200893B2 (en) * 2018-05-07 2021-12-14 Google Llc Multi-modal interaction between users, automated assistants, and other computing services
CN112867985A (zh) 2018-05-07 2021-05-28 谷歌有限责任公司 确定在中断第二会话的中止后是否自动恢复第一自动助理会话
EP3596599A1 (en) 2018-05-07 2020-01-22 Google LLC Activation of remote devices in a networked system
US11979360B2 (en) * 2018-10-25 2024-05-07 Microsoft Technology Licensing, Llc Multi-phrase responding in full duplex voice conversation
WO2021034038A1 (en) * 2019-08-22 2021-02-25 Samsung Electronics Co., Ltd. Method and system for context association and personalization using a wake-word in virtual personal assistants
CN112447177B (zh) * 2019-09-04 2022-08-23 思必驰科技股份有限公司 全双工语音对话方法及系统
CN112735398B (zh) * 2019-10-28 2022-09-06 思必驰科技股份有限公司 人机对话模式切换方法及系统
KR20210066647A (ko) 2019-11-28 2021-06-07 삼성전자주식회사 전자 장치 및 이의 제어 방법
US11614970B2 (en) 2019-12-06 2023-03-28 Microstrategy Incorporated High-throughput parallel data transmission
US11567965B2 (en) 2020-01-23 2023-01-31 Microstrategy Incorporated Enhanced preparation and integration of data sets
CN112382285B (zh) * 2020-11-03 2023-08-15 北京百度网讯科技有限公司 语音控制方法、装置、电子设备和存储介质
US11978454B2 (en) * 2021-09-16 2024-05-07 Soundhound Ai Ip, Llc Multiple service levels for automatic speech recognition

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5652789A (en) 1994-09-30 1997-07-29 Wildfire Communications, Inc. Network based knowledgeable assistant
US8374875B2 (en) * 2000-01-31 2013-02-12 Intel Corporation Providing programming information in response to spoken requests
US6757362B1 (en) 2000-03-06 2004-06-29 Avaya Technology Corp. Personal virtual assistant
US7319992B2 (en) 2000-09-25 2008-01-15 The Mission Corporation Method and apparatus for delivering a virtual reality environment
US7117442B1 (en) 2001-02-01 2006-10-03 International Business Machines Corporation Efficient presentation of database query results through audio user interfaces
JP4021287B2 (ja) * 2002-09-09 2007-12-12 日立ソフトウエアエンジニアリング株式会社 データベース検索プログラム、データベース検索方法及びデータベース検索装置
WO2006069358A2 (en) 2004-12-22 2006-06-29 Enterprise Integration Group Turn-taking model
JP2007304793A (ja) * 2006-05-10 2007-11-22 Nippon Telegr & Teleph Corp <Ntt> 文書検索装置
US20070274297A1 (en) 2006-05-10 2007-11-29 Cross Charles W Jr Streaming audio from a full-duplex network through a half-duplex device
CN102413374A (zh) * 2006-08-18 2012-04-11 索尼株式会社 具有可换个性适配器的能自动重配置多媒体系统
US8112280B2 (en) 2007-11-19 2012-02-07 Sensory, Inc. Systems and methods of performing speech recognition with barge-in for use in a bluetooth system
US8279779B2 (en) 2009-12-10 2012-10-02 Verizon Patent And Licensing Inc. Method and system for virtual agent session monitoring and barge-in
US8805683B1 (en) * 2012-02-24 2014-08-12 Google Inc. Real-time audio recognition protocol
US9208225B1 (en) * 2012-02-24 2015-12-08 Google Inc. Incentive-based check-in
US9384734B1 (en) * 2012-02-24 2016-07-05 Google Inc. Real-time audio recognition using multiple recognizers
US9280599B1 (en) * 2012-02-24 2016-03-08 Google Inc. Interface for real-time audio recognition
JP2014109889A (ja) * 2012-11-30 2014-06-12 Toshiba Corp コンテンツ検索装置、コンテンツ検索方法及び制御プログラム
US9286395B1 (en) * 2013-07-25 2016-03-15 Google Inc. Modifying query in discourse context
WO2015019662A1 (ja) * 2013-08-07 2015-02-12 日本電気株式会社 分析対象決定装置及び分析対象決定方法
RU2564629C1 (ru) * 2014-03-31 2015-10-10 Общество с ограниченной ответственностью "Аби ИнфоПоиск" Способ кластеризации результатов поиска в зависимости от семантики
US20150310863A1 (en) * 2014-04-24 2015-10-29 Nuance Communications, Inc. Method and apparatus for speaker diarization
CN104066254B (zh) * 2014-07-08 2017-01-04 昂宝电子(上海)有限公司 使用triac调光器进行智能调光控制的系统和方法
US9318107B1 (en) * 2014-10-09 2016-04-19 Google Inc. Hotword detection on multiple devices
US10614799B2 (en) * 2014-11-26 2020-04-07 Voicebox Technologies Corporation System and method of providing intent predictions for an utterance prior to a system detection of an end of the utterance
US10198405B2 (en) * 2015-07-08 2019-02-05 Microsoft Technology Licensing, Llc Rule-based layout of changing information
US10269341B2 (en) * 2015-10-19 2019-04-23 Google Llc Speech endpointing

Also Published As

Publication number Publication date
CN108228131B (zh) 2021-03-19
US10311875B2 (en) 2019-06-04
HK1256569A1 (zh) 2019-09-27
KR102192062B1 (ko) 2020-12-16
JP2018106702A (ja) 2018-07-05
US20180182398A1 (en) 2018-06-28
CN108228131A (zh) 2018-06-29
KR20180073493A (ko) 2018-07-02
US10699713B2 (en) 2020-06-30
US20190244621A1 (en) 2019-08-08
EP3340241A1 (en) 2018-06-27

Similar Documents

Publication Publication Date Title
JP6728125B2 (ja) 自然言語バーチャルアシスタントでの全二重発話処理
JP7418526B2 (ja) 自動アシスタントを起動させるための動的および/またはコンテキスト固有のホットワード
JP7064018B2 (ja) 複数の年齢グループおよび/または語彙レベルに対処する自動化されたアシスタント
EP3895161B1 (en) Utilizing pre-event and post-event input streams to engage an automated assistant
KR102498811B1 (ko) 자동화된 어시스턴트를 호출하기 위한 다이내믹 및/또는 컨텍스트 특정 핫워드
KR101888801B1 (ko) 음성 작동형 문서 탐색 및 브라우징을 위한 디바이스, 방법 및 사용자 인터페이스
JP7487276B2 (ja) 検出された口運動および/または注視に基づく自動化アシスタントの適応
JP2023103313A (ja) 検出されたジェスチャおよび凝視に基づく自動化アシスタントの機能の呼び出し
JP7384976B2 (ja) 割込みをかける第2のセッションの終了時に第1の自動アシスタントセッションを自動的に再開するかどうかを決定すること
JP2023017791A (ja) アシスタントデバイスのディスプレイにレンダリングするコンテンツの選択
JP2024510698A (ja) アシスタントコマンドの文脈的抑制
US20230230578A1 (en) Personalized speech query endpointing based on prior interaction(s)
US20230252995A1 (en) Altering a candidate text representation, of spoken input, based on further spoken input

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190123

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200602

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200701

R150 Certificate of patent or registration of utility model

Ref document number: 6728125

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250