CyberLibrarian

【注意】 このドキュメントは、W3CのSpeech Synthesis Markup Language (SSML) Version 1.1 W3C Recommendation 7 September 2010の和訳です。
このドキュメントの正式版はW3Cのサイト上にある英語版であり、このドキュメントには翻訳に起因する誤りがありえます。誤訳、誤植などのご指摘は、訳者までお願い致します。

First Update: 2012年3月10日


W3C

音声合成マークアップ言語(SSML)バージョン1.1

W3C勧告 2010年9月7日

本バージョン:
http://www.w3.org/TR/2010/REC-speech-synthesis11-20100907/
最新バージョン:
http://www.w3.org/TR/speech-synthesis11/
旧バージョン:
http://www.w3.org/TR/2010/PR-speech-synthesis11-20100223/

編集者:
Daniel C. Burnett, Voxeo (formerly of Vocalocity and Nuance)
双志伟 (Zhi Wei Shuang), IBM
著者:
Paolo Baggia, Loquendo
Paul Bagshaw, France Telecom
Michael Bodell, Microsoft
黄德智 (De Zhi Huang), France Telecom
楼晓雁 (Lou Xiaoyan), Toshiba
Scott McGlashan, HP
陶建华 (Jianhua Tao), Chinese Academy of Sciences
严峻 (Yan Jun), iFLYTEK
胡方 (Hu Fang) (until 20 October 2009 while an Invited Expert)
康永国 (Yongguo Kang) (until 5 December 2007 while at Panasonic Corporation)
蒙美玲 (Helen Meng) (until 29 July 2009 while at Chinese University of Hong Kong)
王霞 (Wang Xia) (until 30 October 2006 while at Nokia)
夏海荣 (Xia Hairong) (until 2 August 2006 while at Panasonic Corporation)
吴志勇 (Zhiyong Wu) (until 29 July 2009 while at Chinese University of Hong Kong)

このドキュメントに対する正誤表を参照してください。いくつかの規範的な修正が含まれているかもしれません。

翻訳版も参照してください。


要約

音声読み上げブラウザ・ワーキンググループは、音声対話によるウェブへのアクセスを可能にする標準の開発に取り組んできました。音声合成マークアップ言語仕様は、この標準のひとつであり、ウェブやその他のアプリケーションにおける合成音声の作成を支援するために豊かなXMLベースのマークアップ言語を提供することを目指しています。このマークアップ言語の本質的な役割は、合成可能なコンテンツの作成者に、合成に対応した様々なプラットフォームにおいて、発音、音量、ピッチ、速度などの読み上げに関する様々な側面を制御するための標準的な方法を提供することです。

このドキュメントのステイタス

この項は、このドキュメントの公開時のステイタスについて記述しています。他のドキュメントがこのドキュメントに取って代わることがありえます。現行のW3Cの刊行物およびこの技術報告の最新の改訂版のリストは、http://www.w3.org/TR/のW3C技術報告インデックスにあります。

これは、「音声合成マークアップ言語(SSML)バージョン1.1」の勧告です。音声読み上げブラウザ・アクティビティの一部である音声読み上げブラウザ・ワーキンググループによって作成されました。

コメントはwww-voice@w3.orgアーカイブ)で歓迎されます。W3Cメーリング・リストおよびアーカイブ利用ガイドラインを参照してください。

SSML 1.1の設計は広くレビューされており(コメントの処理を参照)、ワーキンググループの技術要件を満たしています。実装のリストは、関連するテスト・スイートとともにSSML 1.1実装報告に含まれています。ワーキンググループは、コメントに応じて2010年2月23日の勧告案に少しの編集上の変更を行いました。勧告案の変更は付録Gにあります。また、SSML 1.0への下位互換性に関するノートを含むSSML 1.0の変更は、付録Fにあります。

このドキュメントは、より広い自然(人間の)言語の集合をサポートするためにSSML 1.0[SSML]を強化したものです。音声合成技術にとって大きなビジネス市場や新興市場である言語のサポートという点において、SSML 1.0の開発中には母国語を話す人々の参加も専門家の参加も限られていた、あるいは、参加がなかったために、SSMLに設計上の制限があるのであれば、どのような制限なのかを判断するために、W3Cは、SSMLの国際化に関する3つのワークショップを開催しました。中国の北京で2005年10月に開催された最初のワークショップ[WS]では、主に中国語、朝鮮語および日本語に注目し、ギリシャのクレタ島で2006年5月に開催された第2回[WS2]では、主にアラビア語、インドの言語および東欧諸語に注目しました。インドのハイデラーバードで2007年1月に開催した第3回のワークショップ[WS3]では、インドおよび中東の言語に大きく注目しました。これらのワークショップ中に収集された情報は、要件ドキュメント[REQS11]を開発するために利用しました。SSML 1.0の変更は、これらの要件が動機となっています。

このドキュメントは、W3Cメンバー、ソフトウェア開発者、他のW3Cグループ、および他の利害関係者によりレビューされ、W3C勧告として管理者の協賛を得ました。これは確定済みドキュメントであり、参考資料として用いたり、別のドキュメントで引用することができます。勧告の作成におけるW3C の役割は、仕様に注意を引き付け、広範囲な開発を促進することです。これによってウェブの機能性および相互運用性が増強されます。

このドキュメントは、2004年2月5日のW3C特許方針の下で活動しているグループによって作成されました。W3Cは、このグループの成果物に関連するあらゆる特許の開示の公開リストを維持し、このページには特許の開示に関する指示も含まれています。不可欠な請求権(Essential Claim(s))を含んでいると思われる特許に関して実際に知っている人は、W3C特許方針の6項に従って情報を開示しなければなりません。

このドキュメント本体の項は、特別の定めのない限り規範的です。特別に明示されていない限り、このドキュメントの付録は参考情報です。

目次

1. はじめに

このW3C仕様は、音声合成マークアップ言語仕様(SSML)として知られており、サン・マイクロシステムズ(米国カリフォルニア州)が所有するJSGFおよび/またはJSMLの仕様に基づいています。JSMLの仕様は、[JSML]にあります。

SSMLは、W3Cのオープンなプロセスにより開発された音声読み上げブラウザ用のより大きなマークアップ仕様集合の一部です。ウェブやその他のアプリケーションにおける合成音声の作成を支援するために豊かなXMLベースのマークアップ言語を提供することを目指しています。このマークアップ言語の本質的な役割は、合成可能なコンテンツの作成者に、合成に対応した様々なプラットフォームにおいて、発音、音量、ピッチ、速度などの音声出力に関する様々な側面を制御するための標準的な方法を提供することです。関連するテキスト入力の標準的なマークアップ方式を確立するための取り組みには[SABLE]があり、これは、様々なXMLベースの音声合成用マークアップを、一つの新たなマークアップに統合しようという試みです。SABLEで行われた取り組みは、音声マークアップ言語用音声合成マークアップ要件[REQS]の定義の主な出発点としても利用されました。それ以後、SABLE自身は、それ以上の開発を行っていません。

SSMLの使用目的は、合成されたコンテンツの質の改善です。マークアップ要素の違いは、合成処理の異なる局面に影響を及ぼします(1.2項を参照)。マークアップは、例えば、XHTMLドキュメントのXSLTやCSS3で自動的に作成するか、人手によるオーサリングで作成できます。マークアップは、完全なSSMLドキュメント(2.2.2項を参照)内に記述したり、別の言語に埋め込まれた部分的な断片(2.2.1項を参照)として記述したりすることができます。ただし、他の言語との相互作用をSSML自身の一部として規定することはできません。SSMLに含まれているマークアップの多くは、大半のコンテンツ開発者による利用に適していますが、音素韻律(例えば音声曲線設計用)のような一部の拡張機能には専門知識が必要かもしれません。

1.1 設計コンセプト

設計と標準化のプロセスは、音声マークアップ言語用音声合成マークアップ要件[REQS]から引き継ぎました。

主な設計上の基準は、次の事項でした。

1.2 音声合成処理のステップ

SSMLをサポートしたTTS(Text-To-Speech)システム(合成プロセッサ)は、ドキュメントを音声出力として再生し、マークアップに含まれている情報を用いて、作成者の意図したとおりにドキュメントを表現することに責任を負います。

ドキュメントの作成: 合成プロセッサに入力されるテキスト・ドキュメントは、自動的に、または、人手によるオーサリングによって、もしくは、これらの方式の組み合わせによって作成できます。SSMLは、ドキュメントの形式を定義しています。

ドキュメントの処理: 下記は、マークアップしたテキストの入力データを自動的に音声出力データに変換し作成するために合成プロセッサが実行する6つの主な処理ステップです。このマークアップ言語は、ドキュメントの作成者(人間またはマシン)が最終的な音声出力を制御できるように、下記の各ステップの制御を可能とするために、十分にリッチであることを目指しています。下記の各ステップは、「マークアップ」と「非マークアップ」に分けていますが、実際には、通常はこれら2つをミックスしたものであり、タグによって異なります。プロセッサは、作成するデータが発音可能である(かつ、理想的には、分かりやすい)ことを保証する最終的な権限を有しています。一般的に、マークアップは、著者が韻律やその他の情報(通常は、プロセッサが独自に取得できない情報)をプロセッサが利用できるようにする方法を提供します。その後の情報の採否や使用方法の判断は、プロセッサ次第です。

  1. XML解析: XMLパーザは、入力されたテキスト・ドキュメントからドキュメン・ツリーとコンテンツを抽出するために用います。このステップで得られる構造、タグ、属性は、次の各ステップに影響を及ぼします。

  2. 構造分析: ドキュメントの構造は、ドキュメントを読むべき方法に影響を及ぼします。例えば、段落や文に共通する読み上げパターンが存在したりします。

  3. テキストの正規化: すべての記述言語には、記述形式(表記形式)を会話形式に変換する必要がある特殊な要素があります。テキストの正規化とは、この変換を行なう合成プロセッサの自動処理です。例えば、英語の場合、ドキュメントに「$200」とあるとき、会話では「two hundred dollars」と読み上げられる可能性があります。同様に、「1/2」は、「half」、「January second」、「February first」などと読み上げられるかもしれません。このステップが終了するまでに、読み上げられるテキストは完全にトークンに変換されます。トークンが何で構成されるかの詳細は、言語によって異なります。英語では通常、トークンはスペースで区切られており、それは通常は単語です。トークン化の性質がこれとは異なる言語の場合、この仕様の「単語」という用語は、これに相当する単位を意味します。token要素とw要素内を除き、SSMLのトークンがアークアップ・タグに及ぶことはできません。英語での簡単な例は、「cup<break/>board」で、合成プロセッサは、token要素とw要素の記述の外では、これを、間に休止がある1つのトークン(単語)としてではなく、「cup」と「board」の2つのトークンとして扱うでしょう。この方法で1つのトークンを複数のトークンに分解すると、プロセッサがそれを扱う方法に恐らく影響するでしょう。

  4. テキストから音素への変換: 合成プロセッサがトークンを読み上げる場合には、トークンごとの発音を基にするはずです。発音は、便宜上、音素の列として表現され、これは、ある単語を別の単語と区別する機能を果たす単語の音の単位です。各言語(ある言語の異なる国の言葉や方言の場合もある)は、独自の音素を持っています。例えば、ほとんどのアメリカ英語方言には約45の音素があり、ハワイ語には12から18(誰に尋ねるかによる)、一部の言葉には100以上もあります! この変換は、多くの問題によって複雑になっています。問題のひとつは、言語の記述形式と会話形式に違いがあるということで、この違いによって、記述された単語の発音が確定できなかったり曖昧になる場合があります。例えば、ヘブライ語とアラビア語の単語は通常、その会話形式と比較して、母音が記述されなかったり、ほんの一部の母音が記述されるだけだったりします。多くの言語では、記述された一つの単語に多くの読み上げ方がありえます。例えば、英語の場合、「read」は「リード(reed)」(I will read the book)と読んだり、「レッド(red)」(I have read the book)と読んだりします。人間も合成プロセッサも、これらの単語を文脈に基づいて正確に発音できますが、文脈がない場合には困難なことがあります(下記の「非マークアップ」を参照)。もう一つの問題は、標準的でない綴りや発音を持つ単語の扱いです。例えば、英語の合成プロセッサは、「Caius College」(「keys college」と発音する)やTito(「sutto」と発音する)大統領、Kiribati(「kiribass」と発音する)共和国の大統領など、一部の英語由来でない名前の読み上げ方を決める際にしばしば苦労するでしょう。

  5. 韻律分析: 韻律は、ピッチ(イントネーションやメロディーとも呼ばれる)、タイミング(またはリズム)、休止、読み上げ速度、単語の強調やその他の多くの特性を含む音声出力特性の集合です。人間に近い韻律を作り出すことは、自然な読み上げ音声を生成したり、読み上げられた言葉の意味を正確に伝えるために重要です。

    SSMLのほとんどの要素は、読み上げ用のコンテンツか形式的な論理記述かのどちらかを提供するという点において、高レベルであると考えることができます。しかし、上記のbreak要素とprosody要素は、より後の処理で実行されるため、emphasis要素の使用との共存と、プロセッサ独自の韻律との共存の両方を行わなければなりません。しかるべき項で指定されていない場合には、プロセッサ独自の決定と、このレベルで著者が提供する記述との相互関係の詳細は、プロセッサによって異なります。作成者は、これらの2つのレベルの制御を偶然あるいは恣意的に組み合わせないようにしてください。

  6. 波形の作成: 合成プロセッサは、オーディオの波形を作成する際に、音素と韻律の情報を用います。この処理段階には多くのアプローチがあるため、プロセッサ独自のバリエーションがかなりありえます。

1.3 ドキュメントの作成、アプリケーションと文脈

合成プロセッサが読み上げるマークアップ・ドキュメントの作成者には様々な人がいます。ドキュメントの作成者(人間とマシンを含む)がすべて、すべての要素または前項で述べた各処理ステップで使用できる情報にアクセスできるとは限りません。下記は、一部の一般的な例です。

下記は、マークアップした合成ドキュメントを作成するアーキテクチャや設計の重要な実例です。この言語の設計は、これらの各アプローチの促進を目的としています。

1.4 SSMLコンテンツのプラットフォーム依存の出力

SSMLは、発音、音量、ピッチ、速度などの合成音声作成の全体的な特性を指定する標準的な方法を提供します。しかし、異なる種類のプロセッサにまたがる合成音声出力に関する厳密な仕様は、このドキュメントの範囲外です。

