(57)【特許請求の範囲】
【請求項１】
系列データに対する所定処理の結果である結果データを生成するデータ処理装置であって、
前記系列データを構成するデータブロックに順序情報を付与する機能を有する複数の上位処理部と、
前記順序情報が付与された前記データブロックに対して下位処理を実行し、得られた値に前記データブロックと共通の順序情報を付与する下位処理部と、を備え、
前記複数の上位処理部のうち、前記データブロックに前記順序情報を付与した第１の上位処理部とは異なる第２の上位処理部が、前記共通の順序情報が付与された前記値を前記共通の順序情報に基づいて統合して上位処理を実行し、前記結果データを生成する、データ処理装置。
【請求項２】
前記データブロックは、前記下位処理部での処理単位となるデータブロックであり、
前記順序情報は、前記系列データにおける各データブロックの順序を表す情報である、請求項１に記載のデータ処理装置。
【請求項３】
前記第１の上位処理部は、前記順序情報が付与された前記データブロックを第１の格納部に格納し、
前記下位処理部は、前記第１の格納部に格納されている前記データブロックに対して前記下位処理を実行し、前記共通の順序情報が付与された前記値を第２の格納部に格納し、
前記第２の上位処理部は、前記第２の格納部に格納されている前記値を前記共通の順序情報に基づいて統合して前記上位処理を実行する、請求項１または２に記載のデータ処理装置。
【請求項４】
前記第１の上位処理部は、前記データブロックに分割されていない前記系列データを入力し、入力した前記系列データを前記データブロックに分割して前記順序情報を付与する、請求項１乃至３のいずれか一項に記載のデータ処理装置。
【請求項５】
前記第１の上位処理部は、前記データブロックの優先度を表す優先度情報をさらに付与し、
前記下位処理部は、前記順序情報と前記優先度情報とが付与された前記データブロックのうち、前記優先度情報が示す優先度が高い前記データブロックを優先して前記下位処理を実行する、請求項１乃至４のいずれか一項に記載のデータ処理装置。
【請求項６】
複数の前記下位処理部を備え、
前記第１の上位処理部は、前記データブロックに対して前記下位処理を実行する前記下位処理部を指定した指定情報をさらに付与し、
複数の前記下位処理部の各々は、前記指定情報が自己を示す前記データブロックに対して前記下位処理を実行する、請求項１乃至５のいずれか一項に記載のデータ処理装置。
【請求項７】
前記第１の格納部は前記下位処理部に設けられ、
前記第２の格納部は前記第２の上位処理部に設けられている、請求項３に記載のデータ処理装置。
【請求項８】
前記系列データは音声データであり、
前記所定処理は音声認識処理であり、
前記下位処理は、前記音声データのフレームごとのスコアを計算するスコア演算処理であり、
前記上位処理は、前記スコアに基づいて前記音声データに対する音声認識処理の結果を計算するデコード処理である、請求項１乃至７のいずれか一項に記載のデータ処理装置。
【請求項９】
前記下位処理部は、第１の計算リソースを用いて前記下位処理を実行し、
前記第２の上位処理部は、第２の計算リソースを用いて前記上位処理を実行し、
前記第１の計算リソースは前記第２の計算リソースよりも計算速度が速く、前記第２の計算リソースは前記第１の計算リソースよりもメモリ容量が大きい、請求項１乃至８のいずれか一項に記載のデータ処理装置。
【請求項１０】
系列データに対する所定処理の結果である結果データを生成するデータ処理装置において実行されるデータ処理方法であって、
複数の上位処理部のうちの第１の上位処理部が、前記系列データを構成するデータブロックに順序情報を付与するステップと、
下位処理部が、前記順序情報が付与された前記データブロックに対して下位処理を実行し、得られた値に前記データブロックと共通の順序情報を付与するステップと、
前記複数の上位処理部のうちの前記第１の上位処理部とは異なる第２の上位処理部が、前記共通の順序情報が付与された前記値を前記共通の順序情報に基づいて統合して上位処理を実行し、前記結果データを生成するステップと、を含むデータ処理方法。
【請求項１１】
コンピュータを、系列データに対する所定処理の結果である結果データを生成するデータ処理装置として機能させるためのプログラムであって、
前記コンピュータに、
前記系列データを構成するデータブロックに順序情報を付与する機能を有する複数の上位処理部と、
前記順序情報が付与された前記データブロックに対して下位処理を実行し、得られた値に前記データブロックと共通の順序情報を付与する下位処理部と、を実現させ、
前記複数の上位処理部のうち、前記データブロックに前記順序情報を付与した第１の上位処理部とは異なる第２の上位処理部が、前記共通の順序情報が付与された前記値を前記共通の順序情報に基づいて統合して上位処理を実行し、前記結果データを生成する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、データ処理装置、データ処理方法およびプログラムに関する。
【背景技術】
【０００２】
要求されたタスクの処理を並列化（分散処理）することで、処理を高速化して応答時間の短縮を図る技術がある。しかし、データの順序関係に依存した処理を行うタスク、つまり、あるデータの処理に、それよりも前のデータの処理結果が必要となるタスクを考えた場合、１つのタスクを分散処理することができない。
【０００３】
このようなタスクの例としては、デコーダ部とスコア演算部を持つ構成の音声認識装置による音声認識処理がある。この音声認識装置では、認識対象となる一連の音声データ（系列データ）を処理単位となるフレーム（一般的に１０ｍｓ程度）ごとに切り出して処理を行う。処理は、まずスコア演算部でフレームごとに音響・言語スコア（以下、単にスコアと呼ぶ。）を求める。次にデコーダ部で、一連の音声データを構成する各フレームのスコアをフレームの出現順に統合し、音声データ全体に対して統合スコアの最も高い結果を最終的な認識結果として出力する。このように、一連の音声データから音声認識結果を得るというタスクでは、あるフレームまでの統合スコアを求めるために、それよりも前に出現しているフレームのスコアが必要となる。
【０００４】
音声認識の分野では、これまで、発話区間と非発話区間とを含む入力データから検出された発話区間（この発話区間の音声データが、認識対象となる一連の音声データとなる。）ごとの音声認識処理を並列化したり、音響スコア計算の内部処理をタスクごとに分散処理したりする試みはあった。しかし、フレーム間の依存関係が結果に関わる一連の音声データを対象とする音声認識処理の全体を１つのタスクとしたときに、タスク自体の分散処理は行われておらず、処理の高速化に限界があった。
【０００５】
ほかにも、文字認識処理やジェスチャ認識処理などのように、系列データを処理の対象とするタスクでは、音声認識処理と同様にデータの順序関係に依存した処理が必要となるため、同様の問題が生じる。このため、系列データに対する分散処理を可能にする仕組みを構築し、さらなる処理の高速化を図ることが求められる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−１０１２０４号公報
【非特許文献】
【０００７】
【非特許文献１】Keliang  Zhang  and  Baifeng  Wu，“Task  Scheduling  for  GPU  Heterogeneous  Cluster”IEEE  International  Conference  on  Cluster  Computing  Workshops，2012
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明が解決しようとする課題は、系列データに対する分散処理を可能にして処理の高速化率を高めることができるデータ処理装置、データ処理方法およびプログラムを提供することである。
【課題を解決するための手段】
【０００９】
実施形態のデータ処理装置は、系列データに対する所定処理の結果である結果データを生成する。このデータ処理装置は、複数の上位処理部と、下位処理部と、を備える。複数の上位処理部は、前記系列データを構成するデータブロックに順序情報を付与する機能を有する。下位処理部は、前記順序情報が付与された前記データブロックに対して下位処理を実行し、得られた値に前記データブロックと共通の順序情報を付与する。そして、前記複数の上位処理部のうち、前記データブロックに前記順序情報を付与した第１の上位処理部とは異なる第２の上位処理部が、前記共通の順序情報が付与された前記値を前記共通の順序情報に基づいて統合して上位処理を実行し、前記結果データを生成する。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態のデータ処理装置の構成例を示すブロック図。
【図２】上位処理部による処理手順の一例を示すフローチャート。
【図３】下位処理部による処理手順の一例を示すフローチャート。
【図４】上位処理部による処理手順の一例を示すフローチャート。
【図５】第２実施形態の下位処理部による処理手順の一例を示すフローチャート。
【図６】第２実施形態の上位処理部による処理手順の一例を示すフローチャート。
【図７】第３実施形態のデータ処理装置の概略構成例を示すブロック図。
【図８】第４実施形態のデータ処理装置の構成例を示すブロック図。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照しながら、実施形態のデータ処理装置、データ処理方法およびプログラムについて詳細に説明する。実施形態のデータ処理装置は、系列データに対する所定処理の結果である結果データを生成するものであり、例えば、系列データとして音声データを入力し、この音声データに対する音声認識結果を結果データとして出力する音声認識装置（音声認識システム）として構築される。
【００１２】
音声認識装置は、認識対象となる一連の音声データ（１つの発話区間の音声データ）を、装置内部での処理単位となるフレームごとに切り出してフレームごとのスコアを求め、各フレームのスコアをフレームの出現順に統合して、音声データ全体に対して統合スコアの最も高い結果を最終的な音声認識結果として出力する。ここで、フレームごとのスコアを計算するスコア演算処理と、各フレームのスコアを統合して最終的な音声認識結果を得るデコード処理とでは、効率的な処理を実現する上で最適な計算リソースが異なる。すなわち、スコア演算処理は、ＤＮＮ（deep  neural  network）などによるスコア計算を行う。そのため、スコア演算処理を実行するための計算リソースとしては、ＧＰＧＰＵのように計算そのものを高速に実行できるハードウェアが理想的である。一方、デコード処理は、多数のスコアを統合して音声認識結果の計算を行う。そのため、デコード処理を実行するための計算リソースとしては、大容量ＲＡＭを搭載したハードウェアが望ましい。
【００１３】
そこで、実施形態のデータ処理装置では、構成の異なる計算リソースを個別に用意し、計算速度が速い計算リソースを用いてスコア演算処理のような下位処理を実行し、メモリ容量が大きい計算リソースを用いてデコード処理のような上位処理を実行する。下位処理と上位処理との間でのデータの受け渡しには、プロセス間通信（ＩＰＣ：interprocess  communication）の技術を用いる。ここで下位処理とは、結果データの生成に必要な値を得るための処理であり、上位処理とは、下位処理により得られた値を用いて結果データを生成する処理である。実施形態のデータ処理装置を音声認識装置として構築する場合、結果データとしての音声認識結果の生成に必要な値であるフレームごとのスコアを計算するスコア演算処理が下位処理に相当し、下位処理により得られた値であるフレームごとのスコアを用いて結果データとしての音声認識結果を生成するデコード処理が上位処理に相当する。以下では、実施形態のデータ処理装置において下位処理を実行する部分を下位処理部と呼び、上位処理を実行する部分を上位処理部と呼ぶ。
【００１４】
実施形態のデータ処理装置は、系列データに対して、データの順序関係に依存せずに処理が可能な下位処理と、データの順序関係が重要となる上位処理とを含む一連の処理を行って結果データを生成することを１つのタスクとする。音声認識装置としての構築例では、認識対象となる一連の音声データ（１つの発話区間の音声データ）から１つの発話の音声認識結果（テキストデータ）を生成する一連の処理が１つのタスクとなる。ここで、認識対象の音声データに対してフレームごとのスコアを計算するスコア演算処理（下位処理）は、フレームの順序関係に依存せずに処理が可能である。一方、フレームごとのスコアを用いて音声認識結果を生成するデコード処理（上位処理）は、フレーム間の順序関係に依存した処理となる。
【００１５】
実施形態のデータ処理装置では、このような１つのタスクに対し、データの順序関係に依存せずに処理が可能な下位処理を並列化（分散処理）することにより、１つのタスクの処理を高速化することが可能な仕組みを持つ。すなわち、実施形態のデータ処理装置では、上位処理部が、１つのタスクで処理する系列データ（音声認識装置としての構築例では１つの発話区間の音声データ）に対し、その系列データを構成するデータブロックであって処理単位となるデータブロック（音声認識装置としての構築例ではフレーム）ごとに、その系列データにおける各データブロックの順序を表す順序情報を付与して第１の格納部に格納する。また、下位処理部が、第１の格納部に格納されているデータブロックに対して下位処理を実行し、得られた値（音声認識装置としての構築例ではフレームごとのスコア）にデータブロックと共通の順序情報を付与して第２の格納部に格納する。そして、上位処理部は、第２の格納部に格納されている値を順序情報に基づいて統合して上位処理を実行する。
【００１６】
このように、実施形態のデータ処理装置は、上位処理部と下位処理部との間で、バッファ（第１の格納部および第２の格納部）を介して、データの受け渡し（プロセス間通信）を行う。このとき、１つのタスクで処理する系列データを構成する各データブロックや、これらのデータブロックに対する下位処理によって得られたそれぞれの値に対して、順序関係が分かる順序情報を付与しておく。これにより、各データブロックを対象とした下位処理を並列化しつつ、順序関係に依存する上位処理を適切に実行することができる。つまり、実施形態のデータ処理装置では、上述の仕組みを持つことで、１つのタスクで処理する系列データに対する分散処理を可能にし、処理の高速化率を高めることができる。
【００１７】
また、従来のプロセス間通信では、音声データのように順序関係が重要な系列データを扱う場合は、例えばＴＣＰ（Transmission  Control  Protocol）のようにデータの順序関係が保障されるプロトコルを用いる必要があったが、実施形態のデータ処理装置で行うプロセス間通信では、このような制約がない。
【００１８】
以下では、音声認識装置としての構築例を想定しながら、実施形態のデータ処理装置の具体例についてさらに詳しく説明する。
【００１９】
［第１実施形態］
図１は、第１実施形態のデータ処理装置の構成例を示すブロック図である。図１に示すように、本実施形態のデータ処理装置は、上位処理部１００と、データ管理部２００と、下位処理部３００と、を備える。上位処理部１００、データ管理部２００、および下位処理部３００は、各々独立の情報処理装置（コンピュータ）を用いて実現されていてもよいし、一部または全部が共通の情報処理装置（コンピュータ）を用いて実現される構成であってもよい。上位処理部１００と下位処理部３００とを個別の情報処理装置を用いて実現する場合、メモリ容量が大きい計算リソースを備えた情報処理装置を用いて上位処理部１００を実現し、計算速度が速い計算リソースを備えた情報処理装置を用いて下位処理部３００を実現することが望ましい。また、上位処理部１００と下位処理部３００とを共通の情報処理装置を用いて実現する場合、構成が異なる少なくとも２つの計算リソースを備えた情報処理装置を用い、メモリ容量が大きい計算リソースにより上位処理部１００を実現し、計算速度が速い計算リソースにより下位処理部３００を実現することが望ましい。
【００２０】
上位処理部１００とデータ管理部２００、データ管理部２００と下位処理部３００をそれぞれ個別の情報処理装置を用いて実現する場合、これらの情報処理装置はＬＡＮやインターネットなどの通信回線により接続されているものとする。また、上位処理部１００とデータ管理部２００、データ管理部２００と下位処理部３００をそれぞれ共通の情報処理装置を用いて実現する場合、これらの各部がバスにより接続されているものとする。
【００２１】
図１に示すように、上位処理部１００は、入力受付部１０１、フレーム分割部１０２、データ送信部１０３（順序情報付与部）、スコア受信部１０４、および結果演算部１０５を有する。また、データ管理部２００は、データ格納部２０１（第１の格納部）、データ送信部２０２、スコア格納部２０３（第２の格納部）、およびスコア送信部２０４を有する。また、下位処理部３００は、データ受信部３０１、データ変換部３０２、スコア演算部３０３、およびスコア送信部３０４を有する。以下、これら各部の役割を説明する。
【００２２】
上位処理部１００の入力受付部１０１は、本実施形態のデータ処理装置が１つのタスクを実行するにあたり、このタスクで処理する音声データ（系列データ）の入力を受け付ける。本実施形態のデータ処理装置が１つのタスクで処理する音声データは、上述したように、１つの発話区間の音声データである。本実施形態のデータ処理装置に入力されるデータが発話区間と非発話区間とを含むデータである場合、例えば上位処理部１００において発話区間を検出し、検出した発話区間ごとの音声データを１つのタスクで処理する音声データとして、入力受付部１０１が受け付けるようにしてもよい。
【００２３】
フレーム分割部１０２は、入力受付部１０１が入力を受け付けた音声データを、装置内部での処理単位となるフレーム（データブロック）に分割する。なお、入力受付部１０１が入力を受け付けた音声データがすでにフレーム分割されている場合は、フレーム分割部１０２の処理は不要である。また、フレーム分割部１０２は、分割した各フレームのデータ（以下、フレームデータと呼ぶ。）が音声波形データである場合、この音声波形データを音響特徴量に変換する処理を行ってもよい。
【００２４】
データ送信部１０３は、フレーム分割部１０２で分割された各フレームデータに対し、認識対象の音声データにおける各フレームの順序を表す順序情報を付与してデータ管理部２００に送信する。データ管理部２００に送信された順序情報が付与されたフレームデータは、データ格納部２０１に格納される。各フレームデータに対して付与する順序情報は、順序を特定できる情報であればよく、連続数値のほか離散数値、アルファベット、およびそれらから構成される文字列などを用いることができる。
【００２５】
また、データ送信部１０３は、フレーム分割部１０２で分割された各フレームデータに対し、上述の順序情報に加えて、フレームの優先度を表す優先度情報をさらに付与してデータ管理部２００に送信してもよい。優先度情報の付与により、順序とは別に処理の順番を制御するなどの応用が可能となる。例えば、本実施形態のデータ処理装置に入力されたデータが複数の発話区間を含むデータであり、このデータから検出された複数の発話区間の音声データに対して複数のタスクの音声認識処理を行う場合などにおいて、順序が後のタスクで処理する音声データの方が前のタスクで処理する音声データよりもノイズが少なく、即座に結果を返せるのであれば、順序が後のタスクで処理する音声データの各フレームの優先度を高くして、後のタスクの処理を優先させる。これにより、はじめに応答を返すまでの時間を短縮できる。また、例えば、１つのタスクで処理する音声データの各フレームに対し、下位処理部３００でのスコア計算に要する時間を予測できる場合、スコア計算に時間がかかるフレームの優先度を高くして、そのフレームに対するスコア計算を先に開始させる。これにより、１つのタスクに対するトータルの処理時間を短縮できる。
【００２６】
データ管理部２００のデータ送信部２０２は、下位処理部３００からのデータ参照要求に応じて、下位処理部３００で未処理のフレームデータがデータ格納部２０１に格納されているか否かを確認し、データ格納部２０１に未処理のフレームデータが格納されている場合に、そのフレームデータをデータ格納部２０１から読み出して下位処理部３００に送信する。このとき、データ格納部２０１に優先度情報が付与された未処理のフレームデータが複数格納されている場合、データ送信部２０２は、優先度が高いフレームデータから順にデータ格納部２０１から読み出して下位処理部３００に送信する。また、データ格納部２０１に格納されているフレームデータに優先度情報が付与されていない場合、データ送信部２０２は、データ格納部２０１に格納されている複数のフレームデータのうち、順序情報で示される順序が前のフレームデータから順に読み出して下位処理部３００に送信するように構成してもよい。
【００２７】
下位処理部３００のデータ受信部３０１は、データ管理部２００に対してデータ参照要求を送信し、その応答としてデータ管理部２００から未処理のフレームデータが送られてくると、そのフレームデータを受信する。データ受信部３０１が受信するフレームデータは、上述したように、上位処理部１００において順序情報が付与されたフレームデータである。
【００２８】
データ変換部３０２は、データ受信部３０１が受信したフレームデータを、スコア計算に適した音響特徴量などのデータに変換する。なお、上述した上位処理部１００のフレーム分割部１０２によってフレームデータが音声波形データから音響特徴量に変換されている場合など、データ受信部３０１が受信したフレームデータがすでにスコア計算に適したデータとなっている場合は、データ変換部３０２の処理は不要である。
【００２９】
スコア演算部３０３は、データ変換部３０２により変換されたフレームデータ（データ変換部３０２による変換が不要な場合は、データ受信部３０１が受信したフレームデータとなる。）をもとに、例えばＤＮＮなどによるフレームごとのスコア計算を行う。フレームごとのスコアは、一般にフレームデータから計算される複数の値の集合（スコア集合）であるが、ここでは単にスコアと呼ぶ。スコア演算部３０３によるフレームごとのスコア計算は、フレームの順序関係に依存しない処理となるため、複数のフレームに対するスコア計算を並列化して行うことができる。
【００３０】
スコア送信部３０４は、スコア演算部３０３でのスコア計算によって得られたフレームごとのスコアに対し、フレームデータと共通の順序情報を付与してデータ管理部２００に送信する。データ管理部２００に送信された順序情報が付与されたスコアは、スコア格納部２０３に格納される。なお、フレームデータと共通の順序情報は、上位処理部１００によってフレームデータに付与された順序情報と同じ順序を表すものであればよく、必ずしもフレームデータに付与された順序情報と同一の情報である必要はない。例えば、フレームデータに付与された順序情報を元に計算される情報を、スコアに付与してもよい。
【００３１】
データ管理部２００のスコア送信部２０４は、上位処理部１００からのスコア参照要求に応じて、上位処理部１００で未処理のフレームのスコアがスコア格納部２０３に格納されているか否かを確認し、スコア格納部２０３に未処理のフレームのスコアが格納されている場合に、そのスコアをスコア格納部２０３から読み出して上位処理部１００に送信する。このとき、スコア格納部２０３に未処理のフレームのスコアが複数格納されている場合、スコア送信部２０４は、スコア格納部２０１に格納されている複数のスコアのうち、順序情報で示される順序が前のスコアから順に読み出して上位処理部１００に送信する。
【００３２】
上位処理部１００のスコア受信部１０４は、データ管理部２００に対してスコア参照要求を送信し、その応答としてデータ管理部２００から未処理のフレームのスコアが送られてくると、そのスコアを受信する。スコア受信部１０４が受信するスコアは、上述したように、フレームデータと共通の順序情報が付与されたスコアである。
【００３３】
結果演算部１０５は、スコア受信部１０４が受信した各フレームのスコアを、そのスコアに付与された順序情報に基づいて統合する。そして、結果演算部１０５は、入力受付部１０１が入力を受け付けた音声データ、すなわち、認識対象となる１つの発話区間の音声データに含まれる全てのフレームのスコアが統合されると、統合スコアが最も高くなる結果を音声データ全体に対する音声認識結果として生成し、外部のアプリケーションなどに出力する。
【００３４】
次に、本実施形態のデータ処理装置の動作例を説明する。
【００３５】
まず、図２を参照して、認識対象の音声データが入力されてからフレームデータをデータ格納部２０１に格納するまでの上位処理部１００による処理を説明する。図２は、このときの上位処理部１００による処理手順の一例を示すフローチャートである。
【００３６】
認識対象の音声データが上位処理部１００に入力されると、まず、入力受付部１０１が、その音声データの入力を受け付ける（ステップＳ１０１）。入力受付部１０１によって入力が受け付けられた音声データは、フレーム分割部１０２に渡される。
【００３７】
次に、フレーム分割部１０２が、入力受付部１０１から渡された音声データをフレーム分割する（ステップＳ１０２）。フレーム分割部１０２の処理により得られた各フレームデータは、データ送信部１０３に渡される。
【００３８】
次に、データ送信部１０３が、フレーム分割部１０２から渡された各フレームデータに対し、音声データにおける各フレームの順序を表す順序情報を付与してデータ管理部２００に送信する（ステップＳ１０３）。このとき、データ送信部１０３は、各フレームの優先度を表す優先情報をフレームデータにさらに付与してデータ管理部２００に送信してもよい。データ送信部１０３からデータ管理部２００に送信されたフレームデータは、データ格納部２０１に格納される。
【００３９】
次に、図３を参照して、下位処理部３００による処理を説明する。図３は、下位処理部３００による処理手順の一例を示すフローチャートである。
【００４０】
下位処理部３００では、まず、データ受信部３０１が、データ管理部２００に対してデータ参照要求を送信する（ステップＳ２０１）。このとき、データ管理部２００のデータ格納部２０１に下位処理部３００で未処理のフレームデータが格納されていれば、データ管理部２００のデータ送信部２０２から下位処理部３００に対し、データ参照要求に対する応答として、この未処理のフレームデータが送信される。また、優先度情報が付与された未処理のフレームデータがデータ格納部２０１に複数格納されていれば、優先度の高いフレームデータから順に送信される。
【００４１】
データ受信部３０１は、データ管理部２００に対してデータ参照要求を送信した後、このデータ参照要求に対する応答としてデータ管理部２００からフレームデータが送信されたか否かを判定する（ステップＳ２０２）。そして、データ管理部２００からフレームデータが送信されると（ステップＳ２０２：Ｙｅｓ）、このフレームデータを受信する（ステップＳ２０３）。データ受信部３０１により受信されたフレームデータは、データ変換部３０２に渡される。一方、データ管理部２００からフレームデータが送信されない場合は（ステップＳ２０２：Ｎｏ）、ステップＳ２０１に戻って、データ受信部３０１によるデータ参照要求の送信が再度行われ、以降の処理が繰り返される。
【００４２】
次に、データ変換部３０２が、データ受信部３０１から渡されたフレームデータを、スコア計算に適した音響特徴量などのデータに変換する（ステップＳ２０４）。データ変換部３０２により変換されたフレームデータは、スコア演算部３０３に渡される。なお、データ受信部３０１から渡されたフレームデータがすでにスコア計算に適したデータとなっている場合は、ステップＳ２０４の処理は省略される。
【００４３】
次に、スコア演算部３０３が、データ変換部３０２から渡されたフレームデータをもとに、フレームごとのスコアを計算する（ステップＳ２０５）。スコア演算部３０３により計算されたフレームごとのスコアは、スコア送信部３０４に渡される。
【００４４】
次に、スコア送信部３０４が、スコア演算部３０３から渡されたフレームごとのスコアに対し、フレームデータと共通の順序情報を付与してデータ管理部２００に送信する（ステップＳ２０６）。スコア送信部３０４からデータ管理部２００に送信されたフレームごとのスコアは、スコア格納部２０３に格納される。
【００４５】
次に、図４を参照して、スコア格納部２０３に格納されたスコアを用いて認識対象の音声データに対する音声認識結果を生成する上位処理部１００による処理を説明する。図４は、このときの上位処理部１００による処理手順の一例を示すフローチャートである。
【００４６】
上位処理部１００では、まず、スコア受信部１０４が、データ管理部２００に対してスコア参照要求を送信する（ステップＳ３０１）。このとき、データ管理部２００のスコア格納部２０３に上位処理部１００で未処理のスコアが格納されていれば、データ管理部２００のスコア送信部２０４から上位処理部１００に対し、スコア参照要求に対する応答として、この未処理のスコアが送信される。未処理のスコアがスコア格納部２０３に複数格納されている場合は、順序情報で示される順序が前のスコアから順に送信される。
【００４７】
スコア受信部１０４は、データ管理部２００に対してスコア参照要求を送信した後、このスコア参照要求に対する応答としてデータ管理部２００からスコアが送信されたか否かを判定する（ステップＳ３０２）。そして、データ管理部２００からスコアが送信されると（ステップＳ３０２：Ｙｅｓ）、このスコアを受信する（ステップＳ３０３）。スコア受信部１０４により受信されたスコアは、結果演算部１０５に渡される。一方、データ管理部２００からスコアが送信されない場合は（ステップＳ３０２：Ｎｏ）、ステップＳ３０１に戻って、スコア受信部１０４によるスコア参照要求の送信が再度行われ、以降の処理が繰り返される。
【００４８】
次に、結果演算部１０５が、スコア受信部１０４から渡された各フレームのスコアを、スコアに付与された順序情報に基づいて、認識対象の音声データにおけるフレームの順序と整合するように統合する（ステップＳ３０４）。
【００４９】
その後、結果演算部１０５は、認識対象の音声データの最終フレームまでスコアが統合されたか否かを判定する（ステップＳ３０５）。そして、最終フレームまでスコアが統合されていない場合は（ステップＳ３０５：Ｎｏ）、ステップＳ３０１に戻って、スコア受信部１０４によるスコア参照要求の送信が再度行われ、以降の処理が繰り返される。
【００５０】
一方、認識対象の音声データの最終フレームまでスコアが統合されると（ステップＳ３０５：Ｙｅｓ）、結果演算部１０５は、最終フレームまでの統合スコアが最も高くなる結果を、認識対象の音声データに対する音声認識結果として生成する（ステップＳ３０６）。そして、結果演算部１０５は、生成した音声認識結果を、外部のアプリケーションなどに出力する（ステップＳ３０７）。
【００５１】
以上、具体的な例を挙げながら説明したように、本実施形態のデータ処理装置では、上位処理部１００が、認識対象となる音声データのフレームごとに音声データにおける各フレームの順序を表す順序情報を付与して、データ管理部２００のデータ格納部２０１に格納する。また、下位処理部３００が、データ格納部２０１に格納されている各フレームデータをもとにフレームごとのスコア計算を行い、得られたフレームごとのスコアに対してフレームデータと共通の順序情報を付与して、データ管理部２００のスコア格納部２０３に格納する。そして、上位処理部１００は、スコア格納部２０３に格納されているフレームごとのスコアを順序情報に基づいて統合し、認識対象となる音声データに対する音声認識結果を生成する。したがって、本実施形態のデータ処理装置によれば、下位処理部３００によるフレームごとのスコア計算を並列化しながら、上位処理部１００による音声データ全体に対する音声認識結果の生成を適切に行うことができ、処理の高速化率を高めることができる。
【００５２】
［第２実施形態］
次に、第２実施形態について説明する。上述の第１実施形態では、データ管理部２００から下位処理部３００へのフレームデータの受け渡しと、データ管理部２００から上位処理部１００へのスコアの受け渡しを、それぞれ下位処理部３００や上位処理部１００がデータ管理部２００にアクセスしてフレームデータやスコアを取得する、いわゆるｐｕｌｌ型で行うようにしていた。これに対し、本実施形態では、データ管理部２００から下位処理部３００へのフレームデータの受け渡しと、データ管理部２００から上位処理部１００へのスコアの受け渡しを、それぞれデータ管理部２００からの自律的な送信、いわゆるｐｕｓｈ型で行う。以下では、第１実施形態との相違点のみを説明する。
【００５３】
本実施形態のデータ処理装置の構成は、第１実施形態のデータ処理装置の構成（図１参照）と同様であるため、詳細な説明は省略する。ただし、本実施形態では、下位処理部３００のデータ受信部３０１は、データ管理部２００に対するデータ参照要求の送信は行わず、データ管理部２００のデータ送信部２０２から自律的に送信されたフレームデータを受信する。また、本実施形態では、上位処理部１００のスコア受信部１０４は、データ管理部２００に対するスコア参照要求の送信は行わず、データ管理部２００のスコア送信部２０４から自律的に送信されたスコアを受信する。
【００５４】
本実施形態では、データ管理部２００のデータ送信部２０２が、データ格納部２０１に格納されているフレームデータを、優先度情報が付与されていればその優先度情報で示される優先度が高い順に、下位処理部３００に送信する。また、データ格納部２０１に格納されているフレームデータに優先度情報が付与されていなければ、データ送信部２０２は、例えば順序情報で示される順序が前のフレームデータから順に、下位処理部３００に送信する。下位処理部３００では、このようにデータ管理部２００のデータ送信部２０２から自律的に送信されたフレームデータを受信し、フレームごとのスコア計算を行う。
【００５５】
また、本実施形態では、データ管理部２００のスコア送信部２０４が、スコア格納部２０３に格納されているフレームごとのスコアを、順序情報で示される順序が前のフレームのスコアから順に、上位処理部１００に送信する。上位処理部１００では、このようにデータ管理部２００のスコア送信部２０４から自律的に送信されたフレームごとのスコアを受信し、順序情報に基づいて受信したスコアを統合して、音声データ全体に対する音声認識結果を生成する。
【００５６】
図５は、本実施形態の下位処理部３００による処理手順の一例を示すフローチャートである。本実施形態の下位処理部３００では、データ管理部２００からフレームデータが送信されると、データ受信部３０１がこのフレームデータを受信する（ステップＳ４０１）。その後、第１実施形態と同様に、データ変換部３０２によるデータ変換（ステップＳ４０２）、スコア演算部３０３によるフレームごとのスコア計算（ステップＳ４０３）、スコア送信部３０４による順序情報の付与およびデータ管理部２００へのスコアの送信（ステップＳ４０４）が行われる。
【００５７】
図６は、本実施形態の上位処理部１００による処理手順の一例を示すフローチャートである。本実施形態の上位処理部１００では、データ管理部２００からフレームごとのスコアが送信されると、スコア受信部１０４がこのスコアを受信する（ステップＳ５０１）。その後、第１実施形態と同様に、結果演算部１０５によるスコアの統合（ステップＳ５０２）、最終フレームまで統合されたかの判定（ステップＳ５０３）、統合スコアに基づく音声認識結果の生成（ステップＳ５０４）、および生成した音声認識結果の出力（ステップＳ５０５）が行われる。
【００５８】
本実施形態においても、上述した第１実施形態と同様に、上位処理部１００からデータ管理部２００を介して下位処理部３００に受け渡されるフレームデータ、および、下位処理部３００からデータ管理部２００を介して上位処理部１００に受け渡されるフレームごとのスコアには、認識対象となる音声データにおけるフレームの順序を表す順序情報が付与されている。したがって、本実施形態においても、上述した第１実施形態と同様に、下位処理部３００によるフレームごとのスコア計算を並列化しながら、上位処理部１００による音声データ全体に対する音声認識結果の生成を適切に行うことができ、処理の高速化率を高めることができる。
【００５９】
なお、本実施形態では、データ管理部２００から下位処理部３００へのフレームデータの受け渡しと、データ管理部２００から上位処理部１００へのスコアの受け渡しの双方をｐｕｓｈ型で行うようにしているが、いずれか一方をｐｕｓｈ型で行うようにしてもよい。
【００６０】
［第３実施形態］
次に、第３実施形態について説明する。本実施形態は、上位処理部１００、データ管理部２００、および下位処理部３００をそれぞれ複数備えるデータ処理装置の構成例である。上位処理部１００、データ管理部２００、および下位処理部３００それぞれの内部の構成は、第１実施形態のデータ処理装置の構成（図１参照）と同様である。また、データ処理装置の基本的な動作は、上述した第１実施形態あるいは第２実施形態と同様である。以下では、第１実施形態や第２実施形態との相違点のみを説明する。
【００６１】
図７は、本実施形態のデータ処理装置の概略構成例を示すブロック図である。図７に示すように、本実施形態のデータ処理装置は、上位処理部１００ａ，１００ｂ，１００ｃ（これらを総称する場合は上位処理部１００と表記する）と、データ管理部２００ａ，２００ｂ（これらを総称する場合はデータ管理部２００と表記する）と、下位処理部３００ａ，３００ｂ（これらを総称する場合は下位処理部３００と表記する）と、を備える。上位処理部１００ａ，１００ｂ，１００ｃとデータ管理部２００ａ，２００ｂとの間、データ管理部２００ａ，２００ｂと下位処理部３００ａ，３００ｂとの間は、それぞれＬＡＮやインターネットなどの通信回線により接続されているものとする。データ管理部２００ａ，２００ｂから下位処理部３００ａ，３００ｂへのフレームデータの受け渡しと、データ管理部２００ａ，２００ｂから上位処理部１００ａ，１００ｂ，１００ｃへのスコアの受け渡しは、第１実施形態のようなｐｕｌｌ型であってもよいし、第２実施形態のようなｐｕｓｈ型であってもよい。なお、図７に示した構成例では、上位処理部１００の数を３つ、データ管理部２００の数を２つ、下位処理部３００の数を２つとしているが、これら上位処理部１００、データ管理部２００、および下位処理部３００の数は任意であり、図７に例示した構成に限定されるものではない。
【００６２】
本実施形態では、上位処理部１００からデータ管理部２００に送信するフレームデータに対し、下位処理部３００ａ，３００ｂのうちで当該フレームデータを処理する下位処理部３００を指定した指定情報を付与してもよい。上位処理部１００からデータ管理部２００に送信されたフレームデータに指定情報が付与されている場合、データ管理部２００は、当該フレームデータを、指定情報により指定された下位処理部３００に対して送信する。
【００６３】
すなわち、データ管理部２００から下位処理部３００へのフレームデータの受け渡しをｐｕｌｌ型で行う場合、データ管理部２００は、データ格納部２０１に格納されているフレームデータのうち、指定情報が付与されたフレームデータについては、この指定情報で示される下位処理部３００以外の他の下位処理部３００からデータ参照要求があったとしても、当該フレームデータを他の下位処理部３００には送信しない。また、データ管理部２００から下位処理部３００へのフレームデータの受け渡しをｐｕｓｈ型で行う場合、データ管理部２００は、データ格納部２０１に格納されているフレームデータのうち、指定情報が付与されているフレームデータについては、この指定情報で示される下位処理部３００のみに当該フレームデータを送信する。そして、下位処理部３００は、指定情報が自己を示すフレームデータに対してスコア計算を行う。これにより、スコア計算に高い演算能力が必要なフレームデータの処理を、必要なスペックを持つ下位処理部３００に割り当てることができ、効率的な処理を実現できる。
【００６４】
また、本実施形態では、上位処理部１００ａ，１００ｂ，１００ｃのうち、フレームデータに順序情報を付与してデータ管理部２００に送信した上位処理部１００とは異なる上位処理部１００が、データ管理部２００から受信したスコアを統合して音声認識結果を生成することも可能である。つまり、音声データにおける各フレームの順序が順序情報で担保されるため、音声データの入力を受け付けた上位処理部１００とは別の上位処理部１００により、その音声データに対する音声認識結果を生成して出力することができる。これにより、特に、能力が高い、または、処理中でない上位処理部１００に対して音声認識結果を生成する処理を優先的に割り当てて、タスクの処理全体をより高速に実施することが可能となる。
【００６５】
［第４実施形態］
次に、第４実施形態について説明する。本実施形態は、データ格納部２０１を下位処理部３００に設けるとともに、スコア格納部２０３を上位処理部１００に設けることで、データ管理部２００を不要にしたデータ処理装置の構成例である。
【００６６】
図８は、本実施形態のデータ処理装置の構成例を示すブロック図である。図８に示すように、本実施形態のデータ処理装置では、図１に示した第１実施形態のデータ処理装置の構成と比較して、下位処理部３００のデータ受信部３０１の代わりにデータ格納部２０１が設けられている。また、上位処理部１００のスコア受信部１０４の代わりにスコア格納部２０３が設けられている。
【００６７】
本実施形態のデータ処理装置では、上位処理部１００のデータ送信部１０３が、順序情報を付与したフレームデータを下位処理部３００に送信する。下位処理部３００に送信されたフレームデータは、下位処理部３００に設けられたデータ格納部２０１に格納される。下位処理部３００では、データ格納部２０１に格納されたフレームデータが例えば順序情報で示される順序に従って読み出され、データ変換やスコア計算が行われる。そして、下位処理部３００のスコア送信部３０４は、順序情報を付与したスコアを上位処理部１００に送信する。上位処理部１００に送信されたスコアは、上位処理部１００に設けられたスコア格納部２０３に格納される。上位処理部１００では、スコア格納部２０３に格納されたスコアが順序情報で示される順序に従って読み出され、結合されて、音声認識結果が生成される。
【００６８】
以上のように、本実施形態のデータ処理装置では、データ管理部２００が不要とされるため、上述の第１実施形態や第２実施形態と比較して構成が簡素になる。
【００６９】
［補足説明］
実施形態のデータ処理装置を構成する上位処理部１００、データ管理部２００、および下位処理部３００は、それぞれ、例えば汎用のコンピュータシステムを基本ハードウェアとして用い、このコンピュータシステム上で所定のプログラム（ソフトウェア）を実行することによって実現することができる。このとき、上記のプログラムは、例えば、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ±Ｒ、ＤＶＤ±ＲＷ、Ｂｌｕ−ｒａｙ（登録商標）Ｄｉｓｃなど）、半導体メモリ、またはこれに類する記録媒体に記録されて提供される。なお、プログラムを記録する記録媒体は、コンピュータシステムが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。また、上記プログラムを、コンピュータシステムに予めインストールするように構成してもよいし、ネットワークを介して配布される上記のプログラムをコンピュータシステムに適宜インストールするように構成してもよい。
【００７０】
上記のコンピュータシステムで実行されるプログラムは、実施形態のデータ処理装置を構成する上位処理部１００、データ管理部２００、および下位処理部３００それぞれの各機能的な構成要素を含むモジュール構成となっており、プロセッサがこのプログラムを適宜読み出して実行することにより、上述した上位処理部１００、データ管理部２００、および下位処理部３００それぞれの各機能的な構成要素がメインメモリ上にロードされ、メインメモリ上に生成されるようになっている。
【００７１】
なお、上述した上位処理部１００、データ管理部２００、および下位処理部３００それぞれの各機能的な構成要素は、プログラム（ソフトウェア）により実現するだけでなく、その一部または全部を、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field-Programmable  Gate  Array）などの専用のハードウェアにより実現することもできる。
【００７２】
なお、上述の第１実施形態乃至第４実施形態は、系列データとして音声データを入力し、この音声データに対する音声認識結果を結果データとして出力する音声認識装置（音声認識システム）としての構築例であるが、実施形態のデータ処理装置は、音声認識処理以外にも、例えば、文字認識処理やジェスチャ認識処理など、系列データに対する処理を行う装置（システム）に対して広く適用することができる。
【００７３】
以上、本発明の実施形態を説明したが、ここで説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７４】
１００  上位処理部
１０１  入力受付部
１０２  フレーム分割部
１０３  データ送信部
１０４  スコア受信部
１０５  結果演算部
２００  データ管理部
２０１  データ格納部
２０２  データ送信部
２０３  スコア格納部
２０４  スコア送信部
３００  下位処理部
３０１  データ受信部
３０２  データ変換部
３０３  スコア演算部
３０４  スコア送信部
【図１】
0006430305.tif 000002
【図２】
0006430305.tif 000003
【図３】
0006430305.tif 000004
【図４】
0006430305.tif 000005
【図５】
0006430305.tif 000006
【図６】
0006430305.tif 000007
【図７】
0006430305.tif 000008
【図８】
0006430305.tif 000009