以下に添付図面を参照して、情報処理装置、情報処理システム、プログラムおよび方法の実施の形態を説明する。ここではスマートスピーカなどの端末によりクラウドが提供するサービスを利用して画像処理装置や電子機器などの情報処理装置を操作する情報処理システムへの適用例を示す。
(システム構成)
図1は、実施の形態に係る情報処理システムの全体構成の一例を示す図である。図1には、実施の形態に係る情報処理システムの一例である音声操作システムのシステム全体を示している。
この一例の音声操作システムは、図1に示すように、MFP(Multifunction Peripheral)1と、端末2と、クラウド3とを含む。MFP1は「画像処理装置」の一例である。MFP1は例えばプリンタ機能やスキャナ機能やFAX機能等の複数の機能を備える。なお、「画像処理装置」はMFP以外の装置であってもよい。例えばプリンタ機能やスキャナ機能やFAX機能等のうちの1つの機能を備える装置、すなわち印刷機や、スキャナや、FAX端末などであったり、電子黒板やプロジェクタなど、オフィス機器であったりしてもよい。また、「画像処理装置」の他に、種々の電子機器であったりしてもよい。端末2は、スマートスピーカや、スマートホンや、タブレット端末など、ネットワーク5にMFP1の操作指示を行うことができる装置である。ここでは、一例としてスマートスピーカとして説明する。
スマートスピーカは、MFP1の操作内容などをサービス利用者(「ユーザ」とする)から音声入力により受け付けたり、受け付けた操作内容についての返事をユーザへ音声でフィードバックしたりする。スマートスピーカには、タッチ式表示パネルが備えられているものもあり、この場合には表示パネルでの通知も可能である。本例では、タッチ式表示パネルが備えられているものを一例に説明する。
MFP1および端末2は、それぞれ1台以上がネットワーク5に接続可能に構成され、ネットワーク5を介してクラウド3に接続する。例えば端末2がスマートスピーカの場合、1台のMFP1の近くに、そのMFP1を操作するための1台のスマートスピーカを配置する。
クラウド3は、ネットワーク5上に設けられている1つまたは複数のサーバ装置(「情報処理装置」に相当)のことである。クラウド3は、端末2でMFP1の操作を行わせるサービスをネットワーク5を介して提供する。以下においてクラウドサービスとは、端末2でMFP1の操作を行わせるサービスのことを指すものとする。
ネットワーク5は、例えばLAN(Local Area Network)やインターネット等の通信ネットワークである。MFP1や端末2は、それぞれが備える通信手段により例えば有線または無線で社内LANや公衆網などに接続し、インターネットなどを通じてクラウド3にアクセスする。
詳しくは後述するが、端末2は、クラウド3との間のデータ通信(例えば音声データやテキストデータ、UIなどの画像データなどの送受信)を行う。クラウド3は、端末から受信した音声データ(音声情報)を分析し、テキストデータへ変換する。また、クラウド3は、テキストデータと事前登録されている辞書情報とに基づいてユーザの意図を解釈する。また、クラウド3は、例えばユーザの指示が確定されると、MFP1で解釈可能な形式であるジョブ実行命令(ユーザ要求)に変換してMFP1に送信する。MFP1は、クラウド3から送信されるジョブ実行命令を実行する。
(MFPのハードウェア構成)
図2は、MFP1のハードウェア構成の一例を示す図である。MFP1は、図2に示すように、コントローラ7、通信部15、操作部16、スキャナエンジン17およびプリンタエンジン18を有している。その他に、音や光などで報知する報知手段なども有する。
コントローラ7は、CPU(Central Processing Unit)10、ASIC(Application Specific Integrated Circuit)11、メモリ12、HDD(Hard Disk Drive)13およびタイマ14を有する。CPU10~タイマ14は、それぞれバスラインを介して通信可能なように相互に接続されている。
通信部15は、ネットワーク5に接続され、クラウド3と通信する。通信部15は、クラウド3へ機器情報を送信したり、端末2から音声入力された例えばスキャン指示または印刷指示等をジョブ実行命令として取得したりする。
操作部16は、液晶表示部(LCD:Liquid Crystal Display)とタッチセンサとが一体になっている、いわゆるタッチパネルである。ユーザは各種設定や実行命令などを行う場合に操作部16のソフトウェアキー(表示されている操作ボタン)を接触操作する。本実施の形態では、端末2への音声入力によりMFP1の設定等の操作を行うものについて示すが、従来通り、操作部16から操作を行うことにより各種設定や動作の実行をコントローラ7に指示することもできる。特に、MFP1で印刷やスキャンなどを行う場合に各種設定後の最終的な実行操作はMFP1の操作部16の操作ボタンで行うことが望ましい。操作部16は「出力手段」、「表示手段」、「操作受付手段」、「報知手段」に相当する。なお、報知手段としては、操作部16とは別に備えても良い。即ち、操作部16は画面情報や音声情報や光情報を出力することができる。つまり、画面を表示することでユーザに情報を通知し、更にランプ点滅や音声又はブザー音によってユーザにエラーを報知することができる。
スキャナエンジン17は、画像読取装置を制御して、光学的に原稿の読み取りを行うコントローラである。プリンタエンジン18は、画像形成装置を制御して、例えば転写紙等に画像を印刷するコントローラである。CPU10は、MFP1を統括的に制御する。ASIC11は、いわゆる大規模集積回路(LSI:Large-Scale Integration)となっており、スキャナエンジン17およびプリンタエンジン18で処理する画像に必要な各種の画像処理等を行う。CPU10はスキャナやプリンタなどの各種アプリケーション(単に「アプリ」とも言う)を選択的に実行し、各種のアプリにより各種エンジンにジョブ実行命令等を実行させる。
メモリ12は、固定データが記憶されている。HDD13は、制御プログラムやデータが記憶されている。制御プログラムやデータには、OS(Operating System)や、各種アプリケーションや、アプリケーションを実行する際に用いられる画像データや、フォントデータや、各種のファイルなどが含まれる。なお、HDD13の代わりにSSD(Solid State Drive)を設けてもよい。また、HDD13とSSDとを共に設けてもよい。
(端末のハードウェア構成)
図3は、端末2のハードウェア構成の一例を示す図である。端末2は、図3に示すようにCPU21、RAM22、ROM23、インタフェース部(I/F部)24および通信部25を有する。各部はバスライン26を介して相互に接続されている。
ROM23は制御プログラムを記憶する。制御プログラムには操作処理プログラムが含まれる。CPU21は、ROM23の制御プログラムを実行する。RAM22は、CPU21のワークエリアとして使用される。
I/F部24には、タッチパネル27、スピーカ部28およびマイクロホン部29が接続されている。マイクロホン部29は、通話音声の他、ユーザによる呼びかけを集音し、その音声を音声信号として入力する。スピーカ部28は、ユーザに対して返事などの音声を出力する。タッチパネル27は、ユーザから操作を受け付けたり、テキストデータや画像データなどをユーザに対して表示したりする。
このような構成により、端末2は、マイクロホン部29を介して入力された音声信号を通信部25を介してクラウド3に送信する。また、端末2は、クラウド3から通信部25を介して取得したデータ(音声データ、テキストデータ、画像データなど)をタッチパネル27に表示出力する制御を行ったり、そのうちの音声データをスピーカ部28に音声出力する制御を行ったりする。
(クラウドのハードウェア構成)
クラウド3は1つのサーバ装置または複数のサーバ装置が連携することによりサービスを提供する。図4は、1つ当たりのサーバ装置(「クラウドサービス装置」と呼ぶ)のハードウェア構成の一例を示す図である。
クラウドサービス装置3aは、図4に示すように、CPU31、RAM32、ROM33、HDD34、インタフェース部(I/F部)35および通信部36を有する。各部は、バスライン37を介して相互に接続されている。I/F部35には、表示部38および操作部39が接続されている。HDD34には、制御プログラムやデータベースなどが格納されている。制御プログラムには、例えば、操作音声変換プログラム、音声アシスタントプログラム、または管理プログラムなどが含まれる。データベースには、例えば、管理DB(Data Base)340(図5参照)、紐づけ用DB350(図5参照)、または機器情報DB360(図5参照)などが含まれる。
ROM33は固定プログラムを記憶する。CPU31は、ROM33やHDD34のプログラムを実行する。RAM32は、CPU31のワークエリアとして使用される。
なお、操作音声変換プログラム、音声アシスタントプログラム、管理プログラムは、1つのクラウドサービス装置3aに備えて、そのクラウドサービス装置3aで実行してもよい。また、それらのプログラムの一部を複数のクラウドサービス装置3aに分散して備え、複数のクラウドサービス装置3aでそれぞれを実行し、複数のクラウドサービス装置3aで連携してサービスを提供するようにしてもよい。
また、管理DB340、紐づけ用DB350、および機器情報DB360は、クラウドサービス装置3aは、操作音声変換プログラム、音声アシスタントプログラム、および管理プログラムと共に、1つのクラウドサービス装置3aに備えてもよい。また、複数のクラウドサービス装置3aに分散して備えてもよい。例えば、管理DB340、紐づけ用DB350、および機器情報DB360の何れか1つまたはすべてをネットワーク5を介してアクセス可能な別のサーバ装置に記憶させてもよい。
(全体の機能構成)
図5は、全体の機能の概要説明図である。図5には、クラウドサービスを提供する主な機能を示している。主な機能の詳細や、図5に示したMFP1や端末2についての機能の説明については、図6~図8を参照して後に説明する。
クラウド3の機能は、1つのクラウドサービス装置3a、あるいは複数のクラウドサービス装置3aにより実現される。これらの機能は1つまたは複数のクラウドサービス装置3aに適宜設定されるものであり、1つのクラウドサービス装置3aでもよいし、複数のクラウドサービス装置3aでもよい。
クラウドサービス装置3aのCPU31はHDD34の操作音声変換プログラムをRAM32に読み出して実行することにより操作音声変換部310として機能する。操作音声変換部310は、音声データをテキストデータに変換する機能を有する。更に、操作音声変換部310は、テキストデータを予め定義された辞書情報と一致するか否かを判断する機能を有する。更に、操作音声変換部310は、マッチした場合にはテキストデータをユーザの意図を示すアクションおよびジョブ条件などの変数を示すパラメータに変換する機能を有する。
また、クラウドサービス装置3aのCPU31はHDD34の音声アシスタントプログラムをRAM32に読み出して実行することにより音声アシスタント部320として機能する。音声アシスタント部320は、辞書情報を保持する機能を有する。
また、クラウドサービス装置3aのCPU31はHDD34の管理プログラムをRAM32に読み出して実行することにより管理部330として機能する。管理部330は、アクションとパラメータに基づいてMFP1が解釈可能な形式であるジョブ実行指示に変換した上で登録されたMFP1へ送信する機能を有する。
このようにクラウド3は、少なくとも操作音声変換部310、音声アシスタント部320、および管理部330の機能によりクラウドサービス300を提供する。
クラウドサービス300は、MFP1や端末2との通信に基づき、各種の情報をDBに記憶する。一例として、管理部330が、管理DB340や、紐づけ用DB350や、機器情報DB360などを使用して各種情報を管理する。
管理DB340は、テキストデータ、画像データ、音声データなど、クラウドサービス300が提供するコンテンツにかかるデータを記憶するデータベースである。
紐づけ用DB350は、端末2と紐づける外部装置を記憶するデータベースである。紐づけ用DB350は、本例では、端末2として使用するスマートスピーカのデバイスIDと、そのスマートスピーカと対応付ける外部装置(本例ではMFP1)のIDとを対応付けて記憶する。なお、スマートスピーカと外部装置は一対一で紐づけられていても良いが、スマートスピーカと複数の外部装置を紐づけても良い。つまり、デバイスIDと紐づく外部装置の種類と個数は限定されない。また、外部装置とスマートスピーカの紐づけの方法についても上記の方法に限定されない。つまり、ユーザアカウントやユーザIDなどのユーザを特定する情報と外部装置とを紐づける構成であっても良い。この場合、デバイスIDなどのスマートスピーカからクラウド3へ送信されるスマートスピーカを特定する情報と、ユーザを特定する情報とをクラウド3の紐づけ用DBなどに記憶しておき、管理部330はデバイスIDと紐づくユーザを特定する情報に基づいて外部装置を特定する構成であっても良い。若しくは、スマートスピーカからデバイスIDに代えてユーザを特定する情報を送信しても良い。また、ユーザを特定するための情報に代えて、部署や企業などの組織を特定する情報、又は部屋や建物などの場所を特定する情報と、外部装置とを紐づける構成であっても良く、この場合は1以上のスマートスピーカと1以上の外部装置を紐づけても良い。
機器情報DB360は、MFP1を含む各外部装置のIDとそれぞれの機器情報とを対応付けて記憶するデータベースである。
(端末の機能)
図6は、端末2の機能ブロックの構成の一例を示す図である。端末2のCPU21は、ROM23に記憶されている操作処理プログラムを実行することで、図6に示すように取得部211、通信制御部212、フィードバック部213として機能する。
取得部211は、マイクロホン部29(図3参照)を介して集音された、MFP1を音声操作するためのユーザの指示音声を、取得する。なお、取得部211は、タッチパネル27(図3参照)や物理スイッチ(不図示)などを介してユーザの操作を取得してもよい。通信制御部212は、クラウド3との間の通信を制御する。通信制御部212は、クラウド3と通信し、取得部211が取得した情報をクラウド3へ送信したり、クラウド3からテキストデータや画像データ、音声データを取得したりする。また、通信制御部212は、取得部211が取得した情報をクラウド3へ送信する場合、端末2を特定するデバイスIDを共に送信してもよい。
フィードバック部213は、対話型の音声入力操作を実現すべく、例えば不足するデータを補う入力を促す音声や、入力を確認する音声などをユーザ側にフィードバックする。また、フィードバック部213は、タッチパネル27のディスプレイ表示を制御することによって、テキストまたは画像としてユーザに対してフィードバックを行ってもよい。
なお、この例では、取得部211~フィードバック部213をソフトウェアで実現することとしたが、これらのうちの一部または全部をIC(Integrated Circuit)等のハードウェアで実現してもよい。また、取得部211~フィードバック部213の各機能は、操作処理プログラム単体で実現してもよいし、他のプログラムに処理の一部を実行させる、または他のプログラムを用いて間接的に処理を実行させてもよい。
(クラウドサービスの機能の詳細)
図7は、クラウドサービスの各機能の構成の一例を示す図である。操作音声変換部310は、図7に示すように、取得部311や、テキスト変換部312や、解釈部313や、出力部314などの機能を含む。取得部311は、端末2から送信される音声データ(ユーザにより入力された音声データ)を取得する。また、取得部311は、端末2のタッチパネル27や物理スイッチ(ボタンなども含む)などに対してユーザが行った操作を示すデータを取得してもよい。テキスト変換部312は、音声データ(端末2において入力されたユーザの音声データ)をテキストデータに変換するSTT(Speech To Text)を含む。解釈部313は、テキスト変換部312により変換されたテキストデータに基づいてユーザの指示の内容を解釈する。具体的に、解釈部313は、テキスト変換部312により変換されたテキストデータに含まれる単語などが、音声アシスタント部320が提供する辞書情報にマッチしているか否かを確認し、マッチしている場合に、ジョブの種類を示すアクションと、ジョブ条件などの変数を示すパラメータとに変換する。そして、解釈部313は、例えば音声データの取得元である端末2を特定するデバイスIDなどと共に、アクションおよびパラメータを管理部330に対して送信する。出力部314は、テキストデータを音声データに合成するTTS(Text To Speech)を含む。出力部314は、通信部36(図4参照)を通信制御し、端末2にテキストデータ、音声データ、画像データなどのデータの送信等を行う。
なお、この例では、取得部311~出力部314をソフトウェアで実現することとしたが、これらのうちの一部または全部をIC(Integrated Circuit)等のハードウェアで実現してもよい。また、取得部311~出力部314が実現する各機能は、操作音声変換プログラム単体で実現してもよいし、他のプログラムに処理の一部を実行させる、または他のプログラムを用いて間接的に処理を実行させてもよい。また、操作音声変換プログラムの解釈部313の機能の一部または全てを音声アシスタントプログラムに実行させてもよい。この場合、例えばテキストデータに含まれる単語などが辞書情報にマッチしているか否かの確認、マッチしている場合にユーザの意図を示すアクションとジョブ条件などの変数を示すパラメータへの変換は、音声アシスタント部320が行う。解釈部313はアクションおよびパラメータを音声アシスタント部320から取得するだけでよい。
音声アシスタント部320は、図7に示すように提供部321の機能を含む。提供部321は、テキストデータとアクションおよびパラメータの関係を予め定義した辞書情報を管理し、操作音声変換部310に辞書情報を提供する。なお、音声アシスタント部320は、操作音声変換部310からテキストデータを受け付けて、そのテキストデータからユーザの操作指示を解釈してもよい。例えば、音声アシスタント部320は、解釈部313からテキストデータを取得し、テキストデータに含まれる単語などが辞書情報にマッチしているか否かを確認し、マッチしている場合にテキストデータをアクションとパラメータに変換する。その後、アクションおよびパラメータを解釈部313に提供する。
なお、この例では、音声アシスタント部320(提供部321を含む)をソフトウェアで実現することとしたが、そのうちの一部または全部をIC(Integrated Circuit)等のハードウェアで実現してもよい。また、提供部321などの機能は、音声アシスタントプログラム単体で実現してもよいし、他のプログラムに処理の一部を実行させる、または他のプログラムを用いて間接的に処理を実行させてもよい。
管理部330は、図7に示すように、取得部331や、解釈結果変換部332や、実行指示部333や、機器情報取得部334や、実行判定部335や、通知部336や、DB管理部337などの機能を含む。
取得部331は、解釈部313から解釈結果を取得する。
解釈結果変換部332は、操作音声変換部310で変換されたアクションおよびパラメータなどの解釈結果を、MFP1が解釈可能なジョブの実行命令に変換する。
実行指示部333は、ジョブの実行命令をMFP1に送信することによりジョブの実行を指示する。具体的に、実行指示部333は、アクションおよびパラメータと共に、ユーザが音声指示した端末2のデバイスIDを取得する。実行指示部333は、取得したデバイスIDに対応するMFP1を紐づけ用DB350(図5参照)から検索し、検索により得られたMFP1に対してジョブ実行命令を送信する。
機器情報取得部334は、登録されている各外部装置(この例ではMFP1)から機器情報を取得する。例えば、機器情報取得部334は、処理可能な最大画素数等の処理能力を示す情報を取得する。また、機器情報取得部334は、MFP1との間で、通信接続が確立されているか否かを示す接続状態、MFP1の電源のON/OFFまたはスリープモードであるかを示す電力状態、エラーの有無とエラーの種類、用紙やトナーなどの消耗品の残余状況、ユーザのログイン状態、ログインユーザに使用が許可された機能を示す権限情報、などを含む機器状態を示す情報も設定に応じて適宜取得する。
なお、機器情報取得部334は、複数のMFP1から処理能力などの機器情報を取得した場合、機器情報DB360(図5参照)において、各外部装置を特定するIDなどの情報と紐づけてそれぞれの機器情報を管理する。
実行判定部335は、MFP1の処理能力と、ユーザから指定されたジョブ(即ち、操作音声変換部310で生成されたアクションおよびパラメータ)とを比較することで、ユーザから指定されたジョブをMFP1で実行可能(実施可能)か否か判定する。ユーザから指定されたジョブ実行が実行可能と判断した場合はMFP1に対してジョブ実行命令を送信する。なお、実行不可能(実施不可能)と判断した場合は通知部336により操作音声変換部310を介して端末2に対してエラーメッセージなどをレスポンス情報としてフィードバックさせてもよい。
通知部336は、ユーザのジョブ実行指示への応答としてテキストデータ、音声データ、画像データなどを操作音声変換部310へ送信する。また、ジョブの実行するためのジョブ条件を示すパラメータが不足している場合には、操作音声変換部310を介して端末2に対してフィードバックすることでユーザにパラメータの更なる指示を促す。ここで、不足しているパラメータを確認するために必要な情報として、パラメータ情報を送信してもよいし、ユーザにパラメータの指定を促すために必要な情報としてテキストデータ、音声データ、画像データを送信してもよい。
DB管理部337は、管理DB340、紐づけ用DB350、および機器情報DB360を管理する。具体的には、各種テーブルの設定や、各種テーブルに対してのデータの登録、検索、削除、更新などを行う。例えば、DB管理部337は、MFP1、端末2、またはクラウドサービス装置3aのクライアントデバイスに入力された情報および指示に基づいて、端末2のデバイスIDとMFP1のIDとを紐づけて紐づけ用DB350に登録する。紐づけ用DB350は、端末2のデバイスIDとMFP1のIDとを紐づけた情報をテーブルデータなどで保持する。
(MFPの機能)
図8は、MFP1の機能ブロックの構成の一例を示す図である。MFP1のCPU10は、メモリ12やHDD13に記憶されている各種プログラムを実行することで、図8に示すように、マルチデバイスハブ(MultiDeviceHub)111や、ボイスコントロールサービス(Voice control service)112や、アプリケーション(Smart Copy)113-1や、アプリケーション(Smart Scan)や113-2、アプリケーション(Smart Fax)113-3などとして機能する。
マルチデバイスハブ111は、クラウド3からの実行指示を受信する。また、MFP1の機器の状態や設定を収集し、機器の機能や状態をクラウド3に送信する。機器の状態については定期的にあるいは機器の状態が変化した場合などにクラウド3に送信する。ボイスコントロールサービス112は、マルチデバイスハブ111が受信した実行指示を窓口として受け付けて処理を実行する処理実行部である。ボイスコントロールサービス112は、受け付けた実行指示を解釈し、その解釈結果に基づき、対象となるアプリケーションを起動して、設定の反映やジョブの開始などを要求する。
アプリケーション(Smart Copy)113-1は、コピーを実行するためのアプリケーションである。アプリケーション(Smart Scan)113-2は、スキャニング(単に「スキャン」とも言う)を実行するためのアプリケーションである。アプリケーション(Smart Fax)113-3は、FAX送信を実行するためのアプリケーションである。その他にも、ユーザのアドレス情報を管理するアプリケーションや、指定のアドレスにデータやファイルを送信するアプリケーションなども含まれる。各アプリケーションは、指示された内容に沿って、それぞれの処理を実行する。
なお、上述した各種のプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM、フレキシブルディスク(FD)などのコンピュータ装置で読み取り可能な記録媒体に記録して提供してもよい。また、CD-R、DVD(Digital Versatile Disk)、ブルーレイディスク(登録商標)、半導体メモリなどのコンピュータ装置で読み取り可能な記録媒体に記録して提供してもよい。また、インターネット等のネットワーク経由でインストールするかたちで提供してもよいし、機器内のROM等に予め組み込んで提供してもよい。
(辞書情報の設定)
上述したようにクラウド3(クラウドサービス装置3aのHDD34)には辞書情報が記憶されている。クラウド3の操作音声変換部310(解釈部313)は、音声データから変換したテキストデータに含まれる単語などが辞書情報とマッチするか否かを判断し、マッチする場合は辞書情報に定義されているアクションおよびパラメータを含む解釈結果を生成する。辞書情報は、アクションおよびパラメータを生成することができればどのような形態であってもよい。その一例を次に示す。一例の辞書情報は、エンティティ(Entity)情報、アクション(Action)情報および関連付け情報を含んで構成されている。エンティティ情報は、ジョブのパラメータと自然言語を関連付ける情報である。1つのパラメータに複数の類義語が登録可能となっている。アクション情報は、ジョブの種類を示す情報である。関連付け情報は、ユーザの発話フレーズ(自然言語)とエンティティ情報、および、ユーザの発話フレーズ(自然言語)とアクション情報を、それぞれ関連付ける情報である。関連付け情報により、パラメータの発話順序またはニュアンスが多少変わっても、正しい解釈が可能となっている。また、関連付け情報により、入力された内容に基づいてレスポンスのテキスト(解釈結果)を生成してもよい。
図9に、エンティティ情報の一例を示す。この図9は、印刷色(Print Color)に対応するエンティティ情報である。この図9において、「Print Color」の文字は、エンティティ名を示している。また、図9において、左の列の「auto_color」、「monochrome」、「color」・・・等の文字は、パラメータ名を示している。また、図9において、右の列の「auto_color」、「monochrome,black and white」、「color,full color」・・・等の文字は、類義語を示している。
この図9からわかるように、エンティティ情報としては、パラメータおよび類義語が関連付けられて記憶されている。パラメータと共に、類義語を登録することで、例えばモノクロでのコピーを指示する場合に、「Please copy by black and white」と発話しても、「Please copy by monochrome」と発話しても、パラメータの設定を可能とすることができる。
図10は、ユーザの発話フレーズの例、アクション名、エンティティ情報を示している。図10においてアクション名は「Action」の項目に示している。エンティティ情報は「Entity」の項目に示している。それ以外が、ユーザの発話フレーズの例である。図10は、クラウドサービス装置3aの表示部38の画面上に表示した場合の一例であり、操作部39を操作することにより矢印に示すようにユーザの発話フレーズをドラッグする。また、この操作は、ネットワーク5を介してクラウド3にアクセスした管理者のPCの表示画面上で行ってもよい。
一例として、この操作を行うことにより、関連付け対象となるエンティティ情報を選択できる。また、選択したエンティティ情報でバリュー(VALUE)を設定すると、応答で入るパラメータが変更される。例えば、「Please copy by black and white」と発話した場合、バリューを「$printColor」とすると、戻り値として「printColor=monochrome」が返る。これに対して、バリューを「$printColor.original」とすると、戻り値として「printColor=black and white」が返る。ここで、バリューを「$printColor.original」とすると、ユーザの発話内容がそのまま応答のパラメータとして返すことができる。
(音声操作システムにおける音声入力操作の全体的な動作)
図11は、音声操作システムにおいて音声入力操作を行う場合の全体の基本動作の一例を示す図である。図11には、一例として、MFP1が両面コピー機能を備え、ユーザが端末2を介して両面コピーを音声入力操作で指示するときの動作を示している。なお、端末2の操作処理プログラムは、端末2の起動と同時に起動してもよいし、端末2に対して所定の操作や所定の音声入力を行うことによって起動してもよい。
先ず、ユーザが端末2に向かって、MFP1に指示する内容を発話する。ここでは一例として「両面でコピー」と発話した例を示している。ユーザが発話した音声は、端末2(取得部211)により音声データとして取得される(ステップS1)。端末2(通信制御部212)は、この「両面でコピー」の音声データをクラウド3に送信する(ステップS2)。このとき、端末2(通信制御部212)は、端末2を特定するデバイスIDをクラウド3に送信してもよい。
クラウド3では、操作音声変換部310(取得部311)が、端末2から送信データを取得し、操作音声変換部310(テキスト変換部312)が、「両面でコピー」との音声データをテキスト化、つまりテキストデータに変換処理する(ステップS3)。
そして、この例の場合、操作音声変換部310(解釈部313)は、音声アシスタント部320(提供部321)に辞書情報を要求して音声アシスタント部320(提供部321)から辞書情報を取得する(ステップS4)。
さらに、操作音声変換部310(解釈部313)は、取得した辞書情報から、テキスト解釈を行う(ステップS5)。この例では、テキストに「両面でコピー」が含まれるので、ジョブの種別(アクション)についてはMFP1にコピーの実行を要求するアクション「COPY EXECUTE」であると解釈し、アクションの内容(パラメータ)については、両面が含まれるので「印刷面=両面」と解釈する。このように、操作音声変換部310(解釈部313)は、テキストデータに基づいて、ユーザから指示されたジョブの種別(アクション)と内容(パラメータ)を解釈する。
操作音声変換部310(解釈部313)は、その解釈結果を、管理部330に渡す(ステップS6)。このとき、操作音声変換部310(解釈部313)は、その解釈結果に対応付けて音声データの送信元の端末2のデバイスIDを管理部330に渡してもよい。
管理部330(解釈結果変換部332)は、操作音声変換部310から取得した解釈結果を、MFP1のジョブ命令に変換処理する(ステップS7)。ここで、解釈結果の一例と、解釈結果から変換処理されたジョブ命令の一例とを表1に示す。なお、管理部330(解釈結果変換部332)は、解釈結果をジョブ命令に変換するために、表1に示す情報をクラウドサービス装置3aのHDD34などの記憶部に記憶し、それを参照できる構成としてもよい。
表1の例の場合、「COPY_EXECUTE」、「SCAN_EXECUTE」、「PRINT_EXECUTE」および「FAX_EXECUTE」が、アクション(Action)の一例として示されている。また、「印刷面」および「部数」等がパラメータ(Parameter)の一例として示されている。なお、パラメータとしては、ジョブの設定値として指定可能な全てのパラメータが含まれる。
管理部330(解釈結果変換部332)は、「COPY_EXECUTE」の解釈結果を、「コピージョブの実行」との、MFP1のジョブ命令に変換処理する。同様に、管理部330(解釈結果変換部332)は、「SCAN_EXECUTE」の解釈結果を、「スキャンジョブの実行」との、MFP1のジョブ命令に変換処理する。同様に、管理部330(解釈結果変換部332)は、「PRINT_EXECUTE」の解釈結果を、「印刷ジョブの実行」との、MFP1のジョブ命令に変換処理する。同様に、管理部330(解釈結果変換部332)は、「FAX_EXECUTE」の解釈結果を、「FAXジョブの実行」との、MFP1のジョブ命令に変換処理する。なお、以上はMFP1で実行される基本的なジョブであるが、クラウドサービスにより解釈可能なジョブは上記のジョブに限定されない。例えば、通信対象に対して機器情報を収集させてクラウドサービスへ送信させるジョブ、通信対象が有する記憶部に記憶された所定の情報を通信対象の表示部に表示させるジョブなどが含まれてもよい。
また、管理部330(解釈結果変換部332)は、解釈結果に「印刷面」のパラメータが含まれている場合、「印刷面の設定値の変更」を行うジョブ命令に変換する。同様に、管理部330(解釈結果変換部332)は、解釈結果に「部数」のパラメータが含まれている場合、「部数の設定値の変更」を行うMFP1のジョブ命令に変換する。
すなわち、管理部330(解釈結果変換部332)は、解釈結果の「Action」に含まれる情報で、ユーザの意図、例えばMFP1に実行させるジョブの種類を判断し、「Parameter」に含まれる値を、ジョブの設定値と判断して、解釈結果をジョブ命令に変換処理する。
管理部330(実行指示部333)は、このようにして得られたジョブ命令をMFP1に送信する(ステップS8)。この例の場合、「コピージョブ実行(印刷面=両面)」のジョブ命令がMFP1に送信される。なお、管理部330(実行指示部333)は、DB管理部337によって特定されたMFP1に対してジョブ命令を送信する。つまり、音声データの送信元の端末2と紐づけられているIDのMFP1に対してジョブの実行を指示する。これにより、端末2であるスマートスピーカに対応するMFP1での両面印刷の実行が可能となる。
(対話型動作を行う場合のフィードバック)
本実施の形態に係る音声操作システムでは、ユーザからの入力内容に基づいて、システムが応答する対話型システムを実現している。例えば、対話に必要な定型文を応答する以外に、MFP1の操作特有の応答として、「入力不足フィードバック」および「入力確認フィードバック」の、2種類の応答を行うことで、対話型システムを実現している。
「入力不足フィードバック」は、ジョブを実行するために必要な情報が揃っていない場合に出力される応答である。ユーザの入力結果を認識できなかった場合、または、必須パラメータが不足している場合に出力される。つまり、必須パラメータ以外のパラメータについては、指示されていない場合であっても入力不足フィードバックを行う必要はない。また、パラメータ以外にも、コピー機能またはスキャン機能等のうち、利用する機能を確認する処理を含んでもよい。
クラウド3は、通信接続中の外部装置(本例ではMFP1)の種類に応じ、必須の設定を確認し、そのパラメータを設定してもよい。例えば、クラウド3の管理部330(機器情報取得部334)が外部装置との通信が確立した後の所定のタイミングで外部装置の種類や機能を示す機器情報を取得する。その機器情報を操作音声変換部310(出力部314)が受け取って端末2(つまりスマートスピーカ)に出力する。スマートスピーカは、フィードバック部213によりユーザに設定を確認することができる。また、パラメータを例えばフィードバック部213が決定してもよい。具体的に、本例に示すMFP1の場合には、コピー、プリント、スキャン、FAXなどのMFP1が有する機能をユーザに確認してよい。更に、コピー、プリント、スキャン、FAXのうちMFP1が有する機能についてのみ、いずれの機能を使用するかをユーザに確認してもよい。また、ユーザから指定された設定条件に応じて必須パラメータを変更してもよい。例えば、ユーザが指定した設定条件が変倍印刷の場合は印刷する用紙サイズを必須パラメータとして、両面印刷の場合は原稿が片面か両面かを示す設定を必須パラメータとして、週刊誌綴じ印刷の場合は仕上がりサイズおよび1ページに含めるページ数などの設定を必須パラメータとして設定する。
「入力確認フィードバック」は、ジョブを実行するために必要な情報が揃った場合に出力される応答である。例えば、入力確認フィードバックは、全ての必須パラメータについてユーザから指示を受け付けた場合に行われる。また、入力確認フィードバックは、「現在の設定値でジョブを実行する」か「設定値を変更する」かの選択をユーザに促してもよい。現在の設定値でジョブを実行するか否かをユーザに確認する場合、必須パラメータか必須パラメータ以外のパラメータかに関わらず、ユーザにより指示された全てのパラメータを音声出力することでユーザに確認をとってもよい。
いずれのパラメータが必須パラメータであるかは、クラウド3(クラウドサービス装置3aの記憶部(例えばHDD34))に予め記憶する。記憶部(例えばHDD34)に記憶されている必須パラメータは、クラウドサービス装置3aの操作部39やクラウドサービス装置3aにネットワーク5を介してアクセス可能なPCなどから適宜変更することができる。記憶部(例えばHDD34)に記憶されている必須パラメータに基づき、管理部330(実行判定部335)は、操作音声変換部310から渡されたアクションおよびパラメータが必須パラメータを満たすか否かを判断することができる。
(対話型動作の流れ)
図12~図15は、音声操作システムにおいてユーザがシステムと対話してMFPの操作を行う場合の全体の動作の一例を示す図である。図12は、起動時の動作の流れを示しており、図13~図15は、起動後の対話型動作の流れを示している。システムと対話して操作を行う場合、対話のセッション管理が必要になる。対話のセッション管理については後述する。ここでは、一例としてユーザが端末2を介してモノクロ画像を両面で2部のコピーを行う操作を指示する場合の動作を示す。この例では、部数(=2部)が必須パラメータとなっているが、部数に限定されず、モノクロ、カラー、または、用紙サイズ等、複数のパラメータを必須パラメータに含めてもよい。
まず、ユーザにより端末2(操作処理プログラム)が起動操作された後、例えばユーザが端末2に起動ワードを音声入力する(ステップS1´)。ここで、ユーザが音声アシスタントプログラムを起動するための起動ワードを発話することで、所望の音声アシスタントプログラムを起動させることができる。端末2(通信制御部212)は、クラウド3(操作音声変換部310)に対して起動ワードの音声データを送信する(ステップS2´)。
クラウド3では、操作音声変換部310(取得部311)が、端末2から送信データを取得し、操作音声変換部310(テキスト変換部312)が、音声データをテキスト化、つまりテキストデータに変換処理する(ステップS3´)。
操作音声変換部310(解釈部313)は、音声アシスタント部320(提供部321)に辞書情報を要求して音声アシスタント部320(提供部321)から辞書情報を取得する(ステップS4´)。
さらに、操作音声変換部310(解釈部313)は、取得した辞書情報から、テキスト解釈を行う(ステップS5´)。
そして、操作音声変換部310(解釈部313)は、その解釈結果を、管理部330に渡す(ステップS6´)。
ここで、管理部330は、必要に応じて、紐づけ用DBの検索(ステップS71)、接続状態確認(ステップS72)、アプリ状態確認(ステップS73)、機器情報取得(ステップS74)などを行う。なお、これらの処理の順番は適宜入れ替えてよい。また、各処理は、それぞれ、別のタイミングで行っていれば、ここでの処理を省略してもよい。
紐づけ用DBの検索(ステップS71)では、管理部330(DB管理部337)が、取得したデバイスID(端末2のID)に対応するMFP1(MFP1のID)を、紐づけ用DB350から検索して取得する。このとき、管理部330(通知部336)は、デバイスIDと紐づくMFP1のIDが検索で得られなかった場合、端末2が通信対象と紐づけられていないことを操作音声変換部310(出力部314)を介してユーザに通知する。例えば、管理部330(通知部336)は、「このデバイスは機器と紐づけられていません」とのレスポンスを含むレスポンス情報を生成する。ここで、管理部330(通知部336)は、デバイスと通信対象を紐づけする方法をレスポンスに含めてもよい。なお、ステップS71は、デバイスIDを取得した他の任意のタイミングで行ってもよい。
接続状態確認(ステップS72)は、管理部330が通信対象(この例ではMFP1)の機器状態を確認する。例えばDB管理部337が機器情報DB360の予め取得した機器情報を参照することで確認する。あるは、機器情報取得部334が通信対象のMFP1から機器情報を取得して確認してもよい。ここで、機器状態の確認は、例えば通信対象のMFP1と通信可能か否かおよびMFP1が使用可能か否かの確認である。このとき、デバイスIDと紐づくMFP1(確認対象のMFP1)との接続が確立していない場合、または、そのMFP1が起動中などで使用できない場合、管理部330(通知部336)は、操作音声変換部310(出力部314)を介してユーザに通知を行う。例えば、管理部330(通知部336)は、「機器がオフラインです」または「機器が準備中です」とのレスポンスを含むレスポンス情報を生成して通知する。ここで、管理部330(通知部336)は、対策方法をレスポンスに含めてもよい。なお、機器状態の確認は、操作音声変換部310(解釈部313)からアクションおよびパラメータ、デバイスIDを取得した他の任意のタイミングで行ってもよい。
アプリ状態確認(ステップS73)は、管理部330が通信対象のMFP1にユーザから指定された機能を実行するアプリケーションの状態を確認する。例えばDB管理部337が、機器情報DB360の予め取得した機器情報を参照することで確認する。あるは、機器情報取得部334が通信対象のMFP1から機器情報を取得して確認してもよい。ここで、アプリ状態の確認は、例えばアプリケーションがインストールされているか否か、アプリケーションが実行可能な状態であるか否かの確認である。そして、実行を指示された機能がコピーであったとして、コピーに関するアプリケーションがデバイスIDと紐づくMFP1にインストールされていなかったり、あるいは、アプリケーションが起動中などで使用できなかったりする場合は、管理部330(通知部336)は、操作音声変換部310(出力部314)を介してユーザに通知を行う。例えば、管理部330(通知部336)は、「アプリケーションがインストールされていません」または「アプリケーションは現在利用できません」とのレスポンスを含むレスポンス情報を生成して通知する。ここで、管理部330(通知部336)は、対策方法をレスポンスに含めてもよい。なお、アプリケーションの状態の確認は、操作音声変換部310(解釈部313)からアクションおよびパラメータ、デバイスIDを取得した他の任意のタイミングで行ってもよい。
機器情報取得(ステップS74)は、管理部330が通信対象(この例ではMFP1)の機器情報を取得する。例えばDB管理部337が機器情報DB360の予め取得した機器情報を取得する。あるは、機器情報取得部334が通信対象のMFP1から機器情報を取得してもよい。ここで取得する機器状態は、例えば通信対象のMFP1において、ユーザが指示したジョブ種類およびジョブ条件が実行可能か否かを判断する際に利用される。
これらの処理が起動後の任意のタイミングで完了していると、管理部330(実行判定部335)は、必須パラメータ不足判断を行う(ステップS75)。管理部330(実行判定部335)は、必須パラメータ不足判断において、解釈結果のアクションおよびパラメータに基づいてジョブ実行に必要な条件が全て揃っているか否かを判断する。
なお、音声アシスタントプログラムの起動を指示する際においてジョブの種類および必須の設定条件をすべて指定していた場合には、これ以降に示す「入力フィードバック」のステップは省略し、MFP1に実行を指示してもよい。
この段階では、音声で起動が指示されただけで、それ以外に、MFP1が有する複数のアクションやパラメータの指定をユーザが受け付けていないため、管理部330(実行判定部335)は、必須パラメータを満たしていないと判断する。音声アシスタントプログラムの起動を指示する際に必須の条件の指示漏れがある場合にも必須パラメータを満たしていないと判断する。従って、管理部330(通知部336)はレスポンス情報を作成し、操作音声変換部310(出力部314)を介して端末2にレスポンス情報を送信する(ステップS76、ステップS77)。
なお、管理部330(DB管理部337)は、この端末2との通信のセッションを管理DB340で管理する。管理部330(通知部336)は端末2にレスポンス情報を送信する際に、セッションが継続していることを示す状態情報を送信することができる。ここで状態情報は、セッションが継続していることを示す情報である。後段の手順においても適宜説明を省略しているが、クラウド3が端末2に問合せを行う場合、状態情報を含めて端末2に送信する。
レスポンス情報には、ユーザに問合せる内容としてテキストデータ、音声データ、画像データを含めることができる。ここでは一例として、「コピーしますか?スキャンしますか?」の音声データを送信する。これにより、端末2(フィードバック部213)は、「コピーしますか?スキャンしますか?」と音声でフィードバックを行う(ステップS78)。
なお、ユーザに対してジョブの種類またはジョブの設定条件の入力を促すメッセージであればフィードバックの内容はこれに限定されない。更に、ユーザに対するフィードバックは、音声出力だけでなく、タッチパネルにテキストまたは画像を表示することで行ってもよい。その場合、端末2にテキストデータや画像データ(表示情報)などを送信する。
ステップS78の後に、ユーザが「コピー」と発話した場合(音声アシスタントプログラムの起動指示の際に「コピー」と発話していた場合も同様)、次のように処理が進む。ユーザが発話した音声は、端末2(取得部211)により音声データとして取得される(ステップS1-1)。端末2(通信制御部212)は、この「コピー」の音声データをクラウド3に送信する(ステップS2-1)。このとき、端末2(通信制御部212)は、端末2を特定するデバイスIDをクラウド3に送信する。
クラウド3では、操作音声変換部310(取得部311)が、その音声データを取得し、その後は、ステップS3´~ステップS5´と同様に、操作音声変換部310においてテキスト解釈までの処理が行われ(ステップS3-1~ステップS5-1)、解釈結果が管理部330へ渡される(ステップS6-1)。ここでは、「コピーして」に対応する「Copy_Execute」としたアクションを解釈結果として渡す。
そして、管理部330(実行判定部335)は、改めて必須パラメータ不足判断を行う(ステップS75―1)。この例の場合、ユーザは、「コピー」としか発話しておらず、必須パラメータのコピー部数等の設定値が不明である。
このため、クラウド3が端末2に対して不足しているパラメータを問い合わせる。具体的には、この段階では設定値不足であったため、管理部330(通知部336)が「設定値を入力してください」を含むレスポンス情報を生成し、操作音声変換部310(出力部314)を介して「設定値を入力してください」の音声データを端末2に送信する(ステップS75-1~ステップS77-1)。そして、端末2(フィードバック部213)が「設定値を入力してください」との音声出力を行う(ステップS78-1)。なお、この場合も、音声出力の他に、タッチパネル27において「設定値を入力してください」とのテキスト表示などを行ってもよい。
次に、入力不足フィードバックがあったため、ユーザは、例えば「両面で」と発話する。ユーザが発話した音声は、端末2(取得部211)により音声データとして取得される(ステップS1-2)。端末2(通信制御部212)は、この「両面で」の音声データをクラウド3に送信する(ステップS2-2)。このとき、端末2(通信制御部212)は、端末2を特定するデバイスIDをクラウド3に送信する。
クラウド3では、操作音声変換部310(取得部311)が、その音声データを取得し、その後は、ステップS3´~ステップS5´と同様に、操作音声変換部310においてテキスト解釈までの処理が行われ(ステップS3-2~ステップS5-2)、解釈結果が管理部330へ渡される(ステップS6-2)。
ここでは、操作音声変換部310(解釈部313)が「印刷面=両面」としたパラメータを解釈結果として生成し、その解釈結果を管理部330へ渡す。
そして、管理部330(実行判定部335)は、改めて必須パラメータ不足判断を行う(ステップS75―2)。
具体的に、管理部330(DB管理部337)は、前回の発話の解釈結果を管理DB340などに記憶しておき、管理部330(DB管理部337)により前回の発話の解釈結果と今回の発話の解釈結果とを統合してアクションおよびパラメータを完成させる。管理部330(実行判定部335)は、この統合された解釈結果に基づいて改めて必須パラメータ不足判断を行う。
なお、以上では管理部330で前回の発話の解釈結果と今回の発話の解釈結果とを統合する場合について説明したが、これに限定されない。即ち、操作音声変換部310が前回の発話に含まれるアクションおよびパラメータと合わせて「Copy_Execute」としたアクション、および「印刷面=両面」としたパラメータを含む解釈結果を管理部330へ渡してもよい。
この例の場合、ユーザは「コピー」と「両面で」としか発音しておらず、コピー部数などが必須パラメータ不足である。従って、管理部330(実行判定部335)は、この段階(ステップS75―2)でも必須パラメータ不足と判断する。
このため、クラウド3が端末2に対して不足しているパラメータを更に問い合わせる。パラメータを問い合わせる続きは同様である。つまり、管理部330(通知部336)が「何部印刷しますか」を含むフィードバック情報を生成し、操作音声変換部310(出力部314)を介して「何部印刷しますか」の音声データを端末2に送信する(ステップS75-2~ステップS77-2)。そして、端末2(フィードバック部213)が「何部印刷しますか」との音声出力を行う(ステップS78-2)。なお、この場合も、音声出力の他に、タッチパネル27において「設定値を入力してください」とのテキスト表示などを行ってもよい。
次に、入力不足フィードバックがあったため、ユーザは、例えば「2部」と発話する。その後は同様に、端末2からクラウド3へ音声データが送信され、クラウド3で必須パラメータの充足判断が行われる。つまり、ユーザが発話した音声は、端末2(取得部211)により音声データとして取得される(ステップS1-3)。端末2(通信制御部212)は、この「2部」の音声データをクラウド3に送信する(ステップS2-3)。このとき、端末2(通信制御部212)は、端末2を特定するデバイスIDをクラウド3に送信する。
クラウド3では、操作音声変換部310(取得部311)が、その音声データを取得し、その後は、ステップS3´~ステップS5´と同様に、操作音声変換部310においてテキスト解釈までの処理が行われ(ステップS3-3~ステップS5-3)、解釈結果が管理部330へ渡される(ステップS6-3)。
ここでは、操作音声変換部310(解釈部313)が「部数=2部」としたパラメータを解釈結果として生成し、その解釈結果を管理部330へ渡す。
そして、管理部330(実行判定部335)は、改めて必須パラメータ不足判断を行う(ステップS75―3)。
具体的に、管理部330(DB管理部337)は、前回の発話の解釈結果と今回の発話の解釈結果とを統合してアクションおよびパラメータを完成させる。つまり、この例では、「Copy_Execute」としたアクション、および「印刷面=両面、部数=2部」としたパラメータを完成させる。管理部330(実行判定部335)は、この統合された解釈結果に基づいて改めて必須パラメータ不足判断を行う。この例の場合、ユーザが「2部」と発話したことで、コピーのジョブに対する必須パラメータ不足が解消する。
この例では、続いて管理部330(通知部336)は、入力確認フィードバックを行うために「両面で2部コピーします。よろしいですか?」とのレスポンス情報を生成し、操作音声変換部310(出力部314)を介して「両面で2部コピーします。よろしいですか?」の音声データを端末2に送信する(ステップS75-3~ステップS77-3)。そして、端末2(フィードバック部213)が「両面で2部コピーします。よろしいですか?」との音声出力を行う(ステップS78-3)。なお、この場合も、音声出力の他に、タッチパネル27において「両面で2部コピーします。よろしいですか?」とのテキスト表示などを行ってもよい。ここで、レスポンス情報に含まれるテキストデータや音声データを出力することに代えて、レスポンス情報に含まれる情報に基づいて端末2の記憶部に記憶されたテキストデータを組み合わせて出力情報を生成してもよい。
その後、ユーザは、この入力確認フィードバックに対して、設定値の変更またはコピーの開始を端末に発話する。ユーザが設定値を変更する内容を発話した場合は、その発話した設定値の変更について、端末2からクラウド3へ音声データが送信され、クラウド3で設定値の変更が行われて、端末2に設定値の変更が行われたことについて音声でフィードバックされる。音声のフィードバックは、例えば「○○設定でコピーします。よろしいですか?」など、変更された設定値でコピーを開始してよいか否かの確認を行う。
その後も、ユーザが設定値を変更する内容を発話する場合は、この手続きが繰り返される。従って、「両面で2部コピーします。よろしいですか?」との音声出力が行われた後は、ユーザが設定値を変更する内容を発話した回数(k回)だけ、手続きが繰り返される。
ユーザが「はい」と応答するなどしてコピーの開始を指示した場合は、図15に示されるn番目の手順が行われる。つまり、ユーザが発話した音声は、端末2(取得部211)により音声データとして取得される(ステップS1-n)。端末2(通信制御部212)は、この「はい」の音声データをクラウド3に送信する(ステップS2-n)。このとき、端末2(通信制御部212)は、端末2を特定するデバイスIDをクラウド3に送信する。
クラウド3では、操作音声変換部310(取得部311)が、その音声データを取得し、その後は、ステップS3´~ステップS5´と同様に、操作音声変換部310においてテキスト解釈までの処理が行われ(ステップS3-n~ステップS5-n)、解釈結果が管理部330へ渡される(ステップS6-n)。
ここで、操作音声変換部310(解釈部313)は、コピー開始指示を認識すると、その解釈結果を管理部330に渡し、管理部330(実行判定部335)が、最終確認OKと判断する(ステップS75―n)。
これにより、管理部330(解釈結果変換部332)は、解釈結果をMFP1のジョブ命令に変換処理する(ステップS76)。そして管理部330(実行指示部333)は、変換処理した実行指示情報をMFP1に送信する(ステップS8)。これにより、音声入力操作により、MFP1をコピー制御することができる。
(状態情報)
状態情報は、セッションの状況を示す情報であり、例えば、外部装置に対するジョブ実行命令の送信がまだ行われておらずユーザによるジョブの設定処理が継続中である場合にはセッションが継続していることを示す状態情報が送信され、外部装置に対するジョブ実行命令の送信が完了した場合にはセッションが終了したことを示す状態情報が送信される。
ただし、状態情報はこれに限定されず、より詳細にセッションの状況を示す状態情報を含んでもよい。操作音声変換部310や管理部330は、状態情報に応じて、セッションを継続するか終了するか否かを判断することができる。つまり、操作音声変換部310や管理部330は、セッションが継続中である場合には、ユーザが複数回の発話に分けてジョブ設定条件を指定した場合であっても一つのジョブに属するものであると判断し、セッションが終了した場合には、ユーザの発話に含まれるジョブ設定条件は新規のジョブに属するものであると判断することができる。これにより、操作音声変換部310や管理部330は、ジョブの種類およびジョブ設定条件の指示が複数回の発話に跨るような場合であったとしても、同一のジョブに属するものか、別の新規なジョブに属するものかを判断することができる。
なお、管理部330は、端末2から信号を受信しない状況が所定時間以上継続した場合は、セッションの終了と判断してもよい。通信対象(MFP1)はセッションに関わらずジョブ実行を行ってもよい。この場合、通信対象ではジョブ実行命令を取得すると、通信対象が保持するジョブ条件に対して、ジョブ実行命令に含まれるジョブ条件を上書きして設定する。このとき、通信対象で保持するジョブ条件を全て削除またはデフォルト条件に戻して、ジョブ実行命令に含まれるジョブ条件を設定してもよい。また、通信対象で保持するジョブ条件と矛盾するジョブ条件についてはジョブ実行命令に含まれるジョブ条件を優先して上書き設定し、矛盾しないジョブ条件は通信対象が予め保持していたジョブ条件を維持してもよい。なお、通信対象は、ジョブを実行した場合はジョブ実行命令に含まれるジョブ条件を削除して、通信対象に予め登録されたデフォルト状態にすることができる。
(クラウドからフィードバックされる情報の例)
以上では、端末2のフィードバック部213はレスポンス情報に含まれるテキストデータおよび音声データを出力する場合について説明したが、これに限定されず、フィードバック部213はレスポンス情報に含まれる情報に基づいて端末2の記憶部に記憶されたテキストデータの中から全て、または一部を読み出し、組み合わせることで生成してもよい。以下の表2に、クラウド3から端末2にフィードバックされるレスポンス情報とフィードバックの一例を示す。
この表2に示すように、例えばジョブの設定値の入力を促すための「Copy_Parameter_Setting」、ジョブの設定値の確認を促すための「Copy_Confirm」等のアクションが、レスポンス情報に含められて、クラウド3から端末2にフィードバックされる。
フィードバック部213は、レスポンス情報に含まれるアクション、パラメータ、レスポンスに応じて、ユーザに対するフィードバックを判断することができる。フィードバック部213は、フィードバックする内容を決定するために、表2に相当する情報を端末2の記憶部に記憶し、参照できる構成としてもよい。なお、表2では、コピーの場合を例としたが、プリント、スキャン、FAXも表2と同様にアクションとして、ジョブの設定値の入力を促すための「Parameter_Setting」、ジョブの設定値の確認を促すための「Confirm」が用いられてもよい。なお、レスポンス情報には、アクションおよびパラメータまたはレスポンスの少なくとも一方が含まれていればよい。
また、例えば両面または片面等の印刷面の設定値、または、コピー部数等のパラメータが、レスポンス情報に含められて端末2にフィードバックされる。さらに、必須パラメータが不足している場合、不足するパラメータの入力を促すメッセージが、レスポンスとして信号に含められて端末2にフィードバックされる。
(ジョブの実行動作およびエラー発生時の対話)
次に、例えば「ジョブを実行します。よろしいですか?」等の、上述の入力確認フィードバックにより、ユーザが「はい」と応答することで、ジョブが実行され、または、エラーが発生した場合の対話の一例を示す。
まず、「ジョブを実行します。よろしいですか?」等の、上述の入力確認フィードバックにより、ユーザが「はい」と応答することで、MFP1においてジョブが実行される。何事もなくジョブが完了すれば、例えば「ジョブが完了しました。原稿の取り忘れに注意してください。」等の完了メッセージ(音声およびテキスト)が、端末2を介して出力される。
これに対して、例えば用紙不足のエラーが発生した場合、端末2を介して「用紙がありません。用紙を補充して継続するか、ジョブをキャンセルしてください」等のジョブの確認フィードバックが行われる。この確認フィードバックに対して、ユーザがMFP1に用紙を補充し、「継続」との発話により応答した場合、MFP1に対してジョブの継続が指示され、MFP1においてジョブが再開される。これに対して、確認フィードバックにより、ユーザが「キャンセル」との発話することで、ジョブのキャンセルを指示した場合、MFP1に対してジョブのキャンセルが通知され、エラー発生以降のジョブがキャンセルされる。そして、端末2を介して、例えば「ジョブをキャンセルしました」等の音声およびテキストを出力する確認フィードバックが行われる。
(ジョブの実行動作およびエラー発生時の対話動作の流れ)
MFP1は、指示されたジョブを実行することで、正常にジョブが完了した旨の実行結果、または、エラーが発生したことを示す実行結果をクラウド3を介して端末2に送信する。正常にジョブが完了した旨の実行結果を受信した場合、端末2のフィードバック部213は、例えば「ジョブが完了しました」等の音声メッセージを出力する。これに対して、エラーが発生した旨の実行結果を受信した場合、端末2のフィードバック部213は、例えば「エラーが発生しました。ジョブを継続しますか、キャンセルしますか?」等の、ジョブの継続の是非を問う音声メッセージを出力する(ステップSA53)。具体的には、MFPはジョブが完了した場合には完了通知を管理部に対して送信する。また、MFPはエラーが発生した場合にはエラー内容などエラーに関するエラー情報を管理部へ送信する。また、管理部は、MFPから取得した情報に応じて、レスポンス情報として、例えば「ジョブが完了しました」または「エラーが発生しました。ジョブを継続しますか、キャンセルしますか?」を生成し、生成したレスポンス情報を操作音声変換部を介して端末へ送信する。
ステップSA54~ステップSA61が、ユーザが、継続を指定した場合の各部の動作の流れである。すなわち、「エラーが発生しました。ジョブを継続しますか、キャンセルしますか?」との問い合わせに対し、ユーザがエラーの発生要因を除去したうえで、「継続」と応答した場合(ステップSA54)、操作音声変換部によりテキスト化される(ステップSA55~ステップSA57)。
操作音声変換部は、アクションを「Copy_Job_Continue」とした解釈結果を生成して、管理部へ送信する。管理部は、レスポンスを「ジョブを継続します」としたレスポンス情報を生成し、これを端末2に送信する(ステップSA58~ステップSA59)。さらに、管理部(実行指示部333)は、MFP1に対してジョブの継続を指示する(ステップSA60)。また、端末2(フィードバック部213)は、「ジョブを継続します」との入力確認フィードバックを行う(ステップSA60)。
これに対して、ステップSA62~ステップSA69が、ユーザが、ジョブのキャンセルを指定した場合の各部の動作の流れである。すなわち、「エラーが発生しました。ジョブを継続しますか、キャンセルしますか?」との問い合わせに対し、ユーザが、「キャンセル」と応答した場合(ステップSA62)、操作音声変換部によりテキスト化される(ステップSA63~ステップSA65)。
操作音声変換部は、アクションを「Copy_Job_Cancel」とした解釈結果を生成して、管理部へ送信する。管理部は、レスポンスを「ジョブをキャンセルします」としたレスポンス情報を生成し、これを端末2に送信する(ステップSA66~ステップSA67)。更に、管理部(実行指示部333)は、MFP1に対してジョブのキャンセルを指示する(ステップSA68)。また、端末2(フィードバック部213)は、「ジョブをキャンセルします」との入力確認フィードバックを行う(ステップSA69)。
(対話によるMFPの機器能力に応じたパラメータの調整動作)
次に、実施の形態の音声操作システムは、MFP1の機器能力に対応したジョブの実行を、対話型操作により実現している。
まず、機器情報取得部334が、MFP1に対して、例えば処理可能な解像度の問い合わせを行う(Capabilityの取得:ステップSA72)。この問い合わせに対して、MFP1は、「200dpi~600dpi」等のように、処理可能な解像度を端末2に回答する(ステップSA73)。これにより、端末2において、MFP1の処理可能な解像度が認識される。
なお、機器情報取得部334はクラウド3とMFP1との通信が確立した後の所定のタイミングで、予め処理能力の情報を取得しておいてもよい。例えば、管理テーブルにMFPを登録する際に処理能力の情報を取得してもよいし、定期的に処理能力の情報を取得してもよいし、端末から音声アシスタントプログラムの起動を受け付けたタイミングや端末からジョブの実行指示を受け付けたタイミングで取得してもよい。取得した処理能力の情報は、クラウドが有するHDDなどの記憶部に記憶しておくことができ、例えば管理テーブルにおいてMFPと紐づけて記憶しておいてもよい。また、処理能力の取得は他のプログラムが実行し、機器情報取得部334は他のプログラムが取得した情報を取得することで、間接的にMFP1が有する情報を取得してもよい。また、機器情報取得部がMFPから取得する機器情報は解像度の情報に限定されず、例えばMFPにインストールされたアプリケーションの種類およびバージョン、印刷速度、処理可能なファイル形式、フィニッシャを含むオプション機器の接続状況など、MFPで実行可能なジョブの種類やジョブの設定条件に関する情報を取得することができる。
まず、ユーザにより端末2の操作処理プログラムが起動操作された後、例えば音声入力によって音声アシスタントプログラムの起動を指示すると、通信制御部は、クラウド3に対して音声データを送信する。テキスト変換部は音声データをテキストデータに変換し、アクションおよびパラメータに変換して管理部へ送信する。実行判定部は、必須パラメータを満たしているか否かを判断し、必須パラメータを満たしていない場合には、操作音声変換部を介して端末に対して「コピーしますか?スキャンしますか?」のテキストデータなどのレスポンス情報を送信する。
次に、端末2(フィードバック部213)は、例えば「コピーしますか?スキャンしますか?」等のジョブの指示を促す内容を音声でフィードバックする(ステップSA74)。ユーザが「スキャン」と発話すると(ステップSA75)、操作音声変換部によりテキスト化される(ステップSA76~ステップSA78)。また、解釈部はテキストデータに基づいて解釈結果を生成し、アクションを「Scan_Execute」とした解釈結果を管理部へ送信する。スキャンの指示だけでは、必須パラメータが不足しているため、管理部の実行判定部は、レスポンスを「設定値を入力してください」としたレスポンス情報を操作音声変換部を介して端末2に送信する(ステップSA79~ステップSA80)。これにより、端末2のフィードバック部213は、「設定値を入力してください」との入力不足フィードバックを行う(ステップSA81)。
次に、このような入力不足フィードバックに対して、ユーザが「1000dpiで田中さん宛て」と発話すると、操作音声変換部によりテキスト化される(ステップSA82~ステップSA85)。解釈部は、は、アクションを「Scan_Execute」、パラメータを「解像度=1000dpi、宛先=田中」とした解釈結果を管理部に送信する(ステップSA86~ステップSA87)。管理部の実行判定部335は、解釈結果に含まれるパラメータに基づいて、ユーザにより指定されたジョブは、MFP1で実行可能か否かを判定する(ステップSA88)。実行判定部は、機器情報取得部によって機器情報を取得することでまたは機器情報取得部が予め取得した機器情報を参照することで、通信対象にユーザから指定された設定でジョブ実行可能か否かを判定する。
MFP1が、1000dpiの解像度で画像処理が可能であれば、ステップSA89において、管理部の通知部は、レスポンスを「1000dpiでスキャンし、田中さん宛てに送信します。よろしいですか?」としたレスポンスを含むレスポンス情報を操作音声変換部を介して端末へ送信し、端末2(フィードバック部213)が、「1000dpiでスキャンし、田中さん宛てに送信します。よろしいですか?」との入力確認フィードバックを行う。
この入力確認フィードバックに対してユーザが「はい」と応答すると(ステップSA91)、操作音声変換部によりテキスト化される(ステップSA92~ステップSA94)。操作音声変換部は、アクションを「Scan_Execute」とし、パラメータを「解像度=1000、宛先=田中」とした解釈結果を管理部に送信する(ステップSA95~ステップSA96)。
管理部の解釈結果変換部332は、解釈結果をジョブ命令に変換する(ステップSA97)。管理部の実行指示部は、ジョブ命令をMFP1に送信する(ステップSA98)。
これに対して、600dpiがMFP1の処理能力の限界である場合、ユーザから指定された1000dpiの画像処理は、MFP1では困難となる。この場合、端末2は、ステップSA90において、「1000dpiは指定できません。600dpiでスキャンし、田中さん宛てに送信します。よろしいですか?」との確認フィードバックを行う。
なお、実行判定部335は、MFP1の処理能力の範囲内で、ユーザが指示した機能または処理能力値に最も近い機能または値を選択することができる。例えば、MFP1の処理可能な解像度が200-600dpiの範囲である場合、ユーザが指示した1000dpiに最も近い600dpiが選択される。そして、実行判定部335が選択した能力または値を、フィードバック部が確認フィードバックとして出力する。つまり、実行判定部は、機器情報または機器状態に基づいて、解釈結果に含まれるアクションおよびパラメータではジョブ実行が不可能と判断した場合、MFPの処理能力を参照してMFPで実行可能な設定条件を選択する。そして、選択した設定条件に基づいてレスポンス情報を生成することができる。なお、管理部は、操作音声変換部から解釈結果に加えて、音声入力元の端末を特定するデバイスIDを取得することができるため、実行判定部は紐づけ用DBを参照して取得したデバイスIDと紐づくMFPを特定し、特定したMFPの処理能力を参照することでジョブ実行の可否を判断することができる。また、ユーザがそもそもMFPの有していない機能の実行を指示した場合、実行判定部はジョブを実行できないことを示すレスポンス情報を操作音声変換部を介して端末へ送信してもよい。なお、管理部は、選択した設定条件に関する情報を操作音声変換部に送信してもよい。
このような確認フィードバックに対してユーザが「はい」と発話すると(ステップSA91)、操作音声変換部によりテキスト化される(ステップSA92~ステップSA94)。操作音声変換部は、テキストデータに基づいて、は、アクションを「Scan_Execute」とし、パラメータを「解像度=600、宛先=田中」とした解釈結果を管理部に送信する(ステップSA95~ステップSA96)。
管理部の解釈結果変換部332は、解釈結果をジョブ命令に変換する(ステップSA97)。管理部の実行指示部は、ジョブ命令をMFP1に送信する(ステップSA98)。これにより、音声入力操作により、処理能力内でジョブが実行されるように、MFP1を操作できる。ここで、MFPでは、MFP内のHDDなどの記憶部に保存されたアドレス帳を参照することで、「田中」に該当する宛先情報を検索する。ここで、宛先情報とは、メールアドレスやFAX番号などの情報である。「田中」に該当する宛先情報がアドレス帳に存在する場合、その宛先に対してMFPでスキャンした画像データを送信する。なお、MFPの操作部に宛先情報を表示してユーザに宛先に誤りがないか確認を促し、ユーザがOKボタンを押下するなどした場合に宛先に対してスキャンした画像データを送信するものとしてもよい。また、「田中」に該当する宛先がアドレス帳に複数存在する場合は、該当する全ての宛先情報をMFPの操作部に表示して、ユーザに選択させるものとしてもよい。
(印刷対象を検索して印刷する動作)
次に、所望のファイルを印刷する動作を説明する。まず、ユーザにより端末2の操作処理プログラムが起動操作された後、例えば音声入力によって音声アシスタントプログラムの起動を指示すると、通信制御部は、クラウド3に対して音声データを送信する。テキスト変換部は音声データをテキストデータに変換し、アクションおよびパラメータに変換して管理部へ送信する。実行判定部は、必須パラメータを満たしているか否かを判断し、必須パラメータを満たしていない場合には、操作音声変換部を介して端末に対して「コピーしますか?スキャンしますか?プリントしますか?」のテキストデータなどのレスポンス情報を送信する。
フィードバック部213が、例えば「コピーしますか?スキャンしますか?プリントしますか?」等のジョブの指示を促す内容を音声でフィードバックする(ステップSA142)。ユーザが「プリント」と発話すると(ステップSA143)、操作音声変換部のテキスト変換部によりテキスト化される(ステップSA144~ステップSA146)。また、解釈部はテキストデータに基づいて解釈結果を生成し、アクションを「Print_Execute」とした解釈結果を管理部へ送信する。「プリント」との指示だけでは、必須パラメータが不足しているため、管理部の実行判定部は、レスポンスを「設定値を入力してください」としたレスポンス情報を操作音声変換部を介して端末2に送信する(ステップSA147~ステップSA148)。これにより、端末2のフィードバック部213は、「設定値を入力してください」との入力不足フィードバックを行う(ステップSA149)。
次に、このような入力不足フィードバックに対して、ユーザが「ファイルAをプリント」と発話すると(ステップSA150)、操作音声変換部のテキスト変換部によりテキスト化される(ステップSA151~ステップSA153)。また、解釈部はテキストデータに基づいて解釈結果を生成し、アクションを「Print_Exetute」、パラメータを「印刷対象=ファイルA」とした解釈結果を管理部に送信する(ステップSA154~ステップSA155)。管理部は、解釈結果に含まれるパラメータに基づいて管理DBからファイルAを検索する(ステップSA156)。
なお、検索する対象は管理DBに限らずクラウド3とネットワークを介して接続されたサーバであってもよい。また、管理部は、パラメータに含まれる文字列を含むファイル名を検索するだけでなく、ファイルデータ中にパラメータに含まれる文字列を含むファイルを検索してもよい。また、管理部は、ファイルの作成日時やファイル作成者などのファイルの属性に基づいて検索を行ってもよい。
管理DBに、一つだけファイルAが記録されている場合、ステップSA157において、管理部は、このファイルAを印刷データとして設定する。このファイルAの印刷データは、MFP1に送信され印刷される。このとき、実行指示部は、MFPに対してジョブの実行命令に加えて、管理部が検索したファイルを送信する。
管理DBに2つ以上のファイルAが存在する場合、即ち管理部が検索した結果として複数のファイル見つかった場合、実行判定部はレスポンスとして「複数のファイルAが登録されています。印刷するファイルを選択してください」のレスポンス情報を生成して、操作音声変換部を介して端末へ送信する。このとき、それぞれのファイルを特定するための情報として、ファイルの作成日時や作成者、サムネイル画像などをレスポンス情報に含めてもよい。端末2のフィードバック部213は、「複数のファイルAが登録されています。印刷するファイルを選択してください」との入力不足フィードバックを行う(ステップSA158)。このとき、それぞれのファイルを特定するための情報をとしてファイルの作成日時や作成者を音声でフィードバックしてもよいし、タッチパネルにファイル一覧を表示してもよい。なお、ファイル一覧としてサムネイル画像を表示することでユーザに選択を促してもよい。これに対して、ユーザは、所望のファイルAを選択する。即ち、ファイルの作成に自治や作成者などを発話することでファイルを選択してもよいし、タッチパネルに表示されたファイル一覧から所望のファイルをタッチ操作で選択してもよい。実行指示部は、後述するように、ユーザにより選択されたファイルAをMFP1に送信し印刷要求を行う。
管理DBにファイルAが記録されていない場合、実行判定部はレスポンスとして「メモリ内にファイルAが登録されていません」のレスポンス情報を生成して、操作音声変換部を介して端末へ送信する。端末2のフィードバック部213は、「メモリ内にファイルAが登録されていません」とのフィードバックを行う(ステップSA160)。
すなわち、管理DBに1つだけファイルAが存在する場合、印刷を希望するファイルAまたは他のファイルが選択された場合、実行判定部はレスポンスとして「ファイルAの印刷を開始します。よろしいでしょうか」のレスポンス情報を生成して、操作音声変換部を介して端末へ送信する。端末2のフィードバック部213は、例えば「ファイルAの印刷を開始します。よろしいでしょうか」との確認フィードバックを行う(ステップSA162)。
この確認フィードバックに対して、ユーザが「はい」と応答すると(ステップSA163)、操作音声変換部のテキスト変換部によりテキスト化される(ステップSA164~ステップSA166)。また、解釈部はテキストデータに基づいて解釈結果を生成し、アクションを「Print_Execute」とし、パラメータを「印刷対象=ファイルA、ファイル特定情報X」とした解釈結果を管理部に送信する(ステップSA167~ステップSA168)。なお、ファイル特定情報Xとは、管理DBに2つ以上のファイルAが存在した場合に、ユーザが選択したファイルAを特定するために付加される情報であり、例えばファイルの作成日時や作成者などの情報である。
管理部の解釈結果変換部332は、解釈結果をジョブ命令に変換する(ステップSA169)。通信制御部は、ジョブ命令を、ユーザより選択されたファイルと共にMFP1に送信する(ステップSA170)。これにより、MFP1において、ユーザが希望するファイルが印刷される。
なお、以上では印刷対象をクラウド3が検索し、検索したファイルをMFPへ送信する場合を例に説明したが、これに限定されない。例えば、MFPに対しては「印刷対象=ファイルA」としたジョブ命令を送信して、MFPがファイルAに該当するファイルを検索してもよい。この場合、MFPは、MFPが有するHDDまたはMFPがネットワークを介して接続されたサーバからファイルAに該当するファイルを検索することができる。また、検索したファイルが2つ以上存在する場合は、MFPのタッチパネル上にファイル一覧を表示させ、ユーザに選択を促すことができる。そして、ユーザが選択したファイルをジョブ実行の対象とすることができる。
(MFP1の設定画面に対する反映)
ここまでは、ユーザが端末2に音声指示を行い、クラウド3が音声指示を解釈してMFP1へ処理を指示する一連の流れについて説明した。クラウド3は、MFP1へ処理を指示すると、MFP1で実際に処理が行われたかどうかなどの処理結果に関係なく、クラウド3が生成したフィードバックの内容(例えば「処理を実行しました」など)を端末2に音声でフィードバックする。MFP1が処理結果をクラウド3に送信しない理由は、レイテンシや通信コストの問題があるためである。
このため、実際のMFP1の状態とクラウド3で把握している状態とに相違があった場合に、嘘のフィードバックを行ってしまう可能性がある。その場合、MFP1では、ユーザが指示した結果が得られていないことになるが、MFP1を見てもユーザは何が生じたかを直ちに把握することはできない。
以下では、ユーザが端末2に指示した操作の処理結果を確認することをできるようにした音声操作システムについて説明する。
図16および図17は、ユーザ側において端末2に指示した操作の処理結果を確認できるようにした音声操作システム全体の動作の一例を示す図である。先ず、ユーザが端末2に例えば「カラーコピーして」と発話したとする。
ユーザが発話した音声は、図16に示すように、端末2(取得部211)により音声データとして取得される(ステップS101)。端末2(通信制御部212)は、この「カラーコピーして」の音声データをクラウド3に送信する(ステップS201)。
クラウド3では、送信された「カラーコピーして」の音声データについて、制御対象のMFP1では実行不可能(制御対象のケイパビリティ外)であると判断すると、受付失敗を示す内容、この場合は「カラーは設定できません」という内容の音声データを端末2にフィードバックする(ステップS202)。これにより、端末2が「カラーは設定できません」を音声でフィードバックする(ステップS203)。
クラウド3において、このような実行不可能(制御対象のケイパビリティ外)と判断するまでの処理は次のようになる。なお、これまでに詳しく説明してきた部分については簡単に説明する。クラウド3は、端末2から送信された音声データを操作音声変換部310でテキスト化し、辞書情報に基づきテキスト解釈する。ここでは「カラーコピーして」と発話されているので、操作音声変換部310(解釈部313)は解釈結果として、「アクション:コピー」「パラメータ:色=カラー」を管理部330に渡す。管理部330(実行判定部335)は、解釈結果と、制御対象のMFP1の処理能力(ここでは「ケイパビリティ情報」と呼ぶ)とを比較することで、ユーザから指定されたジョブを制御対象のMFP1で実行可能か否かを判定する。制御対象のMFP1のケイパビリティ情報は前以て取得される。ケイパビリティ情報としてMFP1の構成情報や実行可能なジョブの種類などの情報が含まれる。図16に示すステップS202は、管理部330(実行判定部335)の判定において、制御対象のMFP1がモノクロ機であるために実行不可能と判定されたケースである。管理部330(通知部336)が「カラーは設定できません」という内容のレスポンス情報を操作音声変換部310(出力部314)を介して端末2に送信する。
このように、クラウド3では、頻繁に変更されることないケイパビリティ情報を保持するため、ケイパビリティ情報の範囲で受付失敗の判定ができる場合には、MFP1に実行を指示することなく端末2に受付失敗のフィードバックを行う。
一方、制御対象のMFP1がカラー機である場合は、クラウド3が、制御対象のMFP1で実行可能(制御対象のケイパビリティ内)と判断する。その場合、クラウド3は、制御対象のMFP1にジョブの実行を指示する(ステップS204)。具体的は、クラウド3において、管理部330(解釈結果変換部332)が、解釈結果を制御対象のMFP1が解釈可能なジョブの実行命令(動作要求)に変換し、管理部330(実行指示部333)が、ジョブの実行命令をMFP1に送信することによりジョブの実行を指示する。
また、この場合、クラウド3は、受付成功を示す内容、この場合は「カラーコピーですね」という内容の音声データを端末2にフィードバックする(ステップS205)。これにより、端末2が「カラーコピーですね」と音声でフィードバックを行う(ステップS206)。なお、このフィードバックも、管理部330(通知部336)が「カラーコピーですね」という内容のレスポンス情報を操作音声変換部310(出力部314)を介して端末2に送信することで行われる。
また、制御対象のMFP1では、クラウド3から送信されたジョブの実行命令(動作要求)をマルチデバイスハブ111が受信すると、その実行命令をボイスコントロールサービス112が受け付ける(ステップS501)。そして、ボイスコントロールサービス112は、実行命令を解釈して、対象のアプリケーションの起動(設定値の反映)を試みる。
ここで、ボイスコントロールサービス112は何らかの失敗条件を判定した場合、MFP1の無効音を鳴らすことによりMFP1で実行に失敗したことをユーザに報知する(ステップS502)。失敗条件としては、一つにアプリケーションの起動可否に関わるものがある。例えば、ログイン中のユーザにアプリ権限やジョブ実行権限などが設定されていない場合や、他のアプリケーションが起動中の場合などである。失敗条件として、その他には、システム的なバグにより正常に処理が行われなかった場合や、トナー/用紙など消耗品が不足している場合や、ジャムなどの異常が発生している場合などが挙げられる。
なお、報知音は一例であり、MFP1で実行に失敗したことをユーザに報知する報知手段であればよい。例えば、音以外に、LED(Light Emitting Diode)などを発光させることにより報知を行ってもよい。
また、この例において、ボイスコントロールサービス112は、無効音を鳴らすことの他に、MFP1の操作部16(LCD)にエラーである旨(例えば起動できない旨など)を表示する(ステップS503)。なお、この処理については省いてもよい。詳しくは後述するが、MFP1の操作部16(LCD)には、処理が成功した設定までが画面に反映され、その状態のまま表示されることになる。このため、画面の設定を確認することにより、どの指示の実行が行われていないかを把握することができる。
この説明では、対象のアプリケーションの起動可否判定についての説明は省略しているが、起動可否判定も行われるものとする。以下は、起動可否判定が起動可であることを前提とするものとする。
対象のアプリケーションの起動後に、アプリケーション側で設定の反映を実行することができない場合について次に示す。先ず、ボイスコントロールサービス112が、対象のアプリケーションの起動(設定値の反映)を試み、対象のアプリケーション(この例ではアプリケーション113-1)の起動に成功する(ステップSS504)。
アプリケーション113-1側では、パラメータ(カラー設定)の設定を試みるが、受け取ったリクエストが不正であった場合、ボイスコントロールサービス112に対し、処理の受付結果として「失敗」を通知する(ステップS505)。
ボイスコントロールサービス112は、アプリケーション113-1から「失敗」の通知を受けると、MFP1の無効音を鳴らすことによりMFP1で実行に失敗したことをユーザに報知する(ステップS506)。
また、この例において、ボイスコントロールサービス112は、無効音を鳴らすことの他に、MFP1の操作部16(LCD)にエラーである旨(例えば設定失敗の旨など)を表示する(ステップS507)。なお、この処理は省いてもよい。
その後も、アプリケーション113-1は、リクエストされたパラメータ(カラー設定)の設定を試み、ボイスコントロールサービス112に対し、処理の受付結果を通知する(ステップS508)。
一方、リクエストが正常な場合、アプリケーション113-1は、受け取ったパラメータ(カラー設定)を設定に反映する(ステップS509)。例えば、両面の設定にカラーの設定値を反映する。
なお、アプリケーション113-1でパラメータの設定を反映することに失敗した場合には、アプリケーション113-1がMFP1の無効音を鳴らすことにより設定に失敗したことをユーザに報知する(ステップS510)。
ここで、アプリケーション113-1は、MFP1の操作部16でコピー操作するときに起動され、操作部16にUI画面を表示させて設定に基づきコピー処理を行うアプリケーションである。このため、音声指示した場合にも、MFP1を操作部16で設定する場合と同様に、MFP1の操作部16の画面に音声で指示した設定が反映されて表示される。つまり、MFP1の操作部16には、処理が成功した設定までが画面に反映され、その状態のまま表示されることになる。例えば端末2で先に音声指示されたユーザ要求の反映中に端末2で後に音声指示されたユーザ要求が受信された場合、反映したジョブの種類や設定までが操作部16の画面に表示される。このため、画面の設定を確認することにより、どの指示の実行が行われていないかを把握することができる。
また、音声指示した場合にも、操作部16の画面に音声で指示した設定が反映されて表示された後は、MFP1の操作部16でもユーザによるタッチ入力操作を受け付ける。つまり、反映後に、反映したジョブに関するジョブ設定の変更を受け付けることができる。このため、音声指示した後に、必要な操作(設定や実行などを含む)についてはMFP1の操作部16を操作して行うことができる。
以上の処理は、ボイスコントロールサービス112や、ジョブ種類に応じて起動されるアプリケーション(アプリケーション(Smart Copy)113-1や、アプリケーション(Smart Scan)113-2や、アプリケーション(Smart Fax)113-3などが「要求反映手段」として機能することにより行われる。
続いて、音声指示が連続で飛んできた場合にそれぞれの音声指示について処理を行う場合について説明する。連続で音声指示が行われた場合に、MFP1で1回目の設定の反映に時間がかかり、MFP1で1回目の設定の反映中に2回目の実行命令を受け付けるケースがある。この場合、システムは2回目の指示を受け付けないのではなく、一時的にキュー(「保持手段」の一例)にキューイングし、1回目の指示を反映させた後に2回目の指示を反映させるというように順番に処理を行う。一例として、1回目の指示がクラウド3で履歴検索を必要とするもので、そのためにクラウド3で処理に時間がかかり、MFP1で1回目の設定の反映中に2回目の実行命令を受け付けた場合について説明する。なお、履歴検索は一例であり、クラウド3で時間を要する場合であれば、何れにも実行される。
図18は、音声指示が連続で飛んできた場合の全体の動作の一例を示す図である。ここでは、音声指示が連続で飛んできた場合のキューイングについて主に説明する。図16および図17で説明したような、クラウド3において実行不可能であった場合のフィードバックや、MFP1において起動や設定に失敗した場合のMFP1における報知などの処理については、図16および図17の繰り返しの説明になるため、ここでは図示および説明を省略する。図18でも実際には図16および図17と同様の処理が含まれているものとする。
先ず、ユーザが端末2に1回目の指示として「さっきの設定でコピー」と発話したとする。ユーザが発話した音声は、図18に示すように、端末2(取得部211)により音声データとして取得される(ステップS111)。端末2(通信制御部212)は、この「さっきの設定でコピー」の音声データをクラウド3に送信する(ステップS301)。
クラウド3は、送信された「さっきの設定でコピー」の音声データに基づいて指示を解釈し、制御対象のMFP1にジョブの実行を指示する(ステップS302)。また、「・・・の設定でコピーですね。設定変更はありますか?」という内容の音声データを端末2にフィードバックする(ステップS303)。これにより、端末2が「・・・の設定でコピーですね。設定変更はありますか?」と音声でフィードバックを行う(ステップS304)。
この例では「さっきの設定でコピー」という指示なので、クラウド3の処理に、最後に指示を行った設定を記憶部(HDD13など)から検索して取得する処理が含まれる。クラウド3は、音声で指示された内容を記憶部に履歴情報として保持することができ、この例では「さっきの設定でコピー」の指示を受けているので、記憶部の履歴情報を検索して最終履歴の指示を取得する。「・・・」には、クラウド3において履歴情報から取得された最終履歴の具体的な指示(ここでは一例として「モノクロで3部」とする)が含められる。
制御対象のMFP1では、クラウド3から送信されたジョブの実行命令(動作要求)をマルチデバイスハブ111が受信すると、その実行命令をボイスコントロールサービス112が受け付ける(ステップS601)。そして、ボイスコントロールサービス112は、実行命令を解釈して、対象のアプリケーションの起動(最終履歴の設定値(モノクロ、3部)の反映)を試みる(ステップS602)。
対象のアプリケーション(この例ではアプリケーション113-1)は、操作部16の画面を処理中を示す表示(ぐるぐる画面表示)にしてタッチ入力による受け付けをブロックする(ステップS603)。
そして、アプリケーション113-1は、起動後、パラメータ(モノクロ、3部)を取得する処理を行う(ステップS604)。
ユーザは、端末2から1回目の指示に対して「モノクロ3部の設定でコピーですね。設定変更はありますか?」とフィードバックがあると、続けて2回目の指示として「じゃあ、カラーで」と発話したとする。
ユーザが発話した音声は、1回目と同様に、端末2(取得部211)により音声データとして取得される(ステップS112)。端末2(通信制御部212)は、この「じゃあ、カラーで」の音声データをクラウド3に送信する(ステップS305)。
クラウド3は、送信された「じゃあ、カラーで」の音声データに基づいて指示を解釈し、制御対象のMFP1にジョブの実行(設定変更)を指示する(ステップS306)。また、「カラー3部の設定でコピーですね。他に設定変更はありますか?」という内容の音声データを端末2にフィードバックする(ステップS307)。これにより、端末2が「カラー3部の設定でコピーですね。他に設定変更はありますか?」と音声でフィードバックを行う(ステップS308)。
制御対象のMFP1では、クラウド3から送信されたジョブの実行命令(動作要求)をマルチデバイスハブ111が受信すると、その実行命令をボイスコントロールサービス112が受け付けて実行命令を解釈する(ステップS605)。ここで、ボイスコントロールサービス112は、対象のアプリケーション(この例ではアプリケーション113-1)から前の命令の結果が返ってきていないので、この新たな実行命令をキューイングする(S606)。ステップS606のキューイングの処理は、その後に新たな実行命令があった場合も、受け付けの順序で行う。
対象のアプリケーション(アプリケーション113-1)により1回目の設定が反映され(ステップS607)、対象のアプリケーション(アプリケーション113-1)から反映の結果が返ると(ステップS608)、ボイスコントロールサービス112は、キューイングを行った順序(つまり受け付けた順序)で実行命令を一つ、この場合2番目に指示を受けた「カラー」への設定変更を、対象のアプリケーション(アプリケーション113-1)に指示する(S609)。
対象のアプリケーション(アプリケーション113-1)により2回目の設定が反映され(ステップS610)、対象のアプリケーション(アプリケーション113-1)から反映の結果が返ると(ステップS611)、ボイスコントロールサービス112は、キューイングされている残りの実行命令についても繰り返し同様に実行を指示する。
このように、音声指示が連続で飛んできた場合は、MFP1でキューイングを行って、キューイングした順番に設定や、その設定の変更などを行う。連続で飛んできた音声指示の処理を全て終えると、ぐるぐる画面表示が解除され、最終的に更新された設定で画面が表示される。ユーザは、MFP1の画面で、音声で指示した設定を最終確認することができる。設定の変更がさらに必要であれば、MFP1の画面を直接タッチ入力操作して変更することもできる。ユーザはMFP1の開始ボタン(実行ボタン)を押下することによりMFP1で最終的な設定でコピー出力が行われる。
なお、ここでは、連続で飛んできた音声指示の処理を全て終えると、ぐるぐる画面表示が解除されると説明したが、これは、すべての音声指示の反映が成功した場合である。図16および図17で説明したような、クラウド3において実行不可能であった場合のフィードバックや、MFP1において起動や設定に失敗した場合のMFP1における報知などの処理などが途中で発生する場合がある。そのため、ぐるぐる画面表示は、一つの実行命令について反映成功または反映失敗する度(例えば、対象のアプリケーションがボイスコントロールサービス112に反映結果を返す度)に解除し、対象のアプリケーションが反映処理の際はぐるぐる画面表示にする。これにより、途中で反映に失敗した場合であってもMFP1の画面には、反映に成功したところまでの設定が表示され、その後、ユーザが、その画面にタッチ入力操作を行うことも可能になる。
なお、実施の形態で、キューイングをボイスコントロールサービス112が行うとして説明したが、このキューイングをアプリ側でやってもよい。
(使用例)
MFP1では、1回目の指示の反映中に2回目の指示を受けた場合、1回目の指示が画面(LCD)に反映されたら2回目の指示の反映も即座に行い、最終的に1回目と2回目の指示結果が画面(LCD)に反映される。しかし、1回目の指示の内容によっては失敗した場合でも2回目の指示を実行し、2回目の反映結果のみを画面(LCD)に表示させてもよい。例えば、指示の内容が履歴を使用する場合などで、この場合、履歴が無かった場合に失敗となる。
2回目の指示が失敗した場合は、1回目の指示の反映結果のみが画面(LCD)に表示される。これは図18に示す例では、ユーザがモノクロコピーの権限のみでカラーコピーの権限がない場合などに相当する。モノクロコピーの権限があるので1回目の「モノクロコピーで」の設定は反映されるが、2回目の「カラーで」の設定変更は行われない。
1回目の設定を反映できるようになったタイミングで、アプリがボイスコントロールサービス112に結果を返すとともにキューが貯まっていないかを確認し、キューが貯まっていたら、この時点では画面(LCD)に反映せずに、ぐるぐる表示のままとする。キューが空になったのを確認してから初めて画面(LCD)に反映する。
ユーザ操作による履歴検索中などのぐるぐる画面が表示されている時に音声による指示を行った場合は、音声による指示は失敗する。音声による指示により履歴検索中などのぐるぐる画面が表示されている時はユーザの指示を受け付けない。
(実施の形態の効果)
以上の説明から明らかなように、実施の形態に係る音声操作システムは、端末2に、プラットフォームアプリケーションプログラムとなる操作処理プログラムをインストールし、このアプリがクラウド3との通信を行う。ユーザが端末2に設けられているマイクロホン部29に向かって発話すると、クラウド3がユーザの発話内容を分析し、ユーザから指示された動作を行うようにMFP1を操作する(音声入力操作)。
これにより、複雑な操作を音声で命令することで、タッチパネル27等のGUI(Graphical User Interface)による操作を不要とすることができるため、操作に慣れているユーザであっても、さらに迅速かつ簡単な入力操作を可能とすることができる。また、高齢者または操作に不慣れなユーザであっても、対話による操作サポートにより、例えば複雑なネットワーク設定、高度なジョブの設定または新規アプリの導入等の、ユーザが希望する操作を迅速かつ簡単に実行可能とすることができる。
また、ユーザが発話した内容のテキストに基づいて、ユーザの意図を解釈しているため、ユーザの発話に基づいた処理内容をAIアシスタントが判断できる。
また、ユーザが端末2に音声指示した処理がMFP1で実行されているかどうかを、クラウド3からのフィードバックや、MFP1の報知音や、MFP1の操作画面で確認することができる。このため、ユーザが端末2に音声指示した処理が最後まで完了しなかった場合でも、ユーザは、直ぐに知ることができる。つまり、ユーザが複数の音声指示を行った場合にどこまでの指示がMFP1に反映されたかをユーザが把握することが可能になる。
また、MFP1の操作部16の画面操作により最新の履歴表示を行い、さらに履歴の内容をもとに設定を変更(例えばモノクロからカラーに変更)を行おうとした場合、最新の履歴を表示させるまでの間ユーザ操作がブロックされる。このため、ユーザ操作がブロックされる時間が長くなる。音声操作の場合は、画面操作は行わないため設定変更の指示だけをキューイングしておき最新の履歴が反映されたら即座に設定変更の処理が行える。
また、前に音声指示した処理が長引いて後に音声指示した処理がMFP1で前の指示の処理中に受け付けられた場合でも、後に指示した処理が省略されることなく、キューイングにより順番に処理が反映されるようになる。
最後に、上述の実施の形態は、一例として提示したものであり、本発明の範囲を限定することは意図していない。この新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことも可能である。
このような各実施の形態および各実施の形態の変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。