以下に添付図面を参照して、情報処理装置、情報処理方法、および情報処理プログラムを詳細に説明する。
(第1の実施の形態)
図1は、情報処理システム100の一例の模式図である。情報処理システム100は、音声認識端末12と、情報処理装置10と、表示端末14と、を備える。音声認識端末12と、情報処理装置10と、表示端末14と、はネットワーク16を介して接続されている。
ネットワーク16は、公知の通信網である。ネットワーク16は、例えば、インターネットや、携帯電話網、などである。ネットワーク16は、例えば、ケーブル、トランシーバー、ルーター、スイッチ、無線LANアクセスポイント、無線LAN送受信機、などによって実現される。
音声認識端末12は、出力された音声を認識し、対象文データ(詳細後述)を出力する。音声認識端末12は、音声を収音するマイクと、公知の音声認識機能と、を備える。音声認識端末12は、例えば、パーソナルコンピュータや、タブレット端末などである。
情報処理装置10は、音声認識端末12で認識された対象文データに含まれるテキストの修正に用いる。情報処理装置10は、ユーザからの操作指示を受付ける入力機能と、画像を表示する表示機能と、を備える。なお、情報処理装置10は、入力機能と表示機能とを一体的に備えた、タッチパネルを備えた構成として説明するが、これに限られない。情報処理装置10は、例えば、パーソナルコンピュータや、タブレット端末などである。
表示端末14は、字幕を表示するための端末である。表示端末14は、字幕を表示する表示機能を少なくとも備える。表示端末14は、例えば、パーソナルコンピュータや、タブレット端末などである。
本実施の形態の情報処理システム100では、音声認識端末12が音声を認識し、認識したテキストデータを含む対象文データを情報処理装置10へ出力する。情報処理装置10は、対象文データを修正し、表示端末14へ出力する。表示端末14は、情報処理装置10から受付けたテキストデータを、字幕として表示する。
なお、図1には、情報処理システム100が、1台の音声認識端末12と、1台の情報処理装置10と、複数台の表示端末14と、を備えた構成である場合を、一例として示した。しかし、情報処理システム100に設けられる、音声認識端末12および情報処理装置10の台数は、1台に限定されない。同様に、情報処理システム100に設けられる表示端末14の台数も、限定されない。
次に、情報処理装置10の機能的構成を説明する。図2は、情報処理装置10の機能ブロック図の一例である。
情報処理装置10は、制御部20と、記憶部22と、UI部24と、を備える。記憶部22およびUI部24は、制御部20とデータや信号を授受可能に接続されている。
UI部24は、ユーザからの操作指示を受付ける入力機能と、画像を表示する表示機能と、を備える。入力機能は、例えば、キーボード、マウス、などである。表示機能は、例えば、液晶表示装置や、有機EL(エレクトロルミネッセンス)ディスプレイなどである。本実施の形態では、UI部24が入力機能と表示機能を一体に備えたタッチパネルである場合を、一例として説明するが、これに限らない。
記憶部22は、各種情報を記憶する。本実施の形態では、記憶部22は、対象文データ30を記憶する。記憶部22は、HDD(ハードディスクドライブ)などの公知の記憶媒体である。なお、記憶部22を、ネットワーク16を介して接続された外部装置に設けてもよい。
図3は、対象文データ30のデータ構成の一例を示す模式図である。対象文データ30は、音声認識端末12によって音声認識されたテキストデータと、発話時刻と、を含む。詳細には、対象文データ30は、形態素と、形態素に対応する発話時刻と、を含む。
テキストデータは、複数の形態素を含む。本実施の形態では、形態素とは、意味を有する最小の言語の単位を1または複数含み、一つ以上の音素から構成される。なお、テキストデータは、各形態素の読みを示す情報などを、更に含んでいてもよい。修正は、主に単語、文節単位で行われることから、以下、「形態素」と表現した場合は、主に、単語、文節等を表す。
発話時刻は、各形態素の発話された時刻を示す。本実施の形態では、発話時刻は、各形態素の発話された、発話開始時刻と発話終了時刻とで表される。発話開始時刻は、以下では、単に開始時刻と称して説明する。同様に、発話終了時刻は、以下では、単に終了時刻と称して説明する。
なお、形態素の発話時刻は、開始時刻と終了時刻で表される形態に限定されない。形態素の発話時刻は、情報処理装置10側で時刻に変換可能な形態で表されたものであればよい。例えば、形態素の発話時刻は、秒数、音声認識回数を示すカウント数、などであってもよい。また、対象文データ30における先頭の形態素についてのみ、発話時刻として開始時刻を保持し、他の形態素については、該先頭の形態素からの経過時間(相対時間)を示す情報を発話時刻として保持してもよい。
情報処理装置10は、音声認識端末12から取得した対象文データ30を、修正単位リスト36として、記憶部22へ記憶する。制御部20は、修正単位リスト36に登録された対象文データ30について、後述する処理を実行する。
なお、図3には、分割スコアを示した。分割スコアは、後述する制御部20の処理によって各形態素に付与される。このため、音声認識端末12から取得した対象文データ30には、分割スコアは付与されていない。
制御部20は、情報処理装置10全体を制御する。制御部20は、取得部20Aと、分割部20Bと、修正部20Cと、付与部20Dと、出力部20Eと、表示制御部20Fと、受付部20Gと、を含む。
上記各部は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPU(Central Processing Unit)などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のIC(Integrated Circuit)などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
取得部20Aは、対象文データ30を取得する。すなわち、取得部20Aは、音声認識された複数の形態素と、形態素の発話時刻と、を含む対象文データ30を取得する。
例えば、取得部20Aは、図3に示す対象文データ30を取得する。なお、対象文データ30のデータの記述形式は限定されない。例えば、取得部20Aは、JSON(JavaScript(登録商標) Object Notation)形式で記述された対象文データ30を、音声認識端末12から取得する。なお、対象文データ30のデータ記述形式はこれに限らず、XML、バイナリ表現、独自の記述形式、などであってもよい。
なお、図3には、日本語の表記で表した場合を一例として示しているが、日本語に限定されない。例えば、図4に示すように、対象文データ30は、テキストデータ(形態素)を英語で表記した対象文データ31であってもよい。
図2に戻り説明を続ける。分割部20Bは、対象文データ30を、修正単位に分割する。修正単位とは、ユーザによって修正可能な単位である。
ここで、対象文データ30に含まれる、形態素の群(形態素列)からなるテキストデータには、音声認識端末12によって誤認識された形態素が含まれる場合がある。例えば、ユーザは、テキストデータの中の形態素と音声とのマッチングをとりながら、誤っている箇所を探して修正する。このため、修正単位が長いほど、ユーザによる探索負荷が増え、修正に要する時間も長くなる。
そこで、分割部20Bは、図3に示すように、対象文データ30を、複数の修正単位32に分割する。図3には、対象文データ30を、複数の修正単位32(修正単位32A、修正単位32B、修正単位32C、修正単位32D)に分割した例を、示した。
例えば、分割部20Bは、対象文データ30に含まれるテキストデータを、予め定めた時間長TSに近く、且つ、文の切れ目となる形態素の位置で、複数の修正単位32に分割する。ここで、時間長TSに近く、且つ、文の切れ目となる形態素の位置はテキストデータの分割位置である。時間長TSは、予め設定すればよい。
詳細には、分割部20Bは、テキストデータを構成する形態素の各々に対して分割スコアSSを算出する。分割スコアSSは、対応する形態素と時間的に次の発話時刻の形態素との間の、区切り易さを表す値である。
まず、分割部20Bは対象文データ30に含まれる形態素の各々について、式(1)を用いて、分割スコアを算出する。
式(1)中、Siは、i番目の形態素の分割スコアを示す。i番目とは、対象文データ30における先頭位置を一番目とした、形態素の位置を示す。また、式(1)中、αおよびβは、予め定めた係数である。また、式(1)中、ti+1 bは、i+1番目の形態素の開始時刻を示し、ti eは、i番目の形態素の終了時刻を示す。また、式(1)中、piは、句読点スコアを示す。句読点スコアは、下記式(2)で表される。
式(2)中、wiは、i番目の形態素を示す。
次に、分割部20Bは、分割スコアを用いて、対象文データ30を複数の修正単位32に分割する。
例えば、T1 S<Ts<T2 Sの関係を満たす閾値T1 Sおよび閾値T2 Sを定める。閾値T1 Sは、許容する修正単位の最小時間長を示す値であり、例えば、300である。閾値T2 Sは、許容する修正単位の最大時間長を示す値であり、例えば、10000である。
そして、分割部20Bは、上記式(3)の関係を満たす場合には、上記式(4)および式(5)の関係を満たす、発話時刻の経過方向に沿って連続する形態素列を、1つの修正単位32として用いる。
なお、式(3)中、tn eは、対象文データ30に含まれる最初の形態素の開始時刻を示し、t1 bは、対象文データ30に含まれる最後の形態素の終了時刻を示す。すなわち、式(3)の左辺(tn e−t1 b)は、対象文データ30の長さ(時間長)を示す。
また、式(4)中、kは分割位置を示す。また、式(4)中、Skは、分割スコアを示す。また、式(5)中、tk eは、k番目の形態素の終了時刻示し、t1 bは、1番目の形態素の開始時刻を示す。
このようにして、分割部20Bは、対象文データ30に含まれるテキストデータを、複数の修正単位32に分割する。
図3に示すように、分割スコアに応じて、対象文データ30を、複数の修正単位32に分割する。
なお、図3には、α=2、β=3、T1 S=300、TS=4000、T2 S=10000として、対象文データ30を修正単位32に分割した場合を、一例として示している。
テキストデータが日本語以外の他の言語で表記されている場合についても、同様に、分割部20Bは、形態素ごとに分割スコアを算出し、対象文データ30を修正単位32へ分割すればよい。例えば、図4に示すように、分割部20Bは、英語の表記で表された対象文データ31に含まれる形態素の各々の分割スコアを算出する。そして、分割部20Bは、分割スコアに応じて、対象文データ31を、複数の修正単位32(修正単位32A’〜修正単位32D’)に分割すればよい。
図2に戻り説明を続ける。修正部20Cは、ユーザによる操作入力に応じて、修正単位32に含まれる形態素や発話時刻(本実施の形態では、開始時刻、終了時刻)を修正する。
まず、修正部20Cは、表示制御部20Fへ修正単位32を出力する。表示制御部20Fは、修正単位32に含まれる形態素を修正するための修正画面を、UI部24へ表示する制御を行う。ユーザは、UI部24へ表示された修正単位32に含まれる形態素を参照しながら、UI部24を操作することで、修正操作を行う。受付部20Gは、ユーザによる入力を受付ける。
ユーザは、例えば、ペンを用いて、UI部24を介して修正操作を行う。本実施の形態では、ユーザは、スタイラスペンを用いて、修正画面に直接ストロークを書込むことで、修正操作を行う場合を説明する。
例えば、ユーザはジェスチャ(ストロークの形)と位置によって、修正操作の種類を指定する。ここで、ジェスチャとはユーザ入力によって認識されたストロークの形を表し、入力されたストロークの形と修正操作を予め対応付けておくことによってユーザの操作を可能にする。また、ストロークとは手書き入力された筆画であり、例えばペン等が入力面に接してから離れるまでの軌跡を表す。
図5は、修正操作の種類と、ストロークの形と、の対応例を示す模式図である。修正操作の種類は、例えば、削除、挿入、置換、確定、の4種類である。修正操作の種類「削除」は、指定した箇所の削除を示す。「挿入」は、指定した箇所に新たな文字列や画像(以下修正文字列と称する場合がある)を挿入することを示す。「置換」は、指定した箇所を新たな文字列や画像で置き換える事を示す。「確定」は、指定した箇所までの修正を確定したことを示す。
ユーザは、UI部24に表示された修正画面上に、所望のストロークを入力する。受付部20Gはユーザの入力を受け付け、ストロークの形における特徴点の位置から、修正操作の種類や、修正対象の文字列などを特定する。
なお、「挿入」および「置換」の場合には、ユーザは、挿入または置換する修正文字列(文字列や画像)を入力する必要がある。本実施の形態では、修正画面は、手書き入力欄を含む。
ユーザは、スタイラスペンを用いて、修正画面における手書き入力欄に、挿入または置換する修正文字列を入力する。そして、例えば、ユーザによって、手書き入力欄の外側をタッチすると、受付部20Gは、手書き入力欄への入力が終了したことを受け付ける。
そして、修正部20Cは、手書き入力欄に入力されたストローク集合の画像を修正文字列として、受付部20Gを介して受け付ける。なお、修正部20Cは、手書き入力欄に入力されたストローク集合の画像に対して、公知の文字認識処理を行い、文字認識結果を示すテキストを、修正文字列として受け付けてもよい。
図6は、修正画面40の一例を示す模式図である。修正画面40には、確定領域41Aと、修正領域41Bと、が設けられている。
確定領域41Aは、確定文34の表示される領域である。確定文34は、修正単位32に対応する、修正の確定したテキストデータである。
修正領域41Bは、修正中の修正単位32が表示される領域である。修正領域41Bには、手書入力領域Hが表示される場合がある。ユーザは、スタイラスペンPなどを用いて手書入力領域Hにストロークを書くことで、修正文字列を入力する。
例えば、図6(A)に示すように、修正領域41Bに表示されている修正単位32における、日本語表記の「温泉入浴」を「音声入力」に置換すると仮定する。この場合、ユーザはスタイラスペンPを操作することで、「置換」に対応する形のストロークSを、修正対象の「温泉入浴」上に入力する。そして、受付部20Gを介してストロークを受付ける。修正部20Cは、ストロークを認識することで、修正操作の種類である「置換」を特定すると、手書入力領域Hを含む修正画面40BをUI部24へ表示する(図6(B)、修正画面40B参照)。
例えば、ユーザが手書入力領域Hに「音声入力」という文字を手書き入力し、手書入力領域Hの外側をタッチしたと仮定する(図6(C)、修正画面40C参照)。すると、修正部20Cは、修正領域41Bに表示されている修正単位32における、日本語表記の「温泉入浴」を、手書入力された「音声入力」に置換する(図6(D)の修正画面40D参照)。
また、ユーザが、修正を確定する場合、図6(E)に示すように、修正領域41Bに表示されている修正単位32における、確定した範囲を示すストロークを入力する。例えば、ユーザは、スタイラスペンPを操作することで、日本語表記の「まずアジェンダです」と「が、まず背景の」との間を通るように、「確定」に対応するストロークSを入力する(図6(E)の修正画面40E参照)。そして、修正部20Cは、受付部20Gを介してストロークを受付けと、修正操作の種類「確定」を特定する。
修正部20Cは、修正操作の種類「確定」に対応する形のストロークの描かれた時刻を、該ストロークの描かれた修正単位32に対応する確定文34の、確定時刻として扱う。
そして修正部20Cは、確定した修正単位32である「まずアジェンダです」を修正領域41Bから削除し、該修正単位32に対応する確定文34として確定領域41Aへ移すように、表示制御部20Fを制御する。このため、UI部24には、図6(F)に示す修正画面40Fが表示される。
以上のようにして、ユーザは、修正領域41Bに表示されている修正単位32を順次修正し、修正を確定した確定文34としていく。
そして、上記の「確定」の操作が繰り返され、修正領域41Bに表示される修正単位32が全て確定文34となったときに、対象文データ30に含まれる修正単位32の全てについて、ユーザによる修正が確定した状態となる。
なお、図6には、テキストデータを日本語の表記で表した場合の修正画面40の一例を示した。しかし、テキストデータを英語の表記で表した場合についても、同様に、修正部20Cは、修正画面40をUI部24へ表示すればよい。図7は、英語の表記で表した場合の、修正画面40(修正画面40G)の一例を示す模式図である。
英語で表記されている場合についても同様に、修正部20Cは、修正画面40GをUI部24へ表示し、ユーザによる修正を受付ければよい。
ここで、ユーザによる修正処理によって、修正単位32に含まれるテキストデータ少なくとも一部の長さが変化する場合がある。例えば、修正単位32に含まれる、音素の少なくとも一部の削除や置換、より長い他の単語や文節への置換、より短い他の単語や文節への置換、または、他の音素の挿入、などの修正操作がなされる場合がある。
この場合、修正単位32に含まれる形態素の各々に対応する発話時刻にずれが生じる場合がある。
そこで、修正部20Cは、修正前の形態素に対応する発話時刻(本実施の形態では開始時刻と終了時刻)を出来るだけ保持し、修正後の形態素に対応づける。
図8は、発話時刻の修正の一例を示す模式図である。例えば、図8(A)に示す修正単位32Eが、ユーザによる修正操作によって、形態素「えーと」が削除されたとする。また、形態素「温泉」および「入浴」が、「音声」および「入力」に置換されたとする。また、形態素「で」と形態素「入力」との間に、新たな形態素「の」が挿入されたとする。
この場合、修正単位32Eに対応する確定文34に含まれるテキストデータは、図8(B)に示すものとなる。修正部20Cは、変更された形態素に対応する発話時刻(開始時刻、終了時刻)を、変更前の形態素に対応する発話時刻(開始時刻、終了時刻)に対応づける。例えば、修正部20Cは、置換された形態素「音声」には、置換前の形態素「温泉」に対応する発話時刻(開始時刻“203”、終了時刻“417”)を対応づける。修正部20Cは、置換された形態素「で」「入力」についても、同様にして、置換前の形態素に対応する発話時刻を対応づける。
一方、新たに挿入された形態素に対応する発話時刻については、修正部20Cは、新たに挿入された形態素の1つ前の他の形態素の終了時刻、および、一つ後の他の形態素の開始時刻の各々を、新たに挿入された形態素に対応する開始時刻と終了時刻として用いればよい。具体的には、図8(B)に示すように、新たに挿入された形態素「の」の開始時刻には、1つまえの形態素「で」の終了時刻“501”を用いる。また、新たに挿入された形態素「の」の終了時刻には、1つ後の形態素「入力」の開始時刻“512”を用いる。
なお、修正単位32の最初または最後に、新たな形態素を挿入する修正操作がなされる場合がある。この場合、修正部20Cは、開始時刻と終了時刻との差が“0”の発話時刻を、該形態素に対応づければよい。具体的には、修正部20Cは、対応する修正単位32に含まれる最初の形態素に対応する発話時刻の開始時刻を、開始時刻と終了時刻として、該形態素の前に新たな形態素を挿入すればよい。また、修正部20Cは、対応する修正単位32に含まれる最後の形態素に対応する発話時刻の終了時刻を、開始時刻と終了時刻として、該形態素の後に新たな形態素を挿入すればよい。
なお、形態素が英語で表記されている場合についても同様に、修正部20Cは、修正前の形態素に対応する発話時刻(本実施の形態では開始時刻と終了時刻)を出来るだけ保持し、修正後の形態素に対応づければよい。
図9は、形態素が英語で表記されている場合の、発話時刻の修正の一例を示す模式図である。例えば、図9(A)に示す修正単位32E’が、ユーザによる修正操作によって、形態素「well」が削除されたと仮定する。また、形態素「no」および「beans」が、「know,」および「been」に置換されたと仮定する。また、形態素「been」と形態素「Japan」との間に、新たな形態素「to」が挿入されたと仮定する。
この場合、修正単位32E’に対応する確定文34E’に含まれるテキストデータは、図9(B)に示すものとなる。修正部20Cは、変更された形態素に対応する発話時刻(開始時刻、終了時刻)を、変更前の形態素に対応する発話時刻(開始時刻、終了時刻)に対応づける。例えば、修正部20Cは、置換された形態素「know,」には、置換前の形態素「no」に対応する発話時刻(開始時刻“430”、終了時刻“501”)を対応づける。修正部20Cは、置換された形態素「been」についても、同様にして、置換前の形態素「beans」に対応する発話時刻を対応づける。
また、図9(B)に示すように、修正部20Cは、新たに挿入された形態素「to」の開始時刻には、1つ前の形態素「been」の終了時刻“716”を用いる。また、新たに挿入された形態素「to」の終了時刻には、1つ後の形態素「Japan」の開始時刻“760”を用いる。
このように、形態素が英語の表記で表されている場合についても同様に、修正部20Cは、修正前の形態素に対応する発話時刻(本実施の形態では開始時刻と終了時刻)を出来るだけ保持し、修正後の形態素に対応づければよい。
なお、ユーザによる修正操作は、表示されたテキスト単位で修正が行えるため、修正単位32に示される単位で行われない場合がある。
例えば図8(C)に示す修正単位32Fの場合、ユーザによる修正操作によって、「音声電話」の内の一部である「電話」が削除されたとする。また、「の入浴」の一部である「の」が削除されたとする。
この場合、修正単位32Fに対応する確定文34に含まれるテキストデータは、図8(D)に示すものとなる。
この場合、修正部20Cは、一部を削除された単語に対応する発話時刻(開始時刻、終了時刻)に、削除前の単語に対応する発話時刻(開始時刻、終了時刻)をそのまま用いればよい(図8(D)参照)。
同様にユーザによる修正操作による「置換」が、修正単位32に示される単位でなされない場合もある。例えば、図8(C)に示す修正単位32Fにおける、「音声電話」および「の入浴」における、「電話」と「の」が、「で」に置換される場合がある。
この場合、修正単位32Fの一部を変更された「音声」および「入浴」について、修正部20Cは、変更前の「音声電話」および「の入浴」の各々に対応する発話時刻(開始時刻、終了時刻)を対応づければよい。そして、置換された後の「で」を、新たに挿入された形態素として、上記と同様にして、発話時刻を付与すればよい。すなわち、修正部20Cは、新たに挿入された形態素の1つ前の他の形態素の終了時刻、および、一つ後の他の形態素の開始時刻の各々を、新たに挿入された形態素に対応する開始時刻と終了時刻として用いればよい。
なお、ユーザによる修正操作による「置換」により修正単位32に対応づけられていた発話時刻の時間帯が、確定文34に含まれなくなる場合がある。例えば、図8(C)に示す修正単位32Fにおける、「の入浴」「の」「した」を、「力の仕方」に置換する修正操作がなされた場合を考える。
まず、図8(C)「の」と「した」を削除すると、修正単位32Fにおける、これらに対応する発話時刻の期間が、確定文34Fに含まれなくなる。このため、修正部20Cは修正単位32Fにおける修正対象の形態素に対応する発話時刻(開始時刻、終了時刻)を保持しておき、置換された後の形態素に、保持した発話時刻の期間を割当てる。
例えば、修正単位32Fにおける、削除した形態素「の」と「した」に対応する発話時刻を、置換した形態素「力の仕方」に対応付ければよい。具体的には、修正部20Cは、形態素「の」の発話時刻の開始時刻と、形態素「した」に対応する発話時刻の終了時刻と、を置換した形態素の「力の仕方」の開始時刻および終了時刻として、対応づければよい。
更に、ユーザの修正操作によって、修正単位32に修正文字列が挿入される場合がある。この場合、修正部20Cは、ユーザによって指示された箇所で単語を分割し、修正文字列を挿入する。
この場合、修正部20Cは、修正文字列の挿入される前の形態素に対応する発話時刻によって示される期間を、半分または分割後の形態素の長さに応じて線形補間することで分割し、割当てればよい。
具体的には、修正前の修正単位32における「した」を、「し」と「た」に分割し、間に「か」を挿入して、「し」「か」「た」に修正する修正操作がなされる場合を考え。この場合、修正部20Cは、形態素「した」に対応する発話時刻の開始時刻“686”と終了時刻“716”によって示される期間を、半分に分割する。そして、修正部20Cは、分割後の「し」に、前段の期間(開始時刻“686”、終了時刻“701”)を対応づけ、分割後の「た」に、後段の期間(開始時刻“701”、終了時刻“716”)を対応づける。そして、更に、修正部20Cは、間に挿入する「か」には、時間的に一つ前の形態素「し」の終了時刻と時間的に一つ後の形態素「た」の開始時刻と、の各々を、開始時刻および終了時刻とする発話時刻を対応づければよい。
なお、確定時刻において、ユーザによる「確定」に対応するストロークの描かれることで確定された区切りの箇所が、発話時刻が付随した形態素と形態素との境界に一致している場合と、一致しない場合と、がある。
確定された区切りの箇所が、形態素と形態素との境界に一致している場合には、修正部20Cは、修正単位32におけるこれらの形態素の各々に対応する発話時刻を、修正後の形態素に対応づければよい。
一方、確定された区切りの箇所が形態素と形態素との境界に不一致である場合には、修正部20Cは、修正前の修正単位32における形態素を分割する場合と同様にして、修正後の形態素に対応する発話時刻を対応づければよい。
なお、修正部20Cは、ユーザによって手書入力された手書文字の画像を、そのまま修正文字列として扱ってもよい。例えば、図6(C)および図6(D)で説明したように、手書入力領域Hに入力された手書文字の画像を、そのまま修正文字列として扱ってもよい。この場合、修正部20Cは、手書入力領域Hに入力された手書文字の画像を、1つの形態素の修正文字列として扱えばよい。なお、手書入力された手書文字が複数の単語を含む場合がある。この場合であっても、修正部20Cは、手書き入力文字列を1つの形態素として扱えばよい。
図2に戻り説明を続ける。次に、付与部20Dについて説明する。付与部20Dは、対象文データ30のユーザによる修正の確定した確定文34と、発話時刻が一つ前の他の確定文34と、の差に応じた表示時刻を付与する。なお、以下では、確定文34と発話時刻が一つ前の他の確定文34との差を、発話時間差と称して説明する場合がある。
発話時間差は、例えば、確定文34と、該確定文34に対して発話時刻が一つ前の他の確定文34と、の発話時刻の差である。具体的には、発話時間差は、確定文34に含まれる先頭の形態素の開始時刻と、一つ前の他の確定文34に含まれる先頭の形態素の開始時刻と、の差である。
表示時刻は、確定文34を表示する時刻である。本実施の形態では、表示時刻が、確定文34の確定時刻から、該確定文34の字幕の表示までの差、を示す場合を、一例として説明する。
なお、表示時刻は、対象文データ30における、確定文34の相対位置(時間的な相対位置)を示すものであってもよい。また、表示時刻は、実際の表示時刻を示すものであってもよい。この場合、付与部20Dは、上記差を、これらの相対位置や表示時刻に変換し、表示時刻として用いればよい。
本実施の形態では、付与部20Dは、上記発話時間差が大きいほど、確定文34の確定時刻からの差の大きい表示時刻を、該確定文34に付与する。
詳細には、付与部20Dは、表示時刻を付与する対象の確定文34について、該確定文34の先頭の形態素の開始時刻(発話時刻の先頭)と、発話時刻が一つ前の他の確定文34の先頭の形態素の開始時刻(発話時刻の先頭)と、の差(発話時間差)が大きいほど、表示時刻を付与する対象の該確定文34の確定時刻から、該確定文34の字幕の表示時刻までの差が大きくなるように、表示時刻を、該確定文34に付与する。該確定文34の確定時刻からの差とは、該確定文34の確定時刻から、該確定文34の字幕が表示されるまでの、時刻の差を示す。
具体的には、付与部20Dは、該発話時間差に定数αを乗算した値を、上記差として用いる。定数αには、予め定めた値を用いればよい。
ここで、表示時刻を付与された確定文34に対応する字幕の表示期間は、該確定文34の表示が開始された時刻から、該確定文34の次の発話時刻の他の確定文34の確定時刻に、上記発話時間差を加算した時刻までの、期間となる。
このため、確定文34の字幕の表示が必要以上に遅くなることを抑制する観点から、上記定数αは、1未満の値であることが好ましい。
このような表示時刻を確定文34に付与することで、話者がゆっくり話した箇所に相当する確定文34は、より長い期間表示され、話者が速く話した箇所に相当する確定文34は、より短い期間表示されることとなる。具体的には、一つ前の確定文34の発話時刻と確定文34の発話時刻との差(発話時間差)が大きいほど、一つ前の確定文34の発話は、話者によってゆっくり話された発話や、次の発話との間が空いた発話である可能性が高い。このため、この一つ前の確定文34の次に発話された確定文34に、発話時間差が大きいほど、該確定文34の確定時刻からの差の大きい表示時刻を付与することで、一つ前の確定文34がより長い期間継続して表示されることとなる。すなわち、付与部20Dは、もとの音声が発せられた間隔に近い間隔で各確定文34が表示されるように、表示時刻を付与することができる。
図10は、表示時刻付与の一例を示す説明図である。例えば、図10(A)に示すように、対象文データ30に含まれる修正単位32の各々が、修正部20Cによって確定文34に修正されたとする。そして、対象文データ30が、発話時刻順に、確定文34A、確定文34B、確定文34C、確定文34Dを含んでいたと仮定する。
そして、付与部20Dが、確定文34Bに表示時刻を付与すると仮定する。なお、修正単位32を確定文34Bへ修正するためには、開始時刻taから確定時刻tbまでの期間TBを要したと仮定する(図10(B)参照)。この場合、付与部20Dは、1つ前の確定文34Aに含まれる形態素の内の最も早い発話時刻の形態素の開始時刻と、確定文34Bに含まれる形態素の内の最も早い発話時刻の形態素の開始時刻と、の発話時間差TAを算出する。そして、付与部20Dは、該発話時間差TAが大きいほど、確定時刻tbからの差TCの大きい表示時刻tcを、該確定文34Bへ付与する。
なお、上述したように、付与部20Dは、該発話時間差TAを、表示時刻tcとして、確定文34Bへ付与してもよい。
付与部20Dは、他の確定文34についても同様にして、表示時刻を付与する。
表示時刻の付与について、具体的に説明する。図11は、表示時刻の付与の説明図である。
例えば、対象文データ30が、確定文34Aと確定文34Bとを含むと仮定する(図11(A)、図11(B)参照)。また、各確定文34に含まれる形態素には、修正部20Cによって、図11に示す発話時刻(開始時刻、終了時刻)が対応付けられていると仮定する。
この場合、付与部20Dは、確定文34Bの表示時刻として、該確定文34Bにおける最初の形態素「東芝」に対応する開始時刻“1204”から、1つ前の確定文34Aにおける最初の形態素「では」に対応する開始時刻“0”を減算(1204−0)する。これによって、付与部20Dは、発話時間差“1204”を算出する。そして、付与部20Dは、該発話時間差“1204”に、上記定数α(例えば“0.5”)を乗算した値“602”(すなわち、差)を、表示時刻として、確定文34Bに付与する。
なお、対象文データ30における最初の確定文34Aに対応する表示時刻は、“0”で固定とすればよい。
なお、形態素が、日本語とは異なる他の言語の表記で表されている場合についても同様に、付与部20Dは、確定文34の各々に表示時刻を付与すればよい。
図12は、形態素が英語の表記で表されている場合の、表示時刻の付与の説明図である。
例えば、対象文データ30が、確定文34A’と確定文34B’とを含むと仮定する(図12(A)、図12(B)参照)。また、各確定文34に含まれる形態素には、修正部20Cによって、図12に示す発話時刻(開始時刻、終了時刻)が対応付けられていると仮定する。
この場合、付与部20Dは、確定文34B’の表示時刻として、該確定文34B’における最初の形態素「today,」に対応する開始時刻“1520”から、1つ前の確定文34A’における最初の形態素「Thank」に対応する開始時刻“0”を減算(1520−0)する。これによって、付与部20Dは、発話時間差“1520”を算出する。そして、付与部20Dは、該発話時間差“1520”に、上記定数α(例えば“0.5”)を乗算した値“760”(すなわち、差)を、表示時刻として、確定文34B’に付与する。また、対象文データ30における最初の確定文34A’に対応する表示時刻は、“0”で固定する。
このように、形態素が英語の表記で表されている場合についても同様に、付与部20Dは、確定文34の各々に表示時刻を付与する。
なお、表示時刻の算出方法は、上記のような、発話時間差に定数αを乗算する式を用いた形態に限定されない。具体的には、f(x)=αxといった式を用いる形態にて限定されない(αは上記定数αを示す)。例えば、付与部20Dは、発話時間差に応じて単調増加する関数を用いて、表示時刻を算出してもよい。
上述したように、付与部20Dは、発話時間差が大きいほど、確定文34の確定時刻からの差の大きい表示時刻を、該確定文34に付与する。なお、付与部20Dは、この差に、上限と下限を設けることが好ましい。
具体的には、下記式(6)および式(7)に示す関係を満たすように、差に上限と下限を設けることが好ましい。
式(6)中、Vi Rは、表示時刻(ここでは、差)を示す。式(7)中、(ti R−ti−1 R)は、発話時間差を示す。式(7)中、αは、上記と同様に、定数である。Tminは、差の下限を示す。Tmaxは、差の上限を示す。
付与部20Dが、上記式(6)および式(7)を用いることで、差を下限Tmin以上、上限Tmax以下、となるように、差を算出することができる。
なお、これらの下限Tminおよび上限Tmaxには、任意の値を予め設定すればよい。例えば、下限Tminには、ユーザの所望の最短表示時間を予め設定すればよい。最短表示時間は、例えば、300秒である。上限Tmaxには、最長表示時間を予め設定すればよい。最長表示時間は、例えば、10000秒である。
図2に戻り説明を続ける。出力部20Eは、付与部20Dによって確定文34ごとに表示時刻の付与された対象文データ30を、表示端末14へ送信する。
なお、以下では、確定文34ごとに表示時刻の付与された対象文データ30を、表示文37と称して説明する場合がある。
ここで、出力部20Eが、表示に不要な情報を含む表示文37を表示端末14へ送信すると、ネットワーク16の帯域を逼迫するなどの問題が生じる場合がある。このため、出力部20Eは、表示文37は、確定文34の表示順を示す表示順ID、該表示順IDに対応する確定文34に含まれる形態素列、および、該表示順IDに対応する確定文34の表示時刻、のみを、表示文37として、表示端末14へ送信することが好ましい。
なお、出力部20Eから表示端末14へ送信する表示文37のデータ形式は限定されない。表示文37のデータ形式は、例えば、JSON形式、XML、テキスト形式、バイナリ表現、などである。
表示端末14は、情報処理装置10から受信した表示文37に含まれる確定文34を、対応する表示時刻に応じてディスプレイに表示する。このため、ディスプレイには、確定文34を示す字幕が、該確定文34に対応する表示時刻で、順次表示される。
例えば、表示端末14は、表示文37を受信すると、表示文37を一旦プールする。そして、表示文37に含まれる表示順によって示される表示順が最も早い確定文34から順に、ディスプレイに表示する。このとき、表示端末14は、前の確定文34をディスプレイに表示してから、該確定文34に示される表示時刻(例えば、差)が経過したときに、次の表示順の確定文34をディスプレイに表示する処理を繰返す。
なお、表示端末14は、ディスプレイに最新の確定文34が常に表示されるように、オートスクロールすることが好ましい。
ここで、表示時刻が、上記差で表されていると仮定する(図10の差TC参照)。この場合、確定文34は、該確定文34に対応する修正単位32の終了時刻(図10中、時刻ta参照)に、該修正単位32の修正に要した時間(図10中、時間TB参照)と、差(図10中、差TC参照)と、を加算した表示時刻に、表示される。言い換えると、確定文34は、該確定文34の修正の確定した確定時刻(図10中、確定時刻tb参照)から、該確定文34に付与された差TC(表示時刻)を経過した時刻に、表示される(図10(C)参照)。
すなわち、図10を用いて説明したように、例えば、確定文34Bは、確定文34Bに対応する修正単位32に対応する発話時刻の終了時刻taに、該確定文34Bの修正時間TBを加算した時刻(すなわち、確定時刻tb)から、差TC経過したときに、字幕として表示される。
ここで、従来では、確定文34Bは、修正の確定した確定時刻tbに表示されていた。このため、発話時刻のより早い確定文34の字幕がユーザによって認識されている最中や認識前に、次のタイミンでに発話された確定文34の字幕が表示される場合があった。このため、従来では、字幕がユーザによって読取り難い場合があった。
一方、本実施の形態の情報処理装置10では、発話時間差TAに応じて付与された表示時刻(差TC)に応じて、確定文34が表示される。このため、本実施の形態の情報処理装置10では、音声の字幕がより読みやすく提供される。
図13は、表示端末14のディスプレイに表示される、表示画面50の一例を示す模式図である。
図13(A)〜図13(E)には、表示端末14が、日本語の表記の形態素を含む表示文37に含まれる確定文34(確定文34A〜34D)を、字幕として順次表示した場合を示した。なお、図13には、表示画面50には、3行分の字幕が表示される場合を、一例として示した。
例えば、まず、初期状態では、表示画面50には、字幕が表示されていない(図13(A)参照)。最初の確定文34A「では」に付与された表示時刻が“0”であるとする。この場合、表示端末14は、該確定文34Aを含む表示文37を受信した時に、該確定文34Aを示す字幕を、表示画面50に表示する(図13(B)参照)。
次の表示順の確定文34B「東芝の渡辺が発表します。」に付与された表示時刻が“602”であったとする。この場合、表示端末14は、確定文34Aを示す字幕「では」を1行スクロールし、該表示時刻“602”に応じて、確定文34Bを示す字幕「東芝の渡辺が発表します。」を一番下に表示する(図13(C)参照)。具体的には、表示端末14は、該確定文34Bの確定時刻から差“602”を経過したときに、確定文34Bを示す字幕「東芝の渡辺が発表します。」を一番下に表示する。
そして、次の表示順の確定文34C「まずアジェンダですが、」に付与された表示時刻が“2308”であったとする。この場合、表示端末14は、確定文34Bを示す字幕「東芝の渡辺が発表します。」を1行スクロールし、該表示時刻“2308”に応じて、確定文34Cを示す字幕「まずアジェンダですが、」を一番下に表示する(図13(D)参照)。具体的には、表示端末14は、該確定文34Cの確定時刻から差“2308”を経過したときに、確定文34Cを示す字幕「まずアジェンダですが、」を一番下に表示する。
そして、次の表示順の確定文34D「まず背景の音声・・・」に付与された表示時刻が“616”であったとする。この場合、表示端末14は、確定文34Cを示す字幕「まずアジェンダですが、」を1行スクロールし、該表示時刻“616”に応じて、確定文34Dを示す字幕「まず背景の音声・・・」を一番下に表示する(図13(E)参照)。具体的には、表示端末14は、該確定文34Dの確定時刻から差“616”を経過したときに、確定文34Dを示す字幕「まず背景の音声・・・」を一番下に表示する。
ここで、従来方式のように、各確定文34を確定時刻で表示した場合には、以下のような問題が発生する。例えば、図13に示すように、確定文34Bが、確定文34Cに比べて長い文章であったと仮定する。また、確定文34Bの修正時間が長時間であったと仮定する(例えば、“3000”秒)。一方、確定文34Cの修正時間は短時間であったと仮定する(例えば、“600”秒)。
この場合、従来方式のように、各確定文34の確定時刻で、確定文34Bおよび確定文34Cを表示すると、長い文章の確定文34Bをユーザが読んでいる最中に、次の確定文34Cが表示される場合があった。
一方、本実施の形態では、確定文34には、発話時刻の発話時間差(図10の発話時間差TA参照)に応じた表示時刻(図10の差TC参照)が付与される。このため、表示端末14が、付与された表示時刻に応じて各確定文34を表示することで、長い文章の確定文34Bの字幕の表示時間が確保される。
なお、表示画面50に表示される字幕の行数は、3行に限定されない。例えば、表示画面50に表示される字幕の行数は、1行であってもよい。
なお、形態素が、日本語とは異なる他の言語の表記で表されている場合についても同様に、表示端末14は、表示時刻に応じて確定文34を表示すればよい。
図13(F)〜図13(J)には、表示端末14が、英語の表記の形態素を含む表示文37に含まれる確定文34(確定文34A’〜34D’)を、字幕として順次表示した場合を示した。
この場合、例えば、まず、初期状態では、表示画面50には、字幕が表示されていない(図13(F)参照)。最初の確定文34A’「Thank you chair.」に付与された表示時刻が“0”であるとする。この場合、表示端末14は、該確定文34A’を含む表示文37を受信した時に、該確定文34A’を示す字幕を、表示画面50に表示する(図13(G)参照)。
そして、表示端末14は、確定文34A’を示す字幕「Thank you chair.」を1行スクロールし、確定文34B’の表示時刻に応じて、確定文34B’を示す字幕「today, I speak to you about the Speech Recognition.」を一番下に表示する(図13(H)参照)。
そして、表示端末14は、確定文34B’を示す字幕「today, I speak to you about the Speech Recognition.」を1行スクロールし、該確定文34C’の表示時刻に応じて、確定文34C’を示す字幕「This is today’s agenda,」を一番下に表示する(図13(I)参照)。
そして、表示端末14は、確定文34C’を示す字幕「This is today’s agenda,」を1行スクロールし、確定文34D’の表示時刻に応じて、確定文34D’を示す字幕「first, I’ll show you the background of the research.」を一番下に表示する(図13(J)参照)。
なお、上述したように、ユーザによって手書入力された手書文字の画像を、そのまま修正文字列として扱う場合がある。この場合、表示端末14は、確定文34に含まれる、手書文字の画像で表された形態素を、手書文字の画像のまま、表示すればよい。この場合、例えば、図13(K)に示すように、表示端末14は、手書文字の画像“入力”を含む表示画面50を表示すればよい。
なお、情報処理装置10の出力部20Eは、手書文字の画像を含む表示文37を表示端末14へ送信する場合には、手書文字の画像をエンコードする必要がある。この場合、出力部20Eは、手書文字の画像に示されるストロークをテキストで表してもよいし、手書文字の画像をラスタ画像に変換した上で、BASE64等の方法によりエンコードしてもよい。
例えば、手書文字の画像を示すストロークをテキスト化したJSON形式を用いる場合、テキスト文字列中に、画像タグを用いて、手書文字の画像のIDを埋め込めばよい。また、この場合、出力部20Eは、手書文字の画像を示すストロークと、手書き文字の画像の大きさ(幅と高さ)と、をエンコードしてもよい。これによって、手書き入力された形状(例えば、縦横の比率)を維持した手書き文字の画像が、表示画面50に表示されることとなる。
次に、本実施の形態の情報処理装置10が実行する、情報処理の手順の一例を説明する。図14は、情報処理装置10が実行する情報処理の手順の一例を示す、フローチャートである。
まず、制御部20は、対象文データ30を分割した修正単位32のリストを登録するための修正単位リスト36を空にする(ステップS100)。
そして、制御部20では、取得・分割処理(ステップS110)と、修正・付与処理(ステップS112)と、を並列で行う。取得・分割処理は、取得部20Aが対象文データ30を取得し、分割部20Bが修正単位32に分割する処理である。修正・付与処理は、修正部20Cが修正単位32を修正し、付与部20Dが修正単位32に対応する確定文34へ表示時刻を付与する処理である。
取得部20A、分割部20B、修正部20C、および付与部20Dは、取得・分割処理(ステップS110)と、修正・付与処理(ステップS112)と、を実行するときには、同じ修正単位リスト36を共有して用いる。
ステップS110では、取得部20Aが取得した対象文データ30を、分割部20Bが修正単位32に分割し、修正単位リスト36へ登録する。ステップS112では、修正部20Cおよび付与部20Dが、修正単位リスト36に追加された修正単位32を、追加された順に処理していく。
図15は、取得・分割処理(図14のステップS110参照)の手順の一例を示す、フローチャートである。図15には、取得部20Aが、複数の連続する形態素の群(形態素列)ごとに、対象文データ30を取得する場合の、手順の一例を示した。なお、音声認識端末12からは、音声認識された形態素が、発話時刻とともに、順次、情報処理装置10へ送信されるものとする。
まず、取得部20Aは、音声認識端末12から、順次、音声認識結果を取得する。そして、取得部20Aは、取得した音声認識結果が、音声の終端を示すか否かを判断する(ステップS200)。例えば、取得部20Aは、取得した音声認識結果に、音声の終端を示すフラグ(すなわち、対象文データ30の終端を示すフラグ)が含まれるか否かを判別することで、ステップS200の判断を行う。
音声の終端ではないと判断した場合(ステップS200:No)、ステップS202へ進む。ステップS202では、取得部20Aは、対象文データ30を取得する(ステップS202)。
次に、分割部20Bが、ステップS202で取得した対象文データ30に含まれる、形態素の各々に対する分割スコアを算出する(ステップS204)。
次に、分割部20Bは、ステップS202で取得した対象文データ30の時間長が、予め定めた時間長TS以下であるか否かを判断する(ステップS206)。
ステップS206で肯定判断すると(ステップS206:Yes)、ステップS208へ進む。ステップS208では、ステップS202で取得した対象文データ30(Win)を、1つの修正単位32として、修正単位リスト36の末尾に追加する(ステップS208)。そして、上記ステップS200へ進む。
一方、ステップS206で否定判断すると(ステップS206:No)、ステップS210へ進む。ステップS210では、分割部20Bは、ステップS202で取得した対象文データ30について、上述した式(4)および式(5)の関係を満たす分割位置kを探し、該対象文データ30の先頭から分割位置kまでの形態素列を修正単位32として、修正単位リスト36の末尾に追加する(ステップS210)。
次に、分割部20Bは、残りの形態素列を新たな対象文データ30として設定し(ステップS212)、上記ステップS206へ戻る。
一方、ステップS200において、音声の終端を示すと判断した場合(ステップS200:Yes)、本処理を終了する。
図16は、取得・分割処理(図14のステップS110参照)の手順の一例を示す、フローチャートである。図16には、取得部20Aが、形態素ごとに音声認識結果を音声認識端末12から取得する場合の、手順の一例を示した。
まず、取得部20Aでは、形態素列のバッファ(以下、形態素列バッファと称する)を予め用意する。そして、まず、取得部20Aは、形態素列バッファを空にする(ステップS300)。次に、取得部20Aは、音声認識端末12から取得した音声認識結果が、音声の終端を示すか否かを判断する(ステップS302)。
ステップS302で否定判断すると(ステップS302:No)、ステップS304へ進む。ステップS304では、取得部20Aが新たな形態素を取得する(ステップS304)。次に、取得部20Aは、形態素列バッファの末尾に、ステップS304で取得した新たな形態素を追加する(ステップS306)。
次に、分割部20Bは、形態素列バッファに格納されている形態素列の全時間長が、閾値T2 S以上であるか否かを判断する(ステップS308)。ステップS308で否定判断すると(ステップS308:No)、上記ステップS304へ戻る。一方、ステップS308で肯定判断すると(ステップS308:Yes)、ステップS310へ進む。
ステップS310では、分割部20Bは、形態素列バッファに格納されている形態素列を対象文データ30とし、上述した式(4)および式(5)の関係を満たす分割位置kを探す(ステップS310)。
そして、分割部20Bは、形態素列バッファの先頭の形態素から、ステップS310で探した分割位置kまでの形態素列を、形態素列バッファから削除し(ステップS312)、修正単位リスト36の末尾へ追加する(ステップS314)。そして、上記ステップS304へ戻る。
一方、ステップS302で肯定判断すると(ステップS302:Yes)、ステップS316へ進む。ステップS316では、分割部20Bは、形態素列バッファに残っている形態素列を、修正単位リスト36の末尾へ追加する(ステップS316)。そして、本処理を終了する。
次に、修正・付与処理(図14のステップS112)の手順を説明する。図17は、修正・付与処理(図14のステップS112参照)の手順の一例を示す、フローチャートである。
まず、修正部20Cは、修正単位リスト36が空であるか否かを判断する(ステップS400)。ステップS400で否定判断すると(ステップS400:No)、ステップS404へ進む。
ステップS404では、修正部20Cは、修正単位リスト36の先頭の修正単位32を1つ取り出す(ステップS404)。そして、修正部20Cは、ステップS404で取り出した修正単位32を、表示制御部20Fを介して、UI部24へ表示する(ステップS406)。上述したように、UI部24には、修正単位32を含む修正画面40が表示される。
次に、修正部20Cは、受付部20Gを介してUI部24から、ユーザによる操作によって入力された修正操作の種類が「確定」であるか否かを判断する(ステップS408)。ステップS408で否定判断すると(ステップS408:No)、ユーザによる修正操作を修正単位32に反映させて確定文34とし(ステップS410)、後述するステップS418へ進む。ステップS408で肯定判断すると(ステップS408:Yes)、ステップS412へ進む。
ステップS412では、付与部20Dが、ステップS408およびステップS410によって確定した確定文34に、表示時刻を付与する(ステップS412)。
次に、出力部20Eは、ステップS412で表示時刻を付与された確定文34を、表示文37として、表示端末14へ送信する(ステップS414)。表示文37を受付けた表示端末14は、表示文37に含まれる確定文34を、該確定文34に付与された表示時刻にディスプレイに表示する。
次に、修正部20Cは、ステップS408で確定した確定結果を、ステップS406で表示した修正単位32から削除する(ステップS416)。
次に、修正部20Cは、ステップS406で表示した修正単位32に含まれる全ての形態素について修正が終了したか否かを判断する(ステップS418)。ステップS418で否定判断すると(ステップS418:No)、上記ステップS408へ戻る。一方、ステップS418で肯定判断すると(ステップS418:Yes)、上記ステップS400へ戻る。
一方、ステップS400で肯定判断すると(ステップS400:Yes)、ステップS402へ進む。ステップS402では、取得部20Aが、音声が終端であるか否かを判断する(ステップS402)。ステップS402で否定判断すると(ステップS402:No)、上記ステップS400へ戻る。ステップS402で肯定判断すると(ステップS402:Yes)、本処理を終了する。
次に、修正部20Cが実行する、ストロークSの認識処理の手順の一例を説明する。図18は、ストローク認識処理の手順の一例を示す、フローチャートである。
なお、修正部20Cは、ストロークSとして、例えばペン等が入力面に接してから離れるまでの軌跡を沿った点の集合(ストローク点列と称する)を取得する場合を説明する。まず、修正部20Cは、ストローク点列を用いて、ストローク点列の方向の判別処理を実行する(ステップS500)。
ステップS500では、修正部20Cは、ストローク点列の内、特徴的な点の列(特徴点列)と、隣接する特徴点間の方向を得る。特徴点間の方向は、例えば、Up、UpRight、Right、RightDown、Down、DownLeft、Left、UpLeft、の8種類とする。
すなわち、この場合、修正部20Cは、8方向の直線の連続からなるストロークを認識する。なお、長さによってストロークの種類を変える、円形状のストロークを判別する、などの処理を更に行ってもよい。
まず、修正部20Cは、ストローク点列を平滑化する。詳細には、修正部20Cは、ストローク点列を構成する隣接する点間の距離が一定となるように、点を補間する。そして、修正部20Cは、平滑化後のストローク点列における、各点について、曲率を計算する。
例えば、修正部20Cは、下記式(8)〜式(10)を用いて、式(11)を求めることで、各点の曲率を計算する。
式(8)〜(11)中、di −、di +、di ±は、曲率の計算対象の点pi fを中心とした、3つの座標値差を示す。式(8)〜式(10)中、pi fは、平滑化後のストローク点列における点を示す。pi−1 fは、点pi fに対して進行方向の上流側の隣に位置する他の点を示す。pi−2 fは、点pi fに対して進行方向の上流側の隣の隣に位置する他の点を示す。pi+1 fは、点pi fに対して進行方向の下流側の隣に位置する他の点を示す。pi+2 fは、点pi fに対して進行方向の下流側の隣の隣に位置する他の点を示す。なお、進行方向とは、ストロークの描かれる方向を示す。また、式(11)中、ciは、点pi fの曲率を示す。
次に、修正部20Cは、平滑化後のストローク点列を構成する点の内、曲率の高い点、すなわち、ストロークSが大きく曲がる点を、特徴点として特定する。例えば、修正部20Cは、ストローク点列の始点に位置する点と、曲率が閾値より大きい点と、終点に位置する点と、を特徴点として特定する。
なお、修正部20Cは、特定した点に、添え字の連続する点列が含まれる場合には、これらの点列の内、最も曲率の大きい点のみを、特徴点として特定する。
次に、修正部20Cは、特徴点間の方向を判別し、ストロークの方向を得る。例えば、修正部20Cは、各特徴点について、特徴点と、特徴点に隣接する他の特徴点と、を結ぶ線分の角度を、逆正接関数により導出する。そして、修正部20Cは、導出した角度が、上記8種類の方向の何れに含まれるかを判別する。これにより、修正部20Cは、特徴点間の方向を得る。なお、特徴点の前後で同じ方向が続く場合には、特徴点を削除すればよい。
このようにして、修正部20Cは、特徴点列と、隣接する特徴点間の方向を、ストロークの方向として得る。
次に、修正部20Cは、修正操作判別処理を実行する(ステップS502)。そして、本処理を終了する。
修正操作判別処理は、修正操作の種類(「削除」、「挿入」、「置換」、「確定」)を判別する処理である。
図19は、修正操作判別処理の手順の一例を示す、フローチャートである。
修正部20Cは、修正操作の種類ごとに、特徴点間の方向と、修正操作の対象とする対象点と、を、対応づけて予め修正操作判別表に記憶する。
そして、修正部20Cは、ステップS500で得られた、特徴点間の方向が、修正操作判別表に登録されているか否かを判別する(ステップS510)。
ステップS510で肯定判断すると(ステップS510:Yes)、ステップS512へ進む。ステップS512では、修正部20Cは、ステップS510で判別した、修正操作判別表における、特徴点間の方向に対応する修正操作の種類を、ストロークSの示す修正操作の種類として特定する(ステップS512)。そして、本処理を終了する。
例えば、ステップS500の処理によって得られた特徴点列Pdirが、Pdir=((100,100),(200,115),(218,163))であり、方向Dが、D=(Right,Down)であったと仮定する。そして、修正操作判別表には、この方向D=(Right,Down)に対応する修正操作の種類として、「置換」が登録されており、対象点(0,1)が登録されていたと仮定する。この場合、修正部20Cは、修正操作の種類を「置換」であると特定する。また、修正部20Cは、修正操作の対象座標列Ptargetを、Ptarget=((100,100),(200,115))と特定する。
一方、ステップS510で否定判断すると(ステップS510:No)、ステップS514へ進む。ステップS514では、対応する修正操作の種類が無い事を特定し(ステップS514)、本処理を終了する。
なお、図19に示す例では、修正部20Cは、特徴点間の方向が、修正操作判別表に登録されているか否か、すなわち、特徴点間の方向に完全に一致するものが修正操作判別表に登録されているか否か、を判別した。しかし、修正操作判別表に登録する方向の記述を正規表現とし、修正部20Cは、方向がマッチする行を修正操作判別表から探すことで、上記判別を行ってもよい。このような方法を用いることで、ロバストな修正操作判別処理を行うことができる。
以上説明したように、本実施の形態の情報処理装置10は、取得部20Aと、付与部20Dと、を備える。取得部20Aは、音声認識された複数の形態素と、形態素の発話時刻と、を含む対象文データ30を取得する。付与部20Dは、対象文データ30のユーザによる修正の確定した確定文34と発話時刻が一つ前の他の確定文34との差(発話時間差)に応じた表示時刻を付与する。
このように、本実施の形態では、情報処理装置10は、発話時刻の発話時間差に応じた表示時刻を、確定文34に付与する。
このため、本実施の形態の情報処理装置10では、確定文34に応じた字幕がユーザによって認識される前や認識中に、次のタイミングに発話された確定文34に応じた字幕が表示されることを抑制するように、表示時刻を付与することができる。また、本実施の形態の情報処理装置10は、話者がより時間をかけて話した内容の字幕を、より長期間表示するように、表示時刻を付与することができる。このため、表示時刻に応じて確定文34を表示することで、情報処理装置10は、音声の字幕を読みやすいタイミングで提供することができる。
従って、本実施の形態の情報処理装置10では、音声の字幕を読みやすいタイミングで提供することができる。
また、修正単位32に対応する確定文34に、表示時刻を付与するため、ユーザが修正単位32を修正するときの処理負荷を軽減することができる。
なお、本実施の形態の情報処理システム100では、情音声認識端末12と、情報処理装置10と、表示端末14と、を別体として構成した場合を示した。しかし、音声認識端末12、情報処理装置10、および、表示端末14の内の少なくとも2つ以上を、一体的に構成してもよい。
(変形例1)
なお、上記実施の形態では、付与部20Dは、確定文34に表示時刻を付与する場合を説明した。
しかし、付与部20Dは、隣接する複数の確定文34を連結した連結確定文に、表示時刻を付与してもよい。
この場合、まず、付与部20Dは、確定文34に対する連結スコアを算出する。連結スコアとは、隣接する他の確定文34との文章としてのつながり易さを示す値である。連結スコアが高いほど、文章としてつながりやすいことを意味する。そして、付与部20Dは、連結スコアが閾値以上の場合、確定文34と、確定文34を他の確定文34に連結した連結確定文に、表示時刻を付与する。
例えば、付与部20Dは、連結スコアの算出対象の確定文34(i番目の確定文34とする)について、句読点スコアを算出する。句読点スコアとは、i番目の確定文34が句読点で終わるか否かに関する値である。句読点スコアは、例えば、下記式(12)で表される。
式(12)中、P’iは、i番目の確定文34の句読点スコアを示す。wni iは、i番目の確定文34に含まれる、最後に位置する形態素を示す。
そして、付与部20Dは、下記式(13)を用いて、i番目の確定文34の連結スコアを算出する。
式(13)中、(tb,i 1−te,i−1 ni−1)は、一つ前の連結確定文との時間差(一つ前の連結確定文の最初の形態素に対応する開始時間と、i番目の確定文34に含まれる最初の形態素に対応する開始時間と、の差)を示す。また、式(13)中、(te,i ni−tb,j m)は、一つ前の連結確定文と、i番目の確定文34とを連結した場合の総時間長を示す。なお、式(13)中、a、b、cは、予め定めた係数とする。
そして、付与部20Dは、連結スコアに応じて、i番目の確定文34を、一つ前の確定文34に連結するか否かを、下記式(14)を用いて判断する。
式(14)中、ciは、一つ前の確定文34に連結するか否かを示す連結情報である。また、式(14)中、Si cは、i番目の確定文34の連結スコアを示し、Cは、定数を示す。
すなわち、付与部20Dは、連結スコアが閾値(定数C)以上の場合、確定文34と、確定文34を他の確定文34に連結した連結確定文に、表示時刻を付与する。そして、付与部20Dは、連結スコアに応じて連結した連結確定文ごとに、第1の実施の形態と同様にして、表示時刻を付与すればよい。
図20は、表示端末14のディスプレイに表示される、表示画面の一例を示す模式図である。
例えば、表示端末14は、確定文34A「では」と確定文34B「東芝の渡辺が発表します。」との連結確定文39Aを、該連結確定文39Aに付与された表示時刻に応じて、表示する(図20(A))。
そして、表示端末14は、連結確定文39Aをスクロールし、確定文34Cと確定文34Dとの連結確定文39Bを、該連結確定文39Bに付与された表示時刻に応じて表示する(図20(B))。
このため、本変形例の情報処理装置10では、上記実施の形態の効果に加えて、文章としてより読みやすい単位で字幕を提供することができる。
(変形例2)
なお、上記実施の形態では、付与部20Dは、対象文データ30の修正単位32に対応する、修正の確定した確定文34に、発話時刻の発話時間差に応じた表示時刻を付与する場合を説明した。
しかし、付与部20Dは、発話時間差と、修正単位32に対する修正時間と、に応じた表示時刻を、確定文34へ付与してもよい。
修正単位32に対する修正時間とは、修正単位32の修正に要した時間である。詳細には、修正単位32に対する修正時間とは、修正部20Cが、修正対象の修正単位32をUI部24へ表示してから、該修正単位32に対してユーザによる修正操作がなされ、修正が確定されるまで(確定時刻まで)、の期間である。
付与部20Dは、上述したように、該確定文34に対応する修正単位32の発話時間差が大きいほど、該確定文34の確定時刻からの差の大きい表示時刻を、該確定文34に付与する。そして、本変形例では、更に、付与部20Dは、確定文34に対応する修正単位32の修正時間が長いほど、該確定文34の確定時刻からの差の小さい表示時刻を、該確定文34に付与する。
具体的には、付与部20Dは、下記式(15)を用いて、表示時刻を算出すればよい。
式(15)中、VRiは、i番目の確定文34に付与する表示時刻を示す。また、(tRi−tRi−1)は、i番目の確定文Riの開始時刻と、その前の(i−1)番目の確定文Ri−1の開始時刻の差を示す。また、式(16)中、a、bは、予め定めた係数とする。また、式(16)中、hは、修正時間を示し、Hは閾値を示す。なお、H>0.1>a>b>0の関係を示す。
すなわち、付与部20Dは、上記式(15)を用いることで、修正時間が予め定めた閾値Hより大きい(すなわち、修正に時間がかかっている)場合には、修正時間が閾値H以下(すなわち、修正に時間がかかっていない)場合に比べて、短い差の表示時刻を、確定文34に付与する。
このため、本変形例の情報処理装置10では、上記実施の形態の効果に加えて、確定文34の修正に時間がかかった場合に、対応する字幕の表示が大きく遅れることを抑制することができる。
(変形例3)
なお、上記実施の形態では、付与部20Dは、発話時刻の発話時間差に応じた表示時刻を確定文34に付与することを説明した。そして、発話時間差が、確定文34に含まれる先頭の形態素の開始時刻と、一つ前の他の確定文34に含まれる先頭の形態素の開始時刻と、の差である場合を説明した。
しかし、発話時間差は、上記形態に限定されない。例えば、発話時間差は、発話時刻が1つ前の他の確定文34に含まれる、最も発話時刻の早い形態素の開始時刻(発話開始時刻)と、最も発話時刻の遅い形態素の終了時刻(発話終了時刻)と、の差であってもよい。
図21は、発話時間差の一例の説明図である。例えば、対象文データ30に、確定文34Gと確定文34Hとが時系列に配列されていたと仮定する。そして、付与部20Dが、確定文34Hに表示時刻を付与する段階であるとする。
なお、図21(A)は、速い発話速度で短い期間の発話(確定文34G)がなされた後に、長い間隔を隔てて次の発話(確定文34H)がなされた場合の、対象文データ30の一例を示す模式図である。また、図21(B)は、遅い発話速度で短い期間の発話(確定文34I)がなされた後に、短い間隔を隔てて、次の発話(確定文34J)がなされた場合の、対象文データ30の一例を示す模式図である。
図21(A)に示す対象文データ30を処理する場合、上記実施の形態では、付与部20Dは、確定文34Hにおける最も発話時刻の早い形態素の開始時刻th1と、1つ前の確定文34Gにおける最も発話時刻の早い形態素の開始時刻tg1と、の時間差T1’を、発話時間差として用いていた。そして、付与部20Dは、この時間差T1’の発話時間差に応じた発話時刻を、確定文34Hに付与していた。
また、図21(B)に示す対象文データ30を処理する場合、上記実施の形態では、付与部20Dは、確定文34Jにおける最も発話時刻の早い形態素の開始時刻tj1と、1つ前の確定文34Iにおける最も発話時刻の早い形態素の開始時刻ti1と、の時間差T2’を、発話時間差として用いていた。そして、付与部20Dは、この時間差T2’の発話時間差に応じた発話時刻を、確定文34Jに付与していた。
一方、本変形例では、図21(A)に示す対象文データ30を処理する場合、付与部20Dは、1つ前の確定文34Gにおける最も発話時刻の早い形態素の開始時刻tg1と、該確定文34Gにおける最も発話時刻の遅い形態素の終了時刻tg2と、の時間差T1を、発話時間差として用いる。そして、付与部20Dは、この時間差T1の発話時間差に応じた発話時刻を、確定文34Hに付与する。
また、本変形例では、図21(B)に示す対象文データ30を処理する場合、付与部20Dは、1つ前の確定文34Iにおける最も発話時刻の早い形態素の開始時刻ti1と、該確定文34Iにおける最も発話時刻の遅い形態素の終了時刻ti2と、の時間差T2を、発話時間差として用いる。そして、付与部20Dは、この時間差T2の発話時間差に応じた発話時刻を、確定文34Jに付与する。
このように、付与部20Dは、発話時刻が1つ前の他の確定文34に含まれる、最も発話時刻の早い形態素の開始時刻(発話開始時刻)と、最も発話時刻の遅い形態素の終了時刻(発話終了時刻)と、の差を、発話時間差として用いて、確定文34に発話時刻を付与してもよい。
このような発話時間差を用いることで、発話時刻が1つ前の他の確定文34が遅い発話速度で長い期間発話されたものであった場合、付与部20Dは、次の発話時刻の確定文34に、より遅い表示時刻を付与することができる。すなわち、付与部20Dは、遅い発話速度で長い期間発話された1つ前の確定文34を、より長い期間表示するような表示時刻を、次の確定文34に付与することができる。
また、発話時刻が1つ前の他の確定文34が速い発話速度で短い時間発話されたものであった場合、付与部20Dは、次の発話時刻の確定文34に、より早い表示時刻を付与することができる。すなわち、付与部20Dは、早い発話速度で長い期間発話された1つ前の確定文34を、より短い期間表示するような表示時刻を、次の確定文34に付与することができる。
このため、本変形例の情報処理装置10は、第1の実施の形態の効果に加えて、話者の話速に応じた表示時刻を付与することができ、話者の意図をより正確に伝える字幕を提供することができる。
(第2の実施の形態)
本実施の形態では、音声認識されなかった期間(空間期間)であることを示す空白情報を修正単位32へ挿入する場合を説明する。
図22は、本実施の形態の情報処理装置10Eの機能ブロック図の一例である。
情報処理装置10Eは、空白挿入部21Eを備えること以外は、第1の実施の形態と同様である。本実施の形態では、上記実施の形態と同様の機能の構成については、同じ符号を付与し、詳細な説明を省略する。
空白挿入部21Hは、修正単位32に音声認識されなかった空白期間が含まれる場合、空白期間であることを示す空白情報を挿入する。修正単位32に含まれる各形態素の発話時刻(開始時刻、終了時刻)を用いて、空白の期間が所定の閾値以上である場合に、空白期間であることを示す空白情報を生成する。空白情報は、音声認識されなかったことを示すまたは話者が誰も話していないことを示す情報であればよい。
修正部21Cは、空白情報の挿入された修正単位32を、確定文34として用いる。
このため、確定文34に空白情報が含まれる場合には、空白情報が字幕として表示される。
次に、本実施の形態の情報処理装置の制御部21Eは、図14におけるステップS110の処理において、図23に示す処理を実行する。
図23は、制御部21Eが実行する取得・分割処理の一例の説明図である。なお、音声認識端末12からは、音声認識された形態素が、発話時刻とともに、順次、情報処理装置10Eへ送信されるものとする。
まず、取得部20Aが、音声認識端末12から、順次、音声認識結果を取得する。そして、取得部20Aは、取得した音声認識結果が、音声の終端を示すか否かを判断する(ステップS600)。ステップS600の処理は、第1の実施の形態と同様である(図15、ステップS200参照)。
ステップS600で肯定判断すると(ステップS600:Yes)、本処理を終了する。ステップS600で否定判断すると(ステップS600:No)、ステップS602へ進む。ステップS602では、取得部20Aが対象文データ30を取得可能であるか否かを判断する(ステップS602)。
ステップS602で否定判断すると(ステップS602:No)、ステップS604へ進む。ステップS604では、空白挿入部21Hが、1つ前に取得した対象文データ30と現在時刻との時間差が閾値以上であるか否かを判断する(ステップS604)。この閾値には、予め定めた値を設定すればよい。
ステップS604で肯定判断すると(ステップS604:Yes)、ステップS606へ進む。ステップS606では、空白挿入部21Hが、空白情報を生成し、修正単位32として、修正単位リスト36の末尾に追加する(ステップS606)。そして、上記ステップS602へ戻る。ステップS604で否定判断した場合(ステップS604:No)についても、上記ステップS602へ戻る。
一方、上記ステップS602で肯定判断すると(ステップS602:Yes)、ステップS608へ進む。ステップS608では、取得部20Aが、対象文データ30を取得する(ステップS608)。
次に、空白挿入部21Hが、1つ前に取得した対象文データ30と、今回ステップS602で取得した対象文データ30と、の時間差が閾値以上であるか否かを判断する(ステップS610)。この閾値には、予め定めた値を設定すればよい。なお、ステップS610で用いる閾値は、上記ステップS604で用いる閾値より小さい値であることが好ましい。
ステップS610で肯定判断すると(ステップS610:Yes)、ステップS612へ進む。ステップS612では、空白挿入部21Hが、空白情報を生成し、修正単位32として、修正単位リスト36の末尾に追加する(ステップS612)。そして、ステップS614へ進む。ステップS610で否定判断した場合も(ステップS610:No)、ステップS614へ進む。
そして、制御部21Eは、ステップS614〜ステップS622の処理を実行する。ステップS614〜ステップS622の処理は、第1の実施の形態の、図15に示すステップ204〜ステップS212と同様である。
以上説明したように、本実施の形態の情報処理装置10Eでは、音声認識されなかった空白期間が含まれる場合、空白挿入部21Hが、空白期間であることを示す空白情報を修正単位32へ挿入する。
従って、本実施の形態の情報処理装置10Eでは、確定文34に空白情報が含まれる場合には、空白情報が字幕として表示されるため、上記実施の形態の効果に加えて、話者の意図や、発話中の雰囲気を、字幕で提供することが可能となる。
(第3の実施の形態)
本実施の形態では、修正操作に制限時間を設ける場合を説明する。
図2は、本実施の形態の情報処理装置10Fの機能ブロック図の一例である。
本実施の形態では、修正部101Cが修正単位32の修正時間が修正制限時間となった場合、該修正制限時間に到達した時刻を該修正単位32に対応する確定文34の確定時刻とする機能を皿に持つ。修正部101Cの追加の機能以外は第1の実施の形態と同様である。本実施の形態では、上記実施の形態と同様の機能の構成については、同じ符号を付与し、詳細な説明を省略する。
修正制限時間は、修正単位32がUI部24に表示された表示開始時刻Td1からの経過時間で表す。なお、修正制限時間には、任意の値を予め設定すればよい。
修正部101Cでは、修正時間が修正制限時間となった時刻における修正内容を、該修正単位32の確定文34として用いる。また、修正部101Cでは、該修正制限時間となった時刻を、該確定文34の確定時刻として用いる。
なお、情報処理装置10Fは、カウント開始の時刻の異なる2種類の修正制限時間を用いてもよい。例えば、情報処理装置10Fは、第1の修正制限時間と、第2の修正制限時間と、を、修正制限時間として用いてもよい。第1の修正制限時間は、表示開始時刻Td1からの経過時間で表される。第2の修正制限時間は、UI部24に表示された修正単位32に対してユーザによる修正操作が開始された操作開始時刻Td2からの経過時間で表される。
なお、第1の修正制限時間および第2の修正制限時間には、任意の値を予め設定すればよい。但し、第1の修正制限時間は、第2の修正制限時間より短いことが好ましい。このように設定することで、情報処理装置10Fでは、ユーザが修正を全く行わない時間が長い場合であっても、より短い遅延時間で、確定文34の字幕を表示端末14に表示させることができる。また、情報処理装置10Fは、ユーザが修正操作を行っている場合には、ある程度の遅延を許容して修正操作を継続させることができる。
また、修正部101Cは、修正単位32と共に、修正制限時間を示す情報をUI部24へ表示するように、表示制御部101Fを制御する。すなわち、表示制御部101Fは、修正単位32と、修正単位32の修正制限時間と、を含む修正画面40を、UI部24(表示部)に表示する。
図24は、修正画面40の一例を示す模式図である。上記実施の形態で説明したように、修正画面40には、確定領域41Aと、修正領域41Bと、が設けられている(図6参照)。確定領域41Aには、確定文34が表示され、修正領域41Bには、修正単位32が表示される。
本実施の形態では、表示制御部101Fは、修正制限時間を更に含む、修正画面40を表示する。また、表示制御部101Fは、修正制限時間と、修正制限時間までの残り時間と、を含む修正画面40を表示することが好ましい。
例えば、表示制御部101Fは、修正制限時間と、修正制限時間までの残り時間と、を示すタイムバー42を表示する(図24(A)〜図24(D)参照)。
タイムバー42は、修正制限時間を、バーの全長で表したものである。また、図24(A)に示す例では、タイムバー42Aの全長が修正制限時間を示し、黒色領域BLが修正制限時間までの残り時間を示し、灰色領域GRが表示開始時刻Td1からの経過時間を示す。
このため、修正単位32がUI部24へ表示された直後では、表示制御部101Fは、タイムバー42全体を黒色領域BLで示したタイムバー42Bを含む修正画面40を、UI部24へ表示する(図24(B))。そして、ユーザによる修正操作中は、表示制御部101Fは、表示開始時刻Td1からの時間の経過に伴い、黒色領域BLの占める割合を減少させ、灰色領域GRの占める割合を増加させる。このため、UI部24に表示されるタイムバー42は、図24(C)、図24(D)に示すように変化する(タイムバー42C、タイムバー42D参照)。
そして、タイムバー42の全体が灰色領域GRとなったとき、すなわち、表示開始時刻Td1からの経過時間が修正制限時間と一致したときに、修正部101Cは、修正領域41Bに表示されている修正単位32の修正が確定したものと判断する。そして、修正部101Cは、第1の実施の形態の修正部20Cと同様の処理を行えばよい。
なお、修正制限時間をタイムバー42で表示する形態に限定されない。例えば、修正制限時間と、修正制限時間までの残り時間と、を修正単位32の文字色で表現してもよい。
例えば、図24(E)に示すように、表示制御部101Fは、修正制限時間までの残り時間の減少に伴い、修正単位32に含まれる文字の色を、第1の色(例えば、黒色)から第2の色(例えば灰色)に変化させてもよい(修正画面40I参照)。
なお、ユーザによる修正操作によって、修正領域41Bに表示される文字が変更される場合がある。このため、文字色を変化させる場合、修正制限時間までの残り時間に応じて、文字色を変化させる文字数の比率を、予め定めておけばよい。そして、表示制御部101Fは、修正制限時間までの残り時間に応じた文字色の比率で、修正領域41Bに表示されている文字を表示すればよい。
なお、図24には、形態素を、日本語の表記で表した場合を一例として示した。しかし、形態素の言語は、日本語に限定されない。例えば、形態素の言語は、英語であってもよい。
図25は、形態素の言語を英語で表記した場合の、修正画面40の一例を示す模式図である。図25に示すように、修正画面40Lには、確定領域41Aと、修正領域41Bと、が設けられている。確定領域41Aには、例えば、英語で表記した形態素を含む確定文34が表示され、修正領域41Bには、英語で表記した形態素を含む修正単位32が表示される。また、修正画面40Lには、修正画面40H(図24(A)参照)と同様に、修正制限時間と、修正制限時間までの残り時間と、を示すタイムバー42Gを含んだ構成とすればよい。
図2に戻り、説明を続ける。なお、上述したように、情報処理装置10Fは、カウント開始時刻の異なる2種類の修正制限時間(第1の修正制限時間、第2の修正制限時間)を用いる場合がある。
この場合、情報処理装置101Fは、2種類の修正制限時間を含む修正画面40を、UI部24へ表示すればよい。
例えば、図24(F)および図24(G)に示すように、表示制御部101Fは、第1の修正制限時間と第2の修正制限時間の各々に対応する2種類のタイムバー42を用いればよい。
図24(G)に示す例では、修正画面40Jに含まれるタイムバー42Jは、第1の修正制限時間を、バーの全長で表したものである。また、図24(G)に示す例では、タイムバー42Jの全長が第1の修正制限時間を示し、黒色領域BLが第1の修正制限時間までの残り時間を示し、灰色領域GRが表示開始時刻Td1からの経過時間を示す。
図24(G)に示す例では、修正画面40Kに含まれるタイムバー42Kは、第2の修正制限時間を、バーの全長で表したものである。また、図24(G)に示す例では、タイムバー42Kの全長が第2の修正制限時間を示し、灰色領域GRが第2の修正制限時間までの残り時間を示し、白色領域Wが修正開始時刻Td2からの経過時間を示す。
このように、表示制御部101Fは、修正制限時間を含む修正画面40を、UI部24へ表示すればよい。
次に、本実施の形態の情報処理装置10Fが実行する、情報処理の手順の一例を説明する。
情報処理装置10Fの制御部101Aは、第1の実施の形態の制御部20と同様に、図14に示す処理を実行する。なお、制御部101Aは、図14におけるステップS112の修正・付与処理において、第1の実施の形態とは一部異なる処理を実行する。
制御部101Aは、第1の実施の形態の制御部20と同様に、図17に示すステップS406〜ステップS418の処理(修正処理と称する)に代えて、図26に示す修正処理を実行する。
図26は、修正処理の手順の一例を示すフローチャートである。なお、図26は、修正制限時間が1種類である場合の、修正処理の手順の一例を示すフローチャートである。この修正制限時間は、上述したように、修正単位32がUI部24に表示された表示開始時刻Td1からの経過時間で表される。
まず、修正部101Cが、修正単位32と修正制限時間とを含む修正画面40を、UI部24へ表示する(ステップS700)。修正部101Cは、この修正単位32をUI部24へ表示した時刻を、表示開始時刻Td1として保持する。
次に、制御部101Aは、ステップS702の処理の実行中に、並行して、ステップS704の処理を行う。
ステップS702の処理は、ステップS708〜ステップS718の処理を含む。ステップS708〜ステップS718の処理は、第1の実施の形態のステップS408〜ステップS418(図17参照)と同様である。
すなわち、修正部101Cは、受付部20Gを介してUI部24から、ユーザによる操作によって入力された修正操作の種類が「確定」であるか否かを判断する(ステップS708)。ステップS708で否定判断すると(ステップS708:No)、ステップS718へ進む。ステップS708で肯定判断すると(ステップS708:Yes)、ステップS712へ進む。
ステップS712では、付与部20Dが、ステップS708によって確定した確定文34に、表示時刻を付与する(ステップS712)。次に、出力部20Eが、ステップS712で表示時刻を付与された確定文34を、表示文37として、表示端末14へ送信する(ステップS714)。次に、修正部101Cは、ステップS708で確定した確定結果を、ステップS700で表示した修正単位32から削除する(ステップS716)。
次に、修正部101Cは、ステップS700で表示した修正単位32に含まれる全ての形態素について修正が終了したか否かを判断する(ステップS718)。ステップS718で否定判断すると(ステップS718:No)、上記ステップS708へ戻る。一方、ステップS718で肯定判断すると(ステップS718:Yes)、修正処理を終了する。
一方、制御部101Aは、ステップS702の処理の実行中に、並行して、ステップS704の処理を行う。
ステップS704の処理は、ステップS706の判断を含む。ステップS706では、修正部101Cが、ステップS700で修正単位32を表示した表示開始時刻Td1からの経過時間が、修正制限時間U以上であるか否かを判断する(ステップS706)。修正部101Cは、表示開始時刻Td1と現在時刻との差が、修正制限時間U以上であるか否かを判別することで、ステップS706の判断を行う。
修正部101Cは、ステップS706で肯定判断するまで(ステップS706:Yes)、否定判断(ステップS706:No)を繰返す。そして、ステップS706で肯定判断すると(ステップS706:Yes)、上記ステップS712へ進む。
次に、情報処理装置10Fが、第1の修正制限時間と、第2の修正制限時間と、を修正制限時間として用いる場合の、修正処理の手順を説明する。
上述したように、第1の修正制限時間は、表示開始時刻Td1からの経過時間で表される。第2の修正制限時間は、UI部24に表示された修正単位32に対してユーザによる修正操作が開始された操作開始時刻Td2からの経過時間で表される。
図27は、修正処理の手順の一例を示すフローチャートである。
まず、修正部101Cが、修正単位32と修正制限時間とを含む修正画面40を、UI部24へ表示する(ステップS800)。修正部20Cは、この修正単位32をUI部24へ表示した時刻を、表示開始時刻Td1として保持する。
次に、修正部101Cは、表示された修正単位32に対してユーザが修正操作を開始したか否かを判断する(ステップS802)。例えば、修正部101Cは、ユーザによるUI部24の操作によって修正画面40に対して何等かの操作指示がなされたか否かを判別することで、ステップS802の判断を行う。
修正部101Cは、ステップS802で肯定判断(ステップS802:Yes)するまで、否定判断(ステップS802:No)を繰返す。そして、修正部101Cは、肯定判断すると(ステップS802:Yes)、ステップS804へ進む。
ステップS804では、修正部101Cは、ステップS802で肯定判断した時刻を、修正操作の開始された操作開始時刻Td2として特定する(ステップS804)。
そして、制御部101Aは、図26で説明したステップS708〜ステップS718の処理と同様にして、ステップS806〜ステップS816の処理を実行する。
なお、制御部101Aは、上記ステップS802〜ステップ816の処理に並行して、ステップS818の処理を実行する。ステップS818では、修正部101Cが、ステップS800で修正単位32を表示した表示開始時刻Td1からの経過時間が、第1の修正制限時間U1以上であるか否かを判断する(ステップS818)。修正部101Cは、表示開始時刻Td1と現在時刻との差が、第1の修正制限時間U1以上であるか否かを判別することで、ステップS818の判断を行う。
修正部101Cは、ステップS818で肯定判断するまで(ステップS818:Yes)、否定判断(ステップS818:No)を繰返す。そして、ステップS818で肯定判断すると(ステップS818:Yes)、ステップS810へ進む。
また、制御部101Aは、上記ステップS806〜ステップ816の処理に並行して、ステップS820の処理を実行する。ステップS820では、修正部101Cが、ステップS804で特定した操作開始時刻Td2からの経過時間が、第2の修正制限時間U2以上であるか否かを判断する(ステップS820)。修正部101Cは、操作開始時刻Td2と現在時刻との差が、第2の修正制限時間U2以上であるか否かを判別することで、ステップS820の判断を行う。
修正部101Cは、ステップS820で肯定判断するまで(ステップS820:Yes)、否定判断(ステップS820:No)を繰返す。そして、ステップS820で肯定判断すると(ステップS820:Yes)、ステップS810へ進む。
以上説明したように、本実施の形態の情報処理装置10Fでは、修正単位32の修正時間が修正制限時間となった時刻における修正内容を、該修正単位32の確定文34として用いる。また、情報処理装置10Fでは、該修正制限時間となった時刻を、該確定文34の確定時刻として用いる。
このため、本実施の形態の情報処理装置10Fでは、ユーザによる修正単位32の修正に時間を要することで、該修正単位32に応じた確定文34に沿った字幕の表示が大きく遅延することを、抑制することができる。また、ユーザによる修正単位32の修正時間が際限無く大きくなることを抑制することができ、音声の発話時刻に応じた表示時刻で、確定文34の字幕を表示することができる。
従って、本実施の形態の情報処理装置10Fでは、ユーザによる修正単位32の修正操作には時間を要する場合でも、上記実施の形態の効果に加えて、より正確に話者の意図を反映した字幕表示を提供することができる。
(変形例4)
なお、上記第3の実施の形態では、修正制限時間には、任意の値を予め設定する場合を説明した。
しかし、修正部101Cは、修正単位32の長さに応じて、修正制限時間を調整してもよい。
修正単位32の長さとは、修正単位32に含まれる文字数や、形態素の数や、修正単位32の時間長である。
具体的には、修正部101Cは、修正単位32の長さが短いほど、短い修正制限時間を設定する。言い換えると、修正部101Cは、修正単位32の長さが長いほど、長い修正制限時間を設定する。
例えば、修正単位32に含まれる文字数がn文字であったと仮定する。この場合、修正部101Cは、この修正単位32の修正制限時間として、n文字と、1文字当りの制限時間と、の乗算結果を用いればよい。1文字当りの制限時間は、予め定めればよい。
また、修正単位32に含まれる形態素の数がm個であったと仮定する。この場合、修正部101Cは、この修正単位32の修正制限時間として、m個と、1つの形態素当りの制限時間と、の乗算結果を用いればよい。1つの形態素当りの制限時間は、予め定めればよい。
なお、修正単位32に、複数の意味を成す1つの文字が含まれる場合がある。例えば、修正単位32に、漢字が含まれる場合がある。この場合、文字数や形態素の数を修正単位32の長さとして用いると、正確な修正制限時間を算出できない場合がある。
この場合、修正部101Cは、修正単位32の時間長を、修正単位32の長さとして用いることが好ましい。
修正単位32の時間長は、修正単位32に含まれる最も早い発話時刻の形態素に対応する開始時刻と、最も遅い発話時刻の形態素に対応する終了時刻と、の差で表される。なお、修正単位32の時間長には、修正単位32に含まれる形態素の各々の、開始時刻と終了時刻との時間差の、合計値を用いてもよい。
そして、修正部101Cは、例えば、下記式(17)を用いて、修正制限時間を算出すればよい。
式(17)中、Uiは、i番目の修正単位32の修正制限時間を示す。(tk e−tk b)は、修正単位32に含まれる形態素(k=1〜mまでの形態素)の各々の、開始時刻と終了時刻との時間差を示す。また、式(17)中、U1 tは、修正単位32の元の音声の時間長に対する修正制限時間の比率であり、0より大きい値である。U2 tは、形態素毎に付与された時間マージンを表す。U1 tおよびU2 tは、予め定めればよい。
具体的には、図3に示す修正単位32Cの修正制限時間を算出すると仮定する。但し、U1 tは“2”、U2 tは、“100”とした。また、1文字当りの制限時間は“300”、1つの形態素当りの制限時間は“600”とした。図3に示す修正単位32Cは、文字数nは“8”、形態素数mは“2”である。
この場合、修正単位32Cに含まれる文字数を修正単位32Cの長さとした場合、修正制限時間は“2400”となる。また、修正単位32Cに含まれる形態素数を修正単位32Cの長さとした場合、修正制限時間は“1200”となる。また、修正単位32Cの時間長を修正単位32Cの長さとした場合、修正制限時間は“2044”となる。
一方、図3に示す修正単位32Dの修正制限時間を算出すると仮定する。但し、U1 tは“2”、U2 tは、“100”とした。また、1文字当りの制限時間は“300”、1つの形態素当りの制限時間は“600”とした。修正単位32Dは、文字数n“21”、形態素数m“11”、時間長“8270”であったとする。
この場合、修正単位32Dに含まれる文字数を修正単位32Dの長さとした場合、修正制限時間は“6300”となる。また、修正単位32Dに含まれる形態素数を修正単位32Dの長さとした場合、修正制限時間は“6600”となる。また、修正単位32Dの時間長を修正単位32Dの長さとした場合、修正制限時間は“8270”となる。
このように、修正部101Cは、修正単位32の長さが長いほど、長い修正制限時間を設定してもよい。
(変形例5)
なお、修正部101Cは、修正単位32の長さと、修正単位32に対する音声認識の正確さに応じて、修正制限時間を調整してもよい。
具体的には、修正部101Cは、確信度が高いほど、短い修正制限時間を設定する。確信度は、修正単位32に対する音声認識の正確さを表す。確信度が高いほど、音声認識がより正確であることを示す。
本変形例では、確信度は、0以上1以下の範囲の値で表されるものとする。そして、本変形例では、確信度の値が大きいほど、確信度が高い事を示すものとする。具体的には、確信度“0”から確信度“1”に向かって、確信度が高い事を示すものとする。なお、確信度の値が小さいほど、確信度が高い事を示すものであってもよい。
なお、確信度の数値範囲は、0以上1以下の範囲に限定されない。例えば、確信度の数値範囲は、0以上100以下の範囲であってもよい。
この場合、取得部20Aは、形態素の各々に確信度の付与された対象文データ30を、音声認識端末12から取得すればよい。
図28は、対象文データ30のデータ構成の一例を示す模式図である。対象文データ30は、音声認識端末12によって音声認識されたテキストデータと、発話時刻と、を含む。テキストデータは、複数の形態素を含む。発話時刻は、例えば、発話開始時刻と発話終了時刻とで表される。
本変形例では、対象文データ30は、形態素の各々に対応する確信度を示す。本変形例では、確信度は、音声認識端末12によって付与されるものとする。
修正部101Cは、確信度が高いほど、短い修正制限時間を、修正単位32へ設定する。また、修正部101Cは、上記変形例4と同様に、修正単位32の長さが短いほど、短い修正制限時間を、修正単位32へ設定する。
例えば、修正部101Cは、下記式(18)を用いて、修正制限時間を算出する。なお、式(18)には、修正単位32の時間長を、修正単位32の長さとして用いる場合を示した。
式(18)中、Uiは、i番目の修正単位32の修正制限時間を示す。(tk e−tk b)は、修正単位32に含まれる形態素(k=1〜mまでの形態素)の各々の、開始時刻と終了時刻との時間差を示す。また、式(18)中、U1 ctは、i番目の修正単位32の元の音声の時間長に対する修正制限時間の比率であり、0より大きい値である。U2 ctは、形態素毎に付与された時間マージンを表す。U1 ctおよびU2 ctは、予め定めればよい。
また、式(18)中、ckは、i番目の修正単位32に含まれる形態素(k=1〜mまでの形態素)の各々の確信度を示す。
具体的には、修正部101Cが、図28(A)に示す修正単位32Cおよび修正単位32Dの修正制限時間を算出すると仮定する。但し、U1 ctは“3”、U2 ctは、“100”とした。
この場合、修正部101Cは、上記式(18)を用いることで、修正単位32Cの修正制限時間として“1904.1”を算出する。同様に、修正部101Cは、上記式(18)を用いることで、修正単位32Dの修正制限時間として“6632.4”を算出する(図28(B)参照)。
このように、修正部101Cは、確信度が高いほど短く、且つ、修正単位32の長さが短いほど短い、修正制限時間を、該修正単位32へ設定する。
なお、図28には、形態素を、日本語の表記で表した場合を一例として示した。しかし、形態素の言語は、日本語に限定されない。例えば、図29に示すように、対象文データ30は、テキストデータ(形態素)を英語で表記した対象文データ31であってもよい。
この場合についても、日本語の表記の場合と同様にして、修正部101Cは、修正制限時間を算出し、設定すればよい。
具体的には、修正部101Cが、図29(A)に示す修正単位32A’および図29(B)に示す修正単位32B’の修正制限時間を算出すると仮定する。但し、U1 ctは“3”、U2 ctは、“100”とした。
この場合、修正部101Cは、上記式(18)を用いることで、修正単位32A’の修正制限時間として“986.4”を算出する。同様に、修正部101Cは、上記式(18)を用いることで、修正単位32B’の修正制限時間として“3894.3”を算出する。
このように、修正部101Cは、確信度が高いほど短く、且つ、修正単位32の長さが短いほど短い、修正制限時間を、該修正単位32へ設定する。
このように、修正部101Cは、修正単位32の長さと、修正単位32に対する音声認識の正確さに応じて、修正制限時間を調整してもよい。本変形例を用いることによって、修正部101Cは、確信度が高い、すなわち修正の必要性が低い修正単位32であるほど、短い修正制限時間を設定することができる。このため、本変形例では、上記実施の形態の効果に加えて、修正単位32の修正操作時のユーザの負担軽減を図ることができる。
(変形例6)
なお、修正制限時間は、修正単位32に対するユーザの修正熟練度、ユーザの修正速度、などに基づいて調整してもよい。
例えば、情報処理装置10Fは、ユーザの識別情報(ユーザID)と、ユーザの修正熟練度および修正速度と、を予め対応付けて記憶する。そして、表示制御部101Fは、UI部24のユーザによる操作開始時に、ユーザIDの入力を促す画面を表示し、ユーザIDを受付ければよい。
そして、修正部101Cは、受付けたユーザIDに対応する、ユーザの修正熟練度および修正速度の少なくとも一方に応じて、修正制限時間を設定してもよい。例えば、修正部101Cは、ユーザの修正熟練度が高いほど、また、修正速度が速いほど、より短い修正制限時間を設定してもよい。
なお、修正部101Cは、修正単位32の長さ、確信度、ユーザの修正熟練度、および、ユーザの修正速度、の少なくとも1つに応じて、修正制限時間を設定してもよい。
(ハードウェア構成)
次に、上記実施の形態および変形例の、情報処理装置10、情報処理装置10E、および情報処理装置10Fの、ハードウェア構成について説明する。図30は、上記実施の形態および変形例の、情報処理装置10、情報処理装置10E、および情報処理装置10Fのハードウェア構成例を示すブロック図である。
上記実施の形態および変形例の、情報処理装置10、情報処理装置10E、および情報処理装置10Fは、出力部80、I/F部82、入力部94、CPU86、ROM(Read Only Memory)88、RAM(Random Access Memory)90、およびHDD92等がバス96により相互に接続されており、通常のコンピュータを利用したハードウェア構成となっている。
CPU86は、上記実施の形態および変形例の、情報処理装置10、情報処理装置10E、および情報処理装置10Fの各々で実行する処理を制御する演算装置である。RAM90は、CPU86による各種処理に必要なデータを記憶する。ROM88は、CPU86による各種処理を実現するプログラム等を記憶する。HDD92は、上述した記憶部22に格納されるデータを記憶する。I/F部82は、他の装置との間でデータを送受信するためのインターフェースである。
出力部80および入力部94は、上述したUI部24に相当し、ユーザからの操作指示の受付や表示を行う。
上記実施の形態および変形例の、情報処理装置10、情報処理装置10E、および情報処理装置10Fで実行される上記各種処理を実行するためのプログラムは、ROM88等に予め組み込んで提供される。
なお、上記実施の形態および変形例の、情報処理装置10、情報処理装置10E、および情報処理装置10Fで実行されるプログラムは、これらの装置にインストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供するように構成してもよい。
また、上記実施の形態および変形例の、情報処理装置10、情報処理装置10E、および情報処理装置10Fで実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上記実施の形態および変形例の、情報処理装置10、情報処理装置10E、および情報処理装置10Fにおける上記各処理を実行するためのプログラムを、インターネット等のネットワーク経由で提供または配布するように構成してもよい。
上記実施の形態および変形例の、情報処理装置10、情報処理装置10E、および情報処理装置10Fで実行される上記各種処理を実行するためのプログラムは、上述した各部が主記憶装置上に生成されるようになっている。
なお、上記HDD92に格納されている各種情報は、外部装置に格納してもよい。この場合には、該外部装置とCPU86と、を、ネットワーク等を介して接続した構成とすればよい。
なお、上記には、本発明の実施の形態および変形例を説明したが、上記実施の形態および変形例は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの新規な実施の形態および変形例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施の形態やその変形例は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。