Copyright © 2026 World Wide Web Consortium. W3C® liability, trademark and document use rules apply.
この節は、この文書の公開時点における状態を説明する。現在のW3C 公開文書の一覧およびこの技術報告書の最新版は、 W3C標準および草案 索引にある。
この文書は、レジストリ節 を取り込み、レジストリ表を定義する。 これは、w3c レジストリに対する [w3c-process] の要件で定義されている。 レジストリ表のみを変更する文書の更新は、 レジストリ表の更新に定められているように、 勧告トラックの更新に関する他の要件を満たすことなく行うことができる。 それらのレジストリ表を更新するための要件は、 H. レジストリ節内で規範的に指定される。
作業部会の実装報告書を参照されたい。
この仕様がCR段階を終了するには、 この仕様で定義されているが [TTML2] にまだ存在しないすべての機能について、 少なくとも2つの独立した実装が実装報告書に記録される必要がある。 作業部会は、実装が公開されていることを要求しないが、公開することを奨励する。
最初の作業草案以降に適用された 実質的な変更の一覧は、 substantive-changes-summary.txtにある。
作業部会は、次の リスクあり の機能を特定している。
#113 に対する可能な解決策。
#113 に対する可能な解決策。
#115 への関連は、これが参照可能な埋め込み音声リソースの存在も意味することであり、 これは #115 で説明されている選択肢の 1 つです。
#115 への関連は、これが参照可能な埋め込み音声リソースの存在も意味することであり、 これは #115 で説明されている選択肢の 1 つです。
#115 に対する可能な解決策。
#117 に対する可能な解決策。
#117 に対する可能な解決策。
#nested-div(旧 #scriptEventGrouping)および #scriptEventMapping 機能のサポートは、まとめて、実装者からの
フィードバック待ちの at risk です。
At risk 機能は、Proposed Recommendation へ進む前に削除される可能性があります。
この文書は、Timed Text Working Group により、 Recommendation track を用いた Candidate Recommendation Draft として公開されました。
Candidate Recommendation としての公開は、 W3C およびそのメンバーによる承認を意味するものではありません。 Candidate Recommendation Draft は、 Working Group が 後続の Candidate Recommendation Snapshot に含めることを意図している、以前の Candidate Recommendation からの変更を統合します。
これは草案文書であり、いつでも更新、置換、または他の 文書によって廃止される可能性があります。この文書を作業中のもの 以外として引用することは不適切です。 この今後の Recommendation に対する将来の更新には、 新機能 が組み込まれる可能性があります。
この文書は、 W3C Patent Policy の下で運営されているグループによって作成されました。 W3C は、 グループの成果物に関連して行われた 特許開示の公開リスト を維持しています。そのページには、 特許を開示するための手順も含まれています。個人が、 その個人が Essential Claim(s) を含むと考える特許について 実際の知識を有している場合、その情報を W3C Patent Policy の section 6 に従って開示しなければなりません。
この文書は、 2025年8月18日の W3C Process Document に準拠します。
この仕様は、Timed Text Markup Language version 2.0 [TTML2] のテキストベースのプロファイルを定義します。これは、世界中の吹き替えおよび音声解説ワークフローをサポートし、 [DAPT-REQS] で定義された要件を満たし、かつ [TTML2] およびそのプロファイル内の視覚的表示機能、 たとえば [ttml-imsc1.3] のものの利用を許可することを意図しています。
この節は非規範的である。
一般的な用法では、scriptという語の意味の1つは、 映画、テレビ番組、演劇などの書かれたテキストである。 スクリプトは、完成した制作物の記録、 すなわちトランスクリプトである場合もあれば、 まだ作成されていない制作物の計画である場合もある。 この文書では、分野固有の用語を用い、より具体的に次のように定義する:
DAPTスクリプトという用語は、 トランスクリプトとスクリプトの両方を指す総称として用いられ、 この仕様の正式な要件に対する適合点である。 DAPTスクリプトは、時間付き テキストおよび関連するメタデータ、 たとえば発話しているキャラクターなどで構成される。
吹替ワークフローでは、トランスクリプトが生成され、翻訳されてスクリプトが作成される。 音声解説ワークフローでは、トランスクリプトが映像画像を記述し、 それが音声相当物を録音するためのスクリプトとして直接使用される。
DAPTは、ローカライゼーションおよび 音声解説パイプラインにおける、オーサリング、プロンプト提示、 再生ツール間でのトランスクリプトおよびスクリプト (すなわちDAPTスクリプト)の交換のための TTMLベースの形式である。 DAPT文書は、 DAPTスクリプトの直列化可能な形式であり、 吹替または音声解説に関連する情報、 たとえばDAPTスクリプトの種別、台詞、 記述、タイミング、メタデータ、元言語の文字起こしテキスト、翻訳テキスト、言語情報、音声ミキシング指示を運び、 ユーザー定義の注釈または将来の追加機能を許可できるよう拡張可能であるように設計されている。
この仕様は、DAPTスクリプトのデータモデルおよび [TTML2] 文書としてのその表現 (4. DAPTデータモデルおよび 対応するTTML構文を参照) を、いくつかの制約および制限(5. 制約を参照)とともに定義する。
DAPTスクリプトは、視聴覚メディアを 元の形で理解できないユーザーにとってアクセシブルまたはローカライズされたものにするために用いられ、 [media-accessibility-reqs] に記述されている アクセシビリティ上のニーズを含む、トランスクリプトに関するユーザーニーズを満たす解決策の一部として、 また吹替によって台詞を別の言語に翻訳する必要があるユーザーを支援するために用いられることが期待される。
DAPTスクリプトコンテンツのすべての部分は、 関連メディア内でそれが何を表すかを、 表すものプロパティを介して何らかの表示でマークアップする必要がある。 同様に、DAPTスクリプト全体は、 それが表すすべてのコンテンツ種別、 たとえば音声コンテンツまたは視覚コンテンツを表すかどうか、 視覚であればテキストか非テキストか、などを列挙する必要がある。 階層的なコンテンツ記述子のレジストリが提供される。
吹替および音声解説の両方のオーサリングワークフローには、 [DAPT-REQS] に記述されている共通の要件を共有する、 類似した段階が含まれる。 どちらの場合も、作成者はコンテンツをレビューし、 台詞または映像画像の中で何が起きているかを、 それが起きる時刻とともに書き留める。 さらなる変換プロセスでは、テキストを別の言語に変更し、 正確なタイミング制約に合うように文言を調整できる。 その後、スクリプトの音声レンダリングが生成され、 最終的に番組音声へミキシングされる段階がある。 そのミキシングは配信前に行われることも、 プレーヤー内で直接行われることもある。
吹き替えプロセスは、吹き替え台本 の作成から成るものであり、以下を含む複雑な複数段階のプロセスです。
吹き替え台本は、非対話部分の番組音声と ミックスされる翻訳済み対話を録音し、 別の言語による番組のローカライズ版、 すなわち吹き替え版、略して dub を生成するために使用される トランスクリプトまたは台本 (ワークフロー段階による)です。
吹き替え台本は、別言語の字幕またはクローズドキャプションを 作成するための出発点として有用です。 この仕様は、[ttml-imsc1.3] などの TTML の他のプロファイルにおける 字幕およびキャプション文書の追加、ならびにそれらへの変換を容易にするよう設計されています。 たとえば、字幕スタイリング構文をDAPT文書内に保持できるようにします。 あるいは、スタイリングは、音声アーティストが台本付き対話を録音する際の補助として適用できます。
音声解説コンテンツの作成もまた、複数段階のプロセスです。 音声解説は、 video description としても知られ、 また [media-accessibility-reqs] では解説付き動画として知られており、 視覚的な提示を十分に見ることができない視聴者がコンテンツを理解するのを支援するための 音声サービスです。 これは、メイン番組音声と各説明の音声レンディションをミックスした結果であり、 対話と衝突しないタイミングになるよう作成され、 音声解説をミックスした音声トラックを提供します。 メイン番組音声とは、追加のミックスが行われる前に番組に関連付けられた音声を指します。 説明とは、番組提示の一側面を説明する一連の語句であり、 発声および録音によって音声としてレンダリングするのに適しているもの、 または [WCAG22] で定義されているように、 テキスト読み上げ変換のためのテキスト代替ソースとして使用されるものです。 音声解説とは何か、およびそれがどのように 機能するかについての詳細は、[BBC-WHP051] にあります。
音声解説台本の作成には、通常、以下が含まれます。
音声ミックスは、メディアの配信前に行われる場合も、 クライアント内で行われる場合もあります。 音声解説台本が プレーヤーに配信される場合、 テキストは代替レンダリングを提供するために使用できます。 たとえば、点字ディスプレイ上で、 またはユーザーが設定したスクリーンリーダーを使用して提供できます。
DAPTスクリプトは、 他のワークフローおよびシナリオでも有用であり得る。 たとえば、元言語トランスクリプトは、次のように使用できる:
元言語トランスクリプトと翻訳済みトランスクリプトの両方は、次のように使用できる:
文書の最上位構造は次のとおりである:
http://www.w3.org/ns/ttml 内の <tt> ルート要素は、
これがTTML文書であることを示し、
ttp:contentProfiles
属性は、この仕様で定義されるDAPTコンテンツプロファイルに準拠していることを示す。
daptm:scriptRepresents属性は、文書の内容が、
元の番組内の何に対する代替であるかを示す。daptm:scriptType属性は、トランスクリプトまたはスクリプトの種別を示す。
ただし、この空の例では文書の構造のみを示しているため、関連しない。daptm:langSrc属性は、
既定のテキスト言語ソース、
たとえばコンテンツの元言語を示す。
一方、xml:lang属性は、このスクリプト内の既定の言語を示し、
この場合は同じである。
これらの属性はいずれも継承され、文書のコンテンツ内で上書きできる。
この構造は、吹替または音声解説のいずれであっても、 すべての種別のDAPTスクリプトに適用できる。
<tt xmlns="http://www.w3.org/ns/ttml"
xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
xmlns:daptm="http://www.w3.org/ns/ttml/profile/dapt#metadata"
ttp:contentProfiles="http://www.w3.org/ns/ttml/profile/dapt1.0/content"
xml:lang="en"
daptm:langSrc="en"
daptm:scriptRepresents="audio"
daptm:scriptType="originalTranscript">
<head>
<metadata>
<!-- Additional metadata may be placed here -->
<!-- Any characters must be defined here as a set of ttm:agent elements -->
</metadata>
<styling>
<!-- Styling is optional and consists of a set of style elements -->
</styling>
<layout>
<!-- Layout is optional and consists of a set of region elements -->
</layout>
</head>
<body>
<!-- Content goes here and consists of a div for each Script Event -->
<div xml:id="d1" begin="..." end="..." daptm:represents="audio.dialogue">
<p>
<!-- Text blocks are contained in p elements -->
</p>
<p xml:lang="fr" daptm:langSrc="en">
<!-- Translation text is related to the source language for the translation -->
</p>
</div>
</body>
</tt>
次の例は、[DAPT-REQS] に記述されている ワークフローの各段階で生成される時間付きテキストのトランスクリプトおよびスクリプトに対応する。
最初の例は、記述または文字起こしのための時間付き機会は特定されているが、
まだテキストが書かれていない初期段階のトランスクリプトを示す。
ここで<body>要素上に存在するdaptm:represents属性は、
<div>要素が別の値を指定していないため、
それらの要素に継承される:
...
<body daptm:represents="...">
<div xml:id="id1" begin="10s" end="13s">
</div>
<div xml:id="id2" begin="18s" end="20s">
</div>
</body>
...
以降の例では、吹替および音声解説ワークフローにおけるさまざまな用途を示す。
記述が追加されると、これは録音前スクリプトになる。
この場合、音声解説コンテンツの大部分が、固有の言語を持たない映像画像を文字起こしすることを反映するために、
テキスト言語ソースが、属性によって表され、
文書の最上位でdaptm:langSrczxxに設定されていることに注意されたい。
これは [bcp47] によって、
言語分類が適用されないコンテンツを識別するものとして定義された言語コードである:
<tt xmlns="http://www.w3.org/ns/ttml"
xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
xmlns:daptm="http://www.w3.org/ns/ttml/profile/dapt#metadata"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
ttp:contentProfiles="http://www.w3.org/ns/ttml/profile/dapt1.0/content"
xml:lang="en"
daptm:langSrc="zxx"
daptm:scriptRepresents="visual.nonText"
daptm:scriptType="preRecording">
<body>
<div begin="10s" end="13s" xml:id="a1" daptm:represents="visual.nonText">
<p>
A woman climbs into a small sailing boat.
</p>
</div>
<div begin="18s" end="20s" xml:id="a2" daptm:represents="visual.nonText">
<p>
The woman pulls the tiller and the boat turns.
</p>
</div>
</body>
</tt>
音声解説コンテンツには、視覚画像内に存在するテキスト、 たとえば画像に書かれた標識、場所などが含まれることが多い。 次の例はそのような場合を示す。 スクリプトが表すものは、 スクリプトの内容が非テキストの視覚情報に加えて テキストの視覚情報も表すことを示すために拡張されている。 ここでは、スクリプトイベント上で、より正確な 表すものの値が指定されており、 そのテキストが実際には場所であることを反映している。 これは、そのより正確な値が、スクリプトが表すもの内の 新しい値のサブタイプであるため許可される。 最後に、そのテキストには固有の言語があるため、テキスト言語 ソースは、その言語を反映するよう設定されている。
<tt xmlns="http://www.w3.org/ns/ttml"
xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
xmlns:daptm="http://www.w3.org/ns/ttml/profile/dapt#metadata"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
ttp:contentProfiles="http://www.w3.org/ns/ttml/profile/dapt1.0/content"
xml:lang="en"
daptm:langSrc="zxx"
daptm:scriptRepresents="visual.nonText visual.text"
daptm:scriptType="preRecording">
<body>
<div begin="7s" end="8.5s" xml:id="at1"
daptm:represents="visual.text.location" daptm:langSrc="en">
<p>
The Lake District, England
</p>
</div>
<div begin="10s" end="13s" xml:id="a1"
daptm:represents="visual.nonText">
<p>
A woman climbs into a small sailing boat.
</p>
</div>
<div begin="18s" end="20s" xml:id="a2"
daptm:represents="visual.nonText">
<p>
The woman pulls the tiller and the boat turns.
</p>
</div>
</body>
</tt>
音声録音を作成した後、テキスト読み上げを使用しない場合は、
再生ミキシングのための指示を挿入できる。たとえば、<span>要素の内側から
再生される音声をミキシングする前に、「受信」音声のゲインを変更し、
入るときに値を滑らかにアニメーションさせ、出るときに元に戻すことができる:
<tt ...
daptm:scriptRepresents="visual.nonText"
daptm:scriptType="asRecorded"
xml:lang="en"
daptm:langSrc="zxx">
...
<div begin="25s" end="28s" xml:id="a3" daptm:represents="visual.nonText">
<p>
<animate begin="0.0s" end="0.3s" tta:gain="1;0.39" fill="freeze"/>
<animate begin="2.7s" end="3s" tta:gain="0.39;1"/>
<span begin="0.3s" end="2.7s">
<audio src="clip3.wav"/>
The sails billow in the wind.</span>
</p>
</div>
...
文書レベルでは、daptm:scriptRepresents属性は、
関連メディア内で文書が視覚テキストおよび視覚非テキストコンテンツの両方を表すことを示す。
たとえば映像画像内にテキストが存在しないために、実際には視覚テキストを表すスクリプトイベントが
ない可能性もある。
上の例では、<div>要素の
begin属性がその子に対する「syncbase」となる時刻を定義しているため、
ここでは<animate>要素および<span>要素上の時刻は
25sを基準に相対的である。
最初の<animate>要素は、0.3sかけてゲインを1から0.39へ下げ、
終了後にその値を固定し、
2つ目の要素はこの記述の最後の0.3sでゲインを元に戻す。
その後、<span>要素は、最初の音声ディップが完了した後にのみ開始するよう
タイミング付けされている。
音声録音が長く、その一部だけを再生する必要がある場合は、
clipBeginおよびclipEndを使用して行うことができる。
5sから8sまでの音声ファイルの一部だけを再生したい場合は、次のようになる:
...
<span><audio src="long_audio.wav" clipBegin="5s" clipEnd="8s"/>
A woman climbs into a small sailing boat.</span>
...
または、テキストを発話させるために音声属性を追加することもできる:
...
<div begin="18s" end="20s" xml:id="a2">
<p>
<span tta:speak="normal">
The woman pulls the tiller and the boat turns.</span>
</p>
</div>
...
音声を直接埋め込むことも可能であり、 それにより1つの文書にスクリプトと 録音済み音声をまとめて含めることができる:
...
<div begin="25s" end="28s" xml:id="a3">
<p>
<animate begin="0.0s" end="0.3s" tta:gain="1;0.39" fill="freeze"/>
<animate begin="2.7s" end="3s" tta:gain="0.39;1"/>
<span begin="0.3s" end="2.7s">
<audio><source><data type="audio/wave">
[base64-encoded audio data]
</data></source></audio>
The sails billow in the wind.</span>
</p>
</div>
...
例 1の基本構造から、
音声を文字起こしすると、元言語の吹替トランスクリプトが
生成され、次のようになり得る。
特定のスタイルまたはレイアウトは定義されておらず、ここでは台詞の文字起こしに焦点を当てている。
キャラクターは<metadata>要素内で識別される。
言語とテキスト言語ソースは、
それぞれxml:lang属性および属性を
使用して定義され、
トランスクリプトは翻訳されていないため、
同じ値を持つことに注意されたい。
daptm:langSrc
<tt xmlns="http://www.w3.org/ns/ttml"
xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
xmlns:daptm="http://www.w3.org/ns/ttml/profile/dapt#metadata"
ttp:contentProfiles="http://www.w3.org/ns/ttml/profile/dapt1.0/content"
xml:lang="fr"
daptm:langSrc="fr"
daptm:scriptRepresents="audio.dialogue"
daptm:scriptType="originalTranscript">
<head>
<metadata>
<ttm:agent type="character" xml:id="character_1">
<ttm:name type="alias">ASSANE</ttm:name>
</ttm:agent>
</metadata>
</head>
<body>
<div begin="10s" end="13s" xml:id="d1" daptm:represents="audio.dialogue">
<p ttm:agent="character_1">
<span>Et c'est grâce à ça qu'on va devenir riches.</span>
</p>
</div>
</body>
</tt>
テキストを翻訳した後、文書は変更される。翻訳テキストが含まれ、
この場合は元のテキストが保持される。主文書の既定の
言語は、焦点が翻訳後の言語にあることを示すように変更される。
xml:lang属性と属性の組み合わせは、
テキストが元のものか翻訳されたものかをマークするために用いられる。
この場合、それらは例を読みやすくするためにdaptm:langSrc<tt>要素と<p>
要素の両方に存在するが、
継承モデルを利用して、いくつかの場合には省略することも可能である:
<tt xmlns="http://www.w3.org/ns/ttml"
xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
xmlns:daptm="http://www.w3.org/ns/ttml/profile/dapt#metadata"
ttp:contentProfiles="http://www.w3.org/ns/ttml/profile/dapt1.0/content"
xml:lang="en"
daptm:langSrc="fr"
daptm:scriptRepresents="audio.dialogue"
daptm:scriptType="translatedTranscript">
<head>
<metadata>
<ttm:agent type="character" xml:id="character_1">
<ttm:name type="alias">ASSANE</ttm:name>
</ttm:agent>
</metadata>
</head>
<body>
<div begin="10s" end="13s" xml:id="d1" ttm:agent="character_1" daptm:represents="audio.dialogue">
<p xml:lang="fr" daptm:langSrc="fr"> <!-- original -->
<span>Et c'est grâce à ça qu'on va devenir riches.</span>
</p>
<p xml:lang="en" daptm:langSrc="fr"> <!-- translated -->
<span>And thanks to that, we're gonna get rich.</span>
</p>
</div>
</body>
</tt>
録音前の翻案プロセスでは、文言を調整したり、さらなるタイミングを追加したりして、
録音を支援できる。
daptm:scriptType属性も、次の例のように変更される:
<tt xmlns="http://www.w3.org/ns/ttml"
xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
xmlns:daptm="http://www.w3.org/ns/ttml/profile/dapt#metadata"
ttp:contentProfiles="http://www.w3.org/ns/ttml/profile/dapt1.0/content"
xml:lang="en"
daptm:langSrc="fr"
daptm:scriptRepresents="audio.dialogue"
daptm:scriptType="preRecording">
<head>
<metadata>
<ttm:agent type="character" xml:id="character_1">
<ttm:name type="alias">ASSANE</ttm:name>
</ttm:agent>
</metadata>
</head>
<body>
<div begin="10s" end="13s" xml:id="d1" ttm:agent="character_1" daptm:onScreen="ON_OFF" daptm:represents="audio.dialogue">
<p xml:lang="fr" daptm:langSrc="fr">
<span>Et c'est grâce à ça qu'on va devenir riches.</span>
</p>
<p xml:lang="en" daptm:langSrc="fr">
<span begin="0s">And thanks to that,</span><span begin="1.5s"> we're gonna get rich.</span>
</p>
</div>
</body>
</tt>
この文書では、次の規約を使用する:
<someElement>。
そのエンティティは、本文中でも要素として記述される。
この仕様で参照される要素の名前が名前空間修飾されていない場合、
TT名前空間が適用される(名前空間を参照)。
attributePrefix:attributeName としてスタイル付けされ、
接頭辞なしの属性は attributeName としてスタイル付けされる。
そのエンティティは、本文中でも属性として記述される。daptm:foo という新しい属性を、2つの可能な値
bar および baz を持つ文字列として定義する。
daptm:foo
: "bar"
| "baz"
LocationPath表記を使用する。
たとえば、<tt>要素の子である
<head>要素の子である最初の<metadata>要素を
参照するには、
次のパスが使用される:
/tt/head/metadata[0]。
レジストリ表節内のコンテンツは、 [w3c-process] で定義されるように、 他の勧告トラックコンテンツとは異なる更新要件を持つ。
この節は、DAPTのデータモデルと、それに対応する TTML構文を指定する。 このモデルには、プロパティを持ち、他のオブジェクトと関連付けられるオブジェクトが存在する。 TTML構文では、これらのオブジェクトおよびプロパティは 要素および属性として表現されるが、 オブジェクトが常に要素として、プロパティが常に属性として表現されるわけではない。
図1は、DAPTデータモデルを示し、すべての オブジェクトおよびプロパティを この文書内の対応する節へハイパーリンクしている。 共有プロパティは斜体で示される。 図におけるその他すべての規約は、[uml] に従う。
#115 も参照してください - インラインではない 埋め込み音声リソースをサポートするのであれば、それらのためのオブジェクトを作成し、データモデルに追加すべきでしょうか?
DAPT スクリプトとは、オーサリングワークフロー内で処理される文書、またはクライアントによって処理される文書に対応し、 この仕様の制約に適合するトランスクリプトまたはスクリプトである。 これは、次の節で定義されるプロパティおよびオブジェクトを持つ: スクリプトが表すもの、スクリプト種別、既定の言語、テキスト言語 ソース、スクリプトイベント および、吹替スクリプトの場合は、キャラクターである。
DAPT文書とは、 DAPTスクリプトを表す [TTML2] 時間付きテキストコンテンツ文書 インスタンスである。 DAPT文書は、 この節および後続の節で定義される構造と制約を持つ。
[TTML2] 時間付きテキストコンテンツ文書
インスタンスは、
TT名前空間内にルート<tt>要素を持つ。
スクリプトが 表すものプロパティは、DAPTスクリプトの必須プロパティであり、 文書の内容が関連メディアオブジェクトのどの構成要素を 表すかを示す。 文書の内容は、それらの構成要素に対するアクセシブルな代替を提供するための仕組みの一部として 使用できる。
スクリプトイベントには、関連するプロパティである表すものがあり、 そのプロパティで許可される値については、スクリプトが表すものの値に 依存する制約がある。
このプロパティを表すために、daptm:scriptRepresents属性は
<tt>要素上に存在しなければならず、
次の構文に適合する値を持つ:
daptm:scriptRepresents
: <content-descriptor> ( <lwsp>+ <content-descriptor>)*
<lwsp> # as TTML2
既定の 言語は、DAPTスクリプトの必須プロパティであり、 スクリプトイベントのテキストコンテンツに対する既定の言語を表す。 この言語は、元の言語の1つである場合も、翻訳言語である場合もある。 翻訳言語を表す場合、それは吹替または音声解説スクリプトが準備される 最終的な言語であることがあり、 目標録音言語と呼ばれる。または、ワークフローで使用される中間言語、すなわち ピボット言語であることもある。
既定の言語は、DAPT文書では、次の構造および制約によって 表される:
xml:lang属性は<tt>要素上に存在しなければならず、
その値は空であってはならない。
スクリプト種別プロパティは、DAPTスクリプトの必須プロパティであり、 吹替および音声解説ワークフローで使用される文書の種別を、次のものの中から記述する: 元言語トランスクリプト、 翻訳済みトランスクリプト、 録音前スクリプト、 録音済みスクリプト。
このプロパティを表すために、daptm:scriptType属性は<tt>要素上に
存在しなければならない:
daptm:scriptType
: "originalTranscript"
| "translatedTranscript"
| "preRecording"
| "asRecorded"
文書の種別と、対応するdaptm:scriptType属性値の定義は次のとおりである:
daptm:scriptType属性値がoriginalTranscriptである場合、
その文書は、台詞および/または画面上テキストをそれらの固有の発話/書記言語で文字どおりに
文字起こししたもの、
または非台詞音および非言語的な視覚コンテンツを文字起こししたものである。
daptm:scriptType属性値がtranslatedTranscriptである場合、
その文書は、共通言語における元言語トランスクリプトの翻訳を表す。
daptm:scriptType属性値がpreRecordingである場合、
その文書は、録音のために元言語トランスクリプトまたは
翻訳済みトランスクリプトを翻案した結果を表す。
たとえば、吹替ワークフローでより良いリップシンクを実現するため、
または音声解説ワークフローで利用可能な時間内に語句が収まることを確実にするためである。
daptm:scriptType属性値がasRecordedである場合、
その文書は実際の音声録音を表す。
次の例は孤立している――列挙されたスクリプト種別の前、節の先頭へ移動するか?
<tt daptm:scriptType="originalTranscript">
...
</tt>
DAPTスクリプトは、各々が特定の時間間隔の 台詞、画面上テキスト、または記述に対応する、0個以上のスクリプトイベントオブジェクトを 含んでよい。
いずれかのスクリプトイベントが存在する場合、DAPT文書は、
<tt>要素の子として1つの<body>要素を持たなければならない。
DAPTスクリプトは、それぞれが スクリプトイベントから参照できる キャラクターを記述する、0個以上のキャラクターオブジェクトを含んで よい。
いずれかのキャラクターオブジェクトが存在する場合、DAPT文書は、
<tt>要素の子として1つの<head>要素を持たなければならず、
その<head>要素は、少なくとも1つの<metadata>要素の子を
持たなければならない。
4.2 キャラクターは、
すべてのキャラクターオブジェクトを
単一の<metadata>親要素内に配置すること、
また<head>要素の子として複数の
<metadata>要素がある場合には、
キャラクターオブジェクトをその最初の子内に配置することを
推奨している。
この節は主に吹替ワークフローに関連する。
番組内のキャラクターは、次のプロパティを持つキャラクターオブジェクトを使用して記述できる:
キャラクターは、DAPT文書において、 次の構造および制約によって表される:
/tt/head/metadata/ttm:agentに存在する<ttm:agent>要素によって
表され、次の制約を持つ:
type属性はcharacterに設定しなければならない。
xml:id属性は<ttm:agent>要素上に存在しなければならず、
キャラクター識別子に設定されなければならない。
<ttm:agent>要素は、type属性がaliasに設定され、
その内容がキャラクター
名に設定された<ttm:name>要素を含まなければならない。
キャラクターがタレント名を持つ場合、
それは<ttm:actor>子要素を含まなければならない。
その子要素は、別個の<ttm:agent>要素のxml:id属性の値に
設定されたagent属性を持たなければならない。
その<ttm:agent>要素は、
タレント名に対応し、
すなわち、そのtype属性がpersonに設定されているものである。
タレント名に
対応する追加の<ttm:agent>要素に対する要件は、
次の箇条書きリストで定義される。
...
<metadata>
<ttm:agent type="character" xml:id="character_1">
<ttm:name type="alias">DESK CLERK</ttm:name>
</ttm:agent>
</metadata>
...
...
<metadata>
<ttm:agent type="person" xml:id="actor_A">
<ttm:name type="full">Matthias Schoenaerts</ttm:name>
</ttm:agent>
<ttm:agent type="character" xml:id="character_2">
<ttm:name type="alias">BOOKER</ttm:name>
<ttm:actor agent="actor_A"/>
</ttm:agent>
</metadata>
...
<ttm:agent>要素は、パス/tt/head/metadata/ttm:agentに存在しなければならず、次の制約を持つ:
type属性はpersonに設定しなければならない
xml:id属性は設定しなければならない。typeがfullに設定されなければならず、
その内容がタレント名に
設定された<ttm:name>子要素を持たなければならない。
<ttm:agent>要素が存在すべきであり、
それぞれのキャラクターから個別に参照される。
<ttm:agent>要素は、
それを参照する<ttm:actor>子要素を持つ
キャラクター
<ttm:agent>要素より前に出現すべきである。
<ttm:agent>要素は、<head>要素内の
最初の<metadata>要素に含められるべきである。
<head>要素内には複数の<metadata>要素が
存在できる。
たとえば独自
メタデータを含めるためである。
ただし、上記では、キャラクターを定義するために1つだけを使用することを推奨している。
汎用的な「プレゼンテーションプロセッサ」または「変換プロセッサ」を使用することを避けるため、
適合実装種別の独自のクラスを定義すべきである。それらへリンクできる。
現時点では、次のクラスを考えられる:
スクリプトイベントオブジェクトは、発話される台詞、画面上テキスト、または 音声解説を表し、次のプロパティを持つ:
0個以上のテキストオブジェクト。それぞれは元または翻訳のいずれかである。
テキストオブジェクトを 持たないスクリプトイベントは、何らかのコンテンツが存在し得る 時間間隔を大まかに割り当てることが役立つワークフローにおける、オーサリングの初期段階の一部として 作成できる。 たとえば、タイミング プロパティを持つ空のスクリプトイベントを作成して、音声解説を作成する機会を 識別できる。 [DAPT-REQS] プロセス ステップ1も参照。
スクリプトイベントは、DAPT文書において、
パス/tt/head/body//divで表され、
次の構造および制約を持つ:
#216(コメント)での議論に基づくと、 divがスクリプトイベントを表す時を示す明示的なシグナルを持つべきだと思う。
<body> 要素と、スクリプトイベントに対応する
<div> 要素との間のパスには、任意の数のネストされた
<div> 要素の祖先が存在して
MAY である。
そのような要素について、これ以上の意味論は定義されない。
<div> 要素が 1 つ存在
MUST であり、
以下の制約を満たす。
xml:id 属性が存在し、そこに
スクリプトイベント識別子を含んでい
MUST。
xml:id 属性を持たないため
スクリプトイベントとは見なされない
<div> 要素をプロセッサがどのように扱うかの詳細については、
6.3
<div> および
<p> 要素の処理
を参照。
begin、end および dur 属性は、それぞれ
開始、終了および継続時間を表す。
これはスクリプトイベントのものである。
begin および end 属性は存在
SHOULD である。
dur 属性は存在して MAY である。
タイミングプロパティに関する追加の注記については、4.1.6.1 タイミングプロパティを参照。
ttm:agent 属性は存在して MAY であり、存在する場合は、
関連付けられたキャラクターを表す各 ttm:agent 属性への参照を含んで
MUST である。
...
<div xml:id="event_1"
begin="9663f" end="9682f"
ttm:agent="character_4">
...
</div>
...
daptm:represents
属性は存在して MAY であり、
表す対象プロパティを表す。
...
<div xml:id="event_1"
begin="9663f" end="9682f"
daptm:represents="audio.dialogue">
...
</div>
...
daptm:represents
属性の算出値は、有効な空でない値で
MUST である。
<p> 要素を含んで
MAY である。
<metadata> 要素を含んで
MAY である。
<div> 要素の子も含んで
MUST NOT である。
テキストオブジェクトは、 通常は単一言語のテキストコンテンツを含む。 この言語は、原文言語、または翻訳言語であってよい。
テキストは、 以下のいずれかである場合、原文として定義される。
テキストは、 異なる言語での原文テキストオブジェクトの表現である場合、 翻訳として定義される。
テキストは、 その言語とテキスト言語ソースを あわせて調べることにより、 テキスト言語ソースで定義された意味論に従って、 原文または翻訳であるものとして 識別できる。
翻訳テキストオブジェクト、および該当する場合には 原文テキストオブジェクトの ソース言語は、テキスト言語ソースプロパティを用いて示される。
テキスト オブジェクト、またはその一部が、親のスクリプトイベントよりも具体的なもの、または異なるものを表す場合、 それは異なる表す対象プロパティを持つことができる。
テキスト オブジェクト、およびそのすべての部分は、有効な表す対象プロパティを 持たなければMUSTならない。 このプロパティ自体の存在は任意と見なされる。 なぜなら、テキストオブジェクトがこの プロパティを省略した場合、そのプロパティは親のスクリプトイベントから継承されるからである。
テキストオブジェクトは スタイル付けできる。
テキストの間に番組音声を変更するために使用される 0 個以上のミックス指示オブジェクトが存在しても MAY よい。
テキストオブジェクトは、
DAPT文書内では、
パス /tt/head/body//div/p にある
<p> 要素によって表現され、以下の制約を伴う。
<metadata> 要素および外来要素が取り除かれた後、
<br> 要素が改行に置き換えられた後、
かつ [XML]
で定義される空白処理を適用した後の、
<p> 要素およびそのすべての <span> 子孫要素の文字コンテンツによって
表現される。
<p> 要素は、daptm:langSrc 属性を持つべき
SHOULD であり、
これはテキストオブジェクトのテキスト言語
ソース、
すなわち、テキストが原文であるか翻訳であるか、
またそのソースが固有の言語を持っていたかを示す。
daptm:langSrc の算出値は、
空文字列または und であるべきでは
SHOULD NOT ない。
<p> 要素は、テキストオブジェクトの言語に対応する
xml:lang 属性を持つべき
SHOULD である。
<div xml:id="event_3"
begin="9663f" end="9682f"
ttm:agent="character_3">
<p xml:lang="pt-BR">Você vai ter.</p>
<p xml:lang="fr" daptm:langSrc="pt-BR">Bah, il arrive.</p>
</div>
場合によっては、未翻訳の対話の単一セクションに、複数の言語のテキストが含まれることがある。
これに対処するためにスクリプトイベントを複数のスクリプトイベントに分割するのではなく、
1 つの言語のテキストオブジェクトに、別の言語の語句を含めることもできる。
これはDAPT文書内で、
内側の <span> 要素上に xml:lang および
属性を設定することによって表現される。
daptm:langSrc
daptm:represents 属性は、
<p> 要素またはその任意の子孫 <span> 要素上に存在しても
MAY よく、
表す対象プロパティを表す。
<audio> 要素を
含んでもMAYよい。<animate>
要素を
含んでもMAYよい。テキスト 言語ソースプロパティは、該当する場合には テキストオブジェクトの ソース言語を示し、またはソースコンテンツが固有の言語を持たなかったことを示す注釈である。
und または zxx など、
言語を表さない値を持つ場合、
テキストは
原文である。
テキスト言語ソースは継承可能なプロパティである。
テキスト言語ソースプロパティは、DAPT文書内では、次の構文、
制約および意味論を持つ daptm:langSrc 属性によって表現される。
daptm:langSrc
: <empty-string> | <language-identifier>
<empty-string>
: "" # default
<language-identifier> # well-formed BCP-47 language tag
<p> および <span> 要素に適用される。<tt>,
<body>,
<div>,
<p> and
<span>.
daptm:langSrc 属性の継承モデルは
次のとおりである。
属性の継承モデルは、
daptm:langSrcxml:lang 属性 [XML] の継承モデルに
合わせることを意図している。
画面上 プロパティは、スクリプトイベントの対象に関連する シーン内の位置を示す注釈であり、 たとえば発話しているキャラクターの位置を示す:
省略された場合、既定値は「ON」である。
画面上
プロパティは、DAPT文書では、
次の制約を持つ、<div>要素上の
daptm:onScreen属性によって表される:
表すもの プロパティは、関連メディアオブジェクトのどの構成要素を、 スクリプトイベントまたはテキスト(またはその一部)が表すかを示す。
表すものプロパティは、DAPT文書では
daptm:represents属性によって表され、
その値は単一の
<
でなければならない。
content-descriptor>
属性は、
次のいずれの要素上にも存在してよい:
daptm:represents<tt>、
<body>、
<div>、
<p>および
<span>。
表すものプロパティは継承可能である。 それが要素に存在しない場合、その算出値は 親要素上の表すものプロパティの算出値であり、 親要素がない場合は空文字列である。 要素上に存在する場合、その算出値は指定された値である。
空の <content-descriptor> は存在しないため、
これは、空の算出表すもの
プロパティが決して有効になり得ないことを意味する。有効なDAPT文書を構築する1つの方法は、
DAPTスクリプト上に
表すもの
プロパティを指定し、表すもの
プロパティを持たないすべての子孫へ継承させることである。
表すものプロパティ値が、 スクリプトが表すものプロパティ内の値の少なくとも1つの コンテンツ 記述子サブタイプでないことはエラーである。
スクリプトイベント記述オブジェクトは、 スクリプトイベントの内容の何らかの側面について、人間可読な記述を 提供する注釈である。 スクリプトイベント記述は、それ自体を 記述種別で分類できる。
スクリプトイベント記述オブジェクトは、
DAPT文書では、
<div>要素レベルの<ttm:desc>要素によって表される。
0個以上の<ttm:desc>要素が存在してよい。
スクリプトイベント記述は空であるべきではない。
スクリプトイベント記述は一意である必要はない。 すなわち、各スクリプトイベントごとに 異なる値を持つ必要はない。 たとえば、特定の値を再利用して、 一緒に処理されることが意図された1つ以上のスクリプトイベントを人間可読な方法で識別できる。 たとえば一括録音の場合である。
<ttm:desc>要素は、
xml:lang属性を使用してその言語を指定してよい。
...
<body daptm:langSrc="zxx">
<div begin="10s" end="13s" xml:id="a1">
<ttm:desc>Scene 1</ttm:desc>
<p xml:lang="en">
<span>A woman climbs into a small sailing boat.</span>
</p>
<p xml:lang="fr" daptm:langSrc="en">
<span>Une femme monte à bord d'un petit bateau à voile.</span>
</p>
</div>
<div begin="18s" end="20s" xml:id="a2">
<ttm:desc>Scene 1</ttm:desc>
<p xml:lang="en">
<span>The woman pulls the tiller and the boat turns.</span>
</p>
<p xml:lang="fr" daptm:langSrc="en">
<span>La femme tire sur la barre et le bateau tourne.</span>
</p>
</div>
</body>
...
各スクリプトイベント記述には、 スクリプトイベント記述の目的をさらに分類するために、1つ以上の 記述 種別で注釈を付けることができる。
各記述種別は、DAPT文書では、
<ttm:desc>要素上のdaptm:descType属性によって表される。
<ttm:desc>要素は、0個または1個の
daptm:descType属性を持ってよい。
daptm:descType属性は以下で定義される。
daptm:descType : string
daptm:descTypeに許可される値は、
次のレジストリ表に列挙されたもの、または
ユーザー定義のもののいずれかである:
|
状態 | 説明 | 注記 |
|---|---|---|---|
pronunciationNote |
暫定 | コンテンツをどのように発音するかについての注記。 | |
scene |
暫定 | シーン識別子を含む。 | |
plotSignificance |
暫定 | コンテンツが筋書きに対してどれほど重要であるかの尺度を定義する。 | 内容は未定義であり、低・中・高、または数値スケールであってよい。 |
レジストリ項目は、
バージョン管理システム内の
/registries/descType.json に JSON 形式で提供されている。
有効なユーザー定義値は、x-で始まらなければならない。
...
<body>
<div begin="10s" end="13s" xml:id="a123">
<ttm:desc daptm:descType="pronunciationNote">[oːnʲ]</ttm:desc>
<p>Eóin looks around at the other assembly members.</p>
</div>
</body>
...
<ttm:desc>要素の兄弟グループ内では、
daptm:descType属性の一意性に関する制約はない。
ただし、次の例に示すように、区別子として有用な場合がある。
...
<body daptm:langSrc="zxx">
<div begin="10s" end="13s" xml:id="a1">
<ttm:desc daptm:descType="scene">Scene 1</ttm:desc>
<ttm:desc daptm:descType="plotSignificance">High</ttm:desc>
<p xml:lang="en">
<span>A woman climbs into a small sailing boat.</span>
</p>
<p xml:lang="fr" daptm:langSrc="en">
<span>Une femme monte à bord d'un petit bateau à voile.</span>
</p>
</div>
<div begin="18s" end="20s" xml:id="a2">
<ttm:desc daptm:descType="scene">Scene 1</ttm:desc>
<ttm:desc daptm:descType="plotSignificance">Low</ttm:desc>
<p xml:lang="en">
<span>The woman pulls the tiller and the boat turns.</span>
</p>
<p xml:lang="fr" daptm:langSrc="en">
<span>La femme tire sur la barre et le bateau tourne.</span>
</p>
</div>
</body>
...
音声オブジェクトは、 テキストの音声レンダリングを指定するために使用される。 音声レンダリングは、録音済み音声リソースである 音声録音オブジェクトである場合も、 テキスト読み上げエンジンを介してテキストのレンダリングを合成する指令である 合成音声オブジェクトである場合もある。 どちらも音声オブジェクトの種別である。
音声をサポートするプレゼンテーションプロセッサは、 音声を 関連メディアオブジェクトのタイムライン上の指定時刻で再生または挿入する。
音声録音とは、音声リソースを参照する音声オブジェクトである。 これは次のプロパティを持つ:
audio/basicを指定する、必須の型が1つ。既定のイン時刻は音声リソースの開始である。
既定のアウト時刻は音声リソースの終端である。
音声リソースの時間的な一部分が、 音声録音の時間間隔の継続時間より長い場合、 再生は、音声録音の時間間隔が終了した時点で終了するように 切り詰められなければならない。
音声リソースの時間的な一部分が、 音声録音の時間間隔の継続時間より短い場合、 音声リソースは1回再生される。
ソースのリストが提供される場合、 プレゼンテーションプロセッサは、 各音声録音について、ソースの 1つ以下を再生しなければならない。
実装は、型、および存在する場合は関連する追加の形式情報を使用して、
どのソースを再生するかを決定できる。
たとえば、2つのソースが与えられ、一方がWAVファイルで、もう一方がMP3である場合、
それらの形式のうち1つしか再生できない実装、またはいずれか一方への選好を持つように
構成された実装は、再生可能または選好されたバージョンを選択することになる。
音声録音は、DAPT文書において、
それが適用されるテキストに対応する<p>要素または
<span>要素の子である
<audio>
要素によって表される。
<audio>要素には次の制約が適用される:
begin、endおよびdur属性は、
それぞれ開始、終了および継続時間
プロパティを表す。clipBeginおよびclipEnd属性は、
例 5で示されるように、それぞれ
イン時刻およびアウト時刻プロパティを表す。
src属性、およびそれぞれtype属性。
この仕組みは、複数のソースが 存在する場合には使用できない。
<audio src="https://example.com/audio.wav" type="audio/wave"/>
src属性、およびそれぞれtype属性を持つ、
<source>子要素。
<audio>
<source src="https://example.com/audio.wav" type="audio/wave"/>
<source src="https://example.com/audio.aac" type="audio/aac"/>
</audio>
フラグメント識別子ではないsrc属性は、外部音声リソース、すなわち
DAPTスクリプト内に埋め込まれていない
音声リソースを参照するURLである。
そのリソースを所在確認できることの検証は、DAPTでは指定されない。
ここで両方の仕組みが必要か?
この場合、子<source>要素がどのような意味上の利点を持つのかは明確でない。
その子<source>要素の使用を「at risk」としてマークすることを検討するか?
While working on the specification for adding audio recordings I reminded myself of the various ways in which an audio recording can be embedded and referenced, of which there are at least 5 in total. Requirement R15 of [DAPT](https://www.w3.org/TR/dapt-reqs/#requirements) is clear that both referenced and embedded options need to be available, but should we be syntactically restricting the options for each? Will raise as separate issues.
もともと@nigelmegittにより#105 (コメント)に投稿されたもの
TTML2では、外部音声リソースを参照するための次の2つの選択肢が存在する:
<audio>要素内のsrc属性。<audio src="https://example.com/audio_recording.wav" type="audio/wave"/>
<audio>要素の子である<source>要素。<audio>
<source src="https://example.com/audio_recording.wav" type="audio/wave"/>
</audio>
この2番目の選択肢には、typeが不十分な場合にformat属性を指定する追加の可能性がある。また、複数の
<source>子要素を許可し、この場合、実装は1つ以下を
選択しなければならないと指定している。
[Issueが開かれた後に追加された「1つ以下を再生する」という制約を反映するため、 2023-03-29に編集]
#113に対する可能な解決。
#113に対する可能な解決。
<audio>要素を参照する
フラグメント識別子であるsrc属性。
ここで、参照される要素は/tt/head/resourcesの子であり、
type属性およびそれを参照するために使用される
xml:id属性を指定する。
この仕組みは、複数のソースが 存在する場合には使用できない。
<tt>
<head>
<resources>
<audio type="audio/wave" xml:id="audio1">
<source><data>[base64-encoded WAV audio resource]</data></source>
</audio>
</resources>
</head>
<body>
..
<audio src="#audio1"/>
..
</body>
</tt>
<source>子要素。
これは、<data>要素を参照する
フラグメント識別子であるsrc属性を持つ。
ここで、参照される要素は/tt/head/resourcesの子であり、
type属性およびそれを参照するために使用される
xml:id属性を指定する。
<tt>
<head>
<resources>
<data type="audio/wave" xml:id="audio1wav">
[base64-encoded WAV audio resource]
</data>
<data type="audio/mpeg" xml:id="audio1mp3">
[base64-encoded MP3 audio resource]
</data>
</resources>
</head>
<body>
..
<audio>
<source src="#audio1wav"/>
<source src="#audio1mp3"/>
</audio>
..
</body>
</tt>
type属性を指定し、音声録音データを含む
<data>要素の子を持つ
<source>子要素。
<audio>
<source>
<data type="audio/wave">
[base64-encoded WAV audio resource]
</data>
</source>
</audio>
上記の各場合において、type属性は型プロパティを表す。
フラグメント識別子であるsrc属性は、DAPTスクリプト内に埋め込まれた
音声リソースへのポインタである。
<data>要素が定義される場合、それぞれは
#PCDATAまたは
<chunk>子要素のいずれかを
含まなければならず、
いかなる<source>子要素も含んではならない。
<data>要素および<source>要素は、
format属性を含んでよい。
その値は、適切な音声リソースを選択する際に、実装がtype属性値に加えて
使用してよい。
ここで3つの仕組みすべてが必要か?
いずれかが必要か?
埋め込み音声データにはユースケースがあるかもしれない。
それにより、単一の文書が、リソース欠落を心配することなく交換および転送できる、
可搬な(ただし大きな)エンティティとなり、たとえばマニフェストファイルも不要になるためである。
参照される埋め込み音声をサポートする必要がない場合、最後の選択肢だけが必要であり、
おそらく実装するのが最も単純である。
参照される埋め込み音声を支持する1つの理由は、同じ音声を文書内の異なる場所で
より容易に再利用できることである。ただし、このユースケースではそのような要件はありそうにない。
もう1つは、すべての埋め込み音声が文書内のtt/head/resourcesという
見つけやすい部分にあることを意味し、実装上の利点をもたらす可能性があることか?
埋め込みデータ機能を「at risk」としてマークすることを検討するか?
While working on the specification for adding audio recordings I reminded myself of the various ways in which an audio recording can be embedded and referenced, of which there are at least 5 in total. Requirement R15 of [DAPT](https://www.w3.org/TR/dapt-reqs/#requirements) is clear that both referenced and embedded options need to be available, but should we be syntactically restricting the options for each? Will raise as separate issues.
もともと@nigelmegittにより#105 (コメント)に投稿されたもの
いくつかの埋め込み音声リソースが与えられる場合:
<head>
<resources>
<audio xml:id="audioRecording1" type="audio/wave">
<source>
<data>[base64 encoded audio data]</data>
</source>
</audio>
<data xml:id="audioRecording2" type="audio/wave">
[base64 encoded audio data]
</data>
</resources>
</head>
TTML2では、埋め込み音声リソースを参照するための次の2つの選択肢が存在する:
<audio>または<data>を参照する、<audio>要素内のsrc属性:<audio src="#audioRecording1"/>
...
<audio src="#audioRecording2"/>
<audio>要素の子である<source>要素。<audio>
<source src="#audioRecording1"/>
</audio>
この2番目の選択肢には、typeが不十分な場合にformat属性を指定する追加の可能性がある。また、複数の
<source>子要素を許可する。ただし、複数のリソースが
指定された場合に意図される意味が何であるかは不明である――おそらく実装が何らかの方法で1つを選ぶ。
While working on the specification for adding audio recordings I reminded myself of the various ways in which an audio recording can be embedded and referenced, of which there are at least 5 in total. Requirement R15 of [DAPT](https://www.w3.org/TR/dapt-reqs/#requirements) is clear that both referenced and embedded options need to be available, but should we be syntactically restricting the options for each? Will raise as separate issues.
もともと@nigelmegittにより#105 (コメント)に投稿されたもの
埋め込み音声リソースをサポートするなら、それらは
/tt/head/resources内で定義してから参照することも、
データをインラインで含めることもできる。
両方の選択肢が必要か?
埋め込みの例:
<head>
<resources>
<audio xml:id="audioRecording1" type="audio/wave">
<source>
<data>[base64 encoded audio data]</data>
</source>
</audio>
<data xml:id="audioRecording2" type="audio/wave">
[base64 encoded audio data]
</data>
</resources>
</head>
これは、bodyコンテンツ内で次のようなものを使用して参照されることになる(#114も参照):
<audio src="#audioRecording2"/>
インラインの例:
<audio type="audio/wave">
<source type="audio/wave">
<data>[base64 encoded audio data]</data>
</source>
</audio>
#115 への関連は、これが参照可能な 埋め込み音声リソースの存在も意味することであり、それは #115 で説明されている選択肢の 1 つである。
#115 への関連は、これが参照可能な 埋め込み音声リソースの存在も意味することであり、それは #115 で説明されている選択肢の 1 つである。
#115 に対する可能な解決策。
#115 も参照。インラインではない 埋め込み音声リソースをサポートするのであれば、それらのためのオブジェクトを作成し、 データモデルに追加すべきか?
TTML2 の <data> 要素では、encoding を指定でき、
それは以下のいずれかである。
それらすべてについてプロセッサのサポートを要求する必要があるか、それとも既定の
base64 で十分か?
また、デコードされたデータは指定されたバイト長でなければならないため、
エラーチェックの一定の実現可能性を提供する length
属性を指定できる。このサポートを要求することは正味の利点になるか? 使用されるか?
#117 に対する可能な解決策。
#117 に対する可能な解決策。
xml:lang属性の算出値は、親要素、および任意の子<source>要素、
ならびに参照される任意の埋め込み<data>要素のxml:lang属性の
算出値と同一でなければならない。合成 音声とは、親テキスト内容の機械生成された音声レンダリングを 表す音声オブジェクトである。 これは次のプロパティを持つ:
normal、
fastまたは
slowである。
合成音声は、DAPT文書において、
発話されるテキストオブジェクトを表す要素上に
tta:speak
スタイル属性を適用することによって表され、
その属性の算出値は
normal、fastまたはslowである。
この属性は速度プロパティも表す。
tta:rate属性の算出値がnoneである要素上の
tta:pitch属性は効果を持たない。
そのような要素は、関連付けられた合成
音声を持つとは見なされない。
ミキシング指示オブジェクトは、包含するオブジェクトに関連する音声の、 静的またはアニメーション化された調整である。 これは次のプロパティを持つ:
freeze)か、元に戻す(remove)かを指定する。ミキシング指示は、関連するオブジェクトに対応する要素に、
インラインで、<style>要素への参照によって、または子(インライン)の
<animate>要素内で、音声スタイル属性を適用することによって表される:
ミキシング指示がアニメーション化されている場合、すなわち、
調整プロパティが包含するオブジェクトのアクティブ時間間隔中に変化する場合、
それは1つ以上の子<animate>要素によって表される。
この表現は、複数のゲインまたはパンプロパティが必要な場合、
またはいずれかのタイミングプロパティが必要な場合に必須である。
<animate>
要素は、包含するオブジェクトに対応する要素の子でなければならず、
次の制約を持つ:
begin、endおよびdur属性は、
それぞれ開始、終了および継続時間プロパティを表す。fill属性はフィルプロパティを表す。tta:gain
属性はゲインプロパティを表し、
アニメーション期間中に適用される値のリストを表現するために
animation-value-list
構文を使用する。
tta:pan
属性はパンプロパティを表し、
アニメーション期間中に適用される値のリストを表現するために
animation-value-list
構文を使用する。
アニメーション化されたミキシング指示のTTML表現は、 例 4で示される。
E. 音声ミキシングも参照。
DAPT文書は、[xml] の整形式XML 1.0文書として 直列化されなければならず、 [UNICODE] で指定される UTF-8文字エンコーディングを使用して符号化される。
結果として得られる [xml] 文書は、 次の物理構造のいずれも含んではならない:
結果として得られる [xml] 文書は、 文字参照、 および 実体参照を 事前定義済み実体に対して含むことができる。
事前定義済み実体は次のとおりである(先頭のアンパサンドと末尾のセミコロンを含む):
& はアンパサンド &(Unicodeコードポイント U+0026)を表す' はアポストロフィ '(Unicodeコードポイント U+0027)を表す> は大なり記号 >(Unicodeコードポイント U+003E)を表す< は小なり記号 <(Unicodeコードポイント U+003C)を表す" は引用符 "(Unicodeコードポイント U+0022)を表すDAPT文書は、処理用のインメモリモデルとしても 使用できる。この場合、直列化要件は適用されない。
この節の要件は、前方互換性および後方互換性を容易にすることを意図しており、 具体的には次を許可する:
仕様の複数のバージョンに適合するDAPT文書は、 複数のDAPTコンテンツプロファイルへの適合を指定できる。
認識されない語彙とは、 プロセッサがサポートする機能に関連付けられていない 要素および属性の集合である。
変換プロセッサは、
属性でも<metadata>要素の子孫でもない
認識されない語彙を
刈り込まなければならない。
変換プロセッサは、
属性または<metadata>要素の子孫のいずれかである
認識されない語彙を
保持すべきである。
5.6.2
ttp:contentProfilesも参照。これは、
変換プロセッサがサポートしないプロファイルへの
プロファイル適合のシグナルを禁止している。
属性値の算出の後、 プレゼンテーションプロセッサは、 認識されない語彙を 無視すべきである。
上記の制約が属性値の算出後として指定されているのは、 実装が、たとえばDAPTデータモデルに対応するものなど、 特定の要素上にのみ存在する属性を認識しサポートする可能性があるためである。 6.4 算出属性値の使用で説明されるように、 プロセッサ実装が、そのような属性が他の要素上に存在する場合に無視しないことが重要である。
外来 語彙とは、認識されない語彙の部分集合であり、 その名前空間が5.3 名前空間に列挙されている名前空間のいずれでもない要素および属性、 ならびに名前空間に値を持たず、DAPTまたは [TTML2] で別途定義されていない属性から 成る。
DAPT文書は、
ttp:contentProfilesでシグナルされる
プロファイルによって特に許可も禁止もされていない
外来語彙を
含んでよい。
検証目的では、DAPT文書内で使用されるすべての 外来語彙について、 たとえばコンテンツプロファイルなどの仕様を定義し使用することが 良い実践である。
多くの吹替および音声解説ワークフローでは、
スクリプトイベントまたは文書に独自メタデータで注釈を付けることを許可している。
この仕様または [TTML2] で定義されるメタデータ語彙を
含んでよい。
外来語彙も、
<metadata>要素の属性として、または
<metadata>要素の子孫要素として
含んでよい。
外来名前空間を使用して、ワークフロー固有の情報を追加することが可能である。
次の例では、「example
vendor」からの架空の名前空間vendormを使用して、
DAPTで定義されていない文書レベルの情報を提供している。
...
<metadata xmlns:vendorm="http://www.example-vendor.com/ns/ttml#metadata">
<vendorm:programType>Episode</vendorm:programType>
<vendorm:episodeSeason>5</vendorm:episodeSeason>
<vendorm:episodeNumber>8</vendorm:episodeNumber>
<vendorm:internalId>15734</vendorm:internalId>
<vendorm:information>Some proprietary information</vendorm:information>
</metadata>
...
<metadata>要素内に配置しないことが強く推奨される。
そのようなデータは、文書の内容を変更する一方でメタデータを保持し、 その意味論を認識していない変換プロセッサによって 無効化される可能性がある。
この節は非規範的である。
外来語彙が<metadata>要素以外の場所に
含まれている場合、
5.2.1
認識されない語彙で要求されるように、
その語彙に関連付けられた機能をサポートしない
変換プロセッサによって刈り込まれる。
そのような刈り込みを防ぎ、そのような外来語彙の意味論を定義する仕組みが提供される。
これにより、それを<metadata>要素の外側に配置しても刈り込まれないようにし、
コンテンツおよびプロセッサの適合を示すことができる:
ttp:contentProfilesを使用して、
そのプロファイルへの文書適合をシグナルする。これにより、その機能をサポートするプロセッサは、その語彙を適切な任意の方法で処理し、 刈り込みを避けることができる。また、その機能をサポートしないプロセッサは、 たとえば一部の機能が失われる可能性があることをユーザーに警告するなど、 適切な措置を講じることができる。
この仕様では、次の名前空間([xml-names] を参照)が使用される:
| 名前 | 接頭辞 | 値 | 定義仕様 |
|---|---|---|---|
| XML | xml |
http://www.w3.org/XML/1998/namespace |
[xml-names] |
| TT | tt |
http://www.w3.org/ns/ttml |
[TTML2] |
| TTパラメータ | ttp |
http://www.w3.org/ns/ttml#parameter |
[TTML2] |
| TT音声スタイル | tta |
http://www.w3.org/ns/ttml#audio |
[TTML2] |
| TTメタデータ | ttm |
http://www.w3.org/ns/ttml#metadata |
[TTML2] |
| TT機能 | なし | http://www.w3.org/ns/ttml/feature/ |
[TTML2] |
| DAPTメタデータ | daptm |
http://www.w3.org/ns/ttml/profile/dapt#metadata |
この仕様 |
| DAPT拡張 | なし | http://www.w3.org/ns/ttml/profile/dapt/extension/ |
この仕様 |
| EBU-TTメタデータ | ebuttm |
urn:ebu:tt:metadata |
[EBU-TT-3390] |
上で定義された名前空間接頭辞値は便宜上のものであり、DAPT文書は、[xml-names] に適合する任意の接頭辞値を 使用してよい。
この仕様で定義される名前空間は、[namespaceState] で説明されるように可変であり、 これらの名前空間内の未定義のすべての名前は、W3Cによる将来の標準化のために予約される。
DAPT 文書が [ttml-imsc1.3] 文書を生成するための 基礎として使用されることを意図している場合、 [ttml-imsc1.3] の同期規定が 映像との関係で適用される。
DAPT 文書内の時間指定コンテンツは、 特定の音声サンプル上で開始および終了するようにレンダリングされることを意図している。
この仕様の文脈では、レンダリングとは、たとえば俳優に話すべき言葉を示すための テキストの視覚的提示である場合もあれば、音声リソースの可聴再生である場合もあり、 また点字ディスプレイのような物理的または触覚的なものである場合もある。
リアルタイム音声ミックスおよび再生などの制約のあるアプリケーションでは、 レンダリングされた出力において音声サンプルへの正確な同期を達成できない場合、 提示における時間指定された変更について、作成時および再生時の不正確さを合わせた影響は [EBU-R37] の同期要件を 満たすべきである SHOULD。 すなわち、音声の変更は画像の変更より 40ms を超えて先行してはならず、また 60ms を超えて遅れてはならない。
同様に、作成アプリケーションは、映像画像に関連付けられた任意の変更の後 15ms 未満、 および映像画像に関連付けられた任意の変更の前 5ms 未満となる精度で 時刻を定義することにより、 作成者が [EBU-R37] の 要件を満たせるようにすべきである SHOULD。
上記の 2 つの制約、すなわち全体的な提示に関する制約と、 リアルタイム再生を意図したDAPT 文書に関する制約を あわせて考えると、 コンテンツプロセッサは、 DAPT 文書で指定された時刻より 35ms を超えて前に音声提示の変更を完了せず、 かつ指定された時刻より 45ms を超えて後に完了しないようにすべきである SHOULD。
このプロファイルは、次のプロファイル指定子に関連付けられる:
| プロファイル名 | プロファイル種別 | プロファイル指定子 |
|---|---|---|
| DAPT 1.0コンテンツ プロファイル | コンテンツプロファイル | http://www.w3.org/ns/ttml/profile/dapt1.0/content |
| DAPT 1.0 プロセッサプロファイル | プロセッサプロファイル | http://www.w3.org/ns/ttml/profile/dapt1.0/processor |
ttp:contentProfiles
属性は、
文書が適合する [TTML2] プロファイルを宣言するために
使用される。
DAPT文書は、
<tt>要素上に
属性を指定しなければならず、
5.6.1 プロファイル
指定子で指定されたコンテンツプロファイル指定子と等しい値を少なくとも1つ含める。
他の値は、[TTML2] の他のプロファイルへの適合を宣言するために
存在してよく、
独自名前空間内のプロファイル指定子を含んでよい。
ttp:contentProfiles
DAPT文書が、 適合していないコンテンツプロファイルへの適合を シグナルすることはエラーである。
変換プロセッサは、
それら(プロセッサ)がサポートしないプロファイルに関連付けられた値を、
属性内に含めてはならない。
定義上、それらはコンテンツがそれらのプロファイルに適合することを検証できないためである。
ttp:contentProfiles
ttp:profile属性は、
[TTML1] 内の、
文書インスタンスに対する処理要件を宣言するための仕組みである。
これは [TTML2] において、
実質的にに
置き換えられている。
ttp:processorProfiles
DAPT文書は、
<tt>要素上にttp:profile属性を指定してはならない。
ttp:processorProfiles
属性は、
文書インスタンスに対する処理要件を宣言するために
使用される。
DAPT文書は、
<tt>要素上に
属性を指定してよい。
存在する場合、
ttp:processorProfiles
属性は、5.6.1 プロファイル
指定子で指定されたプロセッサプロファイル指定子と等しい値を少なくとも1つ
含まなければならない。
他の値は追加の処理制約を宣言するために存在してよく、
独自名前空間内のプロファイル指定子を含んでよい。
ttp:processorProfiles
属性は、
文書インスタンスを正常に処理するために、
追加プロファイル内の機能および拡張をサポートする必要があることをシグナルするために
使用できる。
たとえば、ローカルワークフローが特定のメタデータ要件を導入し、
追加のプロセッサプロファイル指定子を使用して、それらをサポートする必要があることを
プロセッサにシグナルする場合がある。
ttp:processorProfiles
コンテンツ作者が、DAPTで定義されたものより追加のプロセッサ要件が
DAPT文書を処理するために
必要であることをシグナルする必要がない場合、
属性は存在しないことが期待される。
ttp:processorProfiles
[TTML2] は、 文書インスタンスが使用できる、または プロセッサがサポートする必要がある 機能の集合を定義するために使用できる語彙および意味論を指定しており、 これはプロファイルとして知られる。
指定されている場合を除き、このプロファイル語彙をプロセッサがサポートすることは DAPTの要件ではない。 ただし、そのようなサポートは許可される。
このプロファイル語彙の大部分は、 文書インスタンスを正常に処理するために プロセッサがサポートする必要のある機能集合をどのように計算できるかを示すために使用される。 この語彙自体はTTML2機能の観点から定義される。 それらのプロファイル関連機能は、F. プロファイル内で任意として列挙されている。 これらはプロセッサに実装してよく、 関連する語彙はDAPT文書内に存在してよい。
これらの機能および語彙に対するプロセッササポートが(帯域外プロトコルを使用して) 手配されていない限り、この語彙は存在しないことが期待される。
DAPTにおいてプロセッササポートが 要求されない(ただし許可される)追加のプロファイル関連語彙は次のとおりである:
DAPTスクリプト内では、時間属性および時間式に関して 次の制約が適用される:
許可される唯一のttp:timeBase属性値はmediaである。
なぜなら、F. プロファイルが、
#timeBase-media以外のすべての
timeBase機能を禁止しているためである。
これは、文書タイムラインの始点、 すなわち時刻「ゼロ」が、関連メディアオブジェクトの開始であることを意味する。
timeContainer属性の唯一許可される値は既定値、
parである。
文書は、すべての要素上でtimeContainer属性を省略すべきである。
文書は、いかなる要素上でもtimeContainer属性をpar以外の値に設定しては
ならない。
これは、すべての時間付き要素のbegin属性値が、
その親要素の算出開始時刻を基準とし、
<body>要素については時刻ゼロを基準とすることを意味する。
文書がfメトリックを使用する時間式、またはフレーム構成要素を含む時間式を
いずれか含む場合、
ttp:frameRate属性は<tt>要素上に存在しなければならない。
文書がtメトリックを使用する時間式をいずれか含む場合、
ttp:tickRate属性は<tt>要素上に存在しなければならない。
文書内のすべての時間式は、[TTML2] で定義され、
DAPT制約が適用された
clock-timeまたはoffset-timeのいずれかの同じ構文を
使用すべきである。
DAPT
clock-timeは次の形式のいずれかを持つ:
hh:mm:ss.ssshh:mm:ss
ここで、
hhは時、
mmは分、
ssは秒、そして
ss.sssは秒の小数部を伴う秒(任意の精度)である。
フレーム構成要素を使用するclock time式は、 「タイムコード」に似て見えるが、 特に非整数フレームレート、「ドロップモード」およびサブフレームレートとともに使用された場合に 他所で観察されている意味上の混乱のため、禁止される。
offset-timeは次の形式のいずれかを持つ:
nn metricnn.nn metric
ここで、
nnは整数、
nn.nnは小数部を伴う数(任意の精度)、そして
metricは次のいずれかである:
h は時。m は分。s は秒。ms はミリ秒。f はフレーム。t はティック。メディア時間式Mを映像のフレームFへ対応付ける場合、 たとえばリップシンクのタイミングを正確に行う目的では、 コンテンツプロセッサは、 M未満ではない最も近い提示時刻を持つフレームFへMを対応付けすべきである。
メディア時間式00:00:05.1は、
フレームレートが1000 / 1001 × 30 ≈ 29.97である映像の
ceiling( 5.1 × ( 1000 / 1001 × 30) ) = 153番目のフレームに対応する。
この仕様は、[ttml-imsc1.3] で定義されるレイアウトおよびレンダリングの機能に追加の制約を課さない。
<head> 要素内で
<layout> 要素が使用されていない場合)に依存してもよく、または
region 属性を使用して、
/tt/head/layout/region に存在する <region> 要素を参照することにより、
明示的であってもよい。
スタイル参照またはインラインスタイルは、[TTML2] または [ttml-imsc1.3] で定義される、
style 属性、
<style> 要素、および
インラインスタイル属性の任意の組み合わせを使用して、
使用して MAY である。
次のメタデータ要素は、DAPTで許可され、
[TTML2] で
#PCDATA、
すなわち要素内容を持たないテキストデータのみを含むものとして指定されている。
そのような要素内の文字内容で双方向テキストが必要な場合、
Unicode制御文字を使用して、任意のテキスト範囲内の基底方向を定義できる。
<ttm:copyright><ttm:desc><ttm:item><ttm:name><ttm:title>この仕組みの使用に関する詳しいガイダンスは、HTMLにおけるインラインマークアップと 双方向テキストで利用できる。
<p>および<span>内容要素は、
tts:directionおよびtts:unicodeBidi属性を使用してテキストの方向を
指定することを許可する。
文書作者は、Unicode制御文字を使用するのではなく、このより堅牢な仕組みを使用すべきである。
4. DAPTデータモデルおよび対応する TTML構文は、 DAPTデータモデルのオブジェクトおよびプロパティが、 [TTML2]、すなわちDAPT文書でどのように表されるかを定義する。 しかし、DAPTデータモデルインスタンスは、 複数の [TTML2] 文書インスタンスによって表すことができる。
たとえば、4. DAPTデータモデルおよび対応する
TTML構文は、
スクリプトイベントを表す
<div>要素が
<body>要素の直接の子であることを要求しない。
その<div>要素は別の<div>要素内に入れ子にされてもよい。
したがって、DAPTスクリプトのオブジェクトおよびプロパティを、さまざまなDAPT文書へ直列化することが可能である。
この節は、DAPT文書から、相互運用可能かつ曖昧でない方法で
DAPTモデルインスタンスを再構築する方法を定義する。
DAPTは、拡張性の理由により、 DAPTデータモデルの完全な直列化を定義しない。 必要であれば将来のバージョンでそうできるようにするためである。 さらに、DAPT文書は、 DAPTオブジェクトまたはプロパティの表現において 言及されていない要素または属性を含むことができる。 これは、DAPTの将来バージョンに適合する プロセッサによって生成されたためである場合も、 汎用的な [TTML2] 処理を通じたためである場合も、 スタイリングまたはレイアウトを追加するなどの任意機能を使用しているためである場合もある。 この節は、それらの要素または属性を処理する方法を定義する。
汎用的な [TTML2] プロセッサを使用して DAPT文書を処理することも可能である。 そのようなプロセッサは、必ずしも文書をDAPTデータモデルへ対応付けるとは限らない。 たとえば、汎用的なTTML2プレゼンテーションプロセッサは、 スクリプトイベントをそれ自体としてモデル化する必要なく、 DAPT文書に基づいて音声ミックスをレンダリングできる。 その場合、この節は無視できる。
この節は非規範的である。
この節に関する規範的規定は、[TTML2] で定義される。
DAPTでは、
DAPT文書がルート要素上に
ttp:contentProfiles属性を含み、
かつその属性が、5.6.2
ttp:contentProfilesで指定されるように、
DAPTコンテンツプロファイル指定子を含むことが要件であるため、
そのような属性を含まない、またはそのようなプロファイル指定子を含まない
任意のTTML文書は、
DAPT文書ではないと見なすことができる。
したがって、DAPTへの厳密な準拠を要求するプロセッサは、
そのような文書の処理を停止できる。
入力として、サポートしている機能に関連する語彙を含むDAPT文書を受け取るプロセッサは、 その文書が適合を主張するコンテンツプロファイルからそれらの機能のサポートが除外されている場合、 その文書の文脈ではそれらの機能を実装すべきではない。
[TTML2] は、
<div>要素が
<div>要素および<p>要素の任意の組み合わせを含むことを許可する。
DAPTデータモデルは、
各スクリプトイベントが、
0個以上の<p>要素を含む<div>要素によってどのように
表されるかを記述している。
また、<body>要素とそれらのスクリプトイベント<div>
要素との間のパスに、他の中間<div>要素を置くことも許可している。
さらに、DAPTデータモデル内のプロパティに対応しない属性も許可される。
これにより、次のような可能性が生じる:
<div>要素や<metadata>要素を含む
<div>要素。
xml:idを持たない
<div>要素。
xml:spaceを持つ<div>要素。<div>要素がスクリプトイベントであるように見えない
<p>要素。
次の処理規則により、これらの場合が解決される。
スクリプトイベントを識別するための規則:
<div>要素の子に<div>要素がなく、
かつスクリプトイベントの
非メタデータの必須プロパティすべてのTTML表現を含む場合、
その<div>要素はスクリプトイベントへ対応付けなければならない。
たとえば、スクリプトイベント識別子を表す有効な
xml:idを持つ場合であり、
たとえ追加の認識されない語彙を
含んでいても同様である。
<div>要素の子に<div>要素が含まれる場合、
その<div>要素はスクリプトイベントへ対応付けてはならない。
代わりにプロセッサは、それらの<div>要素の子を
(深さ優先走査で再帰的に)反復処理し、
それぞれがスクリプトイベントの要件を満たすかどうかを
考慮しなければならない。
<div>要素は、スクリプトイベントへ対応付けてはならない。テキストオブジェクトを識別するための規則:
<div>要素の子である
<p>要素は、
テキスト
オブジェクトへ対応付けなければならない。
<div>要素の子ではない
<p>要素は、
テキスト
オブジェクトへ対応付けてはならない。
DAPTの将来バージョンは、 これらの構造的可能性を異なる方法で使用する機能を含むことがあり、 したがって、ここで定義された規則と相互排他的な他の処理規則を定義する可能性がある。
一部の属性には、その値を算出する意味論があり、
その算出は他のある要素上の属性の算出値に依存する。
たとえば、xml:lang属性が要素上に指定されていない場合、その算出値は
その要素の親上の同じ属性の算出値である。
| 属性 | DAPTデータモデル実体 | 指定可能な要素 | 子または子孫要素への効果 |
|---|---|---|---|
xml:lang |
既定の言語、言語 | 任意の要素 | [XML] で定義されるように継承される |
xml:id |
一意識別子 | 任意の要素 | なし |
begin |
開始 | <body>、
<div>、
<p>、
<span>、
<audio>、
<animate>
|
[TTML2] で定義されるように、 その子上のタイミングプロパティのエポックを設定する |
end |
終了 | <body>、
<div>、
<p>、
<span>、
<audio>、
<animate>
|
[TTML2] で定義されるように、 その子孫の算出終了時刻を制約する |
dur |
継続時間 | <body>、
<div>、
<p>、
<span>、
<audio>、
<animate>
|
[TTML2] で定義されるように、 その子孫の算出終了時刻を制約する |
daptm:langSrc |
テキスト言語ソース | <tt>、
<body>、
<div>、
<p>、
<span>
|
この節で定義されるように継承される |
daptm:represents |
表すもの | <tt>、
<body>、
<div>、
<p>、
<span>
|
この節で定義されるように継承される |
、
daptm:scriptRepresentsおよび
daptm:onScreen属性は、
特定の要素上に指定された場合にのみ定義される。
daptm:descType
また、別の例として、DAPT文書内の要素の算出時刻は、
その要素の親の開始時刻に相対的である。
<div>要素がbegin属性を指定する場合、
その子<div>要素の算出時刻は、
その親<div>要素の開始時刻に相対的であり、
階層を下るにつれて同様である。
処理対象が、それらに直接対応するものを持たないDAPT
データモデルのインスタンスである場合でも、
それらの「中間」<div>要素の時刻を計算に含めることが重要である。
そうしなければ、スクリプトイベントの開始および終了時刻が誤ったものになる。
この状況をより一般的に考えると、 DAPT文書内には、 DAPTデータモデル内のオブジェクトに 直接対応しないTTML要素が存在する可能性があり、 それらの要素は、DAPTデータモデル内のオブジェクトに対応する要素に 適用される属性値の算出に影響する属性を指定できる。
[TTML2] によって定義される意味論、
またはここで定義される語彙についてはこの仕様によって定義される意味論が、このシナリオでは優先される。
実装は、算出された値をDAPTデータモデルオブジェクトに適用する前に、
文書インスタンスの内容に基づいて属性値を
算出しなければならない。
たとえば、TTML2スタイリング機能をサポートするプロセッサは、
tts:fontSizeなどの属性の継承および相対値の算出に関するTTML2意味論を
実装する必要がある。
実装が内部的に、上の例に示されたスクリプトイベントなどの DAPTデータモデルオブジェクトを作成する場合、 相互運用性のためには、それらが算出値を使用することが重要である。
この節は非規範的である。
5.2.1
認識されない語彙に従い、
DAPTプロセッサの実装者は、
DAPT文書内の<metadata>要素における
認識されない語彙を維持することが推奨される。
実際には、DAPT文書を入力し、
DAPT文書を出力する実装が、
入力文書の構造および内容を変更し、
その際に、認識されない語彙を持つそれらの実体を
出力文書から実質的に刈り込むことがあり得る。
この節に関する規範的規定は、[TTML2] で定義される。
[TTML2] は 検証プロセッサを定義する。 これは、文書インスタンスを評価し、 それが有効かどうかを判断することを目的とする実装のクラスである。 通常これは、文書が後続の使用に受け入れ可能であることを確認するために、 処理ワークフロー内で使用される。 現実世界の例では、単に「良い」または「悪い」を返すのではなく、 入力文書内の通常でない、予期しない、または問題のある内容を記述する 情報、警告およびエラーメッセージも出力する可能性が高い。
DAPT文書向けに 検証プロセッサを実装する場合、 厳密な [TTML2] 検証処理規則を 適用できる。 これを行うには、プロファイル内で定義された必須または任意の機能に関連する 構文および内容の存在と意味的妥当性を確認し、 禁止された機能に関連する構文が存在しないことを確認する。
[TTML2] における、 認識されない名前空間の語彙を扱う仕組みは、 検証の前にそれを刈り込むことである。 このアプローチは使用できる。さらに、実装が刈り込まれた属性および要素を 情報として報告することも合理的であり得る。
ここでいう「語彙」という用語は、XML要素および属性を指す。
認識済み名前空間内のサポートされていない、または非推奨の語彙が刈り込み後に遭遇された場合、 あるいはサポートされる語彙が予期しないが無効ではない内容を含む場合には、 検証警告が発行される可能性があるが、 これらのシナリオではエラーは期待されない。
禁止された語彙が存在する場合、 または許可された語彙内で意味的に無効な内容に遭遇した場合には、 検証エラーが期待される。
非規範的と記された節に加えて、この仕様内のすべてのオーサリングガイドライン、図、例、および注記は非規範的である。 この仕様内のその他すべては規範的である。
この文書におけるキーワード MAY、MUST、MUST NOT、SHOULD、および SHOULD NOT は、 ここに示すようにすべて大文字で出現する場合に、かつその場合に限り、 BCP 14 [RFC2119] [RFC8174] で記述されるとおりに解釈される。
[TTML2] は、 プロファイリングサブシステム内で、 文書およびプロセッサの要件を表現するための形式言語を指定している。 この仕様の規範的要件は、上で述べた適合性用語を使用して定義され、 また、このTTML2プロファイル機構を使用しても定義される。 TTML2語彙が参照される場合、その語彙に関する構文上および意味上の要件は、 [TTML2] で定義されるものが適用される。
DAPTプロセッサが TTML2プロファイル処理意味論を一般に実装する要件はないが、 実装者は、F. プロファイルで定義されるTTML2プロファイルを、 たとえばチェックリストとして、実装がDAPTの 規範的要件を満たしていることを検証する手段として使用できる。
逆に、TTML2プロファイル処理意味論をサポートする汎用 [TTML2] プロセッサは、 F. プロファイルで定義されるTTML2プロファイルを直接使用して、 DAPT文書を処理できるかどうかを判断できる。
適合するDAPT文書は、 この仕様の規範的規定に適合する [TTML2] 時限テキストコンテンツ文書 インスタンスである。 それらの規定は、F. プロファイルで 定義される コンテンツプロファイル内で、 [TTML2] の プロファイル語彙を使用して表現される。
適合するDAPTプロセッサは、 この仕様の規範的規定に適合する [TTML2] コンテンツプロセッサである。 それらの規定は、F. プロファイルで 定義される プロセッサプロファイル内で、 [TTML2] の プロファイル語彙を使用して表現される。
content-descriptor
§4.1.6.2
この節は非規範的である。
次の場合を除き、[ttml2] のプライバシーに関する考慮事項が適用される:
<audio>要素に関する考慮事項のみが適用される。
condition属性のサポートが要求されないためである。
DAPT文書は通常、 関連メディア内に登場するキャラクターまたは人物の名前を含む。 それらは架空の場合も実在の場合もある。 一般に、この情報はメディア自体の中に存在するか、他の経路を通じて公開されている。 その身元が含まれるDAPT文書へ アクセスできる人にそれらが知られることについて機微性がある場合、 そのようなアクセスは適切な機密性をもって管理されるべきである。 たとえば、そのような文書は閉じたオーサリング環境内で利用可能にし、 より広い利用者へ配布する前に機微情報を削除するよう編集できる。 このシナリオが発生する場合、閉じた環境内では、 文書の「保存時」および移動時の暗号化、 認証プラットフォームによって制御されたアクセスなど、 情報セキュリティの良好な実践を適用すべきである。
DAPT文書は、同じ音声断片について
代替となる外部音声リソースの集合を参照でき、
その場合、プロセッサは形式サポートなどの機能に基づいて代替の1つを選択することが期待される。
このパターンが使用される場合、プロセッサによる音声リソースの選択が
オリジンに公開されることで、そのプロセッサに関する情報、
たとえば選好する音声形式が明らかになる可能性がある。
この節は非規範的である。
[ttml2] のセキュリティに関する考慮事項が適用される。 なぜなら、DAPTは [ttml2] のプロファイルであり、 すべての適合するDAPT文書は TTML 文書インスタンスだからである。
[ttml2] のXML関連の考慮事項にもかかわらず、
DAPT文書は、必須の
拡張機能により、
文書型宣言を宣言または参照することを避け、
[xml] の実体展開機構の使用を
避けることが要求される。
したがって、実装は、DAPT文書を解析する際に
それらをサポートしないことで、XMLのこれらの機能に関連する潜在的な
サービス拒否攻撃または外部コンテンツ注入から保護できる。
#serialization
DAPT文書は、 「サブリソース」とも表現される外部音声リソースの参照を許可する。 そのような参照に関連する潜在的な脅威の1つは、 オリジンが、オーサリング時に意図されたものとは異なる音声リソースを返す可能性があることである。 現在、そのようなサブリソースの完全性を検証する仕組みは提供されていない。 適切な音声リソースが提供されることを保証できないコンテンツ提供者、 たとえばチェーンの一部が自らの制御外にある場合には、 サブリソース完全性メタデータ、 たとえば意図されたサブリソースのハッシュを含む属性を追加し、 受信したサブリソースが意図されたものであることを検証するためにこれを使用するクライアント側チェックを 実装することを検討できる。
この節は非規範的である。
この節は、実装者を対象として、 音声ミキシングに関する追加情報を含む。
ミキシング指示の適用は、[webaudio] を使用して実装できる。 図 2は、 番組音声の流れ、および音声生成要素がアクティブな場合に、 スクリプトイベント上のパンおよびゲイン(設定されている場合)がどのように適用され、 その後、出力がテキストへ渡され、 そこでアクティブな音声録音からの音声がミックスされ、 その音声録音自体にも自身のミキシング指示が適用され、 その後、結果にテキストのミキシング指示が適用されてから、 出力がマスターバスへミックスされる様子を示す。
この例は、図 3で [webaudio] ノードとして示されている。
上記の例は、少なくとも2つの点で単純化されている:
音声録音が可聴音で始まる、または終わる場合、 すなわちイン時刻における最初のサンプル、または アウト 時刻における最後のサンプルが非ゼロである場合、 再生の開始時または終了時に、音声トランスデューサが望ましくない 「ポップ」ノイズを発するよう誘発される可能性がある。
このポップ効果を避けるための潜在的な戦略は複数存在する。 たとえば:
これらの手法の最後のものが使用される場合で、 この点に関してプレゼンテーションプロセッサの挙動に対する 他の外部制御がない場合には、 音声録音も、開始時または終了時に、 可聴でなくレンダリングされた場合に意味を変えてしまうサンプルを含まないことが推奨される。 たとえば、単語 "cat" の先頭にある "c" のような破裂的な発話音を省略すると、 その単語は "at" のように聞こえることになる。
この節は、 [TTML2] コンテンツプロファイル およびプロセッサプロファイルを、 機能 および拡張の集合に対する処置を表現することによって定義する。 DAPT拡張は、G. 拡張で定義される。
[TTML2] で指定されるプロファイル意味論が適用される。
TTML プロファイル仕様とは、 「文書インスタンス」(ファイル)および「プロセッサ」(ファイルを処理するもの)内で 必須/任意/禁止とされるTTMLのすべての機能、 ならびに任意の拡張または制約を列挙する文書である。
ここで定義されるコンテンツプロファイルに適合する 時限テキストコンテンツ文書 インスタンスは:
時限テキストコンテンツ文書 インスタンスは、定義上、[TTML2] の3.1節の要件を満たすため、 ここで定義されるプロファイルに適合する時限テキストコンテンツ文書 インスタンスは、適合するTTML2文書インスタンスでもある。
この仕様で定義されるプロセッサプロファイルに適合する プレゼンテーションプロセッサは:
この仕様で定義されるプロセッサプロファイルに適合する 変換プロセッサは:
この仕様で使用されるrequired、permitted、optionalおよびprohibitedの処置は、
[TTML2] の<ttp:feature>
および<ttp:extension>要素の
value属性値へ次のように対応付けられる:
| DAPTの処置 | または
要素のvalue属性値(次における値)
|
|
|---|---|---|
| コンテンツプロファイル | プロセッサプロファイル | |
| required | required | required |
| permitted | optional | required |
| optional | optional | optional |
| prohibited | prohibited | optional |
この文書内でプレゼンテーションプロセッサ および変換プロセッサという用語を使用しても、 [TTML2] で定義される 標準プロファイルのいずれかへの適合を それ自体として意味するものではない。 言い換えれば、 プレゼンテーションプロセッサまたは変換プロセッサが、 TTML2プレゼンテーションプロファイルまたはTTML2変換プロファイルにも適合することなく、 この文書で定義されるプロファイルに適合することはエラーとは見なされない。
この仕様内でDAPT適合性を記述するために [TTML2] のプロファイリング サブシステムを使用することは、 DAPTプロセッサが、 DAPTによってサポートが明示的に要求されるもの以外の そのシステムの機能をサポートする必要があることを意味する意図ではない。
この文書は、不適合の時限テキストコンテンツ文書 インスタンスを処理または変換する際の、プレゼンテーションプロセッサまたは変換プロセッサの挙動を指定しない。
permittedおよびprohibitedの処置は、
<ttp:profile>要素内で
または<ttp:feature>要素が
許可または禁止されるものとして指定されていることを指すものではない。
<ttp:extension>
この節に列挙される機能および拡張は、 DAPT文書、 プレゼンテーションプロセッサ、 および変換プロセッサに対する最小要件を表現する。 DAPT文書は、追加で他のプロファイルに 適合してよく、 DAPTコンテンツプロファイルによって禁止されていない構文を含んでよい。 プレゼンテーションプロセッサおよび変換プロセッサは、 他のプロファイルに関連する追加の構文および意味論をサポートしてよい。
たとえば、DAPTスクリプトは、 音声を録音する俳優に対する台本の提示を強化するため、 または字幕もしくはキャプション作成での後の使用に重要なスタイルを追加するために、 [TTML2] の IMSC([ttml-imsc1.3])Text Profile によって許可される 構文を含めることができる。
編集作業: この機能一覧を確認し、それぞれの扱いを確認すること。 IMSC で許可されている禁止機能があってはならない。
DAPTコンテンツプロファイルは、 [TTML2] のプロファイル機構を使用して、 DAPTスクリプトの適合性要件を表現する。 これは、DAPTプロセッサプロファイルをサポートする検証プロセッサが、 DAPT文書を検証するために使用できる。
DAPT文書内にDAPTコンテンツプロファイルを含める要件はない。
<?xml version="1.0" encoding="utf-8"?>
<!-- This file is the TTML Profile Document representing
the DAPT 1.0 Content Profile defined
by DAPT at https://www.w3.org/TR/dapt/ -->
<profile xmlns="http://www.w3.org/ns/ttml#parameter"
designator="http://www.w3.org/ns/ttml/profile/dapt1.0/content"
combine="mostRestrictive"
type="content">
<features xml:base="http://www.w3.org/ns/ttml/feature/">
<!-- required (mandatory) feature support -->
<feature value="required">#structure</feature>
<feature value="required">#timeBase-media</feature>
<!-- optional (voluntary) feature support -->
<feature value="optional">#animate-fill</feature>
<feature value="optional">#animate-minimal</feature>
<feature value="optional">#audio</feature>
<feature value="optional">#audio-description</feature>
<feature value="optional">#audio-speech</feature>
<feature value="optional">#bidi</feature>
<feature value="optional" extends="#bidi">#bidi-version-2</feature>
<feature value="optional">#chunk</feature>
<feature value="optional">#content</feature>
<feature value="optional">#contentProfiles</feature>
<feature value="optional">#contentProfiles-combined</feature>
<feature value="optional">#core</feature>
<feature value="optional">#data</feature>
<feature value="optional">#direction</feature>
<feature value="optional">#embedded-audio</feature>
<feature value="optional">#embedded-data</feature>
<feature value="optional">#frameRate</feature>
<feature value="optional">#frameRateMultiplier</feature>
<feature value="optional">#gain</feature>
<feature value="optional">#metadata</feature>
<feature value="optional">#metadata-item</feature>
<feature value="optional">#nested-div</feature>
<feature value="optional" extends="#metadata">#metadata-version-2</feature>
<feature value="optional">#pan</feature>
<feature value="optional">#permitFeatureNarrowing</feature>
<feature value="optional">#permitFeatureWidening</feature>
<feature value="optional">#pitch</feature>
<feature value="optional">#presentation-audio</feature>
<feature value="optional">#processorProfiles</feature>
<feature value="optional">#processorProfiles-combined</feature>
<feature value="optional">#resources</feature>
<feature value="optional" extends="#animation">#set</feature>
<feature value="optional">#set-fill</feature>
<feature value="optional">#set-multiple-styles</feature>
<feature value="optional">#source</feature>
<feature value="optional">#speak</feature>
<feature value="optional">#speech</feature>
<feature value="optional">#styling</feature>
<feature value="optional">#styling-chained</feature>
<feature value="optional">#styling-inheritance-content</feature>
<feature value="optional">#styling-inline</feature>
<feature value="optional">#styling-referential</feature>
<feature value="optional">#tickRate</feature>
<feature value="optional">#time-clock</feature>
<feature value="optional">#time-offset</feature>
<feature value="optional">#time-offset-with-frames</feature>
<feature value="optional">#time-offset-with-ticks</feature>
<feature value="optional">#timing</feature>
<feature value="optional">#transformation</feature>
<feature value="optional">#unicodeBidi</feature>
<feature value="optional">#unicodeBidi-isolate</feature>
<feature value="optional" extends="#unicodeBidi">#unicodeBidi-version-2</feature>
<feature value="optional">#xlink</feature>
<!-- prohibited feature support -->
<feature value="prohibited">#animation-out-of-line</feature>
<feature value="prohibited">#clockMode</feature>
<feature value="prohibited">#clockMode-gps</feature>
<feature value="prohibited">#clockMode-local</feature>
<feature value="prohibited">#clockMode-utc</feature>
<feature value="prohibited">#dropMode</feature>
<feature value="prohibited">#dropMode-dropNTSC</feature>
<feature value="prohibited">#dropMode-dropPAL</feature>
<feature value="prohibited">#dropMode-nonDrop</feature>
<feature value="prohibited">#markerMode</feature>
<feature value="prohibited">#markerMode-continuous</feature>
<feature value="prohibited">#markerMode-discontinuous</feature>
<feature value="prohibited">#subFrameRate</feature>
<feature value="prohibited">#time-clock-with-frames</feature>
<feature value="prohibited">#time-wall-clock</feature>
<feature value="prohibited">#timeBase-clock</feature>
<feature value="prohibited">#timeBase-smpte</feature>
<feature value="prohibited">#timeContainer</feature>
</features>
<extensions xml:base="http://www.w3.org/ns/ttml/profile/dapt/extension/">
<!-- required (mandatory) extension support -->
<extension value="required">#contentProfiles-root</extension>
<extension value="required">#represents</extension>
<extension value="required">#scriptRepresents-root</extension>
<extension value="required">#scriptType-root</extension>
<extension value="required">#serialization</extension>
<extension value="required">#xmlLang-root</extension>
<!-- optional (voluntary) extension support -->
<extension value="optional">#agent</extension>
<extension value="optional">#daptOriginTimecode</extension>
<extension value="optional">#descType</extension>
<extension value="optional">#onScreen</extension>
<extension value="optional">#scriptEventMapping</extension>
<extension value="optional">#textLanguageSource</extension>
<!-- prohibited extension support -->
<extension value="prohibited">#profile-root</extension>
<extension value="prohibited">#source-data</extension>
<extension value="prohibited">#xmlLang-audio-nonMatching</extension>
</extensions>
</profile>
DAPTプロセッサプロファイルは、 [TTML2] のプロファイル機構を使用して、 DAPTスクリプトの処理要件を表現する。 DAPTプロセッサプロファイルの必須の機能および拡張をサポートするプロセッサは、 最小限、DAPT文書内のすべての許可された機能を処理できる。
DAPT文書内にDAPTプロセッサプロファイルを含める要件はない。
<?xml version="1.0" encoding="utf-8"?>
<!-- This file is the TTML Profile Document representing
the DAPT 1.0 Processor Profile defined
by DAPT at https://www.w3.org/TR/dapt/ -->
<profile xmlns="http://www.w3.org/ns/ttml#parameter"
designator="http://www.w3.org/ns/ttml/profile/dapt1.0/processor"
combine="mostRestrictive"
type="processor">
<features xml:base="http://www.w3.org/ns/ttml/feature/">
<!-- required (mandatory) feature support -->
<feature value="required">#animate-fill</feature>
<feature value="required">#animate-minimal</feature>
<feature value="required">#audio</feature>
<feature value="required">#audio-description</feature>
<feature value="required">#audio-speech</feature>
<feature value="required">#bidi</feature>
<feature value="required" extends="#bidi">#bidi-version-2</feature>
<feature value="required">#chunk</feature>
<feature value="required">#content</feature>
<feature value="required">#contentProfiles</feature>
<feature value="required">#core</feature>
<feature value="required">#data</feature>
<feature value="required">#direction</feature>
<feature value="required">#embedded-audio</feature>
<feature value="required">#embedded-data</feature>
<feature value="required">#frameRate</feature>
<feature value="required">#frameRateMultiplier</feature>
<feature value="required">#gain</feature>
<feature value="required">#metadata</feature>
<feature value="required">#metadata-item</feature>
<feature value="required">#nested-div</feature>
<feature value="required" extends="#metadata">#metadata-version-2</feature>
<feature value="required">#pan</feature>
<feature value="required">#pitch</feature>
<feature value="required">#presentation-audio</feature>
<feature value="required">#resources</feature>
<feature value="required" extends="#animation">#set</feature>
<feature value="required">#set-fill</feature>
<feature value="required">#set-multiple-styles</feature>
<feature value="required">#source</feature>
<feature value="required">#speak</feature>
<feature value="required">#speech</feature>
<feature value="required">#structure</feature>
<feature value="required">#styling</feature>
<feature value="required">#styling-chained</feature>
<feature value="required">#styling-inheritance-content</feature>
<feature value="required">#styling-inline</feature>
<feature value="required">#styling-referential</feature>
<feature value="required">#tickRate</feature>
<feature value="required">#time-clock</feature>
<feature value="required">#time-offset</feature>
<feature value="required">#time-offset-with-frames</feature>
<feature value="required">#time-offset-with-ticks</feature>
<feature value="required">#timeBase-media</feature>
<feature value="required">#timing</feature>
<feature value="required">#transformation</feature>
<feature value="required">#unicodeBidi</feature>
<feature value="required">#unicodeBidi-isolate</feature>
<feature value="required" extends="#unicodeBidi">#unicodeBidi-version-2</feature>
<feature value="required">#xlink</feature>
<!-- optional (voluntary) feature support -->
<feature value="optional">#animation-out-of-line</feature>
<feature value="optional">#clockMode</feature>
<feature value="optional">#clockMode-gps</feature>
<feature value="optional">#clockMode-local</feature>
<feature value="optional">#clockMode-utc</feature>
<feature value="optional">#contentProfiles-combined</feature>
<feature value="optional">#dropMode</feature>
<feature value="optional">#dropMode-dropNTSC</feature>
<feature value="optional">#dropMode-dropPAL</feature>
<feature value="optional">#dropMode-nonDrop</feature>
<feature value="optional">#markerMode</feature>
<feature value="optional">#markerMode-continuous</feature>
<feature value="optional">#markerMode-discontinuous</feature>
<feature value="optional">#permitFeatureNarrowing</feature>
<feature value="optional">#permitFeatureWidening</feature>
<feature value="optional">#processorProfiles</feature>
<feature value="optional">#processorProfiles-combined</feature>
<feature value="optional">#subFrameRate</feature>
<feature value="optional">#time-clock-with-frames</feature>
<feature value="optional">#time-wall-clock</feature>
<feature value="optional">#timeBase-clock</feature>
<feature value="optional">#timeBase-smpte</feature>
<feature value="optional">#timeContainer</feature>
</features>
<extensions xml:base="http://www.w3.org/ns/ttml/profile/dapt/extension/">
<!-- required (mandatory) extension support -->
<extension value="required">#agent</extension>
<extension value="required">#contentProfiles-root</extension>
<extension value="required">#daptOriginTimecode</extension>
<extension value="required">#descType</extension>
<extension value="required">#onScreen</extension>
<extension value="required">#represents</extension>
<extension value="required">#scriptRepresents-root</extension>
<extension value="required">#scriptType-root</extension>
<extension value="required">#serialization</extension>
<extension value="required">#textLanguageSource</extension>
<extension value="required">#xmlLang-root</extension>
<!-- optional (voluntary) extension support -->
<extension value="optional">#profile-root</extension>
<extension value="optional">#scriptEventMapping</extension>
<extension value="optional">#source-data</extension>
<extension value="optional">#xmlLang-audio-nonMatching</extension>
</extensions>
</profile>
次の節では、拡張指定子を定義する。 これは、DAPT拡張名前空間の基底URIを基準とする 相対URI(フラグメント識別子)として表現される。 これらの拡張指定子は、F. プロファイルにおいて、 [TTML2] のプロファイル機能では 表現されないDAPTの規範的規定を記述するために使用される。
変換プロセッサは、
<ttm:agent>要素上の次の要素および属性の値を認識し、
変換できる場合に、#agent拡張をサポートする:
xml:id属性<ttm:name>要素かつ、次の各値の組み合わせを認識し、変換できる場合:
type="person"を持つ<ttm:agent>要素
およびtype="full"を持つ子<ttm:name>要素。type="character"を持つ<ttm:agent>要素
およびtype="alias"を持つ子<ttm:name>要素。#agent拡張については、プレゼンテーションプロセッサの挙動は定義されない。
変換プロセッサは、
<tt>要素上の
属性の値を認識し、変換できる場合に、
ttp:contentProfiles#contentProfiles-root拡張をサポートする。
プレゼンテーションプロセッサは、
<tt>要素上の
属性のプレゼンテーション意味論サポートを実装する場合に、
ttp:contentProfiles#contentProfiles-root拡張をサポートする。
#contentProfiles-root拡張は、
機能の構文的および意味的なサブセットである。
#contentProfiles
変換プロセッサは、
<daptm:daptOriginTimecode>
要素の値を認識し、変換できる場合に、
#daptOriginTimecode拡張をサポートする。
#daptOriginTimecode拡張については、プレゼンテーションプロセッサの挙動は定義されない。
変換プロセッサは、
<ttm:desc>要素上の
属性の
値を認識し、変換できる場合に、
daptm:descType#descType拡張をサポートする。
#descType拡張については、プレゼンテーションプロセッサの挙動は定義されない。
変換プロセッサは、
<div>要素上の
属性の値を
認識し、変換できる場合に、
daptm:onScreen#onScreen拡張をサポートする。
#onScreen拡張については、プレゼンテーションプロセッサの挙動は定義されない。
変換プロセッサは、
<tt>要素上の
属性の
値を認識し、変換できる場合に、
ttp:profile#profile-root拡張をサポートする。
プレゼンテーションプロセッサは、
<tt>要素上の
属性の
プレゼンテーション意味論サポートを実装する場合に、
ttp:profile#profile-root拡張をサポートする。
#profile-root拡張は、
機能の構文的および意味的なサブセットである。
#profile
変換プロセッサは、
属性の
値を認識し、変換できる場合に、
daptm:represents#represents拡張をサポートする。
#represents拡張については、プレゼンテーションプロセッサの挙動は定義されない。
変換プロセッサは、
DAPT文書を
DAPTデータモデルの内部表現へ対応付ける際に、
6.3
<div>および
<p>要素の処理で指定される処理要件を実装する場合に、
#scriptEventMapping拡張をサポートする。
#scriptEventMapping拡張については、プレゼンテーションプロセッサの挙動は定義されない。
プレゼンテーションプロセッサには、
#scriptEventMapping拡張のサポートは要求されない。なぜなら、
DAPT文書を
DAPTデータモデルの内部表現へ
対応付けることを要求する、またはそれに依存するプレゼンテーション意味論がないためである。
そのような対応付けを行うプレゼンテーションプロセッサは、この拡張の目的では
変換プロセッサとも見なすことができる。
変換プロセッサは、
<tt>要素上の
属性の値を認識し、変換できる場合に、
daptm:scriptRepresents#scriptRepresents-root拡張をサポートする。
#scriptRepresents-root拡張については、プレゼンテーションプロセッサの挙動は定義されない。
#scriptRepresents-root拡張については、プレゼンテーションプロセッサの挙動は定義されない。
変換プロセッサは、
<tt>要素上の
属性の値を
認識し、変換できる場合に、
daptm:scriptType#scriptType-root拡張をサポートする。
#scriptType-root拡張については、プレゼンテーションプロセッサの挙動は定義されない。
#serialization
拡張に関して有効なシリアライズ済み文書とは、
[xml] のXML 1.0文書であり、
[UNICODE] で指定される
UTF-8文字エンコーディングを使用してエンコードされ、
バイトオーダーマーク(BOM)を含まず、
文書型宣言を含まず、
実体
宣言を含まず、
実体
参照を、
事前定義済み実体への参照以外に含まない文書である。
変換プロセッサまたはプレゼンテーションプロセッサは、
上で定義されたシリアライズ済み文書を読み取ることができる場合に、
#serialization拡張をサポートする。
文書を書き出す変換プロセッサは、
上で定義されたシリアライズ済み文書を書き出すことができる場合に、
#serialization拡張をサポートする。
変換プロセッサは、
<data>要素の子である
<source>要素の
値を認識し、変換できる場合に、
#source-data拡張をサポートする。
プレゼンテーションプロセッサは、
<data>要素の子である
<source>要素の
プレゼンテーション意味論サポートを実装する場合に、
#source-data拡張をサポートする。
変換プロセッサは、
属性の
値を認識し、変換できる場合に、
daptm:langSrc#textLanguageSource拡張をサポートする。
#textLanguageSource拡張については、プレゼンテーションプロセッサの挙動は定義されない。
変換プロセッサは、
<audio>要素上のxml:lang属性であって、
その親要素またはいずれかの子孫または参照先の
<source>または<data>要素の同じ属性の算出値と異なる値、
すなわち一致しない値を認識し、変換できる場合に、
#xmlLang-audio-nonMatching拡張をサポートする。
プレゼンテーションプロセッサは、
そのような一致しない
xml:lang属性値のプレゼンテーション意味論サポートを実装する場合に、
#xmlLang-audio-nonMatching拡張をサポートする。
変換プロセッサは、
<tt>要素上の
xml:lang属性の値および4.1.2
既定の言語で指定される追加の意味論を
認識し、変換できる場合に、
#xmlLang-root拡張をサポートする。
プレゼンテーションプロセッサは、
<tt>要素上の
xml:lang属性および4.1.2
既定の言語で指定される追加の意味論の
プレゼンテーション意味論サポートを実装する場合に、
#xmlLang-root拡張をサポートする。
この節は、この文書で定義されるレジストリ表の 管理責任、変更プロセス、および中核的要件から構成される レジストリ定義を指定する。
このW3Cレジストリの 管理者は、 Timed Text Working Group(TTWG)である。 TTWGが、たとえば閉鎖された場合など、 管理者の役割を果たせない場合、 代替の管理者はW3Cチームである。
このW3C レジストリへの変更は、次のいずれかの選択肢を使用して 要求されなければならない(変更要求):
変更要求は、管理者が 次のすべてを識別できるだけの十分な情報を含まなければならない:
provisionalのレジストリエントリ(存在する場合)。変更の提案者は、その提案された変更を含むpull request(または同等のもの)を バージョン管理システム上で開いてもよい。pull requestが開かれた場合、 対応するissueも開かれなければならず、 そのpull requestはそのissueにリンクされなければならない。
承認された変更要求は、 その関連pull requestをバージョン 管理システムへマージし、 この文書の更新版を公開することによって実施される。
管理者がW3C チームである場合、 チームは、受け取った回答から回答者間に合意があるかどうかを評価する前に、 変更要求について広範なレビューを求め、 少なくとも4週間のレビュー期間を提供しなければならない。
チームは、レビューの基礎として、バージョン管理システム上でpull requestを 開くことを要求してもよい。
そのような合意がある場合、 チームは提案された変更を行わなければならない。
この節は、この文書で定義されるレジストリ表に関する制約を定義する。 各レジストリ表は、 レジストリエントリの集合で構成される。 各レジストリ表は、 H.2 レジストリ表定義において、 関連付けられたレジストリ表定義を持ち、 これは各レジストリエントリに存在するフィールドを列挙する。
各レジストリエントリは、状態、一意の キー、および 適切な場合にはその他のフィールド、たとえば任意の注記、 記述、または他の定義実体への参照を持つ。
レジストリ表定義は、 各レジストリエントリで使用される フィールドおよびキーを定義しなければならない。
レジストリエントリの 状態 フィールドは、そのエントリの成熟度を反映する。 許可される値は次のとおり:
Provisional
Final
Deprecated
その他の値は許可されない。
レジストリエントリのうち、
状態がProvisionalであるものは、
変更または削除されてもよい。
その状態はまたはFinalへ変更されてよい。
Deprecated
後に削除されたエントリ内の
レジストリエントリの
キーは、
再利用されてもよい。
Provisional
新たに作成されたレジストリエントリは、
状態がであるべきである。
Provisional
レジストリエントリのうち、
状態がFinalであるものは、
削除または変更されてはならない。
その状態はへ変更されてもよい。
Deprecated
レジストリエントリのうち、
状態がDeprecatedであるものは、
削除または変更されてはならない。
その状態はへ変更されてもよい。
ただし、それによって、状態がFinalまたはProvisionalであるエントリ集合内で、
キーが重複する結果になる場合は除く。
Final
以前にProvisionalであり、かつ一度もになったことがない
Finalエントリ内の
レジストリエントリの
キーは、
再利用されてもよい。
Deprecated
以前にであった
Finalエントリ内の
レジストリエントリの
キーは、
再利用されてはならない。
Deprecated
新たに作成されたレジストリエントリは、
状態がであってはならない。
Deprecated
この節は、レジストリ表を定義し、そのレジストリエントリの場所を示す。
daptm:descTypeのレジストリ表は、
daptm:descType属性で使用できる値の集合を定義する。
キーは
"daptm:descType"フィールドである。
"description"フィールドは各値の意図された目的を記述する。
このレジストリ表のレジストリエントリは、4.8 スクリプトイベント 記述に置かれる。
<content-descriptor>のレジストリ表は、
daptm:represents属性で使用できる値の集合を定義する。
キーは
"<content-descriptor>"フィールドである。
"Description"フィールドは、各値によって表されるメディアコンテンツの種類を記述する。
"Example usage"フィールドは、記述されたコンテンツ種別が一般に見られるスクリプトの種類を記述する。
このレジストリ表のレジストリエントリは、4.1.6.2
<content-descriptor>値に置かれる。
この節は非規範的である。
この仕様は、[ttml-imsc1.3] および [ttml2] の他のプロファイルと 互換になるよう設計されている。 具体的には、この仕様で定義される機能および拡張のサブセットを選択することにより、 [ttml-imsc1.3] に適合し、 かつDAPT文書でもある文書を作成できる。
DAPT文書が、両方の適合性要件を満たすことで、 IMSCテキストプロファイル 文書でもあることは可能である。
DAPTの
#serialization機能は、
実質的にIMSC文書エンコーディング
制約のスーパーセットであるため、適合するDAPT文書はIMSCの
エンコーディング制約を満たす。
IMSCテキストプロファイルとDAPTの両方は、
他のプロファイルによって定義される語彙、たとえばメタデータが、
文書インスタンス内に存在することを許可するため、
IMSCで定義される語彙をDAPT文書で使用できる。
ただし、両方のプロファイルを処理する意図のないプロセッサは、
metadata要素の外に存在する認識されない語彙を
刈り込む可能性がある。
IMSCは#resourcesに制約を課し、 文書インスタンス内の埋め込み音声を禁止する。 したがって、この機能を使用するDAPT文書は、 IMSCテキストプロファイル文書には適合できない。
この仕様および [ttml-imsc1.3] に適合する文書は、
ttp:contentProfiles属性内に、
DAPT
1.0コンテンツプロファイルおよび
IMSCテキストプロファイルの指定子を、
その文書が適合するその他の任意のプロファイルに加えて含めることで、
両方への適合性を通知する。
DAPTの文字起こし段階、および任意の翻訳段階から始まる 字幕およびキャプションのオーサリングワークフローでは、 DAPTメタデータを使用して、 IMSCテキストプロファイル文書の生成または提示を指示できる。 たとえば:
編集者は、Timed Text Working Groupの現在および過去のメンバー、 他のW3C Working Groupのメンバー、 Audio Description Community Groupのメンバー、 ならびにこの文書のプロセスまたは内容に直接的または間接的に貢献した他のフォーラムの業界専門家に謝意を表する。
編集者は、特に次のメンバーによる貢献に謝意を表したい: Glenn Adams, Skynav; Pierre-Anthony Lemieux, MovieLabs; Hewson Maxwell, Ericsson; Chris Needham, British Broadcasting Corporation; Atsushi Shimono, W3C; Matt Simpson, Invited Expert; Andreas Tai, Invited Expert.
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in: