TTML2の吹替および音声解説プロファイル

W3C勧告候補草案

この文書の詳細
このバージョン:
https://www.w3.org/TR/2026/CRD-dapt-20260626/
最新公開バージョン:
https://www.w3.org/TR/dapt/
最新編集者草案:
https://w3c.github.io/dapt/
履歴:
https://www.w3.org/standards/history/dapt/
コミット履歴
実装報告書:
https://www.w3.org/wiki/TimedText/DAPT_Implementation_Report
編集者:
(Netflix)
(British Broadcasting Corporation)
フィードバック:
GitHub w3c/dapt (プルリクエスト, 新しい課題, 未解決の課題)
public-tt@w3.org に、 件名行を [dapt] … メッセージのトピック … として送信してください(アーカイブ

概要

この仕様は、DAPT、 すなわち、吹替台本、音声解説、翻訳字幕および聴覚障害者向け字幕 (クローズドキャプションとも呼ばれる)の制作で使用される、文字起こしおよび翻訳ワークフローにおける 時間付きテキストコンテンツの交換のための、TTMLベースのファイル形式を定義する。

この文書の状態

この節は、この文書の公開時点における状態を説明する。現在のW3C 公開文書の一覧およびこの技術報告書の最新版は、 W3C標準および草案 索引にある。

この文書は、レジストリ節 を取り込み、レジストリ表を定義する。 これは、w3c レジストリに対する [w3c-process] の要件で定義されている。 レジストリ表のみを変更する文書の更新は、 レジストリ表の更新に定められているように、 勧告トラックの更新に関する他の要件を満たすことなく行うことができる。 それらのレジストリ表を更新するための要件は、 H. レジストリ節内で規範的に指定される。

作業部会の実装報告書を参照されたい。

この仕様がCR段階を終了するには、 この仕様で定義されているが [TTML2] にまだ存在しないすべての機能について、 少なくとも2つの独立した実装が実装報告書に記録される必要がある。 作業部会は、実装が公開されていることを要求しないが、公開することを奨励する。

最初の作業草案以降に適用された 実質的な変更の一覧は、 substantive-changes-summary.txtにある。

作業部会は、次の リスクあり の機能を特定している。

Issue 218: At-risk: 外部リソース用の `<audio>` における `src` 属性のサポート CR-exit-must-haveAt risk feature

#113 に対する可能な解決策。

Issue 219: At-risk: 外部リソース用の `<audio>` の子である `<source>` 要素のサポート CR-exit-must-haveAt risk feature

#113 に対する可能な解決策。

Issue 220: At-risk: 埋め込みリソースを指す `<audio>` 要素の `src` 属性のサポート CR-exit-must-haveAt risk feature

#114 および #115 に対する可能な解決策。

#115 への関連は、これが参照可能な埋め込み音声リソースの存在も意味することであり、 これは #115 で説明されている選択肢の 1 つです。

Issue 221: At-risk: 埋め込みリソースを指す `<audio>` 要素の `<source>` 子のサポート CR-exit-must-haveAt risk feature

#114 および #115 に対する可能な解決策。

#115 への関連は、これが参照可能な埋め込み音声リソースの存在も意味することであり、 これは #115 で説明されている選択肢の 1 つです。

Issue 222: At-risk: インライン音声リソースのサポート CR-exit-must-haveAt risk feature

#115 に対する可能な解決策。

Issue 223: At-risk: `<data>` における `encoding` の各潜在的な値 CR-exit-must-haveAt risk feature

#117 に対する可能な解決策。

Issue 224: At-risk: `<data>` の `length` 属性のサポート CR-exit-must-haveAt risk feature

#117 に対する可能な解決策。

Issue 239: At-risk: ネストされた Div(旧 Script Event Grouping)および Script Event Mapping CR-exit-must-haveAt risk feature

#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 に準拠します。

1. 範囲

この仕様は、Timed Text Markup Language version 2.0 [TTML2] のテキストベースのプロファイルを定義します。これは、世界中の吹き替えおよび音声解説ワークフローをサポートし、 [DAPT-REQS] で定義された要件を満たし、かつ [TTML2] およびそのプロファイル内の視覚的表示機能、 たとえば [ttml-imsc1.3] のものの利用を許可することを意図しています。

2. 導入

この節は非規範的である。

2.1 トランスクリプトとスクリプト

一般的な用法では、scriptという語の意味の1つは、 映画、テレビ番組、演劇などの書かれたテキストである。 スクリプトは、完成した制作物の記録、 すなわちトランスクリプトである場合もあれば、 まだ作成されていない制作物の計画である場合もある。 この文書では、分野固有の用語を用い、より具体的に次のように定義する:

DAPTスクリプトという用語は、 トランスクリプトスクリプトの両方を指す総称として用いられ、 この仕様の正式な要件に対する適合点である。 DAPTスクリプトは、時間付き テキストおよび関連するメタデータ、 たとえば発話しているキャラクターなどで構成される。

吹替ワークフローでは、トランスクリプトが生成され、翻訳されてスクリプトが作成される。 音声解説ワークフローでは、トランスクリプトが映像画像を記述し、 それが音声相当物を録音するためのスクリプトとして直接使用される。

DAPTは、ローカライゼーションおよび 音声解説パイプラインにおける、オーサリング、プロンプト提示、 再生ツール間でのトランスクリプトおよびスクリプト (すなわちDAPTスクリプト)の交換のための TTMLベースの形式である。 DAPT文書は、 DAPTスクリプトの直列化可能な形式であり、 吹替または音声解説に関連する情報、 たとえばDAPTスクリプトの種別、台詞、 記述、タイミング、メタデータ、元言語の文字起こしテキスト、翻訳テキスト、言語情報、音声ミキシング指示を運び、 ユーザー定義の注釈または将来の追加機能を許可できるよう拡張可能であるように設計されている。

この仕様は、DAPTスクリプトのデータモデルおよび [TTML2] 文書としてのその表現 (4. DAPTデータモデルおよび 対応するTTML構文を参照) を、いくつかの制約および制限(5. 制約を参照)とともに定義する。

DAPTスクリプトは、視聴覚メディアを 元の形で理解できないユーザーにとってアクセシブルまたはローカライズされたものにするために用いられ、 [media-accessibility-reqs] に記述されている アクセシビリティ上のニーズを含む、トランスクリプトに関するユーザーニーズを満たす解決策の一部として、 また吹替によって台詞を別の言語に翻訳する必要があるユーザーを支援するために用いられることが期待される。

DAPTスクリプトコンテンツのすべての部分は、 関連メディア内でそれが何を表すかを、 表すものプロパティを介して何らかの表示でマークアップする必要がある。 同様に、DAPTスクリプト全体は、 それが表すすべてのコンテンツ種別、 たとえば音声コンテンツまたは視覚コンテンツを表すかどうか、 視覚であればテキストか非テキストか、などを列挙する必要がある。 階層的なコンテンツ記述子のレジストリが提供される。

吹替および音声解説の両方のオーサリングワークフローには、 [DAPT-REQS] に記述されている共通の要件を共有する、 類似した段階が含まれる。 どちらの場合も、作成者はコンテンツをレビューし、 台詞または映像画像の中で何が起きているかを、 それが起きる時刻とともに書き留める。 さらなる変換プロセスでは、テキストを別の言語に変更し、 正確なタイミング制約に合うように文言を調整できる。 その後、スクリプトの音声レンダリングが生成され、 最終的に番組音声へミキシングされる段階がある。 そのミキシングは配信前に行われることも、 プレーヤー内で直接行われることもある。

2.1.1 吹替スクリプト

吹き替えプロセスは、吹き替え台本 の作成から成るものであり、以下を含む複雑な複数段階のプロセスです。

  • 完成済み番組から、その言語での対話を書き起こし、タイミングを付けて トランスクリプトを作成すること。
  • 登場人物情報およびその他の注釈を用いて対話を記述すること。
  • さらなる翻案を導くためのローカリゼーション注記を生成すること。
  • 対話を対象言語の台本へ翻訳すること。
  • 翻訳を吹き替えに適合させること。 たとえば、吹き替えの場合には俳優の唇の動きに合わせること。

吹き替え台本は、非対話部分の番組音声と ミックスされる翻訳済み対話を録音し、 別の言語による番組のローカライズ版、 すなわち吹き替え版、略して dub を生成するために使用される トランスクリプトまたは台本 (ワークフロー段階による)です。

吹き替え台本は、別言語の字幕またはクローズドキャプションを 作成するための出発点として有用です。 この仕様は、[ttml-imsc1.3] などの TTML の他のプロファイルにおける 字幕およびキャプション文書の追加、ならびにそれらへの変換を容易にするよう設計されています。 たとえば、字幕スタイリング構文をDAPT文書内に保持できるようにします。 あるいは、スタイリングは、音声アーティストが台本付き対話を録音する際の補助として適用できます。

2.1.2 音声解説スクリプト

音声解説コンテンツの作成もまた、複数段階のプロセスです。 音声解説は、 video description としても知られ、 また [media-accessibility-reqs] では解説付き動画として知られており、 視覚的な提示を十分に見ることができない視聴者がコンテンツを理解するのを支援するための 音声サービスです。 これは、メイン番組音声と各説明の音声レンディションをミックスした結果であり、 対話と衝突しないタイミングになるよう作成され、 音声解説をミックスした音声トラックを提供します。 メイン番組音声とは、追加のミックスが行われる前に番組に関連付けられた音声を指します。 説明とは、番組提示の一側面を説明する一連の語句であり、 発声および録音によって音声としてレンダリングするのに適しているもの、 または [WCAG22] で定義されているように、 テキスト読み上げ変換のためのテキスト代替ソースとして使用されるものです。 音声解説とは何か、およびそれがどのように 機能するかについての詳細は、[BBC-WHP051] にあります。

音声解説台本の作成には、通常、以下が含まれます。

  • 番組、 または一連の番組の映像コンテンツを視聴すること。
  • 説明を話す機会がある重要な瞬間を特定すること。
  • その時点での番組の重要な可視部分を説明するための説明テキストを書くこと。
  • 人間の俳優を録音するか、テキスト読み上げを使用することにより、説明の音声版を作成すること。
  • 音声を番組音声と組み合わせるためのミックス指示([TTML2] の音声 スタイリングを用いて適用される)を定義すること。

音声ミックスは、メディアの配信前に行われる場合も、 クライアント内で行われる場合もあります。 音声解説台本が プレーヤーに配信される場合、 テキストは代替レンダリングを提供するために使用できます。 たとえば、点字ディスプレイ上で、 またはユーザーが設定したスクリーンリーダーを使用して提供できます。

2.1.3 その他の用途

DAPTスクリプトは、 他のワークフローおよびシナリオでも有用であり得る。 たとえば、元言語トランスクリプトは、次のように使用できる:

  • 翻訳、字幕またはキャプションの制作を意図していない場合でも、 音声認識システムの出力形式として。
  • 放送業界で「ポストプロダクションスクリプト」として知られる文書として。 主にプレビュー、編集レビュー、販売目的で使用される。

元言語トランスクリプト翻訳済みトランスクリプトの両方は、次のように使用できる:

  • Webページまたはアプリケーション内で音声または動画と並べて提示されるアクセシブルなトランスクリプトとして。 この用途では、タイミングを保持し、メディアとの同期やメディア内のナビゲーションに使用することも、 破棄してタイムライン全体の平文版を提示することもできる。

2.2 例示文書

2.2.1 基本的な文書構造

文書の最上位構造は次のとおりである:

  • 名前空間 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>
...

以降の例では、吹替および音声解説ワークフローにおけるさまざまな用途を示す。

2.2.2 音声解説の例

記述が追加されると、これは録音前スクリプトになる。 この場合、音声解説コンテンツの大部分が、固有の言語を持たない映像画像を文字起こしすることを反映するために、 テキスト言語ソースが、daptm:langSrc属性によって表され、 文書の最上位でzxxに設定されていることに注意されたい。 これは [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>
...

2.2.3 吹替の例

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>

3. 文書化規約

この文書では、次の規約を使用する:

4. DAPTデータモデルおよび対応する TTML構文

この節は、DAPTのデータモデルと、それに対応する TTML構文を指定する。 このモデルには、プロパティを持ち、他のオブジェクトと関連付けられるオブジェクトが存在する。 TTML構文では、これらのオブジェクトおよびプロパティは 要素および属性として表現されるが、 オブジェクトが常に要素として、プロパティが常に属性として表現されるわけではない。

1は、DAPTデータモデルを示し、すべての オブジェクトおよびプロパティを この文書内の対応する節へハイパーリンクしている。 共有プロパティは斜体で示される。 図におけるその他すべての規約は、[uml] に従う。

DAPTスクリプト スクリプトが表すもの スクリプト種別 既定の言語 (任意)テキスト言語ソース キャラクター キャラクター識別子 名前 (任意)タレント名 スクリプト イベント スクリプトイベント識別子 表すもの (任意) 開始 (任意) 終了 (任意) 継続時間 (任意)画面上 スクリプトイベント 記述 記述 (任意)記述種別 (任意)言語 テキスト テキスト内容 (任意)テキスト言語ソース (任意)言語 (任意)表すもの 音声 合成 音声 速度 (任意)ピッチ 音声 録音 ソース [ ] 型 [ ] (任意) 開始 (任意) 終了 (任意) 継続時間 (任意)イン時刻 (任意)アウト時刻 ミキシング 指示 (任意)ゲイン (任意)パン (任意) 開始 (任意) 終了 (任意) 継続時間 (任意)フィル 含む   0..* 含む 0..* 含む   0..* 含む   0..* 含む   0..* 0..* 0..* 包含   0..* 含む   0..* 含む 0..* である   である  
1 (参考)DAPTデータモデルの主要エンティティを示すクラス図。
Issue 116: インライン化されていない埋め込み 音声リソースをデータモデルに追加するか? questionCR-exit-must-have

#115 も参照してください - インラインではない 埋め込み音声リソースをサポートするのであれば、それらのためのオブジェクトを作成し、データモデルに追加すべきでしょうか?

4.1 DAPTスクリプト

DAPT スクリプトとは、オーサリングワークフロー内で処理される文書、またはクライアントによって処理される文書に対応し、 この仕様の制約に適合するトランスクリプトまたはスクリプトである。 これは、次の節で定義されるプロパティおよびオブジェクトを持つ: スクリプトが表すものスクリプト種別既定の言語テキスト言語 ソーススクリプトイベント および、吹替スクリプトの場合は、キャラクターである。

DAPT文書とは、 DAPTスクリプトを表す [TTML2] 時間付きテキストコンテンツ文書 インスタンスである。 DAPT文書は、 この節および後続の節で定義される構造と制約を持つ。

注記

[TTML2] 時間付きテキストコンテンツ文書 インスタンスは、 TT名前空間内にルート<tt>要素を持つ。

4.1.1 スクリプトが表すもの

スクリプトが 表すものプロパティは、DAPTスクリプトの必須プロパティであり、 文書の内容が関連メディアオブジェクトのどの構成要素を 表すかを示す。 文書の内容は、それらの構成要素に対するアクセシブルな代替を提供するための仕組みの一部として 使用できる。

注記

スクリプトイベントには、関連するプロパティである表すものがあり、 そのプロパティで許可される値については、スクリプトが表すものの値に 依存する制約がある。

このプロパティを表すために、daptm:scriptRepresents属性は <tt>要素上に存在しなければならず、 次の構文に適合する値を持つ:

daptm:scriptRepresents
: <content-descriptor> ( <lwsp>+ <content-descriptor>)*

<lwsp>                # as TTML2

4.1.2 既定の言語

既定の 言語は、DAPTスクリプトの必須プロパティであり、 スクリプトイベントテキストコンテンツに対する既定の言語を表す。 この言語は、元の言語の1つである場合も、翻訳言語である場合もある。 翻訳言語を表す場合、それは吹替または音声解説スクリプトが準備される 最終的な言語であることがあり、 目標録音言語と呼ばれる。または、ワークフローで使用される中間言語、すなわち ピボット言語であることもある。

既定の言語は、DAPT文書では、次の構造および制約によって 表される:

  • xml:lang属性は<tt>要素上に存在しなければならず、 その値は空であってはならない

注記

DAPTスクリプト内のすべてのテキストコンテンツには、 指定された言語がある。 複数の言語が使用される場合、既定の言語は、 スクリプトイベントの大半の言語、 最も長い時間話されている言語、または作者が任意に選んだ言語に対応できる。

4.1.3 スクリプト種別

スクリプト種別プロパティは、DAPTスクリプトの必須プロパティであり、 吹替および音声解説ワークフローで使用される文書の種別を、次のものの中から記述する: 元言語トランスクリプト翻訳済みトランスクリプト録音前スクリプト録音済みスクリプト

このプロパティを表すために、daptm:scriptType属性は<tt>要素上に 存在しなければならない:

daptm:scriptType
  : "originalTranscript"
  | "translatedTranscript"
  | "preRecording"
  | "asRecorded"

文書の種別と、対応するdaptm:scriptType属性値の定義は次のとおりである:

編集者 注記

次の例は孤立している――列挙されたスクリプト種別の前、節の先頭へ移動するか?

<tt daptm:scriptType="originalTranscript">
...
</tt>

4.1.4 スクリプトイベント

DAPTスクリプトは、各々が特定の時間間隔の 台詞、画面上テキスト、または記述に対応する、0個以上のスクリプトイベントオブジェクトを 含んでよい

いずれかのスクリプトイベントが存在する場合、DAPT文書は、 <tt>要素の子として1つの<body>要素を持たなければならない

4.1.5 キャラクター

DAPTスクリプトは、それぞれが スクリプトイベントから参照できる キャラクターを記述する、0個以上のキャラクターオブジェクトを含んで よい

いずれかのキャラクターオブジェクトが存在する場合、DAPT文書は、 <tt>要素の子として1つの<head>要素を持たなければならず、 その<head>要素は、少なくとも1つの<metadata>要素の子を 持たなければならない

注記

4.2 キャラクターは、 すべてのキャラクターオブジェクトを 単一の<metadata>親要素内に配置すること、 また<head>要素の子として複数の <metadata>要素がある場合には、 キャラクターオブジェクトをその最初の子内に配置することを 推奨している。

4.1.6 共有プロパティ および値集合

DAPTデータモデル内の一部のプロパティは、複数の オブジェクト型で共通しており、 出現する場所すべてで同じ意味を持つ。 これらの共有 プロパティは、この節に列挙される。

DAPT内の一部の値集合は、 複数のプロパティにわたって再利用され、 出現する場所すべてで同じ制約を持つ。 これらの共有値集合も、この節に列挙される。

編集者 注記

「Timed Object」クラスを作成し、Script Event、Mixing Instruction、Audio Recordingを そこからサブクラス化する方がよいか?

4.1.6.1 タイミングプロパティ

次のタイミングプロパティは、 それらを含むエンティティがいつアクティブであるかを定義する:

  • 開始 プロパティは、オブジェクトがいつアクティブになるかを定義し、 親オブジェクトのアクティブ開始時刻を基準とする。 DAPTスクリプトは、 メディアタイムライン上の時刻ゼロで開始する。
  • 終了 プロパティは、オブジェクトがいつアクティブでなくなるかを定義し、 親オブジェクトのアクティブ開始時刻を基準とする。
  • 継続時間プロパティは、オブジェクトの最大継続時間を定義する。
    注記

    終了プロパティと継続時間プロパティの両方が 存在する場合、 終了時刻は、[TTML2] で定義されるように、 終了開始 + 継続時間のうち早い方である。

注記
いずれかのタイミングプロパティが 省略された場合、[TTML2] で定義される タイミング意味論を言い換えると、次の規則が適用される:
  • 開始の既定値はゼロ、すなわち親オブジェクトの開始時刻と 同じである。
  • 終了の既定値は不定であり、 すなわち親の時間付きオブジェクトが存在する場合、その終了時刻と同じものとして解決される。
  • 継続時間の既定値は不定であり、 すなわち終了時刻は親オブジェクトの終了時刻と同じものとして解決される。
注記

DAPTスクリプトの終了時刻は、 実用上、関連メディアオブジェクトの終端である。

4.1.6.2 <content-descriptor>

スクリプトが表すものおよび表すものプロパティで許可される値は、 <content-descriptor> 構文定義と、それに関連付けられたレジストリ表に依存する。

<content-descriptor> は、次の構文に適合する値を持つ:

<content-descriptor>  # see registry table below
: <descriptor-token> ( <descriptor-delimiter> <descriptor-token> )*

<descriptor-token>
: (descriptorTokenChar)+

descriptorTokenChar  # xsd:NMtoken without the "."
: NameStartChar | "-" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]

<descriptor-delimiter>
: "."  # FULL STOP U+002E

<content-descriptor> は、区切り文字で区切られたトークンの順序付きリストである値を持つ。

<content-descriptor>Bは、Aのdescriptor-tokensの順序付きリストが、 Bのdescriptor-tokensの順序付きリストの 先頭に存在する場合、別の<content-descriptor>Aコンテンツ記述子サブタイプサブタイプ)である。

<content-descriptor> に許可される値は、次のレジストリ表に列挙されたもの、またはユーザー定義のものの いずれかである。

有効なユーザー定義値は、x-で始まるか、 content-descriptorレジストリ表の値のサブタイプであり、最初の追加 <descriptor-token> 構成要素がx-で始まらなければならない

レジストリ表<content-descriptor> コンポーネント用。 そのレジストリ定義は H.2.2 <content-descriptor> レジストリ表定義 にある
<content-descriptor> 状態 説明 使用例
audio 暫定 DAPT コンテンツが 音声番組の任意の部分を表すことを示す。 吹き替え、翻訳、難聴者向け字幕およびキャプション、制作前および制作後の 台本
audio.dialogue 暫定 DAPT コンテンツが 音声番組内の言語コミュニケーション、たとえば話し言葉による 会話を表すことを示す。 吹き替え、翻訳、難聴者向け字幕およびキャプション、制作前および制作後の 台本
audio.nonDialogueSounds 暫定 DAPT コンテンツが 言語コミュニケーションではない音、たとえば怒ってドアを 強く閉める音のような重要な音に対応する、音声番組の一部を 表すことを示す。 翻訳、難聴者向け字幕およびキャプション、制作前および制作後の 台本
visual 暫定 DAPT コンテンツが 番組の視覚画像の任意の部分を表すことを示す。 音声解説
visual.dialogue 暫定 DAPT コンテンツが 番組の視覚画像内における言語コミュニケーション、たとえば 手話による会話を表すことを示す。 吹き替えまたは音声解説、翻訳、難聴者向け字幕および キャプション、制作前および制作後の台本
visual.nonText 暫定 DAPT コンテンツが 番組の視覚画像の非テキスト部分、たとえばシーン内の 重要な物体を表すことを示す。 音声解説
visual.text 暫定 DAPT コンテンツが 番組の視覚画像内のテキストコンテンツ、たとえば標識、時計、 新聞の見出し、インスタントメッセージなどを表すことを示す。 音声解説
visual.text.title 暫定 関連メディアのタイトルであるテキストを表す visual.textサブタイプ 音声解説
visual.text.credit 暫定 テキストがクレジット、たとえば俳優の名前である visual.textサブタイプ 音声解説
visual.text.location 暫定 テキストがコンテンツの発生している場所を示す visual.textサブタイプ 音声解説
注記

レジストリ項目は、 バージョン管理システム内の /registries/content-descriptor.json に JSON 形式で提供されている。

4.1.6.3 一意識別子

データモデル内の一部のエンティティには、一意識別子が含まれます。 一意 識別子には、以下の要件があります。

  • これはDAPTスクリプト内で一意である。 すなわち、一意識別子の値は、 それがどの特定の種類の識別子であるかに関係なく、 文書内で一度だけ使用できる。

    Character Identifier が値 "abc" を持ち、 同じ文書内のScript Event Identifier が同じ値を持つ場合、 それはエラーである。

  • その値は、[XML] で定義される Name の要件に適合しなければならない。

    注記

    これは、 数字、 結合用発音区別符号(アクセント)、 または以下の文字のいずれかで始めることはできない。

        .
        -
        ·  // #xB7// #x203F// #x2040

    ただし、これらの文字は他の位置では使用できる。

