语音合成 texttoaudio 1080+
接口声明
{ "name": "service.texttoaudio" }
导入模块
import texttoaudio from '@service.texttoaudio' 或 const texttoaudio = require('@service.texttoaudio')
接口定义
方法
texttoaudio.speak(OBJECT)
语音播报,输入需要播报的文本内容,实时播报
参数:
参数名 | 类型 | 必填 | 说明 |
---|
lang | String | 是 | 文本语言 zh_CN(中国大陆)en_US(英文) |
content | String | 是 | 需要播报的文本内容,限制长度小于 4000 个字符 |
rate | Number | 否 | 设置语速,不设置默认为正常值(1),取值大于 0,不同语音引擎取值区间不同,超过将取区间边界值。(0.5 为半速、2 为二倍速) |
pitch | Number | 否 | 设置音调,不设置默认为正常值(1),取值大于 0,不同语音引擎取值区间不同,超过将取区间边界值。(值越大音调越高) |
success | Function | 否 | 成功回调 |
fail | Function | 否 | 失败回调 |
complete | Function | 否 | 执行结束后的回调 |
success 返回值:
参数名 | 类型 | 说明 |
---|
utteranceId | String | 请求成功,本次操作唯一标识 |
fail 返回错误代码:
错误码 | 说明 |
---|
202 | 参数错误 |
1001 | 系统版本过低,不支持此功能(Android L 或以上才支持) |
1002 | 初始化失败 |
1003 | 输入的文本长度超限 |
1004 | 语言不支持 |
示例:
texttoaudio.speak({
lang: 'zh_CN',
content: '这是语音播报效果',
pitch: 1,
rate: 1,
success: function(data) {
console.log(`handling success, utteranceId = ${data.utteranceId}`)
},
fail: function(data, code) {
console.log(`handling fail, code = ${code}`)
}
})
texttoaudio.textToAudioFile(OBJECT)
语音合成,输入需要合成的文本内容,生成本地音频文件
参数:
参数名 | 类型 | 必填 | 说明 |
---|
lang | String | 是 | 文本语言 zh_CN(中国大陆)en_US(英文) |
content | String | 是 | 需要合成的文本内容,限制长度小于 4000 个字符 |
rate | Number | 否 | 设置语速,不设置默认为正常值(1),取值大于 0,不同语音引擎取值区间不同,超过将取区间边界值。(0.5 为半速、2 为二倍速) |
pitch | Number | 否 | 设置音调,不设置默认为正常值(1),取值大于 0,不同语音引擎取值区间不同,超过将取区间边界值。(值越大音调越高) |
success | Function | 否 | 成功回调 |
fail | Function | 否 | 失败回调 |
complete | Function | 否 | 执行结束后的回调 |
success 返回值:
参数名 | 类型 | 说明 |
---|
filePath | String | 生成文件路径 |
utteranceId | String | 请求成功,本次操作唯一标识 |
fail 返回错误代码:
错误码 | 说明 |
---|
202 | 参数错误 |
1001 | 系统版本过低,不支持此功能(Android L 或以上才支持) |
1002 | 初始化失败 |
1003 | 输入的文本长度超限 |
1004 | 语言不支持 |
1005 | io 异常 |
示例:
texttoaudio.textToAudioFile({
lang: 'zh_CN',
content: '这是语音播报效果',
pitch: 1,
rate: 1,
success: function(data) {
console.log(
`handling success,filePath = ${data.filePath}, utteranceId = ${
data.utteranceId
}`
)
},
fail: function(data, code) {
console.log(`handling fail, code = ${code}`)
}
})
texttoaudio.isLanguageAvailable(OBJECT)
是否支持语言类型
参数:
参数名 | 类型 | 必填 | 说明 |
---|
lang | String | 是 | 文本语言 zh_CN(中国大陆)en_US(英文) |
success | Function | 否 | 成功回调 |
fail | Function | 否 | 失败回调 |
complete | Function | 否 | 执行结束后的回调 |
success 返回值:
参数名 | 类型 | 说明 |
---|
isAvailable | Boolean | true:支持,false:不支持 |
fail 返回错误代码:
示例:
texttoaudio.isLanguageAvailable({
lang: 'zh_CN',
success: function(data) {
console.log(`isAvailable: ${data.isAvailable}`)
}
})
texttoaudio.onttsstatechange = function(data)
注册状态监听,监听每个操作的状态,通过 id 区分(语音播报 id 的前缀为"speak",语音合成 id 的前缀为"speakAudio")
data 返回值:
属性 | 类型 | 说明 |
---|
utteranceId | String | 操作对应的 id 标识 |
state | String | 本次操作的状态,可能的取值有四种: onStart、onDone、onStop、onError |
示例:
texttoaudio.onttsstatechange = function(data) {
console.log(`utteranceId: ${data.utteranceId}, state: ${data.state}`)
}
texttoaudio.stop()
停止,无论当前处于语音播报还是保存到文件的过程
参数:无
返回值:
示例:
texttoaudio.stop()
texttoaudio.isSpeaking()
判断语音是否正在播放或者合成
参数:无
返回值:
返回值 | 说明 |
---|
true | 正在播报或合成过程中 |
false | 不在播报或合成过程中 |
示例:
console.log(`isSpeaking: ${texttoaudio.isSpeaking()}`)
后台运行限制
无限制。 后台运行详细用法参见后台运行 脚本。