使用原生 SDK 将 Sambert 模型的实时文本转语音功能集成到 Android 应用中。
Sambert Android SDK 为 Android 应用提供原生实时语音合成能力。它通过 WebSocket 连接在合成过程中流式传输音频数据。
将这些参数以 JSON 字符串形式传入
在调用
初始化语音合成 SDK 实例。SDK 为单例模式,在调用
方法签名
参数
返回值
返回错误码,参见错误码参考。
以键值对形式设置语音合成效果参数。在
参数
返回值
返回错误码,参见错误码参考。
获取参数值。主要用于问题排查。
方法签名
参数
返回值
返回参数值。
启动语音合成任务,结果通过回调返回。
方法签名
快速开始
1
获取 API Key
获取 API Key 并将其配置为环境变量以确保安全。为第三方应用或用户提供临时访问权限,或需要对敏感操作进行严格控制时,使用临时 API Key。临时 API Key 默认 60 秒后过期。
2
下载 SDK 并运行示例
下载最新 SDK 包。解压后,在
app/libs 目录下找到 AAR 格式的 SDK 并添加到项目依赖中。如需在 Android C++ 工程中集成,可使用压缩包中的 android_libs 和 android_include 获取动态库和头文件。在 Android Studio 中打开项目,示例代码位于 DashSambertTtsActivity.java。替换 API Key 后运行示例即可体验功能。3
初始化 SDK
调用
tts_initialize,在 ticket JSON 字符串中传入连接参数。4
设置合成参数
通过
tts_initialize 的 ticket 参数设置连接与控制参数,通过 setparamTts 设置语音合成效果参数。5
开始合成
调用
startTts 开始语音合成,结果通过回调返回。6
接收音频数据
在
onTtsDataCallback 回调中接收音频数据。建议流式播放,如需本地保存,将音频数据追加到同一文件中直至合成结束。7
释放资源
任务结束后调用
tts_release 释放 SDK 资源。请求参数
连接与控制参数
将这些参数以 JSON 字符串形式传入 tts_initialize 的 ticket 参数。
| 参数 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
url | String | 是 | 服务地址,固定为 wss://dashscope.aliyuncs.com/api-ws/v1/inference。 |
apikey | String | 是 | API Key。建议使用短效临时 API Key以降低长期密钥泄露风险。 |
mode_type | String | 是 | 模式类型,语音合成在线模式固定为字符串 "2"。 |
device_id | String | 是 | 唯一标识终端用户的字符串,如应用内用户 ID 或客户端生成的设备标识。用于日志追踪和问题排查。 |
debug_path | String | 否 | 日志文件存储路径。仅在 tts_initialize 中 save_log 设置为 true 时生效。开启时必须设置该路径否则会报错。本地最多保留两个日志文件。 |
max_log_file_size | int | 否 | 单个日志文件最大大小(字节)。仅在 save_log 为 true 时生效。默认值 104857600(100 MiB)。 |
log_track_level | int | 否 | 过滤通过 onTtsLogTrackCallback 回调发送的日志内容。默认值 2。取值:0 = VERBOSE,1 = DEBUG,2 = INFO,3 = WARNING,4 = ERROR,5 = NONE(关闭回调)。日志条目仅在级别同时大于等于 log_track_level 和 tts_initialize 中设置的 level 时才会发送。 |
语音合成效果参数
在调用 startTts 之前通过 setparamTts 设置这些参数。
| 参数 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
model | String | 是 | 语音合成模型,参见下方模型列表。 |
format | String | 否 | 音频编码格式,支持 pcm、wav、mp3。默认值 pcm。 |
volume | String | 否 | 音量大小。默认值 50,取值范围 [0, 100]。音量与该值呈线性关系,0 为静音,100 为最大音量。 |
sample_rate | String | 否 | 采样率(Hz)。默认值为模型默认采样率。建议使用模型默认值,若不匹配服务端会进行重采样。 |
rate | String | 否 | 语速。默认值 1.0,取值范围 [0.5, 2.0]。小于 1.0 减慢,大于 1.0 加快。 |
pitch | String | 否 | 音调倍数。默认值 1.0,取值范围 [0.5, 2.0]。大于 1.0 升高音调,小于 1.0 降低音调。与感知音调的关系并非严格线性,建议测试找到合适的值。 |
word_timestamp_enabled | String | 否 | 是否开启词级别时间戳。默认值 0。取值:1 = 开启,0 = 关闭。 |
phoneme_timestamp_enabled | String | 否 | 是否开启音素级别时间戳。仅在 word_timestamp_enabled 为 1 时生效。默认值 0。取值:1 = 开启,0 = 关闭。 |
enable_audio_decoder | String | 否 | 是否开启内置音频解码器。默认值 0。当 format 为 mp3 时,设置为 "1" 可启用 SDK 内置解码器,onTtsDataCallback 将返回解码后的 PCM 数据。 |
核心接口
NativeNui
tts_initialize
初始化语音合成 SDK 实例。SDK 为单例模式,在调用 tts_release 之前不要重复调用 tts_initialize。
该方法会阻塞调用线程,请在非 UI 线程中调用。
| 参数 | 类型 | 描述 |
|---|---|---|
callback | INativeTtsCallback | 事件和数据回调接口的实现。 |
ticket | String | JSON 字符串,包含认证、连接和调试参数。参见连接与控制参数。 |
level | Constants.LogLevel | 控制 SDK 内部日志级别。 |
save_log | boolean | 是否保存本地日志。若为 true,需在连接参数中设置 debug_path,可选设置 max_log_file_size。 |
setparamTts
以键值对形式设置语音合成效果参数。在 startTts 之前调用。
方法签名
| 参数 | 类型 | 描述 |
|---|---|---|
param | String | 语音合成效果参数名称。 |
value | String | 语音合成效果参数值。 |
getparamTts
获取参数值。主要用于问题排查。
方法签名
| 参数 | 类型 | 描述 |
|---|---|---|
param | String | 参数名称,当前仅支持 "error_msg"。 |