明示されていない場合には、マークアップの値は、絶対的な値ではなく単なる指示です。例えば、作成者はテキストの断片の時間を明示でき、さらにそのテキストの断片の部分集合の時間を明示すこともできます。この2つの時間によって、合成プロセッサが合理的に表現できないテキストの断片が生じる場合には、プロセッサは、そのテキストの断片の表現に必要な時間に変更することが認められています。

1.5 用語


必要条件に関する用語
このドキュメントの「しなければならない(MUST)」「してはならない(MUST NOT)」「必須である/要求される(REQUIRED)」「することになる(SHALL)」「することはない(SHALL NOT)」「すべきである/する必要がある(SHOULD)」「すべきでない/する必要がない(SHOULD NOT)」「推奨される(RECOMMENDED)」「することができる/してもよい(MAY)」「選択できる/任意である(OPTIONAL)」というキーワードは、[RFC2119]で記述されているように解釈されるべきです。ただし、この仕様では、読みやすさのために、これらの用語をすべて大文字で表しているとは限りません。

ユーザ・オプション
適合合成プロセッサは、記述されているとおりに動作してもよく(MAY)、または、動作しなければなりません(MUST)(文の法動詞に依存する)。実行時には、記述されている動作を有効または無効にする方法をユーザに提供しなければなりません(MUST)。

エラー
結果は未定義です。適合合成プロセッサは、エラーを検知して報告でき(MAY)、それを元に戻すことができます(MAY)。

メディア・タイプ
メディア・タイプ([RFC2045]および[RFC2046]で定義されている)は、リンクしている資源の性質を指定します。メディア・タイプは、大文字と小文字を区別しません。公認のメディア・タイプのリストをダウンロードできます[TYPES]。SSMLのメディア・タイプに関する情報については、付録Cを参照してください。

音声合成
プレーン・テキスト、マークアップされたテキスト、バイナリ・オブジェクトを含んでいる可能性のある入力データを基にした音声出力データの自動作成処理。

合成プロセッサ
SSMLドキュメントを入力データとして受け入れ、それを読み上げ出力データとして表現するText-To-Speechシステム。

Text-To-Speech
テキストまたは注釈付きテキストの入力データからの音声出力データの自動作成処理。

URI(Uniform Resource Identifier)
ウェブ環境におけるグローバルな識別子[WEB-ARCH]。XMLスキーマ パート2:データ型[SCHEMA2 3.2.17項]のとおり、URIは、任意の正当なanyURIプリミティブであると定義されています。参考までに、[RFC3986]と[RFC2732]は、構造、フォーマットやURIの使用について理解するのに役立つかもしれません。IRI([RFC3987]を参照)が上記のURIの定義の範囲内で認められていることに注意してください。相対URI参照は、3.1.3.1項で示している規則によって解決されなければなりません(MUST)。この仕様では、例えばaudio要素とlexicon要素の場合のように、URIを要素の属性として指示します。

音声読み上げブラウザ
(音声)マークアップ言語を解釈し、音声出力データを作成でき、かつ/または、音声入力データを解釈でき、可能であればその他の入出力の方式を解釈・作成できる装置。

2. SSMLドキュメント

2.1 ドキュメント形式

正当なスタンドアロンの音声合成マークアップ言語ドキュメントには、正当なXMLプロローグ[XML 1.0または必要に応じてXML 1.1 2.8項]がなければなりません(MUST)。

XMLプロローグの次にルートのspeak要素が来ます。この要素の詳細については、3.1.1項を参照してください。

speak要素では、SSML名前空間を指定しなければなりません(MUST)。これは、xmlns属性または接頭辞「xmlns」を持つ属性の宣言により達成できます。詳細は[XMLNS 1.0または必要に応じてXMLNS 1.1 2項]を参照してください。xmlns属性のみを用いた場合、それが出現する要素と子要素に対し、デフォルトの名前空間が設定されることに注意してください。SSMLの名前空間は、http://www.w3.org/2001/10/synthesisであると定義されています。

[SCHEMA1 2.6.3項]にあるxsi:schemaLocation属性を用いて、speak要素で適切なSSMLスキーマ(付録Dを参照)の位置も指し示すことを推奨します(RECOMMENDED)。この指示は必須ではありませんが、このドキュメントでは、これを促進するために、すべての例に対してそのような指示を行っています。この属性が付与されていない場合には、コア・プロファイル[2.2.5項]を前提としなければなりません(MUST)。

下記は、2つの正当なSSMLヘッダの例です。

<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xml:lang="en-US">

ルートのspeak要素内にその他のすべての要素やテキストを記述する前に、metametadatalexiconの要素を記述しなければなりません(MUST)。この仕様では、要素の順序に関し、その他の制約はありません。

2.2. 適合性

2.2.1 適合音声合成マークアップ言語断片

2.2.1.1 適合コア音声合成マークアップ言語断片

次の場合、ドキュメントの断片は適合コア音声合成マークアップ言語断片です。

2.2.1.2 適合拡張音声合成マークアップ言語断片

次の場合、ドキュメントの断片は適合拡張音声合成マークアップ言語断片です。

2.2.2 適合スタンドアロン音声合成マークアップ言語ドキュメント

2.2.2.1 適合スタンドアロン・コア音声合成マークアップ言語ドキュメント

次の両方の条件を満たす場合、ドキュメントは適合スタンドアロン・コア音声合成マークアップ言語ドキュメントです。

2.2.2.2 適合スタンドアロン拡張音声合成マークアップ言語ドキュメント

次の両方の条件を満たす場合、ドキュメントは適合スタンドアロン拡張音声合成マークアップ言語ドキュメントです。

SSMLの仕様やこれらの適合基準は、合成ドキュメントのいかなる側面に対してもサイズの制限を定めません。属性値の要素数、文字のデータ量、文字数に上限値はありません。

2.2.3 他の名前空間を持つSSMLの使用

合成名前空間は、XML勧告の適切な名前空間に従った他のXML名前空間(使用されているXMLのバージョンにより1.0[XMLNS 1.0]あるいは1.1[XMLNS 1.1])と共に使用することもできます(MAY)。W3Cによる取り組みにより、将来的には、複数の名前空間を含むドキュメントの適合性を指定する方法が出現するでしょう。言語固有(つまり、非SSML)の要素と属性は、適切な名前空間を用いて、SSMLに挿入できます。しかし、このようなコンテンツを表現できるのは、特製のマークアップをサポートした合成プロセッサのみでしょう。以下に、SSMLにルビ[RUBY]要素を挿入する方法の一例を示します。

<?xml version="1.0" encoding="UTF-8"?>
<speak version="1.1"
       xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xhtml="http://www.w3.org/1999/xhtml"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="ja">
  <!-- It's 20 July today. -->
  <s>今日は七月
    <xhtml:ruby>
      <xhtml:rb>二十日</xhtml:rb>
      <xhtml:rt role="alphabet:x-JEITA">ハツカ</xhtml:rt>
    </xhtml:ruby>
    です。
  </s>

  <!-- It's 20 July today. -->
  <s>今日は七月
    <xhtml:ruby>
      <xhtml:rb>二十日</xhtml:rb>
      <xhtml:rt role="alphabet:x-JEITA">ニジューニチ</xhtml:rt>
    </xhtml:ruby>
    です。
  </s>
</speak>

2.2.4 適合音声合成マークアップ言語プロセッサ