あるエンティティの一意識別子は、 DAPT文書内で、 対応する要素上の xml:id 属性によって表現される。

注記

xml:id の意味論および処理に関する正式な要件は、 [xml-id] で定義されている。

4.2 キャラクター

この節は主に吹替ワークフローに関連する。

番組内のキャラクターは、次のプロパティを持つキャラクターオブジェクトを使用して記述できる:

キャラクターは、DAPT文書において、 次の構造および制約によって表される:

注記
Issue 44: DAPT固有の適合実装種別を定義する CR must-have

汎用的な「プレゼンテーションプロセッサ」または「変換プロセッサ」を使用することを避けるため、 適合実装種別の独自のクラスを定義すべきである。それらへリンクできる。
現時点では、次のクラスを考えられる:

  • DAPT Authoring Tool: 適合するDAPT文書を生成する、またはDAPT適合文書を消費するツール。 これらがTTML2プロセッサに対応するとは思わない。
  • DAPT Audio Recorder/Renderer: ミキシング指示を持つものなど、DAPT音声解説スクリプトを受け取り、 音声出力、たとえばWAVEファイルを生成するツール。これは「プレゼンテーション プロセッサ」だと思う。
  • DAPT Validator: DAPT文書が仕様に適合していることを検証するツール。TTML2用語で何に対応するかは 確信がない。

4.3 スクリプトイベント

スクリプトイベントオブジェクトは、発話される台詞、画面上テキスト、または 音声解説を表し、次のプロパティを持つ:

スクリプトイベントは、DAPT文書において、 パス/tt/head/body//divで表され、 次の構造および制約を持つ:

Issue 233: スクリプトイベントに対応するdivの識別の改善を検討する CR must-have

#216(コメント)での議論に基づくと、 divがスクリプトイベントを表す時を示す明示的なシグナルを持つべきだと思う。

4.4 テキスト

テキストオブジェクトは、 通常は単一言語のテキストコンテンツを含む。 この言語は、原文言語、または翻訳言語であってよい。

テキストは、 以下のいずれかである場合、原文として定義される。

注記

テキストは、 異なる言語での原文テキストオブジェクトの表現である場合、 翻訳として定義される。

テキストは、 その言語とテキスト言語ソースを あわせて調べることにより、 テキスト言語ソースで定義された意味論に従って、 原文または翻訳であるものとして 識別できる。

翻訳テキストオブジェクト、および該当する場合には 原文テキストオブジェクトの ソース言語は、テキスト言語ソースプロパティを用いて示される。

テキスト オブジェクト、またはその一部が、親のスクリプトイベントよりも具体的なもの、または異なるものを表す場合、 それは異なる表す対象プロパティを持つことができる。

テキスト オブジェクト、およびそのすべての部分は、有効な表す対象プロパティを 持たなければMUSTならない。 このプロパティ自体の存在は任意と見なされる。 なぜなら、テキストオブジェクトがこの プロパティを省略した場合、そのプロパティは親のスクリプトイベントから継承されるからである。

注記

テキストオブジェクトは スタイル付けできる。

テキストの間に番組音声を変更するために使用される 0 個以上のミックス指示オブジェクトが存在しても MAY よい。

テキストオブジェクトは、 DAPT文書内では、 パス /tt/head/body//div/p にある <p> 要素によって表現され、以下の制約を伴う。

4.5 テキスト言語ソース

テキスト 言語ソースプロパティは、該当する場合には テキストオブジェクトの ソース言語を示し、またはソースコンテンツが固有の言語を持たなかったことを示す注釈である。

テキスト言語ソースは継承可能なプロパティである。

テキスト言語ソースプロパティは、DAPT文書内では、次の構文、 制約および意味論を持つ daptm:langSrc 属性によって表現される。

daptm:langSrc
: <empty-string> | <language-identifier>

<empty-string>
: ""                    # default

<language-identifier>   # well-formed BCP-47 language tag
注記

文書内でのテキスト言語ソースの使用例は、 テキストセクションにある。

4.6 画面上

画面上 プロパティは、スクリプトイベントの対象に関連する シーン内の位置を示す注釈であり、 たとえば発話しているキャラクターの位置を示す:

省略された場合、既定値は「ON」である。

注記

画面上 プロパティは、DAPT文書では、 次の制約を持つ、<div>要素上の daptm:onScreen属性によって表される:

4.7 表すもの

表すもの プロパティは、関連メディアオブジェクトのどの構成要素を、 スクリプトイベントまたはテキスト(またはその一部)が表すかを示す。

表すものプロパティは、DAPT文書では daptm:represents属性によって表され、 その値は単一の <content-descriptor>なければならない

daptm:represents属性は、 次のいずれの要素上にも存在してよい: <tt><body><div><p>および <span>

表すものプロパティは継承可能である。 それが要素に存在しない場合、その算出値は 親要素上の表すものプロパティの算出値であり、 親要素がない場合は空文字列である。 要素上に存在する場合、その算出値は指定された値である。

注記

空の <content-descriptor> は存在しないため、 これは、空の算出表すもの プロパティが決して有効になり得ないことを意味する。有効なDAPT文書を構築する1つの方法は、 DAPTスクリプト上に 表すもの プロパティを指定し、表すもの プロパティを持たないすべての子孫へ継承させることである。

表すものプロパティ値が、 スクリプトが表すものプロパティ内の値の少なくとも1つの コンテンツ 記述子サブタイプでないことはエラーである。

4.8 スクリプトイベント記述

スクリプトイベント記述オブジェクトは、 スクリプトイベントの内容の何らかの側面について、人間可読な記述を 提供する注釈である。 スクリプトイベント記述は、それ自体を 記述種別で分類できる。

スクリプトイベント記述オブジェクトは、 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に許可される値は、 次のレジストリ表に列挙されたもの、または ユーザー定義のもののいずれかである:

レジストリ表daptm:descType 属性用。 そのレジストリ定義は H.2.1 daptm:descType レジストリ表定義 にある
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>
...

4.9 音声

音声オブジェクトは、 テキストの音声レンダリングを指定するために使用される。 音声レンダリングは、録音済み音声リソースである 音声録音オブジェクトである場合も、 テキスト読み上げエンジンを介してテキストのレンダリングを合成する指令である 合成音声オブジェクトである場合もある。 どちらも音声オブジェクトの種別である。

音声がそのテキストと同じ言語でないことはエラーである。

音声をサポートするプレゼンテーションプロセッサは、 音声関連メディアオブジェクトのタイムライン上の指定時刻で再生または挿入する。

注記

音声オブジェクトは「抽象的」である。すなわち、 そのサブタイプである音声録音または合成 音声のいずれかとしてのみ存在できる。

4.9.1 音声録音

音声録音とは、音声リソースを参照する音声オブジェクトである。 これは次のプロパティを持つ:

  • 1つ以上の代替ソース。各々は、 1) 外部音声リソースへのリンク または 2) 埋め込み音声録音のいずれかである。
  • ソースについて、音声リソースの型 ([MIME-TYPES])、 たとえばaudio/basicを指定する、必須のが1つ。
  • 任意の開始プロパティ、任意の終了プロパティ、および任意の継続時間プロパティ。 これらは共に、親要素の時間間隔に関連して、番組タイムライン内における 音声録音の時間間隔を定義する。
  • 音声リソースの時間的な一部分を共に定義する、任意の イン時刻および任意のアウト時刻 プロパティ。

    既定のイン時刻は音声リソースの開始である。

    既定のアウト時刻は音声リソースの終端である。

    音声リソースの時間的な一部分が、 音声録音の時間間隔の継続時間より長い場合、 再生は、音声録音の時間間隔が終了した時点で終了するように 切り詰められなければならない

    注記

    音声リソースの時間的な一部分が、 音声録音の時間間隔の継続時間より短い場合、 音声リソースは1回再生される。

  • 音声録音の再生特性を変更する、 0個以上のミキシング指示

ソースのリストが提供される場合、 プレゼンテーションプロセッサは、 各音声録音について、ソースの 1つ以下を再生しなければならない

この機能はブラウザのフィンガープリント可能性に寄与する可能性がある。 実装は、、および存在する場合は関連する追加の形式情報を使用して、 どのソースを再生するかを決定できる。 たとえば、2つのソースが与えられ、一方がWAVファイルで、もう一方がMP3である場合、 それらの形式のうち1つしか再生できない実装、またはいずれか一方への選好を持つように 構成された実装は、再生可能または選好されたバージョンを選択することになる。

音声録音は、DAPT文書において、 それが適用されるテキストに対応する<p>要素または <span>要素の子である <audio> 要素によって表される。 <audio>要素には次の制約が適用される:

  • beginendおよびdur属性は、 それぞれ開始終了および継続時間 プロパティを表す。
  • clipBeginおよびclipEnd属性は、 5で示されるように、それぞれ イン時刻およびアウト時刻プロパティを表す。
  • ソースについて、それが外部音声リソースへのリンクである場合、 ソースおよびプロパティは、正確に次のいずれか1つによって 表される:
    1. フラグメント識別子ではないsrc属性、およびそれぞれtype属性。

      この仕組みは、複数のソースが 存在する場合には使用できない。

      <audio src="https://example.com/audio.wav" type="audio/wave"/>
    2. フラグメント識別子ではない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」としてマークすることを検討するか?

    Issue 113: `@src`と `<audio>`の`<source>`子(外部リソース)の両方をサポートするか? questionCR-exit-must-have
              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つの選択肢が存在する:

    1. <audio>要素内のsrc属性。
    <audio src="https://example.com/audio_recording.wav" type="audio/wave"/>
    1. <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に編集]

    Issue 218: At-risk: 外部リソース向けの `<audio>`における`src`属性のサポート CR-exit-must-haveAt risk feature

    #113に対する可能な解決。

    Issue 219: At-risk: 外部リソース向けの `<audio>`の`<source>`子要素のサポート CR-exit-must-haveAt risk feature

    #113に対する可能な解決。

  • ソースについて、それが埋め込み音声リソースである場合、 ソースおよびプロパティは、正確に次のいずれか1つによって 一緒に表される:
    1. <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>
    2. <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>
    3. 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」としてマークすることを検討するか?

    Issue 114: `@src`と `<audio>`の`<source>`子(埋め込みリソース)の両方をサポートするか? questionCR-exit-must-have
              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つの選択肢が存在する:

    1. 埋め込み<audio>または<data>を参照する、<audio>要素内のsrc属性:
    <audio src="#audioRecording1"/>
    ...
    <audio src="#audioRecording2"/>
    1. <audio>要素の子である<source>要素。
    <audio>
        <source src="#audioRecording1"/>
    </audio>

    この2番目の選択肢には、typeが不十分な場合にformat属性を指定する追加の可能性がある。また、複数の <source>子要素を許可する。ただし、複数のリソースが 指定された場合に意図される意味が何であるかは不明である――おそらく実装が何らかの方法で1つを選ぶ。

    Issue 115: 参照される埋め込み音声録音とインライン埋め込み音声録音の 両方をサポートするか? questionCR-exit-must-have
              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>
    Issue 220: At-risk: 埋め込みリソースを指す `<audio>` 要素の `src` 属性のサポート CR-exit-must-haveAt risk feature

    #114 および #115 に対する可能な解決策。

    #115 への関連は、これが参照可能な 埋め込み音声リソースの存在も意味することであり、それは #115 で説明されている選択肢の 1 つである。

    Issue 221: At-risk: 埋め込みリソースを指す `<audio>` 要素の子である `<source>` のサポート CR-exit-must-haveAt risk feature

    #114 および #115 に対する可能な解決策。

    #115 への関連は、これが参照可能な 埋め込み音声リソースの存在も意味することであり、それは #115 で説明されている選択肢の 1 つである。

    Issue 222: At-risk: インライン音声 リソースのサポート CR-exit-must-haveAt risk feature

    #115 に対する可能な解決策。

    Issue 116: インライン化されていない埋め込み音声 リソースをデータモデルに追加するか? questionCR-exit-must-have

    #115 も参照。インラインではない 埋め込み音声リソースをサポートするのであれば、それらのためのオブジェクトを作成し、 データモデルに追加すべきか?

    Issue 117: 埋め込みデータ: 許可されたすべての エンコーディングをサポートする必要があるか? length はどうか? questionCR-exit-must-have

    TTML2 の <data> 要素では、encoding を指定でき、 それは以下のいずれかである。

    • base16
    • base32
    • base32hex
    • base64
    • base64url

    それらすべてについてプロセッサのサポートを要求する必要があるか、それとも既定の base64 で十分か?

    また、デコードされたデータは指定されたバイト長でなければならないため、 エラーチェックの一定の実現可能性を提供する length 属性を指定できる。このサポートを要求することは正味の利点になるか? 使用されるか?

    Issue 223: At-risk: `<data>` における `encoding` の潜在的な各値 CR-exit-must-haveAt risk feature

    #117 に対する可能な解決策。

    Issue 224: At-risk: `<data>` 上の `length` 属性のサポート CR-exit-must-haveAt risk feature

    #117 に対する可能な解決策。

  • ミキシング指示は、それらの TTML 表現で指定されるように適用してよい
  • xml:lang属性の算出値は、親要素、および任意の子<source>要素、 ならびに参照される任意の埋め込み<data>要素のxml:lang属性の 算出値と同一でなければならない

