流式文本语音合成

最近更新时间:2024-12-23 14:18:22

我的收藏

HarmonyOS NEXT SDK 说明

接入准备

SDK 获取

语音合成 HarmonyOS NEXT SDK 以及 Demo 的下载地址: 接入 SDK 下载

接入须知

开发者在调用前请先查看流式文本合成相关接口,了解接口的使用要求使用步骤
该接口需要手机能够连接网络(3G、4G、5G 或 Wi-Fi 等)
运行 Demo 必须设置 AppID、SecretID、SecretKey,可在 API 密钥管理 中获取。

SDK 导入

1. 下载并解压 HarmonyOS NEXT SDK 压缩包,压缩包包含 demo、sdk 和 doc,其中 sdk/streamtts_v1.x.x.har 为流式语音合成的 SDK。
2. 在工程中添加依赖库, oh-package.jsons 中添加一下依赖。
"dependencies": {
"streamtts": "file:../../sdk/streamtts_v1.0.0_96b6073.har"
}
请根据实际路径替换配置

快速接入

以下为 demo 中的代码片段,完整代码请参考 sdk/demo 工程。

配置合成任务

let builder = new QCloud.StreamTTS.Builder()
builder.appID = this._app_id
builder.secretID = this._secret_id
builder.secretKey = this._secret_key
builder.token = this._token
builder.setApiParam(QCloud.StreamTTS.kVoiceType, this._voice_type)
builder.setApiParam(QCloud.StreamTTS.kVolume, this._volume)
builder.setApiParam(QCloud.StreamTTS.kSpeed, this._speed)
配置合成任务相关参数

启动合成任务

使用上面的 Builder 可以创建并启动合成任务并等待任务结束
this._ctl = builder.build({})
await this._ctl.task

主要接口类和方法说明

Builder 类说明

Builder 用于创建合成任务
方法
1. setApiParam(key: string, value: string | number | null)
设置请求后台接口时的参数,后台支持参数请参考流式文本合成相关接口
名称
类型
描述
key
string
请求后台的参数名称
value
string|number|null
请求后台的参数值,null 时将删除已设置的参数,number 会转为 string 后设置
2. getApiParam(key: string): string | number | boolean | null
获取已设置的请求参数
名称
类型
描述
key
string
参数名称
3. build(): Controller
创建合成任务同时返回合成任务控制器
名称
类型
描述
listener
Listener
流式合成过程中的数据及事件回调
属性
名称
类型
描述
appID
string
腾讯云 appId
secretID
string
腾讯云 secretId
secretKey
string
腾讯云 secretKey
token
string
腾讯云临时token,为空字符串时表示不使用临时授权,临时授权参考 安全凭证服务

Controller类说明

Controller 用于控制合成任务的流程
方法
1. synthesis(text: string): void
合成语音,此方法需要在接收到服务端ready事件后调用。
名称
类型
描述
text
string
需要合成的文本
2. cancel(): void
取消合成任务,成功后task抛出取消异常。
3. stop(): void
停止合成任务,成功后task正常返回。
属性
名称
类型
描述
task
Promise<void>
合成任务

Listener类说明

Listener 流式合成过程中的数据及事件回调
1. onLog?: (value: string, level: number) => void
日志回调
名称
类型
描述
value
string
日志信息
level
number
日志等级
2. onData?: (data: ArrayBuffer) => void
服务端返回的音频数据,可参考文档 流式文本语音合成 说明。
名称
类型
描述
data
ArrayBuffer
服务端返回的音频数据
3. onMessage?: (msg: string) => void
服务端返回的 json 数据,可参考文档流式文本语音合成说明。
名称
类型
描述
msg
ArrayBuffer
服务端返回的 json 数据
4. onReady?: () => void
服务端返回 ready 事件

错误码

合成任务抛出类型为 SDKError 时的错误码
错误码
名称
描述
-1
UNKNOWN_ERROR
未知错误
1
REQUEST_ERROR
请求失败,具体原因请查看 message 和 inner_error
2
SERVER_ERROR
服务端返回错误,具体信息查看 message
3
SIGNATURE_ERROR
签名错误
4
PARAMETER_ERROR
参数错误,SDK 本地参数校验
5
CANCEL_ERROR
调用 cancel 成功