(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
以下、添付図面を参照しながら、実施形態のデータ処理装置、データ処理方法およびプログラムについて詳細に説明する。実施形態のデータ処理装置は、系列データに対する所定処理の結果である結果データを生成するものであり、例えば、系列データとして音声データを入力し、この音声データに対する音声認識結果を結果データとして出力する音声認識装置(音声認識システム)として構築される。
【0012】
音声認識装置は、認識対象となる一連の音声データ(1つの発話区間の音声データ)を、装置内部での処理単位となるフレームごとに切り出してフレームごとのスコアを求め、各フレームのスコアをフレームの出現順に統合して、音声データ全体に対して統合スコアの最も高い結果を最終的な音声認識結果として出力する。ここで、フレームごとのスコアを計算するスコア演算処理と、各フレームのスコアを統合して最終的な音声認識結果を得るデコード処理とでは、効率的な処理を実現する上で最適な計算リソースが異なる。すなわち、スコア演算処理は、DNN(deep neural network)などによるスコア計算を行う。そのため、スコア演算処理を実行するための計算リソースとしては、GPGPUのように計算そのものを高速に実行できるハードウェアが理想的である。一方、デコード処理は、多数のスコアを統合して音声認識結果の計算を行う。そのため、デコード処理を実行するための計算リソースとしては、大容量RAMを搭載したハードウェアが望ましい。
【0013】
そこで、実施形態のデータ処理装置では、構成の異なる計算リソースを個別に用意し、計算速度が速い計算リソースを用いてスコア演算処理のような下位処理を実行し、メモリ容量が大きい計算リソースを用いてデコード処理のような上位処理を実行する。下位処理と上位処理との間でのデータの受け渡しには、プロセス間通信(IPC:interprocess communication)の技術を用いる。ここで下位処理とは、結果データの生成に必要な値を得るための処理であり、上位処理とは、下位処理により得られた値を用いて結果データを生成する処理である。実施形態のデータ処理装置を音声認識装置として構築する場合、結果データとしての音声認識結果の生成に必要な値であるフレームごとのスコアを計算するスコア演算処理が下位処理に相当し、下位処理により得られた値であるフレームごとのスコアを用いて結果データとしての音声認識結果を生成するデコード処理が上位処理に相当する。以下では、実施形態のデータ処理装置において下位処理を実行する部分を下位処理部と呼び、上位処理を実行する部分を上位処理部と呼ぶ。
【0014】
実施形態のデータ処理装置は、系列データに対して、データの順序関係に依存せずに処理が可能な下位処理と、データの順序関係が重要となる上位処理とを含む一連の処理を行って結果データを生成することを1つのタスクとする。音声認識装置としての構築例では、認識対象となる一連の音声データ(1つの発話区間の音声データ)から1つの発話の音声認識結果(テキストデータ)を生成する一連の処理が1つのタスクとなる。ここで、認識対象の音声データに対してフレームごとのスコアを計算するスコア演算処理(下位処理)は、フレームの順序関係に依存せずに処理が可能である。一方、フレームごとのスコアを用いて音声認識結果を生成するデコード処理(上位処理)は、フレーム間の順序関係に依存した処理となる。
【0015】
実施形態のデータ処理装置では、このような1つのタスクに対し、データの順序関係に依存せずに処理が可能な下位処理を並列化(分散処理)することにより、1つのタスクの処理を高速化することが可能な仕組みを持つ。すなわち、実施形態のデータ処理装置では、上位処理部が、1つのタスクで処理する系列データ(音声認識装置としての構築例では1つの発話区間の音声データ)に対し、その系列データを構成するデータブロックであって処理単位となるデータブロック(音声認識装置としての構築例ではフレーム)ごとに、その系列データにおける各データブロックの順序を表す順序情報を付与して第1の格納部に格納する。また、下位処理部が、第1の格納部に格納されているデータブロックに対して下位処理を実行し、得られた値(音声認識装置としての構築例ではフレームごとのスコア)にデータブロックと共通の順序情報を付与して第2の格納部に格納する。そして、上位処理部は、第2の格納部に格納されている値を順序情報に基づいて統合して上位処理を実行する。
【0016】
このように、実施形態のデータ処理装置は、上位処理部と下位処理部との間で、バッファ(第1の格納部および第2の格納部)を介して、データの受け渡し(プロセス間通信)を行う。このとき、1つのタスクで処理する系列データを構成する各データブロックや、これらのデータブロックに対する下位処理によって得られたそれぞれの値に対して、順序関係が分かる順序情報を付与しておく。これにより、各データブロックを対象とした下位処理を並列化しつつ、順序関係に依存する上位処理を適切に実行することができる。つまり、実施形態のデータ処理装置では、上述の仕組みを持つことで、1つのタスクで処理する系列データに対する分散処理を可能にし、処理の高速化率を高めることができる。
【0017】
また、従来のプロセス間通信では、音声データのように順序関係が重要な系列データを扱う場合は、例えばTCP(Transmission Control Protocol)のようにデータの順序関係が保障されるプロトコルを用いる必要があったが、実施形態のデータ処理装置で行うプロセス間通信では、このような制約がない。
【0018】
以下では、音声認識装置としての構築例を想定しながら、実施形態のデータ処理装置の具体例についてさらに詳しく説明する。
【0019】
[第1実施形態]
図1は、第1実施形態のデータ処理装置の構成例を示すブロック図である。
図1に示すように、本実施形態のデータ処理装置は、上位処理部100と、データ管理部200と、下位処理部300と、を備える。上位処理部100、データ管理部200、および下位処理部300は、各々独立の情報処理装置(コンピュータ)を用いて実現されていてもよいし、一部または全部が共通の情報処理装置(コンピュータ)を用いて実現される構成であってもよい。上位処理部100と下位処理部300とを個別の情報処理装置を用いて実現する場合、メモリ容量が大きい計算リソースを備えた情報処理装置を用いて上位処理部100を実現し、計算速度が速い計算リソースを備えた情報処理装置を用いて下位処理部300を実現することが望ましい。また、上位処理部100と下位処理部300とを共通の情報処理装置を用いて実現する場合、構成が異なる少なくとも2つの計算リソースを備えた情報処理装置を用い、メモリ容量が大きい計算リソースにより上位処理部100を実現し、計算速度が速い計算リソースにより下位処理部300を実現することが望ましい。
【0020】
上位処理部100とデータ管理部200、データ管理部200と下位処理部300をそれぞれ個別の情報処理装置を用いて実現する場合、これらの情報処理装置はLANやインターネットなどの通信回線により接続されているものとする。また、上位処理部100とデータ管理部200、データ管理部200と下位処理部300をそれぞれ共通の情報処理装置を用いて実現する場合、これらの各部がバスにより接続されているものとする。
【0021】
図1に示すように、上位処理部100は、入力受付部101、フレーム分割部102、データ送信部103(順序情報付与部)、スコア受信部104、および結果演算部105を有する。また、データ管理部200は、データ格納部201(第1の格納部)、データ送信部202、スコア格納部203(第2の格納部)、およびスコア送信部204を有する。また、下位処理部300は、データ受信部301、データ変換部302、スコア演算部303、およびスコア送信部304を有する。以下、これら各部の役割を説明する。
【0022】
上位処理部100の入力受付部101は、本実施形態のデータ処理装置が1つのタスクを実行するにあたり、このタスクで処理する音声データ(系列データ)の入力を受け付ける。本実施形態のデータ処理装置が1つのタスクで処理する音声データは、上述したように、1つの発話区間の音声データである。本実施形態のデータ処理装置に入力されるデータが発話区間と非発話区間とを含むデータである場合、例えば上位処理部100において発話区間を検出し、検出した発話区間ごとの音声データを1つのタスクで処理する音声データとして、入力受付部101が受け付けるようにしてもよい。
【0023】
フレーム分割部102は、入力受付部101が入力を受け付けた音声データを、装置内部での処理単位となるフレーム(データブロック)に分割する。なお、入力受付部101が入力を受け付けた音声データがすでにフレーム分割されている場合は、フレーム分割部102の処理は不要である。また、フレーム分割部102は、分割した各フレームのデータ(以下、フレームデータと呼ぶ。)が音声波形データである場合、この音声波形データを音響特徴量に変換する処理を行ってもよい。
【0024】
データ送信部103は、フレーム分割部102で分割された各フレームデータに対し、認識対象の音声データにおける各フレームの順序を表す順序情報を付与してデータ管理部200に送信する。データ管理部200に送信された順序情報が付与されたフレームデータは、データ格納部201に格納される。各フレームデータに対して付与する順序情報は、順序を特定できる情報であればよく、連続数値のほか離散数値、アルファベット、およびそれらから構成される文字列などを用いることができる。
【0025】
また、データ送信部103は、フレーム分割部102で分割された各フレームデータに対し、上述の順序情報に加えて、フレームの優先度を表す優先度情報をさらに付与してデータ管理部200に送信してもよい。優先度情報の付与により、順序とは別に処理の順番を制御するなどの応用が可能となる。例えば、本実施形態のデータ処理装置に入力されたデータが複数の発話区間を含むデータであり、このデータから検出された複数の発話区間の音声データに対して複数のタスクの音声認識処理を行う場合などにおいて、順序が後のタスクで処理する音声データの方が前のタスクで処理する音声データよりもノイズが少なく、即座に結果を返せるのであれば、順序が後のタスクで処理する音声データの各フレームの優先度を高くして、後のタスクの処理を優先させる。これにより、はじめに応答を返すまでの時間を短縮できる。また、例えば、1つのタスクで処理する音声データの各フレームに対し、下位処理部300でのスコア計算に要する時間を予測できる場合、スコア計算に時間がかかるフレームの優先度を高くして、そのフレームに対するスコア計算を先に開始させる。これにより、1つのタスクに対するトータルの処理時間を短縮できる。
【0026】
データ管理部200のデータ送信部202は、下位処理部300からのデータ参照要求に応じて、下位処理部300で未処理のフレームデータがデータ格納部201に格納されているか否かを確認し、データ格納部201に未処理のフレームデータが格納されている場合に、そのフレームデータをデータ格納部201から読み出して下位処理部300に送信する。このとき、データ格納部201に優先度情報が付与された未処理のフレームデータが複数格納されている場合、データ送信部202は、優先度が高いフレームデータから順にデータ格納部201から読み出して下位処理部300に送信する。また、データ格納部201に格納されているフレームデータに優先度情報が付与されていない場合、データ送信部202は、データ格納部201に格納されている複数のフレームデータのうち、順序情報で示される順序が前のフレームデータから順に読み出して下位処理部300に送信するように構成してもよい。
【0027】
下位処理部300のデータ受信部301は、データ管理部200に対してデータ参照要求を送信し、その応答としてデータ管理部200から未処理のフレームデータが送られてくると、そのフレームデータを受信する。データ受信部301が受信するフレームデータは、上述したように、上位処理部100において順序情報が付与されたフレームデータである。
【0028】
データ変換部302は、データ受信部301が受信したフレームデータを、スコア計算に適した音響特徴量などのデータに変換する。なお、上述した上位処理部100のフレーム分割部102によってフレームデータが音声波形データから音響特徴量に変換されている場合など、データ受信部301が受信したフレームデータがすでにスコア計算に適したデータとなっている場合は、データ変換部302の処理は不要である。
【0029】
スコア演算部303は、データ変換部302により変換されたフレームデータ(データ変換部302による変換が不要な場合は、データ受信部301が受信したフレームデータとなる。)をもとに、例えばDNNなどによるフレームごとのスコア計算を行う。フレームごとのスコアは、一般にフレームデータから計算される複数の値の集合(スコア集合)であるが、ここでは単にスコアと呼ぶ。スコア演算部303によるフレームごとのスコア計算は、フレームの順序関係に依存しない処理となるため、複数のフレームに対するスコア計算を並列化して行うことができる。
【0030】
スコア送信部304は、スコア演算部303でのスコア計算によって得られたフレームごとのスコアに対し、フレームデータと共通の順序情報を付与してデータ管理部200に送信する。データ管理部200に送信された順序情報が付与されたスコアは、スコア格納部203に格納される。なお、フレームデータと共通の順序情報は、上位処理部100によってフレームデータに付与された順序情報と同じ順序を表すものであればよく、必ずしもフレームデータに付与された順序情報と同一の情報である必要はない。例えば、フレームデータに付与された順序情報を元に計算される情報を、スコアに付与してもよい。
【0031】
データ管理部200のスコア送信部204は、上位処理部100からのスコア参照要求に応じて、上位処理部100で未処理のフレームのスコアがスコア格納部203に格納されているか否かを確認し、スコア格納部203に未処理のフレームのスコアが格納されている場合に、そのスコアをスコア格納部203から読み出して上位処理部100に送信する。このとき、スコア格納部203に未処理のフレームのスコアが複数格納されている場合、スコア送信部204は、スコア格納部201に格納されている複数のスコアのうち、順序情報で示される順序が前のスコアから順に読み出して上位処理部100に送信する。
【0032】
上位処理部100のスコア受信部104は、データ管理部200に対してスコア参照要求を送信し、その応答としてデータ管理部200から未処理のフレームのスコアが送られてくると、そのスコアを受信する。スコア受信部104が受信するスコアは、上述したように、フレームデータと共通の順序情報が付与されたスコアである。
【0033】
結果演算部105は、スコア受信部104が受信した各フレームのスコアを、そのスコアに付与された順序情報に基づいて統合する。そして、結果演算部105は、入力受付部101が入力を受け付けた音声データ、すなわち、認識対象となる1つの発話区間の音声データに含まれる全てのフレームのスコアが統合されると、統合スコアが最も高くなる結果を音声データ全体に対する音声認識結果として生成し、外部のアプリケーションなどに出力する。
【0034】
次に、本実施形態のデータ処理装置の動作例を説明する。
【0035】
まず、
図2を参照して、認識対象の音声データが入力されてからフレームデータをデータ格納部201に格納するまでの上位処理部100による処理を説明する。
図2は、このときの上位処理部100による処理手順の一例を示すフローチャートである。
【0036】
認識対象の音声データが上位処理部100に入力されると、まず、入力受付部101が、その音声データの入力を受け付ける(ステップS101)。入力受付部101によって入力が受け付けられた音声データは、フレーム分割部102に渡される。
【0037】
次に、フレーム分割部102が、入力受付部101から渡された音声データをフレーム分割する(ステップS102)。フレーム分割部102の処理により得られた各フレームデータは、データ送信部103に渡される。
【0038】
次に、データ送信部103が、フレーム分割部102から渡された各フレームデータに対し、音声データにおける各フレームの順序を表す順序情報を付与してデータ管理部200に送信する(ステップS103)。このとき、データ送信部103は、各フレームの優先度を表す優先情報をフレームデータにさらに付与してデータ管理部200に送信してもよい。データ送信部103からデータ管理部200に送信されたフレームデータは、データ格納部201に格納される。
【0039】
次に、
図3を参照して、下位処理部300による処理を説明する。
図3は、下位処理部300による処理手順の一例を示すフローチャートである。
【0040】
下位処理部300では、まず、データ受信部301が、データ管理部200に対してデータ参照要求を送信する(ステップS201)。このとき、データ管理部200のデータ格納部201に下位処理部300で未処理のフレームデータが格納されていれば、データ管理部200のデータ送信部202から下位処理部300に対し、データ参照要求に対する応答として、この未処理のフレームデータが送信される。また、優先度情報が付与された未処理のフレームデータがデータ格納部201に複数格納されていれば、優先度の高いフレームデータから順に送信される。
【0041】
データ受信部301は、データ管理部200に対してデータ参照要求を送信した後、このデータ参照要求に対する応答としてデータ管理部200からフレームデータが送信されたか否かを判定する(ステップS202)。そして、データ管理部200からフレームデータが送信されると(ステップS202:Yes)、このフレームデータを受信する(ステップS203)。データ受信部301により受信されたフレームデータは、データ変換部302に渡される。一方、データ管理部200からフレームデータが送信されない場合は(ステップS202:No)、ステップS201に戻って、データ受信部301によるデータ参照要求の送信が再度行われ、以降の処理が繰り返される。
【0042】
次に、データ変換部302が、データ受信部301から渡されたフレームデータを、スコア計算に適した音響特徴量などのデータに変換する(ステップS204)。データ変換部302により変換されたフレームデータは、スコア演算部303に渡される。なお、データ受信部301から渡されたフレームデータがすでにスコア計算に適したデータとなっている場合は、ステップS204の処理は省略される。
【0043】
次に、スコア演算部303が、データ変換部302から渡されたフレームデータをもとに、フレームごとのスコアを計算する(ステップS205)。スコア演算部303により計算されたフレームごとのスコアは、スコア送信部304に渡される。
【0044】
次に、スコア送信部304が、スコア演算部303から渡されたフレームごとのスコアに対し、フレームデータと共通の順序情報を付与してデータ管理部200に送信する(ステップS206)。スコア送信部304からデータ管理部200に送信されたフレームごとのスコアは、スコア格納部203に格納される。
【0045】
次に、
図4を参照して、スコア格納部203に格納されたスコアを用いて認識対象の音声データに対する音声認識結果を生成する上位処理部100による処理を説明する。
図4は、このときの上位処理部100による処理手順の一例を示すフローチャートである。
【0046】
上位処理部100では、まず、スコア受信部104が、データ管理部200に対してスコア参照要求を送信する(ステップS301)。このとき、データ管理部200のスコア格納部203に上位処理部100で未処理のスコアが格納されていれば、データ管理部200のスコア送信部204から上位処理部100に対し、スコア参照要求に対する応答として、この未処理のスコアが送信される。未処理のスコアがスコア格納部203に複数格納されている場合は、順序情報で示される順序が前のスコアから順に送信される。
【0047】
スコア受信部104は、データ管理部200に対してスコア参照要求を送信した後、このスコア参照要求に対する応答としてデータ管理部200からスコアが送信されたか否かを判定する(ステップS302)。そして、データ管理部200からスコアが送信されると(ステップS302:Yes)、このスコアを受信する(ステップS303)。スコア受信部104により受信されたスコアは、結果演算部105に渡される。一方、データ管理部200からスコアが送信されない場合は(ステップS302:No)、ステップS301に戻って、スコア受信部104によるスコア参照要求の送信が再度行われ、以降の処理が繰り返される。
【0048】
次に、結果演算部105が、スコア受信部104から渡された各フレームのスコアを、スコアに付与された順序情報に基づいて、認識対象の音声データにおけるフレームの順序と整合するように統合する(ステップS304)。
【0049】
その後、結果演算部105は、認識対象の音声データの最終フレームまでスコアが統合されたか否かを判定する(ステップS305)。そして、最終フレームまでスコアが統合されていない場合は(ステップS305:No)、ステップS301に戻って、スコア受信部104によるスコア参照要求の送信が再度行われ、以降の処理が繰り返される。
【0050】
一方、認識対象の音声データの最終フレームまでスコアが統合されると(ステップS305:Yes)、結果演算部105は、最終フレームまでの統合スコアが最も高くなる結果を、認識対象の音声データに対する音声認識結果として生成する(ステップS306)。そして、結果演算部105は、生成した音声認識結果を、外部のアプリケーションなどに出力する(ステップS307)。
【0051】
以上、具体的な例を挙げながら説明したように、本実施形態のデータ処理装置では、上位処理部100が、認識対象となる音声データのフレームごとに音声データにおける各フレームの順序を表す順序情報を付与して、データ管理部200のデータ格納部201に格納する。また、下位処理部300が、データ格納部201に格納されている各フレームデータをもとにフレームごとのスコア計算を行い、得られたフレームごとのスコアに対してフレームデータと共通の順序情報を付与して、データ管理部200のスコア格納部203に格納する。そして、上位処理部100は、スコア格納部203に格納されているフレームごとのスコアを順序情報に基づいて統合し、認識対象となる音声データに対する音声認識結果を生成する。したがって、本実施形態のデータ処理装置によれば、下位処理部300によるフレームごとのスコア計算を並列化しながら、上位処理部100による音声データ全体に対する音声認識結果の生成を適切に行うことができ、処理の高速化率を高めることができる。
【0052】
[第2実施形態]
次に、第2実施形態について説明する。上述の第1実施形態では、データ管理部200から下位処理部300へのフレームデータの受け渡しと、データ管理部200から上位処理部100へのスコアの受け渡しを、それぞれ下位処理部300や上位処理部100がデータ管理部200にアクセスしてフレームデータやスコアを取得する、いわゆるpull型で行うようにしていた。これに対し、本実施形態では、データ管理部200から下位処理部300へのフレームデータの受け渡しと、データ管理部200から上位処理部100へのスコアの受け渡しを、それぞれデータ管理部200からの自律的な送信、いわゆるpush型で行う。以下では、第1実施形態との相違点のみを説明する。
【0053】
本実施形態のデータ処理装置の構成は、第1実施形態のデータ処理装置の構成(
図1参照)と同様であるため、詳細な説明は省略する。ただし、本実施形態では、下位処理部300のデータ受信部301は、データ管理部200に対するデータ参照要求の送信は行わず、データ管理部200のデータ送信部202から自律的に送信されたフレームデータを受信する。また、本実施形態では、上位処理部100のスコア受信部104は、データ管理部200に対するスコア参照要求の送信は行わず、データ管理部200のスコア送信部204から自律的に送信されたスコアを受信する。
【0054】
本実施形態では、データ管理部200のデータ送信部202が、データ格納部201に格納されているフレームデータを、優先度情報が付与されていればその優先度情報で示される優先度が高い順に、下位処理部300に送信する。また、データ格納部201に格納されているフレームデータに優先度情報が付与されていなければ、データ送信部202は、例えば順序情報で示される順序が前のフレームデータから順に、下位処理部300に送信する。下位処理部300では、このようにデータ管理部200のデータ送信部202から自律的に送信されたフレームデータを受信し、フレームごとのスコア計算を行う。
【0055】
また、本実施形態では、データ管理部200のスコア送信部204が、スコア格納部203に格納されているフレームごとのスコアを、順序情報で示される順序が前のフレームのスコアから順に、上位処理部100に送信する。上位処理部100では、このようにデータ管理部200のスコア送信部204から自律的に送信されたフレームごとのスコアを受信し、順序情報に基づいて受信したスコアを統合して、音声データ全体に対する音声認識結果を生成する。
【0056】
図5は、本実施形態の下位処理部300による処理手順の一例を示すフローチャートである。本実施形態の下位処理部300では、データ管理部200からフレームデータが送信されると、データ受信部301がこのフレームデータを受信する(ステップS401)。その後、第1実施形態と同様に、データ変換部302によるデータ変換(ステップS402)、スコア演算部303によるフレームごとのスコア計算(ステップS403)、スコア送信部304による順序情報の付与およびデータ管理部200へのスコアの送信(ステップS404)が行われる。
【0057】
図6は、本実施形態の上位処理部100による処理手順の一例を示すフローチャートである。本実施形態の上位処理部100では、データ管理部200からフレームごとのスコアが送信されると、スコア受信部104がこのスコアを受信する(ステップS501)。その後、第1実施形態と同様に、結果演算部105によるスコアの統合(ステップS502)、最終フレームまで統合されたかの判定(ステップS503)、統合スコアに基づく音声認識結果の生成(ステップS504)、および生成した音声認識結果の出力(ステップS505)が行われる。
【0058】
本実施形態においても、上述した第1実施形態と同様に、上位処理部100からデータ管理部200を介して下位処理部300に受け渡されるフレームデータ、および、下位処理部300からデータ管理部200を介して上位処理部100に受け渡されるフレームごとのスコアには、認識対象となる音声データにおけるフレームの順序を表す順序情報が付与されている。したがって、本実施形態においても、上述した第1実施形態と同様に、下位処理部300によるフレームごとのスコア計算を並列化しながら、上位処理部100による音声データ全体に対する音声認識結果の生成を適切に行うことができ、処理の高速化率を高めることができる。
【0059】
なお、本実施形態では、データ管理部200から下位処理部300へのフレームデータの受け渡しと、データ管理部200から上位処理部100へのスコアの受け渡しの双方をpush型で行うようにしているが、いずれか一方をpush型で行うようにしてもよい。
【0060】
[第3実施形態]
次に、第3実施形態について説明する。本実施形態は、上位処理部100、データ管理部200、および下位処理部300をそれぞれ複数備えるデータ処理装置の構成例である。上位処理部100、データ管理部200、および下位処理部300それぞれの内部の構成は、第1実施形態のデータ処理装置の構成(
図1参照)と同様である。また、データ処理装置の基本的な動作は、上述した第1実施形態あるいは第2実施形態と同様である。以下では、第1実施形態や第2実施形態との相違点のみを説明する。
【0061】
図7は、本実施形態のデータ処理装置の概略構成例を示すブロック図である。
図7に示すように、本実施形態のデータ処理装置は、上位処理部100a,100b,100c(これらを総称する場合は上位処理部100と表記する)と、データ管理部200a,200b(これらを総称する場合はデータ管理部200と表記する)と、下位処理部300a,300b(これらを総称する場合は下位処理部300と表記する)と、を備える。上位処理部100a,100b,100cとデータ管理部200a,200bとの間、データ管理部200a,200bと下位処理部300a,300bとの間は、それぞれLANやインターネットなどの通信回線により接続されているものとする。データ管理部200a,200bから下位処理部300a,300bへのフレームデータの受け渡しと、データ管理部200a,200bから上位処理部100a,100b,100cへのスコアの受け渡しは、第1実施形態のようなpull型であってもよいし、第2実施形態のようなpush型であってもよい。なお、
図7に示した構成例では、上位処理部100の数を3つ、データ管理部200の数を2つ、下位処理部300の数を2つとしているが、これら上位処理部100、データ管理部200、および下位処理部300の数は任意であり、
図7に例示した構成に限定されるものではない。
【0062】
本実施形態では、上位処理部100からデータ管理部200に送信するフレームデータに対し、下位処理部300a,300bのうちで当該フレームデータを処理する下位処理部300を指定した指定情報を付与してもよい。上位処理部100からデータ管理部200に送信されたフレームデータに指定情報が付与されている場合、データ管理部200は、当該フレームデータを、指定情報により指定された下位処理部300に対して送信する。
【0063】
すなわち、データ管理部200から下位処理部300へのフレームデータの受け渡しをpull型で行う場合、データ管理部200は、データ格納部201に格納されているフレームデータのうち、指定情報が付与されたフレームデータについては、この指定情報で示される下位処理部300以外の他の下位処理部300からデータ参照要求があったとしても、当該フレームデータを他の下位処理部300には送信しない。また、データ管理部200から下位処理部300へのフレームデータの受け渡しをpush型で行う場合、データ管理部200は、データ格納部201に格納されているフレームデータのうち、指定情報が付与されているフレームデータについては、この指定情報で示される下位処理部300のみに当該フレームデータを送信する。そして、下位処理部300は、指定情報が自己を示すフレームデータに対してスコア計算を行う。これにより、スコア計算に高い演算能力が必要なフレームデータの処理を、必要なスペックを持つ下位処理部300に割り当てることができ、効率的な処理を実現できる。
【0064】
また、本実施形態では、上位処理部100a,100b,100cのうち、フレームデータに順序情報を付与してデータ管理部200に送信した上位処理部100とは異なる上位処理部100が、データ管理部200から受信したスコアを統合して音声認識結果を生成することも可能である。つまり、音声データにおける各フレームの順序が順序情報で担保されるため、音声データの入力を受け付けた上位処理部100とは別の上位処理部100により、その音声データに対する音声認識結果を生成して出力することができる。これにより、特に、能力が高い、または、処理中でない上位処理部100に対して音声認識結果を生成する処理を優先的に割り当てて、タスクの処理全体をより高速に実施することが可能となる。
【0065】
[第4実施形態]
次に、第4実施形態について説明する。本実施形態は、データ格納部201を下位処理部300に設けるとともに、スコア格納部203を上位処理部100に設けることで、データ管理部200を不要にしたデータ処理装置の構成例である。
【0066】
図8は、本実施形態のデータ処理装置の構成例を示すブロック図である。
図8に示すように、本実施形態のデータ処理装置では、
図1に示した第1実施形態のデータ処理装置の構成と比較して、下位処理部300のデータ受信部301の代わりにデータ格納部201が設けられている。また、上位処理部100のスコア受信部104の代わりにスコア格納部203が設けられている。
【0067】
本実施形態のデータ処理装置では、上位処理部100のデータ送信部103が、順序情報を付与したフレームデータを下位処理部300に送信する。下位処理部300に送信されたフレームデータは、下位処理部300に設けられたデータ格納部201に格納される。下位処理部300では、データ格納部201に格納されたフレームデータが例えば順序情報で示される順序に従って読み出され、データ変換やスコア計算が行われる。そして、下位処理部300のスコア送信部304は、順序情報を付与したスコアを上位処理部100に送信する。上位処理部100に送信されたスコアは、上位処理部100に設けられたスコア格納部203に格納される。上位処理部100では、スコア格納部203に格納されたスコアが順序情報で示される順序に従って読み出され、結合されて、音声認識結果が生成される。
【0068】
以上のように、本実施形態のデータ処理装置では、データ管理部200が不要とされるため、上述の第1実施形態や第2実施形態と比較して構成が簡素になる。
【0069】
[補足説明]
実施形態のデータ処理装置を構成する上位処理部100、データ管理部200、および下位処理部300は、それぞれ、例えば汎用のコンピュータシステムを基本ハードウェアとして用い、このコンピュータシステム上で所定のプログラム(ソフトウェア)を実行することによって実現することができる。このとき、上記のプログラムは、例えば、磁気ディスク(フレキシブルディスク、ハードディスクなど)、光ディスク(CD−ROM、CD−R、CD−RW、DVD−ROM、DVD±R、DVD±RW、Blu−ray(登録商標)Discなど)、半導体メモリ、またはこれに類する記録媒体に記録されて提供される。なお、プログラムを記録する記録媒体は、コンピュータシステムが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。また、上記プログラムを、コンピュータシステムに予めインストールするように構成してもよいし、ネットワークを介して配布される上記のプログラムをコンピュータシステムに適宜インストールするように構成してもよい。
【0070】
上記のコンピュータシステムで実行されるプログラムは、実施形態のデータ処理装置を構成する上位処理部100、データ管理部200、および下位処理部300それぞれの各機能的な構成要素を含むモジュール構成となっており、プロセッサがこのプログラムを適宜読み出して実行することにより、上述した上位処理部100、データ管理部200、および下位処理部300それぞれの各機能的な構成要素がメインメモリ上にロードされ、メインメモリ上に生成されるようになっている。
【0071】
なお、上述した上位処理部100、データ管理部200、および下位処理部300それぞれの各機能的な構成要素は、プログラム(ソフトウェア)により実現するだけでなく、その一部または全部を、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などの専用のハードウェアにより実現することもできる。
【0072】
なお、上述の第1実施形態乃至第4実施形態は、系列データとして音声データを入力し、この音声データに対する音声認識結果を結果データとして出力する音声認識装置(音声認識システム)としての構築例であるが、実施形態のデータ処理装置は、音声認識処理以外にも、例えば、文字認識処理やジェスチャ認識処理など、系列データに対する処理を行う装置(システム)に対して広く適用することができる。
【0073】
以上、本発明の実施形態を説明したが、ここで説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。