4.9.2 合成音声

合成 音声とは、親テキスト内容の機械生成された音声レンダリングを 表す音声オブジェクトである。 これは次のプロパティを持つ:

  • 発話速度を指定する必須の速度。 値はnormalfastまたは slowである。
  • 発話のピッチ調整を可能にする任意のピッチ

合成音声は、DAPT文書において、 発話されるテキストオブジェクトを表す要素上に tta:speak スタイル属性を適用することによって表され、 その属性の算出値は normalfastまたはslowである。 この属性は速度プロパティも表す。

tta:pitch スタイル属性はピッチプロパティを表す。

合成音声TTML表現は、 7で示される。

注記

tta:rate属性の算出値がnoneである要素上の tta:pitch属性は効果を持たない。 そのような要素は、関連付けられた合成 音声を持つとは見なされない。

注記

DAPT合成音声語彙の意味論は、 [TTML2] で示されるように、 [SSML] の同等の機能から 派生している。このバージョンの仕様は、[SSML] の他の機能を DAPTから生成する方法、または DAPT文書へ埋め込む方法を指定しない。 この仕様の将来バージョンで[SSML] サポートを 拡張する選択肢は、意図的に開かれたままである。

4.10 ミキシング指示

ミキシング指示オブジェクトは、包含するオブジェクトに関連する音声の、 静的またはアニメーション化された調整である。 これは次のプロパティを持つ:

ミキシング指示は、関連するオブジェクトに対応する要素に、 インラインで、<style>要素への参照によって、または子(インライン)の <animate>要素内で、音声スタイル属性を適用することによって表される:

ミキシング指示がアニメーション化されている場合、すなわち、 調整プロパティが包含するオブジェクトのアクティブ時間間隔中に変化する場合、 それは1つ以上の子<animate>要素によって表される。 この表現は、複数のゲインまたはパンプロパティが必要な場合、 またはいずれかのタイミングプロパティが必要な場合に必須である。

<animate> 要素は、包含するオブジェクトに対応する要素の子でなければならず、 次の制約を持つ:

アニメーション化されたミキシング指示TTML表現は、 4で示される。

E. 音声ミキシングも参照。

5. 制約

5.1 文書エンコーディング

DAPT文書は、[xml] の整形式XML 1.0文書として 直列化されなければならず、 [UNICODE] で指定される UTF-8文字エンコーディングを使用して符号化される。

結果として得られる [xml] 文書は、 次の物理構造のいずれも含んではならない:

注記

結果として得られる [xml] 文書は、 文字参照、 および 実体参照事前定義済み実体に対して含むことができる。

事前定義済み実体は次のとおりである(先頭のアンパサンドと末尾のセミコロンを含む):

  • &amp; はアンパサンド &(Unicodeコードポイント U+0026)を表す
  • &apos; はアポストロフィ '(Unicodeコードポイント U+0027)を表す
  • &gt; は大なり記号 >(Unicodeコードポイント U+003E)を表す
  • &lt; は小なり記号 <(Unicodeコードポイント U+003C)を表す
  • &quot; は引用符 "(Unicodeコードポイント U+0022)を表す
注記

DAPT文書は、処理用のインメモリモデルとしても 使用できる。この場合、直列化要件は適用されない。

5.2 認識されない要素および属性、または外来要素および属性の処理

この節の要件は、前方互換性および後方互換性を容易にすることを意図しており、 具体的には次を許可する:

仕様の複数のバージョンに適合するDAPT文書は、 複数のDAPTコンテンツプロファイルへの適合を指定できる。

5.2.1 認識されない語彙

認識されない語彙とは、 プロセッサがサポートする機能に関連付けられていない 要素および属性の集合である。

変換プロセッサは、 属性でも<metadata>要素の子孫でもない 認識されない語彙を 刈り込まなければならない

変換プロセッサは、 属性または<metadata>要素の子孫のいずれかである 認識されない語彙を 保持すべきである

注記

5.6.2 ttp:contentProfilesも参照。これは、 変換プロセッサがサポートしないプロファイルへの プロファイル適合のシグナルを禁止している。

属性値の算出の後、 プレゼンテーションプロセッサは、 認識されない語彙を 無視すべきである

注記

上記の制約が属性値の算出後として指定されているのは、 実装が、たとえばDAPTデータモデルに対応するものなど、 特定の要素上にのみ存在する属性を認識しサポートする可能性があるためである。 6.4 算出属性値の使用で説明されるように、 プロセッサ実装が、そのような属性が他の要素上に存在する場合に無視しないことが重要である。

5.2.2 外来語彙に関する特別な考慮事項

外来 語彙とは、認識されない語彙の部分集合であり、 その名前空間が5.3 名前空間に列挙されている名前空間のいずれでもない要素および属性、 ならびに名前空間に値を持たず、DAPTまたは [TTML2] で別途定義されていない属性から 成る。

DAPT文書は、 ttp:contentProfilesでシグナルされる プロファイルによって特に許可も禁止もされていない 外来語彙を 含んでよい

注記

検証目的では、DAPT文書内で使用されるすべての 外来語彙について、 たとえばコンテンツプロファイルなどの仕様を定義し使用することが 良い実践である。

5.2.3 独自メタデータおよび外来語彙

多くの吹替および音声解説ワークフローでは、 スクリプトイベントまたは文書に独自メタデータで注釈を付けることを許可している。 この仕様または [TTML2] で定義されるメタデータ語彙を 含んでよい外来語彙も、 <metadata>要素の属性として、または <metadata>要素の子孫要素として 含んでよい

注記

[TTML2] の構成要素を使用して、 番組のタイトルなどの情報を追加することが可能である。

...
  <head>
    <metadata>
      <ttm:title>A example document title</ttm:title>
    </metadata>
  </head>
...
注記

外来名前空間を使用して、ワークフロー固有の情報を追加することが可能である。 次の例では、「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>要素内に配置しないことが強く推奨される。

そのようなデータは、文書の内容を変更する一方でメタデータを保持し、 その意味論を認識していない変換プロセッサによって 無効化される可能性がある。

5.2.3.1 メタデータではない外来語彙の定義および使用

この節は非規範的である。

外来語彙<metadata>要素以外の場所に 含まれている場合、 5.2.1 認識されない語彙で要求されるように、 その語彙に関連付けられた機能をサポートしない 変換プロセッサによって刈り込まれる。

そのような刈り込みを防ぎ、そのような外来語彙の意味論を定義する仕組みが提供される。 これにより、それを<metadata>要素の外側に配置しても刈り込まれないようにし、 コンテンツおよびプロセッサの適合を示すことができる:

  1. その意味論および語彙の機能定義を含むプロファイルを、プロファイル指定子付きで定義する。
  2. 5.6.2 ttp:contentProfilesを使用して、 そのプロファイルへの文書適合をシグナルする。

これにより、その機能をサポートするプロセッサは、その語彙を適切な任意の方法で処理し、 刈り込みを避けることができる。また、その機能をサポートしないプロセッサは、 たとえば一部の機能が失われる可能性があることをユーザーに警告するなど、 適切な措置を講じることができる。

5.3 名前空間

