密级 | 公开 |
---|---|
版本 | 10D.2 |
AICP TTS 优化指南
#
1. 概述本文档描述 AICP-10 平台中 TTS 能力的合成声音优化的方法,主要包括:
- 自定义标记
- S3ML语言
- 外部规则
#
2. 自定义标记自定义标记通过在文本中增加简单的标记,来对合成声音进行控制和优化。
标记 | 含义 | 示例 |
---|---|---|
空格 | 文字间短停顿 | - |
· | 文字间短停顿,和空格差别不大,空格可能略显突兀,点比较柔和 | 请问·有什么可以帮您? |
"" | 引号强制分词 | - |
` | 强制电报读法、数字间短停顿 | 2013年8月,请输入 `201308 |
单个^ | 强制数目读法、去掉停顿 | 您还可以根据^需要·简短地说出需求 |
【】 | 区域控制符,其中的文字可以独立调整语速和几个词停顿一次 | - |
〖〗 | 强制首字姓氏发音 | 请问您是〖曾志伟〗先生吗? |
#
3. S3ML语言TTS 能力支持使用 S3ML 标记语言来对合成声音进行控制和优化。但目前的版本只能支持部分标记。
#
3.1 SSML介绍SSML (Speech Synthesis Markup Language)语音合成标记语言定义了一套丰富的,基于XML的标记语言以支持在Web语音浏览器或者其它应用程序中生成合成语音。这一标记语言的的主要作用在于提供给合成内容的作者一个标准的方法来控制语音的各个方面,例如发音、音量、语速、基频等。
SSML目前是W3C的草案,具体内容参见 http://www.w3.org/TR/speech-synthesis/。
#
3.2 S3ML介绍捷通华声语音合成系统定义了S3ML(SinoVoice Speech Synthesis Markup Language)即捷通华声语音标记语言。S3ML符合基本的SSML规范,但更为详细地定义了SSML没有精确定义的部分(例如say-as
的具体语法),同时也支持一些针对中文语音合成的扩展。
#
3.3 支持的标签#
3.3.1 speak- 描述:
<speak>
标签是所有待支持S3ML标签的根节点。一切需要调用S3ML标签的文本或其他标签都要包含在<speak></speak>
中。
- 语法格式:
#
3.3.2 prosody- 描述:
<prosody>
标签控制语音输出的音量、音高和语速。其属性均为可选,但必须至少有一项,否则没有意义。如果某个属性的值是非法的,则忽略此属性。
- 格式:
- 属性
属性名称 | 属性类型 | 属性值 | 必选 | 描述 |
---|---|---|---|---|
pitch | String | {"x-high","high","medium","low","x-low","default} | 否 | 基频的高低 |
rate | String | {"x-high","high","medium","low","x-low","default} | 否 | 语速的快慢 |
volume | String | {"x-high","high","medium","low","x-low","default} | 否 | 音量的大小 |
- 示例:
#
3.3.3 mark标签- 描述:
一个空标记,用于在文档中放入一个标签,它可以用于在文本/标记序列中快速查找某个特定位置,也可以在输出语音流中的相同位置放置一个标签以便通知用户。
- 格式:
- 属性:
属性名称 | 属性类型 | 属性值 | 必选 | 描述 |
---|---|---|---|---|
name | String | 标记元素的值,长度不能超过256字节(包含引号) | 是 | 标记的名称 |
- 示例:
当前版本不支持进度回调,因此此tag无效
#
4. 外部规则使用外部工具修改合成的规则文件,然后放到音库目录下。
目前只能是做静态更新,也即替换文件后需要重启服务器。