(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024008262
(43)【公開日】2024-01-19
(54)【発明の名称】字幕データ生成装置及び字幕データ生成プログラム
(51)【国際特許分類】
H04N 21/235 20110101AFI20240112BHJP
H04N 21/258 20110101ALI20240112BHJP
H04H 60/04 20080101ALI20240112BHJP
【FI】
H04N21/235
H04N21/258
H04H60/04
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022109983
(22)【出願日】2022-07-07
(71)【出願人】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】阿部 晋矢
(72)【発明者】
【氏名】藤井 翔子
(72)【発明者】
【氏名】小松 佑人
(72)【発明者】
【氏名】藤津 智
(72)【発明者】
【氏名】西本 友成
(72)【発明者】
【氏名】藤沢 寛
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164FA04
5C164MA06S
5C164MC01S
5C164SB06P
5C164SC11P
5C164YA08
(57)【要約】
【課題】字幕データの標準に準拠しつつ、個人に合わせて内容を変更できる字幕データ生成装置及び字幕データ生成プログラムを提供すること。
【解決手段】字幕データ生成装置1は、時系列の字幕情報のそれぞれに対して、字幕を構成する単語毎に、漢字部分それぞれの読みを表すデータと共に、当該読みをルビとして提示すべき視聴者の属性値の範囲を示すデータを検索し、当該漢字部分と紐付けて抽出するデータ抽出部12と、字幕情報のそれぞれについて、属性値の範囲を示すデータを、視聴者の個人データと照合することにより、読みをルビとして提示すべき漢字部分を特定した、当該読みを含む字幕表を生成する字幕表生成部13と、字幕表を、指定されたフォーマットの字幕データに変換するフォーマット変換部14と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
時系列の字幕情報のそれぞれに対して、字幕を構成する単語毎に、漢字部分それぞれの読みを表すデータと共に、当該読みをルビとして提示すべき視聴者の属性値の範囲を示すデータを検索し、当該漢字部分と紐付けて抽出するデータ抽出部と、
前記字幕情報のそれぞれについて、前記属性値の範囲を示すデータを、視聴者の個人データと照合することにより、前記読みをルビとして提示すべき漢字部分を特定した、当該読みを含む字幕表を生成する字幕表生成部と、
前記字幕表を、指定されたフォーマットの字幕データに変換するフォーマット変換部と、を備える字幕データ生成装置。
【請求項2】
前記字幕情報、及び前記単語毎の情報は、Resource Description Framework(RDF)で記述される請求項1に記載の字幕データ生成装置。
【請求項3】
前記属性値は、年齢である請求項1又は請求項2に記載の字幕データ生成装置。
【請求項4】
前記データ抽出部は、1つの単語に含まれる連続した漢字部分に紐づく前記属性値の範囲を示すデータを共通の値に変更し、
前記フォーマット変換部は、前記連続した漢字部分に対して、熟語ルビを設定する請求項1又は請求項2に記載の字幕データ生成装置。
【請求項5】
請求項1又は請求項2に記載の字幕データ生成装置としてコンピュータを機能させるための字幕データ生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動画又は音声コンテンツにおける字幕データを生成するための装置及びプログラムに関する。
【背景技術】
【0002】
従来、テレビの放送番組やインターネットを経由した動画配信などのサービスが広く利用されている。これらの動画サービスでは、マルチメディアサービスを提供しており、主となる動画及び音声データの他に、音声の発話情報などを補助又は補完する字幕データが多く提供されている。字幕データは、映像及び音声とは別に、テキストデータの形で放送又は配信され、テレビ受信機又は動画配信サービスの専用アプリケーションなどでコンテンツを再生する際、定められた提示時刻に従って同期されて視聴者に提示される。
【0003】
字幕データの方式は、放送及び通信のそれぞれで標準規格が定められている。放送の標準規格としては、非特許文献1のARIB-TTMLがある。ARIB-TTMLは、新衛星4K8K放送などに広く利用されている。
一方、通信の標準規格としては、非特許文献2のTTML Profiles for Internet Media Subtitles and Captions(IMSC)がある。IMSCは、主にインターネットでの動画配信向けに用意された標準であるが、放送での利用も広がっており、米国のATSC 3.0では、放送字幕の符号化方式としてIMSCが採用されている(非特許文献3参照)。その他にも、非特許文献4のWebVTTがあり、主にインターネットでの動画配信向けに広く利用されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2017-204695号公報
【特許文献2】特開2005-258659号公報
【非特許文献】
【0005】
【非特許文献1】デジタル放送におけるマルチメディア符号化方式(第2世代), ARIB STD-B62, 一般社団法人電波産業会
【非特許文献2】TTML Profiles for Internet Media Subtitles and Captions 1.2, W3C Recommendation 04 August 2020, <https://www.w3.org/TR/ttml-imsc1.2/>
【非特許文献3】ATSC Standard: Captions and Subtitles, Doc. A/343:2022-02, ATSC, Washington, DC, Feb. 2022.
【非特許文献4】WebVTT: The Web Video Text Tracks Format, W3C Candidate Recommendation 4 April 2019, <https://www.w3.org/TR/webvtt1/>
【非特許文献5】小林正幸, 西川俊, 三好茂樹, 石原保志, “学年別ルビ付加機能を有するソフトウェアを利用した発話内容提示システムの構築と評価,” 映像情報メディア学会誌, vol.62, no.4, pp.595-605, 2008.
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、例えば非特許文献5において、講義の発話内容に対して学年別のルビを付加して提示するシステムが提案されているように、放送又は通信の動画コンテンツに付加される字幕についても、例えば、ふりがなを出す文字の選択など、個人に合わせて表示内容を変更した方が理解しやすい。
しかしながら、現状のARIB-TTML、IMSC、WebVTTは、データの構成上、個人に合わせた字幕の変更を実現したい場合、例えば、異なる言語のデータを事前に用意して視聴者が選択するなど、全ての個人向けに多数のデータを事前に用意しないと対応できなかった。
【0007】
また、特許文献1では、放送局で使用されるベースバンド信号に含まれている字幕データから、放送と同時に通信用の字幕データをリアルタイムに生成する装置が提案されている。これにより、視聴者の受信端末へ向けて、ARIB-TTML又はWebVTTなどの標準フォーマットへの変換は可能であるが、字幕の内容は固定的で視聴者に合わせた字幕内容への変更はできない。
【0008】
本発明は、字幕データの標準に準拠しつつ、個人に合わせて内容を変更できる字幕データ生成装置及び字幕データ生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明に係る字幕データ生成装置は、時系列の字幕情報のそれぞれに対して、字幕を構成する単語毎に、漢字部分それぞれの読みを表すデータと共に、当該読みをルビとして提示すべき視聴者の属性値の範囲を示すデータを検索し、当該漢字部分と紐付けて抽出するデータ抽出部と、前記字幕情報のそれぞれについて、前記属性値の範囲を示すデータを、視聴者の個人データと照合することにより、前記読みをルビとして提示すべき漢字部分を特定した、当該読みを含む字幕表を生成する字幕表生成部と、前記字幕表を、指定されたフォーマットの字幕データに変換するフォーマット変換部と、を備える。
【0010】
前記字幕情報、及び前記単語毎の情報は、Resource Description Framework(RDF)で記述されてもよい。
【0011】
前記属性値は、年齢であってもよい。
【0012】
前記データ抽出部は、1つの単語に含まれる連続した漢字部分に紐づく前記属性値の範囲を示すデータを共通の値に変更し、前記フォーマット変換部は、前記連続した漢字部分に対して、熟語ルビを設定してもよい。
【0013】
本発明に係る字幕データ生成プログラムは、前記字幕データ生成装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0014】
本発明によれば、標準に準拠しつつ、個人に合わせて字幕の内容を変更できる。
【図面の簡単な説明】
【0015】
【
図1】字幕データ生成装置の機能構成を示す図である。
【
図2】リンクリスト型の時系列RDFデータを例示する図である。
【
図4】時系列RDFデータをTurtleで記述した場合を例示する図である。
【
図5】単語RDFデータをTurtleで記述した場合を例示する図である。
【
図6】個人向けの字幕データを抽出する際の動作アルゴリズムを例示する図である。
【
図7】字幕リストを取得するSPARQLクエリを例示する図である。
【
図9】字幕の開始時刻と終了時刻とを取得するSPARQLクエリを例示する図である。
【
図10】単語リストを抽出するためのアルゴリズムを例示する図である。
【
図11】次単語を取得するSPARQLクエリを例示する図である。
【
図12】単語又はその部分から名前を取得するSPARQLクエリを例示する図である。
【
図13】単語又はその部分から読みを取得するSPARQLクエリを例示する図である。
【
図14】単語又はその部分から年齢を取得するSPARQLクエリを例示する図である。
【
図15】単語から次部分を取得するSPARQLクエリを例示する図である。
【
図19】出力されるWebVTTファイルの記述例を示す図である。
【
図22】出力されるIMSCファイルの第1の記述例を示す図である。
【
図23】出力されるIMSCファイルの第2の記述例を示す図である。
【
図24】配列型の時系列RDFデータを例示する図である。
【
図25】配列型の単語RDFデータを例示する図である。
【
図26】配列型の時系列RDFデータをTurtleで記述した場合を例示する図である。
【
図27】配列型の単語RDFデータをTurtleで記述した場合を例示する図である。
【
図28】配列型で単語リストを抽出するためのアルゴリズムを例示する図である。
【
図29】単語集を取得するSPARQLクエリを例示する図である。
【
図31】部分集を取得するSPARQLクエリを例示する図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施形態の一例について説明する。
本実施形態の字幕データ生成装置は、動画又は音声のコンテンツと同時に利用する字幕データを、視聴者個人に最適化して配信又は放送するための装置である。
本実施形態では、視聴者に合わせた字幕表現を実現するため、オリジナルの字幕データを時系列メタデータとして用意し、これを個人データと組み合わせることで、視聴者個人にとって適切な字幕が生成される。
【0017】
ここで、字幕の多様化に向けた情報表記の手法として、例えば、Resource Description Framework(RDF)が利用できる。
RDFは、トリプル(triple)と呼ばれる3つのデータの組により、主語(subject)、述語(predicate)、目的語(object)の関係性を記述し、Uniform Resource Identifier (URI)で示される情報の関係を有向グラフにより表す枠組みである。
また、RDFで表されたデータから必要な情報を抽出するためのクエリ言語として、SPARQLがある。
【0018】
本実施形態では、字幕情報を時系列のメタデータとして表記する手法の一例として、RDFを用いる。これにより、字幕データ生成装置は、自身が保持するRDFデータの検索と共に、RDFの特性によりインターネット上の他のRDF形式のオープンデータとも連携する。
なお、メタデータの構造は、RDFには限られず、例えばRelational Database(RDB)など、条件を満たす情報を検索可能な各種のデータ構造が用いられてもよい。
【0019】
図1は、字幕データ生成装置1の機能構成を示す図である。
字幕データ生成装置1は、制御部10及び記憶部20の他、各種の入出力インタフェースなどを備えた情報処理装置(コンピュータ)である。
【0020】
字幕データ生成装置1は、字幕情報を表す時系列のRDFデータと、個人データとを組み合わせることで、個人に合わせた字幕データを出力する。
なお、字幕データ生成装置1は、放送局などのコンテンツ配信側のサーバを想定するが、これには限られず、受信端末が字幕データ生成装置1の機能を備えた構成であってもよい。
【0021】
制御部10は、字幕データ生成装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部10は、CPUであってよい。
記憶部20は、ハードウェア群を字幕データ生成装置1として機能させるための各種プログラム(字幕データ生成プログラム)、及び各種データの記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクドライブ(HDD)などであってよく、複数のデバイスで構成されてもよい。
【0022】
制御部10は、クエリ生成部11と、データ抽出部12と、字幕表生成部13と、フォーマット変換部14とを備える。
記憶部20は、字幕データ生成プログラムの他、時系列データ保持部21と、抽出データ保持部22とを備える。
【0023】
クエリ生成部11は、RDFデータを抽出するためのクエリとなるSPARQL文を生成し、データ抽出部12に提供する。
【0024】
データ抽出部12は、クエリ生成部11により生成されたSPARQL文に基づいて、時系列データ保持部21に記憶されている字幕情報としての時系列RDFデータ、及びアクセス可能なその他RDFデータから必要な情報を抽出し、抽出データ保持部22に記憶する。
具体的には、データ抽出部12は、時系列の字幕情報のそれぞれに対して、字幕を構成する単語毎に、漢字部分それぞれの読みを表すデータと共に、この読みをルビとして提示すべき視聴者の属性値である年齢の範囲を示すデータを検索し、漢字部分と紐付けて抽出する。
【0025】
ここで、字幕データ生成装置1が受信端末に構成される場合、時系列RDFデータは、例えば放送などで番組全体のデータを含んだ形で提供されることが想定される。このため、時系列RDFデータは、時系列データ保持部21に保存される。
また、時系列RDFデータからデータを抽出する際は、RDFデータの特徴である、外部のRDFデータとの組み合わせが利用可能である。すなわち、データ抽出部12は、時系列RDFデータのみでは情報が足りない場合、例えば単語情報など、その他のRDFデータと組合わせた上でデータを抽出する。
【0026】
字幕表生成部13は、データ抽出部12により抽出されたデータと、視聴者の個人データとをもとに、視聴者に対する字幕として必要な情報のみに整理する。
具体的には、字幕表生成部13は、字幕情報のそれぞれについて、属性値(年齢)の範囲を示すデータを、視聴者の個人データと照合することにより、読みをルビとして提示すべき漢字部分を特定した、読みを含む字幕表を生成する。
【0027】
フォーマット変換部14は、字幕表生成部13により生成された字幕表を、指定されたARIB-TTML、IMSC、WebVTTなどの字幕フォーマットに合わせて整形し、指定されたフォーマットの字幕ファイルに変換して出力する。
【0028】
字幕データがコンテンツ配信側のサーバで生成された場合、生成された個人向けの字幕データは、少なくとも共通部分を除く一部を受信端末が通信で取得することができる。
あるいは、受信端末で字幕データを動的に生成する場合は、関連データ(時系列RDFデータ及びその他RDFデータ)全てが放送又は通信で送信されてよい。
【0029】
[実施例1]
ここでは、字幕データ生成装置1がリンクリスト型の時系列RDFデータから字幕を生成する場合を例示する。
【0030】
図2は、リンクリスト型の時系列RDFデータを例示する図である。
動画又は音声のコンテンツ<#Content1>は、「朝ニュース」というタイトルであり、字幕<#Caption1>, <#Caption2>, …を有している。
字幕<#Caption1>は、開始時刻が「00:00:10」、終了時刻が「00:00:15」であり、字幕を構成する単語が順に次単語としてリンクされている。具体的には、<#Caption1>の次単語は<term1>、<term1>の次単語は<term2>、…、<term7>の次単語は<#Caption1>のように循環している。
<term1>, <term2>, …, <term7>は、それぞれ、対応する単語<#今日>, <#の>, <#渋谷>, <#天気>, <#は>, <#晴れ>のいずれかにリンクしている。
【0031】
この時系列RDFデータだけでは足りない情報を補うため、字幕データ生成装置1は、その他RDFデータとして、次の単語RDFデータを利用する。
【0032】
図3は、単語RDFデータを例示する図である。
例えば、単語<#今日>は、「今日」という名前、「きょう」という読み、「8」という年齢を有している。なお、年齢の「8」は、8歳未満に対して漢字の読み(ルビ)が必要であることを示している。
また、単語<#天気>は、「天」を示す次部分<#天気1>と、「気」を示す次部分<#天気2>とに分割され、順にリンクで循環している。
【0033】
これらのRDF形式のデータを記述する方法として、例えば、Turtle、JSON-LDなどがある。
【0034】
図4は、
図2の時系列RDFデータをTurtleで記述した場合を例示する図である。
コンテンツ<#Content1>には、ウェブサイトschemaで定義されたurl、caption(字幕)、name(名前)が記述されている。
さらに、字幕である<#Caption1>には、schemaで定義されたstartTime(開始時刻)、endTime(終了時刻)と、<nextTerm>(次単語)が記述され、次単語にあたる<#term1>, …には、それぞれ<term>(単語)、<nextTerm>が記述されている。
【0035】
図5は、
図3の単語RDFデータをTurtleで記述した場合を例示する図である。
各単語には、schemaで定義されたname(名前)と共に、漢字が含まれる場合には、<読み>と、schemaで定義されたtypicalAgeRange(年齢)とが記述されている。
ただし、<#渋谷>のように単語が複数の漢字に読みと共に分割できる場合、又は漢字かな交じりの場合には、<nextPart>(次部分)が順に記述され、各部分に対して、name(名前)と共に、漢字の<読み>とtypicalAgeRange(年齢)とが記述されている。
【0036】
図6は、字幕データ生成装置1が個人向けの字幕データを抽出する際の動作アルゴリズムを例示する図である。
【0037】
ステップS1において、クエリ生成部11は、処理対象のコンテンツに関する字幕リストを取得するためのSPARQLクエリを生成し、このクエリに基づいて、データ抽出部12は、時系列RDFデータから、字幕リストを抽出する。
【0038】
図7は、コンテンツ<#Content1>の字幕リストを取得するSPARQLクエリを例示する図である。
ここでは、データ抽出部12は、コンテンツ<#Content1>に含まれる字幕(schema:caption)のURIを全て取得し、字幕リストとして抽出データ保持部22に格納する。
図8は、
図7のSPARQLクエリにより得られる字幕リストを例示する図である。
【0039】
ステップS2において、クエリ生成部11は、字幕リストが空か否かを判定する。この判定がYESの場合、処理はステップS7に移り、判定がNOの場合、処理はステップS3に移る。
【0040】
ステップS3において、クエリ生成部11は、字幕リストから順に1つ抜き出す。これにより、字幕リストに含まれる字幕は1つ減少する。
以降は、
図8の字幕リストから<#Caption1>を抜き出した場合について説明する。
【0041】
ステップS4において、クエリ生成部11は、字幕の時刻情報を取得するためのSPARQLクエリを生成し、このクエリに基づいて、データ抽出部12は、時系列RDFデータから開始時刻及び終了時刻を取得する。
図9は、字幕<#Caption1>の開始時刻と終了時刻とを取得するSPARQLクエリを例示する図である。
結果として、開始時刻(schema:startTime)である「00:00:10」と、終了時刻(schema:endTime)である「00:00:15」とが抽出される。
【0042】
ステップS5において、データ抽出部12は、後述のアルゴリズムにより、時系列RDFデータから字幕<#Caption1>の単語リストを取得する。
【0043】
ステップS6において、字幕表生成部13は、単語リストと個人データとを組み合わせて字幕表を作成し、抽出データに追加する。その後、処理はステップS2に戻る。
これにより、字幕リストが空になるまで字幕情報(時刻、単語リスト)を抽出しつつ字幕表を作成する。
【0044】
ステップS7において、字幕表生成部13は、ステップS6で作成した<#Caption1>,<#Caption2>, …それぞれに対する字幕表の集合である抽出データを、フォーマット変換部14へ出力する。
【0045】
図10は、単語リストを抽出するためのアルゴリズムを例示する図である。この処理は、
図6のステップS5に相当する。
【0046】
ステップS11において、クエリ生成部11は、字幕<#Caption1>に含まれる単語を順に取得するためのSPARQLクエリを生成し、このクエリに基づいて、データ抽出部12は、時系列RDFデータから次単語を取得する。
【0047】
図11は、次単語を取得するSPARQLクエリを例示する図である。
ここで、<現在の単語のURI>には、まず初回に、<#Caption1>のURIが入力され、<#Caption1>の次単語(nextTerm)である<#term1>が取得される。これ以降は、順に単語<#term1>, <#term2>, …のURIが入力される。
【0048】
ステップS12において、クエリ生成部11は、取得した次単語が字幕<#Caption1>であるか否か、すなわち、<#Caption1>の単語を全て抽出したか否かを判定する。この判定がYESの場合、処理はステップS18に移り、判定がNOの場合、処理はステップS13に移る。
【0049】
ステップS13において、クエリ生成部11は、ステップS12で取得した次単語に次部分がないか否かを判定する。この判定がYESの場合、処理はステップS14に移り、判定がNOの場合、処理はステップS15に移る。
【0050】
ステップS14において、クエリ生成部11は、次部分を持たない次単語について、単語情報を取得するためのSPARQLクエリを生成し、これらのクエリに基づいて、データ抽出部12は、単語RDFデータから名前(漢字)、読み及び年齢を取得し、単語リストに追加する。その後、処理はステップS11に移る。
【0051】
図12は、単語又はその部分から名前(漢字)を取得するSPARQLクエリを例示する図である。
図13は、単語又はその部分から読みを取得するSPARQLクエリを例示する図である。
図14は、単語又はその部分から年齢を取得するSPARQLクエリを例示する図である。
これらの単語情報を取得するクエリは、それぞれ、単語でも部分でも利用可能である。なお、検索結果が空の場合、単語リストの該当箇所が空の値となる。
【0052】
例えば、次単語<#term1>は、<#今日>を指す単語である。<#今日>は、次部分を持たない単語のため、<#今日>の単語情報が取得され、名前(漢字)が「今日」、読みが「きょう」、年齢が「8」として単語リストに追加される。
また、<#term1>の次単語は<#term2>である。<#term2>は、<#の>を指し、名前が「の」であり、読み及び年齢は無しとなる。なお、データ無しは、例えばNull又は-1などの無効なデータを示す値で表現されてもよい。
【0053】
ステップS15において、クエリ生成部11は、次部分を取得するためのSPARQLクエリを生成し、このクエリに基づいて、データ抽出部12は、単語RDFデータから次部分を取得する。
【0054】
図15は、単語から次部分を取得するSPARQLクエリを例示する図である。
ここで、<現在の部分のURI>には、まず初回に、単語のURIが入力され、これ以降は、順に次の部分のURIが入力される。
なお、このクエリに基く抽出結果が空か否かにより、次単語に次部分がないかを判定することができる。
【0055】
ステップS16において、クエリ生成部11は、ステップS15で取得した次部分が次単語と異なるか否か、すなわち単語を構成する部分が残っているか否かを判定する。この判定がYESの場合、処理はステップS17に移り、判定がNOの場合、処理はステップS11に戻る。
【0056】
ステップS17において、クエリ生成部11は、次部分の情報を取得するためのSPARQLクエリを生成し、これらのクエリに基づいて、データ抽出部12は、時系列RDFデータから名前(漢字)、読み及び年齢を取得し、単語リストに追加する。その後、処理はステップS15に移る。
【0057】
例えば、<#term2>の次単語は<#term3>である。<#term3>は<#渋谷>を指し、<#渋谷>は次部分<#渋谷1>を持つ。したがって、<#渋谷1>の部分情報が取得され、名前(漢字)が「渋」、読みが「しぶ」、年齢が「12」として単語リストに追加される。
【0058】
ステップS18において、データ抽出部12は、字幕を構成する全ての単語及び部分に関する単語リストを出力する。
【0059】
図16は、単語リストを例示する図である。
このように、字幕に含まれる漢字の読み、及びルビとして表示すべき年齢の範囲を含む単語リストが抽出される。
この単語リストは、個人データと突き合わせることにより、漢字に対する年齢に応じたルビの有無が決定され、字幕表が作成される(
図6のステップS6)。
【0060】
図17は、個人データの第1の例を示す図である。
この例では、「○田△郎」の年齢(20歳)に基づき、字幕に含まれる漢字のルビの有無が決定される。
なお、字幕データ生成装置1が個人データを取得する方法は限定されない。例えば、視聴者がサービスにログインすることにより、アカウント情報が提供されてもよいし、Personal Data Store(PDS)などの仕組みにより個人が許諾した個人データが提供されてもよい。
【0061】
図18は、個人向けにルビの有無が設定された字幕表の第1の例を示す図である。
ここでは、<#Caption1>に関する字幕表を示しており、時刻情報と単語リストとを結合した上で、個人データの年齢からルビが必要か否かの情報が加えられている。
視聴者である「○田△郎」は20歳のため、全ての漢字についてルビ無しで表示してよいため、「ルビが必要か」の値は全てFALSEとなる。
【0062】
なお、字幕表は、表形式で例示したが、これには限られず、例えば、オブジェクト指向プログラミング言語のオブジェクトであってもよいし、RDBとしてテーブルを分けて字幕表が用意されてもよい。
【0063】
また、フォーマット変換部14は、字幕表の集合となる抽出データに基づいて、指定されたフォーマットのファイルを出力する。例えば、字幕データのフォーマットとして、WebVTTが指定されたとすると、次のように、WebVTT形式のファイルが出力される。
【0064】
図19は、出力されるWebVTTファイルの記述例を示す図である。
この例では、字幕の開始及び終了時刻と共に、ルビなしの字幕のテキストが記述されている。
【0065】
ここで、視聴者の年齢によっては、ルビありの字幕が生成される場合もある。
図20は、個人データの第2の例を示す図である。
この例では、「○田△子」の年齢(6歳)に基づき、字幕に含まれる漢字のルビの有無が決定される。
【0066】
図21は、個人向けにルビの有無が設定された字幕表の第2の例を示す図である。
視聴者である「○田△子」は6歳のため、読みのある全ての漢字についてルビありで表示する必要がある。したがって、「ルビが必要か」の値は、該当部分がTRUEとなる。
この字幕表に対して、フォーマットしてIMSCが指定されたとすると、字幕データの出力は次のようになる。
【0067】
図22は、出力されるIMSCファイルの第1の記述例を示す図である。
この例では、熟字訓となる「今日(きょう)」のみを熟語ルビとして設定し、「渋(しぶ)谷(や)」などの他の単語はモノルビとして設定されている。
【0068】
一方、全てのルビを熟語ルビとして扱うこともできる。この場合、データ抽出部12は、単語リストの抽出時に、連続した漢字部分に紐づく属性値の範囲を示すデータ(年齢)を共通の値(最大値)に変更することにより、1つの単語に含まれる連続した漢字部分を統合してもよい。これにより、連続した漢字部分に対してルビの要否が統一されるので、フォーマット変換部14は、熟語ルビを設定することができる。
【0069】
図23は、出力されるIMSCファイルの第2の記述例を示す図である。
この例では、
図22の「今日」に加えて、「渋谷」及び「天気」についても、熟語ルビとして出力されている。
【0070】
[実施例2]
ここでは、字幕データ生成装置1が配列型の時系列RDFデータから字幕を生成する場合を例示する。
【0071】
図24は、配列型の時系列RDFデータを例示する図である。
実施例1と同様に、コンテンツ<#Content1>は、字幕<#Caption1>, <#Caption2>, …を有している。
字幕<#Caption1>は、開始時刻及び終了時刻の他、字幕を構成する部分<#term1>~<#term7>を有し、各部分は、対応する単語<#今日>, <#の>, <#渋谷>, <#天気>, <#は>, <#晴れ>のいずれかにリンクしている。さらに、各部分は番号を有し、これにより順番が特定される。
なお、字幕<#Caption1>, <#Caption2>, …についても、同様に番号が付与されてもよい。
【0072】
この時系列RDFデータだけでは足りない情報を補うため、字幕データ生成装置1は、その他RDFデータとして、次の単語RDFデータを利用する。
【0073】
図25は、配列型の単語RDFデータを例示する図である。
例えば、単語<#渋谷>は、「天」を示す部分<#天気1>と、「気」を示す部分<#天気2>とに分割され、それぞれに番号が付与されることにより、順番が特定される。
【0074】
図26は、
図24の時系列RDFデータをTurtleで記述した場合を例示する図である。
コンテンツ<#Content1>には、ウェブサイトschemaで定義されたurl、caption(字幕)、name(名前)が記述されている。
さらに、字幕である<#Caption1>には、schemaで定義されたstartTime(開始時刻)、endTime(終了時刻)、position(番号)、複数のhasPart(部分)が記述され、各部分にあたる<#term1>, …には、それぞれ<term>(単語)と、schemaで定義されたposition(番号)とが記述されている。
【0075】
図27は、
図25の単語RDFデータをTurtleで記述した場合を例示する図である。
各単語には、schemaで定義されたname(名前)と共に、漢字が含まれる場合には、<読み>と、schemaで定義されたtypicalAgeRange(年齢)とが記述されている。
ただし、<#渋谷>のように単語が複数の漢字に読みと共に分割できる場合、又は漢字かな交じりの場合には、schemaで定義されたhasPart(部分)が複数記述され、各部分に対して、name(名前)と共に、漢字の<読み>とtypicalAgeRange(年齢)とが記述されている。
【0076】
字幕データ生成装置1が個人向けの字幕データを抽出する際の動作アルゴリズムは、実施例1の
図6と同様である。
すなわち、字幕データ生成装置1は、時系列RDFデータから、字幕リストを取得し、空になるまで字幕リストから1つ取り出し、字幕情報として時刻及び単語リストを順に抽出する。そして、字幕データ生成装置1は、単語リストを個人データと対応させて、字幕表を作成し、抽出データに追加する。
【0077】
図28は、配列型で単語リストを抽出するためのアルゴリズムを例示する図である。この処理は、
図6のステップS5に相当する。
【0078】
ステップS21において、クエリ生成部11は、字幕<#Caption1>の部分を順に取得するためのSPARQLクエリを生成し、このクエリに基づいて、データ抽出部12は、時系列RDFデータから単語集を取得する。
【0079】
図29は、単語集を取得するSPARQLクエリを例示する図である。
結果として、字幕<#Caption1>が有する部分(hasPart)である単語<#term1>~<#term7>、及びその番号(position)が番号順に抽出される。
図30は、単語集を例示する図である。
【0080】
ステップS22において、クエリ生成部11は、単語集が空か否か、すなわち全ての単語を処理したか否かを判定する。この判定がYESの場合、処理はステップS30に移り、判定がNOの場合、処理はステップS23に移る。
【0081】
ステップS23において、クエリ生成部11は、単語集の上から順に(番号の昇順に)単語を抜き出し、単語集の要素を減らす。あるいは、取得した単語に対して処理済みのフラグを付与してもよい。
【0082】
ステップS24において、クエリ生成部11は、ステップS23で取得した単語について、その部分である部分集を取得するためのSPARQLクエリを生成し、このクエリに基いて、データ抽出部12は、単語RDFデータから部分集を取得する。
【0083】
図31は、部分集を取得するSPARQLクエリを例示する図である。
結果として、単語<#term1>~<#term7>のそれぞれが有する部分(hasPart)及びその番号(position)が番号順に抽出される。
図32は、部分集を例示する図である。
ここでは、単語<#渋谷>の部分集として、<#渋谷1>及び<#渋谷2>が順に抽出されている。
【0084】
ステップS25において、クエリ生成部11は、ステップS24で取得した部分集のサイズが0か否かを判定する。この判定がYESの場合、処理はステップS26に移り、判定がNOの場合、処理はステップS27に移る。
【0085】
ステップS26において、クエリ生成部11は、部分を持たない単語について、単語情報を取得するためのSPARQLクエリを生成し、これらのクエリに基づいて、データ抽出部12は、単語RDFデータから名前(漢字)、読み及び年齢を取得し、単語リストに追加する。その後、処理はステップS22に移る。
【0086】
例えば、字幕<#Caption1>の1つ目の単語である<#term1>つまり<#今日>は、部分を持たない単語である。このため、部分集は空でありサイズが0となる。したがって、<#今日>の単語情報が取得され、名前(漢字)が「今日」、読みが「きょう」、年齢が「8」として単語リストに追加される。
【0087】
また、2つ目の単語である<#term2>つまり<#の>も部分を持たない単語である。このため、部分集は空でありサイズが0となる。この場合、名前(漢字)が「の」となり、読み及び年齢は無しとなる。データ無しは、例えばNull又は-1などの無効なデータを示す値で表現されてもよい。
【0088】
ステップS27において、クエリ生成部11は、部分集が空でないか否か、すなわち未処理の部分が残っているか否かを判定する。この判定がYESの場合、処理はステップS28に移り、判定がNOの場合、処理はステップS22に移る。
【0089】
ステップS28において、クエリ生成部11は、部分集の上から順に(番号の昇順に)部分を抜き出し、部分集の要素を減らす。あるいは、取得した部分に対して処理済みのフラグを付与してもよい。
【0090】
ステップS29において、クエリ生成部11は、取得した部分についての情報を取得するためのSPARQLクエリを生成し、これらのクエリに基づいて、データ抽出部12は、単語RDFデータから名前(漢字)、読み及び年齢を取得し、単語リストに追加する。その後、処理はステップS27に移る。
【0091】
例えば、字幕<#Caption1>の3つ目の単語である<#term3>つまり<#渋谷>は、部分を持つため、
図32の部分集が得られている。<#渋谷1>については、名前(漢字)が「渋」、読みが「しぶ」、年齢が「12」と、<#渋谷2>については、名前(漢字)が「谷」、読みが「や」、年齢が「8」と取得され、それぞれ単語リストに追加される。
【0092】
ステップS30において、データ抽出部12は、字幕を構成する全ての単語及び部分に関する単語リストを出力する。
なお、各情報を取得するためのSPARQLクエリは、実施例1と同様であり、結果として
図16と同一の単語リストが得られる。
【0093】
また、字幕表生成部13及びフォーマット変換部14の処理は実施例1と同様であり、時刻データ、単語リスト及び個人データから字幕表が作成され、字幕表の集合である抽出データは、指定されたフォーマットのファイルに変換されて出力される。
【0094】
本実施形態によれば、字幕データ生成装置1は、時系列の字幕情報のそれぞれに対して、字幕を構成する単語毎に、漢字部分それぞれの読みを表すデータと共に、この読みをルビとして提示すべき視聴者の属性値の範囲を示すデータを検索し、漢字部分と紐付けて抽出する。そして、字幕データ生成装置1は、属性値の範囲を示すデータを、視聴者の個人データと照合することにより、読みをルビとして提示すべき漢字部分を特定した、読みを含む字幕表を生成し、指定されたフォーマットの字幕データに変換する。
【0095】
これにより、字幕データ生成装置1は、単語毎に区切られた字幕情報に基づいて、単語情報を検索し、さらに、個人データと照合して、個人に合わせた字幕データを抽出、かつ、整形して所定のフォーマットに変換できる。
したがって、字幕データ生成装置1は、動画又は音声のコンテンツに付加される字幕について、字幕データの標準に準拠しつつ、視聴者の属性に合わせてルビの有無といった内容を変更して提示できる。
【0096】
また、字幕データ生成装置1は、1つの単語に含まれる連続した漢字部分に紐づく属性値の範囲を示すデータを共通の値に変更し、フォーマット変換部は、連続した漢字部分に対して、熟語ルビを設定してもよい。
このように、字幕データ生成装置1は、例えば、10歳の視聴者に対して、「渋谷」のルビを「渋(しぶ)谷」のみとせず、「渋谷(しぶや)」とするなど、ルビの有無を判断する区切りを調整したり、熟字訓と同様にルビの表示位置を調整したりできる。
【0097】
さらに、字幕情報がRDFで記述されることにより、同様にRDFで記述されたインターネット上のオープンデータとの接続が容易となる。特に、字幕と関連する単語情報がRDFで記述されることにより、外部データを組み合わせて効率的にシステムを構成することができる。
【0098】
また、字幕データ生成装置1は、視聴者の属性値として年齢を用いることにより、漢字の読みを習得済みであるか否かの目安を容易に判断できるため、ルビの有無を適切に切り替えて提示できる。
【0099】
なお、属性値は、年齢には限られず、例えば、漢字又は日本語の習熟度などを表す他の指標が用いられてもよい。
また、字幕の変更内容は、ルビには限られず、視聴者の属性に応じて、漢字からひらがなへの変換、簡易な表現への言い換え(例えば、「困難」から「むずかしい」へ)、あるいは、視力に応じた文字サイズの変更など、様々に応用可能である。
【0100】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
【0101】
本実施形態では、主に字幕データ生成装置の構成と動作について説明したが、本発明はこれに限られず、各構成要素を備え、字幕データを生成するための方法、又はプログラムとして構成されてもよい。
【0102】
さらに、字幕データ生成装置の機能を実現するためのプログラムをコンピュータで読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。
【0103】
ここでいう「コンピュータシステム」とは、OSや周辺機器などのハードウェアを含むものとする。また、「コンピュータで読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROMなどの可搬媒体、コンピュータシステムに内蔵されるハードディスクなどの記憶装置のことをいう。
【0104】
さらに「コンピュータで読み取り可能な記録媒体」とは、インターネットなどのネットワークや電話回線などの通信回線を介してプログラムを送信する場合の通信線のように、短時刻の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時刻プログラムを保持しているものも含んでもよい。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【符号の説明】
【0105】
1 字幕データ生成装置
10 制御部
11 クエリ生成部
12 データ抽出部
13 字幕表生成部
14 フォーマット変換部
20 記憶部
21 時系列データ保持部
22 抽出データ保持部