この仕様では、次の名前空間([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による将来の標準化のために予約される。

5.5 同期

DAPT 文書が [ttml-imsc1.3] 文書を生成するための 基礎として使用されることを意図している場合、 [ttml-imsc1.3] の同期規定が 映像との関係で適用される。

DAPT 文書内の時間指定コンテンツは、 特定の音声サンプル上で開始および終了するようにレンダリングされることを意図している。

注記

この仕様の文脈では、レンダリングとは、たとえば俳優に話すべき言葉を示すための テキストの視覚的提示である場合もあれば、音声リソースの可聴再生である場合もあり、 また点字ディスプレイのような物理的または触覚的なものである場合もある。

リアルタイム音声ミックスおよび再生などの制約のあるアプリケーションでは、 レンダリングされた出力において音声サンプルへの正確な同期を達成できない場合、 提示における時間指定された変更について、作成時および再生時の不正確さを合わせた影響は [EBU-R37] の同期要件を 満たすべきである SHOULD。 すなわち、音声の変更は画像の変更より 40ms を超えて先行してはならず、また 60ms を超えて遅れてはならない。

同様に、作成アプリケーションは、映像画像に関連付けられた任意の変更の後 15ms 未満、 および映像画像に関連付けられた任意の変更の前 5ms 未満となる精度で 時刻を定義することにより、 作成者が [EBU-R37] の 要件を満たせるようにすべきである SHOULD

上記の 2 つの制約、すなわち全体的な提示に関する制約と、 リアルタイム再生を意図したDAPT 文書に関する制約を あわせて考えると、 コンテンツプロセッサは、 DAPT 文書で指定された時刻より 35ms を超えて前に音声提示の変更を完了せず、 かつ指定された時刻より 45ms を超えて後に完了しないようにすべきである SHOULD

5.6 プロファイルシグナリング

この節は、TTML 文書インスタンスが、 それがDAPT文書であることをどのようにシグナルするか、 および適用される処理要件をどのようにシグナルするかを定義する。 7.1 DAPT文書の適合性も参照。 これは、DAPT文書がこの仕様に適合することを 確立する方法を定義する。

5.6.1 プロファイル指定子

このプロファイルは、次のプロファイル指定子に関連付けられる:

プロファイル名 プロファイル種別 プロファイル指定子
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

5.6.2 ttp:contentProfiles

ttp:contentProfiles 属性は、 文書が適合する [TTML2] プロファイルを宣言するために 使用される。

DAPT文書は、 <tt>要素上に ttp:contentProfiles 属性を指定しなければならず5.6.1 プロファイル 指定子で指定されたコンテンツプロファイル指定子と等しい値を少なくとも1つ含める。 他の値は、[TTML2] の他のプロファイルへの適合を宣言するために 存在してよく、 独自名前空間内のプロファイル指定子を含んでよい

DAPT文書が、 適合していないコンテンツプロファイルへの適合を シグナルすることはエラーである。

変換プロセッサは、 それら(プロセッサ)がサポートしないプロファイルに関連付けられた値を、 ttp:contentProfiles 属性内に含めてはならない。 定義上、それらはコンテンツがそれらのプロファイルに適合することを検証できないためである。

5.6.3 ttp:profile

ttp:profile属性は、 [TTML1] 内の、 文書インスタンスに対する処理要件を宣言するための仕組みである。 これは [TTML2] において、 実質的にttp:processorProfilesに 置き換えられている。

DAPT文書は、 <tt>要素上にttp:profile属性を指定してはならない

5.6.4 ttp:processorProfiles

ttp:processorProfiles 属性は、 文書インスタンスに対する処理要件を宣言するために 使用される。

DAPT文書は、 <tt>要素上に ttp:processorProfiles 属性を指定してよい。 存在する場合、 ttp:processorProfiles 属性は、5.6.1 プロファイル 指定子で指定されたプロセッサプロファイル指定子と等しい値を少なくとも1つ 含まなければならない。 他の値は追加の処理制約を宣言するために存在してよく、 独自名前空間内のプロファイル指定子を含んでよい

注記

ttp:processorProfiles 属性は、 文書インスタンスを正常に処理するために、 追加プロファイル内の機能および拡張をサポートする必要があることをシグナルするために 使用できる。 たとえば、ローカルワークフローが特定のメタデータ要件を導入し、 追加のプロセッサプロファイル指定子を使用して、それらをサポートする必要があることを プロセッサにシグナルする場合がある。

注記

コンテンツ作者が、DAPTで定義されたものより追加のプロセッサ要件が DAPT文書を処理するために 必要であることをシグナルする必要がない場合、 ttp:processorProfiles 属性は存在しないことが期待される。

5.6.5 その他のTTML2プロファイル 語彙

[TTML2] は、 文書インスタンスが使用できる、または プロセッサがサポートする必要がある 機能の集合を定義するために使用できる語彙および意味論を指定しており、 これはプロファイルとして知られる。

指定されている場合を除き、このプロファイル語彙をプロセッサがサポートすることは DAPTの要件ではない。 ただし、そのようなサポートは許可される。

このプロファイル語彙の大部分は、 文書インスタンスを正常に処理するために プロセッサがサポートする必要のある機能集合をどのように計算できるかを示すために使用される。 この語彙自体はTTML2機能の観点から定義される。 それらのプロファイル関連機能は、F. プロファイル内で任意として列挙されている。 これらはプロセッサに実装してよく、 関連する語彙はDAPT文書内に存在してよい

注記

これらの機能および語彙に対するプロセッササポートが(帯域外プロトコルを使用して) 手配されていない限り、この語彙は存在しないことが期待される。

DAPTにおいてプロセッササポートが 要求されない(ただし許可される)追加のプロファイル関連語彙は次のとおりである:

5.7 タイミング制約

DAPTスクリプト内では、時間属性および時間式に関して 次の制約が適用される:

5.7.1 ttp:timeBase

許可される唯一のttp:timeBase属性値はmediaである。 なぜなら、F. プロファイルが、 #timeBase-media以外のすべての timeBase機能を禁止しているためである。

これは、文書タイムラインの始点、 すなわち時刻「ゼロ」が、関連メディアオブジェクトの開始であることを意味する。

5.7.2 timeContainer

timeContainer属性の唯一許可される値は既定値、 parである。

文書は、すべての要素上でtimeContainer属性を省略すべきである

文書は、いかなる要素上でもtimeContainer属性をpar以外の値に設定しては ならない

注記

これは、すべての時間付き要素のbegin属性値が、 その親要素の算出開始時刻を基準とし、 <body>要素については時刻ゼロを基準とすることを意味する。

5.7.3 ttp:frameRate

文書がfメトリックを使用する時間式、またはフレーム構成要素を含む時間式を いずれか含む場合、 ttp:frameRate属性は<tt>要素上に存在しなければならない

注記

5.7.4 ttp:tickRate

文書がtメトリックを使用する時間式をいずれか含む場合、 ttp:tickRate属性は<tt>要素上に存在しなければならない

5.7.5 時間式

文書内のすべての時間式は、[TTML2] で定義され、 DAPT制約が適用された clock-timeまたはoffset-timeのいずれかの同じ構文を 使用すべきである

注記

DAPT clock-timeは次の形式のいずれかを持つ:

  • hh:mm:ss.sss
  • hh:mm:ss

ここで、 hhは時、 mmは分、 ssは秒、そして ss.sssは秒の小数部を伴う秒(任意の精度)である。

注記

フレーム構成要素を使用するclock time式は、 「タイムコード」に似て見えるが、 特に非整数フレームレート、「ドロップモード」およびサブフレームレートとともに使用された場合に 他所で観察されている意味上の混乱のため、禁止される。

注記

offset-timeは次の形式のいずれかを持つ:

  • nn metric
  • nn.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番目のフレームに対応する。

5.8 レイアウトおよびスタイル

この仕様は、[ttml-imsc1.3] で定義されるレイアウトおよびレンダリングの機能に追加の制約を課さない。

注記
段落のレイアウトは、既定の TTML 領域(すなわち、<head> 要素内で <layout> 要素が使用されていない場合)に依存してもよく、または region 属性を使用して、 /tt/head/layout/region に存在する <region> 要素を参照することにより、 明示的であってもよい。

スタイル参照またはインラインスタイルは、[TTML2] または [ttml-imsc1.3] で定義される、 style 属性、 <style> 要素、および インラインスタイル属性の任意の組み合わせを使用して、 使用して MAY である。

5.9 双方向テキスト

次のメタデータ要素は、DAPTで許可され、 [TTML2] で #PCDATA、 すなわち要素内容を持たないテキストデータのみを含むものとして指定されている。 そのような要素内の文字内容で双方向テキストが必要な場合、 Unicode制御文字を使用して、任意のテキスト範囲内の基底方向を定義できる。

注記

この仕組みの使用に関する詳しいガイダンスは、HTMLにおけるインラインマークアップと 双方向テキストで利用できる。

<p>および<span>内容要素は、 tts:directionおよびtts:unicodeBidi属性を使用してテキストの方向を 指定することを許可する。 文書作者は、Unicode制御文字を使用するのではなく、このより堅牢な仕組みを使用すべきである。

注記

[TTML2] から取られた次の例は、 <p>および<span>要素内の 双方向テキストマークアップの構文を示している。

<p>
The title of the book is
"<span tts:unicodeBidi="embed" tts:direction="rtl">نشاط التدويل، W3C</span>"
</p>

上記断片のレンダリング例を以下に示す。

方向の例のレンダリング例。左から右に The title of the book is W3C が示され、その後、該当するアラビア語テキストが右から左に示される

6. TTMLからDAPTデータモデルへのマッピング

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文書に基づいて音声ミックスをレンダリングできる。 その場合、この節は無視できる。

6.1 不適合文書の 早期識別

この節は非規範的である。

この節に関する規範的規定は、[TTML2] で定義される。

DAPTでは、 DAPT文書がルート要素上に ttp:contentProfiles属性を含み、 かつその属性が、5.6.2 ttp:contentProfilesで指定されるように、 DAPTコンテンツプロファイル指定子を含むことが要件であるため、 そのような属性を含まない、またはそのようなプロファイル指定子を含まない 任意のTTML文書は、 DAPT文書ではないと見なすことができる。 したがって、DAPTへの厳密な準拠を要求するプロセッサは、 そのような文書の処理を停止できる。

6.2 コンテンツプロファイルによって除外された機能を サポートしないこと

入力として、サポートしている機能に関連する語彙を含むDAPT文書を受け取るプロセッサは、 その文書が適合を主張するコンテンツプロファイルからそれらの機能のサポートが除外されている場合、 その文書の文脈ではそれらの機能を実装すべきではない

6.3 <div> および<p>要素の処理

[TTML2] は、 <div>要素が <div>要素および<p>要素の任意の組み合わせを含むことを許可する。 DAPTデータモデルは、 各スクリプトイベントが、 0個以上の<p>要素を含む<div>要素によってどのように 表されるかを記述している。 また、<body>要素とそれらのスクリプトイベント<div> 要素との間のパスに、他の中間<div>要素を置くことも許可している。 さらに、DAPTデータモデル内のプロパティに対応しない属性も許可される。

これにより、次のような可能性が生じる:

次の処理規則により、これらの場合が解決される。

スクリプトイベントを識別するための規則:

  1. <div>要素の子に<div>要素がなく、 かつスクリプトイベントの 非メタデータの必須プロパティすべてのTTML表現を含む場合、 その<div>要素はスクリプトイベントへ対応付けなければならない。 たとえば、スクリプトイベント識別子を表す有効な xml:idを持つ場合であり、 たとえ追加の認識されない語彙を 含んでいても同様である。

  2. 任意の<div>要素の子に<div>要素が含まれる場合、 その<div>要素はスクリプトイベントへ対応付けてはならない。 代わりにプロセッサは、それらの<div>要素の子を (深さ優先走査で再帰的に)反復処理し、 それぞれがスクリプトイベントの要件を満たすかどうかを 考慮しなければならない
  3. 残りの未対応付けの<div>要素は、スクリプトイベントへ対応付けてはならない

テキストオブジェクトを識別するための規則:

  1. スクリプトイベントへ対応付けられる<div>要素の子である <p>要素は、 テキスト オブジェクトへ対応付けなければならない
  2. スクリプトイベントへ対応付けられる<div>要素の子ではない <p>要素は、 テキスト オブジェクトへ対応付けてはならない
注記

DAPTの将来バージョンは、 これらの構造的可能性を異なる方法で使用する機能を含むことがあり、 したがって、ここで定義された規則と相互排他的な他の処理規則を定義する可能性がある。

6.4 算出属性 値の使用

一部の属性には、その値を算出する意味論があり、 その算出は他のある要素上の属性の算出値に依存する。 たとえば、xml:lang属性が要素上に指定されていない場合、その算出値は その要素の親上の同じ属性の算出値である。

DAPTデータモデル実体に対応する要素以外の 要素上にも指定できる属性の表。 追加で許可される属性、 たとえばスタイリング属性 (filltta:gainおよびtta:panを含む)は、 ここには列挙されないことに注意。
属性 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:scriptRepresentsdaptm:onScreenおよび daptm:descType属性は、 特定の要素上に指定された場合にのみ定義される。

また、別の例として、DAPT文書内の要素の算出時刻は、 その要素の親の開始時刻に相対的である。 <div>要素がbegin属性を指定する場合、 その子<div>要素の算出時刻は、 その親<div>要素の開始時刻に相対的であり、 階層を下るにつれて同様である。 処理対象が、それらに直接対応するものを持たないDAPT データモデルのインスタンスである場合でも、 それらの「中間」<div>要素の時刻を計算に含めることが重要である。 そうしなければ、スクリプトイベント開始および終了時刻が誤ったものになる。

この状況をより一般的に考えると、 DAPT文書内には、 DAPTデータモデル内のオブジェクトに 直接対応しないTTML要素が存在する可能性があり、 それらの要素は、DAPTデータモデル内のオブジェクトに対応する要素に 適用される属性値の算出に影響する属性を指定できる。

[TTML2] によって定義される意味論、 またはここで定義される語彙についてはこの仕様によって定義される意味論が、このシナリオでは優先される。 実装は、算出された値をDAPTデータモデルオブジェクトに適用する前に文書インスタンスの内容に基づいて属性値を 算出しなければならない。 たとえば、TTML2スタイリング機能をサポートするプロセッサは、 tts:fontSizeなどの属性の継承および相対値の算出に関するTTML2意味論を 実装する必要がある。

実装が内部的に、上の例に示されたスクリプトイベントなどの DAPTデータモデルオブジェクトを作成する場合、 相互運用性のためには、それらが算出値を使用することが重要である。

6.5 変換プロセッサおよび検証プロセッサに関する考慮事項

この節は非規範的である。

6.5.1 認識されない語彙の 保持

5.2.1 認識されない語彙に従い、 DAPTプロセッサの実装者は、 DAPT文書内の<metadata>要素における 認識されない語彙を維持することが推奨される。 実際には、DAPT文書を入力し、 DAPT文書を出力する実装が、 入力文書の構造および内容を変更し、 その際に、認識されない語彙を持つそれらの実体を 出力文書から実質的に刈り込むことがあり得る。

6.5.2 検証警告 およびエラー

この節に関する規範的規定は、[TTML2] で定義される。

[TTML2] は 検証プロセッサを定義する。 これは、文書インスタンスを評価し、 それが有効かどうかを判断することを目的とする実装のクラスである。 通常これは、文書が後続の使用に受け入れ可能であることを確認するために、 処理ワークフロー内で使用される。 現実世界の例では、単に「良い」または「悪い」を返すのではなく、 入力文書内の通常でない、予期しない、または問題のある内容を記述する 情報、警告およびエラーメッセージも出力する可能性が高い。

DAPT文書向けに 検証プロセッサを実装する場合、 厳密な [TTML2] 検証処理規則を 適用できる。 これを行うには、プロファイル内で定義された必須または任意の機能に関連する 構文および内容の存在と意味的妥当性を確認し、 禁止された機能に関連する構文が存在しないことを確認する。

[TTML2] における、 認識されない名前空間の語彙を扱う仕組みは、 検証の前にそれを刈り込むことである。 このアプローチは使用できる。さらに、実装が刈り込まれた属性および要素を 情報として報告することも合理的であり得る。

注記

ここでいう「語彙」という用語は、XML要素および属性を指す。

認識済み名前空間内のサポートされていない、または非推奨の語彙が刈り込み後に遭遇された場合、 あるいはサポートされる語彙が予期しないが無効ではない内容を含む場合には、 検証警告が発行される可能性があるが、 これらのシナリオではエラーは期待されない。

禁止された語彙が存在する場合、 または許可された語彙内で意味的に無効な内容に遭遇した場合には、 検証エラーが期待される。

7. 適合性

非規範的と記された節に加えて、この仕様内のすべてのオーサリングガイドライン、図、例、および注記は非規範的である。 この仕様内のその他すべては規範的である。

この文書におけるキーワード MAYMUSTMUST NOTSHOULD、および SHOULD NOT は、 ここに示すようにすべて大文字で出現する場合に、かつその場合に限り、 BCP 14 [RFC2119] [RFC8174] で記述されるとおりに解釈される。

[TTML2] は、 プロファイリングサブシステム内で、 文書およびプロセッサの要件を表現するための形式言語を指定している。 この仕様の規範的要件は、上で述べた適合性用語を使用して定義され、 また、このTTML2プロファイル機構を使用しても定義される。 TTML2語彙が参照される場合、その語彙に関する構文上および意味上の要件は、 [TTML2] で定義されるものが適用される。

DAPTプロセッサが TTML2プロファイル処理意味論を一般に実装する要件はないが、 実装者は、F. プロファイルで定義されるTTML2プロファイルを、 たとえばチェックリストとして、実装がDAPTの 規範的要件を満たしていることを検証する手段として使用できる。

逆に、TTML2プロファイル処理意味論をサポートする汎用 [TTML2] プロセッサは、 F. プロファイルで定義されるTTML2プロファイルを直接使用して、 DAPT文書を処理できるかどうかを判断できる。

7.1 DAPT文書の適合性

適合するDAPT文書は、 この仕様の規範的規定に適合する [TTML2] 時限テキストコンテンツ文書 インスタンスである。 それらの規定は、F. プロファイルで 定義される コンテンツプロファイル内で、 [TTML2] の プロファイル語彙を使用して表現される。

注記

DAPT文書は、 引き続き [TTML2] の3.1節で指定される コンテンツ適合性要件の対象である。 特に、DAPT文書は、 外来語彙を含むことができる。 なぜなら、そのような要素および属性は、コンテンツ適合性を評価する前に、 [TTML2] の4節のアルゴリズムによって 刈り込まれるからである。

7.2 DAPTプロセッサの適合性

適合するDAPTプロセッサは、 この仕様の規範的規定に適合する [TTML2] コンテンツプロセッサである。 それらの規定は、F. プロファイルで 定義される プロセッサプロファイル内で、 [TTML2] の プロファイル語彙を使用して表現される。

注記

A. 索引

A.1 この仕様で定義される用語

A.2 参照により定義される用語

B. プライバシーに関する考慮事項

この節は非規範的である。

次の場合を除き、[ttml2] のプライバシーに関する考慮事項が適用される:

B.1 個人情報

DAPT文書は通常、 関連メディア内に登場するキャラクターまたは人物の名前を含む。 それらは架空の場合も実在の場合もある。 一般に、この情報はメディア自体の中に存在するか、他の経路を通じて公開されている。 その身元が含まれるDAPT文書へ アクセスできる人にそれらが知られることについて機微性がある場合、 そのようなアクセスは適切な機密性をもって管理されるべきである。 たとえば、そのような文書は閉じたオーサリング環境内で利用可能にし、 より広い利用者へ配布する前に機微情報を削除するよう編集できる。 このシナリオが発生する場合、閉じた環境内では、 文書の「保存時」および移動時の暗号化、 認証プラットフォームによって制御されたアクセスなど、 情報セキュリティの良好な実践を適用すべきである。

B.2 音声形式の選好

この機能はブラウザのフィンガープリント可能性に寄与する可能性がある。 DAPT文書は、同じ音声断片について 代替となる外部音声リソースの集合を参照でき、 その場合、プロセッサは形式サポートなどの機能に基づいて代替の1つを選択することが期待される。 このパターンが使用される場合、プロセッサによる音声リソースの選択が オリジンに公開されることで、そのプロセッサに関する情報、 たとえば選好する音声形式が明らかになる可能性がある。

注記

C. セキュリティに関する考慮事項

この節は非規範的である。

[ttml2] のセキュリティに関する考慮事項が適用される。 なぜなら、DAPTは [ttml2] のプロファイルであり、 すべての適合するDAPT文書は TTML 文書インスタンスだからである。

[ttml2] のXML関連の考慮事項にもかかわらず、 DAPT文書は、必須の #serialization 拡張機能により、 文書型宣言を宣言または参照することを避け、 [xml] の実体展開機構の使用を 避けることが要求される。 したがって、実装は、DAPT文書を解析する際に それらをサポートしないことで、XMLのこれらの機能に関連する潜在的な サービス拒否攻撃または外部コンテンツ注入から保護できる。

DAPT文書は、 「サブリソース」とも表現される外部音声リソースの参照を許可する。 そのような参照に関連する潜在的な脅威の1つは、 オリジンが、オーサリング時に意図されたものとは異なる音声リソースを返す可能性があることである。 現在、そのようなサブリソースの完全性を検証する仕組みは提供されていない。 適切な音声リソースが提供されることを保証できないコンテンツ提供者、 たとえばチェーンの一部が自らの制御外にある場合には、 サブリソース完全性メタデータ、 たとえば意図されたサブリソースのハッシュを含む属性を追加し、 受信したサブリソースが意図されたものであることを検証するためにこれを使用するクライアント側チェックを 実装することを検討できる。

E. 音声ミキシング

この節は非規範的である。

この節は、実装者を対象として、 音声ミキシングに関する追加情報を含む。

E.1 Web Audio

ミキシング指示の適用は、[webaudio] を使用して実装できる。 2は、 番組音声の流れ、および音声生成要素がアクティブな場合に、 スクリプトイベント上のパンおよびゲイン(設定されている場合)がどのように適用され、 その後、出力がテキストへ渡され、 そこでアクティブな音声録音からの音声がミックスされ、 その音声録音自体にも自身のミキシング指示が適用され、 その後、結果にテキストミキシング指示が適用されてから、 出力がマスターバスへミックスされる様子を示す。

(アクティブ) スクリプトイベントパンゲイン (アクティブ) 音声録音パンゲイン (アクティブ) テキストパンゲイン 番組音声 音声ミキシングがアクティブな場合 音声ミキシングがアクティブでない場合
2 オブジェクト間の単純な音声ルーティングの例

この例は、3で [webaudio] ノードとして示されている。

GainNode(スクリプトイベント) PanNode(スクリプトイベント) GainNode(テキスト) PanNode(テキスト) GainNode(音声録音) PanNode(音声録音) 暗黙のミキサー マスターバス 番組音声 音声録音ソース音声 出力音声
3 必要な音声処理を表すWeb audioノード。

上記の例は、少なくとも2つの点で単純化されている:

E.2 ポップノイズ防止

音声録音が可聴音で始まる、または終わる場合、 すなわちイン時刻における最初のサンプル、または アウト 時刻における最後のサンプルが非ゼロである場合、 再生の開始時または終了時に、音声トランスデューサが望ましくない 「ポップ」ノイズを発するよう誘発される可能性がある。

このポップ効果を避けるための潜在的な戦略は複数存在する。 たとえば:

これらの手法の最後のものが使用される場合で、 この点に関してプレゼンテーションプロセッサの挙動に対する 他の外部制御がない場合には、 音声録音も、開始時または終了時に、 可聴でなくレンダリングされた場合に意味を変えてしまうサンプルを含まないことが推奨される。 たとえば、単語 "cat" の先頭にある "c" のような破裂的な発話音を省略すると、 その単語は "at" のように聞こえることになる。

F. プロファイル

この節は、 [TTML2] コンテンツプロファイル およびプロセッサプロファイルを、 機能 および拡張の集合に対する処置を表現することによって定義する。 DAPT拡張は、G. 拡張で定義される。

[TTML2] で指定されるプロファイル意味論が適用される。

TTML プロファイル仕様とは、 「文書インスタンス」(ファイル)および「プロセッサ」(ファイルを処理するもの)内で 必須/任意/禁止とされるTTMLのすべての機能、 ならびに任意の拡張または制約を列挙する文書である。

ここで定義されるコンテンツプロファイルに適合する 時限テキストコンテンツ文書 インスタンスは:

注記

時限テキストコンテンツ文書 インスタンスは、定義上、[TTML2] の3.1節の要件を満たすため、 ここで定義されるプロファイルに適合する時限テキストコンテンツ文書 インスタンスは、適合するTTML2文書インスタンスでもある。

この仕様で定義されるプロセッサプロファイルに適合する プレゼンテーションプロセッサは:

この仕様で定義されるプロセッサプロファイルに適合する 変換プロセッサは:

この仕様で使用されるrequired、permitted、optionalおよびprohibitedの処置は、 [TTML2] の<ttp:feature> および<ttp:extension>要素の value属性値へ次のように対応付けられる:

DAPTの処置 <ttp:feature>または <ttp:extension> 要素の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>要素が 許可または禁止されるものとして指定されていることを指すものではない。

F.1 機能および拡張の処置

この節に列挙される機能および拡張は、 DAPT文書プレゼンテーションプロセッサ、 および変換プロセッサに対する最小要件を表現する。 DAPT文書は、追加で他のプロファイルに 適合してよくDAPTコンテンツプロファイルによって禁止されていない構文を含んでよい。 プレゼンテーションプロセッサおよび変換プロセッサは、 他のプロファイルに関連する追加の構文および意味論をサポートしてよい

注記

たとえば、DAPTスクリプトは、 音声を録音する俳優に対する台本の提示を強化するため、 または字幕もしくはキャプション作成での後の使用に重要なスタイルを追加するために、 [TTML2] の IMSC([ttml-imsc1.3])Text Profile によって許可される 構文を含めることができる。

編集者注

編集作業: この機能一覧を確認し、それぞれの扱いを確認すること。 IMSC で許可されている禁止機能があってはならない。

機能または拡張 処置 追加規定
TT機能名前空間を基準とする
#animate-fill permitted
#animate-minimal permitted
#animation-out-of-line prohibited 4.10 ミキシング 指示を参照。
#audio permitted
#audio-description permitted
#audio-speech permitted
#bidi permitted
#bidi-version-2 permitted
#chunk permitted
#clockMode prohibited
#clockMode-gps prohibited
#clockMode-local prohibited
#clockMode-utc prohibited
#content permitted
#contentProfiles permitted 5.6.2 ttp:contentProfiles およびG.3 #contentProfiles-rootを参照。
#contentProfiles-combined optional 5.6.5 その他のTTML2プロファイル語彙を参照。
#core permitted
#data permitted
#direction permitted
#dropMode prohibited
#dropMode-dropNTSC prohibited
#dropMode-dropPAL prohibited
#dropMode-nonDrop prohibited
#embedded-audio permitted
#embedded-data permitted
#frameRate permitted 5.7.3 ttp:frameRateを参照。
#frameRateMultiplier permitted
#gain permitted
#markerMode prohibited
#markerMode-continuous prohibited
#markerMode-discontinuous prohibited
#metadata permitted
#metadata-item permitted
#metadata-version-2 permitted
#pan permitted
#permitFeatureNarrowing optional 5.6.5 その他のTTML2プロファイル語彙を参照。
#nested-div permitted これは、4.3 スクリプトイベントで説明される <div>要素の入れ子を許可することのプロファイル表現である。
#permitFeatureWidening optional 5.6.5 その他のTTML2プロファイル語彙を参照。
#pitch permitted
#presentation-audio permitted
#processorProfiles optional 5.6.4 ttp:processorProfilesを参照。
#processorProfiles-combined optional 5.6.5 その他のTTML2プロファイル語彙を参照。
#profile partially permitted 5.6.3 ttp:profileを参照。
#profile-full-version-2 partially permitted 5.6.5 その他のTTML2プロファイル語彙を参照。
#profile-version-2 partially permitted 5.6.5 その他のTTML2プロファイル語彙を参照。
#resources permitted
#set permitted
#set-fill permitted
#set-multiple-styles permitted
#source permitted
#speak permitted
#speech permitted
#structure required
#styling permitted
#styling-chained permitted
#styling-inheritance-content permitted
#styling-inline permitted
#styling-referential permitted
#subFrameRate prohibited
#tickRate permitted 5.7.4 ttp:tickRateを参照。
#time-clock permitted
#time-clock-with-frames prohibited
#time-offset-with-frames permitted 5.7.3 ttp:frameRateを参照。
#time-offset-with-ticks permitted 5.7.4 ttp:tickRateを参照。
#time-offset permitted
#time-wall-clock prohibited
#timeBase-clock prohibited
#timeBase-media required

5.7.1 ttp:timeBaseを参照。

注記: [TTML1] は、 ttp:timeBase属性が<tt>要素上に指定されていない場合、 既定の時間基準が"media"であることを指定している。

#timeBase-smpte prohibited
#timeContainer prohibited 5.7.2 timeContainerを参照。
#timing permitted 5.7.5 時間式を参照。
#transformation permitted #profileの制約を参照。
#unicodeBidi permitted
#unicodeBidi-isolate permitted
#unicodeBidi-version-2 permitted
#xlink permitted
DAPT拡張 名前空間を基準とする
#agent permitted これは4.2 キャラクターのプロファイル表現である。
#contentProfiles-root required これは5.6.2 ttp:contentProfilesのプロファイル表現である。
#daptOriginTimecode permitted これはD.1 DAPT原点 タイムコードのプロファイル表現である。
#descType permitted これはdaptm:descTypeの プロファイル表現である。
#onScreen permitted これは4.6 画面上のプロファイル表現である。
#profile-root prohibited これは、5.6.3 ttp:profileで指定される、 <tt>要素上のttp:profile属性の禁止のプロファイル表現である。
#represents required これは、スクリプトイベントへ適用される 表すもののプロファイル表現である。
#scriptEventMapping optional これは6.3 <div>および <p>要素の処理のプロファイル表現である。
#scriptRepresents-root required これはスクリプトが表すものの プロファイル表現である。
#scriptType-root required これは4.1.3 スクリプト種別のプロファイル表現である。
#serialization required これは5.1 文書エンコーディングのプロファイル表現である。
#source-data prohibited これは、4.9.1 音声 録音で指定される、 <data>要素の<source> 子要素の禁止のプロファイル表現である。
#textLanguageSource permitted これは、4.4 テキストで要求される、 4.5 テキスト言語ソースのプロファイル表現である。
#xmlLang-audio-nonMatching prohibited これは、4.9.1 音声 録音で指定される、 <audio>要素上のxml:lang属性が、 親要素および子孫または参照先の<source> および<data>要素と異なる算出値を持つことの禁止のプロファイル表現である。
#xmlLang-root required これは4.1.2 既定の言語のプロファイル表現である。

F.2 DAPTコンテンツプロファイル

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>

F.3 DAPTプロセッサプロファイル

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>

G. 拡張

G.1 全般

次の節では、拡張指定子を定義する。 これは、DAPT拡張名前空間の基底URIを基準とする 相対URI(フラグメント識別子)として表現される。 これらの拡張指定子は、F. プロファイルにおいて、 [TTML2] のプロファイル機能では 表現されないDAPTの規範的規定を記述するために使用される。

G.2 #agent

変換プロセッサは、 <ttm:agent>要素上の次の要素および属性の値を認識し、 変換できる場合に、#agent拡張をサポートする:

かつ、次の各値の組み合わせを認識し、変換できる場合:

#agent拡張については、プレゼンテーションプロセッサの挙動は定義されない。

G.3 #contentProfiles-root

変換プロセッサは、 <tt>要素上の ttp:contentProfiles 属性の値を認識し、変換できる場合に、 #contentProfiles-root拡張をサポートする。

プレゼンテーションプロセッサは、 <tt>要素上の ttp:contentProfiles 属性のプレゼンテーション意味論サポートを実装する場合に、 #contentProfiles-root拡張をサポートする。

#contentProfiles-root拡張は、 #contentProfiles 機能の構文的および意味的なサブセットである。

注記

G.4 #daptOriginTimecode

変換プロセッサは、 <daptm:daptOriginTimecode> 要素の値を認識し、変換できる場合に、 #daptOriginTimecode拡張をサポートする。

#daptOriginTimecode拡張については、プレゼンテーションプロセッサの挙動は定義されない。

G.5 #descType

変換プロセッサは、 <ttm:desc>要素上の daptm:descType属性の 値を認識し、変換できる場合に、 #descType拡張をサポートする。

#descType拡張については、プレゼンテーションプロセッサの挙動は定義されない。

G.6 #onScreen

変換プロセッサは、 <div>要素上の daptm:onScreen属性の値を 認識し、変換できる場合に、 #onScreen拡張をサポートする。

#onScreen拡張については、プレゼンテーションプロセッサの挙動は定義されない。

G.7 #profile-root

変換プロセッサは、 <tt>要素上の ttp:profile属性の 値を認識し、変換できる場合に、 #profile-root拡張をサポートする。

プレゼンテーションプロセッサは、 <tt>要素上の ttp:profile属性の プレゼンテーション意味論サポートを実装する場合に、 #profile-root拡張をサポートする。

#profile-root拡張は、 #profile 機能の構文的および意味的なサブセットである。

注記

G.8 #represents

変換プロセッサは、 daptm:represents属性の 値を認識し、変換できる場合に、 #represents拡張をサポートする。

#represents拡張については、プレゼンテーションプロセッサの挙動は定義されない。

G.9 #scriptEventMapping

変換プロセッサは、 DAPT文書DAPTデータモデルの内部表現へ対応付ける際に、 6.3 <div>および <p>要素の処理で指定される処理要件を実装する場合に、 #scriptEventMapping拡張をサポートする。

#scriptEventMapping拡張については、プレゼンテーションプロセッサの挙動は定義されない。

注記

プレゼンテーションプロセッサには、 #scriptEventMapping拡張のサポートは要求されない。なぜなら、 DAPT文書DAPTデータモデルの内部表現へ 対応付けることを要求する、またはそれに依存するプレゼンテーション意味論がないためである。 そのような対応付けを行うプレゼンテーションプロセッサは、この拡張の目的では 変換プロセッサとも見なすことができる。

G.10 #scriptRepresents-root

変換プロセッサは、 <tt>要素上の daptm:scriptRepresents 属性の値を認識し、変換できる場合に、 #scriptRepresents-root拡張をサポートする。

#scriptRepresents-root拡張については、プレゼンテーションプロセッサの挙動は定義されない。

#scriptRepresents-root拡張については、プレゼンテーションプロセッサの挙動は定義されない。

G.11 #scriptType-root

変換プロセッサは、 <tt>要素上の daptm:scriptType属性の値を 認識し、変換できる場合に、 #scriptType-root拡張をサポートする。

#scriptType-root拡張については、プレゼンテーションプロセッサの挙動は定義されない。

G.12 #serialization

#serialization 拡張に関して有効なシリアライズ済み文書とは、 [xml] のXML 1.0文書であり、 [UNICODE] で指定される UTF-8文字エンコーディングを使用してエンコードされ、 バイトオーダーマーク(BOM)を含まず、 文書型宣言を含まず、 実体 宣言を含まず、 実体 参照を、 事前定義済み実体への参照以外に含まない文書である。

変換プロセッサまたはプレゼンテーションプロセッサは、 上で定義されたシリアライズ済み文書を読み取ることができる場合に、 #serialization拡張をサポートする。

文書を書き出す変換プロセッサは、 上で定義されたシリアライズ済み文書を書き出すことができる場合に、 #serialization拡張をサポートする。

G.13 #source-data

変換プロセッサは、 <data>要素の子である <source>要素の 値を認識し、変換できる場合に、 #source-data拡張をサポートする。

プレゼンテーションプロセッサは、 <data>要素の子である <source>要素の プレゼンテーション意味論サポートを実装する場合に、 #source-data拡張をサポートする。

G.14 #textLanguageSource

変換プロセッサは、 daptm:langSrc属性の 値を認識し、変換できる場合に、 #textLanguageSource拡張をサポートする。

#textLanguageSource拡張については、プレゼンテーションプロセッサの挙動は定義されない。

G.15 #xmlLang-audio-nonMatching

変換プロセッサは、 <audio>要素上のxml:lang属性であって、 その親要素またはいずれかの子孫または参照先の <source>または<data>要素の同じ属性の算出値と異なる値、 すなわち一致しない値を認識し、変換できる場合に、 #xmlLang-audio-nonMatching拡張をサポートする。

プレゼンテーションプロセッサは、 そのような一致しない xml:lang属性値のプレゼンテーション意味論サポートを実装する場合に、 #xmlLang-audio-nonMatching拡張をサポートする。

G.16 #xmlLang-root

変換プロセッサは、 <tt>要素上の xml:lang属性の値および4.1.2 既定の言語で指定される追加の意味論を 認識し、変換できる場合に、 #xmlLang-root拡張をサポートする。

プレゼンテーションプロセッサは、 <tt>要素上の xml:lang属性および4.1.2 既定の言語で指定される追加の意味論の プレゼンテーション意味論サポートを実装する場合に、 #xmlLang-root拡張をサポートする。

H. レジストリ節

H.1 レジストリ定義

この節は、この文書で定義されるレジストリ表の 管理責任、変更プロセス、および中核的要件から構成される レジストリ定義を指定する。

H.1.1 管理責任

このW3Cレジストリ管理者は、 Timed Text Working GroupTTWG)である。 TTWGが、たとえば閉鎖された場合など、 管理者の役割を果たせない場合、 代替の管理者W3Cチームである。

H.1.2 変更プロセス

H.1.2.1 変更の要求

このW3C レジストリへの変更は、次のいずれかの選択肢を使用して 要求されなければならない変更要求):

