TTS 开发指导_Rev1.0
修订记录
版本 |
日期 |
作者 |
修订内容 |
|---|---|---|---|
1.0 |
2023-09-11 |
LHL、YHP |
创建文档 |
1.1 |
2024-03-25 |
sxx |
更改文档名称 |
1.2 |
2024-09-11 |
LHL |
新增 liot_tts_engine_init 注册回调函数返回值说明、音量设置测试数据、16K 库使用说明。修改 liot_pUserCallback、liot_tts_end、liot_tts_exit 和 liot_tts_is_running 函数说明、更改了示例 demo,demo 中增加了 GBK、Unicode 编码播放用例和 PWM、codec 播放选择接口。 |
1.3 |
2024-11-07 |
zw |
修改文档格式,删除 demo。 |
1.4 |
2025-04-01 |
zlc |
增加外挂 flash 测试与烧录指导 |
1.5 |
2025-08-29 |
zlc |
增加讯飞《Aisound5 简单文本标注用户手册》手册,方便客户参考对特殊数据的处理。 |
1.6 |
2025-12-30 |
zlc |
修改使能 TTS 不同采样率的方式。 |
1.7 |
2026-04-28 |
mbb |
根据底包分离版本更新文档内容、增加快速上手指南。 |
1简介
本文档介绍 LTE-EC71X 平台的 TTS(Text-to-Speech,文本转语音)接口 API 情况。API 接口声明位于 LSDK/components/kernel/lierda_api/liot_tts/liot_tts.h 文件中。
1.1 默认 Demo 配置
输出格式:默认 Demo 中 TTS 输出 PCM 采样率为 8K,支持中文。
SDK 支持范围:SDK 支持多种采样率和语言组合,包括:
8K 中文(8k_zh)
16K 中文(16k_zh)
8K 英文(8k_en)
16K 英文(16k_en)
文本编码支持:TTS 引擎支持以下文本输入编码格式,可通过 liot_tts_set_config_param 接口配合 LIOT_TTS_CONFIG_ENCODING 进行配置:
UTF-8(默认)
GBK
UCS-2
1.2 资源文件说明
资源文件格式:当前 SDK 中 TTS 资源文件为 .bin 格式,存放于 LSDK/components/tts/ 目录下。不同采样率和语言对应的资源文件如下:
资源文件名 |
采样率/语言 |
大小(约) |
|---|---|---|
ttsRes_8k_zh.bin |
8K 中文 |
527 KB |
ttsRes_16k_zh.bin |
16K 中文 |
603 KB |
ttsRes_8k_en.bin |
8K 英文 |
603 KB |
ttsRes_16k_en.bin |
16K 英文 |
590 KB |
资源加载方式:TTS 资源文件在编译时通过打包工具自动写入模组内部 Flash 的 TTS 专用区域。运行时通过 liot_tts_set_resource 接口设置资源读取回调,TTS 引擎会在需要时通过回调从 Flash 中读取资源数据。无需将资源文件加载到 RAM 中,可有效节省内存。
1.3 SDK 配置指南
使能 TTS 功能并选择资源类型,需进行以下配置:
步骤 1:使能 TTS 组件编译
打开 LSDK/rules/Makefile.defs 文件,将 BUILD_COMP_TTS_EN 设置为 y:
BUILD_COMP_TTS_EN ?= y
步骤 2:选择 TTS 资源类型
在同一文件中,通过 TTS_RESOURCE_TYPE 选择需要的采样率和语言组合:
# TTS_RESOURCE_TYPE values
# 8kzh : 8K采样率+中文
# 16kzh : 16K采样率+中文
# 8ken : 8K采样率+英语
# 16ken : 16K采样率+英语
TTS_RESOURCE_TYPE ?= 8kzh
例如,需要使用 16K 中文采样率,将 TTS_RESOURCE_TYPE 修改为 16kzh 即可。底层库会根据资源类型自动适配,无需手动替换库文件。
步骤 3:使能 TTS Demo(可选)
如需编译运行 TTS Demo,打开 LSDK/examples/demo/config,将 EXDEMO_TTS_EN 设置为 y:
EXDEMO_TTS_EN ?= y
完成上述配置后,正常编译即可。编译过程中,系统会自动将对应的 .bin 资源文件打包到固件中。
1.4 Aisound5 文本标注使用说明
Aisound5 是讯飞提供的 TTS 文本标注系统,当用户需要对 TTS 合成效果进行精细化控制时使用,主要应用场景包括:
数字读法控制:如将 “1200” 控制为读作"一千二百"(金额方式)或"一二零零"(号码方式)。
发音人切换:在一段话中动态切换不同发音人。
语速/语调/音量精细调节:在文本中某一段落单独设置语速、语调或音量。
多音字处理:对存在多种读音的汉字指定正确的读音。
音效设置:如回声、机器人、合唱等特殊音效。
英文数字 0 读法:控制读作 “O” 还是 “zero”。
Aisound5 通过在待合成文本中嵌入特定标记来实现上述功能,标记格式为 [标记符*]。例如:
[n1]1200:将 “1200” 按号码方式朗读(读作"一二零零")。[n2]1200:将 “1200” 按数值方式朗读(读作"一千二百")。[s8]这段文字会较快朗读:设置语速为 8(较快)。[m3]这段文字使用晓燕发音:切换发音人为晓燕。
接口配置说明:使用 Aisound5 文本标注时,需确保文本编码格式与 TTS 引擎配置一致。通过 liot_tts_set_config_param(LIOT_TTS_CONFIG_ENCODING, LIOT_TTS_UTF8) 设置输入文本为 UTF-8 编码(默认),然后将包含标注标记的文本传入 liot_tts_start() 即可。
详细标注语法请参考本文档附录《Aisound5 简单文本标注用户手册》。
2 API 函数概览
函数 |
说明 |
|---|---|
|
初始化 TTS 引擎 |
|
播放 TTS 前设置配置选项 |
|
获取 TTS 的配置选项 |
|
开始播放 TTS |
|
TTS 播放完成时释放占用资源 |
|
中断 TTS 播放并退出 TTS |
|
返回 TTS 运行状态 |
|
设定 TTS 资源 |
|
将 UTF-8 编码字符串转成 GBK 编码字符串 |
3 类型说明
3.1 liot_tts_errcode_e
TTS API 执行结果错误码。
声明
typedef enum
{
LIOT_TTS_SUCCESS = LIOT_SUCCESS,
LIOT_TTS_UNKNOWN_ERROR = 901 | (LIOT_COMPONENT_AUDIO_TTS << 16),
LIOT_TTS_INVALID_PARAM = 902 | (LIOT_COMPONENT_AUDIO_TTS << 16),
LIOT_TTS_OPERATION_NOT_SUPPORT = 903 | (LIOT_COMPONENT_AUDIO_TTS << 16),
LIOT_TTS_DEVICE_BUSY = 904 | (LIOT_COMPONENT_AUDIO_TTS << 16),
LIOT_TTS_INIT_ENGINE_ERR = 2001 | (LIOT_COMPONENT_AUDIO_TTS << 16),
LIOT_TTS_INIT_SOURCE_ERR = 2002 | (LIOT_COMPONENT_AUDIO_TTS << 16),
LIOT_TTS_START_ERR = 2003 | (LIOT_COMPONENT_AUDIO_TTS << 16),
LIOT_TTS_STOP_ERR = 2004 | (LIOT_COMPONENT_AUDIO_TTS << 16),
LIOT_TTS_EXIT_ERR = 2005 | (LIOT_COMPONENT_AUDIO_TTS << 16)
} liot_tts_errcode_e;
参数说明
参数 |
描述 |
|---|---|
LIOT_TTS_SUCCESS |
函数执行成功 |
LIOT_TTS_UNKNOWN_ERROR |
未知错误 |
LIOT_TTS_INVALID_PARAM |
无效参数 |
LIOT_TTS_OPERATION_NOT_SUPPORT |
不支持该操作 |
LIOT_TTS_DEVICE_BUSY |
TTS 正在播放 |
LIOT_TTS_INIT_ENGINE_ERR |
TTS 引擎初始化失败 |
LIOT_TTS_INIT_SOURCE_ERR |
TTS 数据库异常 |
LIOT_TTS_START_ERR |
TTS 开始播放失败 |
LIOT_TTS_STOP_ERR |
TTS 停止播放失败 |
LIOT_TTS_EXIT_ERR |
TTS 退出失败 |
3.2 liot_tts_config_e
TTS 配置类型枚举信息。
声明
typedef enum
{
LIOT_TTS_CONFIG_SPEED = 1,
LIOT_TTS_CONFIG_VOLUME,
LIOT_TTS_CONFIG_ENCODING,
LIOT_TTS_CONFIG_ROLE,
LIOT_TTS_CONFIG_READ_DIGIT,
LIOT_TTS_CONFIG_MAX
} liot_tts_config_e;
参数说明
角色、数字朗读、多音字处理等可以通过语音标注方式,详细参考本文档附录《Aisound5 简单文本标注用户手册》。
参数 |
描述 |
|---|---|
LIOT_TTS_CONFIG_SPEED |
设置播放 TTS 的速度 |
LIOT_TTS_CONFIG_VOLUME |
设置播放 TTS 的音量 |
LIOT_TTS_CONFIG_ENCODING |
设置输入的文本格式,详见 4.3 |
LIOT_TTS_CONFIG_ROLE |
角色播放配置 |
LIOT_TTS_CONFIG_READ_DIGIT |
数字朗读配置,如 1200 默认为金额方式"一千二百",设置完按照数字 1200 进行播放 |
LIOT_TTS_CONFIG_MAX |
非设置参数,仅用于限制输入参数范围,输入参数不得大于等于该值 |
3.3 liot_tts_encoding_e
TTS 输入编码格式枚举信息。
声明
typedef enum
{
LIOT_TTS_GBK = 0,
LIOT_TTS_UTF8,
LIOT_TTS_UCS2
} liot_tts_encoding_e;
参数说明
参数 |
描述 |
|---|---|
LIOT_TTS_GBK |
输入为 GBK 编码格式 |
LIOT_TTS_UTF8 |
输入为 UTF-8 编码格式 |
LIOT_TTS_UCS2 |
输入为 UCS-2 编码格式 |
3.4 liot_pUserCallback
TTS 用户回调函数类型。
声明
typedef int (*liot_pUserCallback)(void *context, int msg, int ds, int param2, int dSize, const void *dBuffer);
参数
context: 用户回调参数。
msg: 消息类型,目前固定为 0。
ds: 输出数据代码。
param2: TTS 配置选项,目前固定为 0。
dSize: 输出数据大小。
dBuffer: 输出数据数组。
返回值
0 为正常运行。
任意非 0 值为停止转换。
可通过返回任意非 0 值来达成中断 TTS 转换的效果。(注意:返回非 0 值只能中断 TTS 转换,若要中断音频播放,还需调用音频相关函数。)
3.5 liot_read_res_cb
TTS 资源获取回调函数。
声明
typedef bool (*liot_read_res_cb)(void *pParameter, void *pBuffer, uint32_t iPos, uint32_t nSize);
参数
pParameter: TTS 资源库首地址。
pBuffer: 相关资源存放地址。
iPos: 所提取资源的地址偏移量。
nSize: 所提取资源的大小。
返回值
返回 true 表示读取成功,false 表示读取失败。
4 API 函数详解
4.1 liot_tts_engine_init
初始化 TTS 引擎。
声明
liot_tts_errcode_e liot_tts_engine_init(liot_pUserCallback mCallback);
参数
mCallback: [In] 回调函数。用于将解析得到的音频数据发送至应用层,在调用
liot_tts_start()开始文本转换后就会进入此回调函数。
返回值
liot_tts_errcode_e:执行结果码,请参考 4.1。
4.2 liot_tts_set_config_param
播放 TTS 前设置配置选项。
声明
liot_tts_errcode_e liot_tts_set_config_param(liot_tts_config_e type, int value);
参数
type: [In] TTS 的配置类型,详见 4.2。
value: [In]
对应播放速度:-32768 ~ 32767;
播放音量大小:-32768 ~ 32767;
解码格式:0-GBK,1-UTF-8,2-Unicode。
返回值
liot_tts_errcode_e:执行结果码,请参考 4.1。
4.3 liot_tts_get_config_param
获取 TTS 的配置选项。
声明
int liot_tts_get_config_param(liot_tts_config_e type);
参数
type: [In] TTS 的配置类型,详见 4.2。
返回值
获取成功返回配置参数值,获取失败返回执行结果码,请参考 4.1。
4.4 liot_tts_start
开始 TTS 转换函数。此函数实现是同步功能,调用此函数后,会进行 TTS 转换,转换期间会阻塞,直至全部输入数据转换完成。
声明
liot_tts_errcode_e liot_tts_start(const char *textString, unsigned int textLen);
参数
textString: [In] 输入 UTF-8、GBK 或者 UCS-2 格式的字符串,默认输入类型为 UTF-8。
textLen: [In] 输入字符串的长度。
返回值
liot_tts_errcode_e:执行结果码,请参考 4.1。
4.5 liot_tts_end
TTS 结束后需要退出 TTS,可调用此函数退出 TTS。下次 TTS 开始时可直接调用 liot_tts_start,无需再次初始化。需在 liot_tts_exit 函数之前调用。
声明
liot_tts_errcode_e liot_tts_end(void);
参数
无。
返回值
liot_tts_errcode_e:执行结果码,请参考 4.1。
4.6 liot_tts_exit
释放 TTS 占用资源,此函数用于退出后释放 TTS 资源。调用此函数后,若需再次进行 TTS 转换,需要调用 liot_tts_engine_init 函数进行初始化。需在 liot_tts_end 函数之后调用。
声明
liot_tts_errcode_e liot_tts_exit(void);
参数
无。
返回值
liot_tts_errcode_e:执行结果码,请参考 4.1。
4.7 liot_tts_is_running
返回 TTS 引擎是否在运行状态。
声明
int liot_tts_is_running(void);
参数
无。
返回值
1:正在运行。调用
liot_tts_engine_init函数后 TTS 引擎就会一直运行。0:未运行。调用
liot_tts_exit函数后会停止 TTS 引擎运行。
4.8 liot_tts_set_resource
TTS 资源设定。
声明
void liot_tts_set_resource(void *pParameter, liot_read_res_cb rd_res_cb);
参数
pParameter: [In] TTS 资源库首地址。
rd_res_cb: [In] 资源读取回调函数。
返回值
无。
4.9 liot_utf8_to_gbk_str
将 UTF-8 编码字符串转成 GBK 编码字符串。
声明
void liot_utf8_to_gbk_str(void *utf8, int inputlen, int *outputlen, void *gbk);
参数
utf8: [In] 要转换的 UTF-8 字符串。
inputlen: [In] 要转换的 UTF-8 字符串的长度。
outputlen: [Out] 输出的 GBK 字符串的长度。
gbk: [Out] 输出的 GBK 字符串。
返回值
无。
5 音量测试数据
测试环境:NT26KCNB20NNA 模组、TM8211、4 欧 3 瓦喇叭,播放 5 秒语音,取 5 秒内分贝变化平均值。
每组数据测试三次,取平均值(手工测量及设备差异存在误差,请以实际使用为准。)
音量值每增加 10000,声音强度增强 2 倍到 3 倍之间,设置值越靠近极限值,声音强度增强或衰弱倍数更大。
设置值 |
测量数据 |
|---|---|
30000 |
76 dB |
20000 |
72 dB |
10000 |
68 dB |
0 |
65 dB |
-10000 |
61 dB |
-20000 |
56 dB |
-30000 |
48 dB |
6 16K 库使用说明
当前 SDK 中,使用 16K 采样率库的方法非常简单,只需修改资源类型配置即可,底层会自动完成库文件适配,无需手动替换库文件。
打开
LSDK/rules/Makefile.defs文件。将修改为需要的 16K 类型,例如使用 16K 中文:
TTS_RESOURCE_TYPE ?= 16kzh #可选值包括:8kzh(默认)、16kzh、8ken、16ken。
保存后重新编译即可。编译系统会根据
TTS_RESOURCE_TYPE自动选择对应的资源文件并打包到固件中。
注意: 使用 16K 采样率时,音频硬件配置(如 Liot_SndHwConfig_t 中的 samples 字段)需对应设置为 L_SND_16K_SAMPLES,以确保音频播放采样率与 TTS 输出采样率匹配。
7 快速上手指南
本节根据 LSDK/examples/demo/src/demo_tts.c 提供 TTS 功能的快速入门指导。
7.1 硬件准备
EC71X 模组
ES8311 音频编解码芯片
I2C 接口(连接 ES8311)
I2S 接口(音频数据输出)
功放 GPIO(控制扬声器电源)
4 欧 3 瓦喇叭
7.2 软件配置
在
LSDK/rules/Makefile.defs中使能 TTS:
BUILD_COMP_TTS_EN ?= y
TTS_RESOURCE_TYPE ?= 8kzh
在
LSDK/examples/demo/config中使能 TTS Demo:
EXDEMO_TTS_EN ?= y
在
LSDK/examples/Makefile中控制编译 Demo:
PROJECT ?= demo
7.3 代码示例
以下是一个完整的 TTS 播放示例代码,基于 demo_tts.c:
#include "liot_type.h"
#include "liot_sound.h"
#include "liot_log.h"
#include "liot_os.h"
#include "liot_gpio2.h"
#include "liot_tts.h"
#include <string.h>
#include "mem_map.h"
#include "liot_flash.h"
const char* playbuf = "利尔达公司欢迎您";
static int ttsUserCallback(void *context, int msg, int ds, int param2, int dSize, const void *dBuffer)
{
Liot_SoundPlay((uint8_t *)dBuffer, dSize);
return 0;
}
static bool user_read_res_cb(void *pParameter, void *pBuffer, uint32_t iPos, uint32_t nSize)
{
liot_flash_read((uint8_t *)pBuffer, (uint32_t)((uint8_t *)pParameter + iPos), nSize);
return true;
}
void liot_tts_demo_thread(void *argv)
{
liot_rtos_task_sleep_ms(2000);
Liot_AonPowerCtl(TRUE);
Liot_SetVoltage(L_DOMAIN_ALL, L_VOLT_3_30V);
Liot_SndHwConfig_t cfg = {
.i2cNum = 1,
.i2sNum = 0,
.paGpioNum = 8,
.codecType = L_SND_ES8311,
.channel = L_SND_MONO_RIGHT,
.role = L_SND_ROLE_SLAVE,
.mode = L_SND_MODE_I2S,
.frameSize = L_SND_FRAMESIZE_16_16,
.samples = L_SND_08K_SAMPLES,
};
liot_trace("Liot_SoundInit");
Liot_SoundInit(&cfg);
Liot_SoundSetVolume(60);
liot_tts_set_resource((void *)PKGFLXTTS_RES_ADDR, user_read_res_cb);
liot_tts_engine_init(ttsUserCallback);
while (1)
{
liot_tts_start(playbuf, strlen(playbuf));
liot_rtos_task_sleep_ms(5000);
}
liot_tts_end();
liot_tts_exit();
Liot_SoundDeInit();
liot_rtos_task_delete(0);
}
7.4 关键步骤说明
步骤 |
函数 |
说明 |
|---|---|---|
1 |
Liot_SoundInit() |
初始化音频硬件(I2C、I2S、Codec) |
2 |
liot_tts_set_resource() |
注册 TTS 资源地址和读取回调 |
3 |
liot_tts_engine_init() |
初始化 TTS 引擎,注册音频输出回调 |
4 |
liot_tts_start() |
启动 TTS 文本合成(同步阻塞) |
5 |
liot_tts_end() |
结束当前 TTS 会话(可再次 start) |
6 |
liot_tts_exit() |
完全释放 TTS 引擎资源 |
附录:Aisound5 简单文本标注用户手册
为了 TTS 合成效果更好,以及用户可自行控制合成效果,我们提供了一套标记设置。通过这些标记可完善 TTS 合成效果,用户也可以自行设置如何合成。例如:123 合成数值还是数字,通过文本标注 [n*],用户即可设置朗读方式。
详细情况如下:
1. 设置文本范围为非受限集
格式:
[ ]说明:默认为没有特殊处理。
2. 保留
格式:
[c*](*= 数值)说明:请勿在文本中包含这样的标记。
3. 恢复默认的合成参数
格式:
[d]说明:不能恢复语种和发音人,其他参数都可以恢复。
4. 设置音效模式
格式:
[e*](*= 0/1/2/3/4/5/6/7)参数:
0– 关闭1– 忽远忽近2– 回声3– 机器人4– 合唱5– 水下6– 混响7– 阴阳怪气
说明:默认为关闭。
5. 设置发音风格
格式:
[f*](*= 0/1/2)参数:
0– 一字一顿1– 平铺直叙2– 有声有色
说明:默认为平铺直叙风格。
6. 选择语种
格式:
[g*](*= 0/1/2/3)参数:
0– 自动判断1– 汉语普通话2– 英语语种3– 法语
说明:默认语种为自动判断。
7. 设置单词发音方式
格式:
[h*](*= 0/1/2)参数:
0– 自动判断单词发音方式1– 字母发音方式2– 单词发音方式
说明:默认单词为自动判断。
8. 设置输入文本对汉语拼音/英语音标的识别
格式:
[i*](*= 0/1)参数:
0– 不识别汉语拼音/英语音标1– 将"英文单词+1位数字"识别为汉语拼音,其他字母和音标形式识别为英语音标
说明:
默认为不识别汉语拼音/英语音标。
声调用后接一位数字
1~5分别表示阴平、阳平、上声、去声和轻声 5 个声调。有些拼音的标注方法和正常写法不一致,如下:
ê–ehm–fmn–fnng–fng
英语音标采取当前代码页的音标字母编码。
9. 保留
格式:
[j*](*= 数值)说明:请勿在文本中包含这样的标记。
10. 模式控制标记
格式:
[k*](*= 0/1/2/3)参数:
0– 设置为普通模式1– 设置为导航模式2– 设置为手机模式3– 设置为教育模式
说明:
默认设置为客户定制模式。
如果客户购买的资源里面有"普通模式"的资源,那么
[k0]就能设置成功。如果客户购买的资源里面有"导航模式"的资源,那么
[k1]就能设置成功。如果客户购买的资源里面有"手机模式"的资源,那么
[k2]就能设置成功。如果客户购买的资源里面有"教育模式"的资源,那么
[k3]就能设置成功。如果给定的应用模式的资源不存在,那么使用
[k*]设置该应用模式无效。
11. 选择发音人
格式:
[m*](*= 1~25 / 51~56 / 99)参数:
编号 |
发音人 |
编号 |
发音人 |
编号 |
发音人 |
|---|---|---|---|---|---|
1 |
天畅 |
13 |
Bush |
51 |
许久 |
2 |
文静 |
14 |
晓蓉 |
52 |
许多 |
3 |
晓燕 |
15 |
晓美 |
53 |
晓萍 |
4 |
小峰 |
16 |
安妮 |
54 |
唐老鸭 |
5 |
Sherri |
17 |
John |
55 |
许宝宝 |
6 |
晓晋 |
18 |
Anita |
56 |
大龙 |
7 |
楠楠 |
19 |
Terry |
99 |
用户自定义 |
8 |
晓婧 |
20 |
Catherine |
||
9 |
嘉嘉 |
21 |
TerryW |
||
10 |
玉儿 |
22 |
晓琳 |
||
11 |
晓倩 |
23 |
晓梦 |
||
12 |
老马 |
24 |
小强 |
||
25 |
小坤 |
说明:默认的发音人根据配置确定。
12. 选择中文发音人
格式:
[mc*](*= 1~25 / 51~56 / 99)说明:设置中文(包括中英文混读)发音人,默认的发音人根据配置确定。
13. 选择英文发音人
格式:
[me*](*= 1~25 / 51~56 / 99)说明:设置英文发音人,默认的发音人根据配置确定。
14. 设置数字处理策略
格式:
[n*](*= 0/1/2)参数:
0– 自动判断1– 数字作号码处理2– 数字作数值处理
说明:默认为自动判断。
15. 英文数字 0 的朗读设置
格式:
[o*](*= 0/1)参数:
0– 英文数字 0 读做"O"1– 英文数字 0 读做"zero"
说明:
默认为英文数字 0 读做"zero"。
注意:0 只有作为号码朗读时,标记才会生效,0 处理为数值时,一律读作 zero。
16. 静音一段时间
格式:
[p*](*= 无符号整数)参数:
*– 静音的时间长度,单位:毫秒(ms)
17. 设置姓名读音策略
格式:
[r*](*= 0/1)参数:
0– 自动判断姓名读音1– 强制使用姓名读音规则
说明:默认为自动判断姓名读音。
18. 设置语速
格式:
[s*](*= 0~10)参数:
0对应到-327655对应到010对应到+32765
说明:默认语速值为 5,语速的调节范围为默认语速的一半到两倍,即 0 的值比默认语速慢一半,10 的值比默认语速快一倍。
19. 设置语调
格式:
[t*](*= 0~10)参数:
0对应到-327655对应到010对应到+32765
说明:默认语调值为 5,语调的调节范围为默认语调基频下 64Hz 到上 128Hz。
20. 设置音量
格式:
[v*](*= 0~10)参数:
0对应到-327655对应到010对应到+32765
说明:音量的调节范围为静音到音频设备支持的最大值,默认值 5 为中间音量。
21. 设置提示音处理策略
格式:
[x*](*= 0/1)参数:
0– 不使用提示音1– 自动使用提示音
说明:默认为自动使用提示音。
22. 设置汉语号码中"1"的读法
格式:
[y*](*= 0/1)参数:
0– 合成号码时"1"读成"yāo"1– 合成号码时"1"读成"yī"
说明:默认合成号码时"1"读成"yāo"。
23. 设置韵律标注处理策略
格式:
[z*](*= 0/1)参数:
0– 不处理韵律标注1– 处理韵律标注
说明:默认不处理韵律标注。韵律标注使用
*标出音步划分位置,使用#标出呼吸群划分位置。
24. 为单个汉字/单词强制指定拼音/音标
格式:
[=*](*= 拼音/音标)参数:
*– 为前一个汉字/单词设定的拼音/音标说明:
汉字:声调用后接一位数字
1~5分别表示阴平、阳平、上声、去声和轻声 5 个声调。该标记只能放在非汉语拼音的汉语音节之后指定拼音,连续出现时以最后一个为准。有些拼音的标注方法和正常写法不一致,如下:
ê–ehm–fmn–fnng–fng
单词:音标格式为国际音标(IPA)。
示例:
"着[=zhuo2]手",“着"字将读作"zhuó”hello[=hə'lo]
PS:文本标记符全部是半角,字母必须是小写的英文字母,不符合要求的不作为文本标记。设置文本标记时,标记的位置很重要,如
"[n1]读作800"就比"读[n1]作800"的合成效果好,所以在使用时需注意,尽量放在朗读中有停顿的位置。