第82話 「音声出力概説」
この度、World Wide Web Consortium(W3C)からHTML 6.0 の推奨韓国、いや勧告が出された。Standard Generalized Markup Language(SGML) としての姿を取り戻すため文書の表示出力に関する殆んどをスタイルシートと呼ばれる別の機構に委ね、文書の構造を記述することに徹する様に作られたのが HTML 4.0 Strict であったが、今回はこの姿勢を更に徹底させたものである。最大の特徴は従来の Cascading Style Sheets(CSS)に音声出力の記述を担わせたエキセントリック音声スタイルシート第二水準(XCSS2)の導入である。
折角、厳格な HTML 4.0 を作成したにも拘らず、ブラウザは相変わらずフォントタグを容認する暫定的な HTML 4.0 Transitional で解釈するものが殆んどであり、これが巷ではフォントいじり系と称されているらしい頻繁にスクロールさせて指が疲れるだの不要に時間がかかるだの眼に堪えるだのという不満を増長させた挙げ句、遂には死傷者まで出してしまった事を深刻な問題として捉えた W3C は、HTML 4.0 Transitional を完全撤廃して、HTML 6.0 を使用する様に推奨勧告している。
フォントタグの廃止によって、業界内やフォントいじり同盟からのかなりの反発が予想されるが、これは間違った見方であり、抑抑、フォントいじりはテキストブラウザや読み上げソフトの前には無力な表現手段であった事を想起されたい。XCSS2 の出現は寧ろそういった問題を解決してくれるのであって、音声タグを正しく使えば強力な表現手段になる筈なので本稿で是非紹介しておきたい。マークアップの原典に立ち返って難しい英語文献を読まなくとも、誰でもマークアップの原点に立ち返る事が出来る速習コースと捉えて頂きたい。
先ずは基本事項から入る。音声であるから声色を指定せねば始まらない。これは voice-type 属性で指定するが、<div>や<p>などのブロック要素で指定することが出来る。キーワードは性別の male、female、gay の三種類があり、同時にトーンも指定する事が出来る。例えばその段落をゲイ(55歳)のハスキーヴォイスにしたければ、
<p style="voice-type: gay husky 55;">
あ゛っはーん。今夜は最高よ。(おすぎ)</p>
の様に書く。但し、大文字にしてはならない。HUSKY ではエスキモー語を指定してしまう事になるからだ。トーンは他に、nasal(鼻声)child(子供)comedian(芸人)announcer(アナウンサ)が用意されている。指定がなければ規定値 normal がとられ、各スピーチ・シンセサイザの設定する通常値が割当てられる。 voice-type 属性には最大三個までのキーワードを指定する事が可能で、性別、トーン、年齢の順番に指定すればよい。
次は速さの調整である。これは局所的に制御したいので<em>や<span>などのインライン要素での使用が可能になる。これは voice-speed 属性で指定し、キーワードは、x-slow、slow、medium、fast、x-fast の五種類で規定値は medium である。注目すべき事項は、font-size と同様、相対指定のキーワードも準備されている点である。faster、slower で一段階速く又は遅く、fastest、slowest で一気に最速又は最遅へと飛ぶ。この属性を活用すれば、ネタを発する時の速度変化を実現したり、花嫁の甘い催促や古女房の強引な念押し等の表現にも応用が効く。比べて戴きたい。
<span style="voice-speed: slower; voice-type: female nasal 25;">
うっふーん。今夜は最高よ。</span>
<span style="voice-speed: fastest; voice-type: female comedian 53;">
どこほっつき歩いてたんかー。</span>
しかし、ここまでは基本タグの説明であって、スクロールばんばんこれでもか持ってけ泥棒宵越しの銭は持たないてやんでえ的なフォントいじり系には物足りなさを感じさせるだろう。スクロールばんばん以下同文の目的はやはり間を置くことであって、それはダッシュや三点リーダといったものの視覚化に他ならない。XCSS2 の画期的な点は、これを正に音声でやってしまうための特別な属性が開発された事にあると言える。例えば以下は5秒後に読み上げさせる例である。
<em style="voice-timeout: 5s; voice-type: gay nasal 55;">
あっはーん。今夜は最高よ。</em>
これを使うと読み上げソフトでは無視される … や ・・・ にも、実質的に溜めを実現させる事が可能となる。
<span style="voice-timeout: 5s; voice-type: male straight 40;">
…。たのむからよしてくれないかポール。</span>
もう一つ重要な要素に、強調表現がある。巨大フォントの語らんとする所は吃驚マークに代表される、叫び、笑い、突っ込みであるから、そういう読み上げパターンが準備されて然るべきで、この役目は voice-tone 属性が担う事になる。これは極めて局所的に、<em>の中で用いられるのが普通であろう。例を揚げてみる。
<em style="voice-tone: shout; voice-type: male comedian;">
なんでやねん!</em>
<em style="voice-tone: question; voice-type: male comedian;">
え、あかんの?</em>
<em style="voice-tone: stammer; voice-type: male straight 40;">
そ、それは困るよポール。</em>
<em style="voice-tone: mutter; voice-type: male;">
くうっ。くのぉ。あ、いえ、なんでもないっす。</em>
<em style="voice-tone: smile louder; voice-type: male;">
こんなんでどうでしょ(笑)</em>
<em style="voice-tone: snort; voice-type: male;">
ふんふん(鼻息)</em>
<em style="voice-tone: snore; voice-type: male;">
狸寝入り(鼾)</em>
<em style="voice-tone: horny; voice-type: male gay;">
はあはあ</em>
<em style="voice-tone: stammer sweat; voice-type: male webmaster 37;">す、すみません(汗)</em>
<em style="voice-tone: sad; voice-type: male straight almost 38;">
弱腸で今日も悩んでます(泣)</em>
<em style="voice-tone: smile bombastic; voice-type: male comedian 25;">
詳しくはCSS2を参照(爆)</em>
最後に、本稿の例文が読み上げられないのは実体参照文字を使用しているからであって、本来のタグ表記ならば勿論問題はない事を附記しておく。
【前を読む】 【目次へ戻る】 【次を読む】