変更要求は、管理者が 次のすべてを識別できるだけの十分な情報を含まなければならない:

変更の提案者は、その提案された変更を含むpull request(または同等のもの)を バージョン管理システム上で開いてもよい。pull requestが開かれた場合、 対応するissueも開かれなければならず、 そのpull requestはそのissueにリンクされなければならない

注記
H.1.2.2 変更 要求の評価プロセス

変更要求を評価するプロセスは、 管理者によって異なる。

H.1.2.2.1 管理者がTTWGである場合

管理者TTWGである場合:

  • 変更提案者がバージョン管理システム上で pull requestを開かなかった場合、 TTWGメンバーがそのようなpull requestを 開くまで評価は一時停止される。 そのpull requestは、要求された変更を表現しなければならず、 関連するissueにリンクされなければならない
  • TTWGは、そのDecision Policyに従って pull request内の提案をレビューする。
  • Decision Review Periodの終了時に、 TTWG議長が承認する合意があると宣言した場合、 変更要求は承認される。
  • 承認する合意がない場合には、 変更要求者を含めて議論が行われることが期待される。 この議論の結果は、次のいずれかになり得る:
    1. 変更要求が放棄される。
    2. 変更要求が別のレビューのために修正される。
    3. 議論によって異議が解消され、 TTWG議長が承認する合意を宣言した場合、 変更要求は承認され得る。