適合音声合成マークアップ言語プロセッサでは、XMLパーサは、XML 1.0[XML 1.0]、XML 1.1[[XML 1.1]および対応するXML(1.0[XMLNS 1.0]と1.1[XMLNS 1.1])の名前空間のバージョンで定義されているすべてのXML構成子を解析し処理できなければなりません(MUST)。このXMLパーサは、そのスキーマやDTDを用いてSSMLドキュメントの検証を行なう必要はありません。これは、SSMLドキュメントの処理中に、外部のDTDで定義されている外部エンティティー参照を適用または拡張するか否かは任意である(OPTIONAL)ことを示唆しています。

適合音声合成マークアップ言語プロセッサは、自然(人間の)言語を扱うために、次の要件を満たさなければなりません(MUST)。

音声合成マークアップ言語プロセッサの性能特性に関する適合要件はありません。例えば、プロセッサが作成する読み上げの正確さ、速度やその他の特性に関するステートメントは必須ではありません。音声合成マークアップ言語プロセッサがサポートしなければならない入力データのサイズに関するステートメントは作成されません。

2.2.4.1 適合コア音声合成マークアップ言語プロセッサ

コア音声合成マークアップ言語プロセッサは、適合スタンドアロン・コア音声合成マークアップ言語ドキュメントを解析し処理できる適合音声合成マークアップ言語プロセッサです。

適合コア音声合成マークアップ言語プロセッサは、コア・プロファイルの要素と属性のセマンティクスをこのドキュメントで記述しているとおりに正確に理解し適用しなければなりません(MUST)。

適合コア音声合成マークアップ言語プロセッサがコア・プロファイルに含まれている以外の要素や属性に遭遇した場合、次のとおりにすることができます(MAY)。

2.2.4.2 適合拡張音声合成マークアップ言語プロセッサ

拡張音声合成マークアップ言語プロセッサは、適合スタンドアロン拡張音声合成マークアップ言語ドキュメントを解析し処理できる適合音声合成マークアップ言語プロセッサです。

適合拡張音声合成マークアップ言語プロセッサは、拡張プロファイルの要素と属性のセマンティクスをこのドキュメントで記述しているとおりに正確に理解し適用しなければなりません(MUST)。

適合拡張音声合成マークアップ言語プロセッサが拡張プロファイルに含まれている以外の要素や属性に遭遇した場合、次のとおりにすることができます(MAY)。

2.2.5 プロファイル

SSMLプロファイルは、SSMLの要素と属性の集合です。このドキュメントには、定義済みのプロファイルが2つだけあります。

コア・プロファイル
コア・プロファイルは、audio要素のclipBeginclipEndrepeatCountrepeatDursoundLevelspeedの属性以外の、この仕様で定義されているすべての要素と属性で構成されます。
拡張プロファイル
拡張プロファイルは、この仕様で定義さているすべての要素と属性で構成されます。

2.2.6 適合ユーザ・エージェント

適合ユーザ・エージェントは、SSMLドキュメントを入力データとして受け入れ、著者が意図するとおりにドキュメントを表現するために、マークアップに含まれている情報を用いて読み上げ出力データを作成できる適合音声合成マークアップ言語プロセッサです。適合ユーザ・エージェントは、少なくとも1つの自然言語をサポートしなければなりません(MUST)。

出力データが、入力データに含まれているすべてのマークアップを正確に表現したものであることを保証することはできないため、正確さに関する適合要件はありません。しかし、適合テストでは、適合性を判断するために、参照ドキュメントの正確な合成の例をいくつか要求することができます(MAY)。

2.3 他のマークアップ言語との統合

2.3.1 SMIL

SMIL(Synchronized Multimedia Integration Language、「スマイル」と発音)[SMIL3]は、シンプルな対話型視聴覚表現のオーサリングを可能とします。一般的にSMILは、ストリーミングのオーディオやビデオを画像やテキスト、その他のメディア・タイプと統合させた「リッチ・メディア」/マルチメディアの表現に用いられます。SMILは、HTMLのように容易に学べる言語で、SMILによる表現の多くは、単純なテキスト・エディターで記述されます。付録EのSMIL/SSMLの統合例を参照してください。

2.3.2 ACSS

ACSS(Aural Cascading Style Sheets)[CSS2 19項]は、テキストをオーディオに合成する際に役立つ要素を加えることで、ドキュメント(HTMLのような)の標準的な視覚形式を強化するために用いられます。SSMLと比較して、ACSSで作成されるドキュメントは、音源の三次元位置の指定を含むより複雑なオーディオ・シーケンスの指定が可能です。他のACSS要素の多くは、特に音声の種類/質の仕様に関して、SSML機能性と重複しています。SSMLは、空間オーディオを除き、ACSSの性能上の上位集合と見なせます。

2.3.3 VoiceXML

VoiceXML(Voice Extensible Markup Language)[VXML]は、ウェブ・ベースの対話型音声応答アプリケーションの開発とコンテンツの提供を可能とします(音声読み上げブラウザを参照)。VoiceXMLは、音声合成、ディジタル化されたオーディオの録音・再生、音声認識、DTMF入力、テレフォニー・コール制御、フォームによる混合主導型対話をサポートしています。VoiceXML 2.0は、SSMLを拡張し、テキストのマークアップを合成できるようにします。VoiceXMLとSSMLとの統合の例に関しては、付録Fを参照してください。

2.4 SSMLドキュメントの取得

SSMLドキュメントの取得とキャッシングは、合成プロセッサが作動する環境によって規定されます。例えば、VoiceXMLインタープリターの環境では、キャッシング・ポリシーは、VoiceXMLインタープリターによって決まります。

3. 要素と属性

この仕様では、次の要素と属性を定義しています。

3.1 ドキュメント構造、テキスト処理と発音

3.1.1 speakルート要素

音声合成マークアップ言語は、XMLアプリケーションです。ルート要素はspeakです。

xml:langは、ルート・ドキュメントの言語を指定する必須の(REQUIRED)属性です。

xml:baseは、ルート・ドキュメントの基底URIを指定する任意の(OPTIONAL)属性です。

onlangfailureは、読み上げに失敗したときの望ましい挙動を指定する任意の(OPTIONAL)属性です。

version属性は、ドキュメントに用いる仕様のバージョンを示す必須の(REQUIRED)属性で、「1.1」という値でなければなりません(MUST)。

トリミング属性に関しては、以下の小項目で定めています。

合成プロセッサは、speak要素の実行前にデフォルトの音声を選択しなければなりません(MUST)。デフォルトの音声ではテキストの言語を読み上げられない場合には、最初のテキストに遭遇するとすぐに読み上げ失敗(3.1.13項を参照)が発生することに注意してください。もちろん、これは、テキストに遭遇する前に音声が変更されていないことが前提となります。

<?xml version="1.0"?>
<speak version="1.1"
       xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
  ... the body ...
</speak>

speak要素には、表示用テキストとaudiobreakemphasislanglexiconlookupmarkmetametadatapphonemeprosodysay-assubstokenvoicewの要素のみを含むことができます。

 

3.1.1.1 トリミング属性

トリミング属性は、ドキュメントの再生範囲を定義します。speakコンテンツ内の範囲の開始と終了は、両方ともマークを用いて指定できます。

speakには、次のトリミング属性が定義されています。

名前 必須 タイプ デフォルト値 説明
startmark false タイプ xsd:token [SCHEMA2 3.3.2項] なし 再生の開始を指定するために用いるマーク。
endmark false タイプ xsd:token [SCHEMA2 3.3.2項] なし 再生の終了を指定するために用いるマーク。

startmark属性とendmark属性で、mark要素のname属性で割り当てるのと同じようなマーカーを参照する名前を指定します。ドキュメントで一度定義されているマーカーのみ(つまり、ユニークであるもの)が、startmarkendmarkの値となりえます。ドキュメントの再生範囲の決定は、次のとおりに行われます。

startmarkまたはendmarkのいずれかに付与されている値がドキュメントにおいて有効なマークでない場合はエラーです。

トリミング属性が指定されていない場合、ドキュメントのすべてが再生されます。

<speak version="1.1"
       xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
   <audio src="first.wav"/>
   <mark name="mark1"/>
   <audio src="middle.wav"/>
   <mark name="mark2"/>
   <audio src="last.wav"/>
</speak>

この例では、「first.wav」、「middle.wav」、「last.wav」が再生され、「mark2」というマークが再生される最後のマークです。

startmarkは、指定したマークから再生を開始することを示すために使用できます。

<speak startmark="mark1" version="1.1"
       xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
   <audio src="first.wav"/>
   <mark name="mark1"/>
   <audio src="middle.wav"/>
   <mark name="mark2"/>
   <audio src="last.wav"/>
</speak>

「middle.wav」と「last.wav」は再生されますが、「first.wav」は、「mark1」というstartmarkの前にあるため、再生されません。

再生の終了は、endmarkを使用して指定できます。

<speak endmark="mark2" version="1.1"
       xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
   <audio src="first.wav"/>
   <mark name="mark1"/>
   <audio src="middle.wav"/>
   <mark name="mark2"/>
   <audio src="last.wav"/>
</speak>

この場合、「first.wav」と「middle.wav」は完全に再生されますが、「last.wav」は全く再生されません。

最後に、これらのトリミング属性を、再生の開始と終了の両方を制御するために使用できます。

<speak startmark="mark1" endmark="mark2"
     version="1.1"
       xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
   <audio src="first.wav"/>
   <mark name="mark1"/>
   <audio src="middle.wav"/>
   <mark name="mark2"/>
   <audio src="last.wav"/>
</speak>

この場合、「middle.wav」のみが再生されます。

 

3.1.2 言語: xml:lang属性

XML[XML 1.0または必要に応じてXML 1.1 2.12項]で定義されているとおり、xml:lang属性は、この属性が記述されている要素の記述内容の自然言語を示すためにSSMLで使用できます(MAY)。BCP47[BCP47]は、この属性の使用方法を理解する際に役立ちます。

言語情報は、ドキュメントの下位階層にまで継承されます。つまり、ドキュメント全体が1つの言語で記述されていれば、言語情報は一度だけ付与すれば良いです。また、言語情報は入れ子に記述されます。つまり、内側の属性の記述が外側の属性に優先します。

xml:langは、speaklangdescpstokenwの要素に対する定義済み属性です。

xml:langは、pstokenwにおいてのみ認められており、これは、これらのレベルで言語を変更することが一般的であるという理由によります。

合成プロセッサは、xml:lang属性の値を用いて、この属性が記述されている要素のコンテンツを最もうまく再生する方法を決定する際に役に立てるべきです(SHOULD)。読み上げ方が分からないテキストに遭遇した場合に、どうすべきかの決定は合成プロセッサの責任です(onlangfailure属性を参照)。この決定を行うために利用できる情報源の1つがxml:lang属性の値です。

合成プロセッサは、xml:lang属性の値でコンテンツの言語を判断することもでき、もちろんこれは、音声によるコンテンツの読み上げ方に影響します。例えば、「The French word for cat is <lang xml:lang="fr">chat</lang>, not chat.」(フランス語でcatは<lang xml:lang="fr">chat</lang>であり、chatではない。)。ドキュメントの作成者が新たな言語に適した新たな読み上げを必要とする場合には、voice要素により、合成プロセッサが新たな読み上げを選択することを明示的に求めることができます。読み上げの選択に関する詳細情報は、3.2.1項で記述しています。

テキスト正規化処理のステップは、記述されている言語の影響を受けるかもしれません。これは、say-asによるマークアップと非マークアップの両方に当てはまります。次の例では、「2/1/2000」という同じテキストが、最初の文ではアメリカ英語の発音規則に従って「February first two thousand」と読み上げられ、2番目の文ではイタリア語の前処理規則に従って「the second of January two thousand」と読み上げられるかもしれません。

<?xml version="1.0" encoding="ISO-8859-1"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
  <s>Today, 2/1/2000.</s>
  <!-- Today, February first two thousand -->
  <s xml:lang="it">Un mese fa, 2/1/2000.</s>
  <!-- Un mese fa, il due gennaio duemila -->
  <!-- One month ago, the second of January two thousand -->
</speak>

3.1.3 基底URI: xml:base属性

相対URIは、基底URIにより解決され、様々な情報源のものであることができます。著者は、基底URI宣言によりドキュメントの基底URIを明示的に指定できるようになります。相対URIの解決に関する詳細は、3.1.3.1項を参照してください。

基底URI宣言は、認められていますが、任意です(OPTIONAL)。これにより、次の2つの要素が影響を受けます。

audio
任意の(OPTIONAL)属性であるsrcで、相対URIを指定できます。
lexicon
uri属性で、相対URIを指定できます。

xml:base属性

基底URI宣言は、[XML-BASE]に従い、ルートのspeak要素内にxml:base属性で指定します。

<?xml version="1.0"?>
<speak version="1.1" xml:lang="en-US"
       xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:base="http://www.example.com/base-file-path">
<?xml version="1.0"?>
<speak version="1.1" xml:lang="en-US"
       xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:base="http://www.example.com/another-base-file-path">

3.1.3.1 相対URIの解決

ユーザ・エージェントは、[RFC3986]に従って基底URIの演算を行い、相対URIを解決しなければなりません(MUST)。下記は、RFC3986を合成ドキュメントに適用する方法について説明しています。

ユーザ・エージェントは、次の優先順序(上位から順に列挙)に従って基底URIの演算を行わなければなりません(MUST

  1. 基底URIを、speak要素のxml:base属性で設定する(3.1.3項を参照)。
  2. 基底URIを、HTTPヘッダのような、プロトコルの対話処理中に発見されるメタデータから取得する([RFC2616]を参照)。
  3. デフォルトでは、基底URIは現行ドキュメントになる。すべての合成ドキュメントに基底URIがあるとは限らない(例えば、有効な合成ドキュメントが電子メールに現われることがありえるが、URIが指定されていないかもしれない)。このようなドキュメントに相対URIが記述されている場合はエラーです。

3.1.4 識別子: xml:id属性

xml:id属性[XML-ID]は、SSMLにおいて、要素にドキュメント独自の識別子を付与するために使用でき(MAY)、これにより、その要素を他のドキュメントから参照可能になります。

xml:idは、lexiconpstokenwの要素に対する定義済み属性です。

3.1.5 辞書ドキュメント: lexicon要素とlookup要素

SSMLドキュメントは、複数の辞書(Lexicon)ドキュメントを参照できます(MAY)。辞書ドキュメントは、位置をURIで示し、任意の(OPTIONALメディア・タイプを有し、SSMLドキュメントにおいて固有の名前を割り当てられます。

3.1.5.1 lexicon要素

lexicon要素は、speak要素の直下の子要素としていくつでも置くことができます(MAY)。

lexicon要素には、辞書ドキュメントの位置を識別するURIを指定するuri属性がなければなりません(MUST)。

lexicon要素には、辞書ドキュメントに名前を割り当てるxml:id属性がなければなりません(MUST)。名前は、現行SSMLドキュメント内で一意でなければなりません(MUST)。この名前は、現行SSMLドキュメントを範囲とします。

lexicon要素には、辞書ドキュメントのメディア・タイプを指定するtype属性を記述できます(MAY)。type属性のデフォルト値はapplication/pls+xmlで、[RFC4267]で定義されている発音辞書仕様[PLS]ドキュメントに関連付けられたメディア・タイプです。

lexicon要素には、データ取得のタイムアウトを指定するfetchtimeout属性を記述できます(MAY)。その値は、時間指定です。デフォルト値は、プロセッサによって異なります。

lexicon要素には、指定された有効期限を超えないコンテンツをドキュメントで使用する意思があることを示すmaxage属性を記述できます(MAY)(HTTP 1.1[RFC2616]の「max-age」を参照)。値はxsd:nonNegativeInteger[SCHEMA2 3.3.20項]です。maxstaleが併記されていなければ、ドキュメントは期限を超えたコンテンツを使用しようとしません。

lexicon要素には、有効期限を超えたコンテンツをドキュメントで使用する意思があることを示すmaxstale属性を記述できます(MAY)(HTTP 1.1[RFC2616]の「max-stale」を参照)。値はxsd:nonNegativeInteger[SCHEMA2 3.3.20項]です。maxstaleに値が割り当てられている場合、ドキュメントは指定された時間だけ有効期限を超えたコンテンツを受け入れようとします。

lexicon要素は空要素です。

辞書ドキュメントを取得または解析する際にエラーが生じた場合は、合成プロセッサはそのエラーの発生についてホスティング環境に通知しなければなりません(MUST)。プロセッサは、非同期イベントで直ちにホスティング環境に通知できます(MAY)。または、プロセッサは、ログ記録システムを用いてエラーを通知できます(MAY)。可能であれば、プロセッサは、エラーに関する情報を含むべきです(SHOULD)。例えば、HTTP 404エラーにより辞書を取得できなかった場合には、そのエラー・コードを通知に含むことができるかもしれません。プロセッサは、通知後、空の有効な辞書を読み込んだかのように処理を継続しなければなりません(MUST)。

type属性の詳細

注: 以下の記述や表では、x-vnd.example.lexiconというタイプの架空のベンダー固有の辞書を使用します。これは、必要に応じて、あらゆるフォーマットが返されるまたは提供されることを意味します。

URI参照で指定されている辞書資源は、複数のメディア・タイプで利用可能でありえます。SSMLの作成者は、type属性により、望ましいメディア・タイプを指定できます。1つのURIで表わされるコンテンツが多くのデータ・フォーマットで利用可能な場合、合成プロセッサは、望ましいタイプを用いて複数のフォーマットのうちのどれを使用するかを制御できます(MAY)。例えば、HTTP内容交渉を実行するサーバでは、プロセッサは、そのタイプを用いて交渉の優先順序を指示できます。

配信に関しては、URI参照で指定されている資源を、2つのタイプの観点で検討できます。宣言されているメディア・タイプ(declared media type)は、資源が提示する値であり、実際のメディア・タイプ(actual media type)は、そのコンテンツの本当のフォーマットです。実際のタイプは、宣言されているタイプと同じであるべきですが、必ずしもそうとは限りません(例えば、設定が正しくないHTTPサーバは、ベンダー固有のx-vnd.example.lexiconフォーマットに従ったドキュメントに対しtext/plainを返すかもしれない)。特定のURIスキームは、資源の所有者が、メディア・タイプを常に返す、時々返す、あるいは決して返さないことを要求できます。タイプが返された場合には、常にそれが正式なものとして扱われます。宣言されているメディア・タイプは、資源の所有者が返した値で決まるか、何も返されない場合には、SSMLドキュメントに記述されている望ましいメディア・タイプによって決まります。

3つの特殊なケースが発生しえます。プロセッサが宣言されているタイプをサポートしていない場合はエラーです。宣言されているタイプをサポートしているものの、実際のタイプとは一致していない場合もエラーです。最後に、メディア・タイプが宣言されていない場合、その挙動は、合成プロセッサの特定のURIスキームと性能に依存します。例えば、HTTP 1.1では、ドキュメントの検査が可能で([RFC2616 7.2.1項]を参照)、データ・スキームはデフォルトのメディア・タイプに戻り、ローカル・ファイル・アクセスはガイドラインを定義しません。次の表で、いくつかの参考となる例を挙げています。

メディア・タイプの例
HTTP 1.1リクエスト
ローカル・ファイル・アクセス
資源の所有者が返すメディア・タイプ text/plain x-vnd.example.lexicon <なし> <なし>
SSMLドキュメントの望ましいメディア・タイプ 該当しない。返されるタイプが正式なもの。 x-vnd.example.lexicon application/pls+xml
宣言されているメディア・タイプ text/plain x-vnd.example.lexicon x-vnd.example.lexicon <なし>
x-vnd.example.lexiconの実際のメディア・タイプに対する挙動 これは、text/plainとして処理されなければならない(MUST)。text/plainがサポートされていない場合や想定されているフォーマットをドキュメントがフォローできない場合は、エラーとなるだろう。 宣言されているタイプと実際のタイプが一致。合成プロセッサがx-vnd.example.lexiconをサポートしている場合は成功、そうでなければエラー スキームによる。合成プロセッサは、ドキュメントの検査を行い、タイプを決定するかもしれない。

3.1.5.2 lookup要素

lookup要素にはref属性がなければなりません(MUST)。ref属性は、辞書ドキュメントを参照する名前を、lexicon要素のxml:id属性で割り当てられているとおりに指定します。

参照する辞書ドキュメントには、表示用テキストとして表示されるトークンに関する情報(例えば、発音)が含まれていることがあります。PLS辞書ドキュメントの場合、合成プロセッサは、lookup要素のコンテキスト内にトークンを表示するときに、PLSドキュメントに含まれている情報を使用しなければなりません(MUST)。非PLS辞書ドキュメントの場合、合成プロセッサは、lookup要素のコンテンツ内にトークンを表示するときに、その辞書ドキュメントに含まれている情報を使用すべきです(SHOULD)。ただし、SSMLドキュメントの内容と互換性がないと見なされる場合には、プロセッサは情報を使用しないことを選択することもできます(MAY)。例えば、ベンダー固有の辞書を、say-as要素のinterpret-asの特定の値や特定の音声にのみ用いることもできます。SSMLのコンテンツが非PLS辞書を参照するときには、ベンダーは、合成プロセッサに求める挙動を記録すべきです(SHOULD)。

lookup要素には別のlookup要素を含むことができます(MAY)。lookup要素が別のlookup要素を含んでいる場合には、子要素のlookupの方が優先度が高いです。優先度とは、優先度が最も高い辞書で最初にトークンを調べるということを意味します。その辞書でトークンが見つからない場合にのみ、次の優先度の辞書で調べるというように、トークンが見つかるか、すべての辞書を調べ尽くすまで行います。合成プロセッサは、複数のシステム辞書を既に内蔵していると想定され、これらは、lexiconlookupの要素を用いて指定される辞書より優先度が低いものとして扱われます。少なくとも1つのlookup要素の範囲内にトークンがない場合、そのトークンは、内蔵のシステム辞書でのみ調べることができることに注意してください。

lookup要素には、表示用テキストとaudiobreakemphasislanglookupmarkpphonemeprosodysay-assubstokenvoicewの要素のみを含むことができます。

 

<?xml version="1.0"?>
<speak version="1.1"
       xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">

  <lexicon uri="http://www.example.com/lexicon.pls"
           xml:id="pls"/>
  <lexicon uri="http://www.example.com/strange-words.file"
           xml:id="sw"
           type="media-type"/>
  <lookup ref="pls">
    tokens here are looked up in lexicon.pls
    <lookup ref="sw">
      tokens here are looked up first in strange-words.file and then, if not found, in lexicon.pls
    </lookup>
    tokens here are looked up in lexicon.pls
  </lookup>
  tokens here are not looked up in lexicon documents
  ...
</speak>
  

3.1.6 meta要素

metadata要素とmeta要素は、ドキュメントに関する情報を置くことができるコンテナです。metadata要素は、メタデータ・スキーマを用いて、metaよりも汎用的でより強力なメタデータ情報の処理が可能になります。

meta宣言は、宣言されたmetaプロパティーに文字列を関連付けるか、「http-equiv」のcontentを宣言します。name属性かhttp-equiv属性のいずれかが必須です(REQUIRED)。name属性とhttp-equiv属性の両方を提供するのはエラーです。content属性は必須です(REQUIRED)。seeAlsoプロパティーは、唯一の定義済みのmeta用プロパティー名です。これは、コンテンツに関する付加的なメタデータ情報を提供する資源を指定するために用いられます。このプロパティーは、RDF(Resource Description Framework)スキーマ仕様1.0[RDF-SCHEMA 5.4.1項]のseeAlsoプロパティーでモデル化されています。http-equiv属性は、HTTPでドキュメントを検索する場合に特に重要となります。推奨されるHTTPヘッダ情報の提供方法は、HTTPヘッダ・フィールドを用いるというものですが、SSMLドキュメントの作成者が、HTTPヘッダ・フィールドの設定により元サーバにあるドキュメントに関連付けることができないような場合には(例えば、キャッシュ制御情報)、「http-equiv」のcontentを使用できます(MAY)。HTTPサーバとキャッシュがSSMLドキュメントのmetaの内容を検査する必要はなく、したがって、それ以外の場合にHTTPサーバとキャッシュが送信するヘッダの値を無効にすることに注意してください。

参考情報: 次の例は、SSMLドキュメントにmeta要素を記述することで、付加的なメタデータ情報を提供する資源を指定しつつ、ドキュメントのキャッシュが禁止されていることを示す方法の例です。

<?xml version="1.0"?>
<speak version="1.1"
      xmlns="http://www.w3.org/2001/10/synthesis"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
      xml:lang="en-US">

  <meta name="seeAlso" content="http://example.com/my-ssml-metadata.xml"/>
  <meta http-equiv="Cache-Control" content="no-cache"/>
</speak>

meta要素は空要素です。

3.1.7 metadata要素

metadata要素は、メタデータ・スキーマを用いてドキュメントに関する情報を置くことができるコンテナです。metadataは、どのメタデータ・スキーマとも一緒に使用できますが、RDFのXMLシンタックス[RDF-XMLSYNTAX]を、Dublin Core Metadata Initiative[DC]が定義している汎用的なメタデータ・プロパティーと併せて使用することを推奨します(RECOMMENDED)。

RDF[RDF]は、宣言型言語であり、ウェブ上の事物のプロパティーと関係について、ステートメントの形でメタデータを表わすためにXMLを用いる標準的な方法を提供します。コンテンツの作成者は、ドキュメントで使用するメタデータRDFスキーマを決定する際に、W3Cのメタデータの勧告である[RDF-XMLSYNTAX]と[RDF-SCHEMA]を参照すべきです。コンテンツの作成者は、Dublin Core Metadata Initiative[DC]も参照すべきです。これは、一般に適用できるコア・メタデータ・プロパティーの集合(例えば、Title(タイトル)、Creator(作成者)、Subject(主題)、Description(内容記述)、Rights(権利関係)など)です。

metadata要素で宣言したドキュメントのプロパティーは、あらゆるメタデータ・スキーマを使用できます。

参考情報: 次の例は、タイトル、内容記述、日付などの一般的なドキュメント情報を記述するダブリン・コア・バージョン1.0 RDFスキーマ[DC]を用いて、SSMLドキュメントにmetadataを記述する方法の例です。

<?xml version="1.0"?>
<speak version="1.1"
       xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
    
  <metadata>
   <rdf:RDF
       xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
       xmlns:rdfs = "http://www.w3.org/2000/01/rdf-schema#"
       xmlns:dc = "http://purl.org/dc/elements/1.1/">

   <!-- Metadata about the synthesis document -->
   <rdf:Description rdf:about="http://www.example.com/meta.ssml"
       dc:title="Hamlet-like Soliloquy"
       dc:description="Aldine's Soliloquy in the style of Hamlet"
       dc:publisher="W3C"
       dc:language="en-US"
       dc:date="2002-11-29"
       dc:rights="Copyright 2002 Aldine Turnbet"
       dc:format="application/ssml+xml" >                
       <dc:creator>
          <rdf:Seq ID="CreatorsAlphabeticalBySurname">
             <rdf:li>William Shakespeare</rdf:li>
             <rdf:li>Aldine Turnbet</rdf:li>
          </rdf:Seq>
       </dc:creator>   </rdf:Description>
  </rdf:RDF>
 </metadata>

</speak>

合成プロセッサはコンテンツを全く表示しないものの、metadata要素には任意のコンテンツを記述できます。

3.1.8 テキスト構造

3.1.8.1 p要素とs要素

p要素は段落を表わします。s要素は文を表わします。

xml:langxml:idおよびonlangfailureは、p要素とs要素の定義済み属性です。

<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
  <p>
    <s>This is the first sentence of the paragraph.</s>
    <s>Here's another sentence.</s>
  </p>
</speak>

p要素とs要素の使用は任意(OPTIONAL)です。テキストがp要素やs要素で囲み込まずに記述されている場合には、合成プロセッサは、プレーン・テキストのフォーマットに関する言語固有の知識を用いて、構造を決定しようと試みるべきです(SHOULD)。

p要素には、表示用テキストとaudiobreakemphasislanglookupmarkphonemeprosodysay-assubstoken, voicewの要素のみを含むことができます。

s要素には、表示用テキストとaudiobreakemphasislanglookupmarkphonemeprosodysay-assubtokenvoicewの要素のみを含むことができます。

3.1.8.2 token要素とw要素

token要素により、作成者はコンテンツがトークンであることを示し、合成プロセッサのトークン(単語)の区切りの曖昧さを取り除くことができます。

token要素は、次の言語を表現するために必要です。

この要素を使用すると、韻律を制御するためのキュー(例えば、休止)が改善される場合があり、合成プロセッサが同形異義語を正確に発音できるようになる可能性があります。breakmarkprosodyなどのその他の要素は、token内に記述でき、これによって、下位トークンのレベルでの注釈(例えば、音節、モーラや対象言語において適切なあらゆる単位)が可能となります。合成プロセッサは、この注釈を解析しなければならず(REQUIRED)、可能な場合にはこの注釈を表示してもよいです(MAY)。

トークン要素とその下位要素のテキストは、ともに、辞書の検索を目的とした次のようなトークンの1つであると考えられます。

  1. トークン要素内のマークアップをすべて削除する(マークアップしたコンテンツは残して)。
  2. 残りのすべてのテキストをドキュメントで出現する順に連結する。
  3. この1ブロックのテキストから先頭と末尾のスペースを削除する。
  4. 連続する複数のスペースを1つのスペースに変換する。
  5. その結果を、辞書の検索を目的とした1つのトークンとして扱う。

したがって、「<token><emphasis>hap</emphasis>py</token>」と「<token><emphasis> hap </emphasis> py</token>」は、それぞれ「happy」と「hap py」というトークンになります。これが、token要素の外側にあるテキストやマークアップの処理方法とは異なることに注意してください(1.2項の「テキストの正規化」を参照)。

token要素の使用は任意です(OPTIONAL)。テキストがtoken要素で囲み込まずに記述されている場合には、合成プロセッサは、プレーン・テキストのフォーマットに関する言語固有の知識を用いて、トークンの区切りを決定しようと試みるべきです(SHOULD)。

xml:langは、コンテンツの記述言語を識別するためのtoken要素の定義済み属性です。

xml:idは、token要素の定義済み属性です。

onlangfailureは、言語の読み上げに失敗したときの望ましい挙動を指定する任意の(OPTIONAL)属性です。

role属性は、token要素の任意の(OPTIONAL)定義済み属性です。role属性は、複数のスペースで区切られたQNameを値としてとります(XML(使用するXMLのバージョンに応じて、1.0[XMLNS 1.0]または1.1[XMLNS 1.1])の名前空間の4項で定義されているとおり)。属性コンテンツ内のQNameは、それを含んでいるtoken要素が範囲としている名前空間宣言を用いることで、拡張名に拡張されます。したがって、QNameはそれぞれ、指定した名前空間内の特定の項目への参照を提供します。下記の2番目の例では、role属性内のQNameを拡張すると、「http://www.example.com/claws7tags」という名前空間内の「VV0」という項目になります。このメカニズムにより、単語クラスの定義済み分類を、指定した名前空間URIで記述されているという想定で、参照できるようになります。

role属性は、例えば、外部辞書内に記述されているテキストに対し、最も適切な発音の選択に役立つ追加情報を記述するなど、他の仕様との同期に役に立つことを目指しています(辞書ドキュメントを参照)。

token要素には、表示用テキストとaudiobreakemphasismarkphonemeprosodysay-assubの要素のみを含むことができます。

token要素には、audioemphasislanglookupprosodyspeakpsvoiceの要素のみを含むことができます。

w要素は、token要素の別名です。

下記は、token要素の使用例を示しています。

<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="zh-CN">

  <!-- The Nanjing Changjiang River Bridge -->
  <token>南京市</token><token>长江大桥</token>
  <!-- The mayor of Nanjing city, Jiang Daqiao -->
  南京市长<w>江大桥</w>
  <!-- Shanghai is a metropolis -->
  上海是个<w>大都会</w>
  <!-- Most Shanghainese will say something like that -->
  上海人<w>大都</w>会那么说
</speak>

下記は、role属性の使用例を示しています。下記の最初のドキュメントは、中国語の「处」という単語に対する辞書(PLS)の例です。2番目の例は、この辞書を参照して中国語の「处」という単語の適切な発音を選択するために、role属性を使用する方法を示しています。

<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0"
         xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
         xmlns:claws="http://www.example.com/claws7tags"
         alphabet="x-myorganization-pinyin"
         xml:lang="zh-CN">
  <lexeme role="claws:VV0">
    <!-- base form of lexical verb -->
    <grapheme>处</grapheme>
    <phoneme>chu3</phoneme>
    <!-- pinyin string is: "chǔ" in 处罚 处置 -->
  </lexeme>
  <lexeme role="claws:NN">
    <!-- common noun, neutral for number -->
    <grapheme>处</grapheme>
    <phoneme>chu4</phoneme>
    <!-- pinyin string is: "chù" in 处所 妙处 -->
  </lexeme>
</lexicon>

 

<?xml version="1.0" encoding="UTF-8"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                           http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xmlns:claws="http://www.example.com/claws7tags"
       xml:lang="zh-CN">
  <lexicon uri="http://www.example.com/lexicon.pls"
           type="application/pls+xml"
           xml:id="mylex"/>
  <lookup ref="mylex">
    他这个人很不好相<w role="claws:VV0">处</w>。
    此<w role="claws:NN">处</w>不准照相。
  </lookup>
</speak>  

3.1.9 say-as要素

say-as要素により、著者が、要素内に記述されているテキスト構成子の種類に関する情報を示すことが可能になり、記述されているテキスト表示の詳細さのレベルを指定するのに役立ちます。

テキスト・フォーマットの種類に関する包括的な定義は、検討しなければならない言語が多様であり、記述言語が本質的に柔軟であるため、困難です。SSMLでは、say-as要素とその属性、その目的のみを定めています。SSMLでは、属性となりえる値を挙げていません。ワーキンググループでは、これらの標準的な値や、関連する規範的な挙動を定義したドキュメントを別途作成する予定です。ここの例は、要素や属性の目的を説明するためだけに示しています。

say-as要素には、interpret-asformatdetailの3つの属性があります。interpret-as属性は、常に必須で(REQUIRED)、他の2つの属性は任意です(OPTIONAL)。format属性の正当な値は、interpret-as属性の値に依存します。

say-as要素には、表示用テキストのみを含むことができます。

interpret-as属性とformat属性

interpret-as属性は、記述されているテキスト構成子のコンテンツの種類を示します。コンテンツの種類の指定は、意図されている情報の種類によって表示方法が異なる可能性のあるテキストの構成子を合成プロセッサが識別し解釈するのに役立ちます。さらに、任意の(OPTIONALformat属性は、曖昧なフォーマットでありえるコンテンツの種類に関し、記述されているテキストの正確なフォーマットに関するヒントを与えてくれます。

interpret-asformatの値が指定されているときには、合成プロセッサは、これらを、テキストの正規化と発音を支援するためにマークアップ・ドキュメントの作成者が提供するヒントと解釈します。

いかなる場合でも、say-as要素で囲み込まれているテキストは、現行本文中の言語の標準的で正しいつづりの形式であることを意図して作られています。合成プロセッサは、サポートするすべてのコンテンツの種類に対し、指定された言語の共通の正しいつづりの形式をサポートできるべきです(SHOULD)。

interpret-as属性の値がプロセッサにとって不明またはサポートされていないときには、記述されているテキストは、interpret-asの値が指定されていないかのように表示されなければなりません(MUST)。

format属性の値がプロセッサにとって不明またはサポートされていないときには、記述されているテキストは、formatの値が指定されていないかのように表示されなければならず(MUST)、指定されているinterpret-asの値を用いて表示されるべきです(SHOULD)。

指示されているformatinterpret-asといった種類のコンテンツとは別にsay-as要素のコンテンツに付加的なテキストが含まれているときには、そのテキストが表示されなければなりません(MUST)。プロセッサは、付加的なテキストを、それが出現する要素のinterpret-asの種類に応じて表示できます(MAY)。
指示されているinterpret-asformatといった種類のコンテンツがsay-as要素のコンテンツに含まれていないときには、プロセッサは、format属性かinterpret-as属性のいずれかが存在していないのかのように、またはformatinterpret-asの属性のどちらもが存在していないかのようにコンテンツを表示しなければなりません(MUST)。プロセッサは、不一致の状況についても通知すべきです(SHOULD)。

コンテンツの種類やフォーマットの指示は、情報の発音方法には必ずしも影響しません。合成プロセッサは、記述されているテキストを、そのコンテンツがその言語で通常発音されている方法で発音すべきです(SHOULD)。

detail属性

detail属性は、読み上げまたは表示の詳細さのレベルを示す任意の(OPTIONAL)属性です。detail属性のすべての値は、記述されているテキスト内にある情報コンテンツをすべて表示しなければなりません(MUST)。しかし、detail属性の特定の値は、通常はテキスト本文において情報コンテンツではないけれども、特定の目的で表示するのが重要でありえるコンテンツを表示するために使用できます。例えば、合成プロセッサは、通常は、韻律を適切に変更して記号類を表現するでしょう。例えば、コード化された部品番号やソフトウェア・コードを読み上げる場合に、より高い詳細レベルの設定を用いて、記号類を明確に読み上げることができます。

detail属性は、すべての種類のinterpret-asに使用できます。

detail属性が指定されていない場合は、合成プロセッサが作成する詳細さのレベルはテキストのコンテンツとその言語に依存します。

detail属性の値がプロセッサにとって不明またはサポートされていないときには、記述されているテキストは、detail属性の値が指定されていないかのように表示されなければなりません(MUST)。

3.1.10 phoneme要素

phoneme要素は、記述されているテキストに音素/音声上の発音を付与します。phoneme要素は、空でもよいです(MAY)。しかし、読み上げないドキュメント表現に使用できる、人間が読むことができるテキストを要素に含むことを推奨します(RECOMMENDED)。例えば、聴覚障害があるユーザのために、コンテンツを視覚的に表示できるかもしれません。

ph属性は、音素/音声の文字列を指定する必須の(REQUIRED)属性です。

この要素は、音素および音声の表記専用に設計されており、単語や非常に短い語句に発音を付与するために用いることを目的としています。音素/音声の文字列は、テキストの正規化が行われず、辞書(3.1.5項を参照)を調べるためのトークンとして扱われることもありませんが、say-assub内の値は、これらをの両方を行うことができます。簡潔に言えば、音素の列は、言語において言語学上の大きな違いが顕著な、言語に依存した音声単位である音素で構成されます。大まかに言えば、音素は、ある言語において、ある単語と別の単語を区別するために必要なすべての音を表わします。他方で、音声の列は、方法(息を吐き出す、舌打ちをする、発声するなど)および人間の声道内の発音の場所(前、中間、後ろなど)を特徴とする音の単位である音声で構成され、したがって、言語に依存しません。音声とは、人間が言語を産出する際に具現化される特質を表わします。

alphabet属性は、音素/音声の発音文字を指定する任意の(OPTIONAL)属性です。この場合の発音文字とは、複数の人間の言葉の発音を表わすための記号の集合を意味します。この属性に有効な値は、発音文字レジストリ(Pronunciation Alphabet Registry)で定義されている値である「ipa」(次の段落を参照)および「x-organization」や「x-organization-alphabet」の形式のベンダー固有の文字列のみです。例えば、電子情報技術産業協会[JEITA]は、自身の音素文字[JEIDAALPHABET]に対し「x-JEITA」や「x-JEITA-IT-4002」のような文字の使用を促進したいと思うかもしれません。

合成プロセッサは、「ipa」(国際音声学会[IPA]が開発したUnicodeによる音声文字の表現)のalphabetの値をサポートすべきです(SHOULD)。この文字集合は、母音と子音の包括的な記号に加えて、音節区切り記号、多数の発音区別記号、強調記号、語彙声調記号、イントネーション標識などをサポートしています。この文字では、正当なphの値は[IPAHNDBK]の付録2で指定されている値の文字列です。IPA転写では、読みやすさのためにスペース(発音には影響しない)を記述できることに注意してください。IPAからUnicodeへのマッピングの参考情報の表は、[IPAUNICODE1]と[IPAUNICODE2]にあります。すべてのIPA文字がUnicodeで利用できるとは限らないことに注意してください。この文字をサポートしているプロセッサの場合、

<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
  <phoneme alphabet="ipa" ph="t&#x259;mei&#x325;&#x27E;ou&#x325;"> tomato </phoneme>
  <!-- This is an example of IPA using character entities -->
  <!-- Because many platform/browser/text editor combinations do not
       correctly cut and paste Unicode text, this example uses the entity
       escape versions of the IPA characters.  Normally, one would directly
       use the UTF-8 representation of these symbols: "təmei̥ɾou̥". -->
</speak>

alphabetの値が、合成プロセッサにとって不明または適用できないと規定されている場合はエラーです。alphabet属性が規定されていないままである場合のデフォルトの挙動は、プロセッサによって異なります。

type属性は、発音情報の解釈方法に関する付加的な情報を示す任意の属性です。この属性に認められていない値は、含意を持たない「default」と、ルビのテキスト[RUBY]から発音情報を得られることを示す「ruby」のみです。この属性のデフォルト値は「default」です。

phoneme要素自身には、テキストのみを含むことができます(要素は不可)。

3.1.10.1 発音文字レジストリ

発音文字レジストリ(Pronunciation Alphabet Registry)へのリンクは、http://www.w3.org/2001/10/synthesisのSSML名前空間のページにあります。

3.1.11 sub要素

sub要素は、alias属性の値のテキストが、記述されている発音用のテキストに置き換えられることを示すために用います。これにより、ドキュメントに記述形式と会話形式の両方を含むことが可能になります。必須の(REQUIREDalias属性では、囲み込んだ文字列の代わりに、読み上げ用の文字列を指定します。プロセッサは、aliasの値にテキスト正規化を適用すべきです(SHOULD)。

sub要素には、テキストのみを含むことができます(要素は不可)。

<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
  <sub alias="World Wide Web Consortium">W3C</sub>
  <!-- World Wide Web Consortium -->
</speak>

3.1.12 lang要素

lang要素は、コンテンツの自然言語を指定するために用います。

xml:langは、ルート・ドキュメントの言語を指定する必須の(REQUIRED)属性です。

onlangfailureは、言語の読み上げに失敗したときの望ましい挙動を定める任意の(OPTIONAL)属性です。

この要素は、自然言語に変更がある場合に使用できます(MAY)。テキストの構造は、lang要素で示される言語の変更とは関係ありません。段落、文、単語以外のレベルのコンテンツの言語を定めるために使用できます(MAY)。言語の変更が、テキストの構造と関連している場合には、pstokenまたはwの各要素にxml:lang属性を用いることを推奨します(RECOMMENDED)。

<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
  The French word for cat is <w xml:lang="fr">chat</w>.
  He prefers to eat pasta that is <lang xml:lang="it">al dente</lang>.
</speak>

lang要素には、表示用テキストとaudiobreakemphasislanglookupmarkpphonemeprosodysay-assubstokenvoicewの要素のみを含むことができます。

3.1.13 言語読み上げ失敗: onlangfailure属性

onlangfailure属性は、言語の読み上げに失敗したときの合成プロセッサの望ましい挙動を列挙した次のリストのうちの1つの値を含んでいる任意の(OPTIONAL)属性です。適合合成プロセッサは、下記の処理の実行に加えて、言語の読み上げに失敗したことを報告しなければなりません(MUST)。

現在選択されている音声(3.2.1項を参照)では宣言されているテキストの言語を読み上げることができないと合成プロセッサが判断した場合には、常に言語の読み上げに失敗します。合成プロセッサが、新しいxml:langの値や、どのように音声を処理するか分からないような文字や文字列に遭遇した場合には、これが起こりえます。

この属性の値は、ドキュメントの下位階層にまで継承されます。つまり、ドキュメント全体の望ましい挙動が同じであれば、値は一度だけ付与すれば良いです。また、この値の設定は入れ子に記述されます。つまり、内側の属性の記述が外側の属性に優先します。この属性の最上位のデフォルト値は「processorchoice」です。SSMLの断片を埋め込んでいる他の言語(speak要素なしに)は、この属性に対する最上位のデフォルト値を宣言しなければなりません(MUST)。

onlangfailureは、xml:langを記述できるすべての要素に記述できます。したがって、これは、speaklangdescp, stokenwの要素の定義済み属性です。

3.2 韻律とスタイル

3.2.1 voice要素

voice(音声)要素は、読み上げ音声の変更を要求する生成要素です。音声要素の属性には、望ましい音声の機能を示すものと、その挙動を制御するものの2種類があります。音声機能の属性は次のとおりです。

上記の機能属性では、空の文字列の値は、あらゆる音声が機能を満たすことを示します。すべての機能属性に対する最上位のデフォルト値は「」(空の文字列)です。

voiceの挙動制御属性は、次のとおりです。

次の音声選択アルゴリズムを用いなければなりません(MUST)。

  1. required属性値に挙げられているすべての音声機能属性の値と一致するすべての利用可能な音声が識別されます。required属性の値が空の文字列「」であれば、すべての音声がうまく一致すると見なされます。複数の音声が識別されれば選択は成功と考えられます。そうでない場合には、音声の選択は失敗です。
  2. 成功した選択が1つの音声のみを識別する場合、合成プロセッサはその音声を用いなければなりません(MUST)。
  3. 成功した選択が複数の音声を識別する場合、残りの機能(required属性値に列挙されていないもの)を用いて、機能優先度にしたがって音声を選択します。その場合、最初の候補集合は、識別されたすべての音声の集合です。
  4. 音声の選択が失敗すれば、適合合成プロセッサは、onvoicefailure属性の値で表されている処理の実行に加えて、音声の選択に失敗したことを報告しなければなりません(MUST)。
  5. 機能優先度にしたがって音声を選択するため、各機能は、ordering属性で管理しているとおりに、優先度が最も高い機能から順に取り込まれます。
  6. orderingのリストのすべての機能属性を検討した後に、候補集合に複数の音声が残る場合には、合成プロセッサは、それらのうちのどれか1つを使用しなければなりません(MUST)。

各属性はそれぞれ任意ですが、voice要素が用いられているにも関わらず、属性が全く指定されていなければエラーです。

<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">   
  <voice gender="female" languages="en-US" required="languages gender variant">Mary had a little lamb,</voice>
  <!-- now request a different female child's voice -->
  <voice gender="female" variant="2">
  Its fleece was white as snow.
  </voice>
  <!-- processor-specific voice selection -->
  <voice name="Mike" required="name">I want to be like Mike.</voice>
</speak>

音声の記述

合成プロセッサで利用できるようになったすべての音声に関し、音声のベンダーは、下記のドキュメントを作成しなければなりません。

言語の表示(xml:langによる)と音声の選択(voiceによる)は独立していますが、これら2つの値のあらゆる組み合わせを合成プロセッサがサポートするという要件はありません。しかし、合成プロセッサは、あらゆる組み合わせに予期される表示の挙動をドキュメント化しなければなりません(MUST)。音声で読み上げることができないテキストのコンテンツにプロセッサが遭遇したときに何が起こるかに関する情報については、onlangfailure属性を参照してください。

voice属性は、言語を変更した要素内も含む、ツリーの下位にまで継承されます。各属性に記述されているデフォルトは、最上位(のドキュメント)レベルにのみ適用され、著者が明示的にvoice要素を使用したときに無効になります。さらに、音声の変更は、変更が生じた要素のコンテンツのみを範囲とし、それのみに適用されます。voice要素のコンテンツの最後(つまり、</voice>という終了タグ)にまで処理がたどりついた場合には、開始タグより前で有効であった音声は回復します。

同様に、言語の読み上げに失敗した結果としてプロセッサが音声を変更する場合、その音声が再びコンテンツを読み上げることができるときには、以前の音声は回復します。合成プロセッサは、ドキュメントの実行開始前にデフォルトの音声を選択するように求められるため、アクティブな音声が常に存在していることに注意してください(3.1.1項を参照)。

<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
  <voice gender="female" required="languages gender age" languages="en-US ja"> 
    Any female voice here.
    <voice age="6"> 
      A female child voice here.
      <lang xml:lang="ja"> 
        <!--  Same female child voice rendering Japanese text. -->
      </lang>
    </voice>
  </voice>
</speak>

韻律パラメーターの相対的な変更は、音声の変更の全体に行きわたるべきです(SHOULD)。しかし、異なる音声は、異なる人を表わすため、当然ながら、速度や読み上げのピッチなどの既定値は異なります。そのため、韻律のパラメーターの絶対値は、音声の変更ごとに異なる可能性があります。

文中で音声の変更が求められれば、出力するオーディオや音声の質は影響を受けるかもしれません。

voice要素には、表示用テキストとaudiobreakemphasislanglookupmarkpphonemeprosodysay-assubstokenvoicewの要素のみを含むことができます。

3.2.2 emphasis要素

emphasis要素は、記述されているテキストが強調(卓立や強勢とも呼ばれる)されて読み上げられることを求めます。強調の性質は、言語や方言、さらに声によっても異なるため、合成プロセッサは強調の表現方法を決定します。属性は次のとおりです。

<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
  That is a <emphasis> big </emphasis> car!
  That is a <emphasis level="strong"> huge </emphasis>
  bank account!
</speak>

emphasis要素には、表示用テキストとaudiobreakemphasislanglookupmarkphonemeprosodysay-assubtokenvoicewの要素のみを含むことができます。

3.2.3 break要素

break要素は、休止またはその他のトークン間の韻律の境界を制御する空要素です。対のトークンの間にbreak要素を使用するか否かは任意です(OPTIONAL)。トークン間にこの要素がない場合は、言語上の文脈に基づいて合成プロセッサが自動的に決定すると予想されます。実際に、break要素は、合成プロセッサの標準の自動的な挙動を無効にするために最もよく用いられます。この要素の属性は次のとおりです。

strength属性は、休止の韻律の強さを示すために用います。例えば、通常、段落間の休止は、文中の単語間の休止よりかなり強いです。合成プロセッサは、韻律の休止の実装の一部としてポーズを挿入できます(MAY)。time属性を用いて、特定の長さのポーズを挿入することもできます。

break要素が、strength属性ともtime属性とも一緒に用いられていなければ、プロセッサは、break要素が提供されてないときにプロセッサが用いたと思われる韻律より強い韻律の休止を作り出すでしょう。

strength属性とtime属性の両方が提供されている場合には、プロセッサは、time属性で指定されている時間の休止を、strength属性の値に基づいて出力の韻律を変化させて挿入するでしょう。

<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
  Take a deep breath <break/>
  then continue. 
  Press 1 or wait for the tone. <break time="3s"/>
  I didn't hear you! <break strength="weak"/> Please repeat.
</speak>

3.2.4 prosody要素

prosody要素により、音声出力のピッチ、読み上げ速度、音量の制御が可能となります。属性(すべて任意(OPTIONAL))は次のとおりです。

ラベルの値に対するこの属性の挙動が、数値に対する挙動と異なる可能性があることに注意してください。数値を用いると、直接的な波形の変化が生じますが、ラベルの値を用いると、例えば、音声単位ごとに振動数や声量を変えて調節するなど、人間が声量を増減させる方法をより正確に反映した韻律の変化が起こる可能性があります。

各属性はそれぞれ任意ですが、prosody要素が用いられているにも関わらず、属性が全く指定されていなければエラーです。「x-foo」という属性値名は、「extra foo」の簡略形であることを意味します。すべての単位(「Hz」、「st」)は、大文字と小文字を区別します。通常のピッチ・レベルと標準のピッチ・レンジは、ピッチの対象や範囲でラベル付き値の意味が変わるのと同じように、言語によって著しく変わるかもしれないことにも注意してください。

下記にvolume属性の使用方法の例を挙げます。

<speak version="1.1"
       xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">

   <s>I am speaking this at the default volume for this voice.</s>

   <s><prosody volume="+6dB">
       I am speaking this at approximately twice the original signal amplitude.
   </prosody></s>

   <s><prosody volume="-6dB">
       I am speaking this at approximately half the original signal amplitude.
   </prosody></s>
</speak>

数値

数値は、指数のないシンプルな正の浮動小数点の値です。正当な形式は、「n」が1つ以上の数字である「n」、「n.」、「.n」、「n.n」です。

負でないパーセンテージ

負でないパーセンテージは、「%」が直後に付いた符号のない数値です。

相対値

上記の属性に対する相対変化を、次の通りに指定できます。

<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
  The price of XYZ is <prosody rate="90%">$45</prosody>
</speak>

ピッチ曲線

ピッチ曲線は、音声出力の特定の時間位置における、スペースで区切られた1組のターゲットと定義されています。ターゲット間への挿入のアルゴリズムは、プロセッサによって異なります。対の形式(time position,target)の最初の値は、記述されているテキストの時間の割合(後に「%」が付いた数値)で、2番目の値は、pitch属性の値(後に「Hz」が付いた数値、相対変化またはラベルの値)です。0%から100%の範囲以外の時間位置の値は無視されます。ピッチの値が0%または100%で定義されていない場合には、最も近いピッチ・ターゲットが複製されます。ピッチの相対値はすべて、記述されているテキストの直前のピッチの値と相対的です。

<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
  <prosody contour="(0%,+20Hz) (10%,+30%) (40%,+10Hz)">
    good morning
  </prosody>
</speak>

duration属性は、rate属性に優先します。contour属性は、pitch属性とrange属性に優先します。

すべての韻律属性のデフォルト値に変化はありません。例えば、rate属性の省略は、要素内の速度は要素外と同じであることを意味します。

prosody要素には、表示用テキストとaudiobreakemphasislanglookupmarkpphonemeprosodysay-assubstokenvoicewの要素のみを含むことができます。

制限

韻律属性の値はすべて指示できます。指定されているとおりに合成プロセッサが正確にドキュメントを表現できない場合(例えば、ピッチを1MHzに設定しようとしたり、読み上げ速度を1,000,000語/分に設定しようとするなど)には、指定されているけれどもサポートされていない値に、限界や代替値を設定することにより処理し続けようと最大限の努力をしなければならず(MUST)、このように限界を超えた場合にはホスト環境に通知できます(MAY)。

例えば、指示されている値が冗長、不適当またはエラーであるとプロセッサが判断したときなど、場合によって、合成プロセッサは、特定の韻律のマークアップを無視することを選択できます(MAY)。特に、大きな聴覚単位を採用している連結型の合成音声システムは、与えられた聴覚単位の韻律が冗長であれば、韻律変更のマークアップ要素を拒否でき(MAY)、そうしなければ、読み上げの品質が低下するでしょう。

3.3 その他の要素

3.3.1 audio要素

audio要素は、録音済みオーディオ・ファイル(必須の(REQUIRED)フォーマットに関しては付録Aを参照)の組み込み音声および合成音声の出力を伴うその他のオーディオ・フォーマットの組み込みをサポートします。audio要素は空でもよいです(MAY)。audio要素が空でない場合、その内容は、オーディオ・ドキュメントが利用できない場合に読み上げられるマークアップされたテキストであるべきです。代替コンテンツには、テキスト、読み上げ用マークアップ、desc要素やその他のaudio要素がありえます(MAY)。代替コンテンツは、ドキュメントを非可聴出力として表現する場合やアクセシビリティ(desc要素を参照)のためにも使用できます(MAY)。下記の小項目で述べている任意の(OPTIONAL)属性に加え、audioには次の属性があります。

名前 必須 タイプ デフォルト値 説明
src false URI なし 適切なメディア・タイプが付与されたドキュメントのURI。記述されていなければ、audio要素は、正当なURIが付与されたsrcが存在するかのように動作するものの、ドキュメントを得ることはできない。
fetchtimeout false 時間指定 プロセッサ固有 取得のタイムアウト。
fetchhint false 「prefetch」(事前取得)という値か「safe」(安全)という値 prefetch これは、事前に取得したオーディオによって表現の最適化を試みることができるか否かを合成プロセッサに伝える。値は、オーディオを事前に取得せずに、必要なときにのみ取得できるsafe(安全)、または、プロセッサが事前にオーディオを取得することできる(しかし必須ではない)prefetch(事前取得)のどちらか。
maxage false xsd:nonNegativeInteger なし 指定された有効期限を超えないコンテンツをドキュメントで使用する意思があることを示す(HTTP 1.1[RFC2616]の「max-age」を参照)。maxstaleが一緒に記述されていなければ、ドキュメントは期限を超えたコンテンツを使用しようとしない。
maxstale false xsd:nonNegativeInteger なし 有効期限を超えたコンテンツをドキュメントで使用する意思があることを示す(HTTP 1.1[RFC2616]の「max-stale」を参照)。maxstaleに値が割り当てられている場合、ドキュメントは指定された時間だけ有効期限を超えたコンテンツを受け入れようとする。

 

<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
                 
  <!-- Empty element -->
  Please say your name after the tone.  <audio src="beep.wav"/>

  <!-- Container element with alternative text -->
  <audio src="prompt.au">What city do you want to fly from?</audio>
  <audio src="welcome.wav">  
    <emphasis>Welcome</emphasis> to the Voice Portal. 
  </audio>

</speak>

audio要素は、下記によってうまく再生できます。

  1. 参照されているオーディオ・ソースをうまく再生する
  2. 参照されているオーディオ・ソースが再生できない場合、代替コンテンツを再生する
  3. さらに、テキストを出力するのみで良いことをプロセッサが検知できた場合、代替コンテンツを再生してもよい(MAY

オーディオ・ソースの再生を試みるときに、メディア・タイプの不一致やヘッダ情報の間違いなどの、多くの様々な問題が生じるかもしれません。一般的に、合成プロセッサは、参照されているメディアの再生に最大の努力を行い、失敗した場合には、代替コンテンツを再生しなければなりません(MUST)。プロセッサは、参照されているメディアのすべてあるいは部分と、参照されている代替コンテンツのメディアのすべてあるいは部分の両方を再生してはならない(MUST NOT)ことに注意してください。参照されているメディアのいずれかが処理され再生されれば、その再生はこの項の文脈において成功したと考えられます。参照されているメディアの代わりに代替コンテンツが再生されるエラーが生じれば、プロセッサは、そのようなエラーが生じたとホスティング環境に通知しなければなりません(MUST)。プロセッサは、直ちに非同期イベントでホスティング環境に通知できます(MAY)。または、プロセッサは、リクエストの再生完了をホスティング環境に伝える場合には、再生の終了時のみにホスティング環境に通知できます(MAY)。また、プロセッサは、そのログ記録システムを用いてエラーを通知することもできます(MAY)。可能であれば、プロセッサは、エラーに関する情報を含むべきです(SHOULD)。例えば、http 404エラーによりメディア資源を取得できなかった場合には、そのエラー・コードを通知に含むことができるかもしれません。

audio要素には、表示用テキストとaudiobreakdescemphasislanglookupmarkpphonemeprosodysay-assubstokenvoicewの要素のみを含むことができます。

3.3.1.1 トリミング属性

トリミング属性は、オーディオの再生範囲を定義します。オーディオ・コンテンツ内の範囲の開始と終了は、ともに時間オフセットを用いて指定できます。繰り返しを含む、その範囲の時間を、繰り返し属性で指定することもできます。これらの属性に対する合成プロセッサのサポートは、拡張プロファイルにおいて必須となっています(REQUIRED)。

audioに対し、次のトリミング属性が定義されています。

名前 必須 タイプ デフォルト値 説明
clipBegin false 時間指定 0s 再生を開始するメディアの開始点からのオフセット。このオフセットは、メディアの開始からの通常のメディア再生時間で測定される。
clipEnd false 時間指定 なし 再生を終了するメディアの開始点からのオフセット。このオフセットは、メディアの開始からの通常のメディア再生時間で測定される。
repeatCount false 正の実数 1 再生すべきメディアの繰り返し回数。メディアの再生部分は小数値で記述する。
repeatDur false 時間指定 なし メディアを繰り返して再生するトータルの時間。この時間は、メディアの開始からの通常のメディア再生時間で測定される。

下記の場合、再生時間およびその他のタイミングのプロパティーとのインタラクションの計算は、SMILのアクティブな継続時間の計算に従います。

すべてのSMILタイミング機能がサポートされているとは限らないことに注意してください。

実数

実数と整数は十進法のみで指定されます。

整数は「0」から「9」までの1つ以上の数字から成ります。

実数は、整数、または0個以上の数字の後に点(.)が付き、さらにその後に1つ以上の数字が付く形式でありえます。整数と実数の両方の前に、記号を示す1つの「-」か「+」を付けることができます。

時間指定

時間指定は、時間単位識別子が後続する負でない実数から成ります。時間単位識別子は次のとおりです。

例: 「3s」、「850ms」、「0.7s」、「.5s」、「+1.5s」

次の例では、オーディオの10秒目からメディアの再生が開始されます。

<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis-extended.xsd"
       xml:lang="en-US">

  <audio src="radio.wav" clipBegin="10s" />

</speak>

次の場合、オーディオの20秒後にメディアの再生が終了します。

<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis-extended.xsd"
       xml:lang="en-US">

  <audio src="radio.wav" clipBegin="10s" clipEnd="20s" />

</speak>

「radio.wav」の継続時間が20秒未満であれば、clipEndの値は無視され、再生の終了はメディアの事実上の最後と同じになることに注意してください。

次の例では、オーディオの継続時間はrepeatCountによって制約されています。

<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis-extended.xsd"
       xml:lang="en-US">

  <audio src="3second_sound.au" repeatCount="0.5" /> 

</speak>

クリップの前半のみが再生され、アクティブな継続時間は1.5秒になるでしょう。

次の例では、オーディオは合計7秒間繰り返されるでしょう。2回完全に再生され、その後に2秒の断片部分が続きます。これはrepeatCountを2.8にしたものと同じです。

<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis-extended.xsd"
       xml:lang="en-US">

  <audio src="2.5second_music.mp3" repeatDur="7s" />

</speak>
次の例では、オーディオのアクティブな継続時間は4秒になるでしょう。オーディオの1秒目から再生が開始され(clipBeginの値で指定されているとおり)、その後に1秒間再生され(clipEndが2秒と指定されているため)、その後に、トータルの継続時間が4秒になるように(repeatDurで指定されているとおり)、この範囲が繰り返されるでしょう。repeatDurの値がrepeatCountの値に優先することに注意してください。
<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis-extended.xsd"
       xml:lang="en-US">

  <audio src="2.5second_music.mp3" clipBegin="1s" clipEnd="2s"
         repeatCount="5" repeatDur="4s" />

</speak>

これらの属性は、speakのトリミング属性によって指定される表現とのインタラクションが可能です。

<speak version="1.1" startmark="mark1" endmark="mark2"
       xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis-extended.xsd"
       xml:lang="en-US">
   <audio src="first.wav"/>
   <mark name="mark1"/>
   <audio src="15second_music.mp3" clipBegin="2s" clipEnd="7s" />
   <mark name="mark2"/>
   <audio src="last.wav"/>
</speak>

speakstartmarkendmarkにより、「15second_music.mp3」のクリップのみが再生可能となります。オーディオの実際の継続時間は5秒です。クリップは、オーディオの2秒目から開始され7秒後に終了します。したがって、継続時間は5秒です。

3.3.1.2 soundLevel属性

soundLevel属性は、参照されているオーディオの相対的な音量を定めます。これは、SMIL[SMIL3]の同じ名前の属性がきっかけとなりました。この属性に対する合成プロセッサのサポートは、拡張プロファイルにおいて必須です(REQUIRED)。

 

名前 必須 タイプ デフォルト値 説明
soundLevel false

直後に「dB」が付く記号(「+」または「-」)付きCSS2数値

デフォルト値は+0.0dB。 デシベル値は、soundLevel(dB) = 20 log10 (a1 ∕ a0)のように、新しい信号の振幅(a1)と現在の振幅(a0)の2乗の比率と解釈され、dBで定義される。大きな負の値を設定すると、メディアは事実上無音で再生される。「-6.0dB」という値では、現在の信号振幅の約半分の振幅でメディアが再生される。同様に、「+6.0dB」という値では、現在の信号振幅の約2倍の振幅でメディアが再生される(ハードウェア上の限界に依存する)。メディアの絶対的な知覚音響レベルは、さらにシステムの音量設定に依存しており、この属性では制御できない。

下記にsoundLevel属性の使用方法の例を挙げます。

<speak version="1.1"
       xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis-extended.xsd"
       xml:lang="en-US">

   <s>This is the original, unmodified waveform:   
       <audio src="message.wav"/>
   </s>
   <s>This is the same audio at approximately twice the signal amplitude:   
       <audio soundLevel="+6dB" src="message.wav"/>
   </s>
   <s>This is the same audio at approximately half the original signal amplitude:   
       <audio soundLevel="-6dB" src="message.wav"/>
   </s>
</speak>

3.3.1.3 speed属性

speed属性は、参照されているオーディオの再生速度を制御し、元の波形の速度と比べて再生の実効速度を加速または減速させます。引数の値は絶対的な再生速度が定まるのではなく、元の波形の再生速度と相対的です。これらの属性に対する合成プロセッサのサポートは、拡張プロファイルにおいて必須です(REQUIRED)。

名前 必須 タイプ デフォルト値 説明
speed false x%
(xが正の実数値であるとき)
デフォルト値は100%で、未変更のオーディオ波形の速度に対応する。 元の速度との比較における、参照しているオーディオの再生速度。
元の波形の速度に対するパーセンテージで求める速度を設定する。

speed属性の値を変更すると、録音されたサンプルの再生速度が変化します。これがピッチに影響する可能性があることに注意してください。

下記にspeed属性の使用方法の例を挙げます。

<speak version="1.1"
       xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis-extended.xsd"
       xml:lang="en-US">

   <s>This is the original, unmodified waveform:   
       <audio src="message.wav"/>
   </s>
   <s>This is the same audio at twice the speed:   
       <audio speed="200%" src="message.wav"/>
   </s>
   <s>This is the same audio at half the original speed:   
       <audio speed="50%" src="message.wav"/>
   </s>
</speak>

3.3.2 mark要素

mark要素は、テキスト/タグの文字列にマーカーを付ける空要素です。これには、必須の(REQUIRED)属性であるnameが1つあり、これはxsd:token[SCHEMA2 3.3.2項]というタイプに属しています。mark要素は、テキスト/タグの文字列の特定の位置を参照するために使用でき、さらに、非同期通知の出力ストリームにマーカーを挿入するためにも使用できます。合成プロセッサは、mark要素を処理する際に、下記の一方あるいは両方を行わなければなりません(MUST)。

mark要素は音声出力処理に影響を与えません。

<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
                 
Go from <mark name="here"/> here, to <mark name="there"/> there!

</speak>

3.3.3 desc要素

desc要素は、audio要素のコンテンツ内にのみ記述できます。audio内で参照されているオーディオ・ソースが音声でない(例えば、audio wallpaperやsonicon punctuation)場合には、desc要素という、オーディオ・ソースに関して記述した(例えば「ドアを閉めている」)テキストのコンテンツを含んでいるべきです。合成プロセッサが、テキストのみの出力データを作成している場合には、audio内の他の代替コンテンツの代わりにdesc要素のコンテンツを表示すべきです(SHOULD)。任意の(OPTIONALxml:lang属性を用いて、要素のコンテンツの言語がその要素を囲い込んでいるコンテンツの言語とは異なることを示すことができます。任意の(OPTIONALonlangfailure属性を用いて、言語の読み上げに失敗したときの望ましい挙動を指定することができます。

<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
                 
  <!-- Normal use of <desc> -->
  Heads of State often make mistakes when speaking in a foreign language.
  One of the most well-known examples is that of John F. Kennedy:
  <audio src="ichbineinberliner.wav">If you could hear it, this would be
  a recording of John F. Kennedy speaking in Berlin.
    <desc>Kennedy's famous German language gaffe</desc>
  </audio>

  <!-- Suggesting the language of the recording -->
  <!-- Although there is no requirement that a recording be in the current language
       (since it might even be non-speech such as music), an author might wish to
       suggest the language of the recording by marking the entire <audio> element
       using <lang>.  In this case, the xml:lang attribute on <desc> can be used
       to put the description back into the original language. -->
  Here's the same thing again but with a different fallback:
  <lang xml:lang="de-DE">
    <audio src="ichbineinberliner.wav">Ich bin ein Berliner.
      <desc xml:lang="en-US">Kennedy's famous German language gaffe</desc>
    </audio>
  </lang>
</speak>

desc要素には、説明文のみを含むことができます。

4. 参考文献

4.1 規範的な参考文献

[BCP47]
Tags for Identifying Languages and Matching of Language Tags, A. Phillips and M. Davis, Editors. IETF, September 2009. Available at http://www.rfc-editor.org/bcp/bcp47.txt.
[CSS2]
Cascading Style Sheets, level 2: CSS2 Specification, B. Bos, et al., Editors. World Wide Web Consortium, 12 May 1998. This version of the CSS2 Recommendation is http://www.w3.org/TR/1998/REC-CSS2-19980512/. The latest version of CSS2 is available at http://www.w3.org/TR/CSS2/. Note this reference may be revised when the CSS3 Speech Module becomes a W3C Recommendation.
[IPAHNDBK]
Handbook of the International Phonetic Association, International Phonetic Association, Editors. Cambridge University Press, July 1999. Information on the Handbook is available at http://www.langsci.ucl.ac.uk/ipa/handbook.html.
[PLS]
Pronunciation Lexicon Specification (PLS) Version 1.0, P. Baggia, Editor. World Wide Web Consortium, 14 October 2008. This version of the PLS Recommendation is http://www.w3.org/TR/2008/REC-pronunciation-lexicon-20081014/. The latest version of PLS is available at http://www.w3.org/TR/pronunciation-lexicon/.
[RFC1521]
MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies, N. Borenstein and N. Freed, Editors. IETF, September 1993. This RFC is available at http://www.ietf.org/rfc/rfc1521.txt.
[RFC2045]
Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies., N. Freed and N. Borenstein, Editors. IETF, November 1996. This RFC is available at http://www.ietf.org/rfc/rfc2045.txt.
[RFC2046]
Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types, N. Freed and N. Borenstein, Editors. IETF, November 1996. This RFC is available at http://www.ietf.org/rfc/rfc2046.txt.
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels, S. Bradner, Editor. IETF, March 1997. This RFC is available at http://www.ietf.org/rfc/rfc2119.txt.
[RFC3986]
Uniform Resource Identifier (URI): Generic Syntax, T. Berners-Lee et al., Editors. IETF, January 2005. This RFC is available at http://www.ietf.org/rfc/rfc3986.txt.
[RFC3987]
Internationalized Resource Identifiers (IRIs), M. Duerst and M. Suignard, Editors. IETF, January 2005. This RFC is available at http://www.ietf.org/rfc/rfc3987.txt.
[RFC4267]
The W3C Speech Interface Framework Media Types: application/voicexml+xml, application/ssml+xml, application/srgs, application/srgs+xml, application/ccxml+xml, and application/pls+xml, M. Froumentin, Editor. IETF, November 2005. This RFC is available at http://www.ietf.org/rfc/rfc4267.txt.
[SCHEMA1]
XML Schema Part 1: Structures Second Edition, H. S. Thompson, et al., Editors. World Wide Web Consortium, 28 October 2004. This version of the XML Schema Part 1 Recommendation is http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/. The latest version of XML Schema 1 is available at http://www.w3.org/TR/xmlschema-1/.
[SCHEMA2]
XML Schema Part 2: Datatypes Second Edition, P.V. Biron and A. Malhotra, Editors. World Wide Web Consortium, 28 October 2004. This version of the XML Schema Part 2 Recommendation is http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/. The latest version of XML Schema 2 is available at http://www.w3.org/TR/xmlschema-2/.
[SMIL3]
Synchronized Multimedia Integration Language (SMIL 3.0), D. Bulterman, et al., Editors. World Wide Web Consortium, 1 December 2008. This version of the SMIL 3 Recommendation is http://www.w3.org/TR/2008/REC-SMIL3-20081201/. The latest version of SMIL3 is available at http://www.w3.org/TR/SMIL3/. This document is a work in progress.
[TYPES]
MIME Media types, IANA. This continually-updated list of media types registered with IANA is available at http://www.iana.org/assignments/media-types/index.html.
[XML 1.0]
Extensible Markup Language (XML) 1.0 (Fifth Edition), T. Bray et al., Editors. World Wide Web Consortium, 26 August 2008. This version of the XML 1.0 Recommendation is http://www.w3.org/TR/2008/REC-xml-20081126/. The latest version of XML 1.0 is available at http://www.w3.org/TR/xml/.
[XML 1.1]
Extensible Markup Language (XML) 1.1 (Second Edition), T. Bray et al., Editors. World Wide Web Consortium, 16 August 2006. This version of the XML 1.1 Recommendation is http://www.w3.org/TR/2006/REC-xml11-20060816/. The latest version of XML 1.1 is available at http://www.w3.org/TR/xml11/.
[XML-BASE]
XML Base (Second Edition), J. Marsh and R. Tobin, Editors. World Wide Web Consortium, 28 January 2009. This version of the XML Base Recommendation is http://www.w3.org/TR/2009/REC-xmlbase-20090128/. The latest version of XML Base is available at http://www.w3.org/TR/xmlbase/.
[XML-ID]
xml:id Version 1.0, J. Marsh et al., Editors. World Wide Web Consortium, 9 September 2005. This version of the xml:id Recommendation is http://www.w3.org/TR/2005/REC-xml-id-20050909/. The latest version of xml:id is available at http://www.w3.org/TR/xml-id/.
[XMLNS 1.0]
Namespaces in XML 1.0 (Third Edition), T. Bray et al., Editors. World Wide Web Consortium, 8 December 2009. This version of the XML Namespaces 1.0 Recommendation is http://www.w3.org/TR/2009/REC-xml-names-20091208/. The latest version of XML Namespaces 1.0 is available at http://www.w3.org/TR/REC-xml-names/.
[XMLNS 1.1]
Namespaces in XML 1.1 (Second Edition), T. Bray et al., Editors. World Wide Web Consortium, 16 August 2006. This version of the XML Namespaces 1.1 Recommendation is http://www.w3.org/TR/2006/REC-xml-names11-20060816/. The latest version of XML Namespaces 1.1 is available at http://www.w3.org/TR/xml-names11/.

4.2 参考情報の参考文献

[DC]
Dublin Core Metadata Initiative. See http://dublincore.org/
[HTML]
HTML 4.01 Specification, D. Raggett et al., Editors. World Wide Web Consortium, 24 December 1999. This version of the HTML 4 Recommendation is http://www.w3.org/TR/1999/REC-html401-19991224/. The latest version of HTML 4 is available at http://www.w3.org/TR/html4/.
[IPA]
International Phonetic Association. See http://www.langsci.ucl.ac.uk/ipa/ for the organization's website.
[IPAUNICODE1]
The International Phonetic Alphabet, J. Esling. This table of IPA characters in Unicode is available at http://web.uvic.ca/ling/resources/ipa/charts/unicode_ipa-chart.htm.
[IPAUNICODE2]
The International Phonetic Alphabet in Unicode, J. Wells. This table of Unicode values for IPA characters is available at http://www.phon.ucl.ac.uk/home/wells/ipa-unicode.htm.
[JEIDAALPHABET]
JEIDA-62-2000 Phoneme Alphabet. JEITA. An abstract of this document (in Japanese) is available at http://it.jeita.or.jp/document/publica/standard/summary/JEIDA-62-2000.pdf.
[JEITA]
Japan Electronics and Information Technology Industries Association. See http://www.jeita.or.jp/.
[JSML]
JSpeech Markup Language, A. Hunt, Editor. World Wide Web Consortium, 5 June 2000. Copyright c2000 Sun Microsystems, Inc. This version of the JSML submission is http://www.w3.org/TR/2000/NOTE-jsml-20000605/. The latest W3C Note of JSML is available at http://www.w3.org/TR/jsml/.
[LEX]
Pronunciation Lexicon Markup Requirements, P. Baggia and F. Scahill, Editors. World Wide Web Consortium, 29 October 2004. This document is a work in progress. This version of the Lexicon Requirements is http://www.w3.org/TR/2004/WD-lexicon-reqs-20041029/. The latest version of the Lexicon Requirements is available at http://www.w3.org/TR/lexicon-reqs/.
[RDF]
RDF Primer, F. Manola and E. Miller, Editors. World Wide Web Consortium, 10 February 2004. This version of the RDF Primer Recommendation is http://www.w3.org/TR/2004/REC-rdf-primer-20040210/. The latest version of the RDF Primer is available at http://www.w3.org/TR/rdf-primer/.
[RDF-XMLSYNTAX]
RDF/XML Syntax Specification, D. Beckett, Editor. World Wide Web Consortium, 10 February 2004. This version of the RDF/XML Syntax Recommendation is http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/. The latest version of the RDF XML Syntax is available at http://www.w3.org/TR/rdf-syntax-grammar/.
[RDF-SCHEMA]
RDF Vocabulary Description Language 1.0: RDF Schema, D. Brickley and R. Guha, Editors. World Wide Web Consortium, 10 February 2004. This version of the RDF Schema Recommendation is http://www.w3.org/TR/2004/REC-rdf-schema-20040210/. The latest version of RDF Schema is available at http://www.w3.org/TR/rdf-schema/.
[REQS]
Speech Synthesis Markup Requirements for Voice Markup Languages, A. Hunt, Editor. World Wide Web Consortium, 23 December 1999. This document is a work in progress. This version of the Synthesis Requirements is http://www.w3.org/TR/1999/WD-voice-tts-reqs-19991223/. The latest version of the Synthesis Requirements is available at http://www.w3.org/TR/voice-tts-reqs/.
[REQS11]
Speech Synthesis Markup Language Version 1.1 Requirements, D. Burnett and Z. Shuang, Editors. World Wide Web Consortium, 11 June 2007. This document is a work in progress. This version of the SSML 1.1 Requirements is http://www.w3.org/TR/2007/WD-ssml11reqs-20070611/. The latest version of the SSML 1.1 Requirements is available at http://www.w3.org/TR/ssml11reqs/.
[RFC2616]
Hypertext Transfer Protocol -- HTTP/1.1, R. Fielding, et al., Editors. IETF, June 1999. This RFC is available at http://www.ietf.org/rfc/rfc2616.txt.
[RFC2732]
Format for Literal IPv6 Addresses in URL's, R. Hinden, et al., Editors. IETF, December 1999. This RFC is available at http://www.ietf.org/rfc/rfc2732.txt.
[RUBY]
Ruby Annotation, Marcin Sawicki, et al., Editors. World Wide Web Consortium, 31 May 2001. This version of the Ruby Recommendation is http://www.w3.org/TR/2001/REC-ruby-20010531/. The latest version is available at http://www.w3.org/TR/ruby/.
[SABLE]
"SABLE: A Standard for TTS Markup", Richard Sproat, et al. Proceedings of the International Conference on Spoken Language Processing, R. Mannell and J. Robert-Ribes, Editors. Causal Productions Pty Ltd (Adelaide), 1998. Vol. 5, pp. 1719-1722. Conference proceedings are available from the publisher at http://www.causalproductions.com/.
[SSML]
Speech Synthesis Markup Language (SSML) Version 1.0, Daniel C. Burnett, et al., Editors. World Wide Web Consortium, 7 September 2004. This version of the SSML 1.0 Recommendation is http://www.w3.org/TR/2004/REC-speech-synthesis-20040907/. The latest version is available at http://www.w3.org/TR/speech-synthesis/.
[UNICODE]
The Unicode Standard. The Unicode Consortium. Information about the Unicode Standard and its versions can be found at http://www.unicode.org/standard/standard.html.
[WEB-ARCH]
Architecture of the World Wide Web, Version One, I. Jacobs, N. Walsh, Editors. World Wide Web Consortium, 15 December 2004. This version of the WWW Architecture is http://www.w3.org/TR/2004/REC-webarch-20041215/. The latest version of WWW Architecture is available at http://www.w3.org/TR/webarch/.
[VXML]
Voice Extensible Markup Language (VoiceXML) Version 2.0, S. McGlashan, et al., Editors. World Wide Web Consortium, 16 March 2004. This version of the VoiceXML 2.0 Recommendation is http://www.w3.org/TR/2004/REC-voicexml20-20040316/. The latest version of VoiceXML 2 is available at http://www.w3.org/TR/voicexml20/.
[WS]
Minutes, W3C Workshop on Internationalizing the Speech Synthesis Markup Language, 2-3 November 2005. The agenda and minutes are available at http://www.w3.org/2005/08/SSML/ssml-workshop-agenda.html.
[WS2]
Minutes, W3C Workshop on Internationalizing the Speech Synthesis Markup Language, 30-31 May 2006. The agenda is available at http://www.w3.org/2006/02/SSML/agenda.html. The minutes are available at http://www.w3.org/2006/02/SSML/minutes.html.
[WS3]
Minutes, W3C Workshop on Internationalizing the Speech Synthesis Markup Language, 13-14 January 2007. The agenda is available at http://www.w3.org/2006/10/SSML/agenda.html. The minutes are available at http://www.w3.org/2006/10/SSML/minutes.html.

5. 謝辞

このドキュメントは、W3C音声読み上げブラウザ・ワーキンググループおよびその他のW3Cワーキンググループの次の参加者(姓のアルファベット順に記述)により作成されました。

芦村 和幸 (Kazuyuki Ashimura), W3C
Max Froumentin, W3C(参加時)
黄力行 (Lixing Huang), Chinese Academy of Sciences(参加時)
Andrew Hunt, Speechworks(参加時)
今竹 渉 (Wataru Imatake), Invited Expert
Richard Ishida, W3C
Jim Larson, Invited Expert(以前はIntervoice)
Wai-Kit Lo, Chinese University of Hong Kong(参加時)
Mark Walker, Intel(参加時)

さらに、編集者は、W3C国際化ワーキンググループのメンバーに感謝を表します。彼らはSSML 1.0および1.1に関し、重要なレビューや貢献をしてくださいました。

付録A: オーディオ・ファイル・フォーマット

この付録は規範的です。

SSMLでは、プラットフォームが下記で指定しているオーディオ・フォーマットの再生をサポートしている必要があります。

必須のオーディオ・フォーマット
オーディオ・フォーマット メディア・タイプ
Raw (headerless) 8kHz 8-bit mono mu-law (PCM) single channel. (G.711) audio/basic ([RFC1521]にあるもの)
Raw (headerless) 8kHz 8 bit mono A-law (PCM) single channel. (G.711) audio/x-alaw-basic
WAV (RIFF header) 8kHz 8-bit mono mu-law (PCM) single channel. audio/x-wav
WAV (RIFF header) 8kHz 8-bit mono A-law (PCM) single channel. audio/x-wav

「audio/basic」というメディア・タイプは、一般的に「au」ヘッダ・フォーマットおよびヘッダがない8-bit 8kHz μ-Lawフォーマットとともに用いられます。このメディア・タイプを再生に指定する場合には、μ-Lawフォーマットを使用しなければなりません(MUST)。「audio/basic」というメディア・タイプで再生する場合、プロセッサは、μ-Lawフォーマットをサポートしなければならず(MUST)、「au」フォーマットをサポートできます(MAY)。

付録B: 国際化

この付録は規範的です。

SSMLはXML[XML 1.0またはXML 1.1]の応用であり、したがって、標準の汎用文字セットを定義している[UNICODE]をサポートしています。

SSMLは、xml:lang属性を用いて読み上げられる言語を制御するメカニズムを提供します。言語を変更しすぎると出力されるオーディオの音質が低下することがありますが、言語の変更は、トークン(単語)と同じ頻度で生じる可能性があります。SSMLでは、lexicon要素とphoneme要素を用いて、今はごくわずかしか商業的にサポートされていない言語のデフォルト辞書の品質を改善できるような機能により、出力データの発音をよりうまく制御できるようになります。

付録C: メディア・タイプとファイル拡張子

この付録は規範的です。

音声合成マークアップ言語仕様に関連付けられているメディア・タイプは「application/ssml+xml」で、ファイル名の拡張子は[RFC4267]で定義されている「.ssml」です。

付録D: 音声合成マークアップ言語用スキーマ

この付録は規範的です。

コア・プロファイル(2.2.5項)の合成スキーマはhttp://www.w3.org/TR/speech-synthesis11/synthesis.xsdにあり、拡張プロファイル(2.2.5項)のスキーマはhttp://www.w3.org/TR/speech-synthesis11/synthesis-extended.xsdにあります。

注: 合成スキーマには、コア・プロファイルと拡張プロファイルの非名前空間スキーマが含まれており、それぞれ、http://www.w3.org/TR/speech-synthesis11/synthesis-nonamespace.xsdhttp://www.w3.org/TR/speech-synthesis11/synthesis-nonamespace-extended.xsdにあります。これは、合成非名前空間スキーマに埋め込まれている音声合成マークアップ言語断片(2.2.1項)を指定する根拠として使用できます(MAY)。さらに、安定性のためには、上記のスキーマ・ファイルに下記の日付け付きURIを使用することを推奨します(RECOMMENDED)。

付録E: SSMLの例

この付録は参考情報です。

下記は電子メール・メッセージのヘッダの読み上げ例です。テキスト構造を記述するためにp要素とs要素を用いています。break要素は、時間の前に置き、聞き手が注意を払うべき重要な情報として時間を目立たせる効果があります。ユーザが詳細を聞きとって書き留める時間の余裕を持てるよう、電子メールの件名を読み上げる速度を遅くするためにprosody要素を用いています。

<?xml version="1.0"?>
<speak version="1.1"
       xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                   http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
  <p>
    <s>You have 4 new messages.</s>
    <s>The first is from Stephanie Williams and arrived at <break/> 3:45pm.
    </s>
    <s>
      The subject is <prosody rate="-20%">ski trip</prosody>
    </s>
  </p>
</speak>

次の例では、音楽のコレクションについての情報を提供するためにオーディオ・ファイルと、読み上げ音声を組み合わせています。

<?xml version="1.0"?>
<speak version="1.1"
       xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                   http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">

  <p>
    <voice gender="male">
      <s>Today we preview the latest romantic music from Example.</s>

      <s>Hear what the Software Reviews said about Example's newest hit.</s>
    </voice>
  </p>

  <p>
    <voice gender="female">
      He sings about issues that touch us all.
    </voice>
  </p>

  <p>
    <voice gender="male">
      Here's a sample.  <audio src="http://www.example.com/music.wav"/>
      Would you like to buy it?
    </voice>
  </p>

</speak>

多くの場合、著者は言語を切り替える(例えば、lang要素により)必要なしに、アプリケーションに外国のテキスト(例えば、映画のタイトルなど)を少し含みたいと考えます。これをシンプルに行う方法は、ここに示しているとおりです。この例では、合成プロセッサは、外国語を知らない読者が読もう(そして、発音しよう)とするのと同じような方法で、コンテナ言語の発音規則(この場合、「en-US」)を用いて映画名を表現するでしょう。

<?xml version="1.0" encoding="ISO-8859-1"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
  
  The title of the movie is:
  "La vita e bella"
  (Life is beautiful),
  which is directed by Roberto Benigni.
</speak>

外部辞書(3.1.5項を参照)の発音をカスタマイズする、または、次の例で示しているようなphoneme要素を用いるなどの追加作業を行えば、出力データの品質が大幅に改善される可能性があります。

IPA文字のサポートが任意の(OPTIONAL)機能であり、外部言語の音素が何らかの近似値で再生されるかもしれないことをお知らせしておく必要があるでしょう(詳細は、3.1.5項を参照)。次の例は、一般的なアメリカ英語の音素のみを用いています。

<?xml version="1.0" encoding="ISO-8859-1"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">
  
  The title of the movie is: 
  <phoneme alphabet="ipa"
    ph="&#x2C8;l&#x251; &#x2C8;vi&#x2D0;&#x27E;&#x259; &#x2C8;&#x294;e&#x26A; &#x2C8;b&#x25B;l&#x259;"> 
  La vita e bella </phoneme>
  <!-- The IPA pronunciation is ˈlɑ ˈviːɾə ˈʔeɪ ˈbɛlə -->
  (Life is beautiful), 
  which is directed by 
  <phoneme alphabet="ipa"
    ph="&#x279;&#x259;&#x2C8;b&#x25B;&#x2D0;&#x279;&#x27E;o&#x28A; b&#x25B;&#x2C8;ni&#x2D0;nji"> 
  Roberto Benigni </phoneme>
  <!-- The IPA pronunciation is ɹəˈbɛːɹɾoʊ bɛˈniːnji -->

  <!-- Note that in actual practice an author might change the
     encoding to UTF-8 and directly use the Unicode characters in
     the document rather than using the escapes as shown.
     The escaped values are shown for ease of copying. -->
</speak>

SMILの統合例

SMIL言語[SMIL3]は、XMLベースのマルチメディア制御言語です。これは特に、合成読み上げ出力データを含んでいる動的メディアのアプリケーションの記述に適しています。

greetings.ssml」というファイルには下記が含まれています。

<?xml version="1.0"?>
<speak version="1.1"
       xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="en-US">

  <s>
    <mark name="greetings"/>
    <emphasis>Greetings</emphasis> from the <sub alias="World Wide Web Consortium">W3C</sub>!
  </s>
</speak>

SMILの例1: W3Cのロゴ画像が現われ、1秒後に音声が再生されます。「greetings.smil」というファイルには下記が含まれています。

<smil xmlns="http://www.w3.org/ns/SMIL" version="3.0" baseProfile="Language">
  <head>
    <top-layout width="640" height="320">
      <region id="whole" width="640" height="320"/>
    </top-layout>
  </head>
  <body>
    <par>
      <img src="http://www.w3.org/Icons/w3c_home" region="whole" begin="0s"/>
      <ref src="greetings.ssml" begin="1s"/>
    </par>
  </body>
</smil>

SMILの例2: W3Cのロゴ画像が現われ、画像をクリックすると消え、音声が再生されます。「greetings.smil」というファイルには下記が含まれています。

<smil xmlns="http://www.w3.org/ns/SMIL" version="3.0" baseProfile="Language">
  <head>
    <top-layout width="640" height="320">
      <region id="whole" width="640" height="320"/>
    </top-layout>
  </head>
  <body>
    <seq>
      <img id="logo" src="http://www.w3.org/Icons/w3c_home" region="whole" begin="0s" end="logo.activateEvent"/>
      <ref src="greetings.ssml"/>
    </seq>
  </body>
</smil>

VoiceXMLの統合例

下記は、音声読み上げブラウザ・アプリケーション用のVoiceXML(2.3.3項を参照)によるSSMLの例です。VoiceXML名前空間に、SSMLの名前空間要素と属性が含まれていることは、注目に値します。詳細は、[VXML]の付録Oを参照してください。

<?xml version="1.0" encoding="UTF-8"?> 
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.w3.org/2001/vxml 
   http://www.w3.org/TR/voicexml20/vxml.xsd">
   <form>
      <block>
         <prompt>
           <emphasis>Welcome</emphasis> to the Bird Seed Emporium.
           <audio src="rtsp://www.birdsounds.example.com/thrush.wav"/>
           We have 250 kilogram drums of thistle seed for
           $299.95
           plus shipping and handling this month.
           <audio src="http://www.birdsounds.example.com/mourningdove.wav"/>
         </prompt>
      </block>
   </form>
</vxml>

付録F: SSML 1.0以後の更新

この付録は参考情報です。

SSML 1.1のみをサポートしている合成プロセッサのために、SSML 1.0適合ドキュメントを変更する際の互換性に関する注意事項をドキュメントの著者にお知らせします。

また、下記は、SSML 1.0以後の変更を網羅した統合リストです。

付録G: 最新草案以後の更新

この付録は参考情報です。

SSML 1.1仕様の勧告案の発表後、指摘に応じて、草案に次のマイナーな編集上の変更が加えられました。