以下、本発明を実施するための形態について図面を用いて詳細に説明する。本発明は、インターネット配信によるライブストリーミングにおいて、番組内容に対する生字幕の遅延度合いに応じて、生字幕の時刻補正処理を変更することを特徴とし、生字幕の時刻補正処理を、エンコード処理完了時刻までに行うようにする。これにより、リアルタイム性を確保しつつ、番組内容に対する生字幕の遅延を抑制することができる。
〔コンテンツ配信装置〕
まず、本発明の実施形態によるコンテンツ配信装置について説明する。図1は、本発明の実施形態によるコンテンツ配信装置を含むコンテンツ配信システムの全体構成例を示す概略図、及びコンテンツ配信装置の構成例を示すブロック図である。このコンテンツ配信システムは、インターネットを介して、コンテンツのライブストリーミングを行うシステムであり、コンテンツ配信装置1、配信サーバ2及び端末装置3を備えて構成される。
コンテンツ配信装置1は、コンテンツの放送用送出信号を受信し、放送用送出信号をエンコードして複数のファイルに分割し、複数のファイルの配信データDをそれぞれ生成すると共に、プレイリストを生成する。放送用送出信号としては、例えばSDI(Serial Digital Interface:シリアルデジタルインターフェース)信号が用いられる。
コンテンツ配信装置1は、放送用送出信号に含まれる生字幕データの時刻を補正し、生字幕データを映像及び音声であるコンテンツの番組内容に同期させ、プレイリストを編集する。そして、コンテンツ配信装置1は、配信データD、同期後(補正後)の生字幕データa’及びプレイリストを配信サーバ2へ送信する。
コンテンツ配信装置1が入力する放送用送出信号は、映像、音声及び生字幕データ等から構成される。映像、音声及び生字幕データのそれぞれには、共通の時刻を基準とした時刻情報が含まれる。前述のとおり、生字幕データは、生放送番組の音声から人手による書き起こしにて制作されたデータであるから、映像及び音声の番組内容よりも遅延している。番組内容に対する生字幕データの遅延時間は、制作するオペレータ及び制作される生字幕データ自体に応じて変動する。また、プレイリストは、エンコードの処理により生成された配信データD(映像、音声及び生字幕データ)の取得先、構成内容、時刻情報等が記載されたメタデータである。
配信サーバ2は、コンテンツ配信装置1からコンテンツの配信データD、同期後の生字幕データa’及びプレイリストを受信し、メモリに蓄積する。
端末装置3は、例えばスマートフォン等の動画視聴プレーヤであり、コンテンツ配信装置1からインターネットを介して、プレイリストを取得し、プレイリストに基づいてファイル構造を把握する。そして、端末装置3は、プレイリストに基づいて、配信データD及び同期後の生字幕データa’を、インターネットを介してHTTP(Hypertext Transfer Protocol:ハイパーテキスト転送プロトコル)にて取得する。
端末装置3は、プレイリストの時刻に従い、配信データD及び同期後の生字幕データa’を繋ぎ合わせ、映像及び字幕を画面表示すると共に、音声を出力することで、コンテンツを再生する。
これにより、端末装置3は、映像及び音声に対する字幕の表示の遅延が小さいコンテンツを再生することができ、この字幕の表示遅延が小さいほど、ユーザは番組内容への理解が容易になる。特に聴覚障碍者にとっては、生字幕が番組内容への理解の材料として大きな役割を果たすため、その効果が大きい。尚、端末装置3は、字幕を画面表示する際に、表示行数及び表示列数を自由に設定することができるから、番組内容に同期した字幕表示が可能となる。
図1において、コンテンツ配信装置1は、分配部10、エンコーダ11及び字幕処理部12を備えている。分配部10は、コンテンツの放送用送出信号を受信し、放送用送出信号を分配し、放送用送出信号をエンコーダ11及び字幕処理部12に出力する。
エンコーダ11は、分配部10から放送用送出信号を入力し、放送用送出信号をエンコードすることで数秒単位のファイルに分割し、配信データDを生成すると共にプレイリストを生成する。そして、エンコーダ11は、エンコードに伴ってエンコード処理時間Eを求めると共に、プレイリストから番組情報を抽出する。エンコード処理時間Eは、エンコーダ11が放送用送出信号を入力してから、当該放送用送出信号に対応する配信データDを出力するまでの処理時間である。
エンコーダ11は、配信データDを配信サーバ2へ送信すると共に、エンコード処理時間Eを含むエンコードステータス、番組情報及びプレイリストを字幕処理部12に出力する。エンコードステータス、番組情報及びプレイリストの出力頻度は任意であり、数秒単位、番組単位または1日単位であってもよい。
尚、エンコーダ11がエンコードステータスを字幕処理部12に出力することにより、字幕処理部12が、配信データDと生字幕データaとの同期処理を行う。これに対し、エンコーダ11がエンコードステータスを配信サーバ2へ送信し、配信サーバ2がこのような同期処理を行うようにしてもよい。
字幕処理部12は、分配部10から放送用送出信号を入力すると共に、エンコーダ11からエンコードステータス、番組情報及びプレイリストを入力する。
字幕処理部12は、放送用送出信号から生字幕データaを抽出すると共に、放送用送出信号に対して音声認識処理を施し、音声認識データbを生成する。字幕処理部12は、音声認識データbの音声を含む放送用送出信号を入力したタイミングの時刻を基準として時間をカウントし、字幕遅延経過時刻tを求める。ここで、時刻は、時の経過の中における瞬間の時点を意味し、時間は、時の経過の長さを意味する。
字幕遅延経過時刻tは、放送用送出信号に含まれる音声の時刻を基準とした時間経過の時刻を示す。音声認識データbの音声を含む放送用送出信号を入力したタイミングの基準の時刻から字幕遅延経過時刻tまでの間の時間期間を、字幕遅延時間Jとする。字幕遅延経過時刻tは、音声認識データbに対応する生字幕データa(音声認識データbと同じ内容の生字幕データa)が抽出されるまでカウントされる。
字幕処理部12は、エンコードステータスに含まれるエンコード処理時間Eを、エンコードステータスを入力する毎に積算して平均を求め、音声認識データbの音声を含む放送用送出信号を入力したタイミングの時刻にエンコード処理時間Eの平均を加算する。そして、字幕処理部12は、加算後の時刻をエンコード処理完了時刻Etに設定する。
字幕処理部12は、生字幕データaと音声認識データbとの間でマッチングを行う。そして、字幕処理部12は、音声認識データbに対応する生字幕データaを抽出すると(マッチングが完了すると)、生字幕データaに含まれる時刻情報(字幕時刻情報)と音声認識データbに含まれる時刻情報(音声時刻情報)との間の差分を算出する。字幕処理部12は、音声認識データbの音声を含む放送用送出信号を入力したタイミングの時刻に、その差分を加算し、加算後の時刻を字幕遅延確定時刻Jtに設定する。これらの時刻情報の差分に相当する時間は、生放送番組の音声から人手による書き起こしにて生字幕データaが制作された際の遅延時間に相当する。
ここで、字幕処理部12は、生字幕データaを含む放送用送出信号を入力してから、当該生字幕データaの処理が完了するまでの間の処理時間を、生字幕データa毎に積算して平均を求め、これをマッチング補正処理時間Rに設定して保持しているものとする。マッチング補正処理時間Rは、字幕処理部12が生字幕データaを含む放送用送出信号を入力してから、当該生字幕データaの抽出、マッチング及び補正の各処理を行い、生字幕データa’を出力するまでの処理時間である。
字幕処理部12は、字幕遅延経過時刻t、字幕遅延確定時刻Jt、エンコード処理完了時刻Et及びマッチング補正処理時間R等に基づいて、生字幕データaの補正タイプを判断して補正処理を行い、生字幕データa’を生成すると共に、プレイリストを編集する。字幕処理部12は、生字幕データa’及びプレイリストを配信サーバ2へ送信する。
図2は、図1に示した字幕処理部12の構成例を示すブロック図である。この字幕処理部12は、字幕抽出部20、音声認識部21、マッチング部22及び字幕補正部23を備えている。
字幕抽出部20は、分配部10から放送用送出信号を入力し、放送用送出信号から生字幕データaを抽出し、生字幕データaをマッチング部22に出力する。生字幕データaには、生字幕が画面表示される時刻taに関する時刻情報が含まれる。
音声認識部21は、分配部10から放送用送出信号を入力し、放送用送出信号に含まれる音声に対して既知の音声認識処理を施し、音声認識データbを生成し、音声認識データbをマッチング部22に出力する。音声認識データbには、音声が出力される時刻tbに関する時刻情報が含まれる。
マッチング部22は、字幕抽出部20から生字幕データaを入力すると共に、音声認識部21から音声認識データbを入力する。そして、マッチング部22は、生字幕データaと音声認識データbとをマッチングし、マッチングにより同一であると判定した生字幕データa及び音声認識データbを特定する。
この場合、マッチング部22は、まず、音声認識データbを入力し、その後、当該音声認識データbに対応する生字幕データaを入力する。マッチング部22は、音声認識データbとこれに対応する生字幕データaとをマッチングすることで、両者は同一である(対応している)と判定する。
マッチング部22は、音声認識部21により音声認識データbの音声を含む放送用送出信号が入力された時刻を基準として時間をカウントし、基準の時刻にカウント値を加算し、字幕遅延経過時刻tを求める。
マッチング部22は、マッチングにより、音声認識データbに対応する生字幕データaを判定すると、字幕遅延経過時刻tのカウントを停止する。そして、マッチング部22は、生字幕データaに含まれる時刻taと音声認識データbに含まれる時刻tbとの間の差分を算出し、基準の時刻に差分を加算した時刻を、字幕遅延確定時刻Jtに設定する。
マッチング部22は、字幕抽出部20の処理時間、当該マッチング部22の処理時間及び字幕補正部23の処理時間を取得し、これらの処理時間を加算した加算時間を求める。そして、マッチング部22は、字幕補正部23による処理が完了する毎に、加算時間を積算して平均を求め、これをマッチング補正処理時間Rに設定する。
マッチング部22は、音声認識データbを入力してから、当該音声認識データbに対応する生字幕データaのマッチングを完了し、字幕遅延確定時刻Jtを設定する直前までの間、音声認識データb、字幕遅延経過時刻t及びマッチング補正処理時間Rを含むマッチングデータを字幕補正部23に出力する。
また、マッチング部22は、マッチングが完了して字幕遅延確定時刻Jtを設定したときに、音声認識データbに対応する生字幕データa、音声認識データb、字幕遅延確定時刻Jt及びマッチング補正処理時間Rを含むマッチングデータを字幕補正部23に出力する。
マッチングデータは、文章単位であってもよく、文字単位、単語単位または複数の文章単位であってもよい。
字幕補正部23は、マッチング部22からマッチングデータを入力すると共に、エンコーダ11からエンコードステータス、番組情報及びプレイリストを入力する。そして、字幕補正部23は、エンコードステータスに含まれるエンコード処理時間Eを積算して平均を求め、音声認識データbの音声を含む放送用送出信号を入力したタイミングの時刻にその平均を加算し、加算結果の時刻をエンコード処理完了時刻Etに設定する。
ここで、エンコーダ11は、エンコード処理時間Eを含むエンコードステータスを字幕補正部23に出力する。これに対し、後述するように、実際に算出されたエンコード処理時間Eの代わりに固定値のエンコード処理時間Eを用いる場合には、エンコーダ11は、エンコード処理時間Eを求めなくてもよく、また、エンコード処理時間Eを含むエンコードステータスを出力しなくてもよい。この場合、配信データD及び生字幕データaの同期は、後段の配信サーバ2にて可能である。
字幕補正部23は、マッチングデータに含まれる字幕遅延経過時刻t、字幕遅延確定時刻Jt及びマッチング補正処理時間R、並びにエンコード処理完了時刻Et等に基づいて、補正タイプを判断する。
字幕補正部23は、補正タイプに応じて生字幕データaの補正処理を行い、生字幕データa’を生成すると共に、プレイリストを編集する。字幕補正部23は、補正後の生字幕データa’及びプレイリストを配信サーバ2へ送信する。
図3は、図2に示した字幕補正部23の構成例を示すブロック図である。この字幕補正部23は、入力部30、通信部31、補正タイプ判定部32及び字幕時刻補正部33を備えている。
入力部30は、マッチング部22からマッチングデータを入力し、マッチングデータを補正タイプ判定部32に出力する。
通信部31は、エンコーダ11からエンコードステータス、番組情報及びプレイリストを入力(受信)し、エンコードステータスを補正タイプ判定部32に出力すると共に、番組情報及びプレイリストを字幕時刻補正部33に出力する。
尚、通信部31は、エンコードステータス、番組情報及びプレイリストをエンコーダ11から受信する代わりに、外部のシステム(エンコードステータス、番組情報及びプレイリスト等を管理しているシステム)から受信するようにしてもよい。また、エンコードステータス、番組情報及びプレイリストの受信頻度は任意であり、数秒単位、番組単位または1日単位であってもよい。
〔補正タイプ判定部32〕
補正タイプ判定部32は、入力部30からマッチングデータを入力すると共に、通信部31からエンコードステータスを入力する。そして、補正タイプ判定部32は、マッチングデータ及びエンコードステータスに基づいて、生字幕データaの遅延度合いを求める。補正タイプ判定部32は、生字幕データaの遅延度合いに応じて補正タイプを判断し、補正タイプ及びマッチングデータを字幕時刻補正部33に出力する。
図4は、補正タイプ判定部32の処理例を示すフローチャートである。補正タイプ判定部32は、入力部30からマッチングデータを入力すると共に(ステップS401)、通信部31からエンコードステータスを入力する(ステップS402)。
補正タイプ判定部32は、前述のとおり、エンコードステータスに含まれるエンコード処理時間Eを用いてエンコード処理完了時刻Etを求める(ステップS403)。ステップS401~S403の処理は、後述するステップS405のとおり、図4の処理例において常に更新されるものとする。
ここで、マッチング部22において音声認識データbに対応する生字幕データaのマッチングが完了していない場合、マッチングデータには、音声認識データb、字幕遅延経過時刻t及びマッチング補正処理時間Rが含まれる。また、マッチング部22においてマッチングが完了している場合、マッチングデータには、生字幕データa、音声認識データb、字幕遅延確定時刻Jt及びマッチング補正処理時間Rが含まれる。
補正タイプ判定部32は、字幕の文章番号をiとして、字幕文章番号iを初期化する(i=0、ステップS404)。字幕文章番号iの字幕遅延経過時刻t、字幕遅延確定時刻Jt、マッチング補正処理時間R及びエンコード処理完了時刻Etを、それぞれti,Jti,Ri,Etiとする。以下の処理により、字幕文章番号iの字幕について補正タイプが判断される。
補正タイプ判定部32は、ステップS401,S402の入力処理を更新すると共に、ステップS403の処理を更新する(ステップS405)。
補正タイプ判定部32は、字幕遅延経過時刻tiがエンコード処理完了時刻Eti以前(よりも早いまたは同じ)(ti≦Eti)であるか否かを判定する(ステップS406)。補正タイプ判定部32は、ステップS406において、字幕遅延経過時刻tiがエンコード処理完了時刻Eti以前である(ti≦Eti)と判定した場合(ステップS406:Y)、字幕遅延の時刻が確定しているか否か、すなわちマッチングが完了して字幕遅延確定時刻Jtiを入力済みであるか否かを判定する(ステップS407)。
補正タイプ判定部32は、ステップS407において、字幕遅延の時刻が確定していないと判定した場合(ステップS407:N)、ステップS405へ移行する。一方、補正タイプ判定部32は、ステップS407において、字幕遅延の時刻が確定していると判定した場合(ステップS407:Y)、ステップS408へ移行する。
補正タイプ判定部32は、ステップS407(Y)から移行して、字幕遅延確定時刻Jtiにマッチング補正処理時間Riを加算する。補正タイプ判定部32は、加算結果の時刻をマッチング補正完了予定時刻(Jti+Ri)として、マッチング補正完了予定時刻(Jti+Ri)がエンコード処理完了時刻Eti以前(よりも早いまたは同じ)(Jti+Ri≦Eti)であるか否かを判定する(ステップS408)。
マッチング補正完了予定時刻(Jti+Ri)は、字幕処理部12が音声認識データbの音声を含む放送用送出信号を入力した時刻を基準として、音声認識データbに対応する生字幕データaが抽出されてマッチングが完了し、そして、生字幕データaの補正が完了する予定の時刻に相当する。
尚、ステップS406における字幕遅延経過時刻ti及びエンコード処理完了時刻Etiを用いた比較処理、及び、ステップS408における字幕遅延確定時刻Jti、マッチング補正処理時間Ri及びエンコード処理完了時刻Etiを用いた比較処理の技術的意義については、後述する図5~図7にて説明する。
補正タイプ判定部32は、ステップS408において、マッチング補正完了予定時刻(Jti+Ri)がエンコード処理完了時刻Eti以前である(Jti+Ri≦Eti)と判定した場合(ステップS408:Y)、生字幕データaの遅延時間が短く、エンコード処理完了時刻Etiが経過する前に生字幕データaの補正処理が完了すると判断し、補正タイプをAと判断する(ステップS409)。
補正タイプAは、番組内容に対する生字幕の時刻完全一致(完全同期)が可能なタイプであり、後段の字幕時刻補正部33により、生字幕データaの時刻taが音声認識データbの時刻tbに補正される。
補正タイプ判定部32は、ステップS408において、マッチング補正完了予定時刻(Jti+Ri)がエンコード処理完了時刻Eti以前でない(Jti+Ri>Eti)と判定した場合(ステップS408:N)、生字幕データaの遅延時間がさほど短くないと判断し、補正タイプをBと判断する(ステップS410)。
補正タイプBは、番組内容に対する生字幕の時刻完全一致(完全同期)が困難なタイプであり、字幕時刻補正部33により、生字幕データaの時刻taが、当該時刻taを基準として所定の固定値Pに基づいて補正される。
補正タイプ判定部32は、ステップS406において、字幕遅延経過時刻tiがエンコード処理完了時刻Eti以前でない(ti>Eti)と判定した場合(ステップS406:N)、字幕遅延経過時刻tiがエンコード処理完了時刻Etiを超えたとして、生字幕データaの遅延時間が長いと判断し、補正タイプをCと判断する(ステップS411)。
補正タイプCは、番組内容に対する生字幕の時刻完全一致(完全同期)が困難なタイプであり、字幕時刻補正部33は、音声認識データbの一部または全部を適用して生字幕データa’を生成するか、または生字幕データa’を生成する処理を行わない。
このように、ステップS404~S411の処理により、字幕遅延経過時刻ti、字幕遅延確定時刻Jti、マッチング補正処理時間Ri及びエンコード処理完了時刻Etiに基づいて、生字幕の時刻補正処理の種類を示す補正タイプA,B,Cが判断される。
補正タイプ判定部32は、ステップS409~S411から移行して、補正タイプ及びマッチングデータを字幕時刻補正部33に出力する(ステップS412)。
補正タイプ判定部32は、全ての字幕について処理が終了したか否かを判定し(ステップS413)、処理が終了していないと判定した場合(ステップS413:N)、字幕文章番号iをインクリメントし(i=i+1、ステップS414)、ステップS405へ移行する。これにより、次の字幕文章番号iの字幕について、ステップS405~S412の処理が行われる。
補正タイプ判定部32は、ステップS413において全ての字幕について処理が終了したと判定した場合(ステップS413:Y)、処理を終了する。
尚、補正タイプ判定部32は、通信部31から、実際に算出されたエンコード処理時間Eを含むエンコードステータスを入力するようにしたが、予め設定された固定値のエンコード処理時間Eを用いるようにしてもよい。また、補正タイプ判定部32は、入力部30から、実際に算出されたマッチング補正処理時間Rを含むマッチングデータを入力するようにしたが、予め設定された固定値のマッチング補正処理時間Rを用いるようにしてもよい。
さらに、補正タイプ判定部32は、予め設定されたエンコード処理時間Eとして、時刻に応じた固定値または番組単位の固定値を用いるようにしてもよく、予め設定されたマッチング補正処理時間Rとして、時刻に応じた固定値または番組単位の固定値を用いるようにしてもよい。
(ステップS406,S408の比較処理)
次に、図4に示したステップS406,S408の比較処理について詳細に説明する。以下、字幕文章番号iの表記は省略する。
図5は、(1)字幕遅延経過時刻t≦エンコード処理完了時刻Et、かつ、字幕遅延確定時刻Jt+マッチング補正処理時間R≦エンコード処理完了時刻Etの場合(完全同期が可能な場合)を説明する図である。詳細には、図4のステップS406において「Y」を判定し、ステップS408において「Y」を判定し、補正タイプAを判断する場合を説明する図である。横軸は時間軸である。
配信データDは、映像及び音声の放送用送出信号のタイミング(音声認識データbの音声を含む放送用送出信号を入力したタイミング)を基準として、エンコード処理時間Eを経過したエンコード処理完了時刻Etに生成される。
また、音声認識データbに対応する生字幕データaは、映像及び音声の放送用送出信号のタイミングを基準として、字幕遅延時間Jだけ遅延しており、このタイミングでマッチングが完了したとする。このタイミングの時刻が字幕遅延確定時刻Jtである。t≦Etであり、かつJt+R≦Etの条件を満たすものとする。
エンコード処理時間Eはほぼ固定値であり、字幕遅延時間Jは変動値であり、マッチング補正処理時間Rはほぼ固定値である。後述する図6,7についても同様である。
そうすると、マッチング補正後の生字幕データa(a’)のタイミングは、エンコード処理完了時刻Et以前のJt+Rのタイミングとなる。この条件(t≦Et,Jt+R≦Et)を満たす生字幕データaのタイミング範囲(字幕遅延確定時刻Jtの範囲)は、図5の矢印破線に示すとおりである。
この場合は、生字幕データaの遅延時間が短く、エンコード処理完了時刻Etが経過する前に生字幕データaの補正処理が完了すると判断される。したがって、番組内容に対する字幕の完全同期が可能であり、補正タイプAが判断される。そして、生字幕データaのマッチングが完了したときに、生字幕データaの時刻taが音声認識データbの時刻tbに補正される(ta←tb)。これにより、エンコード処理完了時刻Etには、配信データD、及び当該配信データDに対応する補正後の生字幕データa’が揃うこととなる。
図6は、(2)字幕遅延経過時刻t≦エンコード処理完了時刻Et、かつ、字幕遅延確定時刻Jt+マッチング補正処理時間R>エンコード処理完了時刻Etの場合(完全同期が困難な場合)を説明する図である。詳細には、図4のステップS406において「Y」を判定し、ステップS408において「N」を判定し、補正タイプBを判断する場合を説明する図である。横軸は時間軸である。
配信データDは、映像及び音声の放送用送出信号のタイミング(音声認識データbの音声を含む放送用送出信号を入力したタイミング)を基準として、エンコード処理時間Eを経過したエンコード処理完了時刻Etに生成される。
また、音声認識データbに対応する生字幕データaは、映像及び音声の放送用送出信号のタイミングを基準として、字幕遅延時間Jだけ遅延しており、このタイミングでマッチングが完了したとする。このタイミングの時刻が字幕遅延確定時刻Jtである。t≦Etであり、かつJt+R>Etの条件を満たすものとする。
そうすると、字幕処理部12により生字幕データaの補正が行われるとすると、マッチング補正後の生字幕データa(a’)のタイミングは、エンコード処理完了時刻Etを超えるJt+Rのタイミングとなってしまう。この条件(t≦Et,Jt+R>Et)を満たす生字幕データaのタイミング範囲(字幕遅延確定時刻Jtの範囲)は、図6の矢印破線に示すとおりである。
この場合は、生字幕データaの遅延時間がさほど短くないが、エンコード処理完了時刻Etを超える所定時刻において生字幕データaの補正処理が完了すると判断される。したがって、番組内容に対する字幕の完全同期が困難であり、補正タイプBが判断される。そして、生字幕データaのマッチングが完了したときに、生字幕データaの時刻taを基準として所定の固定値Pに基づいて補正される(ta←ta-P)。これにより、エンコード処理完了時刻Etには、配信データD、及び当該配信データDに対応する補正後の生字幕データa’が揃うこととなる。
図7は、(3)字幕遅延経過時刻t>エンコード処理完了時刻Etの場合(完全同期が困難な場合)を説明する図であり、図4のステップS406において「N」を判定し、補正タイプCを判断する場合の図である。横軸は時間軸である。
配信データDは、映像及び音声の放送用送出信号のタイミング(音声認識データbの音声を含む放送用送出信号を入力したタイミング)を基準として、エンコード処理時間Eを経過したエンコード処理完了時刻Etに生成される。
また、音声認識データbに対応する生字幕データaは、映像及び音声の放送用送出信号のタイミングを基準として、字幕遅延時間Jだけ遅延し、字幕遅延経過時刻tがエンコード処理完了時刻Etを超えるものとする。
そうすると、この条件(t>Et)を満たす生字幕データaのタイミング範囲(字幕遅延確定時刻Jtの範囲)は、図7の矢印破線に示すものとなる。
この場合は、生字幕データaの遅延時間が長いと判断され、番組内容に対する字幕の完全同期が困難であり、補正タイプCが判断される。そして、エンコード処理完了時刻Etのタイミングで、音声認識データbの一部または全部を適用して生字幕データa’が生成されるか、または生字幕データa’の生成処理は行われない。これにより、エンコード処理完了時刻Etには、配信データD、及び当該配信データDに対応する生字幕データa’が揃うこととなる。
〔字幕時刻補正部33〕
図3に戻って、字幕時刻補正部33は、補正タイプ判定部32から補正タイプ及びマッチングデータを入力すると共に、通信部31から番組情報及びプレイリストを入力する。
字幕時刻補正部33は、補正タイプに応じて、マッチングデータに含まれる生字幕データaの時刻情報を補正する処理等を行い、生字幕データa’を生成する。また、字幕時刻補正部33は、プレイリストに含まれる生字幕データaの時刻情報等を補正し、当該生字幕データaを生字幕データa’とすることで、プレイリストを編集する。
字幕時刻補正部33は、補正後の生字幕データa’及びプレイリストを配信サーバ2へ送信する。ここで、生字幕データaの時刻情報の補正の際に、補正タイプによっては、番組情報に応じて予め設定された固定値Pが用いられる。
図8は、字幕時刻補正部33の処理例を示すフローチャートである。字幕時刻補正部33は、補正タイプ判定部32から補正タイプ及びマッチングデータを入力する(ステップS801)。また、字幕時刻補正部33は、通信部31から番組情報及びプレイリストを入力する(ステップS802)。
補正タイプはA、BまたはCである。補正タイプA,Bのときのマッチングデータは、生字幕データa、音声認識データb、字幕遅延確定時刻Jt及びマッチング補正処理時間Rである。また、補正タイプCのときのマッチングデータは、音声認識データb、字幕遅延経過時刻t及びマッチング補正処理時間Rである。
字幕時刻補正部33は、予め設定された複数の固定値P1,P2,・・・のうち、番組情報に応じた固定値Pを選択する(ステップS803)。
例えば、番組情報に含まれる番組の種類と、固定値P1,P2,・・・とが対応付けられたテーブルが予めメモリに格納されている。字幕時刻補正部33は、通信部31から入力した番組情報に含まれる番組の種類に対応する固定値Pをテーブルから読み出し、読み出した固定値Pを選択する。
固定値P1,P2,・・・は、番組の種類に応じてオペレータにより予め設定された遅延時間であり、テーブルに格納されている。一般に、ニュース番組は情報番組よりも、字幕の書き起こし時間が短くて済む。このため、ニュース番組の固定値P1は、情報番組の固定値P2よりも小さい値が格納される。
これにより、後述するステップS806において、生字幕データaの時刻情報(時刻ta)は、固定値Pに基づいて、番組の種類に応じて適切に補正される。
また、字幕時刻補正部33は、番組の種類毎に、音声認識データbに対応する生字幕データaの確定した字幕遅延時間を測定してメモリに蓄積し、蓄積した加算結果の統計値(例えば平均値)を求め、固定値Pの代わりに統計値P’を用いるようにしてもよい。この場合、統計値P’は、後述するステップS806において固定値Pの代わりに用いられる。
例えば、番組情報に含まれる番組の種類と、前述の統計値P1’,P2’,・・・とが対応付けられたテーブルが予めメモリに格納されている。字幕時刻補正部33は、番組情報に含まれる番組の種類に対応する統計値P’をテーブルから読み出し、読み出した統計値P’を選択するようにしてもよい。
尚、字幕時刻補正部33は、番組情報に応じた固定値Pを選択するようにしたが、番組情報によることなく予め設定された固定値Pを用いるようにしてもよい。
字幕時刻補正部33は、補正タイプを判定する(ステップS804)。字幕時刻補正部33は、ステップS804において補正タイプAを判定した場合(ステップS804:A)、番組内容に対する生字幕の完全同期が可能であると判断し、生字幕データaの時刻taを音声認識データbの時刻tbに補正する(ステップS805)。これにより、生字幕データaの時刻taは、時刻tbに修正される。この字幕時刻の補正処理は、マッチングが完了したタイミングで行われる。つまり、字幕時刻の補正処理は、エンコード処理完了時刻Et以前のタイミングで確実に行われ、エンコード処理完了時刻Etを超えるタイミングで行われることはない。
一方、字幕時刻補正部33は、ステップS804において補正タイプBを判定した場合(ステップS804:B)、番組内容に対する生字幕の完全同期が困難であると判断し、生字幕データaの時刻taを、ステップS803にて選択した固定値Pに基づいて補正する(ステップS806)。
具体的には、字幕時刻補正部33は、生字幕データaの時刻taから固定値Pを減算し、減算結果を生字幕データaの新たな時刻(ta-P)とする。これにより、生字幕データaの時刻taは、時刻taから固定値Pを減算した時刻(ta-P)に修正される。この字幕時刻の補正処理は、マッチングが完了したタイミングで行われる。つまり、字幕時刻の補正処理は、ほぼエンコード処理完了時刻Et以前のタイミングで行われる。
尚、字幕時刻補正部33は、ステップS804において補正タイプBを判定した場合、ステップS805と同様に、生字幕データaの時刻taを音声認識データbの時刻tbに補正するようにしてもよい。
字幕時刻補正部33は、ステップS804において補正タイプCを判定した場合(ステップS804:C)、番組内容に対する生字幕の完全同期が困難であると判断し、音声認識データbの一部または全部を適用して新たな生字幕データを生成する生字幕データ生成処理を行うか、または何らの処理を行わない(生字幕データ生成処理を行わない)(ステップS807)。
具体的には、字幕時刻補正部33は、音声認識データbの一部または全部を適用して新たな生字幕データを生成する場合、音声認識データbからテキストデータを抽出し、テキストデータの一部または全部を新たな字幕データの字幕とし、音声認識データbの時刻tbを新たな字幕データの時刻とする。これにより、新たな字幕データは、音声認識データbを適用したデータとなる。この字幕時刻の補正処理は、エンコード処理完了時刻Etのタイミングで行われる。
字幕時刻補正部33は、ステップS805、ステップS806またはステップS807から移行して、補正後の生字幕データaを生字幕データa’として生成するか、または新たな字幕データを生字幕データa’とし、プレイリストに含まれる生字幕データaの時刻taを、生字幕データa’の時刻tb,ta-Pに編集する(ステップS808)。
これにより、補正タイプAの場合、時刻taを含む生字幕データaに代えて、時刻tbを含み、かつ生字幕データaと同じ字幕を有する生字幕データa’が生成され、プレイリストに含まれる生字幕データaの時刻taが生字幕データa’の時刻tbに編集される。
また、補正タイプBの場合、時刻taを含む生字幕データaに代えて、時刻ta-Pを含み、かつ生字幕データaと同じ字幕を有する生字幕データa’が生成され、プレイリストに含まれる生字幕データaの時刻taが生字幕データa’の時刻ta-Pに編集される。
また、補正タイプCの場合、時刻を時刻tbとし、かつ音声認識データbのテキストデータの一部または全部を字幕とした生字幕データa’が生成される。また、プレイリストに含まれる生字幕データaの時刻taが生字幕データa’の時刻tbに編集される。または、補正タイプCの場合、補正処理は行われない。
プレイリストは、エンコーダ11において、配信データの取得先及び構成内容等が記載されたメタデータとして生成され、その後、字幕時刻補正部33において、生字幕データa’が端末装置3にて正常に画面表示されるように編集される。
字幕時刻補正部33は、生字幕データa’及びプレイリストを配信サーバ2へ送信する(ステップS809)。
尚、字幕時刻補正部33から配信サーバ2へ送信される生字幕データa’は、配信形式(HLS,MPEG-DASH等)に合わせた形式(WebVTT,TTML,ARIB-TTML等)とする。
以上のように、本発明の実施形態のコンテンツ配信装置1によれば、マッチング部22は、音声認識部21により音声認識データbの音声を含む放送用送出信号が入力された時刻を基準として時間をカウントし、字幕遅延経過時刻tを求める。
マッチング部22は、音声認識部21により音声認識データbの音声を含む放送用送出信号が入力されたタイミングから、当該音声認識データbに対応する生字幕データaのマッチングが完了するまでの間、音声認識データb、字幕遅延経過時刻t及びマッチング補正処理時間Rを含むマッチングデータを字幕補正部23に出力する。
また、マッチング部22は、当該音声認識データbに対応する生字幕データaのマッチングが完了すると、生字幕データaに含まれる時刻taと音声認識データbに含まれる時刻tbとの間の差分を算出し、当該差分を反映した字幕遅延確定時刻Jtを求め、生字幕データa、音声認識データb、字幕遅延確定時刻Jt及びマッチング補正処理時間Rを含むマッチングデータを字幕補正部23に出力する。
字幕補正部23は、t≦Etであり、かつJt+R≦Etである場合、補正タイプAを判断する。そして、字幕補正部23は、エンコード処理完了時刻Et以前のタイミングで、生字幕データaの時刻taを音声認識データbの時刻tbに補正し、生字幕データa’を生成する。
また、字幕補正部23は、t≦Etであり、かつJt+R>Etである場合、補正タイプBを判断する。そして、字幕補正部23は、エンコード処理完了時刻Et以前のタイミングで、生字幕データaの時刻taから所定の固定値Pを減算することで生字幕データaの時刻taを(ta-P)に補正し、生字幕データa’を生成する。
さらに、字幕補正部23は、t>Etである場合、補正タイプCを判断し、エンコード処理完了時刻Etのタイミングで、音声認識データbの一部または全部を適用して生字幕データa’を生成するか、または補正処理を行わない。
これにより、生字幕データaの補正は、当該生字幕データaに対応する映像及び音声を含む放送用送出信号のエンコードが完了するエンコード処理完了時刻Etまでのタイミングで行われる。また、マッチングが完了した生字幕データaの時刻taは、音声認識データbの時刻tbに補正されるか、または当該時刻tbに近い時刻に補正される。
したがって、インターネット配信によるライブストリーミングにおいて、番組内容に対する生字幕の遅延を抑制することができる。特に、番組内容に対して生字幕が大きく遅延した場合であっても、生字幕の到着を待つことなく、エンコード処理完了時刻Etのタイミングで生字幕データaの補正を行うことができる。
すなわち、インターネット配信によるライブストリーミングにおいて、エンコード処理時間を超える遅延を発生させずにリアルタイム性を確保しつつ、番組内容に対する生字幕の遅延を抑制することができ、より分かりやすい番組提供が可能となる。
以上、実施形態を挙げて本発明を説明したが、本発明は前記実施形態に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。例えば前記実施形態のコンテンツ配信装置1において、字幕処理部12の字幕補正部23は、図4のステップS406にて、マッチング部22に生字幕データaが入力されない状態で、字幕遅延経過時刻tがエンコード処理完了時刻Et以下でないと判定した場合、補正タイプCを判断し、音声認識データbの一部または全部を適用して生字幕データa’を生成するか、または補正処理を行わないようにした。
これに対し、字幕補正部23は、音声認識データbから時刻tbを抽出し、その時刻tbに関する情報を、生字幕データaの時刻として配信サーバ2へ送信するようにしてもよい。
また、前記実施形態のコンテンツ配信装置1において、字幕処理部12は、インターネット配信用の生字幕データa’を生成して配信サーバ2へ送信するようにした。
これに対し、字幕処理部12は、生成した生字幕データa’を、当該コンテンツ配信装置1の前段に設けられた装置(図1には図示せず)へ出力するようにしてもよい。この場合、当該装置は、放送用送出信号に生字幕データa’を多重し、多重後の放送用送出信号をコンテンツ配信装置1へ出力する。コンテンツ配信装置1は、当該装置から多重後の放送用送出信号を入力し、放送用送出信号をエンコードして配信データDを生成し、プレイリストを生成すると共に、放送用送出信号から生字幕データを抽出する。そして、コンテンツ配信装置1は、配信データ、生字幕データ及びプレイリストを配信サーバ2へ送信する。
また、図1に示したコンテンツ配信システムでは、配信サーバ2と端末装置3とがインターネットを介して接続される。これに対し、コンテンツ配信装置1及び配信サーバ2も、インターネットを介して接続されるようにしてもよい。
尚、本発明の実施形態によるコンテンツ配信装置1のハードウェア構成としては、通常のコンピュータを使用することができる。コンテンツ配信装置1は、CPU、RAM等の揮発性の記憶媒体、ROM等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。
コンテンツ配信装置1に備えた分配部10、エンコーダ11及び字幕処理部12の各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。字幕処理部12は、字幕抽出部20、音声認識部21、マッチング部22及び字幕補正部23により構成され、字幕補正部23は、入力部30、通信部31、補正タイプ判定部32及び字幕時刻補正部33により構成される。
これらのプログラムは、前記記憶媒体に格納されており、CPUに読み出されて実行される。また、これらのプログラムは、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD-ROM、DVD等)、半導体メモリ等の記憶媒体に格納して頒布することもでき、ネットワークを介して送受信することもできる。