承認された変更要求は、 その関連pull requestをバージョン 管理システムへマージし、 この文書の更新版を公開することによって実施される。

H.1.2.2.2 管理者が W3Cチームである場合

管理者W3C チームである場合、 チームは、受け取った回答から回答者間に合意があるかどうかを評価する前に、 変更要求について広範なレビューを求め、 少なくとも4週間のレビュー期間を提供しなければならない

チームは、レビューの基礎として、バージョン管理システム上でpull requestを 開くことを要求してもよい

そのような合意がある場合、 チームは提案された変更を行わなければならない

H.1.3 レジストリ表の制約

この節は、この文書で定義されるレジストリ表に関する制約を定義する。 各レジストリ表は、 レジストリエントリの集合で構成される。 各レジストリ表は、 H.2 レジストリ表定義において、 関連付けられたレジストリ表定義を持ち、 これは各レジストリエントリに存在するフィールドを列挙する。

H.1.3.1 レジストリエントリ

レジストリエントリは、状態、一意の キー、および 適切な場合にはその他のフィールド、たとえば任意の注記、 記述、または他の定義実体への参照を持つ。

レジストリ表定義は、 各レジストリエントリで使用される フィールドおよびキーを定義しなければならない

注記
H.1.3.1.1 状態

レジストリエントリ状態 フィールドは、そのエントリの成熟度を反映する。 許可される値は次のとおり:

