以下、情報処理システム及び情報処理方法の適用例となる音声操作システムの説明をする。
(第1の実施の形態)
(システム構成)
図1は、第1の実施の形態の音声操作システムのシステム構成図である。この図1に示すように、第1の実施の形態の音声操作システムは、外部装置の一例である複合機(MFP:Multifunction Peripheral)1、スマートホン又はタブレット端末等の携帯端末2(情報処理装置の一例)、音声認識サーバ装置3及びAIアシスタントサーバ装置4を、例えばLAN(Local Area Network)等の所定のネットワーク5を介して相互に接続することで形成されている。ただし、外部装置は複合機には限定されず、電子黒板やプロジェクタなどのオフィス機器を含む、種々の電子機器であっても良い。
携帯端末2は、MFP1を音声操作するための、ユーザからの音声入力を受け付ける。また、受け付けた操作を、ユーザへ音声でフィードバックする。また、携帯端末2は、音声認識サーバ装置3及びAIアシスタントサーバ装置4の間のデータ通信(後述するテキストデータの通信)を中継する。音声認識サーバ装置3は、携帯端末2から受信した音声データを分析し、テキストデータに変換する。なお、音声認識サーバ装置3は、第1サーバ装置に相当する。AIアシスタントサーバ装置4は、テキストデータを分析し、事前登録されているユーザの意図(MFP1のジョブ実行命令)に変換して携帯端末2に送信する。
なお、AIアシスタントサーバ装置4は、第2サーバ装置に相当する。MFP1は、携帯端末2から送信されるジョブ実行命令を実行する。なお、携帯端末2とMFP1との通信は、無線通信であっても有線通信であっても良い。つまり、携帯端末2は、MFP1に固定的に接続される操作端末であっても良い。
また、この例では、音声認識サーバ装置3及びAIアシスタントサーバ装置4の、2つのサーバ装置が設けられていることとしたが、各サーバ装置3、4を物理的に一つのサーバ装置としてもよい。または、各サーバ装置3、4を、さらに複数のサーバ装置で実現してもよい。
(MFPのハードウェア構成)
MFP1は、例えばプリンタ機能及びスキャナ機能等の複数の機能を備えている。すなわち、MFP1は、図2に示すように、コントローラ7、通信部15、操作部16、スキャナエンジン17及びプリンタエンジン18を有している。
コントローラ7は、CPU10、ASIC(Application Specific Integrated Circuit)11、メモリ12、HDD(Hard Disk Drive)13及びタイマ14を有する。CPU10~タイマ14は、それぞれバスラインを介して通信可能なように相互に接続されている。
通信部15は、ネットワーク5に接続されており、後述するように、例えばスキャン指示又は印刷指示等の、携帯端末2を用いて音声入力されたジョブ実行命令を取得する。
操作部16は、液晶表示部(LCD:Liquid Crystal Display)とタッチセンサとが一体的に形成された、いわゆるタッチパネルとなっている。操作者は、操作部16を用いて所望の動作の実行命令を行う場合、操作部16に表示された操作ボタン(ソフトウェアキー)を接触操作することで、所望の動作を指定する。
スキャナエンジン17は、スキャナユニットを制御して、光学的に原稿の読み取りを行う。プリンタエンジン18は、画像書き込みユニットを制御して、例えば転写紙等に画像を印刷する。CPU10は、画像形成装置を統括的に制御する。ASIC11は、いわゆる大規模集積回路(LSI:Large-Scale Integration)となっており、スキャナエンジン17及びプリンタエンジン18で処理する画像に必要な各種の画像処理等を行う。携帯端末装置2から取得したジョブ実行命令を実行する手段であるスキャナエンジン17及びプリンタエンジン18は、機能部に相当する。
メモリ12は、CPU10が実行する各種アプリケーション及びアプリケーションを実行する際に用いられる種々のデータが記憶されている。HDD13は、画像データ、各種のプログラム、フォントデータ、及び、各種のファイル等を記憶する。なお、HDD13の代わり又はHDD13と共に、SSD(Solid State Drive)を設けてもよい。
(携帯端末のハードウェア構成)
携帯端末2は、図3に示すようにCPU21、RAM22、ROM23、インタフェース部(I/F部)24及び通信部25を、バスライン26を介して相互に接続して形成されている。RAM22には、電子メール、スキャンした画像等の宛先となるユーザの電子メールアドレス等が記憶されたアドレス帳が記憶されている。また、RAM22には、印刷を行う画像データであるファイル等が記憶されている。
ROM23には、操作音声処理プログラムが記憶されている。CPU21は、この操作音声処理プログラムを実行することで、MFP1の音声入力操作を可能とする。
I/F部24には、タッチパネル27、スピーカ部28及びマイクロホン部29が接続されている。マイクロホン部29は、通話音声の他、MFP1に対するジョブの実行命令の入力音声を集音(取得)する。入力音声は、通信部25を介して音声認識サーバ装置3に送信され、テキストデータに変換される。
(音声認識サーバ装置のハードウェア構成)
音声認識サーバ装置3は、図4に示すように、CPU31、RAM32、ROM33、HDD(Hard Disk Drive)34、インタフェース部(I/F部)35及び通信部36を、バスライン37を介して相互に接続して形成されている。I/F部35には、表示部38及び操作部39が接続されている。HDD34には、音声データをテキストデータに変換するための操作音声変換プログラムが記憶されている。CPU31は、操作音声変換プログラムを実行することで、携帯端末2から送信された音声データをテキストデータに変換して、携帯端末2に返信する。
(AIアシスタントサーバ装置のハードウェア構成)
AIアシスタントサーバ装置4は、図5に示すように、CPU41、RAM42、ROM43、HDD44、インタフェース部(I/F部)45及び通信部46を、バスライン47を介して相互に接続して形成されている。I/F部45には、表示部48及び操作部49が接続されている。HDD44には、ユーザから指示されたジョブを解釈するための操作解釈プログラムが記憶されている。CPU41は、この操作解釈プログラムを実行することで、音声認識サーバ装置3で生成(変換)されたテキストデータから、ユーザから指示されたジョブを解釈する。この解釈結果は、携帯端末2に送信される。携帯端末は、解釈結果をジョブ命令に変換してMFP1に供給する。これにより、携帯端末2を介して入力した音声により、MFP1を操作できる。
(携帯端末の機能)
次に、携帯端末2のCPU21は、ROM23に記憶されている操作音声処理プログラムを実行することで、図6に示すように取得部51、通信制御部52、フィードバック部55、処理能力取得部56、実行判定部57及び検索部58として機能する。
取得部51は、取得部及び第1取得部の一例であり、マイクロホン部29を介して集音された、MFP1を音声操作するためのユーザの指示音声を取得する。通信制御部52は、出力部、第1出力部、第2出力部、第3出力部、第2取得部及び第3取得部の一例であり、携帯端末2とMFP1との間、携帯端末2と音声認識サーバ装置3との間、及び、携帯端末2とAIアシスタントサーバ装置4との間の通信をそれぞれ制御する。解釈結果変換部53は、変換部の一例であり、AIアシスタントサーバ装置4でユーザの指示音声のテキストデータの解釈結果を、MFP1に対するジョブの実行命令に変換する。実行指示部54は、ジョブの実行命令をMFP1に送信して、ジョブの実行を指示する。
フィードバック部55は、修正部の一例であり、対話型の音声入力操作を実現すべく、例えば不足するデータを補う入力を促す音声をフィードバックし、又は、入力を確認する音声のフィードバック等を行う。処理能力取得部56は、処理能力検出部の一例であり、MFP1から、例えば処理可能な最大画素数等の処理能力を取得する。実行判定部57は、MFP1の能力と、ユーザから指定されたジョブとを比較することで、ユーザから指定されたジョブをMFP1で実行可能か否か判定する。検索部58は、印刷情報検出部及びアドレス検出部の一例であり、ユーザから音声指示された宛先又はファイル等をRAM22等のメモリから検索する。
なお、この例では、取得部51~検索部58をソフトウェアで実現することとしたが、これらのうち、一部又は全部を、IC(Integrated Circuit)等のハードウェアで実現してもよい。また、取得部51~検索部58が実現する機能は、操作音声処理プログラム単体で実現しても良いし、他のプログラムに処理の一部を実行させる、又は他のプログラムを用いて間接的に処理を実行させても良い。例えば、MFP1の処理能力などの情報の取得は他のプログラムが実行し、処理能力取得部56は他のプログラムが取得した情報を取得することで、間接的にMFP1が有する情報を取得することができる。
(音声認識サーバ装置の機能)
次に、音声認識サーバ装置3のCPU31は、HDD34に記憶されている操作音声変換プログラムを実行することで、図7に示すように取得部61、テキスト変換部62及び通信制御部63として機能する。取得部61は、携帯端末2から送信される、ユーザにより入力された音声データを取得する。テキスト変換部62は、音声認識部の一例であり、ユーザにより入力された音声データをテキストデータに変換する。通信制御部63は、ユーザにより入力された音声データの受信、及び、携帯端末2に対するテキストデータの送信等を行うように、通信部36を通信制御する。
なお、この例では、取得部61~通信制御部63をソフトウェアで実現することとしたが、これらのうち、一部又は全部を、IC(Integrated Circuit)等のハードウェアで実現してもよい。また、取得部61~通信制御部63が実現する機能は、操作音声変換プログラム単体で実現しても良いし、他のプログラムに処理の一部を実行させる、又は他のプログラムを用いて間接的に処理を実行させても良い。
(AIアシスタントサーバ装置の機能)
次に、AIアシスタントサーバ装置4のCPU41は、HDD44に記憶されている操作解釈プログラムを実行することで、図8に示すように取得部71、解釈部72及び通信制御部73として機能する。取得部71は、携帯端末2から送信される、ユーザにより入力された音声データのテキストデータを取得する。解釈部72は、抽出部の一例であり、テキストデータに基づいて、ユーザからの操作指示を解釈する。通信制御部73は、ユーザの携帯端末2に対する解釈結果の送信、及び、ユーザにより入力された音声データのテキストデータの受信等を行うように通信部46を通信制御する。
なお、この例では、取得部71~通信制御部73をソフトウェアで実現することとしたが、これらのうち、一部又は全部を、IC(Integrated Circuit)等のハードウェアで実現してもよい。また、取得部71~通信制御部73が実現する機能は、操作解釈プログラム単体で実現しても良いし、他のプログラムに処理の一部を実行させる、又は他のプログラムを用いて間接的に処理を実行させても良い。
また、操作音声処理プログラム、操作音声変換プログラム及び操作解釈プログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM、フレキシブルディスク(FD)などのコンピュータ装置で読み取り可能な記録媒体に記録して提供してもよい。また、CD-R、DVD(Digital Versatile Disk)、ブルーレイディスク(登録商標)、半導体メモリなどのコンピュータ装置で読み取り可能な記録媒体に記録して提供してもよい。また、インターネット等のネットワーク経由でインストールするかたちで提供してもよいし、機器内のROM等に予め組み込んで提供してもよい。
(音声入力操作の全体的な動作)
図9に、第1の実施の形態の音声操作システムにおける音声入力操作の全体的な動作を説明する。この図9の例は、MFP1の両面コピー機能を、携帯端末2を介して音声入力操作する例である。この場合、ユーザは、携帯端末の操作音声処理プログラムを起動し、例えば「両面でコピー」と発声する。このユーザの音声は、携帯端末2のマイクロホン部29で集音され、取得部51により取得される(ステップS1)。携帯端末2の通信制御部52は、この「両面でコピー」との音声データを音声認識サーバ装置3に送信し、テキスト変換要求を行うように通信部25を制御する(ステップS2)。
音声認識サーバ装置3のテキスト変換部62は、「両面でコピー」との音声データをテキストデータに変換処理する。そして、通信制御部63は、変換処理されたテキストデータを、携帯端末2に送信するように通信部36を制御する(ステップS3)。携帯端末2の通信制御部52は、「両面でコピー」とのテキストデータを、AIアシスタントサーバ装置4に送信する(ステップS4)。
この例の場合、AIアシスタントサーバ装置4の解釈部72は、MFP1に実行を要求する動作は「コピーである(Action:Copy_Execcute)」と解釈し、「印刷面は両面である(印刷面=両面)」と解釈する(ステップS5)。このように、解釈部72は、テキストデータに基づいて、ユーザから指定されたジョブの種別(アクション)及び内容(パラメータ)を示す解釈結果を生成する。この解釈結果は、AIアシスタントサーバ装置4の通信制御部63により、通信部46を介して携帯端末2に送信される(ステップS6)。
携帯端末2の解釈結果変換部53は、AIアシスタントサーバ装置4から受信した解釈結果を、MFP1のジョブ命令に変換処理する(ステップS7)。以下の表1に、解釈結果と、解釈結果から変換処理されたジョブ命令の一例を示す。なお、解釈結果変換部53は、解釈結果をジョブ命令に変換するために、表1に相当する情報を携帯端末装置2の記憶部に記憶し、参照できる構成としても良い。
この表1の例の場合、「COPY_EXECUTE」、「SCAN_EXECUTE」、「PRINT_EXECUTE」及び「FAX_EXECUTE」が、アクション(Action)の一例として示されている。また、「印刷面」及び「部数」等がパラメータ(Parameter)の一例として示されている。なお、パラメータとしては、ジョブの設定値として指定可能な全てのパラメータが含まれる。
携帯端末2の解釈結果変換部53は、「COPY_EXECUTE」の解釈結果を、「コピージョブの実行」との、MFP1のジョブ命令に変換処理する。同様に、解釈結果変換部53は、「SCAN_EXECUTE」の解釈結果を、「スキャンジョブの実行」との、MFP1のジョブ命令に変換処理する。同様に、解釈結果変換部53は、「PRINT_EXECUTE」の解釈結果を、「印刷ジョブの実行」との、MFP1のジョブ命令に変換処理する。同様に、解釈結果変換部53は、「FAX_EXECUTE」の解釈結果を、「FAXジョブの実行」との、MFP1のジョブ命令に変換処理する。
また、携帯端末2の解釈結果変換部53は、解釈結果に「印刷面」のパラメータが含まれている場合、「印刷面の設定値の変更」を行うMFP1のジョブ命令を形成する。同様に、解釈結果変換部53は、解釈結果に「部数」のパラメータが含まれている場合、「部数の設定値の変更」を行うMFP1のジョブ命令を形成する。
すなわち、携帯端末2の解釈結果変換部53は、解釈結果の「Action」に含まれる情報で、MFP1に実行させるジョブの種類を判断し、「Parameter」に含まれる値を、ジョブの設定値と判断して、解釈結果をジョブ命令に変換処理する。
携帯端末2の通信制御部52は、このようにして形成されたジョブ命令を、MFP1に送信するように通信部25を制御する(ステップS8)。この例の場合、「コピージョブ実行(印刷面=両面)」のジョブ命令がMFP1に送信される。これにより、MFP1で両面印刷が実行される。
(AIアシスタントサーバ装置における解釈動作の詳細)
AIアシスタントサーバ装置4のHDD44のAI記憶部40には、ユーザが音声入力により指示しているジョブを解釈するためAIアシスタントサービス情報が記憶されている。このAIアシスタントサービス情報は、エンティティ(Entity)情報、アクション(Action)情報及びインテント(Intent)情報を含んで構成されている。エンティティ情報は、ジョブのパラメータと自然言語を関連付ける情報である。1つのパラメータに複数の類義語が登録可能となっている。アクション情報は、ジョブの種類を示す情報である。インテント情報は、ユーザの発話フレーズ(自然言語)とエンティティ情報、及び、ユーザの発話フレーズ(自然言語)とアクション情報を、それぞれ関連付ける情報である。インテント情報により、パラメータの発話順序又はニュアンスが多少変わっても、正しい解釈が可能となっている。また、インテント情報により、入力された内容に基づいてレスポンスのテキスト(解釈結果)を生成可能となっている。
図10に、エンティティ情報の一例を示す。この図10は、印刷色(Print Color)に対応するエンティティ情報である。この図10において、「Print Color」の文字は、エンティティ名を示している。また、図10において、左の列の「auto_color」、「monochrome」、「color」・・・等の文字は、パラメータ名を示している。また、図10において、右の列の「auto_color」、「monochrome,black and white」、「color,full color」・・・等の文字は、類義語を示している。
この図10からわかるように、エンティティ情報としては、パラメータ及び類義語が関連付けられて記憶されている。パラメータと共に、類義語を登録することで、例えばモノクロでのコピーを指示する場合に、「Please copy by black and white」と発話しても、「Please copy by monochrome」と発話しても、パラメータの設定を可能とすることができる。
図11(a)は、ユーザの発話フレーズの例、図11(b)は、アクション名、図11(c)は、エンティティ情報を示している。この図11(a)~図11(c)に示すように、AIアシスタントサーバ装置4が備える表示部48に表示される画面上において、操作部49を操作することで、ユーザの発話をドラッグする。または、ネットワークを介してAIアシスタントサーバ装置4にアクセスした装置の表示部に表示される画面上において、この装置の操作部を操作することで、ユーザの発話をドラッグする。
これにより、関連付け対象となるエンティティ情報を選択できるようになっている。また、選択したエンティティ情報でバリュー(VALUE)を設定すると、応答で入るパラメータが変更される。例えば、「Please copy by black and white」と発話した場合、バリューを「SprintColor」とすると、戻り値として「printColor=monochrome」が返る。これに対して、バリューを「SprintColor.original」とすると、戻り値として「printColor=black and white」が返る。ここで、バリューを「SprintColor.original」とすると、ユーザの発話内容がそのまま応答のパラメータとして返すことができる。
(対話型動作)
次に、第1の実施の形態の音声操作システムでは、ユーザからの入力内容に基づいて、システムが応答する対話型システムを実現している。第1の実施の形態の音声操作システムでは、対話に必要な定型文を応答する以外に、MFP1の操作特有の応答として、「入力不足フィードバック」及び「入力確認フィードバック」の、2種類の応答を行うことで、対話型MFP操作システムを実現している。
「入力不足フィードバック」は、ジョブを実行するために必要な情報が揃っていない場合に出力される応答である。ユーザの入力結果を聞き取れなかった場合、又は、必須パラメータが不足している場合に出力される。つまり、必須パラメータ以外のパラメータについては、指示されていない場合であっても入力不足フィードバックを行う必要はない。また、パラメータ以外にも、コピー機能又はスキャン機能等のうち、利用する機能を確認する処理を含んでも良い。
例えば、携帯端末装置2が通信接続中の外部装置の種類に応じて、ユーザに確認する機能、及びパラメータを変更しても良い。この場合、処理能力取得部56が外部装置との通信が確立した後の所定のタイミングで外部装置の種類や機能を示す情報を取得し、取得した情報に基づいてユーザに確認する機能及びパラメータを例えばフィードバック部55が決定してもよい。例えば、外部装置の種類がMFP1である場合には、コピー、プリント、スキャン、FAXなどのMPF1が有する機能をユーザに確認でき、更に、コピー、プリント、スキャン、FAXのうちMFP1が有している機能についてのみ、いずれの機能を使用するかをユーザに確認しても良い。
「入力確認フィードバック」は、ジョブを実行するために必要な情報が揃った場合に出力される応答である。つまり、入力確認フィードバックは、全ての必須パラメータについて指示された場合に行われる。また、入力確認フィードバックは、現在の設定値でジョブを実行するか、又は、設定値を変更するかの選択をユーザに促すために行う。なお、現在の設定値でジョブを実行するか否かを確認するために、ユーザにより指示された全てのパラメータ(必須パラメータか必須パラメータ以外のパラメータかに関わらず)を音声出力することで、ユーザに確認することができる。
このような各フィードバックを含めた、システムとユーザの対話型操作の例が図12である。この図12の例は、モノクロ画像を両面で2部のコピーを行うようにMFP1を操作する例である。また、この例の場合、部数(=2部)が必須パラメータとなっている。なお、必須パラメータは部数に限定されず、モノクロ、カラー、又は、用紙サイズ等、複数のパラメータを含めても良い。
なお、パラメータのうち、いずれのパラメータが必須パラメータであるかは、AIアシスタントサーバ装置4が有する記憶部に予め記憶しておくことがでる。また、ユーザが操作部49を操作によって、又はネットワークを介してAIアシスタントサーバ装置4に対してアクセスすることで、いずれのパラメータが必須パラメータであるかは適宜変更することができても良い。
図12の例は、斜線で示す発話がユーザの発話であり、斜線の無い発話がシステムの発話である。まず、システムが、「コピーしますか?スキャンしますか?」との音声出力を行うと、ユーザは、「コピー」と発音してコピー機能の利用を指示する。システム側では、ユーザから指定された「コピー」の設定値の入力を求めるべく、「設定値を入力してください」との音声出力を行う。
これに対して、ユーザは、「モノクロ」と発話したとする。この例の場合、上述のようにコピー部数が必須のパラメータとなっている。このため、システム側では、「部数を指定してください」とのように、コピー部数の入力を求める。これが「入力不足フィードバック」の例である。このような「入力不足フィードバック」に対して、ユーザは、「2部」等のように、コピー部数を指定する。これにより、入力不足が解消するため、システム側は、「モノクロ、2部でコピーします。よろしいですか?」との応答を行い、コピー開始の指示を促す。これが、ジョブを実行するために必要な情報が揃った場合に出力される「入力確認フィードバック」である。
なお、システム側は、「設定値を入力してください」との音声出力に対して、ユーザから「モノクロ、2部で」との応答があった場合、ジョブを実行するために必要な情報が揃っているため、上述の「モノクロ、2部でコピーします。よろしいですか?」との「入力確認フィードバック」を行う。
次に、片面コピーから両面コピーにコピー形態を変更する場合、ユーザは、「両面に変更して」との音声入力を行う。この場合、ジョブを実行するために必要な情報は揃っているため、システム側は、「モノクロ、2部、両面でコピーします。よろしいですか?」との「入力確認フィードバック」を行う。
そして、「モノクロ、2部でコピーします。よろしいですか?」又は「モノクロ、2部、両面でコピーします。よろしいですか?」との「入力確認フィードバック」に対して、ユーザが「はい」と応答すると、システム側は、「ジョブを実行します」との応答を行い、ユーザから指示されたジョブを実行する。
(対話型動作の流れ)
図13及び図14は、このような対話型動作の流れを示すシーケンス図である。図13のシーケンス図は、対話型動作の前半の動作の流れを示しており、図14のシーケンス図は、対話型動作の後半の動作の流れを示している。
まず、ユーザにより携帯端末2の操作音声処理プログラムが起動操作されると(ステップS11)、フィードバック部55は、「コピーしますか?スキャンしますか?」との音声フィードバックを行う(ステップS12)。ユーザが、「コピー」と発音すると(ステップS13)、携帯端末2の通信制御部52は、音声認識サーバ装置3に対して、「コピー」との音声データを送信し、テキスト変換要求を行う(ステップS14)。音声認識サーバ装置3のテキスト変換部62は、「コピー」との音声データをテキストデータに変換処理し、携帯端末2に送信する(ステップS15)。
携帯端末2の取得部51は、このテキストデータを取得する。また、携帯端末2の通信制御部52は、取得したテキストデータをAIアシスタントサーバ装置4に送信する(ステップS16)。AIアシスタントサーバ装置4の解釈部72は、図10及び図11を用いて説明したように、受信したテキストデータで示されるユーザの発話フレーズに基づいて、アクション及びパラメータを解釈する。この例の場合、ユーザは、「コピー」としか発音していないため、コピー部数等が不明となる(入力不足)。
このため、解釈部72は、「Copy_Parameter_Setting」としたアクションに、「設定値を入力してください」とのレスポンス(Response)を付加した解釈結果を形成する(ステップS17)。AIアシスタントサーバ装置4の通信制御部73、この解釈結果を携帯端末2に送信する(ステップS18)。携帯端末2のフィードバック部55は、スピーカ部29を介して「設定値を入力してください」との音声出力を行うと共に、タッチパネル27に対して「設定値を入力してください」とのテキスト表示を行う(ステップS19:入力不足フィードバック)。
次に、入力不足フィードバックがあったため、ユーザは、例えば「両面で」と発話する(ステップS20)。携帯端末2の通信制御部52は、音声認識サーバ装置3に対して、「両面で」との音声データを送信し、テキスト変換要求を行う(ステップS21)。音声認識サーバ装置3のテキスト変換部62は、「両面で」との音声データをテキストデータに変換処理し、携帯端末2に送信する(ステップS22)。
携帯端末2の取得部51は、このテキストデータを取得する。また、携帯端末2の通信制御部52は、取得したテキストデータをAIアシスタントサーバ装置4に送信する(ステップS23)。AIアシスタントサーバ装置4の解釈部72は、受信したテキストデータで示されるユーザの発話フレーズに基づいて、アクション及びパラメータを解釈する。この例の場合、ユーザは、「コピー」及び「両面で」としか発音していないため、コピー部数等が不明となる(必須パラメータ不足)。
複数のパラメータのうち、いずれのパラメータが必須パラメータであるかは、AIアシストサーバ装置4の記憶部に予め記憶しておくことができる。この場合、解釈部72は、記憶部に記憶された必須パラメータの情報に基づいて、携帯端末装置2から取得したパラメータが全ての必須パラメータの設定を行っているか否かを判断し、必須パラメータについて設定が行われていない場合は、必須パラメータの設定を行うように、携帯端末装置2を介してユーザへ促すことができる。
このため、解釈部72は、「Copy_Parameter_Setting」としたアクションと、「印刷面=両面」とのパラメータに、「何部印刷しますか?」とのレスポンス(Response)を付加した解釈結果を形成する(ステップS24)。AIアシスタントサーバ装置4の通信制御部73、この解釈結果を携帯端末2に送信する(ステップS25)。携帯端末2のフィードバック部55は、スピーカ部29を介して「何部印刷しますか?」との音声出力を行うと共に、タッチパネル27に対して「何部印刷しますか?」とのテキスト表示を行う(入力不足フィードバック(ステップS26))。
次に、再度、入力不足フィードバックがあったため、ユーザは、例えば「2部」と発話する(ステップS27)。携帯端末2の通信制御部52は、音声認識サーバ装置3に対して、「2部」との音声データを送信し、テキスト変換要求を行う(ステップS28)。音声認識サーバ装置3のテキスト変換部62は、「2部」との音声データをテキストデータに変換処理し、携帯端末2に送信する(ステップS29)。
携帯端末2の取得部51は、このテキストデータを取得する。また、携帯端末2の通信制御部52は、取得したテキストデータをAIアシスタントサーバ装置4に送信する(ステップS30)。AIアシスタントサーバ装置4の解釈部72は、受信したテキストデータで示されるユーザの発話フレーズに基づいて、アクション及びパラメータを解釈する。この例の場合、ユーザが「2部」との音声データを送信することで、コピーのジョブに対する必須パラメータ不足が解消する。このため、解釈部72は、「Copy_Confirm」としたアクションに、「印刷面=両面」及び「部数=2部」とのパラメータを付加した解釈結果を形成する(ステップS31)。AIアシスタントサーバ装置4の通信制御部73、この解釈結果を携帯端末2に送信する(ステップS32)。
携帯端末2のフィードバック部55は、必須パラメータ不足が解消し、コピーを開始する準備が整ったため、例えば「両面で2部コピーします。よろしいですか?」とのフィードバックのテキストを、解釈結果に含まれるResponseに基づいて生成する(ステップS33)。ここで、テキストの生成は、携帯端末2の記憶部に記憶されたテキストデータの中から全て、又は一部を読み出し、組み合わせることで生成してもよい。
なお、フィードバック部55は、ステップS33に限らず、AIアシスタントサーバ装置4から解釈結果を取得した場合であれば、他のステップでも同様にフィードバックのテキストを生成しても良いが、フィードバックするテキスト情報が解釈結果のレスポンスに含まれている場合は、フィードバックのテキストを生成する必要はない。次に、上述の入力確認フィードバックを行う(ステップS34)。この入力確認フィードバックに対して、ユーザは、設定値の変更又はコピーの開始を指示する音声入力を行う。
図14のシーケンス図のステップS35~ステップS42が、設定値の変更を音声指示した場合の動作の流れを示すシーケンス図である。この図14において、ユーザが設定値を変更する発話を行うと(ステップS35)、音声認識サーバ装置3のテキスト変換部62が、変更された設定値のテキストデータに生成し、携帯端末2を介してAIアシスタントサーバ装置4に送信する(ステップS36~ステップS38)。AIアシスタントサーバ装置4は、受信したテキストデータで示されるユーザの発話フレーズに基づいて、変更された設定値を示す解釈結果を生成し(ステップS39)、携帯端末2に送信する(ステップS40)。
携帯端末2のフィードバック部55は、解釈結果に含まれるResponseに基づいてフィードバックのテキストを生成し(ステップS41)、例えば「○○設定でコピーします。よろしいですか?」等の、上述の入力確認フィードバックを行うことで、変更された設定値でコピーを開始してよいか否かの確認を行う(ステップS42)。
図14のシーケンス図のステップS43~ステップS50が、コピーの開始を指示した際の各部の動作の流れである。すなわち、上述の入力確認フィードバックにより、ユーザが「はい」と応答すると(ステップS43)、テキスト化され、携帯端末2を介してAIアシスタントサーバ装置4に送信される(ステップS44~ステップS46)。AIアシスタントサーバ装置4は、受信したテキストデータに基づいてコピー開始指示を認識すると、「Copy_Execute」としたアクションに、「印刷面=両面」及び「部数=2部」とのパラメータを付加した解釈結果を形成し、これを携帯端末2に送信する(ステップS47~ステップS48)。
携帯端末2の解釈結果変換部53は、解釈結果をMFP1のジョブ命令に変換処理し(ステップS49)、MFP1に送信する(ステップS50)。これにより、音声入力操作により、MFP1をコピー制御することができる。
(AIアシスタントサーバ装置4からフィードバックされる情報の例)
以下の表2に、AIアシスタントサーバ装置4から携帯端末2にフィードバックされる解釈結果の一例を示す。
この表2に示すように、例えばジョブの設定値の入力促すための「Copy_Parameter_Setting」、ジョブの設定値の確認を促すための「Copy_Confirm」、ジョブの実行開始を伝えるための「Copy_Execute」等のアクションが、解釈結果に含められて携帯端末2にフィードバックされる。
フィードバック部55は、解釈結果に含まれるアクション、パラメータ、レスポンスに応じて、ユーザに対するフィードバックを判断することができる。フィードバック部55は、フィードバックする内容を決定するために、表2に相当する情報を携帯端末装置2の記憶部に記憶し、参照できる構成としても良い。なお、表2では、コピーの場合を例に説明したが、プリント、スキャン、FAXも表2と同様にアクションとして、ジョブの設定値の入力促すための「Parameter_Setting」、ジョブの設定値の確認を促すための「Confirm」が用いられても良い。
また、例えば両面又は片面等の印刷面の設定値、又は、コピー部数等のパラメータが、解釈結果に含められて携帯端末2にフィードバックされる。さらに、必須パラメータが不足している場合、不足するパラメータの入力を促すメッセージが、レスポンスとして解釈結果に含められて携帯端末2にフィードバックされる。
(ジョブの実行動作及びエラー発生時の対話)
次に、図15は、例えば「ジョブを実行します。よろしいですか?」等の、上述の入力確認フィードバックにより、ユーザが「はい」と応答することで、ジョブが実行され、又は、エラーが発生した場合の対話の一例を示す。
まず、「ジョブを実行します。よろしいですか?」等の、上述の入力確認フィードバックにより、ユーザが「はい」と応答することで、MFP1においてジョブが実行される。何事もなくジョブが完了すれば、例えば「ジョブが完了しました。原稿の取り忘れに注意してください。」等の完了メッセージ(音声及びテキスト)が、携帯端末2を介して出力される。
これに対して、例えば用紙不足のエラーが発生した場合、携帯端末2を介して「用紙がありません。用紙を補充して継続するか、ジョブをキャンセルしてください」等のジョブの確認フィードバックが行われる。この確認フィードバックに対して、ユーザがMFP1に用紙を補充し、「継続」との発話により応答した場合、MFP1に対してジョブの継続が指示され、MFP1においてジョブが再開される。これに対して、確認フィードバックにより、ユーザが「キャンセル」との発話することで、ジョブのキャンセルを指示した場合、MFP1に対してジョブのキャンセルが通知され、エラー発生以降のジョブがキャンセルされる。そして、携帯端末2を介して、例えば「ジョブをキャンセルしました」等の音声及びテキストを出力する確認フィードバックが行われる。
(ジョブの実行動作及びエラー発生時の対話動作の流れ)
図16が、このようなジョブの実行動作及びエラー発生時の対話動作の流れを示すシーケンス図である。MFP1は、指示されたジョブを実行することで、正常にジョブが完了した旨の実行結果、又は、エラーが発生したことを示す実行結果を携帯端末2に送信する。正常にジョブが完了した旨の実行結果を受信した場合、携帯端末2のフィードバック部55は、例えば「ジョブが完了しました」等の音声メッセージを出力する。これに対して、エラーが発生した旨の実行結果を受信した場合、携帯端末2のフィードバック部55は、例えば「エラーが発生しました。ジョブを継続しますか、キャンセルしますか?」等の、ジョブの継続の是非を問う音声メッセージを出力する(ステップS53)。
図16のステップS54~ステップS61が、ユーザが、継続を指定した場合の各部の動作の流れである。すなわち、「エラーが発生しました。ジョブを継続しますか、キャンセルしますか?」との問い合わせに対し、ユーザがエラーの発生要因を除去したうえで、「継続」と応答した場合(ステップS54)、テキスト化されてAIアシスタントサーバ装置4に送信される(ステップS55~ステップS57)。
AIアシスタントサーバ装置4は、アクションを「Copy_Job_Continue」とし、レスポンスを「ジョブを継続します」とした解釈結果を生成し、これを携帯端末2に送信する(ステップS58~ステップS59)。携帯端末2の実行指示部54は、MFP1に対してジョブの継続を指示する(ステップS60)。また、携帯端末2のフィードバック部55は、「ジョブを継続します」との入力確認フィードバックを行う(ステップS61)。
これに対して、図16のステップS62~ステップS69が、ユーザが、ジョブのキャンセルを指定した場合の各部の動作の流れである。すなわち、「エラーが発生しました。ジョブを継続しますか、キャンセルしますか?」との問い合わせに対し、ユーザが、「キャンセル」と応答した場合(ステップS62)、テキスト化されてAIアシスタントサーバ装置4に送信される(ステップS63~ステップS65)。
AIアシスタントサーバ装置4は、アクションを「Copy_Job_Cancel」とし、レスポンスを「ジョブをキャンセルします」とした解釈結果を生成し、これを携帯端末2に送信する(ステップS66~ステップS67)。携帯端末2の実行指示部54は、MFP1に対してジョブのキャンセルを指示する(ステップS68)。また、携帯端末2のフィードバック部55は、「ジョブをキャンセルします」との入力確認フィードバックを行う(ステップS69)。
(対話によるMFPの機器能力に応じたパラメータの調整動作)
次に、第1の実施の形態の音声操作システムは、MFP1の機器能力に対応したジョブの実行を、対話型操作により実現している。図17は、ユーザから指示されたジョブに必要な機器能力を、MFP1が有しているか否かの判定を行うまでの動作の流れを示すシーケンス図である。図18は、MFP1の機器能力で、ジョブの実行が可能である場合、及び、ジョブの実行が困難である場合の動作の流れを示すシーケンス図である。
まず、図17のシーケンス図において、携帯端末2の携帯音声処理プログラムを起動すると(ステップS71)、処理能力取得部56が、MFP1に対して、例えば処理可能な解像度の問い合わせを行う(Capabilityの取得:ステップS72)。この問い合わせに対して、MFP1は、「200dpi~600dpi」等のように、処理可能な解像度を携帯端末2に回答する(ステップS73)。これにより、携帯端末2において、MFP1の処理可能な解像度が認識される。
なお、処理能力取得部56は携帯端末装置2とMFP1との通信が確立した後の所定のタイミングで、予め処理能力の情報を取得しておいても良い。また、処理能力の取得は他のプログラムが実行し、処理能力取得部56は他のプログラムが取得した情報を取得することで、間接的にMFP1が有する情報を取得しても良い。
次に、携帯端末2のフィードバック部55は、例えば「コピーしますか?スキャンしますか?」等のジョブの指示を促す音声フィードバックを行う(ステップS74)。ユーザが「スキャン」と発話すると(ステップS75)、テキスト化されてAIアシスタントサーバ装置4に送信される(ステップS76~ステップS78)。スキャンの指示だけでは、必須パラメータが不足しているため、解釈部72は、アクションを「Scan_Parameter_Setting」、レスポンスを「設定値を入力してください」とした解釈結果を携帯端末2に送信する(ステップS79~ステップS80)。これにより、携帯端末2のフィードバック部55は、「設定値を入力してください」との入力不足フィードバックを行う(ステップS81)。
次に、このような入力不足フィードバックに対して、ユーザが「1000dpiで田中さん宛て」と発話すると、テキスト化されてAIアシスタントサーバ装置4に送信される(ステップS82~ステップS85)。AIアシスタントサーバ装置4の解釈部72は、アクションを「Scan_Confirm」、パラメータを「解像度=1000dpi、宛先=田中」とした解釈結果を携帯端末2に送信する(ステップS86~ステップS87)。携帯端末2の実行判定部57は、解釈結果に含まれるパラメータに基づいて、ユーザにより指定されたジョブは、MFP1で実行可能か否かを判定する(ステップS88)。
MFP1が、1000dpiの解像度で画像処理が可能であれば、図18のステップS89に示すように、携帯端末2のフィードバック部55が、「1000dpiでスキャンし、田中さん宛てに送信します。よろしいですか?」との入力確認フィードバックを行う。
この入力確認フィードバックに対してユーザが「はい」と応答すると(ステップS91)、テキスト化されてAIアシスタントサーバ装置4に送信される(ステップS92~ステップS94)。AIアシスタントサーバ装置4は、アクションを「Scan_Execute」とし、「解像度=1000、宛先=田中」とした解釈結果を携帯端末2に送信する(ステップS95~ステップS96)。
携帯端末2の解釈結果変換部53は、解釈結果をジョブ命令に変換する(ステップS97)。携帯端末2の通信制御部52は、ジョブ命令をMFP1に送信する(ステップS98)。
これに対して、600dpiがMFP1の処理能力の限界である場合、ユーザから指定された1000dpiの画像処理は、MFP1では困難となる。この場合、携帯端末2は、ステップS90において、「1000dpiは指定できません。600dpiでスキャンし、田中さん宛てに送信します。よろしいですか?」との確認フィードバックを行う。
なお、実行判定部57は、MFP1の処理能力の範囲内で、ユーザが指示した機能又は処理能力値に最も近い機能又は値を選択することができる。例えば、MFP1の処理可能な解像度が200-600dpiの範囲である場合、ユーザが指示した1000dpiに最も近い600dpiが選択される。そして、実行判定部57が選択した能力又は値を、フィードバック部が確認フィードバックとして出力する。
このような確認フィードバックに対してユーザが「はい」と発話すると(ステップS91)、テキスト化されてAIアシスタントサーバ装置4に送信される(ステップS92~ステップS94)。AIアシスタントサーバ装置4は、アクションを「Scan_Execute」とし、「解像度=600、宛先=田中」とした解釈結果を携帯端末2に送信する(ステップS95~ステップS96)。
携帯端末2の解釈結果変換部53は、解釈結果をジョブ命令に変換する(ステップS97)。携帯端末2の通信制御部52は、ジョブ命令をMFP1に送信する(ステップS98)。これにより、音声入力操作により、処理能力内でジョブが実行されるように、MFP1を操作できる。
(携帯端末のアドレス帳から検索した送信先にスキャン画像を送信する動作)
次に、携帯端末2のアドレス帳から検索した送信先にスキャン画像を送信する動作を説明する。図19のシーケンス図が前半の動作の流れを、図20のシーケンス図が後半の動作の流れを示している。
まず、図19のシーケンス図において、携帯端末2の携帯音声処理プログラムを起動すると(ステップS101)、フィードバック部55が、例えば「コピーしますか?スキャンしますか?」等のジョブの指示を促す音声フィードバックを行う(ステップS102)。ユーザが「スキャン」と発話すると(ステップS103)、テキスト化されてAIアシスタントサーバ装置4に送信される(ステップS104~ステップS106)。スキャンの指示だけでは、必須パラメータが不足しているため、解釈部72は、アクションを「Scan_Parameter_Setting」、レスポンスを「設定値を入力してください」とした解釈結果を携帯端末2に送信する(ステップS107~ステップS108)。これにより、携帯端末2のフィードバック部55は、「設定値を入力してください」との入力不足フィードバックを行う(ステップS109)。
次に、このような入力不足フィードバックに対して、ユーザが「田中さん宛て」と発話すると(ステップS110)、テキスト化されてAIアシスタントサーバ装置4に送信される(ステップS111~ステップS113)。AIアシスタントサーバ装置4の解釈部72は、アクションを「Scan_Confirm」、パラメータを「宛先=田中」とした解釈結果を携帯端末2に送信する(ステップS114~ステップS115)。携帯端末2の検索部58は、解釈結果に含まれるパラメータに基づいてRAM22に記憶されているアドレス帳の記憶領域から、田中さんの電子メールアドレスを検索する(ステップS116)。
なお、検索する対象はRAM22に限らず携帯端末装置とネットワークを介して接続されたサーバであっても良いし、MFP1に対して該当する電子メールアドレスが存在するか否かを問い合わせても良い。
アドレス帳の記憶領域に、田中さんが一人だけ記録されている場合、図20のステップS117において、携帯端末2の通信制御部52は、アドレス帳の記憶領域に記憶されている田中さんの電子メールアドレスを送信先に設定した電子メールを作成する。この電子メールには、スキャン画像が添付されて送信される。これにより、田中さん宛てにスキャン画像が送信される。
アドレス帳の記憶領域に、田中さんが複数人記録されている場合、つまり、宛先を識別する情報である「田中」を含む宛先が複数存在する場合、携帯端末2のフィードバック部55は、「田中さんが複数登録されています。送信先を選択してください」との入力不足フィードバックを行う(ステップS118)。そして、携帯端末2の検索部58は、アドレス帳の記憶領域から検索した複数の田中さんの氏名及び電子メールアドレス等を、タッチパネル27に一覧表示する(ステップS119)。
ユーザは、この一覧の中から所望の田中さんを選択する。携帯端末2の通信制御部52は、ユーザにより選択された田中さんの電子メールアドレスを送信先に設定した電子メールを作成する。この電子メールには、スキャン画像が添付されて送信される。これにより、ユーザが希望する宛先に相当する田中さん宛てにスキャン画像が送信される。
アドレス帳の記憶領域に、田中さんが記録されていない場合、携帯端末2のフィードバック部55は、「田中さんが登録されていません。宛先を指定してください」との入力不足フィードバックを行う(ステップS120)。そして、携帯端末2の検索部58は、アドレス帳の記憶領域から検索した各ユーザの田中さんの氏名及び電子メールアドレス等を、例えば五十音順に、タッチパネル27に一覧表示する(ステップS121)。
また、タッチパネル27にキーボードを表示させることで、ユーザに宛先となる電子メールアドレスを手動で入力させることで、氏名及び電子メールアドレスを取得することができる。なお、取得した氏名及び電子メールアドレスをアドレス帳に登録しても良い。
ユーザは、この一覧の中から所望の宛先を選択する。携帯端末2の通信制御部52は、ユーザにより選択された宛先の電子メールアドレスを作成する。この電子メールには、スキャン画像が添付されて送信される。これにより、ユーザが希望する宛先にスキャン画像が送信される。
すなわち、スキャン画像の送信先とする田中さん又は他のユーザが選択されると、携帯端末2のフィードバック部55は、例えば「スキャンして田中○○さん宛てに送信します。よろしいでしょうか」との確認フィードバックを行う(ステップS122)。
この確認フィードバックに対して、ユーザが「はい」と応答すると(ステップS123)、テキスト化されてAIアシスタントサーバ装置4に送信される(ステップS124~ステップS126)。AIアシスタントサーバ装置4は、アクションを「Scan_Execute」とし、「解像度=600、宛先=田中」とした解釈結果を携帯端末2に送信する(ステップS127~ステップS128)。
携帯端末2の解釈結果変換部53は、解釈結果をジョブ命令に変換する(ステップS129)。携帯端末2の通信制御部52は、宛先となる氏名及び電子メールアドレスなどの宛先情報と共に、ジョブ命令をMFP1に送信する(ステップS130)。これにより、ユーザが希望する宛先にスキャン画像が添付された電子メールが送信される。
(携帯端末のメモリから印刷対象を検索して印刷する動作)
次に、携帯端末2のRAM22等のメモリから検索したファイルを印刷する動作を説明する。図21のシーケンス図が前半の動作の流れを、図22のシーケンス図が後半の動作の流れを示している。
まず、図21のシーケンス図において、携帯端末2の携帯音声処理プログラムを起動すると(ステップS141)、フィードバック部55が、例えば「コピーしますか?スキャンしますか?プリントしますか?」等のジョブの指示を促す音声フィードバックを行う(ステップS142)。ユーザが「プリント」と発話すると(ステップS143)、テキスト化されてAIアシスタントサーバ装置4に送信される(ステップS144~ステップS146)。「プリント」との指示だけでは、必須パラメータが不足しているため、解釈部72は、アクションを「Print_Parameter_Setting」、レスポンスを「設定値を入力してください」とした解釈結果を携帯端末2に送信する(ステップS147~ステップS148)。これにより、携帯端末2のフィードバック部55は、「設定値を入力してください」との入力不足フィードバックを行う(ステップS149)。
次に、このような入力不足フィードバックに対して、ユーザが「ファイルAをプリント」と発話すると(ステップS150)、テキスト化されてAIアシスタントサーバ装置4に送信される(ステップS151~ステップS153)。AIアシスタントサーバ装置4の解釈部72は、アクションを「Print_Confirm」、パラメータを「印刷対象=ファイルA」とした解釈結果を携帯端末2に送信する(ステップS154~ステップS155)。携帯端末2の検索部58は、解釈結果に含まれるパラメータに基づいてRAM22等のメモリからファイルAを検索する(ステップS156)。
なお、検索する対象はRAM22に限らず携帯端末装置とネットワークを介して接続されたサーバであっても良いし、MFP1に対して該当する電子メールアドレスが存在するか否かを問い合わせても良い。
メモリに、一つだけファイルAが記録されている場合、図22のステップS157において、携帯端末2の通信制御部52は、このファイルAを印刷データとして設定する。このファイルAの印刷データは、MFP1に送信され印刷される。
メモリに2つ以上のファイルAが存在する場合、携帯端末2のフィードバック部55は、「複数のファイルAが登録されています。印刷するファイルを選択してください」との入力不足フィードバックを行う(ステップS158)。そして、携帯端末2の検索部58は、メモリから検索した、ファイル名に「ファイルA」を含むファイル一覧をタッチパネル27に一覧表示する(ステップS159)。ユーザは、この一覧の中から所望のファイルAを選択する。携帯端末2の通信制御部52は、後述するように、ユーザにより選択されたファイルAをMFP1に送信し印刷要求を行う。
メモリにファイルAが記録されていない場合、携帯端末2のフィードバック部55は、「メモリ内にファイルAが登録されていません。印刷するファイルを指定してください」との入力不足フィードバックを行う(ステップS160)。そして、携帯端末2の検索部58は、メモリから検索した各ファイルを、タッチパネル27に一覧表示する(ステップS161)。ユーザは、この一覧の中から所望のファイルを選択する。携帯端末2の通信制御部52は、ユーザにより選択されたファイルをMFP1に送信し印刷要求を行う。
すなわち、印刷を希望するファイルA又は他のファイルが選択されると、携帯端末2のフィードバック部55は、例えば「ファイルAの印刷を開始します。よろしいでしょうか」との確認フィードバックを行う(ステップS162)。
この確認フィードバックに対して、ユーザが「はい」と応答すると(ステップS163)、テキスト化されてAIアシスタントサーバ装置4に送信される(ステップS164~ステップS166)。AIアシスタントサーバ装置4は、アクションを「Print_Execute」とし、「印刷対象=ファイルA」とした解釈結果を携帯端末2に送信する(ステップS167~ステップS168)。
携帯端末2の解釈結果変換部53は、解釈結果をジョブ命令に変換する(ステップS169)。携帯端末2の通信制御部52は、ジョブ命令を、ユーザより選択されたファイルと共にMFP1に送信する(ステップS170)。これにより、MFP1において、ユーザが希望するファイルが印刷される。
(第1の実施の形態の効果)
以上の説明から明らかなように、第1の実施の形態の音声操作システムは、携帯端末2に、プラットフォームアプリケーションプログラムとなる操作音声処理プログラムをインストールし、このアプリがMFP1、音声認識サーバ装置3及びAIアシスタントサーバ装置4の間の通信を中継する。ユーザが携帯端末2に設けられているマイクロホン部29に向かって発話すると、ユーザの発話内容を分析し、ユーザから指示された動作を行うようにMFP1を操作する(音声入力操作)。
これにより、複雑な操作を音声で命令することで、タッチパネル27等のGUI(Graphical User Interface)による操作を不要とすることができるため、操作に慣れているユーザであっても、さらに迅速かつ簡単な入力操作を可能とすることができる。また、高齢者又は操作に不慣れなユーザであっても、対話による操作サポートにより、例えば複雑なネットワーク設定、高度なジョブの設定又は新規アプリの導入等の、ユーザが希望する操作を迅速かつ簡単に実行可能とすることができる。
また、ユーザが発話した内容のテキストに基づいて、ユーザの意図を解析しているため、ユーザの発話に基づいた処理内容をAIアシスタントサーバ装置4側が判断できる。
(第2の実施の形態)
次に、第2の実施の形態の音声操作システムの説明をする。
(システム構成)
図23は、第2の実施の形態の音声操作システムのシステム構成図である。この図23に示すように、第2の実施の形態の音声操作システムは、1以上の複合機(MFP)1、1以上のスマートスピーカ100(又は、スマートホン、タブレット端末等でもよい)、1以上の音声認識サーバ装置3、及び、1以上のAIアシスタントサーバ装置4を有している。MFP1、スマートスピーカ100、音声認識サーバ装置3、及び、AIアシスタントサーバ装置4は、例えばLAN等のネットワーク5を介して相互に接続されている。これにより、音声認識サーバ装置3及びAIアシスタントサーバ装置4でクラウドサービスの提供が可能となっている。
なお、外部装置としては、MFP1の他、例えば電子黒板又はプロジェクタ装置等の他の電子機器を設けてもよい。
AIアシスタントサーバ装置4は、管理データベース(管理DB)101及び紐づけ用データベース102を有している。管理DB101には、テキストデータ、画像データ、音声データ等、AIアシスタントサーバ装置4がクラウドサービスとして提供するコンテンツ(データ)を記憶するデータベースである。また、紐づけ用DB102には、例えば各スマートスピーカ100を特定する各デバイスIDと、各スマートスピーカ100に関連付けられたMFP1の機器IDとが関連付けられて記憶されている。すなわち、紐づけ用DBには、各スマートスピーカ100で音声操作可能なMFP1が特定できるように、各スマートスピーカ100のデバイスIDとMFP1の機器IDとが関連付けられて記憶されている。
なお、管理DB101及び紐づけ用DB102としては、クラウドサービスがネットワーク5上に有するHDD等の記憶部を用いることができる。この他、管理DB101及び紐づけ用DB102のうち、一方又は両方を、ネットワーク5を介してクラウドサービスでアクセス可能な別のサーバ装置に記憶してもよい。
スマートスピーカ100は、MFP1を音声操作するための、ユーザからの音声入力を受け付ける。なお、スマートスピーカ100は、受け付けた操作を、ユーザへ音声でフィードバック可能となっている。また、スマートスピーカ100は、クラウドサービスを提供する音声認識サーバ装置3及びAIアシスタントサーバ装置4の間での、例えば音声データ、テキストデータ、画像データ等のデータ通信を行う。音声認識サーバ装置3は、スマートスピーカ100から受信した音声データを分析し、テキストデータへ変換する。また、テキストデータと事前登録されている辞書情報とに基づいてユーザの意図を解釈し、解釈結果をAIアシスタントサーバ装置4に送信する。
AIアシスタントサーバ装置4は、音声認識サーバ装置3から受信した解釈結果を、MFP1で解釈可能な形式であるジョブ実行命令に変換してMFP1に送信する。MFP1は、このようなクラウドサービスから送信されるジョブ実行命令を実行する。
(MFPのハードウェア構成)
MFP1は、例えばプリンタ機能及びスキャナ機能等の複数の画像処理機能を備えている。すなわち、MFP1は、図2を用いて説明したように、コントローラ7、通信部15、操作部16、スキャナエンジン17及びプリンタエンジン18を有している。
コントローラ7は、CPU10、ASIC11、メモリ12、HDD(Hard Disk Drive)13及びタイマ14を有する。CPU10~タイマ14は、それぞれバスラインを介して通信可能なように相互に接続されている。
通信部15は、ネットワーク5に接続されており、後述するように、例えばスキャン指示又は印刷指示等の、携帯端末2を用いて音声入力されたジョブ実行命令を取得する。
操作部16は、液晶表示部(LCD)とタッチセンサとが一体的に形成された、いわゆるタッチパネルとなっている。操作者は、操作部16を用いて所望の動作の実行命令を行う場合、操作部16に表示された操作ボタン(ソフトウェアキー)を接触操作することで、所望の動作を指定する。
スキャナエンジン17は、スキャナユニットを制御して、光学的に原稿の読み取りを行う。プリンタエンジン18は、画像書き込みユニットを制御して、例えば転写紙等に画像を印刷する。CPU10は、画像形成装置を統括的に制御する。ASIC11は、いわゆる大規模集積回路(LSI:Large-Scale Integration)となっており、スキャナエンジン17及びプリンタエンジン18で処理する画像に必要な各種の画像処理等を行う。携帯端末装置2から取得したジョブ実行命令を実行する手段であるスキャナエンジン17及びプリンタエンジン18は、機能部に相当する。
メモリ12は、CPU10が実行する各種アプリケーション及びアプリケーションを実行する際に用いられる種々のデータが記憶されている。HDD13は、画像データ、各種のプログラム、フォントデータ、及び、各種のファイル等を記憶する。なお、HDD13の代わり又はHDD13と共に、SSD(Solid State Drive)を設けてもよい。
(端末のハードウェア構成)
スマートスピーカ100は、図3に示した携帯端末2と同様に、CPU21、RAM22、ROM23、インタフェース部(I/F部)24及び通信部25を、バスライン26を介して相互に接続して形成されている。
ROM23には、操作音声処理プログラムが記憶されている。CPU21は、この操作音声処理プログラムを実行することで、マイクロホン部29から音声情報を取得してクラウドサービスへ送信する。また、CPU21は、クラウドサービスから取得したデータ(音声データ、テキストデータ、画像データ等)をタッチパネル27に表示制御し、又は、スピーカ部28を介して音声出力制御する。
I/F部24には、タッチパネル27、スピーカ部28及びマイクロホン部29が接続されている。マイクロホン部29は、通話音声の他、MFP1に対するジョブの実行命令となるユーザからの入力音声を集音(取得)する。入力音声は、通信部25を介してクラウドサービスに送信される。
(クラウドサービスのハードウェア構成)
クラウドサービスを構成する音声認識サーバ装置3及びAIアシスタントサーバ装置4は、図4に示すように、CPU31、RAM32、ROM33、HDD34、インタフェース部(I/F部)35及び通信部36を、バスライン37を介して相互に接続して形成されている。
I/F部35には、表示部38及び操作部39が接続されている。HDD34には、音声データをテキストデータに変換し、更にテキストデータを予め定義された辞書情報と一致するか否かを判断してマッチした場合にはテキストデータをユーザの意図を示すインテント及びジョブ条件などの変数を示すパラメータに変換するための操作音声変換プログラムが記憶されている。また、HDD34には、辞書情報を保持する音声アシスタントプログラム、インテントとパラメータに基づいてMFPが解釈可能な形式であるジョブ実行指示に変換した上で登録されたMFPへ送信する管理プログラムが記憶されている。
CPU31は、これらのプログラムを実行する。なお、操作音声変換プログラム、音声アシスタントプログラム及び管理プログラムは、1つのサーバ装置で実行されても良いし、それぞれ異なるサーバ装置で実行されても良い。さらに、複数のサーバ装置が連携することで、これらのプログラムを実行しても良い。
(各プログラムに基づく各機能)
図24は、スマートスピーカ100のCPU21が操作音声処理プログラムを実行することで実現される各機能を示す図である。また、図24は、音声認識サーバ装置3のCPU31が操作音声変換プログラム及び音声アシスタントプログラムを実行することで実現される各機能を示す図である。さらに、図24は、AIアシスタントサーバ装置4のCPU31が、管理プログラムを実行することで実現される各機能を示す図である。
(操作音声処理プログラムの機能)
スマートスピーカ100のCPU21は、ROM23等の記憶部に記憶されている操作音声処理プログラムを実行することで、取得部151、通信制御部152及びフィードバック部153として機能する。
取得部51は、マイクロホン部29を介して集音された、MFP1を音声操作するためのユーザの指示音声を取得する。なお、取得部151は、タッチパネル又は物理スイッチなどを介してユーザの操作及び指示を取得しても良い。通信制御部152は、スマートスピーカ100とクラウドサービスとの間の通信を制御する。通信制御部152は、取得部151が取得した情報をクラウドサービスへ送信すると共に、クラウドサービスからテキストデータ、画像データ、音声データを取得する。また、通信制御部152は、取得部151で取得された情報を、クラウドサービスへ送信する場合、スマートスピーカ100を特定するデバイスIDを送信する。
フィードバック部153は、対話型の音声入力操作を実現すべく、例えば不足するデータを補うための入力操作を促す音声をフィードバックし、又は、入力操作の確認となる音声をフィードバックする。なお、フィードバック部153は、タッチパネル27のディスプレイ表示により、フィードバックとなるテキスト又は画像をユーザに提供してもよい。
なお、この例では、取得部151~フィードバック部153は、ソフトウェアで実現されることとしたが、これらのうち、一部又は全部を、IC(Integrated Circuit)等のハードウェアで実現してもよい。また、取得部151~フィードバック部153は、操作音声処理プログラム単体で実現しても良いし、他のプログラムに処理の一部を実行させ、又は他のプログラムを用いて間接的に処理を実行させても良い。
(操作音声処理プログラムの機能)
次に、音声認識サーバ装置3のCPU31は、HDD34に記憶されている操作音声変換プログラムを実行することで、取得部155、テキスト変換部156、解析部157及び出力部158として機能する。取得部155は、スマートスピーカ100から送信される、ユーザにより入力された音声データを取得する。また、取得部155は、スマートスピーカ100のタッチパネル、ボタン又はスイッチ等のユーザ操作を取得しても良い。
テキスト変換部156は、ユーザにより入力された音声データをテキストデータに変換する。解釈部157は、テキストデータに基づいて、ユーザからの指示を解釈する。具体的には、解釈部157は、音声アシスタントプログラムから提供された辞書情報に基づいて、テキストデータに含まれる単語などが辞書情報にマッチしているか否かを確認する。そして、マッチしている場合には、ユーザの意図を示すインテントとジョブ条件などの変数を示すパラメータに変換する。解釈部157は、インテント及びパラメータを管理プログラムに対して送信するが、このとき、音声データを取得するスマートスピーカ100を特定するための、スマートスピーカ100のデバイスIDも共に送信する。出力部158は、スマートスピーカ100に対するテキストデータ、音声データ、画像データなどのデータの送信等を行うように、通信部36を通信制御する。
なお、この例では、取得部155~出力部158をソフトウェアで実現することとしたが、これらのうち、一部又は全部を、IC(Integrated Circuit)等のハードウェアで実現してもよい。また、取得部155~出力部158の各機能は、操作音声変換プログラム単体で実現しても良いし、他のプログラムに処理の一部を実行させてもよいし、又は他のプログラムを用いて間接的に実行させても良い。例えば、操作音声変換プログラムの解釈部157の機能の一部又は全てを音声アシスタントプログラムに実行させても良い。この場合、例えばテキストデータに含まれる単語などが辞書情報にマッチしているか否かの確認、マッチしている場合にユーザの意図を示すインテントとジョブ条件などの変数を示すパラメータへの変換は、音声アシスタントアプリに実行させ、解釈部157はインテント及びパラメータを音声アシスタントプログラムから取得するものとしても良い。
(音声アシスタントプログラムの機能)
次に、音声認識サーバ装置3のCPU31は、HDD34に記憶されている音声アシスタントプログラムを実行することで、提供部159として機能する。提供部159は、HDD34に記憶されている、テキストデータ、インテント及びパラメータの関係を予め定義した辞書情報を管理し、操作音声変換プログラムに対して提供する。また、テキストデータに基づいて、ユーザからの操作指示を解釈しても良い。具体的には、操作音声変換プログラムからテキストデータを取得し、テキストデータに含まれる単語などが辞書情報にマッチしているか否かを確認して、マッチしている場合にはテキストデータをインテントとパラメータに変換する。その後、インテント及びパラメータを操作音声変換プログラムに対して提供する。
なお、この例では、提供部159をソフトウェアで実現することとしたが、これらのうち、一部又は全部を、IC(Integrated Circuit)等のハードウェアで実現してもよいこと等は、上述の他のプログラムと同様である。
(管理プログラムの機能)
AIアシスタントサーバ装置4のCPU31は、HDD34に記憶されている管理プログラムを実行することで、取得部160、解釈結果変換部161、実行指示部162、機器情報取得部163、実行判定部164、通知部165、管理部166及び検索部167として機能する。
取得部160は、音声認識サーバ装置3から送信されるインテント、パラメータ及びスマートスピーカ100のデバイスID等を取得する。解釈結果変換部161は、操作音声変換プログラムで変換されたインテント及びパラメータなどの解釈結果を、MFP1が解釈可能なジョブの実行命令に変換する。実行指示部162は、ジョブの実行命令をMFP1に送信して、ジョブの実行を指示する。
なお、実行指示部162は、紐づけ用DB102を参照し、スマートスピーカ100に関連付けられているMFP1に対してジョブ実行命令を送信する。つまり、実行指示部162は、インテント及びパラメータと共にユーザが使用したスマートスピーカ100を特定するデバイスIDを取得し、取得したデバイスIDに関連付けられているMFP1を紐づけ用DB102から検索し、検索したMFP1に対してジョブ実行命令を送信する。
機器情報取得部163は、MFP1から、MFP1の例えば処理可能な最大画素数等の処理能力を示す機器情報を取得する。なお、機器情報取得部163は、MFP1等の複数の外部装置から取得した機器情報を、各外部装置を特定するデバイスID等の特定情報と関連付けてHDD等の記憶部に記憶して管理する。
また、機器情報取得部163は、MFP1との通信接続が確立されているか否かを示す接続状態、MPF1の電源のON/OFF又はスリープモード等の電力状態、エラーの有無とエラーの種類、用紙及びトナー等の消耗品の残余状況、ユーザのログイン状態、ログインユーザに使用が許可された機能を示す権限情報、などを含む機器状態を取得する。
実行判定部57は、機器情報で示されるMFP1の処理能力と、ユーザから指定されたジョブ(即ち、操作音声変換プログラムで生成されたインテント及びパラメータ)とを比較することで、ユーザから指定されたジョブをMFP1で実行可能か否かを判定する。ユーザから指定されたジョブ実行が実行可能と判断した場合、MFPに対してジョブ実行命令を送信する。また、実行不可能と判断した場合、操作音声変換プログラムを介してスマートスピーカ100に対してエラーメッセージ等のレスポンス情報をフィードバックする。
通知部165は、ユーザのジョブ実行指示への応答としてテキストデータ、音声データ、画像データなどを操作音声変換プログラムへ通知する。また、ジョブの実行するためのジョブ条件を示すパラメータが不足している場合には、操作音声変換プログラムを介して端末対してフィードバックを行うことでユーザにパラメータの入力を促す。ここで、不足しているパラメータを確認するために必要な情報として、パラメータ情報を送信しても良いし、ユーザにパラメータの指定を促すために必要な情報としてテキストデータ、音声データ、画像データを送信しても良い。
管理部166は、MFP1、スマートスピーカ100又はネットワークを介してクラウドサービスに接続したクライアントデバイスに入力された情報及び指示に基づいて、スマートスピーカ100のデバイスIDとMFP1の機器IDとを関連付けて紐づけ用DB102に登録する。なお、紐づけ用DB102は、スマートスピーカ100のデバイスIDとMFPの機器IDとを関連付けた情報を、例えば管理テーブル等に保持している。
なお、この例では、取得部160~検索部167をソフトウェアで実現することとしたが、これらのうち、一部又は全部を、IC(Integrated Circuit)等のハードウェアで実現してもよいこと等は、上述の他のプログラムと同様である。
また、上述の操作音声処理プログラム、操作音声変換プログラム、音声アシスタントプログラム及び管理プログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM、フレキシブルディスク(FD)などのコンピュータ装置で読み取り可能な記録媒体に記録して提供してもよい。また、CD-R、DVD(Digital Versatile Disk)、ブルーレイディスク(登録商標)、半導体メモリなどのコンピュータ装置で読み取り可能な記録媒体に記録して提供してもよい。また、インターネット等のネットワーク経由でインストールするかたちで提供してもよいし、機器内のROM等に予め組み込んで提供してもよい。
(音声入力操作の全体的な動作)
図25は、第2の実施の形態の音声操作システムにおける音声入力操作の全体的な動作を説明するための図である。この図25の例は、MFP1の両面コピー機能を、スマートスピーカ100を介して音声入力操作する例である。この場合、ユーザは、スマートスピーカ100の操作音声処理プログラムを起動し、例えば「両面でコピー」と発声する(ステップS181)。このユーザの音声は、スマートスピーカ100のマイクロホン部29で集音され、取得部151により取得される。なお、操作音声処理プログラムは、スマートスピーカ100の起動と同時に起動しても良いし、スマートスピーカ100に対して所定の操作又は所定の音声が行われた際に起動しても良い。
スマートスピーカ100の通信制御部152は、この「両面でコピー」との音声データをクラウドサービスの音声認識サーバ装置3に送信する(ステップS182)。このとき、通信制御部152は、スマートスピーカ100を特定するための、スマートスピーカ100のデバイスIDを音声認識サーバ装置3に送信する。音声認識サーバ装置3の操作音声変換プログラムによるテキスト変換部156は、「両面でコピー」との音声データをテキストデータに変換処理する(ステップS183)。
解釈部157は、音声アシスタントプログラムから取得した辞書情報に基づいて(ステップS184、ステップS185)、テキストデータに含まれる単語などが辞書情報にマッチしているか否かを確認する(ステップS186)。そして、マッチしている場合には、ユーザから指示された操作を示すインテントとジョブ条件などの変数を示すパラメータに変換し、音声データを取得するスマートスピーカ100を特定するためのデバイスIDと共にAIアシスタントサーバ装置4に送信する(ステップS187)。
具体的には、この例の場合、解釈部157は、MFP1に実行を要求する動作は「コピーである(インテント:Copy_Execcute)」と解釈し、「印刷面は両面である(印刷面=両面)」と解釈する(ステップS186)。このように、解釈部157は、テキストデータに基づいて、ユーザから指定されたジョブの種別(インテント)及び内容(パラメータ)を示す解釈結果を生成する。この解釈結果は、管理プログラムに送信される(ステップS187)。このとき、解釈部157は、解釈結果と対応させて音声データの送信元となるスマートスピーカ100を特定するデバイスIDをAIアシスタントサーバ装置4に送信しても良い。
AIアシスタントサーバ装置4の管理プログラムの解釈結果変換部161は、スマートスピーカ100から取得した解釈結果を、MFP1のジョブ命令に変換処理する(ステップS188)。この解釈結果、及び、解釈結果から変換処理されたジョブ命令の一例は、上述の表1を用いて説明したとおりである。なお、解釈結果変換部161は、解釈結果をジョブ命令に変換するために、表1に相当する情報をAIアシスタントサーバ装置4のHDD34等の記憶部に記憶し、参照できる構成としても良い。
上述の表1の例の場合、「COPY_EXECUTE」、「SCAN_EXECUTE」、「PRINT_EXECUTE」及び「FAX_EXECUTE」が、インテント(Intent)の一例である。また、「印刷面」及び「部数」等がパラメータ(Parameter)の一例である。なお、パラメータとしては、ジョブの設定値として指定可能な全てのパラメータが含まれる。
AIアシスタントサーバ装置4の解釈結果変換部161は、「COPY_EXECUTE」の解釈結果を、「コピージョブの実行」との、MFP1のジョブ命令に変換処理する。同様に、解釈結果変換部161は、「SCAN_EXECUTE」の解釈結果を、「スキャンジョブの実行」との、MFP1のジョブ命令に変換処理する。同様に、解釈結果変換部161は、「PRINT_EXECUTE」の解釈結果を、「印刷ジョブの実行」との、MFP1のジョブ命令に変換処理する。同様に、解釈結果変換部161は、「FAX_EXECUTE」の解釈結果を、「FAXジョブの実行」との、MFP1のジョブ命令に変換処理する。
なお、以上の説明は、MFP1で実行される基本的なジョブの例であるが、クラウドサービスで解釈可能なジョブは、このような基本的なジョブに限定されない。例えば、通信対象に対して機器情報を収集させてクラウドサービスへ送信させるジョブ、通信対象が有する記憶部に記憶された所定の情報を通信対象の表示部に表示させるジョブ等も指示可能である。
また、解釈結果変換部161は、解釈結果に「印刷面」のパラメータが含まれている場合、「印刷面の設定値の変更」を行うMFP1のジョブ命令を形成する。同様に、解釈結果変換部161は、解釈結果に「部数」のパラメータが含まれている場合、「部数の設定値の変更」を行うMFP1のジョブ命令を形成する。
すなわち、解釈結果変換部161は、解釈結果の「Intent」に含まれる情報で、ユーザの意図、例えばMFP1に実行させるジョブの種類を判断し、「Parameter」に含まれる値を、ジョブの設定値と判断して、解釈結果をジョブ命令に変換処理する。
AIアシスタントサーバ装置4の解釈結果変換部161は、このようにして形成されたジョブ命令を、通信部36を介してMFP1に送信する(ステップS189)。この例の場合、「コピージョブ実行(印刷面=両面)」のジョブ命令がMFP1に送信される。なお、通信制御部52は、管理部によって特定されたMFPに対してジョブ命令を送信する。つまり、音声データの送信元の端末を特定するバイスIDと紐づいたIDで特定されるMFPに対してジョブの実行を指示することができる。これにより、MFP1で両面印刷が実行される。
(クラウドサービス装置における解釈動作の詳細)
音声認識サーバ装置3のHDD34には、辞書情報が記憶されている。操作音声変換プログラムは、この辞書情報に基づいてインテント及びパラメータを生成する。より具体的には、操作音声変換プログラムは、音声データから変換したテキストデータに含まれる単語などが辞書情報とマッチするか否かを判断し、マッチする場合は辞書情報に定義されているインテント及びパラメータを含む解釈結果を生成する。
辞書情報は、インテント及びパラメータを生成することができればどのような形態であっても良い。一例として、この例の場合、辞書情報は、エンティティ(Entity)情報、インテント(Intent)情報及び関連付け情報を含んで構成されている。エンティティ情報は、ジョブのパラメータと自然言語を関連付ける情報である。1つのパラメータに複数の類義語が登録可能となっている。インテント情報は、ジョブの種類を示す情報である。関連付け情報は、ユーザの発話フレーズ(自然言語)とエンティティ情報、及び、ユーザの発話フレーズ(自然言語)とインテント情報を、それぞれ関連付ける情報である。関連付け情報により、パラメータの発話順序又はニュアンスが多少変わっても、正しい解釈が可能となっている。また、関連付け情報により、入力された内容に基づいてレスポンスのテキスト(解釈結果)を生成しても良い。
上述の図10は、エンティティ情報の一例を示している。この図10の例は、印刷色(Print Color)に対応するエンティティ情報である。この図10において、「Print Color」の文字は、エンティティ名を示している。また、図10において、左の列の「auto_color」、「monochrome」、「color」・・・等の文字は、パラメータ名を示している。また、図10において、右の列の「auto_color」、「monochrome,black and white」、「color,full color」・・・等の文字は、類義語を示している。
この図10からわかるように、エンティティ情報としては、パラメータ及び類義語が関連付けられて記憶されている。パラメータと共に、類義語を登録することで、例えばモノクロでのコピーを指示する場合に、「Please copy by black and white」と発話しても、「Please copy by monochrome」と発話しても、パラメータの設定を可能とすることができる。
図11(a)は、ユーザの発話フレーズの例、図11(b)は、インテント名、図11(c)は、エンティティ情報を示している。この図11(a)~図11(c)に示すように、クラウドサービス4が備える表示部38に表示される画面上において、操作部39を操作することで、ユーザの発話をドラッグする。または、ネットワークを介してクラウドサービスにアクセスした装置の表示部に表示される画面上において、この装置の操作部を操作することで、ユーザの発話をドラッグする。
これにより、関連付け対象となるエンティティ情報を選択できるようになっている。また、選択したエンティティ情報でバリュー(VALUE)を設定すると、応答で入るパラメータが変更される。例えば、「Please copy by black and white」と発話した場合、バリューを「SprintColor」とすると、戻り値として「printColor=monochrome」が返る。これに対して、バリューを「SprintColor.original」とすると、戻り値として「printColor=black and white」が返る。ここで、バリューを「SprintColor.original」とすると、ユーザの発話内容をそのまま応答のパラメータとして返すことができる。
(対話型動作)
次に、実施の形態の音声操作システムでは、ユーザからの入力内容に基づいて、システムが応答する対話型システムを実現している。実施の形態の音声操作システムでは、対話に必要な定型文を応答する以外に、MFP1の操作特有の応答として、「入力不足フィードバック」及び「入力確認フィードバック」の、2種類の応答を行うことで、対話によるMFP操作を可能とする対話型MFP操作システムを実現している。
「入力不足フィードバック」は、ジョブを実行するために必要な情報が揃っていない場合に出力される応答である。ユーザの入力結果を聞き取れなかった場合、又は、必須パラメータが不足している場合に出力される。つまり、必須パラメータ以外のパラメータについては、指示されていない場合であっても入力不足フィードバックを行う必要はない。また、パラメータ以外にも、コピー機能又はスキャン機能等のうち、利用する機能を確認する処理を含んでも良い。
例えば、クラウドサービス装置が通信接続中の外部装置の種類に応じて、ユーザに確認する機能、及びパラメータを変更しても良い。この場合、機器情報取得部163が外部装置との通信が確立した後の所定のタイミングで外部装置の種類及び機能を示す情報を取得し、取得した情報に基づいてユーザに確認する機能及びパラメータを例えばフィードバック部153が決定してもよい。
例えば、外部装置の種類がMFP1である場合、コピー、プリント、スキャン、FAXなどのMPF1が有する機能をユーザに確認でき、更に、コピー、プリント、スキャン、FAXのうちMFP1が有している機能についてのみ、いずれの機能を使用するかをユーザに確認しても良い。また、ユーザから指定された設定条件に応じて必須パラメータを変更しても良い。つまり、ユーザが指定した印刷条件が変倍印刷の場合は印刷する用紙サイズを必須パラメータとして、両面印刷の場合は原稿が片面か両面かを示す設定を必須パラメータとして、週刊誌綴じ印刷の場合は仕上がりサイズ及び1ページに含めるページ数などの設定を必須パラメータとして設定する。
「入力確認フィードバック」は、ジョブを実行するために必要な情報が揃った場合に出力される応答である。つまり、入力確認フィードバックは、全ての必須パラメータについて指示された場合に行われる。また、入力確認フィードバックは、現在の設定値でジョブを実行するか、又は、設定値を変更するかの選択をユーザに促すために行う。なお、現在の設定値でジョブを実行するか否かを確認するために、ユーザにより指示された全てのパラメータ(必須パラメータか必須パラメータ以外のパラメータかに関わらず)を音声出力することで、ユーザに確認することができる。
(両面で2部のコピーを行うようにMFPを対話型操作する例)
図26~図34は、このような対話型動作の流れを示すシーケンス図である。
(音声アシスタントプログラムの起動動作の流れ)
まず、図26のシーケンス図は、音声アシスタントプログラムの起動動作の流れを示している。この図26において、まず、ユーザは、スマートスピーカ100の操作音声処理プログラムを起動操作した後、例えば音声入力によって音声アシスタントプログラムの起動を指示する。一例ではあるが、ユーザが音声アシスタントプログラムを起動するための起動ワードを発話することで、音声認識サーバ装置3の音声アシスタントプログラムを起動させることができる(ステップS191)。
スマートスピーカ100の通信制御部152は、音声認識サーバ装置3に対して起動ワードの音声データを送信する(ステップS192)。音声認識サーバ装置3のテキスト変換部156は、起動ワードの音声データをテキストデータに変換する(ステップS193)。また、音声認識サーバ装置3の解釈部157は、音声アシスタントプログラムから提供される辞書情報(HDD34に記憶されている辞書情報)に基づいて(ステップS194、ステップS195)、起動ワードのテキストデータを、インテント及びパラメータに変換し(テキスト解釈)、スマートスピーカ100のデバイスIDと共にAIアシスタントサーバ装置4に送信する(ステップS197)。
AIアシスタントサーバ装置4の実行判定部164は、インテント及びパラメータに基づいて、ジョブ実行に必要な条件が全て揃っているか否かを判断する(ステップS198~ステップS202)。例えば、実行判定部164は、必須パラメータを満たしているか否かを判断し(ステップS202)、必須パラメータを満たしていない場合には、音声認識サーバ装置3の操作音声変換プログラムを介して、スマートスピーカ100にレスポンス情報を送信する(ステップS203、ステップS204)。
レスポンス情報には、例えばテキストデータ、音声データ、画像データ等が含まれる。ここでは、一例として、「コピーしますか?スキャンしますか?」のテキストデータをスマートスピーカ100に送信する。なお、ユーザに対してジョブの種類又はジョブの設定条件の入力を促すメッセージであれば内容はこれに限定されない。また、スマートスピーカ100でテキストデータを音声データに変換できない場合、音声データの情報形態で送信しても良い。更に、ユーザに対するフィードバックは、音声出力だけでなく、タッチパネル27にテキスト又は画像を表示することで行っても良い。これにより、スマートスピーカ100のフィードバック部153は、「コピーしますか?スキャンしますか?」との音声フィードバックを行う(ステップS205)。
なお、音声認識サーバ装置3の音声アシスタントプログラムの起動を指示する際に、ジョブの種類及び設定条件を指定していた場合、上述のステップは省略しても良い。また、AIアシスタントサーバ装置4の実行判定部164は、レスポンス情報の送信に先立ち、取得したスマートスピーカ100のデバイスIDに対応するMFP1を紐づけ用DB102から検索しても良い。
このとき、スマートスピーカ100のデバイスIDと紐づくMFP1が紐づけ用DB102に記憶されていない場合、実行判定部164は、スマートスピーカ100が通信対象と紐づけられていないことをユーザに通知する。例えば、実行判定部164は、「このデバイスは機器と紐づけられていません」とのレスポンスを含むレスポンス情報を形成する。ここで、実行判定部164は、デバイスと通信対象を紐づけする方法をレスポンスに含めても良い。なお、紐づけ用DB102からのMFP1の検索及びレスポンス情報の形成は、スマートスピーカ100のデバイスIDを取得した他の任意のタイミングで行っても良い。
また、実行判定部164は、レスポンス情報の送信に先立ち、通信対象の機器状態を確認しても良い。実行判定部164は、機器情報取得部163によって機器情報を取得することで、又は、機器情報取得部163が予め取得した機器情報を参照することで、通信対象と通信可能か否か、及び、通信対象が使用可能か否かを判断する。このとき、スマートスピーカ100のデバイスIDと紐づくMFP1との接続が確立していない場合、又はMFPが起動中などで使用できない場合、実行判定部164は、ユーザに対して通知を行う。
例えば、実行判定部164は、「機器がオフラインです」又は「機器が準備中です」とのレスポンスを含むレスポンス情報を形成する。ここで、実行判定部164は、対策方法をレスポンスに含めても良い。なお、機器状態の確認は、音声認識サーバ装置3の操作音声変換プログラムからインテント及びパラメータ、デバイスIDを取得した他の任意のタイミングで行っても良い。
また、実行判定部164は、レスポンス情報の送信に先立ち、通信対象にユーザから指定された機能を実行するアプリケーションの状態を確認しても良い。実行判定部164は、機器情報取得部163によって機器情報を取得することで又は機器情報取得部163が予め取得した機器情報を参照することで、アプリケーションがインストールされているか否か、アプリケーションが実行可能な状態であるか否かを判断する。
例えば、実行が指示されたコピー機能に関するアプリケーションがスマートスピーカ100のデバイスIDと紐づくMFP1にインストールされていない場合、又はコピー機能に関するアプリケーションが起動中などで使用できない場合、実行判定部164はユーザに対して通知を行う。例えば、実行判定部164は、「アプリケーションがインストールされていません」又は「アプリケーションは現在利用できません」とのレスポンスを含むレスポンス情報を形成する。ここで、実行判定部164は、対策方法をレスポンスに含めても良い。
なお、アプリケーションの状態の確認は、操作音声変換プログラムからインテント及びパラメータ、デバイスIDを取得した他の任意のタイミングで行っても良い。また、実行判定部164は、レスポンス情報の送信に先立ち、機器情報取得部によって機器情報を取得することで又は機器情報取得部が予め取得した機器情報を読み出することで機器情報を取得しても良い。取得した機器情報は、例えばユーザが指示したジョブ種類及びジョブ条件が通信対象で実行可能か否かを判断する際に利用される。
(音声アシスタントプログラムの起動動作の流れ)
次に、図27のシーケンス図は、コピー機能を指示した際の動作の流れを示す図である。上述のステップS205において、「コピーしますか?スキャンしますか?」との音声フィードバックに対して、ユーザが、「コピー」と発音した場合(ステップS211)、又は音声アシスタントプログラムの起動指示の際に「コピー」と発話していた場合、スマートスピーカ100の通信制御部152は、音声認識サーバ装置3に対して、「コピー」との音声データを送信する。(ステップS212)。音声認識サーバ装置3の操作音声変換プログラムのテキスト変換部156は、「コピー」との音声データをテキストデータに変換処理する(ステップS213)。
音声認識サーバ装置3の解釈部157は、図10及び図11を用いて説明したように、テキストデータで示されるユーザの発話フレーズを解釈し(ステップS214~ステップS216)、解釈結果となるインテント及びパラメータを、スマートスピーカ100のデバイスIDと共に、AIアシスタントサーバ装置4に送信する。ここでは、「Copy_Execute」としたインテントを解釈結果として生成し、管理プログラムへ送信する(ステップS217)。
次に、この例の場合、ユーザは、「コピー」としか発音していないため、コピー部数及び片面又は両面等のコピー形態等の不明となる(入力不足)。このため、AIアシスタントサーバ装置4の管理プログラムの実行判定部164は、必須パラメータを満たしていないと判断する(ステップS218)。これにより、AIアシスタントサーバ装置4は、スマートスピーカ100に対して、不足しているパラメータの問い合わせを行う(ステップS219、ステップS220)。
具体的には、AIアシスタントサーバ装置4の実行判定部164は、例えば「設定値を入力してください」とのレスポンス情報(Response)を形成する。AIアシスタントサーバ装置4の管理プログラムの通知部165は、このレスポンス情報を、音声認識サーバ装置3の音声変換プログラムを介してスマートスピーカ100に送信する(ステップS220)。スマートスピーカ100のフィードバック部153は、スマートスピーカ100を介して「設定値を入力してください」との音声出力を行うと共に、タッチパネル27に対して「設定値を入力してください」とのテキスト表示を行う(ステップS221:入力不足フィードバック)。ただし、音声出力又はタッチパネルのテキスト表示の一方を省略しても良い。
また、AIアシスタントサーバ装置4の管理プログラムの通知部165は、操作音声変換プログラムに対してレスポンス情報を送信するとき、セッションが継続していることを示す状態情報を送信しても良い。状態情報は、セッションの状況を示す情報であり、例えば、MFP1等の外部装置に対するジョブ実行命令の送信がまだ行われておらず、ユーザによるジョブの設定処理が継続中である場合には、セッションが継続していることを示す状態情報が送信される。また、外部装置に対するジョブ実行命令の送信が完了した場合には、セッションが終了したことを示す状態情報が送信される。
ただし、状態情報はこれに限定されず、より詳細にセッションの状況を示す情報形態としてもよい。音声認識サーバ装置3の操作音声変換プログラムの解釈部157は、状態情報に応じて、セッションを継続するか終了するかを判断する。つまり、操作音声変換プログラムの解釈部157は、セッションが継続中である場合には、ユーザが複数回の発話に分けてジョブ設定条件を指定した場合であっても、一つのジョブに属するものであると判断し、セッションが終了した場合には、ユーザの発話に含まれるジョブ設定条件は新規のジョブに属するものであると判断することができる。これにより、音声認識サーバ装置3の操作音声変換プログラムは、ジョブの種類及びジョブ設定条件の指示が複数回の発話に跨るような場合であったとしても、同一のジョブに属するものか、別の新規なジョブに属するものかを判断することができる。
なお、音声認識サーバ装置3の操作音声変換プログラムは、スマートスピーカ100から信号を受信しない状況が所定時間以上継続した場合は、セッション終了と判断しても良い。音声認識サーバ装置3がセッションを管理する場合であっても、通信対象(MFP1)は、セッションに関わらずジョブ実行を行っても良い。この場合、通信対象のMFP1は、ジョブ実行命令を取得すると、現在、MFP1が保持しているジョブ条件に対して、取得したジョブ実行命令に含まれるジョブ条件を上書きして設定する。このとき、通信対象で保持するジョブ条件を全て削除又はデフォルト条件に戻して、ジョブ実行命令に含まれるジョブ条件を設定しても良い。
また、通信対象で保持するジョブ条件と矛盾するジョブ条件についてはジョブ実行命令に含まれるジョブ条件を優先して上書き設定し、矛盾しないジョブ条件は通信対象が予め保持していたジョブ条件を維持しても良い。なお、通信対象は、ジョブを実行した場合はジョブ実行命令に含まれるジョブ条件を削除して、通信対象に予め登録されたデフォルト状態にすることができる。
次に、入力不足フィードバックがあったため、ユーザは、例えば「両面で」とのコピー形態を指示する発話を行う(ステップS222)。スマートスピーカ100の通信制御部152は、音声認識サーバ装置3に対して、「両面で」との音声データを送信し、テキスト変換要求を行う(ステップS223)。音声認識サーバ装置3の操作音声変換プログラムのテキスト変換部156は、「両面で」との音声データをテキストデータに変換処理する(ステップS224)。
音声認識サーバ装置3の解釈部157は、テキストデータで示されるユーザの発話フレーズを解釈し(ステップS225~ステップS227)、解釈結果となるインテント及びパラメータを、スマートスピーカ100のデバイスIDと共に、AIアシスタントサーバ装置4に送信する(ステップS228)。
この例においては、「印刷面=両面」としたパラメータを解釈結果として生成する。これによって解釈部157は、前回の発話に含まれるインテント及びパラメータと合わせて、「Copy_Execute」としたインテント、及び「印刷面=両面」としたパラメータを含む解釈結果をAIアシスタントサーバ装置4に送信する。
次に、この例の場合、ユーザは、「コピー」及び「両面で」としか発音していないため、コピー部数等が不明となる(再度の必須パラメータ不足)。なお、以上の説明は、音声認識サーバ装置3の操作音声変換プログラムが、前回の発話の解釈結果と今回の発話の解釈結果とを統合してインテント及びパラメータを生成する場合について説明したが、これに限定されない。即ち、AIアシスタントサーバ装置4の管理プログラムは、前回の発話の解釈結果を記憶しておき、管理プログラムによって前回の発話の解釈結果と今回の発話の解釈結果とを統合してインテント及びパラメータを生成しても良い。この場合、音声認識サーバ装置3の解釈部157は、今回の発話によって新たに取得した、「印刷面=両面」としたパラメータのみをAIアシスタントサーバ装置4の管理プログラムへ送信しても良い。
複数のパラメータのうち、いずれのパラメータが必須パラメータであるかは、AIアシスタントサーバ装置4のHDD24等の記憶部に予め記憶しておくことができる。この場合、AIアシスタントサーバ装置4の実行判定部164は、記憶部に記憶された必須パラメータの情報に基づいて、スマートスピーカ100から取得したパラメータにより、全ての必須パラメータの設定が完了しているか否かを判断し、必須パラメータの設定が完了していない場合は、必須パラメータの設定を行うように、スマートスピーカ100を介してユーザへ促すことができる。
このため、AIアシスタントサーバ装置4の管理プログラムの実行判定部164は、「何部印刷しますか?」とのレスポンス情報(Response)を形成する(ステップS229)。AIアシスタントサーバ装置4の通知部165は、このレスポンス情報を、音声認識サーバ装置3の操作音声変換プログラムを介してスマートスピーカ100に送信する(ステップS230、ステップS231)。スマートスピーカ100のフィードバック部153は、スピーカ部28を介して「何部印刷しますか?」との音声出力を行うと共に、タッチパネル27に対して「何部印刷しますか?」とのテキスト表示を行う(ステップS232:入力不足フィードバック)。
(部数設定動作)
次に、図28は、部数設定動作の流れを示すシーケンス図である。図27のシーケンス図のステップS232において、スマートスピーカ100を介して「何部印刷しますか?」との、再度、入力不足フィードバックがあったため、ユーザは、例えば「2部」と発話する(ステップS241)。スマートスピーカ100の通信制御部152は、音声認識サーバ装置3に対して、「2部」との音声データを送信し、テキスト変換要求を行う(ステップS242)。音声認識サーバ装置3の操作音声変換プログラムのテキスト変換部156は、「2部」との音声データをテキストデータに変換する(ステップS243)。
操作音声変換プログラムの解釈部72は、テキストデータで示されるユーザの発話フレーズを辞書情報に基づいて解釈する(ステップS244~ステップS246)。この例では、解釈部72は、「部数=2部」としたパラメータを解釈結果として生成する。解釈部72は、以前の発話に含まれるインテント及びパラメータと合わせて、「Copy_Execute」としたインテント、及び「印刷面=両面、部数=2部」としたパラメータを含む解釈結果をAIアシスタントサーバ装置4へ送信する(ステップS247)。
AIアシスタントサーバ装置4の実行判定部164は、「印刷面=両面、部数=2部」としたパラメータを受信することで、ステップS248の必須パラメータ充足判断において、コピーのジョブに対する必須パラメータ不足が解消したものと判断する。このため、実行判定部164は、「両面で2部コピーします。よろしいですか?」とのレスポンス情報を形成する。このレスポンス情報は、通知部165及び音声認識サーバ装置3を介してスマートスピーカ100に送信される(ステップS249、ステップS250)。
スマートスピーカ100のフィードバック部55は、レスポンス情報に含まれるResponseに基づいて、必須パラメータ不足が解消し、コピーを開始する準備が整ったことを示す、例えば「両面で2部コピーします。よろしいですか?」との入力確認フィードバックの音声及びテキストを出力する(ステップS251)。
ここで、レスポンス情報に含まれるテキストデータ及び音声データを出力することに代えて、レスポンス情報に含まれる情報に基づいてスマートスピーカ100の記憶部に記憶されたテキストデータに基づいて生成したテキストデータを出力(音声出力又は表示)してもよい。この入力確認フィードバックに対して、ユーザは、設定値の変更の指示、又はコピーの開始指示を行う。
(設定値の変更動作)
設定値の変更指示を行う場合、ユーザは、スマートスピーカ100に対して変更する設定値の音声入力を行う(ステップS252)。例えば、印刷部数を2部から3部に変更する場合、ユーザは「3部」と音声入力を行う。また、印刷面を両面から片面に変更する場合、ユーザは、「片面」との音声入力を行う。この音声入力に基づいて、AIアシスタントサーバ装置4で必須パラメータの充足判断が行われ、レスポンス情報に基づいて、スマートスピーカ100から例えば「(変更された内容)でコピーします。よろしいですか?」との入力確認フィードバックが行われる(ステップS253~ステップS262)。
このような設定値の変更動作(ステップS252~ステップS262)は、ユーザが入力確認フィードバックされた設定値を許容する音声入力(テキスト入力、ボタン入力等でもよい)が行われるまで、繰り返し行われる。すなわち、このような設定値の変更動作は、ユーザが入力確認フィードバックされた設定値を許容する、「はい」との音声入力が行われるまで、繰り返し行われる。
(MFPに対するジョブの実行指示動作)
次に、図29は、MFP1に対するジョブの実行指示動作の流れを示すシーケンス図である。上述の入力確認フィードバックにより、ユーザが「はい」との応答の音声入力を行うと(ステップS271)、音声認識サーバ装置3の操作音声変換プログラムでテキスト化される(ステップS272)。音声認識サーバ装置3の操作音声変換プログラムの解釈部157は、テキストデータに基づいてコピー開始指示を認識すると、「Copy_Execute」としたインテントに、「印刷面=両面」及び「部数=2部」とのパラメータを付加した解釈結果を形成し、これを管理プログラムに送信する(ステップS274~ステップS277)。
AIアシスタントサーバ装置4の管理プログラムの実行判定部164によって解釈結果が必須パラメータを満たしていると判断された場合(ステップS278)、解釈結果変換部161は、解釈結果をMFP1のジョブ命令に変換処理し(ステップS279)する。そして、実行指示部162が、変換処理した実行指示情報をMFP1に送信する(ステップS280)。これにより、MFP1のコピー、スキャン等の機能、1部、2部等の実行部数、及び、片面、両面等の実行形態等を音声入力により設定して、MFP1の動作を制御することができる。
MFP1に対してジョブの実行を指示すると、AIアシスタントサーバ装置4の実行指示部162は、MFP1に対してジョブの実行を指示した旨の情報、及び、現在のジョブの実行状態(MFP1の現在の状態)を含むレスポンス情報を形成する。AIアシスタントサーバ装置4の通知部165は、このレスポンス情報を、音声認識サーバ装置3を介してスマートスピーカ100に送信する(ステップS281、282)。スマートスピーカ100のフィードバック部153は、レスポンス情報からジョブの実行を指示した旨の情報を検出すると、例えば「(指示されたジョブを)スタートします」等の音声フィードバック及びテキストフィードバックを行う(ステップS283)。これにより、ユーザは、MFP1において、指示したジョブの実行が開始されたことを認識することができる。
なお、AIアシスタントサーバ装置4の管理プログラムの実行判定部164によって解釈結果が必須パラメータを満たしていると判断された場合(ステップS278)、スマートスピーカ100に対するフィードバック動作は省略しても良い。
(AIアシスタントサーバ装置からフィードバックされる情報の例)
次に、上述の説明では、スマートスピーカ100のフィードバック部153はレスポンス情報に含まれるテキストデータ及び音声データを出力することとして説明した。しかし、フィードバック部153は、スマートスピーカ100の記憶部に記憶されているテキストデータに基づいて、レスポンス情報に対応するテキストデータを形成し、フィードバック出力(音声出力及びテキスト出力)を行ってもよい。
具体的には、表2を用いて上述したように、例えばジョブの設定値の入力促すための「Copy_Parameter_Setting」、ジョブの設定値の確認を促すための「Copy_Confirm」等のインテントが、レスポンス情報に含められて、AIアシスタントサーバ装置4からスマートスピーカ100にフィードバックされる。
フィードバック部153は、レスポンス情報に含まれるインテント、パラメータ、レスポンスに応じて、ユーザに対するフィードバックを判断する。フィードバック部153は、フィードバックする内容を決定するために、表2に相当する情報をスマートスピーカ100の記憶部に記憶し、参照できる構成としても良い。
なお、表2では、コピーの場合を例に説明したが、プリント、スキャン、FAXも表2と同様にアクションとして、ジョブの設定値の入力促すための「Parameter_Setting」、ジョブの設定値の確認を促すための「Confirm」が用いられても良い。レスポンス情報には、インテント及びパラメータ又はレスポンスの少なくとも一方が含まれていれば良い。
また、例えば両面又は片面等の印刷面の設定値、又は、コピー部数等のパラメータが、レスポンス情報に含められて端末2にフィードバックされる。さらに、必須パラメータが不足している場合、不足するパラメータの入力を促すメッセージが、レスポンスとして信号に含められてスマートスピーカ100にフィードバックされる。
(MFPでエラーが発生した場合の動作)
次に、MFP1でジョブが実行され、又は、エラーが発生した場合の動作を説明する。MFP1がジョブを実行することで、何事もなくジョブが完了すれば、例えば「ジョブが完了しました。原稿の取り忘れに注意してください。」等の完了メッセージ(音声及びテキスト)が、スマートスピーカ100を介して出力される。
これに対して、例えば用紙不足のエラーが発生した場合、AIアシスタントサーバ装置4は、スマートスピーカ100に対して、例えば「用紙がありません。用紙を補充して継続するか、ジョブをキャンセルしてください」等のジョブの確認フィードバックを行う。この確認フィードバックに対して、ユーザがMFP1に用紙を補充し、「継続」との発話により応答した場合、音声認識サーバ装置3の実行指示部162により、MFP1に対してジョブの継続が指示され、MFP1でジョブが再開される。
これに対して、確認フィードバックにより、ユーザが「キャンセル」との発話することで、ジョブのキャンセルが指示された場合、AIアシスタントサーバ装置4の実行指示部162は、MFP1に対してジョブのキャンセルを指示し、MFP1において、エラー発生以降のジョブの実行がキャンセルされる。この場合、スマートスピーカ100を介して、例えば「ジョブをキャンセルしました」等の音声及びテキストを出力する確認フィードバックが行われる。
図30は、このようなジョブの実行動作及びエラー発生時の対話動作の流れを示すシーケンス図である。スマートスピーカ100は、MFP1から通知されたジョブ実行結果を(ステップS350)、AIアシスタントサーバ装置4を介して取得すると(ステップS351)、ユーザに対して正常にジョブが完了した旨のフィードバック(ステップS352)、又は、エラーが発生したことを示すフィードバックを行う(ステップS352)。
正常にジョブが完了した旨の実行結果を受信した場合、スマートスピーカ100のフィードバック部153は、例えば「ジョブが完了しました」等の音声メッセージを出力する(ステップS352)。これに対して、エラーが発生した旨の実行結果を受信した場合、スマートスピーカ100のフィードバック部153は、例えば「エラーが発生しました。ジョブを継続しますか、キャンセルしますか?」等の、ジョブの継続の是非を問う音声メッセージを出力する(ステップS353)。
具体的には、MFP1は、ジョブが完了すると、完了通知をAIアシスタントサーバ装置4の管理プログラムに対して送信する。また、MFP1は、エラーが発生した場合には、エラー内容等のエラーに関するエラー情報をAIアシスタントサーバ装置4へ送信する。また、AIアシスタントサーバ装置4の管理プログラムは、MFP1から取得した情報に対応して、例えば「ジョブが完了しました」又は「エラーが発生しました。ジョブを継続しますか、キャンセルしますか?」等の応答情報を含むレスポンス情報を形成し、音声認識サーバ装置3を介してスマートスピーカ100へ送信する。
図30のステップS354~ステップS361は、ユーザが、継続を指定した場合の各部の動作の流れである。すなわち、「エラーが発生しました。ジョブを継続しますか、キャンセルしますか?」との問い合わせに対し、ユーザがエラーの発生要因を除去したうえで、「継続」と応答した場合(ステップS354)、上述のように「継続」の音声が、スマートスピーカ100の操作音声変換プログラムによりテキスト化され、解釈される(ステップS355、ステップS356)。
スマートスピーカ100操作音声変換プログラムは、インテントを「Copy_Job_Continue」とした解釈結果を生成して、AIアシスタントサーバ装置4の管理プログラムへ送信する(ステップS357)。AIアシスタントサーバ装置4の管理プログラムの通知部165は、「ジョブを継続します」としたレスポンス情報を生成し(ステップS358)、音声認識サーバ装置3を介してスマートスピーカ100に送信する(ステップS359)。さらに、AIアシスタントサーバ装置4の管理プログラムの実行指示部162は、MFP1に対してジョブの継続を指示する(ステップS361)。また、スマートスピーカ100のフィードバック部153は、「ジョブを継続します」との入力確認フィードバックを行う(ステップS360)。
これに対して、図30のステップS362~ステップS368は、ユーザが、ジョブのキャンセルを指定した場合の各部の動作の流れである。すなわち、「エラーが発生しました。ジョブを継続しますか、キャンセルしますか?」との問い合わせに対し、ユーザが、「キャンセル」と応答すると(ステップS362)、この「キャンセル」の音声データが音声認識サーバ装置3に送信される(ステップS363)。音声認識サーバ装置3の操作音声変換プログラムの解釈部157は、この音声データをテキスト化して解釈する(ステップS364)。
解釈部157は、インテントを「Copy_Job_Cancel」とした解釈結果を生成して、AIアシスタントサーバ装置4の管理プログラムへ送信する(ステップS365)。AIアシスタントサーバ装置4の管理プログラムの実行判定部164は、「ジョブをキャンセルします」とのレスポンス情報を生成する。通知部165は、このレスポンス情報をスマートスピーカ100に送信する(ステップS366)。これにより、スマートスピーカ100のフィードバック部153は、「ジョブをキャンセルします」との入力確認フィードバックを行う(ステップS368)。また、AIアシスタントサーバ装置4の管理プログラムの実行指示部54は、MFP1に対してジョブのキャンセルを指示する(ステップS367)。
(MFPの機器能力に応じたパラメータの調整動作)
次に、MFP1の機器能力に対応したジョブの実行を、対話型操作により実現する例を、図31及び図32のシーケンス図を用いて説明する。図31は、ユーザから指示されたジョブに必要な機器能力を、MFP1が有しているか否かの判定を行うまでの動作の流れを示すシーケンス図である。図32は、MFP1の機器能力で、ジョブの実行が可能である場合、及び、ジョブの実行が困難である場合の動作の流れを示すシーケンス図である。
まず、図31のシーケンス図において、ユーザより「起動」が指示されると(ステップS371)、AIアシスタントサーバ装置4の管理プログラムの機器情報取得部163が、MFP1に対して、例えば処理可能な解像度の問い合わせを行う(Capabilityの取得:ステップS372)。この問い合わせに対して、MFP1は、例えば「200dpi~600dpi」等のように、処理可能な解像度をAIアシスタントサーバ装置4に回答する(ステップS373)。AIアシスタントサーバ装置4は、MFP1の処理可能な解像度を示す情報をスマートスピーカ100に送信する。これにより、スマートスピーカ100において、MFP1の処理可能な解像度が認識される。
なお、AIアシスタントサーバ装置4の機器情報取得部163は、MFP1との通信回線が確立した後の所定のタイミングで、MFP1から処理能力の情報を取得しても良い。また、紐づけ用DB102の管理テーブルにスマートスピーカ100とMFP1とを関連付けて登録する際に、MFP1の処理能力の情報を取得して登録してもよい。また、AIアシスタントサーバ装置4の機器情報取得部163が、MFP1から定期的に処理能力の情報を取得してもよい。また、機器情報取得部163は、音声認識サーバ装置3がスマートスピーカ100から音声アシスタントプログラムの起動を受け付けたタイミング、又は、スマートスピーカ100からジョブの実行指示を受け付けたタイミングで、MFP1から処理能力の情報を取得しても良い。
取得した処理能力の情報は、AIアシスタントサーバ装置4のHDD44等の記憶部に記憶してもよいし、紐づけ用DB102の管理テーブルに、MFP1と紐づけて記憶してもよい。また、処理能力の情報の取得は、他のプログラムが実行し、機器情報取得部163は、他のプログラムが取得した情報を取得することで、間接的にMFP1が有する情報を取得しても良い。また、機器情報取得部163が、MFP1から取得する情報は、処理能力の情報に限定されず、例えばMFPにインストールされたアプリケーションの種類及びバージョン、印刷速度、処理可能なファイル形式、フィニッシャを含むオプション機器の接続状況など、MFP1で実行可能なジョブの種類又はジョブの設定条件に関する情報を取得してもよい。
次に、ユーザによりスマートスピーカ100の操作音声処理プログラムが起動操作された後、例えば音声入力で「起動」を指示すると、スマートスピーカ100の通信制御部152は、音声認識サーバ装置3に対して、この「起動」の音声データを送信する。これにより、「起動」の音声データがテキスト変換されて解釈され、解釈結果がAIアシスタントサーバ装置4に通知される。AIアシスタントサーバ装置4の実行判定部164は、必須パラメータを満たしているか否かを判断する。
この時点では、ジョブの種類も指定されておらず、必須パラメータを満たしていない状態であるため、AIアシスタントサーバ装置4は、スマートスピーカ100に対して、「コピーしますか?スキャンしますか?」等のジョブの種類の入力を促すレスポンス情報を送信する。これのより、スマートスピーカ100のフィードバック部153は、例えば「コピーしますか?スキャンしますか?」等のジョブの指示を促す音声フィードバックを行う(ステップS374)。
次に、ユーザが「スキャン」と発話すると(ステップS375)、音声認識サーバ装置3の操作音声変換プログラムによりテキスト化され解釈される(ステップS376、ステップS377)。また、音声認識サーバ装置3の解釈部377は、インテントを「Scan_Execute」とした解釈結果を生成し、AIアシスタントサーバ装置4の管理プログラムへ送信する(ステップS378)。
AIアシスタントサーバ装置4の実行判定部164は、受信した解釈結果に基づいて必須パラメータの充足判断を行うが(ステップS379)、スキャンの指示だけでは、必須パラメータが不足している。このため、実行判定部164は、「設定値を入力してください」とのレスポンス情報を形成し、これをスマートスピーカ100に送信する(ステップS380)。スマートスピーカ100のフィードバック部153は、このレスポンス情報に基づいて、「設定値を入力してください」との入力不足フィードバックを行う(ステップS381)。
次に、このような入力不足フィードバックに対して、ユーザが「1000dpiで田中さん宛て」と発話すると(ステップS382)、この音声データは、音声認識サーバ装置3によりテキスト化され解釈される(ステップS383、ステップS384)。解釈部157は、インテントを「Scan_Execute」、パラメータを「解像度=1000dpi、宛先=田中」とした解釈結果を形成し、AIアシスタントサーバ装置4の管理プログラムに送信する(ステップS385)。
AIアシスタントサーバ装置4の管理プログラムの実行判定部57は、解釈結果に含まれるパラメータ、及び、機器情報取得部161により予め取得されているMFP1の処理能力を示す情報を参照することで、通信対象にユーザから指定された設定でジョブの実行が可能か否かを判定する(ステップS386)。そして、実行判定部164は、判定結果に対応するレスポンス情報を形成し、通知部165がスマートスピーカ100に通知する(ステップS387)。これにより、スマートスピーカ100を介して、判定結果に対応したフィードバックが行われる(ステップS388)。
具体的には、図32のシーケンス図において、MFP1が、1000dpiの解像度の処理能力を有していれば、実行判定部164は、「1000dpiでスキャンし、田中さん宛てに送信します。よろしいですか?」とのレスポンス情報を形成する。そして、通知部165が、このレスポンス情報をスマートスピーカ100へ送信する。これにより、スマートスピーカ100フィードバック部153により、「1000dpiでスキャンし、田中さん宛てに送信します。よろしいですか?」との入力確認フィードバックが行われる(ステップS389)。
この入力確認フィードバックに対してユーザが「はい」と応答すると(ステップS391)、音声認識サーバ装置3の解釈部157は、この音声データをテキスト化して解釈し(ステップS392、ステップS393)する。そして、解釈部157は、インテントを「Scan_Execute」とし、パラメータを「解像度=1000、宛先=田中」とした解釈結果を、AIアシスタントサーバ装置4の管理プログラムに送信する(ステップS394)。
AIアシスタントサーバ装置4の管理プログラムの解釈結果変換部161は、解釈結果をジョブ命令に変換する(ステップS395)。そして、管理プログラムの実行指示部162が、「1000dpiでスキャンした画像を田中さん宛てに送信する」とのジョブ命令をMFP1に送信する(ステップS396)。これにより、指定したジョブがMFP1で実行される。AIアシスタントサーバ装置4の実行判定部164は、指示されたジョブの実行が開始されたことを示す「スタートします」とのレスポンス情報を形成し、通知部165が、このレスポンス情報をスマートスピーカ100に送信する(ステップS397)。スマートスピーカ100のフィードバック部153は、ユーザに対して、「スタートします」との入力確認フィードバックを行う。
これに対して、600dpiがMFP1の処理能力の限界である場合、ユーザから指定された1000dpiの画像処理は、MFP1では実行困難となる。AIアシスタントサーバ装置4の実行判定部164は、機器情報取得部161により予め取得されているMFP1の処理能力を示す情報に基づいて、MFP1ではユーザから指定された画像処理は困難であることを判定する。この場合、実行判定部164は、「1000dpiは指定できません。600dpiでスキャンし、田中さん宛てに送信します。よろしいですか?」とのレスポンス情報を形成する。通知部165は、このレスポンス情報を、スマートスピーカ100に送信する。これにより、スマートスピーカ100からユーザに対して、「1000dpiは指定できません。600dpiでスキャンし、田中さん宛てに送信します。よろしいですか?」との確認フィードバックが行われる。
さらに具体的に説明すると、AIアシスタントサーバ装置4の実行判定部164は、MFP1の処理能力の範囲内で、ユーザが指示した機能又は処理能力値に最も近い機能又は値を選択する。例えば、MFP1の処理可能な解像度が200-600dpiの範囲である場合、実行判定部164は、ユーザが指示した1000dpiに最も近い600dpiを選択する。そして、実行判定部57が選択した能力又は値を、スマートスピーカ100のフィードバック部153が、確認フィードバックとして出力する。
つまり、実行判定部164は、ユーザの指示の解釈結果に含まれるインテント及びパラメータで示されるジョブの実行が困難と判断した場合、MFP1の処理能力を示す情報に基づいて、MFP1が実行可能な設定条件を選択する。そして、選択した設定条件に基づいてレスポンス情報を生成する。
なお、AIアシスタントサーバ装置4の管理プログラムは、音声認識サーバ装置3の操作音声変換プログラムの解釈部157から解釈結果に加えて、音声入力元であるスマートスピーカ100を特定するデバイスID(音声入力元デバイスID)を取得している。このため、実行判定部164は、紐づけ用DB102を参照し、音声入力元デバイスIDに関連付けされているMFP1を特定し、特定したMFPの処理能力を参照することで、ジョブ実行の可否を判断してもよい。また、MFP1が備えていない機能の実行を、ユーザが指示した場合、実行判定部164は、ジョブを実行できないことを示すレスポンス情報をスマートスピーカ100に送信しても良い。なお、実行判定部164は、選択した設定条件に関する情報を、音声認識サーバ装置3の操作音声変換プログラムに送信しても良い。
このような確認フィードバックに対してユーザが「はい」と発話すると(ステップS391)、音声認識サーバ装置3のテキスト変換部156によりテキスト化され解釈される(ステップS392、ステップS393)。音声認識サーバ装置3の解釈部157は、テキストデータに基づいて、インテントを「Scan_Execute」とし、パラメータを「解像度=600、宛先=田中」とした解釈結果を形成し、AIアシスタントサーバ装置4の管理プログラムに送信する(ステップS394)。
AIアシスタントサーバ装置4の管理プログラムの解釈結果変換部161は、解釈結果をMFP1のジョブの実行指示に変換する(ステップS395)。AIアシスタントサーバ装置4の管理プログラムの実行指示部162は、ジョブの実行指示をMFP1に送信する(ステップS396~ステップS398)。これにより、ユーザの指示がMFP1の処理能力以上の指示で実行困難な場合でも、自動的に指示の内容をMFP1の処理能力で実行可能な指示に変更して、ユーザの指示となるジョブを実行することができる。
ここで、MFP1では、MFP1内のHDD13などの記憶部に保存されたアドレス帳を参照することで、「田中」に該当する宛先情報を検索する。宛先情報とは、メールアドレスやFAX番号などの情報である。「田中」に該当する宛先情報がアドレス帳に存在する場合、その宛先に対してMFP1でスキャンした画像データを送信する。
なお、MFP1の操作部16に宛先情報を表示し、宛先に誤りがないかの確認をユーザに促し、ユーザがOKボタンを操作した場合に、宛先に対してスキャンした画像データを送信してもよい。また、「田中」に該当する宛先がアドレス帳に複数存在する場合は、該当する全ての宛先情報を、MFP1の操作部16に表示して、ユーザに選択させてもよい。
(印刷対象を検索して印刷する動作)
次に、図33及び図34のシーケンス図を用いて、ユーザにより指定されたファイルを印刷する動作を説明する。図33は、ユーザにより指定されたファイルを検索するまでの動作を示すシーケンス図である。また、図34は、ユーザにより指定されたファイルを印刷するまでの動作を示すシーケンス図である。
まず、図33において、ユーザは、スマートスピーカ100の操作音声処理プログラムが起動操作された後、例えば音声入力によって音声アシスタントプログラムの起動を指示する。これにより、スマートスピーカ100の通信制御部152は、音声認識サーバ装置3に対して、「起動」との音声データを送信する(ステップS441)。音声認識サーバ装置3のテキスト変換部156は、「起動」の音声データをテキストデータに変換し、インテント及びパラメータに変換してAIアシスタントサーバ装置4の管理プログラムへ送信する。
AIアシスタントサーバ装置4の管理プログラムの実行判定部164は、必須パラメータを満たしているか否かを判断する。この「起動」の音声が入力された時点では、例えばジョブの種類等の必須パラメータが満たされていないため、実行判定部164は、「コピーしますか?スキャンしますか?プリントしますか?」との、ジョブの指示を促すレスポンス情報を形成する。通知部165は、このレスポンス情報をスマートスピーカ100に送信する。これにより、スマートスピーカ100のフィードバック部153により、「コピーしますか?スキャンしますか?プリントしますか?プリントしますか?」とのジョブの指示を促す音声フィードバックが行われる(ステップS442)。
次に、ユーザが「プリント」と発話すると(ステップS443)、この音声が音声認識サーバ装置3の操作音声変換プログラムのテキスト変換部156によりテキスト化され、解釈部157により解釈される(ステップS444、ステップS445)。この場合、解釈部157は、インテントを「Print_Execute」とした解釈結果を形成し、AIアシスタントサーバ装置4の管理プログラムへ送信する(ステップS446)。
AIアシスタントサーバ装置4の管理プログラムの実行判定部は、受信した解釈結果に基づいて必須パラメータの充足判断を行う(ステップS447)。この場合、「プリント」との指示だけでは必須パラメータが不足しているため、実行判定部164は、「設定値を入力してください」としたレスポンス情報を形成し、通知部165を介してスマートスピーカ100に送信する(ステップS448)。スマートスピーカ100のフィードバック部153は、このレスポンス情報に基づいて、「設定値を入力してください」との入力不足フィードバックを行う(ステップS449)。
次に、このような入力不足フィードバックに対して、ユーザが「ファイルAをプリント」と発話すると(ステップS450)、この音声データが音声認識サーバ装置3に送信される(ステップS451)。音声認識サーバ装置3は、この音声データをテキスト化して解釈し(ステップS452)、インテントを「Print_Exetute」、パラメータを「印刷対象=ファイルA」とした解釈結果を形成し、AIアシスタントサーバ装置4に送信する(ステップS453)。
AIアシスタントサーバ装置4の管理プログラムの検索部167は、解釈結果に含まれるパラメータに基づいて、管理DB101からファイルAを検索する(ステップS454)。
なお、検索する対象は管理DB101に限らず、音声認識サーバ装置3又はAIアシスタントサーバ装置4のクラウドサービス装置とネットワークを介して接続されたデータベースであっても良い。また、検索部167は、パラメータに含まれる文字列を含むファイル名を検索するだけでなく、パラメータに含まれる文字列をファイルデータ中に含むファイルを検索しても良い。また、検索部167は、ファイルの作成日時及びファイル作成者等のファイルの属性に基づいて検索を行っても良い。
(一つだけファイルAが記録されている場合)
このような検索を行うことで、管理DB101に、一つだけファイルAが記録されている場合、図34のシーケンス図において、AIアシスタントサーバ装置4の検索部167は、ファイルAを印刷データとして設定する(ステップS455)。そして、AIアシスタントサーバ装置4の実行指示部162が、ファイルAの印刷データをMFP1に送信し(ステップS456)、印刷を指示する(ステップS457)。これにより、MFP1において、ファイルAの印刷データの印刷が実行される。
(2つ以上のファイルAが存在する場合)
これに対して、管理DB101から2つ以上のファイルAが検索された場合、即ち検索部167が検索した結果として複数のファイル検索された場合、AIアシスタントサーバ装置4の実行判定部164は、「複数のファイルAが登録されています 印刷するファイルを選択してください」のレスポンス情報を形成する。通知部165は、このレスポンス情報をスマートスピーカ100へ送信する(ステップS458)。このとき、それぞれのファイルを特定するための情報として、ファイルの作成日時、作成者、サムネイル画像等をレスポンス情報に含めても良い。
スマートスピーカ100のフィードバック部153は、レスポンス情報に基づいて、検索された各ファイルの一覧をタッチパネル27に表示する(ステップS459)。また、フィードバック部153は、「複数のファイルAが登録されています。印刷するファイルを選択してください」との入力不足フィードバックを行う(ステップS460)。
なお、ファイルの一覧を表示する際に、検索された各ファイルから所望のファイルの選択を容易化するために、ファイルの作成日時及び作成者を音声フィードバックしても良いし、タッチパネル27に表示しても良い。また、ファイル一覧としてサムネイル画像を表示してユーザに選択を促しても良い。
また、ファイルAを選択する場合、ファイルの作成日時又は作成者等のファイルに関する情報を発話することで、ファイルを選択しても良いし、タッチパネル27に表示されたファイル一覧から所望のファイルをタッチ操作で選択しても良い。
(ファイルAが記録されていない場合)
次に、管理DB101に、ユーザから指定されたファイルAが記録されていない場合(検索部167がファイルAを検索できない場合)、AIアシスタントサーバ装置4の実行判定部164は、「メモリ内にファイルAが登録されていません」とのレスポンス情報を生成する。また、実行判定部164は、管理DB101に記憶されているファイルの一覧情報を、管理DB101から取得し、レスポンス情報に含める。通知部165は、このようなレスポンス情報を、スマートスピーカ100に送信する(ステップS461)。
スマートスピーカ100のフィードバック部153は、このレスポンス情報に基づいて、「ファイルAが登録されていません 印刷するファイルを指定してください」とのフィードバックを行う(ステップS462)。また、これと共に、フィードバック部153は、レスポンス情報に付加されたファイルの一覧情報に基づいて、管理DB101に記憶されているファイルの一覧をタッチパネル27に表示する(ステップS463)。ユーザは、このファイルの一覧に基づいて、印刷を行うファイルを選択して、再度指定することとなる。
(選択されたファイルの印刷動作)
次に、管理DB101に1つだけファイルAが存在する場合において、ユーザからファイルAの印刷が指示された場合、実行判定部164は、「ファイルAの印刷を開始します。よろしいでしょうか」のレスポンス情報を生成して、スマートスピーカ100へ送信する(ステップS464)。スマートスピーカ100のフィードバック部153は、例えば「ファイルAの印刷を開始します。よろしいでしょうか」との確認フィードバックを行う(ステップS465)。
この確認フィードバックに対して、ユーザが「はい」と応答すると(ステップS466)、この応答音声データがスマートスピーカ100から音声認識サーバ装置3に送信される(ステップS467)。音声認識サーバ装置3のテキスト変換部156は、音声データをテキスト化し、解釈部157はテキスト化された音声データの解釈を行う(ステップS468)。解釈部157は、インテントを「Print_Execute」とし、パラメータを「印刷対象=ファイルA、ファイル特定情報X」とした解釈結果を形成し、AIアシスタントサーバ装置4の管理プログラムに送信する(ステップS469)。なお、ファイル特定情報Xとは、管理DB101に2つ以上のファイルAが存在した場合に、ユーザが選択したファイルAを特定するために付加される情報であり、例えばファイルの作成日時又は作成者等の情報である。
AIアシスタントサーバ装置4の管理プログラムの実行判定部164は、解釈結果に基づいて、必須パラメータの充足判断を行う(ステップS470)。この場合、必須パラメータは揃っているため、解釈結果変換部161は、解釈結果をMFP1のジョブ命令に変換する(ステップS471)。実行指示部162は、ユーザより選択されたファイルAをMFP1に送信し、印刷の実行指示を行う(ステップS472)。これにより、MFP1において、ユーザが希望するファイルAの印刷が実行される。MFP1に対して印刷の実行指示が行われると、AIアシスタントサーバ装置4の通知部は、印刷が開始されたことを示す「スタートします」とのレスポンス情報をスマートスピーカ100に送信する(ステップS473)。これにより、スマートスピーカ100のフィードバック部153により、「スタートします」とのフィードバックが行われ、ユーザに対して印刷が開始されたことが通知される(ステップS474)。
なお、上述の説明では、印刷対象をAIアシスタントサーバ装置4の検索部167が検索し、検索したファイルをMFP1へ送信する場合を例に説明した。しかし、例えばMFP1に対しては「印刷対象=ファイルA」としたジョブ命令を送信し、MFP1側でファイルAを、HDD13又は管理DB101等から検索して印刷を実行しても良い。また、検索したファイルが2つ以上存在する場合、MFP1の表示部上にファイル一覧を表示させ、ユーザに選択させてもよい。
(第2の実施の形態の効果)
以上の説明から明らかなように、第2の実施の形態の音声操作システムは、スマートスピーカ100に、プラットフォームアプリケーションプログラムとなる操作音声処理プログラムをインストールし、このアプリがクラウドサービス装置との通信を行う。ユーザがスマートスピーカ100に設けられているマイクロホン部29に向かって発話すると、クラウドサービス装置がユーザの発話内容を分析し、ユーザから指示された動作を行うようにMFP1を操作する(音声入力操作)。
これにより、複雑な操作を音声で命令することができ、タッチパネル27等のGUI(Graphical User Interface)による操作を不要とすることができる。このため、操作に慣れているユーザであっても、さらに迅速かつ簡単な入力操作を可能とすることができる。また、高齢者又は操作に不慣れなユーザであっても、対話による操作サポートにより、例えば複雑なネットワーク設定、高度なジョブの設定又は新規アプリの導入等の、ユーザが希望する操作を迅速かつ簡単に実行可能とすることができる。
また、ユーザが発話した内容のテキストに基づいて、ユーザの意図を解析しているため、ユーザの発話に基づいた処理内容をAIアシスタントサーバ装置4側で判断して処理することができる。
(第3の実施の形態)
次に、第3の実施の形態の音声操作システムの説明をする。
(比較例の説明)
まず、図35は、上述の音声操作の流れを概略的に示す図である。この図35において、紐づけ用DB102には、各スマートスピーカ100のデバイスIDと、各スマートスピーカ100で操作可能なMFPの機器IDとが関連付けされた記憶されている。この状態において、スマートスピーカ100を介して音声入力を行うと、この音声入力に対応する音声データが、音声認識サーバ装置3に送信され、テキスト化された解釈される。この解釈結果は、スマートスピーカ100のデバイスIDと共にAIアシスタントサーバ装置4に送信される。
AIアシスタントサーバ装置4は、デバイスIDに基づいて紐づけ用DB102を参照することで、デバイスIDに関連付けされているMFP1の機器IDを検出する。AIアシスタントサーバ装置4は、解釈結果をMFPで処理可能な形態のデータに変換し、検出された機器IDのMFP1に送信して実行要求を行う。これにより、スマートスピーカ100に音声入力を行うことで、MFPの動作を制御することができる。
しかし、AIアシスタントサーバ装置4にサードベンダの音声操作アプリケーションをインストールしてMFP1の音声操作を可能とする場合、サードベンダの音声操作アプリケーションに紐づけ用DB102を参照可能とする必要がある。これは、セキュリティ上、好ましいことではない。
一方、サードベンダの音声操作アプリケーションが紐づけ用DB102を参照できなければ、MFP1の音声操作を行うことが困難となる。これは、サードベンダによる音声操作アプリケーションの開発が困難となることを意味している。
(第3の実施の形態の概要)
図36は、第3の実施の形態の音声操作の概要を示す図である。また、図37は、第3の実施の形態の音声操作システムのシステム構成を示す図である。図37に示すように、第3の実施の形態では、サードベンダは、一般用(MFP用)の音声アシスタントプログラム(第1の音声アシスタントプログラム)がインストールされている音声認識サーバ装置3に、サードベンダが開発した音声アシスタントプログラム(第2の音声アシスタントプログラム)をインストールする。また、この第3の実施の形態では、AIアシスタントサーバ装置4が、一般用の管理サーバ装置(MFP管理サーバ装置4a)と、サードベンダ用のサーバ装置4bとを備える。
このような第3の実施の形態の音声操作システムにおいて、図36に示すようにサードベンダがサードベンダのスマートスピーカ100を用いて音声入力を行うと、この音声データが音声認識サーバ装置3に送信される。音声認識サーバ装置3は、サードベンダによりインストールされた音声アシスタントプログラムを起動する。音声認識サーバ装置3のCPU31は、このサードベンダ用の音声アシスタントプログラムに基づいて、サードベンダからの音声データをテキスト化して解釈する。そして、この解釈結果を、サードベンダのスマートスピーカ100のデバイスIDと共にAIアシスタントサーバ装置4に送信する。
AIアシスタントサーバ装置4のサードベンダ用のサーバ装置4bは、初回において、MFP管理サーバ装置4aに対して、サードベンダが用いているスマートスピーカ100のデバイスIDの登録要求を行う。MFP管理サーバ装置4aは、サードベンダのスマートスピーカ100のデバイスIDと、サードベンダに使用を許可するMFP1の機器IDとを関連付けて紐づけ用DB102に登録する。これにより、サードベンダは、サードベンダが開発した音声アシスタントプログラムを用いて、音声によりMFP1を音声操作することが可能となる。
すなわち、サードベンダがスマートスピーカ100を介して音声入力を行うと、この音声データが音声認識サーバ装置3に送信される。音声認識サーバ装置3のCPU31は、サードベンダによりインストールされた音声アシスタントプログラムに基づいて、サードベンダからの音声データをテキスト化して解釈する。そして、この解釈結果を、サードベンダのスマートスピーカ100のデバイスIDと共にAIアシスタントサーバ装置4に送信する。
AIアシスタントサーバ装置4のサードベンダ用のサーバ装置4bは、MFP管理サーバ装置4aに対して、サードベンダのスマートスピーカ100のデバイスIDと共に解釈結果を転送する。MFP管理サーバ装置4aは、サードベンダのスマートスピーカ100のデバイスIDに基づいて紐づけ用DB102を参照することで、サードベンダに対して使用が許可されているMFP1を検出する。そして、MFP管理サーバ装置4aは、サードベンダの音声データの解釈結果をMFPで処理可能な情報形態に変換し、紐づけ用DB102から検出したMFP1に対して送信して実行要求を行う。
これにより、サードベンダが開発したサードベンダ用の音声アシスタントプログラムを用いて、MFP1を音声操作可能とすることができる。このため、サードベンダは、音声操作システムに属した状態で、音声アシスタントプログラムの開発を行うことができる。また、サードベンダからのデータは、AIアシスタントサーバ装置4のサードベンダ用のサーバ装置4bを介してMFP管理サーバ4aに送信される。そして、MFP管理サーバ4aが、サードベンダからのデータに基づいてMFP1を制御する。このため、サードベンダは、間接的にMFP1を音声操作することとなり、音声操作システム側のセキュリティを保持することができる。
(変形例)
以上の説明は、サードベンダからのデータをAIアシスタントサーバ装置4のサードベンダ用サーバ装置4bがMFP管理サーバ4aを介してMFPに通知する例であった(間接操作制御)。この他、サードベンダ用サーバ装置4bからMFP1に対して、サードベンダから音声入力されたデータが記憶されているサーバ装置等のURL(Uniform Resource Locator:アドレス情報の一例)をMFP1に送付し、MFP1からURLで示されるサーバ装置にアクセスすることで、MFP1が、サードベンダから音声入力されたデータを取得してもよい(URL制御)。
以下、このような間接操作制御及びURL制御を、シーケンス図を用いて説明する。
(間接操作制御の第1の手法)
まず、図38は、間接操作制御の第1の手法の流れを示すシーケンス図である。この図38において、サードベンダのユーザが「○○データを印刷したい」との発話を行うと(ステップS301)、この音声データがスマートスピーカ100から音声認識サーバ装置3に送信される(ステップS302)。音声認識サーバ装置3のCPU31は、第1の音声アシスタントプログラムに基づいて、サードベンダの音声をテキスト化し、サードベンダが使用しているスマートスピーカ100のデバイスIDと共に、サードベンダ用の第2の音声アシスタントプログラムに通知する(ステップS303)。
音声認識サーバ装置3のCPU31は、このサードベンダ用の第2の音声アシスタントプログラムに基づいて、通知されたテキストを解釈し(ステップS304)、この解釈結果である「○○データの印刷命令」に、サードベンダが使用しているスマートスピーカ100のデバイスIDを付加して、AIアシスタントサーバ装置4のサードベンダ用サーバ装置4bに送信する(ステップS305)。
サードベンダ用サーバ装置4bは、「○○データの印刷命令」を、MFP1で取り扱い可能なデータ形態の印刷データに変換し(ステップS306)、サードベンダが使用しているスマートスピーカ100のデバイスIDと共に、MFP管理サーバ装置4aに送信する(ステップS307)。
MFP管理サーバ装置4aは、サードベンダが使用しているスマートスピーカ100のデバイスIDに基づいて紐づけDB102を参照することで、このデバイスIDに関連付けされているMFP1を検出する(ステップS308、ステップS309)。そして、MFP管理サーバ装置4aは、検出したMFP1に対して、印刷データを送信し、印刷アプリケーションプログラムの起動要求を行う(ステップS310)。これにより、サードベンダが開発したサードベンダ用の音声アシスタントプログラム(第2の音声アシスタントプログラム)を用いて、MFP1を音声操作可能とすることができる。
(間接操作制御の第2の手法)
次に、図39は、間接操作制御の第2の手法の流れを示すシーケンス図である。この図39において、サードベンダのユーザが「○○データを印刷したい」との発話を行うと(ステップS321)、この音声データがスマートスピーカ100から音声認識サーバ装置3に送信される(ステップS322)。音声認識サーバ装置3のCPU31は、上述の操作音声変換プログラムに基づいて、サードベンダの音声をテキスト化し、辞書情報を用いて解釈する(ステップS323、ステップS324)。そして、音声認識サーバ装置3のCPU31は、この解釈結果(インテント、パラメータ)を、サードベンダが使用しているスマートスピーカ100のデバイスIDと共に、AIアシスタントサーバ装置4のサードベンダ用サーバ装置4bに送信する(ステップS325)。
次に、サードベンダ用サーバ装置4bは、解釈結果(インテント、パラメータ)がMFP1に対する操作命令(例:印刷実行)と判断すると、MFP管理サーバ装置4aで定義されている印刷要求のAPI(Application Program Interface)を、スマートスピーカ100のデバイスIDと印刷データを引数として呼び出す。すなわち、サードベンダ用サーバ装置4bは、管理DB101から印刷対象となるコンテンツデータを取得して(ステップS326、ステップS327)、印刷データを生成する(ステップS328)。
次に、サードベンダ用サーバ装置4bは、生成した印刷データに基づいて、MFP管理サーバ装置4aに対して、サードベンダが使用しているスマートスピーカ100のデバイスIDと共に印刷要求を送信する(ステップS329)。
MFP管理サーバ装置4aは、サードベンダが使用しているスマートスピーカ100のデバイスIDに基づいて紐づけDB102を参照し(ステップS330)、デバイスIDに関連付けされているMFP1の機器IDを取得する(ステップS331)。そして、このMFP1に対して、印刷データを送信し、印刷アプリ起動要求の命令を行う(ステップS332)。これにより、第3の実施の形態の音声操作システムのセキュリティを保持しつつ、サードベンダの音声操作を処理することができる。
(URL制御の第1の手法)
次に、図40は、URL制御の第1の手法の流れを示すシーケンス図である。この図40において、サードベンダのユーザが「○○データを印刷したい」との発話を行うと(ステップS341)、この音声データがスマートスピーカ100から音声認識サーバ装置3に送信される(ステップS342)。音声認識サーバ装置3のCPU31は、第1の音声アシスタントプログラムに基づいて、サードベンダの音声をテキスト化し、サードベンダが使用しているスマートスピーカ100のデバイスIDと共に、サードベンダ用の第2の音声アシスタントプログラムに通知する(ステップS343)。
音声認識サーバ装置3のCPU31は、このサードベンダ用の第2の音声アシスタントプログラムに基づいて、通知されたテキストを解釈し(ステップS344)、この解釈結果である「○○データの印刷命令」に、サードベンダが使用しているスマートスピーカ100のデバイスIDを付加して、AIアシスタントサーバ装置4のサードベンダ用サーバ装置4bに送信する(ステップS345)。
サードベンダ用サーバ装置4bは、「○○データの印刷命令」を、MFP1で取り扱い可能なデータ形態に変換した印刷データを生成する(ステップS346)。そして、サードベンダ用サーバ装置4bは、この生成した印刷データの取得用のURLを生成し(ステップS347)、サードベンダが使用しているスマートスピーカ100のデバイスIDと共に、MFP管理サーバ装置4aに送信する(ステップS348)。
なお、印刷データの取得用のURLは、ネットワーク上のサードベンダ用サーバ装置4bのURLである。この他、印刷データの取得用のURLは、管理DB101のURL又はネットワーク上の他のサーバ装置のURLでもよい。
次に、MFP管理サーバ装置4aは、サードベンダが使用しているスマートスピーカ100のデバイスIDに基づいて紐づけDB102を参照することで、このデバイスIDに関連付けされているMFP1を検出する(ステップS349、ステップS350)。そして、MFP管理サーバ装置4aは、検出したMFP1に対して、サードベンダ用サーバ装置4bから受信した印刷データの取得用のURLを通知して、印刷アプリの起動要求を行う(ステップS351)。
MFP1のCPU10は、通知されたURLに基づいて、例えばサードベンダ用サーバ装置4bにアクセスすることで、サードベンダにより音声で指示された印刷データを取得し(ステップS352、ステップS353)、印刷を実行する。
図36に示すサードベンダ用サーバ装置4bからMFP1に直接的に接続された実線は、MFP1が、URLに基づいてサードベンダ用サーバ装置4bにアクセスし、印刷データを取得して印刷を実行する様子を示している。これにより、第3の実施の形態の音声操作システムのセキュリティを保持しつつ、サードベンダの音声操作を処理することができる。
なお、印刷の実行を例として説明したが、これ以外にもMFP1を制御するAPIをMFP管理サーバ装置4aで定義することで、サードベンダの音声操作アプリケーションが、これを利用することを可能とすることができる。具体的には、例えば「MFPにインストールされているサードベンダーアプリケーションを起動するAPI」、「MFPにインストールされている3rdベンダーアプリケーションを起動し、設定(ジョブの設定値など)を変更するAPI」又は「MFPにインストールされている3rdベンダーアプリケーションの設定を変更するAPI」を用いることができる。
(URL制御の第2の手法)
次に、図41は、URL制御の第2の手法の流れを示すシーケンス図である。この図41において、サードベンダのユーザが「○○データを印刷したい」との発話を行うと(ステップS361)、この音声データがスマートスピーカ100から音声認識サーバ装置3に送信される(ステップS362)。音声認識サーバ装置3のCPU31は、上述の操作音声変換プログラムに基づいて、サードベンダの音声をテキスト化し、辞書情報を用いて解釈する(ステップS363、ステップS364)。そして、音声認識サーバ装置3のCPU31は、この解釈結果(インテント、スロット)を、サードベンダが使用しているスマートスピーカ100のデバイスIDと共に、AIアシスタントサーバ装置4のサードベンダ用サーバ装置4bに送信する(ステップS365)。
次に、サードベンダ用サーバ装置4bは、受信した解釈結果をMFP1で取り扱い可能なデータ形態の印刷データに変換し、この印刷データの取得用URLを生成する(ステップS366)。なお、このURLは、上述のようにサードベンダ用サーバ装置4bのURL等である。サードベンダ用サーバ装置4bは、生成したURLと共に、サードベンダが使用しているスマートスピーカ100のデバイスIDを、MFP管理サーバ装置4aに送信する(ステップS367)。
MFP管理サーバ装置4aは、サードベンダが使用しているスマートスピーカ100のデバイスIDに基づいて紐づけDB102を参照し(ステップS368)、デバイスIDに関連付けされているMFP1の機器IDを取得する(ステップS369)。そして、このMFP1に対して、印刷アプリ起動要求を行うと共に、印刷データ取得用のURLを通知する(ステップS370)。
MFP1のCPU10は、通知されたURLに基づいて、例えばサードベンダ用サーバ装置4bにアクセスすることで、サードベンダにより音声で指示された印刷データを取得し(ステップS371、ステップS372)、印刷を実行する。これにより、第3の実施の形態の音声操作システムのセキュリティを保持しつつ、サードベンダの音声操作を処理することができる。
(第3の実施の形態の効果)
以上の説明から明らかなように、第3の実施の形態の音声操作システムは、AIアシスタントサーバ装置4のMFP管理用サーバ装置4aが、サードベンダ向けにMFP制御命令を発行するための機能(API)を提供する。これにより、サードベンダの音声操作アプリケーションは、サードベンダが利用しているスマートスピーカ100のデバイスIDを指定して上述のAPIを呼び出すことで、サードベンダのスマートスピーカ100に割り当てられたMFP1を特定して制御命令を送信可能とすることができる。
すなわち、第3の実施の形態の音声操作システムは、サードベンダが開発したサードベンダ用の音声アシスタントプログラムを用いて、MFP1を音声操作可能とすることができる。このため、サードベンダは、音声操作システムに属した状態で、音声アシスタントプログラムの開発を行うことができる。また、サードベンダからのデータは、AIアシスタントサーバ装置4のサードベンダ用のサーバ装置4bを介してMFP管理サーバ4aに送信される。そして、MFP管理サーバ4aが、サードベンダからのデータに基づいてMFP1を制御する。このため、サードベンダは、間接的にMFP1を音声操作することとなり、音声操作システム側のセキュリティを保持することができる。
また、サードベンダからは、印刷データを指定するのみで、MFP側が自動的に印刷アプリケーションの立ち上げと印刷データの取得を行うことで、サードベンダが、MFP1側のアプリケーションの開発を行わずに印刷機能を実装することを可能とすることができる。
また、管理サーバ装置4aとMFP1との間が、処理速度が遅いプロトコルで接続されている場合、又は、通信量に応じて従量課金される仕組みで接続されている場合において、印刷データを取得するためのURLを、管理サーバ装置4aからMFP1に通知しているため、性能面又は印刷面で優位な方式でサードベンダに印刷機能を提供できる。
また、MFPに通知するURLは、サードベンダ用サーバ装置4bのURLの以外でも、他の記憶装置のURLでもよい。このため、サードベンダの音声操作アプリケーションを、さらに他のサードベンダのサーバ装置、又は、一般的なクラウドレジストサービスと連携させて動作させることができる。この他、第3の実施の形態の音声操作システムは、上述の各実施の形態と同様の効果を得ることができる。
最後に、上述の各実施の形態は、一例として提示したものであり、本発明の範囲を限定することは意図していない。この新規な各実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことも可能である。
例えば、上述の第1の実施の形態の説明では、音声認識サーバ装置3でユーザの発話に対応するテキストデータを生成し、AIアシスタントサーバ装置4でテキストデータに基づいて、ユーザの意図している操作を解釈した。しかし、携帯端末2側に、このような音声認識機能及び解釈機能を設け、携帯端末2で、ユーザの発話から意図する操作を解釈してもよい。これにより、音声認識サーバ装置3及びAIアシスタントサーバ装置4を不要とすることができ、システム構成を簡素化できる。
このような各実施の形態及び各実施の形態の変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。