以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。従ってそれらについての詳細な説明は繰返さない。
<第1の実施の形態>
図1は、本発明の第1の実施の形態の1つにおける音声処理システムの全体概要を示す図である。図1を参照して、音声処理システム1は、MFP(Multi Function Peripheral)100と、スマートスピーカー200,200A,200B,200Cと、サーバー400と、を含む。
MFP100は、画像処理装置の一例である。スマートスピーカー200,200A,200B,200Cは、ジョブ生成装置の一例である。スマートスピーカー200,200A,200B,200Cそれぞれは、MFP100に実行させる処理を定めたジョブを生成し、MFP100は、ジョブを実行する。MFP100は、ネットワーク3と接続されている。ネットワーク3には、アクセスポイント(AP)9、9Aが接続されている。AP9、9Aは、無線通信機能を有する中継装置である。スマートスピーカー200,200Aそれぞれは、AP9と通信することによりネットワーク3に接続され、スマートスピーカー200B,200Cそれぞれは、AP9Aと通信することによりネットワーク3に接続される。このため、スマートスピーカー200,200A,200B,200Cそれぞれは、互いに通信可能であるとともに、MFP100と通信可能である。ネットワーク3は、例えば、ローカルエリアネットワーク(LAN)である。ネットワーク3において、その接続形態は有線または無線を問わない。また、ネットワーク3は、ワイドエリアネットワーク(WAN)、公衆交換電話網(PSTN)、インターネット等であってもよい。スマートスピーカー200,200A,200B,200Cそれぞれの機能およびハードウェア構成は同じなので、ここでは、特に言及しない限りスマートスピーカー200を例に説明する。
ゲートウェイ(G/W)装置7は、ネットワーク3に接続されるとともに、インターネット5に接続される。ゲートウェイ装置7は、ネットワーク3とインターネット5とを中継する。サーバー400は、インターネット5に接続される。このため、MFP100、スマートスピーカー200,200A,200B,200Cそれぞれは、ゲートウェイ装置7を介して、サーバー400と通信可能である。
サーバー400は、音声を発声したユーザーを認証する認証機能を有する。例えば、サーバー400は、予め登録された複数のユーザーそれぞれの声紋を示す声紋情報を登録している。サーバー400は、複数のユーザーの声紋を用いてユーザーを特定する。本実施の形態においては、スマートスピーカー200,200A,200B,200Cは、それぞれで収集された音声の声紋をサーバー400に送信する。サーバー400は、スマートスピーカー200,200A,200B,200Cそれぞれから送信される声紋に基づいて、その声紋のユーザーを特定し、スマートスピーカー200,200A,200B,200Cそれぞれに返信する。
図2は、第1の実施の形態におけるスマートスピーカーのハードウェア構成の概要の一例を示すブロック図である。図2を参照して、スマートスピーカー200は、スマートスピーカー200の全体を制御するための中央演算処理装置(CPU)201と、CPU201が実行するためのプログラムを記憶するROM(Read Only Memory)202と、CPU201の作業領域として使用されるRAM(Random Access Memory)203と、データを不揮発的に記憶するEPROM(Erasable Programmable ROM)204と、CPU201をネットワーク3に接続する通信部205と、情報を表示する表示部206と、ユーザーの操作の入力を受け付ける操作部207と、マイクロフォン208と、スピーカー209と、シリアルインターフェース210と、を含む。
CPU201は、インターネット5に接続されたコンピューターからプログラムをダウンロードしてEPROM204に記憶する。また、ネットワーク3に接続されたコンピューターがプログラムをEPROM204に書込みする場合に、EPROM204にプログラムが記憶される。CPU201は、EPROM204に記憶されたプログラムをRAM203にロードして実行する。
マイクロフォン208は、音声を収集し、収集した音声を電気信号に変換する。マイクロフォン208は、音声から電気信号に変換された音声データをCPU201に出力する。
シリアルインターフェース210は、外部の装置とシリアル通信するためのインターフェースである。ここでは、シリアル通信は、USB(Universal Serial Bus)規格である。シリアルインターフェース210は、USB規格で通信可能な外部装置が接続可能である。CPU111は、シリアルインターフェース210を介して外部装置にアクセス可能である。外部装置は、USBメモリ211、CDドライブ等の記憶装置を含む。ここでは、外部装置をUSBメモリ211とする場合を例に説明する。USBメモリ211は、EPROMなどの半導体メモリと、シリアル通信回路と、を備えている。CPU201は、シリアルインターフェース210に装着されたUSBメモリ211に記録されたプログラムをRAM203にロードして実行する。
なお、CPU201が実行するプログラムを記憶する媒体としては、USBメモリ211に限られず、光ディスク(CD−ROM(Compact Disk ROM)、MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、光カード、マスクROM、であってもよい。ここでいうプログラムは、CPU201により直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
図3は、第1の実施の形態におけるMFPのハードウェア構成の概要を示すブロック図である。図3を参照して、MFP100は、メイン回路110と、原稿を読み取るための原稿読取部130と、原稿を原稿読取部130に搬送するための自動原稿搬送装置120と、原稿読取部130が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部140と、画像形成部140に用紙を供給するための給紙部150と、画像が形成された用紙を処理する後処理部155と、ユーザーインターフェースとしての操作パネル160とを含む。
後処理部155は、画像形成部140により画像が形成された1以上の用紙を並び替えて排紙するソート処理、パンチ穴加工するパンチ処理、ステープル針を打ち込むステープル処理を実行する。
メイン回路110は、CPU111と、通信インターフェース(I/F)部112と、ROM113と、RAM114と、大容量記憶装置としてのハードディスクドライブ(HDD)115と、ファクシミリ部116と、CD−ROM118が装着される外部記憶装置117と、を含む。CPU111は、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、後処理部155および操作パネル160と接続され、MFP100の全体を制御する。
ROM113は、CPU111が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。RAM114は、CPU111がプログラムを実行する際の作業領域として用いられる。さらに、RAM114は、原稿読取部130から連続的に送られてくる画像データを一時的に記憶する。
通信I/F部112は、MFP100をネットワーク3に接続するためのインターフェースである。CPU111は、通信I/F部112を介して、スマートスピーカー200との間で通信し、データを送受信する。また、通信I/F部112は、ネットワーク3を介してインターネット5に接続されたコンピューターと通信が可能である。
ファクシミリ部116は、公衆交換電話網(PSTN)に接続され、PSTNにファクシミリデータを送信する、またはPSTNからファクシミリデータを受信する。ファクシミリ部116は、受信したファクシミリデータを、HDD115に記憶する、または画像形成部140に出力する。画像形成部140は、ファクシミリ部116により受信されたファクシミリデータを用紙にプリントする。また、ファクシミリ部116は、HDD115に記憶されたデータをファクシミリデータに変換して、PSTNに接続されたファクシミリ装置に送信する。
外部記憶装置117は、CD−ROM118が装着される。CPU111は、外部記憶装置117を介してCD−ROM118にアクセス可能である。CPU111は、外部記憶装置117に装着されたCD−ROM118に記録されたプログラムをRAM114にロードして実行する。なお、CPU111が実行するプログラムを記憶する媒体としては、CD−ROM118に限られず、光ディスク、ICカード、光カード、マスクROM、EPROMなどの半導体メモリであってもよい。
また、CPU111が実行するプログラムは、CD−ROM118に記録されたプログラムに限られず、HDD115に記憶されたプログラムをRAM114にロードして実行するようにしてもよい。この場合、ネットワーク3に接続された他のコンピューターが、MFP100のHDD115に記憶されたプログラムを書き換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、MFP100が、ネットワーク3に接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをHDD115に記憶するようにしてもよい。ここでいうプログラムは、CPU111が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
操作パネル160は、MFP100の上面に設けられ、表示部161と操作部163とを含む。表示部161は、例えば、液晶表示装置(LCD)または有機LE(electroluminescence)ディスプレイであり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。操作部163は、タッチパネル165と、ハードキー部167とを含む。タッチパネル165は、表示部161の上面または下面に表示部161に重畳して設けられる。ハードキー部167は、複数のハードキーを含む。ハードキーは、例えば接点スイッチである。タッチパネル165は、表示部161の表示面中でユーザーにより指示された位置を検出する。
本実施の形態における音声処理システム1においては、スマートスピーカー200,200A,200B,200Cが互いに異なる位置に配置される。このため、スマートスピーカー200,200A,200B,200Cそれぞれは、異なるユーザーが発声する音声を収集する。ここでは、ユーザーAとユーザーBとが電話で会話する場合に、ユーザーAが発声する音声がスマートスピーカー200により収集され、ユーザーBが発声する音声がスマートスピーカー200Bにより収集される場合を例に説明する。
図4は、第1の実施の形態におけるスマートスピーカー200が備えるCPU201が有する機能の一例を示すブロック図である。図4に示す機能は、ハードウェアで実現してもよいし、スマートスピーカー200が備えるCPU201に、ROM202、EPROM204またはCD−ROMに記憶されたプログラムを実行させることにより、CPU201で実現してもよい。ここで、スマートスピーカー200が備えるCPU201にジョブ生成プログラムを実行させる場合を例に説明する。
図4を参照して、スマートスピーカー200が備えるCPU201は、音声受付部251と、音声認識部253と、ユーザー特定部255と、ジョブ生成部257と、ジョブ送信部259と、応答部261と、通話者決定部263と、装置決定部265と、音声情報取得部267と、を含む。音声受付部251は、マイクロフォン208が出力する音声データを受け付ける。音声データは、ユーザーが発声している間だけマイクロフォン208から入力される。音声受付部251は、マイクロフォン208から入力される音声データと、その音声データが入力された時刻を示す時刻情報とを音声認識部253およびユーザー特定部255に出力する。
音声認識部253は、音声受付部251から音声データと時刻情報とが入力されるごとに、音声データで特定される音声を認識する。具体的には、音声認識部253は、音声データを文字で構成される音声情報に変換する。音声を認識する技術は公知なので、ここでは説明を繰り返さない。音声認識部253は、音声データを変換した音声情報と時刻情報との組をジョブ生成部257、応答部261および通話者決定部263に出力する。
ユーザー特定部255は、音声受付部251から音声データと時刻情報とが入力されるごとに、音声データで特定される音声を発声したユーザーを特定する。具体的には、ユーザー特定部255は、サーバー400に音声データから抽出される声紋を送信し、サーバー400にユーザーの特定を依頼する。なお、音声を発声したユーザーを特定する技術は公知なので、ここでは説明を繰り返さない。サーバー400は、音声データのユーザーを特定する場合、そのユーザーを識別するためのユーザー識別情報を返信するので、ユーザー特定部255は、サーバー400により特定されたユーザーのユーザー識別情報と時刻情報との組をジョブ生成部257および応答部261に出力する。ここでは、ユーザー特定部255は、ユーザーAを特定する。なお、スマートスピーカー200が認証機能を有する場合には、ユーザー特定部255が音声データの音声を発声したユーザーを特定してもよい。
ユーザー特定部255により特定されるユーザーと、他のスマートスピーカー200A,200B,200Cのいずれかにより特定されるユーザーとが同一の場合がある。例えば、スマートスピーカー200とスマートスピーカー200Aとの距離が所定の距離以下の場合、スマートスピーカー200とスマートスピーカー200Aとが一人のユーザーが発声した音声を同時に収集する場合がある。この場合、スマートスピーカー200とスマートスピーカー200Aそれぞれは、サーバー400から調停指示を受信する。サーバー400がスマートスピーカー200に送信する調停指示は、スマートスピーカー200Aの装置識別情報を含み、サーバー400がスマートスピーカー200Aに送信する調停指示は、スマートスピーカー200の装置識別情報を含む。
スマートスピーカー200とスマートスピーカー200Aそれぞれは、収集された音声の音量が最大の装置でユーザーを特定するようにする。具体的には、ユーザー特定部255は、スマートスピーカー200Aからスマートスピーカー200Aで収集された音声の音量を取得し、自装置で収集された音声の音量と比較する。ユーザー特定部255は、自装置の音量がスマートスピーカー200Aから取得された音量より大きければユーザーを特定するが、自装置の音量がスマートスピーカー200Aから取得された音量より小さければユーザーを特定しない。また、ユーザー特定部255は、自装置の音量がスマートスピーカー200Aから取得された音量と同じ場合、スマートスピーカー200Aとの間でいずれか一方でユーザーを特定するようにする。例えば、ユーザー特定部255は、自装置がユーザーを特定する場合には、スマートスピーカー200Aにユーザーの特定を禁止する禁止信号を送信し、自装置がユーザーを特定する前にスマートスピーカー200Aからに禁止信号を受信する場合にユーザーを特定しない。
通話者決定部279は、音声認識部253から入力される音声情報に基づいて、音声を発したユーザーが会話する相手方のユーザーを通話者として決定する。通常、ユーザーが電話等で会話する場合、相手方を確認するなどのために通話の相手方の名前、呼称等を発声する。通話者決定部279は、音声情報から予め登録されたユーザーの名前または呼称が抽出される場合、抽出された名前または呼称のユーザーを通話者に決定する。通話者決定部279は、通話者に決定されたユーザーのユーザー識別情報を装置決定部265に出力する。ここでは、ユーザーAがユーザーBの名前を発声する場合を例に説明する。
装置決定部265は、他のスマートスピーカー200A,100B,200Cのうちから通話者の音声を集音する装置をペアリング装置に決定する。通話者のユーザー識別情報を含む音声を収集した装置が第1装置であり、通話者の音声を集音する装置が第2装置である。例えば、装置決定部265は、サーバー400に通話者の音声を収集する装置を問い合わせることにより、通話者の音声を収集する装置を特定する。サーバー400への問い合わせは、通話者のユーザー識別情報を含む。サーバー400がスマートスピーカー200,200A,100B,200Cそれぞれから受信される声紋に基づいて、スマートスピーカー200,200A,100B,200Cそれぞれに対してユーザーを特定している。このため、サーバー400は、スマートスピーカー200,200A,100B,200Cのうちで、ユーザー識別情報で識別されるユーザーが発声する音声を収集している装置を特定することができる。装置決定部265は、サーバー400により特定された装置をペアリング装置に決定する。装置決定部265は、ペアリング装置を識別するための装置識別情報を音声情報取得部267に出力する。ここでは、ユーザーBの音声をスマートスピーカー200Bが収集するので、装置決定部265は、スマートスピーカー200Bをペアリング装置に決定する。装置決定部265は、ペアリング装置であるスマートスピーカー200Bに音声情報の送信を依頼する。
応答部261は、自装置がペアリング装置の場合に機能する。換言すれば、応答部261は、通信部205が他のスマートスピーカー200A,200B,200Cのいずれかから音声情報の送信が依頼される場合に機能する。応答部261は、装置決定部265が音声認識部253から音声情報と時刻情報との組が入力され、ユーザー特定部255からユーザー識別情報と時刻情報との組が入力される。応答部261は、通信部205が他のスマートスピーカー200A,200B,200Cのいずれかから音声情報の送信が依頼される場合、その後に、時刻情報と、その時刻情報と組になる音声情報と、その時刻情報と組になるユーザー識別情報とを、スマートスピーカー200A,200B,200Cのうち音声情報の送信を依頼してきた装置に送信する。
なお、装置決定部265は、通信部205を制御して、スマートスピーカー200A,100B,200Cそれぞれに問合せコマンドを送信し、スマートスピーカー200A,100B,200Cのいずれかから応答を受信する場合に、応答してきた装置をペアリング装置に決定してもよい。問合せコマンドは、通話者のユーザー識別情報を含む。
応答部261は、通信部205が他のスマートスピーカー200A,200B,200Cのいずれかから問合せコマンドを受信する場合に機能する。応答部261は、装置決定部265が音声認識部253から音声情報と時刻情報との組が入力され、ユーザー特定部255からユーザー識別情報と時刻情報との組が入力される。応答部261は、通信部205が他のスマートスピーカー200A,200B,200Cのいずれかから問合せコマンドを受信する場合、問合せコマンドに含まれるユーザー識別情報とユーザー特定部255から入力されるユーザー識別情報とが一致すれば、問合せコマンドを送信してきた装置に応答する。応答部261は、問合せコマンドに応答する場合、その後に、時刻情報と、その時刻情報と組になる音声情報と、その時刻情報と組になるユーザー識別情報とを問合せコマンドを送信してきた装置に送信する。
ジョブ生成部257は、音声認識部253から音声情報と時刻情報との組が入力され、ユーザー特定部255からユーザー識別情報と時刻情報との組が入力される。ジョブ生成部257は、音声情報と時刻情報との組の複数とユーザー識別情報と時刻情報との組の複数とが入力される場合がある。ジョブ生成部257は、複数の音声情報を区別するために時刻情報を用いる。
ジョブ生成部257は、それぞれと組になる時刻情報が同じユーザー識別情報と音声情報とを関連付ける。換言すれば、ジョブ生成部257は、音声とその音声を発声したユーザーとを関連付ける。具体的には、ジョブ生成部257は、音声から変換された音声情報と、その音声を発声したユーザーのユーザー識別情報と、音声が発声された時刻を示す時刻情報と、を含む音声レコードを生成し、音声レコードをEPROM204に記憶された音声テーブルに追加する。
音声情報取得部267は、装置決定部265から装置識別情報が入力された後、通信部205が装置識別情報で特定されるペアリング装置から受信される時刻情報と、音声情報とユーザー識別情報とを含む音声レコードを生成し、音声レコードをEPROM204に記憶された音声テーブルに追加する。
ここでは、ペアリング装置をスマートスピーカー200Bとしているので、音声テーブルには、自装置であるスマートスピーカー200で収集された音声に対応する音声レコードと、ペアリング装置であるスマートスピーカー200Bで収集された音声に対応する音声レコードとが登録される。スマートスピーカー200で収集された音声に対応する音声レコードは、ユーザーAのユーザー識別情報を含み、スマートスピーカー200Bで収集された音声に対応する音声レコードは、ユーザーBのユーザー識別情報を含む。
ジョブ生成部257は、音声テーブルに登録された音声情報に基づいてMFP100に実行させる処理とその処理を実行するための条件と定めたジョブを生成する。ジョブ生成部257は、処理決定部271と、通常ジョブ生成部273と、依頼ジョブ生成部275と、キーワード抽出部277と、を含む。
処理決定部271は、音声情報に基づいて設定情報を決定する。設定情報は、MFP100に実行させる処理とその処理を実行するための条件とを示す情報である。処理決定部271は、音声情報がデータを識別するためのファイル名を含む場合、音声情報に含まれるファイル名で特定されるデータを処理の対象となるデータを示す設定情報に決定する。
キーワード抽出部277は、EPROM204に予め記憶されたキーワードテーブルを用いて、音声情報からキーワードを抽出する。キーワードテーブルは、設定情報にその設定情報に関連するキーワードを関連付ける。キーワードは、設定情報に関連する関連情報の1つである。
図5は、キーワードテーブルの一例を示す図である。キーワードテーブルは、キーワードと設定情報とを関連付ける複数のキーワードレコードを含む。設定情報は、MFP100に実行させる処理またはMFP100が処理を実行する条件を定める。キーワードレコードは、キーワードの項目と設定情報の項目とを含む。キーワードレコードにおいて、キーワードの項目にはキーワードが設定され、設定情報の項目には処理の名称または/および処理を実行する条件が設定される。キーワードテーブルが、キーワードとMFP100に実行させる処理とを関連付ける一例としては、キーワード「スキャン」を含むキーワードレコードは、キーワード「スキャン」に対してMFP100に原稿を読み取らせるスキャン処理を関連付ける。キーワードテーブルは、1つのキーワードに対して処理と、その処理を実行するための条件とを関連付ける場合がある。例えば、キーワード「2in1」を含むキーワードレコードは、キーワード「2in1」に対して複数の画像を合成する合成処理と、合成処理を実行する条件として合成の元になる画像の数が2つであることを関連付ける。キーワードテーブルは、1つのキーワードに対して複数の処理を関連付ける場合がある。例えば、キーワード「コピー」を含むキーワードレコードは、キーワード「コピー」に対してコピー処理を関連付ける。コピー処理は、MFP100に原稿を読み取らせるスキャン処理と用紙に画像を形成するプリント処理とを含む。
キーワードテーブルが、キーワードとMFP100が処理を実行する条件を関連付ける一例としては、キーワード「カラー」に対してMFP100が実行するプリント処理の条件としてフルカラーを関連付ける。また、別の一例として、キーワード「太郎」に対して、MFP100がデータを送信する送信処理を実行する条件としてユーザーに対して割り当てられた宛先情報である電子メールアドレス「taro@aaa.cpm」を関連付ける。宛先情報は、電子メールアドレスの他に、ファクシミリ番号、IPアドレスが用いられる。なお、キーワード「太郎」は予め登録されたユーザーの名称を示す。
図4に戻って、キーワード抽出部277は、音声情報とキーワードテーブルに設定されている複数のキーワードとを比較し、音声情報の少なくとも一部と同一または類似する部分を含むキーワードが存在すれば、そのキーワードが設定されたキーワードレコードを抽出する。キーワード抽出部277は、抽出されたキーワードレコードに設定された設定情報を決定し、決定された設定情報を処理決定部271に出力する。
処理決定部271は、キーワード抽出部277により決定された設定情報に基づいて、MFP100に実行させる処理を定めたジョブを生成する。具体的には、処理決定部271は、設定情報で定まる処理を設定情報で定まる条件でMFP100に実行させるジョブを生成する。
例えば、処理決定部271は、音声情報が「コピー」および「フルカラー」のキーワードを含む場合、キーワードテーブルによりキーワード「コピー」に関連付けられたスキャン処理およびプリント処理を定める設定情報を決定し、キーワード「フルカラー」に関連付けられたフルカラーでスキャン処理およびプリント処理を実行する条件を定める設定情報を決定する。処理決定部271は、原稿をフルカラーで読み取るスキャン処理と、スキャン処理が実行されて出力されるフルカラーの画像データの画像をフルカラーで用紙に形成するプリント処理とをMFP100に実行させるジョブを決定する。
また、処理決定部271は、音声情報が「送る」および「Taro」のキーワードを含む場合、キーワードテーブルによりキーワード「送る」に関連付けられたスキャン処理およびデータ送信処理が特定され、キーワードテーブルによりキーワード「Taro」に関連付けられた宛先を示す設定情報が特定される。この場合、処理決定部271は、原稿をモノクロで読み取るスキャン処理と、スキャン処理が実行されて出力されるモノクロの画像データを、名称がTaroのユーザーに対して登録された電子メールアドレス宛ての電子メールに添付して送信するデータ送信処理と、をMFP100に実行させるジョブを生成する。
なお、処理決定部271およびキーワード抽出部277がキーワードテーブルを用いて音声情報から設定情報の決定する例を説明したが、ニューラルネットワークなどを用いたディープラーニング技術を採用して、音声情報と設定情報との関係を学習したモデルを生成しておき、そのモデルを用いて音声情報から設定情報を決定してもよい。
処理決定部271は、ジョブを生成する場合、そのジョブを生成するために用いた1以上の音声情報とそれぞれ組になる1以上のユーザー識別情報を決定する。例えば、第1ユーザーのユーザー識別情報と組になる1以上の音声情報に基づいてジョブが生成される場合、第1ユーザーのユーザー識別情報を決定する。第1ユーザーのユーザー識別情報と組になる1以上の音声情報と第2ユーザーのユーザー識別情報と組になる1以上の音声情報とに基づいてジョブが生成される場合、第1ユーザーのユーザー識別情報と第2ユーザーのユーザー識別情報とを決定する。処理決定部271は、ジョブと、決定された1以上のユーザー識別情報との組を依頼ジョブ生成部275および通常ジョブ生成部273に出力する。ここでは、自装置であるスマートスピーカー200が集音した音声を発声したユーザーAが第1ユーザーであり、ペアリング装置であるスマートスピーカー200Bが集音した音声を発声したユーザーBが第2ユーザーである。
依頼ジョブ生成部275は、処理決定部271からジョブと、1以上のユーザー識別情報との組が入力され、依頼ジョブを生成する。依頼ジョブは、依頼者である第1ユーザーが許諾者である第2ユーザーに依頼した作業を第2ユーザーが実行するために、第2ユーザーがMFP100に実行させるジョブである。換言すれば、依頼ジョブは、第2ユーザーによってMFP100に実行が指示されるジョブである。このため、依頼ジョブは、処理決定部271から入力されるジョブに、MFP100がジョブにより定められた処理を実行するための開始条件として第2ユーザーによる指示が設定されたジョブである。開始条件として設定される指示は、認証されるために第2ユーザーが入力する操作を含む。
依頼ジョブ生成部275は、1以上の音声情報にそれぞれ含まれるユーザー識別情報が複数の場合であって、音声認識部253から入力される1以上の音声情報のうちに依頼文字列を含む音声情報が存在する場合に依頼ジョブを生成する。依頼文字列は、他人に作業を依頼する場合に用いる語を含む。例えば、依頼文字列は、「お願いします」、「して下さい」、「しろ」等を含む。依頼文字列は予め定めておけばよい。また、CPU201にMFP100を使用する複数のユーザー間の会話を学習させてCPU201が依頼文字列を決定してもよい。
ただし、依頼ジョブ生成部275は、音声認識部253から入力される1以上の音声情報のうちに許諾文字列を含む文字情報が存在しない場合は依頼ジョブを生成しない。許諾文字列は、他人からの依頼を受ける場合に用いる語を含む。許諾文字列は、「了解しました」、「わかりました」、「引き受けます」等を含む。許諾文字列は予め定めておけばよい。また、許諾文字列は、MFP100を使用する複数のユーザー間の会話を学習することにより決定されてもよい。
依頼ジョブ生成部275は、依頼文字列を含む音声情報が存在する場合、その音声情報と組になるユーザー識別情報を第1ユーザーのユーザー識別情報に特定する。ここでは、ユーザーAがユーザーBに電話で作業を依頼するので、ユーザーAが第1ユーザーに決定される。また、依頼ジョブ生成部275は、許諾文字列を含む音声情報が存在する場合、その音声情報と組になるユーザー識別情報を第2ユーザーのユーザー識別情報に特定する。ここでは、ユーザーBが第2ユーザーに決定される。依頼ジョブ生成部275は、処理決定部271から入力されるジョブに、MFP100がそのジョブにより定められた処理を実行するための開始条件として第2ユーザーによる指示を受け付けることを設定することにより、依頼ジョブを生成する。第2ユーザーによる指示の受け付けは、第2ユーザーが認証されることを含む。依頼ジョブ生成部275は、第1ユーザーのユーザー識別情報と依頼ジョブとの組をジョブ送信部259に出力する。
依頼ジョブ生成部275は、許諾文字列を含む音声情報が存在する場合に、その音声情報と組になる時刻情報で示される時刻よりも前の時刻を示す時刻情報と組になる音声情報を決定する。そして、依頼ジョブ生成部275は、決定された音声情報から依頼文字列を含む文字情報を抽出する。これにより、許諾文字列を含む音声情報が存在する場合に、依頼ジョブを生成すればよいので、音声情報のすべてからキーワードを抽出する必要がなく、負荷をできるだけ小さくすることができる。この場合は、許諾文字列を含む音声情報が存在することが確認された後にキーワードの抽出およびジョブの生成を開始するのが好ましい。
依頼ジョブ生成部275は、処理決定部271からジョブが入力されかつ依頼ジョブを生成しない場合、通常ジョブ生成部273に通常生成指示を出力する。通常ジョブ生成部273は、処理決定部271からジョブと1以上のユーザー識別情報との組が入力される。通常ジョブ生成部273は、依頼ジョブ生成部275から通常生成指示が入力される場合、処理決定部271から入力されるジョブと1以上のユーザー識別情報とに基づいて通常ジョブを生成する。通常ジョブは、依頼ジョブ以外のジョブである。
通常ジョブ生成部273は、処理決定部271から入力される1以上のユーザー識別情報のうち指示文字列を含む音声情報により関連付けられたユーザー識別情報のユーザーを、指示ユーザーに決定する。指示文字列は、処理の内容を指示する語であり。例えば、指示文字列は、「したい。」、「する。」等である。また、通常ジョブ生成部273は、処理決定部271から入力される1以上のユーザー識別情報のうち、キーワードの数が最大となるユーザー識別情報で特定されるユーザーを指示ユーザーに決定してもよい。この場合、処理決定部271がジョブを生成する際に用いた複数のキーワードをそれぞれ含む複数の音声情報を用いて、ユーザー識別情報ごとにそれに対応するキーワードを集計し、ユーザー識別情報に対するキーワードの数を求めるようにすればよい。通常ジョブ生成部273は、処理決定部271から入力されるジョブに、MFP100がジョブにより定められた処理を実行するための開始条件として指示ユーザーによる指示を設定することにより、通常ジョブを生成する。指示ユーザーによる指示の受け付けは、指示ユーザーが認証されることを含む。通常ジョブ生成部273は、通常ジョブをジョブ送信部259に出力する。これにより、ジョブ送信部259により通常ジョブがMFP100に送信される。MFP100においては、スマートスピーカー200から通常ジョブを受信すると通常ジョブをHDD115に記憶し、指示ユーザーが操作部163を操作すると通常ジョブを実行可能な状態に設定する。
ジョブ送信部259は、MFP100にジョブを送信する。ジョブ送信部259は、依頼ジョブ生成部275から依頼ジョブと第1ユーザーのユーザー識別情報との組が入力される場合、依頼ジョブと第1ユーザーのユーザー識別情報との組をMFP100に送信する。また、ジョブ送信部259は、通常ジョブ生成部273から通常ジョブが入力される場合、通常ジョブをMFP100に送信する。
ジョブ送信部259は、操作ユーザー通知部281を含む。操作ユーザー通知部281は、依頼ジョブと第1ユーザーのユーザー識別情報との組がMFP100に送信される場合、第2ユーザーに依頼ジョブがMFP100で実行可能なことを通知する。第2ユーザーは、依頼ジョブで開始条件として設定されている第2ユーザーのユーザー識別情報によって特定される。例えば、操作ユーザー通知部281は、通信部205を制御して、MFP100に実行可能な依頼ジョブが存在することを示すメッセージを含む電子メールを、第2ユーザーに送信する。第2ユーザーの電子メールアドレスは予め記憶されている。なお、通知方法は、電子メールに限らず、メッセージ送信であってもよい。これにより、第2ユーザーに、MFP100に依頼ジョブを実行させるための操作を入力すればよいことを通知することができる。
図6は、第1の実施の形態におけるMFP100が備えるCPU111が有する機能の一例を示すブロック図である。図6に示す機能は、ハードウェアで実現してもよいし、MFP100が備えるCPU111が、ROM113、HDD115、CD−ROM118に記憶されたジョブ制御プログラムを実行することにより、CPU111により実現される機能である。ジョブ制御プログラムは、ジョブ生成プログラムの一部である。図6を参照して、CPU111は、操作ユーザー特定部51と、設定部53と、ジョブ制御部55と、依頼者通知部57と、を含む。
ジョブ制御部55は、ジョブ受信部81と、関連付部83と、ジョブ実行部85と、を含む。ジョブ受信部81は、通信I/F部112を制御し、スマートスピーカー200が送信するジョブを受信する。ジョブ受信部81は、スマートスピーカー200から依頼ジョブと第1ユーザーのユーザー識別情報との組を受信する場合、依頼ジョブをHDD115に記憶する。また、ジョブ受信部81は、スマートスピーカー200から通常ジョブを受信する場合、通常ジョブをHDD115に記憶する。
関連付部83は、通信I/F部112がスマートスピーカー200から依頼ジョブと第1ユーザーのユーザー識別情報との組を受信する場合、依頼ジョブと第1ユーザーとを関連付ける。具体的には、関連付部83は、HDD115に記憶された依頼ジョブを識別するためのジョブ識別情報と第1ユーザーのユーザー識別情報とを含むユーザーレコードを生成し、HDD115に記憶する。
ジョブ実行部85は、ハードウェア資源を制御してジョブを実行する。ハードウェア資源は、通信I/F部112、HDD115、ファクシミリ部116、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、後処理部155および操作パネル160を含む。ジョブは、例えば、コピージョブ、プリントジョブ、スキャンジョブ、ファクシミリ送信ジョブ、データ送信ジョブを含む。なお、ジョブ実行部85が実行可能なジョブは、これらに限定されることなく、他のジョブを含んでもよい。コピージョブは、原稿読取部130に原稿を読み取らせるスキャン処理と、原稿読取部130が原稿を読み取って出力するデータの画像を画像形成部140に形成させるプリント処理とを含む。プリントジョブは、画像形成部140に、HDD115に記憶されたデータ、通信I/F部112が外部から受信するプリントデータの画像を用紙に形成させるプリント処理を含む。スキャンジョブは、原稿読取部130に原稿を読み取らせるスキャン処理と、原稿読取部130が原稿を読み取って出力する画像データを出力する出力処理を含む。出力処理は、データをHDD115に記憶させるデータ記憶処理と、データを通信I/F部112に外部に送信するデータ送信処理を含む。ファクシミリ送信ジョブは、原稿読取部130に原稿を読み取らせるスキャン処理と、原稿読取部130が原稿を読み取って出力するデータをファクシミリ部116に送信させるファクシミリ送信処理とを含む。データ送信ジョブは、HDD115に記憶されたデータまたは原稿読取部130が原稿を読み取って出力するデータを、通信I/F部112を制御して他のコンピューターに送信するデータ送信処理を含む。
操作ユーザー特定部51は、MFP100を操作する操作ユーザーを特定する。例えば、ユーザーが操作パネル160を操作する場合、そのユーザーがユーザー識別情報を操作部163に入力する場合に操作部163に入力されたユーザー識別情報で識別されるユーザーを操作ユーザーとして特定する。また、MFP100がカードリーダーを備える場合、操作ユーザー特定部51は、カードリーダーがカードに記憶されたユーザー識別情報を読み取る場合、ユーザーがカードリーダーにカードに記憶されたユーザー識別情報を読み取らせる操作を受け付ける。操作ユーザー特定部51は、カードリーダーが読み取ったユーザー識別情報で識別されるユーザーを操作ユーザーとして特定する。カードリーダーは、磁気カードリーダーであってもよいし、NFC(Near field communication)規格で通信する無線通信装置であってもよい。操作ユーザー特定部51は、操作ユーザーを特定する場合、操作ユーザーのユーザー識別情報を設定部53に出力する。
設定部53は、操作ユーザー特定部51から操作ユーザーのユーザー識別情報が入力される場合、そのユーザー識別情報のユーザーによる指示が開始条件に設定されている依頼ジョブまたは通常ジョブがHDD115に記憶されているか否かを判断する。そのような依頼ジョブまたは通常ジョブがHDD115に記憶されている場合、設定部53は、その依頼ジョブまたは通常ジョブを実行可能な状態に設定する。特に、設定部53は、依頼ジョブを実行可能な状態に設定する場合、第2ユーザーによる指示を受け付けるための設定ボタンを表示部161に表示する。設定ボタンは、依頼ジョブを実行するコマンドが割り当てられる。
図7は、ログイン画面の一例を示す図である。図7に示すログイン画面500は、第2ユーザーが操作部163を操作して、MFP100によりユーザーが特定される場合に表示部161に表示される。図7を参照して、ログイン画面500は、種々の処理を選択するための複数の選択ボタン503と設定ボタン501とを含む。設定ボタン501は、第2ユーザーが操作部163を操作してMFP100により第2ユーザーが特定される場合に表示される。したがって、HDD115に依頼ジョブが記憶されていない場合には、ログイン画面500に設定ボタン501は含まれない。設定ボタン501は、「作業依頼」の文字列と、「(××さん)」の文字列を含む。「(××さん)」の文字列は第1ユーザーのユーザー識別情報である第1ユーザー名を含む。したがって、設定ボタン501を見る第2ユーザーは、設定ボタン501が、第1ユーザーにより依頼された作業を遂行するための依頼ジョブを実行可能な状態にするためのボタンであることを知ることができる。
図6に戻って、設定部53は、設定ボタン501を表示部161に表示するのに代えて、HDD115に記憶されている1以上のジョブを識別するためのジョブ識別情報を選択可能に表示部161に表示してもよい。この場合、HDD115に依頼ジョブまたは通常ジョブが記憶されている場合、表示部161に依頼ジョブおよび通常ジョブのジョブ識別情報が選択可能に表示される。設定部53は、ユーザーが依頼ジョブのジョブ識別情報を選択する場合、設定ボタン501が指示された場合と同様に、依頼ジョブまたは通常ジョブを実行可能な状態に設定する。
設定部53は、実行可能に設定したジョブの設定値を変更する操作を受け付ける場合、ジョブの設定値を変更する。これにより、第2ユーザーは、依頼ジョブに誤って設定されている設定値を正しい値に変更することができ、また、設定されていない設定値を追加して設定することができる。
また、第2ユーザーによる指示が開始条件に設定されている依頼ジョブが実行されることなくHDD115に記憶されてから所定の時間が経過する場合がある。この場合に設定部53は、操作ユーザー特定部51から第2ユーザーのユーザー識別情報が入力される場合であっても、依頼ジョブを実行可能な状態に設定しない。具体的には、設定部53は、依頼ジョブの実行のユーザーによる指示を受け付けるための設定ボタン501を表示部161に表示しない。所定時間を経過しても依頼ジョブが実行されていない場合は、依頼ジョブの実行が不要となった確率が高く、不要となった依頼ジョブがHDD115に記憶された状態が継続しないようにするためである。不要なデータを削除することにより記憶資源を有効に利用することができる。
ジョブ制御部55に含まれるジョブ実行部85は、第2ユーザーが操作部163に入力する依頼ジョブの実行を指示する実行操作を受け付ける場合、依頼ジョブを実行する。また、ジョブ実行部85は、指示ユーザーが操作部163に入力する通常ジョブの実行操作を受け付ける場合、通常ジョブを実行する。指示ユーザーは、通常ジョブのジョブ識別情報と関連付部83により関連付けられたユーザー識別情報で特定される。
依頼者通知部57は、依頼ジョブが実行されることに応じて、依頼ジョブが実行されたことを第1ユーザーに通知する。第1ユーザーは、依頼ジョブのジョブ識別情報と関連付部83により関連付けられたユーザー識別情報で特定される。依頼者通知部57は、第1ユーザーに対して予め登録された方法で依頼ジョブが実行されたことを通知する。例えば、依頼者通知部57は、第2ユーザーにより依頼ジョブが実行されたことを示すメッセージを、第1ユーザーに対して予め登録された宛先に電子メールで送信する。
図8は、第1の実施の形態におけるジョブ生成の流れの一例を示すフローチャートである。ジョブ生成は、スマートスピーカー200が備えるCPU201がROM202、EPROM204に記憶されたジョブ制御プログラムを実行することにより、CPU201により実行される処理である。ジョブ制御プログラムは、ジョブ生成プログラムの一部である。
図8を参照して、スマートスピーカー200が備えるCPU201は、音声を受け付けたか否かを判断する。具体的には、CPU201は、マイクロフォン208が出力する音声データを受け付ける場合、音声を受け付けたと判断する。CPU201は、マイクロフォン208から音声データを受け付けたならば処理をステップS02に進めるが、そうでなければ処理をステップS07に進める。ここでは、ユーザーAの音声を受け付ける場合を例に説明する。
ステップS02においては、CPU201は、音声認識し、処理をステップS03に進める。具体的には、CPU201は、ステップS01において受け付けられた音声データで特定される音声を音声認識し、音声を文字で構成される音声情報に変換する。ステップS03においては、音声から変換された音声情報が決定され、処理はステップS04に進む。
ステップS04においては、ユーザー特定処理が実行され、処理はステップS05に進む。ユーザー特定処理の詳細は後述するが、音声データで特定される音声を発声したユーザーを特定する処理である。ここでは、ユーザーAが特定される。ステップS05においては、CPU201は、音声レコードを生成し、処理をステップS06に進める。具体的には、CPU201は、ステップS03で決定された音声情報とステップS04において特定されたユーザーのユーザー識別情報と、音声データが受け付けられた日時と、を含む音声レコードを生成する。音声レコードは、音声から変換された音声情報とその音声を発声したユーザーのユーザー識別情報と、その音声が発声された日時と、を関連付ける情報である。ステップS06においては、音声レコードがHDD115に記憶された音声テーブルに追加され、処理はステップS09に進む。
ステップS09においては、ステップS03において決定された音声情報がユーザー識別情報を含むか否かが判断される。音声情報がユーザー識別情報を含むならば処理はステップS10に進むが、そうでなければ処理はステップS11に進む。ここでは、ユーザーAがユーザーBの名前を通話で発声するので、ユーザー識別情報としてユーザーBの名前が音声情報から抽出される。ステップS10においては、ペアリング処理が実行され、処理はステップS11に進む。ペアリング処理の詳細は後述するが、ステップS09において音声情報から抽出されるユーザー識別情報で特定されるユーザーが発声した音声を収集する装置をペアリング装置として決定する処理である。ここでは、スマートスピーカー200Bがペアリング装置に決定される。
一方、ステップS07においては、ペアリング装置が存在するか否かを判断する。ステップS10が実行されてペアリング装置が決定されているならば処理はステップS08に進むが、そうでなければ処理はステップS01に戻る。ステップS08においては、ペアリング装置から音声情報とユーザー識別情報と時刻情報とが取得され、処理はステップS01に戻る。具体的には、CPU111は、ペアリング装置であるスマートスピーカー200Bに音声情報の送信を要求する。ペアリング装置であるスマートスピーカー200Bは、音声情報の送信が要求されると、音声情報とユーザー識別情報と時刻情報とを返信するので、CPU111は、それらを受信する場合、それらを含む音声レコードをHDD115に記憶された音声テーブルに追加する。
ステップS11以降の処理が実行される場合、音声テーブルに登録された音声レコードが処理対象となる。具体的には、ステップS11以降の処理では、ステップS11が実行される前の段階までに、音声テーブルに新たに登録された音声レコードが処理対象となる。したがって、音声テーブルに登録されている音声レコードのすべてが処理対象となる。音声テーブルには、ステップS03が実行されてスマートスピーカー200で収集されたユーザーAが発声した音声から決定された音声情報を含む音声レコードと、ステップS08が実行されてペアリング装置であるスマートスピーカー200Aで収集されたユーザーBが発声した音声から決定された音声情報を含む音声レコードとが登録されている。
ステップS11においては、音声情報が許諾文字列を含むか否かが判断される。ステップS07において取得された音声情報、換言すれば、ペアリング装置であるスマートスピーカー200Bで収集された音声から決定された音声情報が許諾文字列を含む確率が高い。許諾文字列は、他人からの依頼を受ける場合に用いる言葉を含む文字列であり、予め定められている。具体的には、許諾文字列は、「了解」、「解る」「引き受け」等を含む。ステップS08において取得された音声情報が許諾文字列を含むならば処理はステップS12に進むが、そうでなければ処理はステップS17に進む。
ステップS12においては、許諾文字列と組みになるユーザー識別情報のユーザーが第2ユーザーに決定され、処理はステップS13に進む。処理がステップS13に処理が進む場合、処理対象の音声情報が許諾文字列を含む。このため、第2ユーザーは、許諾文字列を発声したユーザーであり、第1ユーザーからの作業の依頼を受諾する受諾者である。ここでは、ユーザーBが第2ユーザーに決定される。
ステップS13においては、ジョブ生成サブ処理が実行され、処理はステップS14に進む。ジョブ生成サブ処理の詳細は後述するが、EPROM204に記憶された音声テーブルに含まれる1以上の音声レコードに基づいてジョブを生成するとともに、第2ユーザーに作業を依頼した第1ユーザーを決定する処理である。ここでは、ユーザーAが第1ユーザーに決定される。ステップS14においては、依頼ジョブが生成され、処理はステップS15に進む。ジョブ生成サブ処理が実行されることにより生成されるジョブと、ステップS12において決定された第2ユーザーとに基づいて依頼ジョブが生成される。依頼ジョブは、MFP100に依頼ジョブで定められる処理を実行させる開始条件として、第2ユーザーによる操作を受け付けることが設定されたジョブである。具体的には、ステップS13において生成されたジョブに、開始条件としてステップS12において決定された第2ユーザーによる操作を受け付けることが設定されることにより、依頼ジョブが生成される。次のステップS15においては、CPU201は、通信部205を制御して、依頼ジョブをMFP100に送信し、処理をステップS16に進める。ステップS16においては、依頼ジョブの存在が第2ユーザーに通知され、処理は終了する。具体的には、MFP100に実行可能な依頼ジョブが蓄積されていることを示すメッセージを含み、宛先アドレスに第2ユーザーであるユーザーBの電子メールアドレスを設定した電子メールは生成され、通信部205によりその電子メールが送信される。
一方、ステップS17においては、音声情報が指示文字列を含むか否かが判断される。音声情報が指示文字列を含むならば処理はステップS18に進むが、そうでなければ処理はステップS01に戻る。ステップS18においては、指示文字列を発声したユーザーが指示ユーザーに決定され、処理はステップS19に進む。処理対象の音声情報に関連付けられたユーザー識別情報で特定されるユーザーが、指示文字列を発声した指示ユーザーに決定される。処理がステップS18に処理が進む場合、ステップS03において決定された音声情報、換言すれば、スマートスピーカー200で収集された音声から決定された音声情報が許諾文字列を含む確率が高い。ステップS19においては、ジョブ生成サブ処理が実行され、処理はステップS16に進む。
ステップS20においては、通常ジョブが生成され、処理はステップS21に進む。通常ジョブは、MFP100に通常ジョブで定められる処理を実行させる開始条件として、指示ユーザーによる操作を受け付けることが設定されたジョブである。具体的には、ステップS19において生成されたジョブを、開始条件としてステップS18において決定された指示ユーザーによる操作を受け付けることが設定されることにより、通常ジョブが生成される。次のステップS21においては、通信部205を制御して、通常ジョブがMFP100に送信され、処理はステップS22に進む。ステップS22においては、通常ジョブの存在が指示ユーザーに通知され、処理は終了する。具体的には、MFP100に実行可能な通常ジョブが蓄積されていることを示すメッセージを含み、宛先アドレスに指示ユーザーの電子メールアドレスが設定された電子メールが生成され、通信部205によりその電子メールが送信される。
図9は、ユーザー特定処理の流れの一例を示すフローチャートである。ユーザー特定処理は、図8のステップS04において実行される処理である。ユーザー特定処理が実行される前の段階で、音声が受け付けられている。図9を参照して、CPU201は、音声を発声したユーザーをサーバー400に問い合わせる(ステップS31)。音声から声紋を抽出し、抽出された声紋をサーバー400に送信することにより、その声紋のユーザーが誰であるかを問い合わせる。サーバー400は、問合せに応じて、声紋で特定されるユーザーのユーザー識別情報を返信するので、CPU201は、ステップS32において、サーバー400からユーザー識別情報を受信するまで待機状態となり(ステップS32でNO)、サーバー400からユーザー識別情報を受信すると(ステップS32でYES)、処理をステップS33に進める。
サーバー400は、スマートスピーカー200,200A,200B,200Cのうちで同一のユーザーの音声を収集する装置が複数の場合に、それらに調停指示を送信する。調停指示は、同一のユーザーの音声を収集する複数の装置を識別するための装置識別情報を含む。このため、CPU201は、ステップS33において、サーバー400から調停指示を受信したか否かを判断する。調停指示を受信したならば処理はステップS34に進み、そうでなければ処理はステップS39に進む。
ステップS34においては、音量が比較される。具体的には、CPU201は、調停指示に含まれる装置識別情報で特定される装置のうち他の装置のすべてから音声情報に対応する音声の音量を取得する。ステップS35においては、CPU201は、自装置の音量が最大か否かを判断する。自装置の音量が最大ならば処理はステップS39に進むが、そうでなければ処理はステップS36に進む。ステップS36においては音量が同一の装置が存在するか否かが判断される。音量が同一の装置が存在するならば処理はステップS37に進むが、そうでなければ処理は終了する。
ステップS37においては、他の装置のいずれかから禁止信号が受信されたか否かを判断する。禁止信号が受信されたならば処理は終了するが、そうでなければ処理はステップS38に進む。ステップS38においては、他の装置のすべてに禁止信号が送信され、処理はステップS39に進む。ステップS39においては、ステップS32において受信されたユーザー識別情報で識別されるユーザーを特定し、処理はジョブ生成処理に戻る。
図10は、ペアリング処理の流れの一例を示すフローチャートである。ペアリング処理は、図8のステップS10において実行される処理である。ペアリング処理が実行される前のステップS09において、音声情報からユーザー識別情報が抽出されている。図10を参照して、CPU201は、音声情報からユーザー識別情報で識別されるユーザーが発声する音声を収集する他の装置をサーバー400に問い合わせる。具体的には、CPU201は、ユーザー識別情報をサーバー400に送信することにより、他の装置を問い合わせる。サーバー400は、問合せに応じて、スマートスピーカー200A,200B,200Cのうちにユーザー識別情報で識別されるユーザーが発声する音声を収集する装置が存在すれば、その装置の装置識別情報を返信する。CPU201は、ステップS42において、サーバー400から装置識別情報を受信したか否かを判断する。装置識別情報が受信されたならば処理はステップS43に進むが、そうでなければ処理がジョブ生成処理に戻る。ステップS43においては、サーバー400から受信された装置識別情報で識別される装置がペアリング装置に決定され、処理はジョブ生成処理に戻る。
図11は、ジョブ生成サブ処理の流れの一例を示すフローチャートである。ジョブ生成サブ処理は、図8のステップS13およびステップS19で実行される処理である。ジョブ生成サブ処理が実行される前のステップS06において、許諾文字列を含む文字情報を含む音声レコードがHDD115に記憶され場合と、指示文字列を含む文字情報を含む音声レコードがHDD115に記憶される場合とがある。以下、許諾文字列を含む音声情報を含む音声レコードまたは指示文字列を含む音声情報を含む音声レコードを処理対象レコードという。
図11を参照して、CPU201は、処理対象レコードよりも1つ前の時刻の音声レコードを読出す(ステップS51)。具体的には、CPU201は、EPROM204に記憶されている音声テーブルに含まれる複数の音声レコードのうちから処理対象レコードに含まれる時刻情報で示される時刻より前で最も近い時刻を示す時刻情報を含む音声レコードを読出す。次のステップS52においては、音声レコードに含まれる音声情報が特定される。
そして、音声情報が依頼文字列を含むか否かが判断される(ステップS53)。依頼文字列は、他人に作業を依頼する場合に用いる語を含む。依頼文字列は予め定めておけばよい。音声情報が依頼文字列を含むならば処理はステップS54に進むが、そうでなければ処理はステップS55に進む。ステップS54においては、依頼文字列を発声したユーザーが第1ユーザーに決定され、処理はステップS55に進む。ステップS51において読み出された音声レコードに含まれるユーザー識別情報で特定されるユーザーが第1ユーザーに決定される。
ステップS55においては、音声情報から設定情報が決定されたか否かを判断する。音声情報が、処理の対象となるデータのファイル名を含む場合に、処理対象のデータを特定する設定情報が決定される。音声情報から設定情報が決定されたならば処理はステップS58に進むが、そうでなければ処理はステップS56に進む。
ステップS56においては、音声情報はキーワードと比較され、処理はステップS57に進む。具体的には、音声情報の少なくとも一部の発音と、EPROM204に記憶されているキーワードテーブルに登録されているキーワードの少なくとも一部の発音とが比較される。次のステップS57においては、比較の結果、比較の結果、音声情報の少なくとも一部と発音が同一または類似の文字列を含むキーワードが存在するか否かが判断される。そのようなキーワードが存在すれば処理はステップS58に進むが、存在しなれば処理はステップS59に進む。
ステップS58においては、設定情報が決定され、処理はステップS59に進む。処理がステップS55から進む場合は、ステップS55において決定された設定情報が決定され、処理がステップS57から進む場合は、キーワードに関連付けられた設定情報が設定される。
ステップS59においては、ステップS58において決定された設定情報に基づいて、処理が決定されるか否かが判断される。処理が決定されるならば処理がステップS60に進むが、そうでなければ処理はステップS51に戻る。
ステップS60においては、ステップS58において決定された設定情報で定まる条件で、ステップS58において決定された設定情報で定まる処理をMFP100に実行させるためのジョブが生成され、処理はステップS61に進む。ステップS61においては、ジョブが完成したか否かが判断する。ジョブが複数の処理を定める場合があり、複数の処理のすべてが定まる場合にジョブが完成されたと判断される。ジョブが完成したならば処理はジョブ生成処理に戻るが、そうでなければ処理はステップS51に戻る。
図12は、ジョブ実行処理の流れの一例を示すフローチャートである。ジョブ実行処理は、MFP100が備えるCPU111が、ROM113、HDD115、CD−ROM118に記憶されたジョブ実行プログラムを実行することにより、CPU111により実現される機能である。ジョブ実行プログラムはジョブ生成プログラムの一部である。図11を参照して、MFP100が備えるCPU111は、依頼ジョブを受信したか否かを判断する(ステップS71)。CPU111は、通信I/F部112を制御して、スマートスピーカー200から依頼ジョブと第1ユーザーのユーザー識別情報とを受信したか否かを判断する。依頼ジョブを受信したならば処理はステップS72に進むが、そうでなければ処理はステップS73に進む。ステップS72においては、HDD115に、依頼ジョブと依頼ジョブとともに受信される第1ユーザーのユーザー識別情報とが記憶され、処理はステップS73に進む。ユーザー識別情報は、依頼ジョブと関連付けて記憶される。
ステップS73において、通常ジョブが受信されたか否かが判断される。CPU111は、通信I/F部112を制御して、スマートスピーカー200から通常ジョブを受信したか否かを判断する。通常ジョブを受信したならば処理はステップS74に進むが、そうでなければ処理はステップS75に進む。ステップS74においては、HDD115に、通常ジョブが記憶され、処理はステップS75に進む。
ステップS75おいては、操作部163がユーザーにより入力される操作を受け付けたか否かが判断される。操作を受け付けたならば処理はステップS76に進むが、そうでなければ処理はステップS71に戻る。ステップS76においては、操作部163を操作するユーザーが特定され、処理はステップS77に進む。ユーザーが操作部163にユーザー識別情報を入力する場合に操作部163に入力されたユーザー識別情報で識別されるユーザーは操作ユーザーとして特定される。また、ユーザーがカードリーダーにカードに記憶されたユーザー識別情報を読み取らせる操作が受け付けられ、カードリーダーが読み取ったユーザー識別情報で識別されるユーザーは操作ユーザーとして特定される。
ステップS77においては、特定されたユーザーに対応する依頼ジョブが存在するか否かが判断される。特定されたユーザーの指示が開始条件に設定されている依頼ジョブがHDD115に記憶されているか否かが判断される。依頼ジョブが存在するならば処理はステップS78に進むが、そうでなければ処理はステップS81に進む。
ステップS78においては、依頼ジョブが受信されてからの経過時間が所定時間以内か否かは判断される。所定時間以内ならば処理はステップS79に進むが、所定時間を経過していれば処理は終了する。所定時間は、予め定められた値である。依頼ジョブが受信されてから所定時間が経過した場合には依頼ジョブが不要となった確率が高い。このため、不要となった依頼ジョブが実行されないようにできる。
ステップS79においては実行指示処理を実行し、処理はステップS80に進む。実行指示処理の詳細は後述する。ステップS80においては、依頼ジョブが実行されたことが第1ユーザーに通知され、処理は終了する。ステップS77において特定された依頼ジョブとともにステップS72においてHDD115に記憶されたユーザー識別情報を用いて、第1ユーザーは特定される。例えば、第2ユーザーにより依頼ジョブが実行されたことを示すメッセージを含み、第1ユーザーの電子メールアドレスを宛先に含む電子メールが生成され、通信I/F部112を介して電子メールが送信される。
ステップS81においては、ステップS76において特定されたユーザーに対応する通常ジョブが存在するか否かが判断される。特定されたユーザーの指示が開始条件に設定されている通常ジョブがHDD115に記憶されているか否かを判断する。通常ジョブが存在するならば処理はステップS82に進むが、そうでなければ処理は終了する。ステップS82においては通常ジョブが受信されてからの経過時間が所定時間以内か否かを判断する。所定時間以内ならば処理はステップS83に進むが、そうでなければ処理は終了する。通常ジョブが受信されてから所定時間が経過した場合には通常ジョブが不要となった確率が高い。このため、不要となった通常ジョブが実行されないようにできる。ステップS83においては、実行指示処理を実行し、処理は終了する。実行指示処理が実行される場合に通常ジョブが処理対象にされ、通常ジョブが実行される。
図13は、実行指示処理の流れの一例を示すフローチャートである。実行指示処理は、図12のステップS79またはS83において実行される処理である。実行指示処理が実行される前の段階で依頼ジョブが決定されている。図12を参照して、CPU111は、依頼ジョブが存在するか否かを判断する。MFP100を操作するユーザーとして特定されたユーザーに対応する依頼ジョブが存在するか否かが判断される(ステップS91)。MFP100を操作するユーザーの指示が開始条件に設定されている依頼ジョブがHDD115に記憶されているか否かが判断される。依頼ジョブが存在するならば処理はステップS93に進むが、そうでなければ処理はステップS94に進む。
ステップS92においては、表示部161に設定ボタン501が表示され、処理はステップS93に進む。設定ボタン501は、依頼ジョブを実行可能な状態に設定する操作を受け付けるためのボタンであり、依頼ジョブを実行可能な状態に設定するコマンドが関連付けられている。ステップS93においては、設定ボタン501が指示されたか否かが判断される。設定ボタン501が指示されるまで待機状態となり(ステップS93でNO)、設定ボタン501が指示されたならば(ステップS93でYES)、処理はステップS95に進む。なお、設定ボタン501が表示されてから待機時間経過しても設定ボタン501が指示されない場合には、処理を終了してもよい。待機時間は予め定められた時間である。
一方、ステップS94においては、通常ジョブが選択されたか否かが判断される。MFP100を操作するユーザーに関連付けられたジョブの一覧が表示されるジョブ選択画面が表示された状態で、通常ジョブが選択されたか否かを判断する。通常ジョブが選択されるまで待機状態となり、通常ジョブが選択されたならば処理はステップS95に進む。なお、通常ジョブとは別のジョブが選択された場合に処理がステップS95に進むようにしてもよい。また、ジョブ選択画面が表示されてから待機時間が経過しても通常ジョブが選択されない場合に処理を終了してもよい。待機時間は予め定められた時間である。
ステップS95においては、設定値を設定するための設定画面が表示され、処理はステップS96に進む。ステップS96においては、ユーザーにより入力される操作によって処理が分岐する。ユーザーにより入力される操作が実行操作ならば処理はステップS95に進み、設定操作ならば処理はステップS98に進む。実行操作は、ジョブの実行を指示するための操作である。設定操作は、ジョブの設定値を設定するための操作である。ステップS98においては、設定操作に従って設定値が設定され、処理はステップS96に戻る。ステップS97においては、依頼ジョブまたは通常ジョブが実行され、処理はジョブ実行処理に戻る。
以上説明したように第1の実施の形態における音声処理システム1において、音声処理システム1は、複数のスマートスピーカー200,200A,200B,200Cを備え、複数のスマートスピーカー200,200A,200B,200Cそれぞれ、例えば、スマートスピーカー200は、マイクロフォン208により収集された音声を発声したユーザーを特定し、第1ユーザーが特定される音声および他のスマートスピーカー200,200A,200B,200C、例えば、スマートスピーカー200Aで収集される第2ユーザーが発声する音声に基づいて、第1ユーザーが第2ユーザーに実行を依頼した依頼ジョブをMFP100に実行させるためのジョブとして生成する。このため、マイクロフォン208により収集された音声およびスマートスピーカー200Aで収集される第2ユーザーが発声する音声に基づいて、第1ユーザーが第2ユーザーに実行を依頼した依頼ジョブが生成される。このため、離れた位置に存在する第1ユーザーおよび第2ユーザーの会話から依頼ジョブが生成されるので、ジョブを生成するための操作を簡略化することができる。
また、スマートスピーカー200,200A,200B,200Cそれぞれは、例えば、スマートスピーカー200は、さらに、第1ユーザーが特定される音声から予め登録された複数のユーザーいずれかのユーザー識別情報が検出されることに応じて、検出されたユーザー識別情報で識別されるユーザーを第2ユーザーに決定し、他のスマートスピーカー200A,200B,200Cのうち第2ユーザーが発声した音声を収集する音声収集装置、例えば、スマートスピーカー200Bをペアリング装置に決定する。このため、第1ユーザーと会話する第2ユーザーが発声した音声を収集するスマートスピーカー200Bを容易に決定することができる。
また、スマートスピーカー200B,200Cが第2ユーザーの発声する音声を収集する場合、スマートスピーカー200B,200Cそれぞれがいずれか一方のみを第2ユーザーが発声する音声を収集する装置に決定する。このため、スマートスピーカー200B,200Cが第2ユーザーの発声する音声を収集する状態で、スマートスピーカー200が第2ユーザーの発声した音声を収集する音声収集装置を決定する場合、スマートスピーカー200B,200Cそれぞれで決定された一方が第2ユーザーの発声した音声を収集する音声収集装置に決定される。このため、音声認識の精度を高めることができる。
また、スマートスピーカー200は、ペアリング装置であるスマートスピーカー200Bで収集される音声が許諾の内容を示す場合、依頼ジョブを生成する。このため、第1ユーザーによる依頼を第2ユーザーが受けない場合にジョブを生成しないようにすることができる。
<第2の実施の形態>
第2の実施の形態におけるMFP100は、第1の実施の形態におけるMFP100と同様に画像処理装置として機能するとともに、ジョブ生成装置として機能する。第2の実施の形態における音声処理システム1の全体概要は、図1に示した第1の実施の形態における音声処理システム1の全体概要と同じである。第2の実施の形態におけるMFP100のハードウェア構成は、図3に示したハードウェア構成と同じである。第2の実施の形態におけるスマートスピーカー200,200A,200B,200Cそれぞれのハードウェア構成は、図2に示したハードウェア構成と同じである。したがって、それらについての説明は繰り返さない。
図14は、第2の実施の形態におけるスマートスピーカー200が備えるCPU201が有する機能の一例を示すブロック図である。図14に示す機能が図4に示した機能と異なる点は、ジョブ生成部257、ジョブ送信部259、通話者決定部263、装置決定部265および音声情報取得部267が削除された点、音声情報送信部291が追加された点である。その他の機能は図4に示した機能と同じなので、ここでは説明は繰り返さない。音声情報送信部291は、音声認識部253から音声情報と時刻情報との組が入力され、ユーザー特定部255からユーザー識別情報と時刻情報との組が入力される。音声情報送信部291は、それぞれと組になる時刻情報が同じユーザー識別情報と音声情報と時刻情報とを、MFP100に送信する。具体的には、音声情報送信部291は、通信部205を制御して、ユーザー識別情報と音声情報と時刻情報とをMFP100に送信する。
図15は、第2の実施の形態におけるMFP100が備えるCPU111が有する機能の一例を示すブロック図である。図15に示す機能が図6に示した機能と異なる点は、音声情報取得部71、ジョブ生成部257、通話者決定部263、装置決定部265および操作ユーザー通知部281が追加された点、ジョブ受信部81がジョブ受付部81Aに変更された点である。その他の機能は図6に示した機能と同じなのでここでは説明を繰り返さない。
第2の実施の形態における音声情報取得部71は、スマートスピーカー200,200A,200B,200Cのいずれかから音声情報とユーザー識別情報と時刻情報を取得する。具体的には、第2の実施の形態における音声情報取得部71は、通信I/F部112を制御して、通信I/F部112がスマートスピーカー200,200A,200B,200Cのいずれかから受信する音声情報とユーザー識別情報と時刻情報とを取得する。第2の実施の形態における音声情報取得部71は、スマートスピーカー200,200A,200B,200Cそれぞれに対応する音声テーブルをHDD115に記憶する。このため、第2の実施の形態における音声情報取得部71は、スマートスピーカー200,200A,200B,200Cのいずれか、例えば、スマートスピーカー200から受信される音声情報とユーザー識別情報と時刻情報とを含む音声レコードを、HDD115に記憶されたスマートスピーカー200に対応する音声テーブルに追加する。
また、第2の実施の形態における音声情報取得部71は、装置決定部265により装置が特定される場合、HDD115にスマートスピーカー200,200A,200B,200Cごとに記憶されている音声テーブルのうち、特定された装置に対応する音声テーブルから音声レコードを取得する。
第2の実施の形態におけるジョブ生成部257、通話者決定部263、装置決定部265および操作ユーザー通知部281は、第1の実施の形態におけるスマートスピーカー200が備えるCPU201が有するジョブ生成部257、通話者決定部263、装置決定部265および操作ユーザー通知部281とそれぞれ同様の機能を有する。すなわち、第2の実施の形態におけるジョブ生成部257は、スマートスピーカー200,200A,200B,200Cいずれかに対応する音声テーブルに登録された音声情報、ユーザー識別情報および時刻情報に基づいて、依頼ジョブを生成するとともに、第1ユーザーを決定する。第2の実施の形態におけるジョブ生成部257は、依頼ジョブと第1ユーザーのユーザー識別情報とを、ジョブ制御部55に出力する。また、第2の実施の形態におけるジョブ生成部257は、スマートスピーカー200,200A,200B,200Cいずれかに対応する音声テーブルに登録された音声情報、ユーザー識別情報および時刻情報に基づいて、通常ジョブを生成し、通常ジョブをジョブ制御部55に出力する。第2の実施の形態におけるジョブ制御部55のジョブ受付部81Aは、ジョブ生成部73が依頼ジョブを生成する場合に依頼ジョブと第1ユーザーのユーザー識別情報とを受け付け、第2の実施の形態におけるジョブ生成部73が通常ジョブを生成する場合に通常ジョブを受け付ける。
第2の実施の形態における操作ユーザー通知部281は、第1の実施の形態におけるスマートスピーカー200が備えるCPU201が有する操作ユーザー通知部281と同様の機能を有する。すなわち、第2の実施の形態における操作ユーザー通知部281は、第2の実施の形態におけるジョブ生成部257により依頼ジョブが生成される場合、第2ユーザーに依頼ジョブがMFP100で実行可能なことを通知する。
第2の実施の形態における音声処理システム1においては、第1の実施の形態における音声処理システム1のスマートスピーカー200の機能の一部をMFP100が有する。このため、第2の実施の形態におけるスマートスピーカー200,200A,200B,200Cそれぞれの機能が低くてよく、システム構成を簡略にすることができる。
<第1の変形例>
第1の変形例におけるサーバー400は、第2の実施の形態におけるMFP100の機能の一部を有する。第1の変形例におけるサーバー400は、ジョブ生成装置として機能する。すなわち、第1の変形例におけるサーバー400は、スマートスピーカー200,200A,200B,200CのAI(Artificial Intelligence)アシスタントとして機能する。スマートスピーカー200,200A,200B,200Cそれぞれには、サーバー400が備えるAIアシスタントが予め登録されている。スマートスピーカー200,200A,200B,200Cそれぞれは、マイクロフォン208と、通信部205と、を少なくとも備えるようにし、マイクロフォン208で集音した音声を電子データである音声データに変換し、サーバー400に送信する。サーバー400は、スマートスピーカー200,200A,200B,200Cそれぞれから受信する音声データに基づいて、音声認識およびユーザーを特定し、音声情報とユーザー識別情報と時刻情報とをMFP100に送信する。
第1の変形例における音声処理システム1においては、スマートスピーカー200,200A,200B,200Cそれぞれの機能が低くてよく、システム構成を簡略にすることができる。
さらに、サーバー400の機能を、MFP100が備えるようにしてもよい。この場合には、サーバー400が不要となるので、システム構成を簡略にすることができる。
<第2の変形例>
第2の実施の形態におけるMFP100は、音声情報を受信するごとにジョブをリアルタイムで生成するようにしたが、音声情報を音声テーブルに蓄積して、所定のタイミングでジョブを生成するバッチ処理としてもよい。例えば、MFP100は、所定時間間隔でジョブを生成してもよいし、音声テーブルに所定数の音声レコードが追加されるごとに、ジョブを生成してもよい。
以上説明したように第2の実施の形態における音声処理システム1において、スマートスピーカー200,200A,200B,200CおよびMFP100のいずれかが、音声を発声したユーザーを特定し、MFP100は、スマートスピーカー200,200A,200B,200Cのうち第1装置で収集された音声から第1ユーザーが特定される場合、その音声およびスマートスピーカー200,200A,200B,200Cのうち第2装置で収集される第2ユーザーが発声する音声に基づいて、第1ユーザーが第2ユーザーに実行を依頼した依頼ジョブをジョブとして生成する。このため、離れた位置に存在する第1ユーザーおよび第2ユーザーの会話から依頼ジョブが生成されるので、ジョブを生成するための操作を簡略化することができる。
また、第2の実施の形態におけるMFP100は、さらに、第1ユーザーが特定される音声から予め登録された複数のユーザーいずれかのユーザー識別情報が検出されることに応じて、検出されたユーザー識別情報で識別されるユーザーを第2ユーザーに決定し、スマートスピーカー200,200A,200B,200Cのうち第2ユーザーが発声した音声を収集する装置、例えば、スマートスピーカー200Bを第2装置に決定する。このため、第1ユーザーと会話する第2ユーザーが発声した音声を収集するスマートスピーカー200Aを容易に決定することができる。
また、第2の実施の形態におけるMFP100は、第2ユーザーが発声した音声を収集する音声収集装置が複数の場合、例えば、スマートスピーカー200B,200Cの場合、スマートスピーカー200B,200Cのうちで収集される音声の音量が最大の装置を第2装置に決定する。このため、音声認識の精度を高めることができる。
また、第2の実施の形態におけるMFP100は、第2装置で収集された音声が許諾の内容を示す場合、依頼ジョブを生成するので、第1ユーザーによる依頼を第2ユーザーが受けない場合にジョブを生成しないようにすることができる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上述した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
<付記>
(1) 複数の前記音声収集装置それぞれから、前記音声収集装置により収集された音声を発声したユーザーを識別するためのユーザー識別情報と前記音声収集装置により収集された音声を認識して得られる音声情報とを取得する音声情報取得手段を、さらに備え、
前記ユーザー特定手段は、前記音声情報取得手段により複数の前記音声収集装置それぞれから取得される前記ユーザー識別情報に基づいてユーザーを特定する、請求項7に記載のジョブ生成装置。