Provisional
Final
Deprecated

その他の値は許可されない。

H.1.3.1.1.1 暫定

レジストリエントリのうち、 状態Provisionalであるものは、 変更または削除されてもよい。 その状態FinalまたはDeprecatedへ変更されてよい。

後に削除されたProvisionalエントリ内の レジストリエントリキーは、 再利用されてもよい

新たに作成されたレジストリエントリは、 状態Provisionalであるべきである

H.1.3.1.1.2 最終

レジストリエントリのうち、 状態Finalであるものは、 削除または変更されてはならない。 その状態Deprecatedへ変更されてもよい

Finalエントリ内の レジストリエントリキーは、 再利用されてはならない

新たに作成されたレジストリエントリは、 状態Finalであってもよい

H.1.3.1.1.3 非推奨

レジストリエントリのうち、 状態Deprecatedであるものは、 削除または変更されてはならない。 その状態Finalへ変更されてもよい。 ただし、それによって、状態ProvisionalまたはFinalであるエントリ集合内で、 キーが重複する結果になる場合は除く。

以前にProvisionalであり、かつ一度もFinalになったことがない Deprecatedエントリ内の レジストリエントリキーは、 再利用されてもよい

以前にFinalであった Deprecatedエントリ内の レジストリエントリキーは、 再利用されてはならない

新たに作成されたレジストリエントリは、 状態Deprecatedであってはならない

H.2 レジストリ表定義

この節は、レジストリ表を定義し、そのレジストリエントリの場所を示す。

H.2.1 daptm:descTypeレジストリ表定義

daptm:descTypeレジストリ表は、 daptm:descType属性で使用できる値の集合を定義する。

キーは "daptm:descType"フィールドである。 "description"フィールドは各値の意図された目的を記述する。

このレジストリ表レジストリエントリは、4.8 スクリプトイベント 記述に置かれる。

このレジストリ表キー値は、 ユーザー拡張のために予約されているx-で始まってはならない

H.2.2 <content-descriptor>レジストリ表定義

<content-descriptor>レジストリ表は、 daptm:represents属性で使用できる値の集合を定義する。

キーは "<content-descriptor>"フィールドである。 "Description"フィールドは、各値によって表されるメディアコンテンツの種類を記述する。 "Example usage"フィールドは、記述されたコンテンツ種別が一般に見られるスクリプトの種類を記述する。

このレジストリ表レジストリエントリは、4.1.6.2 <content-descriptor>に置かれる。

このレジストリ表キー値は、 ユーザー拡張のために予約されているx-で始まってはならない

I. 他の TTMLベース仕様との互換性

この節は非規範的である。

I.1 概要

この仕様は、[ttml-imsc1.3] および [ttml2] の他のプロファイルと 互換になるよう設計されている。 具体的には、この仕様で定義される機能および拡張のサブセットを選択することにより、 [ttml-imsc1.3] に適合し、 かつDAPT文書でもある文書を作成できる。

I.2 IMSCテキストプロファイル

DAPT文書が、両方の適合性要件を満たすことで、 IMSCテキストプロファイル 文書でもあることは可能である。

DAPT#serialization機能は、 実質的にIMSC文書エンコーディング 制約のスーパーセットであるため、適合するDAPT文書はIMSCの エンコーディング制約を満たす。

IMSCテキストプロファイルとDAPTの両方は、 他のプロファイルによって定義される語彙、たとえばメタデータが、 文書インスタンス内に存在することを許可するため、 IMSCで定義される語彙をDAPT文書で使用できる。 ただし、両方のプロファイルを処理する意図のないプロセッサは、 metadata要素の外に存在する認識されない語彙を 刈り込む可能性がある。

IMSCは#resourcesに制約を課し、 文書インスタンス内の埋め込み音声を禁止する。 したがって、この機能を使用するDAPT文書は、 IMSCテキストプロファイル文書には適合できない。

I.2.1 IMSCへの適合性の通知

この仕様および [ttml-imsc1.3] に適合する文書は、 ttp:contentProfiles属性内に、 DAPT 1.0コンテンツプロファイルおよび IMSCテキストプロファイルの指定子を、 その文書が適合するその他の任意のプロファイルに加えて含めることで、 両方への適合性を通知する。

I.2.2 字幕およびキャプションのワークフローにおけるDAPTメタデータの使用

DAPTの文字起こし段階、および任意の翻訳段階から始まる 字幕およびキャプションのオーサリングワークフローでは、 DAPTメタデータを使用して、 IMSCテキストプロファイル文書の生成または提示を指示できる。 たとえば:

  • 話者(キャラクター)データを使用して、スタイルを適用したり、 話者の交替を示す内容、たとえば一般的に使用される話者交替記号や話者名を テキストの前に付けたりすることができる。
  • 表現データ(すなわち、テキスト内容が関連映像オブジェクト内の どの内容を記述するかを 記述するメタデータ)を使用して、テキスト内容の部分集合をフィルタリングまたは選択できる。 たとえば、非台詞音のキャプションを含める、または除外するためである。
  • 言語およびテキスト言語ソースメタデータを使用して、 目的の言語へ翻訳されたテキストを選択することで、 翻訳字幕文書を生成できる。
  • 言語およびテキスト言語ソースメタデータを使用して、 字幕が翻訳であることを識別できる。 これは、強制コンテンツとしてフラグ付けするため、 またはユーザーの選好を満たすために適切な場合に翻訳された字幕に対して テキスト読み上げをトリガーするためであり、この慣行は "spoken subtitles"として知られる。

J. 謝辞

編集者は、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.

K. 参照文献

K.1 規範的参照文献

[BCP47]
言語を識別するためのタグ。 A. Phillips 編; M. Davis 編。IETF。2009年9月。Best Current Practice。URL: https://www.rfc-editor.org/info/rfc5646/
[EBU-R37]
EBU Recommendation R37-2007。テレビ信号の音声 および映像成分の相対的タイミング。EBU/UER。 2007年2月。URL: https://tech.ebu.ch/publications/r037
[EBU-TT-3390]
EBU-TT Part M、メタデータ 定義。EBU/UER。2017年5月。URL: https://tech.ebu.ch/publications/tech3390
[MIME-TYPES]
Multipurpose Internet Mail Extensions (MIME) Part Two: メディア型。N. Freed; N. Borenstein。IETF。1996年11月。Draft Standard。URL: https://www.rfc-editor.org/info/rfc2046/
[namespaceState]
XML 名前空間における名前の処分。Norman Walsh。W3C。2006年3月29日。W3C Working Draft。URL: https://www.w3.org/TR/namespaceState/
[RFC2119]
RFC において 要求レベルを示すために使用するキーワード。S. Bradner。IETF。1997年3月。Best Current Practice。URL: https://www.rfc-editor.org/info/rfc2119/
[RFC8174]
RFC 2119 キーワードにおける大文字と小文字の曖昧性。B. Leiba。IETF。2017年5月。Best Current Practice。URL: https://www.rfc-editor.org/info/rfc8174/
[ttml-imsc1.3]
IMSC Text Profile 1.3。Pierre-Anthony Lemieux。W3C。2026年5月21日。W3C Recommendation。URL: https://www.w3.org/TR/ttml-imsc1.3/
[TTML1]
Timed Text Markup Language 1 (TTML1)(第3 版)。Glenn Adams; Pierre-Anthony Lemieux。W3C。2018年11月8日。W3C Recommendation。URL: https://www.w3.org/TR/ttml1/
[TTML2]
Timed Text Markup Language 2 (TTML2) (第2版)。W3C。2021-03-09。URL: https://www.w3.org/TR/2021/CR-ttml2-20210309
[UNICODE]
Unicode 標準。Unicode Consortium。URL: https://www.unicode.org/versions/latest/
[w3c-process]
W3C Process Document。Elika J. Etemad (fantasai); Florian Rivoal。W3C。2025年8月18日。URL: https://www.w3.org/policies/process/
[XML]
Extensible Markup Language (XML) 1.0(第5 版)。Tim Bray; Jean Paoli; Michael Sperberg-McQueen; Eve Maler; François Yergeau ほか。W3C。2008年11月26日。W3C Recommendation。URL: https://www.w3.org/TR/xml/
[xml-names]
Namespaces in XML 1.0(第3版)。 Tim Bray; Dave Hollander; Andrew Layman; Richard Tobin; Henry Thompson ほか。W3C。2009年12月8日。 W3C Recommendation。URL: https://www.w3.org/TR/xml-names/
[xmlschema-2]
XML Schema Part 2: Datatypes Second Edition。Paul V. Biron; Ashok Malhotra。W3C。2004年10月28日。W3C Recommendation。 URL: https://www.w3.org/TR/xmlschema-2/
[XPath]
XML Path Language (XPath) Version 1.0。 James Clark; Steven DeRose。W3C。1999年11月16日。W3C Recommendation。URL: https://www.w3.org/TR/xpath-10/

K.2 参考参照文献

[BBC-WHP051]
BBC R&D White Paper WHP 051. 音声解説: それは何か、どのように機能するか。N.E. Tanton、T. Ware および M. Armstrong。2002年10月(2004年7月改訂)。URL: https://www.bbc.co.uk/rd/publications/whitepaper051
[DAPT-REQS]
DAPT 要件。Cyril Concolato; Nigel Megitt。W3C。2025年5月12日。W3C Working Group Note。URL: https://www.w3.org/TR/dapt-reqs/
[I18N-INLINE-BIDI]
HTML におけるインラインマークアップと 双方向テキスト。W3C。2021-06-25。URL: https://www.w3.org/International/articles/inline-bidi-markup
[media-accessibility-reqs]
メディアアクセシビリティユーザー 要件。Shane McCarron; Michael Cooper; Mark Sadecki。W3C。2015年12月3日。 W3C Working Group Note。URL: https://www.w3.org/TR/media-accessibility-reqs/
[SSML]
Speech Synthesis Markup Language (SSML) Version 1.1。Daniel Burnett; Zhi Wei Shuang。W3C。2010年9月7日。W3C Recommendation。URL: https://www.w3.org/TR/speech-synthesis11/
[uml]
OMG Unified Modeling Language。Open Management Group。OMG。2015年3月1日。Normative。URL: http://www.omg.org/spec/UML/
[WCAG22]
Web Content Accessibility Guidelines (WCAG) 2.2。Michael Cooper; Andrew Kirkpatrick; Alastair Campbell; Rachael Bradley Montgomery; Charles Adams。W3C。2024年12月12日。W3C Recommendation。URL: https://www.w3.org/TR/WCAG22/
[webaudio]
Web Audio API 1.1。Paul Adenot; Hongchan Choi。W3C。2024年11月5日。FPWD。URL: https://www.w3.org/TR/webaudio-1.1/
[xml-id]
xml:id Version 1.0。Jonathan Marsh; Daniel Veillard; Norman Walsh。W3C。2005年9月9日。W3C Recommendation。URL: https://www.w3.org/TR/xml-id/