目录
文档的语音渲染与语音集成和“音频图标”结合,已经为盲人及有阅读障碍的团体广泛使用。通常情况下,这样的音频呈现是如此进行的:转换文档为纯文本,并将其输出到一个屏读机——一种将屏幕上的字符读出的软件或硬件。与保留文档机构的呈现相比,这样的结果的效果当然差一些。听觉呈现所使用的样式表属性可以和视觉属性合用(混合媒介)或作为视觉呈现的一个备选。
不谈很明显的可获得性方面的长处,听信息还是有很大的市场的,包括车内使用,工业、医学文档系统(内网),家庭娱乐,帮助正学习阅读或有阅读困难的用户学习阅读。
使用听觉属性的时候,画布包含了一个三维的物理空间(声音的环绕)和一个时间维度(可以指定一个声音在另一个声音之前、之中、之后)。CSS属性同样允许作者改变合成语音的质量(嗓音类型,频率,变形等)。
H1, H2, H3, H4, H5, H6 { voice-family: paul; stress: 20; richness: 90; cue-before: url("ping.au") } P.heidi { azimuth: center-left } P.peter { azimuth: right } P.goat { volume: x-soft }
这将指引语音合成器在说出头时用“paul”的嗓音(可以称为某种“音频字体”),语调平坦,但是语气丰富。在头被说出之前,会播放给定URL指向的声音。带有“heidi”类的段落听起来从左前方发出(如果声音系统支持立体声的话),而“peter”类的段落从右边发出。“goat”类的段落会特别柔和。
值: | <number> | <percentage> | silent | x-soft | soft | medium | loud | x-loud | inherit |
初始值: | medium |
适用于: | 所有元素 |
可否继承: | 可 |
百分比: | 相对于继承值 |
媒介: | 音频 |
音量参照于波形的中值音量。换句话说,一个高度扭曲的嗓音的音量为50,但实际可能远远超过这个数值。总体数值可以由人工调节到舒服的层次,例如通过物理的音量调节(它会同时等比提高0和100的值);该属性所做的只是调节动态范围。
取值的含义如下:
用户端应该允许对应于'0'和'100'的值由听众来设置。没有一个设置是放诸四海而皆准的;合适的值取决于适用的设备(扬声器,耳麦),环境(车内,家庭影院,图书馆)以及个人爱好。我们可以举一些例子:
所有的情形下,可以应用相同的作者样式表,只要简单的将'0'和'100'的值映射到适合客户端的状态就可以了。
该属性指出文本是否应以音频渲染,如果是的话,又应以何种方式(有点类似'display'属性)。可以的取值为:
注意,元素的'volume'属性为'silent'以及元素的'speak'属性为'none'之间的区别。前者和讲出它(包括任何之前之后的停顿)需要一样的时间,只是不出声。后者不需要任何时间也不会被渲染(尽管它的后代可能会)。
值: | <time> | <percentage> | inherit |
初始值: | 取决于用户端 |
适用于: | 所有元素 |
可否继承: | 否 |
百分比: | 参见下文 |
媒介: | 音频 |
值: | <time> | <percentage> | inherit |
初始值: | 取决于用户端 |
适用于: | 所有元素 |
可否继承: | 否 |
百分比: | 参见下文 |
媒介: | 音频 |
这些属性在说出元素的内容前(或后)出现一个暂停。取值的含义如下:
暂停插入在元素内容和任何'cue-before'或'cue-after'内容之间。
作者应该使用相对单位来创建更健壮的样式表,因为说话速度可能有很大变化。
值: | [ [<time> | <percentage>]{1,2} ] | inherit |
初始值: | 取决于用户端 |
适用于: | 所有元素 |
可否继承: | 否 |
百分比: | 参见'pause-before'和'pause-after'的说明 |
媒介: | 音频 |
'pause'属性是设置'pause-before'和'pause-after'的快捷方式。如果给出两个值,第一个是'pause-before'而第二个是'pause-after'。如果只给一个值,它适用于两个属性。
H1 { pause: 20ms } /* pause-before: 20ms; pause-after: 20ms */ H2 { pause: 30ms 40ms } /* pause-before: 30ms; pause-after: 40ms */ H3 { pause-after: 10ms } /* pause-before: ?; pause-after: 10ms */
值: | <uri> | none | inherit |
初始值: | none |
适用于: | 所有元素 |
可否继承: | 否 |
百分比: | N/A |
媒介: | 音频 |
值: | <uri> | none | inherit |
初始值: | none |
适用于: | 所有元素 |
可否继承: | 否 |
百分比: | N/A |
媒介: | 音频 |
音频图标是另外一种方式来区分语意符号。在元素之前和/或之后可以播放声音以加以界定。取值的含义如下:
A {cue-before: url("bell.aiff"); cue-after: url("dong.wav") } H1 {cue-before: url("pop.au"); cue-after: url("pop.au") }
值: | [ <'cue-before'> || <'cue-after'> ] | inherit |
初始值: | 对快捷属性未指定 |
适用于: | 所有元素 |
可否继承: | 否 |
百分比: | N/A |
媒介: | 音频 |
'cue'属性是设置'cue-before'和'cue-after'的快捷属性。如果给出两个数值,那么第一个是'cue-before'而第二个是'cue-after'。如果只给出一个值,它适用于两个属性。
下面两条规则是等价的:
H1 {cue-before: url("pop.au"); cue-after: url("pop.au") } H1 {cue: url("pop.au") }
如果用户端不能渲染一个音频图标(例如,用户环境不允许如此),我们建议它产生一个替换的提示(例如,弹出一个警告,发出一个警告声等)。
参见:before及:after伪元素以了解其它的内容生成技术的信息。
值: | <uri> mix? repeat? | auto | none | inherit |
初始值: | auto |
适用于: | 所有元素 |
可否继承: | 否 |
百分比 | N/A |
媒介: | 音频 |
和'cue-before'和'cue-after'属性类似,该属性指定了当某元素的内容被说出时播放的声音。取值含义如下:
BLOCKQUOTE.sad { play-during: url("violins.aiff") } BLOCKQUOTE Q { play-during: url("harp.wav") mix } SPAN.quiet { play-during: none }
空间音频是音频呈现的一个重要的样式属性。它提供了一种自然的方式来区别各个声音,就象在生活中那样(人们很少会都呆在房间里的同一个地方)。立体声喇叭可以产生一个横向的声音平台。双耳耳机或者越来越流行的5喇叭家庭影院设置可以生成完全的环绕声音,而多喇叭设置可以创造一个真实的3D声音平台。VRML 2.0也包含空间音频,也意味着随着时间的退役,消费者购买的起的空间音频硬件会越来越普及。
取值含义如下:
要实现该属性很可能是通过以不同音量在不同声道中混合同一个信号而实现的。也可以通过相位平移,数字延迟以及其它技术来提供声音平台的假象。达到这个效果的确切方法以及使用的音箱数量取决于用户端;该属性很少指明需要的终端效果。
H1 { azimuth: 30deg } TD.a { azimuth: far-right } /* 60deg */ #12 { azimuth: behind far-right } /* 120deg */ P.comment { azimuth: behind } /* 180deg */
如果指定了空间角度而输出设备不能产生相对听的位置后面的声音,用户应该将后半球的数值转换到前半球的数值。有一种方法是这样的:
值: | <angle> | below | level | above | higher | lower | inherit |
初始值: | level |
适用于: | 所有元素 |
可否继承: | 可 |
百分比: | N/A |
媒介: | 音频 |
取值含义如下:
并未定义实现这些效果的确切方法和用多少扬声器。该属性只是指出了需要的终端效果。
H1 { elevation: above } TR.a { elevation: 60deg } TR.b { elevation: 30deg } TR.c { elevation: level }
值: | <number> | x-slow | slow | medium | fast | x-fast | faster | slower | inherit |
初始值: | medium |
适用于: | 所有元素 |
可否继承: | 可 |
百分比: | N/A |
媒介: | 音频 |
该属性指定了说话速率。注意可以使用绝对和相对关键字值(和'font-size'比较)。取值的含义如下:
值: | [[<specific-voice> | <generic-voice> ],]* [<specific-voice> | <generic-voice> ] | inherit |
初始值: | 取决于用户端 |
使用于: | 所有元素 |
可否继承: | 可 |
百分比: | N/A |
媒介: | 音频 |
这些值是以逗号分割,优先排列的语音家族列表(和'font-family'比较)。取值含义如下:
H1 { voice-family: announcer, male } P.part.romeo { voice-family: romeo, male } P.part.juliet { voice-family: juliet, female }
特定嗓音的名字可以加引号。如果构成名称的任何单字不符合表征化语法规则的话,则必须加引号。如果一个名称包含超过一个单字,也推荐用引号分割。如果不加引号,在嗓音前后的任何空白字符都被忽略,而且嗓音名称内任何序列的空白都会转化为单一空格。
值: | <frequency> | x-low | low | medium | high | x-high | inherit |
初始值: | medium |
适用月: | 所有元素 |
可否继承: | 可 |
百分比: | N/A |
媒介: | 音频 |
指定说话嗓音的平均尖锐度(频率)。嗓音的平均尖锐度取决于语音家族。例如,标准男声的平均尖锐度是120Hz左右,而对于女声,是大约210Hz。
取值的含义如下:
值: | <number> | inherit |
初始值: | 50 |
适用于: | 所有元素 |
可否继承 | 可 |
百分比: | N/A |
媒介: | 音频 |
指定了平均锐度的变化范围。我们所感觉到的人声锐度由基准频率决定。通常,男声是120Hz而女声是210Hz。人类语言说出时都带有可变锐度;这些变化带来了额外的含义和重点。因此,一种高度活泼的声音,也就是高度变形的声音,会呈现高的锐度区间。该属性指定了这些变化的范围,亦即基准频率可以在多大的程度上偏移平均锐度。
取值含义如下:
指定了语音的语调轮廓的“局部高峰”的高度。例如,英语是一个有强调的语种,一句话中的不同部分有首要,次要,再次的强调之分。'stress'的值控制着基于这些强调标记的变形数量的结果。该属性是'pitch-range'属性的伴随属性,用来允许开发者开发高端音频渲染。
取值含义如下:
值: | <number> | inherit |
初始值: | 50 |
适用于: | 所有元素 |
可否继承: | 可 |
百分比 | N/A |
媒介: | 音频 |
指定语音的丰度或亮度。一个丰满的声音可以“充填”一个大房间,而平滑的声音则不能。(“平滑”指的是波形画出时的样子。)
取值含义如下:
一个额外的讲话属性speak-header在关于表格一章中讲述。
值: | code | none | inherit |
初始值: | none |
适用于: | 所有元素 |
可否继承: | 可 |
百分比: | N/A |
媒介: | 音频 |
该属性指定如何说标点符号。取值含义如下:
值: | digits | continuous | inherit |
初始值: | continuous |
适用于: | 所有元素 |
可否继承: | 可 |
百分比: | N/A |
媒介: | 音频 |
该属性控制如何说出数字。取值含义如下: