以下、図面と共に本発明に係る機能実行指示システム、機能実行指示方法及び機能実行指示プログラムの実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
図1に本実施形態に係る機能実行指示システム1を示す。機能実行指示システム1は、機能実行指示サーバ10と音声認識サーバ20とを備えて構成される。機能実行指示システム1は、通信端末30に対して予め設定された1つ以上の機能の実行を指示するシステムである。機能実行指示システム1から通信端末30に対して実行が指示される機能は、例えば、レシピ検索、乗換案内、グルメ検索(飲食店検索)、画像検索、音楽検索、音楽プレーヤ、スケジューラ、メール作成、メモ、ルート案内、地図検索、電話、カメラが相当する。なお、本実施形態では、実行される機能をタスクと呼ぶ。具体的には、レシピ検索、乗換案内、グルメ検索、画像検索、音楽検索、地図検索等に関しては、例えば、通信端末30において案内や検索結果の情報の要求が行われて、取得された当該案内や検索結果の情報が表示出力される。
また、メール作成、音楽プレーヤ、スケジューラ、電話、カメラ等に関しては、通信端末30においてそれらのタスクを実行するためのアプリケーションプログラムが起動される。更に指示の内容によっては、アプリケーションプログラム起動後の動作も行われる。例えば、メール作成のタスクでは、メール本文や宛先への情報の入力が行われる。
通信端末30は、通信網(例えば、移動体通信網)を介して機能実行指示サーバ10及び音声認識サーバ20等と通信を行うことができる装置であり、例えば、携帯電話機やPC(Personal Computer)に相当する。上記のタスクは、ユーザの音声をトリガとして実行されるため、通信端末30はユーザの音声を入力する機能を有している。また、通信端末30は、機能実行指示システム1からの指示を受けてタスクを実行する機能、例えば、情報の受信機能、情報処理機能及び表示機能等を有している。
即ち、通信端末30は、1つ以上の(あるいは複数の)タスクを実行する機能実行手段を有している。具体的には、通信端末30は、タスクに対応するアプリケーションプログラムを予め記憶しておき、記憶したアプリケーションプログラムを実行(起動)することによってタスクを実行する。通信端末30によって実行されるタスクは、後述するように機能実行指示サーバ10によって指示される。また、タスクの実行は、アプリケーションプログラムを実行する以外にも、ネットワークからタスクに応じた情報を取得することで行われてもよい。
機能実行指示システム1による通信端末30に対するタスクの実行の指示は、次のように行われる。まず、通信端末30がユーザの音声を入力する。入力された音声は、通信端末30から音声認識サーバ20に送信される。音声認識サーバ20は、通信端末30から音声を受信し、受信した音声に対して音声認識を行う。音声認識サーバ20は、音声認識の結果である文章(自然文)を通信端末30に送信する。通信端末30は、音声認識の結果を受信して、更に機能実行指示サーバ10に送信する。機能実行指示サーバ10は、当該音声認識の結果を受信して、その音声認識の結果に基づいて実行すべきタスクを決定して、当該タスクを実行するように通信端末30に指示する。例えば、機能実行指示サーバ10は、実行すべきタスクを示す情報を通信端末30に送信する。通信端末30は、機能実行指示サーバ10からの指示を受信して、当該指示に応じたタスクを実行する。なお、音声認識の結果である文章はいったん通信端末30に送られることなく、音声認識サーバ20から機能実行指示サーバ10へ直接送信されてもよい。更に、機能実行指示サーバ10と音声認識サーバ20は一体であってもよい。
例えば、通信端末30のユーザが「田中さんに今日はありがとうとメール」と発話した場合には、機能実行指示サーバ10において、田中宛に「今日はありがとう」との文面のメールを作成するタスクが実行されるものと判断されて、メール作成のタスクの実行が通信端末30に指示される。以上が、本実施形態に係る機能実行指示システム1の概要である。
引き続いて、本実施形態に係る機能実行指示システム1の機能について説明する。音声認識サーバ20は、音声を入力して、入力した音声に対して音声認識を行い、音声認識を行った結果を出力する音声認識手段である装置である。具体的には、上述したように音声認識サーバ20は、通信端末30から音声データを受信する。音声認識サーバ20は、音声認識エンジンを有しており、当該音声認識エンジンを用いて音声認識を行う。音声認識自体は、従来の任意の音声認識方法を利用することができる。音声認識サーバ20は、音声認識結果を文章として取得して、通信端末30に送信する。なお、この文章は複数の単語あるいは文字が連続的に繋がった構成の情報であってもよい。
図1に示すように、機能実行指示サーバ10は、機能実行指示部11と、文章入力部12と、実行機能決定部13と、抽出部14とを備えて構成される。
機能実行指示部11は、通信端末30に対して、1つあるいは複数のタスクの実行を指示する機能実行指示手段である。具体的には、機能実行指示部11は、タスクを実行させるコマンドを通信端末30に送信することでタスクの実行を指示する。機能実行指示部11によって実行が指示されるタスクは、後述するように実行機能決定部13によって決定される。
また、実行が指示されるタスクには、情報を入力(引数)とすることができるものがある。これをタスクのスロットと呼ぶ。スロットはタスク毎に予め定められている。例えば、図2に示すようにメール作成のタスクであれば、宛名及び本文をスロットへの入力としてタスクが実行される。あるいは、レシピ検索のタスクであれば、料理名や調理方法等のキーワードをスロットへの入力として、入力されたキーワードに関してレシピが検索される。なお、タスクには0個以上のスロットが定義されている。即ち、スロットがないタスクもある。スロットがないタスクの場合、後述するようなスロットに入力する情報の抽出は行われない。
スロットは、スロット毎に予め設定されたカテゴリに対応付けられている。カテゴリは、例えば、入力される情報を属性毎に区分けするものであり、スロットに受け入れることができる情報の型を示している。例えば、カテゴリは、「人名」、「テキスト」、「料理名」及び「料理方法」である。上記のカテゴリのうち「人名」、「料理名」及び「料理方法」のカテゴリのスロットは、それぞれ「人名」、「料理名」及び「料理方法」に相当する単語のみを入力することができる。即ち、これらのカテゴリのスロットは、特定の単語、あるいは特定の表現の情報のみを入力することができる。また、上記のカテゴリのうち、「テキスト」カテゴリのスロットは、テキストを入力することができる。即ち、「テキスト」カテゴリのスロットは、属性に限定されない任意の情報(文章)を入力することができるスロットである。
例えば、メール作成の宛名のスロットであれば、「人名」のカテゴリに対応付けられており、本文のスロットであれば、「テキスト」のカテゴリに対応付けられている。また、レシピ検索のキーワードのスロットであれば、「料理名」及び「調理方法」の2つのカテゴリに対応付けられている。このように1つのスロットに対して複数のスロットが対応付けられていてもよい。なお、1つのスロットに複数のカテゴリが対応付けられている場合には、それらのカテゴリ毎に順序(優先度)を示す情報が対応付けられている。この順序についてはより詳細には後述する。
これらの対応付けは、例えば、予め機能実行指示システム1の管理者等によって機能実行指示サーバ10に入力されて記憶されている。これらの対応付けは、後述するように文章からスロットに入力される情報の抽出の処理に用いられる。具体的にどのように用いられるかは後述する。
図2に示すように、スロットには、それぞれ「スロット型」、「サイズ」の情報が対応付けられている。「スロット型」は、スロットに入力されるカテゴリを特定する情報であり、例えばカテゴリIDの情報を示している(保持している)。「サイズ」は、スロットに入力される情報(単語)の数を示している。
文章入力部12は、文章を入力する文章入力手段である。具体的には、文章入力部12は、通信端末30から、音声認識サーバ20による音声認識の結果である文章を示す情報(入力文、テキストデータ)を受信することで上記の情報を入力する。文章入力部12に入力される文章は、通信端末30に対するユーザの発話単位である。即ち、一回の発話に含まれる文章(文章群)を一つの単位として扱う。文章入力部12は、入力した文章を示す情報を実行機能決定部13及び抽出部14に入力する。
実行機能決定部13は、文章入力部12から入力された文章に基づいて、上記の1つあるいは複数のタスクから機能実行指示部11によって実行が指示されるタスクを決定する実行機能決定手段である。例えば、実行機能決定部13は、機械学習によって得られた学習モデル(判定ルール)を用いてタスクを決定(判定)することとしてもよい。タスクの決定は、文章をどのタスクに分類するかという文書分類問題に帰着される。そこで、例えば、予めタスクに対応付いた発話事例を収集する。例えば、カメラを起動するタスクの発話例としては、「カメラ起動」「写真撮影」「ビデオを撮りたい」といった発話事例を収集する。同様に、飲食店検索、ショッピング検索等のタスクについてもタスクに応じた発話事例を収集する。
この発話事例を正解データ(サンプルデータ)として機械学習を行い、機械学習によって得られた学習モデルを用いてタスクを決定する。実行機能決定部13は、文章入力部12から入力された文章、例えば「来週の水曜日に会議の予定を登録」といった文章を学習モデルに基づくタスク識別器に入力して、当該タスク識別器によってタスクを決定する。例えば上記の発話例では、スケジュールのタスクが実行されるタスクとして決定される。なお、実行機能決定部13は、機械学習によって得られた学習モデルに基づくタスク識別器を利用できればよく、必ずしも機能実行指示サーバ10において機械学習が行われる必要はない。その場合、機能実行指示サーバ10は上記の機械学習を行った装置から、学習モデルを示す情報を予め取得しておく。
なお、上記の機械学習及び学習モデルに基づくタスクの決定は、より具体的には以下のように行われてもよい。まず、入力された文章に対して形態素解析を行って文章から単語(形態素)を取得する。続いて、単語の抽象化を行う。具体的には、実行機能決定部13は、予め単語とカテゴリとを対応付けた情報であるカテゴリ辞書に基づいて単語にカテゴリを示すカテゴリ情報を付与する。用いる辞書は、100万語レベルのものを用いるのがよい。機械学習によって、単語はカテゴリ情報に応じてクラスタリングされてもよい。上記の単語、文章のuni−gram、bi−gram及びtri−gram、単語に付与されたカテゴリ情報(あるいはこれらの組み合わせ)から、文章の特徴量を生成(あるいは選択)する。上記の機械学習及び学習モデルに基づくタスクの決定は、この特徴量に基づいて行われてもよい。
また、実行機能決定部13は、上記の機械学習による方法以外にも予めタスク毎に単語、あるいはカテゴリにスコアを設定しておき、文章に含まれる単語、あるいは当該単語に対応付けられたカテゴリから、スコアを特定し、そのスコアに基づいてタスクを決定してもよい。例えば、合計のスコアが最も高いタスクを、実行が指示されるタスクに決定することとしてもよい。この場合の単語又はカテゴリのスコアは、タスクとの関連度合に応じて定められている。
また、実行機能決定部13による実行が指示されるタスクの決定は、入力された文章に基づくものであればよく上記以外の任意の方法を用いることができる。実行機能決定部13は、決定したタスクを抽出部14に通知する。
後述するように抽出部14から決定したタスクのスロットに入力する情報が入力されると、実行機能決定部13は、機能実行指示部11に対して、決定したタスクを通知する。また、実行機能決定部13は、この通知の際に、抽出部14から入力された情報を実行が指示されるタスクのスロットへの入力となる情報として合わせて通知する。
この通知がされると、機能実行指示部11から通信端末30に対してタスクの実行が指示される。この際、抽出部14から入力された情報が、実行が指示されるスロットへの入力として機能実行指示部11から通信端末30に対して合わせて指示される。
抽出部14は、文章入力部12から入力された文章から、実行機能決定部13から通知されたタスクのスロットに入力する情報を抽出する抽出手段である。例えば、抽出部14は、メール作成のタスクの実行が指示されるものと決定された「田中さんに今日はありがとうとメール」という文章(発話内容)から、宛名のスロットに入力される情報として「田中」を抽出し、本文のスロットに入力される情報として「今日はありがとう」を抽出する。
抽出部14は、実行機能決定部13から通知されたタスクのスロットのカテゴリに応じた方法で、当該タスクに入力する情報を抽出する。ここで抽出部14がタスクに入力する情報を抽出する方法としては、大きく分けて以下の2つを用いる。
一つは、入力される情報の候補の辞書に基づく方法である。これは、抽出部14が予め入力される情報の候補の辞書の情報を保持しておき、文章入力部12から入力された文章に当該候補が含まれるか否かを判断し、当該候補が含まれていた場合には当該候補をタスクに入力する情報として抽出するというものである。辞書に含まれる情報の候補は、例えば、単語である。但し、単語以外の文節や文章、あるいは記号等の任意の情報であってもよい。また、辞書はカテゴリ毎に用意しておき、カテゴリに応じた辞書(属性辞書)を情報の抽出を用いることとするのがよい。例えば、「人名」、「料理名」及び「調理方法」毎の辞書が用意しておき、「人名」のカテゴリのスロットの情報を抽出する場合は「人名」の辞書を用いることとするのがよい。「人名」カテゴリの辞書には、例えば、「佐藤」、「鈴木」、「田中」といった単語が候補として含まれる。
これらの辞書の情報は、例えば、予め機能実行指示システム1の管理者等によって機能実行指示サーバ10に入力されて記憶されている。あるいは、例えば「人名」の候補については、ユーザ毎に情報が異なると考えられることから、通信端末30が記憶している電話帳データを取得して電話帳データに含まれる人名のデータを利用することとしてもよい。
辞書に基づく抽出方法は、辞書に適切に情報の候補が含まれている場合には、確実かつ適切にタスクに入力される情報を抽出することができる。しかしながら、例えば、辞書に十分に情報が登録されておらず、辞書の語彙が不足している場合には十分な抽出をおこなうことができない。また、1つの情報が複数の属性辞書に含まれていた場合(属性辞書間の重複、単語の多義性)、その影響を受ける。また、この方法は、そもそも辞書の語彙外の情報については抽出を行うことができない。
タスクに入力する情報を抽出する方法のもう一つは、機械学習技術又は予め記憶した文法ルールに基づいて、文章入力部12から入力された文章内の特定の区間を検出する方法である。この区間検出による方法は、上述したように辞書に依存しない方法である。抽出部14は、検出した区間の情報(文字列)を、タスクに入力する情報として抽出する。
上記の文法ルールは、例えば、予め人手(例えば、機能実行指示システム1の管理者等)で定義され、抽出部14に入力され記憶されている。文法ルールに基づく区間抽出とは、文章(発話内容)を形態素解析した結果得られる単語又はその品詞を示す情報の組み合わせを利用した決められたルールに基づいて情報として抽出する区間を決定する方法である。例えば、特定の単語又は特定の品詞の単語の前又は後に現れる単語、又は単語群を情報として抽出するという方法をとることができる。一例として、メール作成のタスクにおいて本文のスロットに入力される情報を抽出するため、「と」という助詞より前に現れる単語群全体を本文として抽出することができる。この方法により、例えば「今日はありがとうとメール」という文章(発話内容)から「今日はありがとう」を本文のスロットに入力される情報として抽出することができる。あるいは、メール作成のタスクにおいて宛名のスロットに入力される情報を抽出するため、「へ」又は「に」という助詞の直前に現れる名詞を宛名として抽出することができる。この方法により、例えば「田中にメール」という文章(発話内容)から「田中」を宛名のスロットに入力される情報として抽出することができる。さらに、「へ」または「に」の直前に現れる「さん」を無視するというルールを加えれば「田中さんにメール」という文章(発話内容)からも「田中」を宛名のスロットに入力される情報として抽出することができる。このように、複数のルールを組み合わせることにより様々な発話パターンから情報抽出を行うことができる。
機械学習技術に基づく区間抽出とは、予め抽出すべき区間の始端と終端にマーカーをつけた例文を大量に準備し、未知の文に対して自動的に始端と終端のマーカーをつける学習モデルを構成する方法である。区間抽出に利用可能な機械学習技術として、例えば、CRFがよく知られている。学習モデルの構成は事前に行えばよく、区間抽出の実行時には得られた学習モデルのみがあればよい(学習モデルを抽出部14に記憶させておく)。例えば、メール作成のタスクにおいて宛名のスロットに入力される情報を抽出するためには、予めメール作成のタスクにあたる文章を大量に用意し、本文に当たる単語群の始端と終端に人手でマーカーをつける。このマーカーつき文章を入力データとして用い、メール作成のタスクにおける宛名のスロット抽出用の学習モデルを構成し、構成された学習モデルを区間抽出の実行時に利用する。学習モデルの構成方法と利用方法は当業者にはよく知られている。
また、文法ルールに基づく方法としては、文法ルールを示す情報として文章の正規表現を記憶しておき、文章入力部12から入力された文章から当該正規表現に合う部分を検出する方法を用いることもできる。なお、文法ルールを示す情報又は学習モデルは、カテゴリ毎に用意しておき、カテゴリに応じた文法ルール又は学習モデルを抽出に用いることとするのがよい。例えば、「本文」のカテゴリの情報を抽出する場合には「本文」のカテゴリの学習モデルを、「人名」のカテゴリの情報を抽出する場合には「人名」のカテゴリの文法ルール又は学習モデルをそれぞれ用いることとするのがよい。文法ルールを示す情報又は学習モデルは、予め機能実行指示システム1の管理者等によって機能実行指示サーバ10に入力されて記憶されている。また、文法ルール又は学習モデルは、タスクに対応付いていてもよい。
上記のような区間検出による抽出方法は、語彙に影響されにくいが、文例に依存して誤りが生じる場合がある。以上が、抽出部14がタスクに入力する情報を抽出するのに用いる2つの方法である。抽出部14は、実行機能決定部13から通知されたタスクのスロットのカテゴリに応じ、辞書に基づく方法と区間検出による方法とを切り替えて、あるいは組み合わせて用いることにより、情報を抽出する。
抽出部14は、実行機能決定部13から通知されたタスクのスロットのカテゴリが任意の情報(特定の属性に限られない情報)であるものを含むか否かを判断して、当該判断に応じた方法で情報を抽出することとしてもよい。上述したように「テキスト」のカテゴリは、任意の情報(文章、文字列)を入力しえるカテゴリであるので、具体的には、抽出部14はタスクのスロットに、カテゴリが「テキスト」のものを含むか否かを判断することとすればよい。但し、カテゴリが任意の情報であるものは、必ずしも「テキスト」に限られず、入力される情報の内容に応じて限定されないものであればよい。
抽出部14は、予め図2に示したようなタスクを示すタスク名、スロット、スロット型、サイズを対応付けた情報を記憶しており、その情報に基づいて上記の判断を行う。この情報は、予め機能実行指示システム1の管理者等によって機能実行指示サーバ10に入力されて記憶されている。
例えば、実行機能決定部13から通知されたタスクがメール作成のタスクであれば、抽出部14はタスクのスロットに「テキスト」のカテゴリのものを含むと判断する。実行機能決定部13から通知されたタスクがレシピ検索のタスクであれば、抽出部14はタスクのスロットに「テキスト」のカテゴリのものを含まないと判断する。
抽出部14は、実行機能決定部13から通知されたタスクのスロットに「テキスト」のカテゴリを含むと判断した場合、以下のように情報の抽出を行ってもよい。抽出部14は、まず、「テキスト」のカテゴリのスロットについては、区間検出による方法により情報を抽出する。例えば、メール作成のタスクであれば、「本文」のスロットに入力される情報を抽出する。「テキスト」のカテゴリのスロットについての情報を区間検出による方法で抽出できた場合には、文章入力部12から入力された文章から抽出された情報を除いた残りの文章から、「テキスト」以外のカテゴリのスロットに入力される情報を抽出する。
例えば、メール作成のタスクであれば、抽出された「本文」の情報以外の文章(「本文」の外側に位置した区間)から、それ以外のスロット、即ち「人名」カテゴリの「宛名」のスロットの情報を抽出する。具体的には文章入力部12から入力された文章が「田中さんに今日はありがとうとメール」というものであり、「本文」のスロットに入力される情報として「今日はありがとう」という部分が抽出されたら、「宛名」のスロットについては、抽出された部分を除いた「田中さんに」及び「とメール」という部分から抽出する。抽出部14は、この抽出を辞書に基づく方法により行う。
「テキスト」のカテゴリのスロットについての情報を区間検出による方法で抽出できなかった場合には、文章入力部12から入力された文章全体に対して「テキスト」以外のカテゴリのスロットに入力される情報を抽出する。抽出部14は、この抽出を辞書に基づく方法により行う。なお、辞書に基づく方法により「テキスト」以外のカテゴリのスロットに入力される情報を抽出できなかった場合には、このスロットに入力される情報も区間検出による方法によって抽出することとしてもよい。
例えば、「スズキヤ建設に今日はありがとうとメール」という文章が入力された場合、「スズキヤ建設」が辞書に含まれない単語であった場合でも、区間検出により宛先として抽出することができる。
抽出部14は、実行機能決定部13から通知されたタスクのスロットに「テキスト」のカテゴリを含まないと判断した場合、まず、各スロットの情報について辞書に基づく方法により抽出してもよい。辞書に基づく方法によりスロットに入力される情報を抽出できなかった場合には、抽出部14は、区間検出による方法によって当該スロットに入力される情報を抽出する。例えば、グルメ検索のタスクであれば、「キーワード」のスロットについて、まず辞書に基づく方法により情報を抽出する。もし、辞書に基づく方法により情報を抽出できなかった場合には、区間検出による方法によって当該スロットに入力される情報を抽出する。
スロットの何れかに複数のカテゴリが対応付けられていた場合には、そのカテゴリについては更に以下のような方法で抽出を行うこととしてもよい。その場合、予め複数のカテゴリに順序(優先度)を対応付けておく。例えば、図2の「キーワード」のスロットには、「料理名」と「調理方法」という2つのカテゴリが対応付いている。例えば、「料理名」は1番目、「調理方法」は2番目という順序が対応付いている。この対応付けは、例えば、スロットに入力される情報としてより適切なものほど順序が先になるようにされる。上記の順序付けは、レシピ検索のタスクでは、「調理方法」のカテゴリの入力に比べて「料理名」のカテゴリの入力を行った方がよりユーザが望む結果が得られる可能性が高いことによる。この対応付けは、予め機能実行指示システム1の管理者等によって機能実行指示サーバ10に入力されて記憶されている。また、この順序は、タスクやスロットに関係なく一律のものとされていてもよいし、タスクやスロット毎に対応付けられていてもよい。
抽出部14は、上記の順序を示す情報を取得し、上記の抽出を順序が先のカテゴリから行う。抽出部14は、情報の抽出ができた時点で抽出を止めることとしてもよい。即ち、抽出部14は、まず最先の順序のカテゴリについて、辞書に基づく方法により情報の抽出を行う。この方法により情報の抽出ができなかった場合には、当該最先の順序のカテゴリについて、区間検出による方法により情報の抽出を行う。この方法により情報の抽出ができなかった場合には、このカテゴリでは抽出ができなかったものとして、次の順序のカテゴリについて、辞書に基づく方法により情報の抽出を行う。このように順次、カテゴリ毎に辞書に基づく方法、区間検出による方法の順で情報が抽出できるまで抽出を行う。
具体的には、グルメ検索のタスクであり、「キーワード」のスロットに入力される情報を抽出する場合、以下のような処理となる。「キーワード」のスロットには、1番名のカテゴリとして「料理名」、2番名のカテゴリとして「調理方法」が対応付けられている。文章入力部12から入力された文章が「エビフライの揚げ方」というものであり、「料理名」の属性辞書に「エビフライ」という単語が含まれていた場合には、辞書に基づく方法によりスロットに入力される情報として「エビフライ」を抽出する。
文章入力部12から入力された文章が「ザンギの揚げ方」というものであり、「料理名」の属性辞書に「ザンギ」という単語が含まれていない場合には、辞書に基づく方法ではスロットに入力される情報を抽出できない。続いて、「料理名」のカテゴリについて区間検出による方法により抽出が試みられる。「〜の揚げ方」という表現によって料理名を抽出できる文法ルール又は学習モデルがある場合には、区間検出による方法によりスロットに入力される情報として「ザンギ」を抽出する。
文章入力部12から入力された文章が「揚げ物をしたい」というものである場合には、「料理名」の辞書に基づく方法及び区間検出による方法の何れでもスロットに入力される情報は抽出できない。続いて、2番目のカテゴリ「調理方法」での抽出を行う。「調理方法」の属性辞書に「揚げ物」という単語が含まれていた場合には、辞書に基づく方法によりスロットに入力される情報として「揚げ物」を抽出する。
抽出部14は、抽出した情報をスロット毎に実行機能決定部13に出力する。以上が、本実施形態に係る機能実行指示システム1の機能構成である。
図3に本実施形態に係る機能実行指示サーバ10及び音声認識サーバ20を構成するサーバ装置のハードウェア構成を示す。図3に示すように当該サーバ装置は、CPU(Central Processing Unit)101、主記憶装置であるRAM(RandomAccess Memory)102及びROM(Read Only Memory)103、通信を行うための通信モジュール104、並びにハードディスク等の補助記憶装置105等のハードウェアを備えるコンピュータを含むものとして構成される。これらの構成要素がプログラム等により動作することにより、上述した機能実行指示サーバ10及び音声認識サーバ20の機能が発揮される。以上が、本実施形態に係る機能実行指示システム1の構成である。
引き続いて、図4のフローチャートを用いて、本実施形態に係る機能実行指示システム1で実行される処理である機能実行指示方法を説明する。本処理では、まず、本実施形態に係る機能実行指示システム1による機能実行の指示を受けるための通信端末30に対するユーザの操作が行われて、通信端末30に、機能を実行させるためのユーザの音声(発話)が入力される。続いて、当該音声が通信端末30から音声認識サーバ20に送信される。音声認識サーバ20では、当該音声が受信されて入力される(S01、音声認識ステップ)。続いて、音声認識サーバ20では、入力された音声に対して音声認識が行われる(S02、音声認識ステップ)。音声認識結果である文章を示す情報が音声認識サーバ20から通信端末30に送信される。通信端末30では、その情報が受信されて、機能実行指示サーバ10に送信される。
機能実行指示サーバ10では、文章入力部12によって、音声認識結果である文章を示す情報が受信されて入力される(S03、文章入力ステップ)。入力された情報は、文章入力部12から実行機能決定部13及び抽出部14に出力される。続いて、実行機能決定部13によって、実行が指示されるタスクが決定される(S04、実行機能決定ステップ)。決定されたタスクが、実行機能決定部13から抽出部14に通知される。
続いて、抽出部14によって、通知されたタスクのスロットにカテゴリが「テキスト」のものを含むか否かが判断される(S05、抽出ステップ)。タスクのスロットに「テキスト」のカテゴリを含むと判断された場合、続いて、抽出部14によって、「テキスト」のカテゴリのスロットについて、文章入力部12から入力された文章から、区間検出による方法によってスロットに入力される情報が抽出される(S06、抽出ステップ)。続いて、「テキスト」以外のカテゴリのスロットが存在する場合には、「テキスト」のカテゴリのスロットに入力される情報が除かれた文章から、辞書に基づく方法によってスロットに入力される情報が抽出される(S07、抽出ステップ)。抽出された情報はスロット毎に抽出部14から実行機能決定部13に出力される。
S05において、タスクのスロットに「テキスト」のカテゴリを含まないと判断された場合、各スロットの情報について、まず、文章入力部12から入力された文章から、辞書に基づく方法によってスロットに入力される情報が抽出される(S08、抽出ステップ)。もし、辞書に基づく方法によって情報を抽出できなかった場合には、区間検出による方法によって当該スロットに入力される情報が抽出される(S09、抽出ステップ)。上記の抽出は順序が先のカテゴリから行われる。
もし、上記の抽出処理(S08及びS09)においてスロットに入力される情報を抽出できず、かつ、順序が後のカテゴリが残っていた場合(S10のYES)には、当該順序が後のカテゴリについて、上記の抽出処理(S08及びS09)を繰り返す。全てのスロットに入力される情報が抽出できた場合(S10のNO)には、抽出された情報はスロット毎に抽出部14から実行機能決定部13に出力される。上記の繰り返しを全ての順序について行っても、何れかのスロットに入力される情報が抽出できなかった場合(S10のNO)にはそのスロットに関しての情報は実行機能決定部13に出力されない(そのスロットに関しては入力される情報が抽出できなかった旨が出力される)。
抽出部14から決定したタスクのスロットに入力する情報が入力されると(S7又はS10の後)、実行機能決定部13から機能実行指示部11に対して、決定したタスクが通知される。また、抽出部14から入力された情報が、実行が指示されるタスクのスロットへの入力となる情報として、実行機能決定部13から機能実行指示部11に対して合わせて通知される。
ユーザの発話例(機能実行指示サーバ10に入力される文章の例)と、その発話例に基づいて実行が指示されるものと判断されるタスク、及びそのタスクのスロットに入力される情報として抽出されるものの例について示す。ユーザの発話が「山田さんにメール、いま忙しい」というものであった場合、実行が指示されるものと判断されるタスクはメール送信であり、「テキスト」カテゴリの「本文(Body)」スロットに入力される情報は「いま忙しい」であり、「人名」カテゴリの「宛先(To)」スロットに入力される情報は「山田」となる。
ユーザの発話が「キャベツと鶏肉をつかったレシピ」というものであった場合、実行が指示されるものと判断されるタスクはレシピ検索であり、「食材」カテゴリの「キーワード(KW)」スロットに入力される情報は「キャベツ」及び「鶏肉」である。ユーザの発話が「渋谷の近くでおいしい焼き鳥」というものであった場合、実行が指示されるものと判断されるタスクはレストラン検索であり、「地名」カテゴリの「キーワード(KW)」スロットに入力される情報は「渋谷」である。この場合、「キーワード」スロットに入力しえる情報として、「ジャンル」カテゴリの「焼き鳥」もあるが、上記の順序の関係で「焼き鳥」という情報は抽出されない。
なお、スロットによっては、複数の情報の入力を許容するものもあり、その場合は、上述するS10の判断を行わず、必ず全ての順序のカテゴリについてS08及びS09の抽出処理を行うこととしてもよい。この場合、上述のように、ユーザの発話が「渋谷の近くでおいしい焼き鳥」というものであった場合、「キーワード(KW)」スロットに入力される情報として、「地名」カテゴリの情報である「渋谷」だけでなく、「ジャンル」カテゴリの「焼き鳥」も含めることができる。
続いて、通知を受けた機能実行指示部11によって通信端末30に対してタスクの実行が指示される(S11、機能実行指示ステップ)。この指示にはタスクのスロットへの入力となる情報も含められる。なお、入力される情報が抽出できなかったスロットについてはその情報が含められない。通信端末30では、この指示が受け付けられ、指示に係るタスクが実行される。この際、指示に含まれる情報が対応するスロットに入力されてタスクが実行される。以上が本実施形態に係る機能実行指示システム1で実行される処理である機能実行指示方法である。
上述したように本実施形態では、実行が指示されるタスクのスロットに入力される情報のカテゴリに応じた方法で当該情報が文章から抽出される。従って、本実施形態によれば文章に基づいてタスクを実行する際に、当該文章からタスクへの入力とする情報を適切に抽出してより適切にタスクを実行させることができる。
具体的には、タスクに、「テキスト」カテゴリ(例えば、上述したメール作成のタスクでは「本文」スロット)のような任意の情報を入力しえるカテゴリのスロットを含むか否かを判断して、その判断に応じた方法で情報を抽出することが望ましい。例えば「人名」「料理名」のような特定の単語(例えば、固有名詞)を入力しえるスロットと、「テキスト」カテゴリのような任意の情報を入力しえるカテゴリのスロットとは性質が異なる。特定の単語を入力しえるスロットについては、上述した区間検出による方法よりは辞書に基づく方法の方がより適切に情報を抽出できる傾向がある。一方で、「テキスト」カテゴリのような任意の情報を入力しえるカテゴリのスロットについては、辞書に基づく方法では適切に情報を抽出することが難しい。そもそも任意の情報を入力しえるカテゴリについての辞書を作成することが難しい。
そのため、より具体的には、「テキスト」カテゴリのスロットを含む場合には、文章から区間検出による方法によって情報を抽出して、それ以外のカテゴリについては上記のカテゴリの情報が抽出された後の残りの文章から辞書に基づく方法によって情報を抽出することとするのがよい。
また、「テキスト」カテゴリのスロットを含まない場合には、各スロットについて、まず文章から辞書に基づく方法によって情報を抽出して(抽出を試みて)、文章から辞書に基づく方法によって情報が抽出できない場合に区間検出による方法によって情報を抽出することとするのがよい。このように、「テキスト」カテゴリのスロットを含まない場合には、1つのスロットについて2段階で情報を抽出することによって辞書の語彙に限定されずに情報を抽出することができる。上記の構成によれば、タスクに入力される情報のカテゴリが任意の情報であるものを含むか否かに応じて適切に情報を抽出することができる。
また、上述した実施形態のようにスロットに対応付けられた複数のカテゴリに順序付けをしておき、その順序で情報を抽出してもよい。この構成によれば、そのスロットに入力する情報としてより望ましいカテゴリの情報から優先的に抽出されるので、タスクのスロットに対して複数のカテゴリの情報の入力が可能である場合に適切に情報を抽出することができる。
また、本実施形態のように音声を入力して音声認識を行って、音声認識結果を入力される単語を含む情報とすることとしてもよい。この構成によれば、ユーザの音声によって機能を実行することが可能となる。
但し、本実施形態においては、機能実行指示システム1において、音声認識サーバ20を含むこととしていたが、必ずしも音声認識サーバ20を含む必要はない。この場合、音声認識された結果、あるいは音声認識によらない単語群や文章が機能実行指示システム1に入力される。また、本実施形態では、機能実行指示サーバ10と音声認識サーバ20とが別体として構成されていたが、それらが一体として構成されていてもよい。この場合、音声認識結果を、通信端末30を介して送受信する必要がない。また、通信端末30等のユーザに用いられる端末に、機能実行指示サーバ10あるいは音声認識サーバ20の機能が備えられていてもよい。その場合、当該端末が本発明に係る機能実行指示システムとなる。あるいは、機能実行指示サーバ10がタスクを実行する機能を有しており、タスクの実行結果を通信端末30に提供する構成であってもよい。
引き続いて、上述した一連の機能実行指示サーバ10による処理をコンピュータに実行させるための機能実行指示プログラムを説明する。図5に示すように、機能実行指示プログラム50は、コンピュータに挿入されてアクセスされる、あるいはコンピュータが備える記録媒体40に形成されたプログラム格納領域41内に格納される。
機能実行指示プログラム50は、機能実行指示モジュール51と、文章入力モジュール52と、実行機能決定モジュール53と、抽出モジュール54とを備えて構成される。機能実行指示モジュール51と、文章入力モジュール52と、実行機能決定モジュール53と、抽出モジュール54とを実行させることにより実現される機能は、上述した機能実行指示サーバ10の機能実行指示モジュール51と、文章入力モジュール52と、実行機能決定モジュール53と、抽出モジュール54との機能とそれぞれ同様である。また、機能実行指示プログラム50は、音声認識サーバ20の機能に対応するモジュールを備えていてもよい。
なお、機能実行指示プログラム50は、その一部若しくは全部が、通信回線等の伝送媒体を介して伝送され、他の機器により受信されて記録(インストールを含む)される構成としてもよい。また、機能実行指示プログラム50の各モジュールは、1つのコンピュータでなく、複数のコンピュータのいずれかにインストールされてもよい。その場合、当該複数のコンピュータによるコンピュータシステムよって上述した一連の機能実行指示プログラム50の処理が行われる。