移动端 NUI SDK 可将文本合成为语音,支持选择音色、设置音频格式,以及调整语速、语调和音量。
功能介绍
NUI SDK 提供全链路语音能力,也可单独用于语音合成。语音合成支持输出 PCM、WAV、MP3 格式的音频数据,并通过回调返回合成数据和事件。
支持的音色、语种、采样率和时间戳能力,请参见音色列表。在移动端 SDK 中,通过 font_name 设置音色,其取值对应音色列表中的 voice 参数值。
使用限制
传入的文本必须采用 UTF-8 编码。
-
短文本合成单次最多处理 300 个字符,超出部分会被截断。
需要合成超过 300 个字符的文本时,将
tts_version设置为"1",使用长文本合成模式。
服务地址
初始化 SDK 时,通过 url 设置服务地址。
|
访问方式 |
地域 |
URL |
|
公网 |
上海(默认) |
|
|
北京 |
|
|
|
深圳 |
|
|
|
ECS 内网 |
上海 |
|
|
北京 |
|
|
|
深圳 |
|
使用华东 2(上海)、华北 2(北京)或华南 1(深圳)的 ECS 实例时,可通过专有网络访问相应地域的内网地址,不产生 ECS 实例的公网流量费用。经典网络不支持访问语音服务,需使用专有网络。
交互流程
鉴权与初始化
客户端建立 WebSocket 连接时,使用 NLS Token 鉴权。获取方法请参见获取Token。
初始化时传入以下参数。Android SDK 使用 tts_initialize 方法,参数以 JSON 字符串传入。
|
参数 |
类型 |
说明 |
|
app_key(必选) |
String |
控制台中创建的项目 Appkey。 |
|
token(必选) |
String |
有效期内的 NLS Token。可在初始化时设置,也可通过参数设置更新。 |
|
device_id(必选) |
String |
能够唯一标识设备的标识符,例如 MAC 地址、SN 或 UniquePsuedoID。 |
|
mode_type(必选) |
String |
在线语音合成模式,设置为字符串 |
|
url |
String |
服务地址。使用与项目和 Token 对应的服务地址。 |
|
workspace(必选) |
String |
工作目录路径,SDK 从该路径读取配置文件。使用 Android SDK 2.7.4 进行纯在线合成时,此参数可省略。 |
开始合成
初始化完成后,通过 setparamTts 设置合成参数,再发起语音合成请求。
|
参数 |
类型 |
说明 |
|
app_key |
String |
项目 Appkey。初始化时已设置的值可继续使用。 |
|
token |
String |
需要更新鉴权 Token 时设置。 |
|
font_name |
String |
音色,默认值为 |
|
encode_type |
String |
音频编码格式,支持 |
|
sample_rate |
String |
音频采样率,单位为 Hz,默认值为 |
|
volume |
String |
音量,取值范围为 0~2,默认值为 |
|
speed_level |
String |
语速,取值范围为 0~2,默认值为 |
|
pitch_level |
String |
语调,取值范围为 -500~500,默认值为 |
|
enable_subtitle |
String |
时间戳开关, |
|
tts_version |
String |
合成模式。 |
|
扩展参数 |
类型 |
说明 |
|
direct_host |
String |
支持客户端自行完成 DNS 解析后,传入 IP 地址访问服务。 |
|
custom_params |
String |
设置交互协议支持、但未在上述参数中列出的参数。以 |
接收合成数据
服务端返回合成的语音二进制数据,SDK 通过回调提供音频数据。
结束合成
合成完成后,服务端发送合成完毕事件通知。
错误码
语音合成发生错误时,SDK 上报 TTS_EVENT_ERROR 事件并提供错误信息。
错误码含义和处理方法,请参见错误码查询。