阅读(459)
赞(7)
百度智能小程序 文本转换为mp3文件
2020-08-13 16:01:18 更新
swan.ai.textToAudio
解释:将文本转换为可以播放的 mp3 文件。
方法参数
Object object
object 参数说明
属性名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
tex | String | 是 | - | 合成的文本,使用 UTF-8 编码,小于 512 个中文字或者英文数字(文本在百度服务器内转换为 GBK 后,长度必须小于 1024 字节)。 |
ctp | String | 否 | 1 | 客户端类型选择, Web 端填写固定值 1 。 |
lan | String | 否 | zh | 固定值 zh 。语言选择,目前只有中英文混合模式,填写固定值 zh 。 |
spd | String | 否 | 5 | 语速,取值 0-9 ,默认为 5 中语速。 |
pit | String | 否 | 5 | 音调,取值 0-9 ,默认为 5 中语调。 |
vol | String | 否 | 5 | 音量,取值 0-9 ,默认为 5 中音量。 |
per | String | 否 | 0 | 发音人选择, 0 为普通女声, 1 为普通男生, 3 为情感合成-度逍遥, 4 为情感合成-度丫丫,默认为普通女声。 |
success | Function | 否 | 接口调用成功的回调函数 | |
fail | Function | 否 | 接口调用失败的回调函数 | |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
success 返回参数说明
参数 | 类型 | 说明 |
---|---|---|
filePath | String | 合成的音频文件的路径,此路径为临时路径且在当次回调中有效。 |
示例
图片示例
代码示例 1:
Page({
data: {
sourceIndex: 5,
sourceArray: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
sizeIndex: 5,
sizeArray: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
countIndex: 5,
countArray: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
perIndex: 1,
perArray: ['普通女声', '普通男声', '情感合成-度逍遥', '情感合成-度丫丫'],
msg: 'hello,这是一段测试语音合成的文字'
},
sourceChange(e) {
this.setData('sourceIndex', e.detail.value);
},
sizeChange(e) {
this.setData('sizeIndex', e.detail.value);
},
countChange(e) {
this.setData('countIndex', e.detail.value);
},
perChange(e) {
this.setData('perIndex', e.detail.value);
},
textToAudio() {
let tex = this.getData('msg');
let sourceIndex = this.getData('sourceIndex');
let sizeIndex = this.getData('sizeIndex');
let countIndex = this.getData('countIndex');
let perIndex = this.getData('perIndex');
// AI系列的api有宿主使用限制,只可在百度App中使用,建议使用时加一层判断防止代码报未知错误
let host = swan.getSystemInfoSync().host;
if (host === 'baiduboxapp') {
swan.ai.textToAudio({
tex,
ctp: '1',
lan: 'zn',
spd: JSON.stringify(this.data.sourceArray[sourceIndex]),
pit: JSON.stringify(this.data.sizeArray[sizeIndex]),
vol: JSON.stringify(this.data.countArray[countIndex]),
per: JSON.stringify(this.data.perArray[perIndex]),
success: res => {
console.log('ai.textToAudio success', res);
swan.showToast({
title: '合成成功',
icon: 'none'
});
},
fail: err => {
console.log('ai.textToAudio fail', err);
}
});
}
else {
swan.showToast({
title: '此api目前仅可在百度App上使用',
icon: 'none'
});
}
}
});
代码示例 2:普通女声
Page({
data: {
},
textToAudio(){
// AI系列的api有宿主使用限制,只可在百度App中使用,建议使用时加一层判断防止代码报未知错误
let host = swan.getSystemInfoSync().host;
if (host === 'baiduboxapp') {
swan.ai.textToAudio({
tex: 'hello,这是一段测试语音合成的文字',
ctp: '1',
lan: 'zh',
spd: '5',
pit: '5',
vol: '5',
per: '0',
success: res => {
console.log('ai.textToAudio success', res);
swan.showToast({
title: '合成成功',
icon: 'none'
});
},
fail: err => {
console.log('ai.textToAudio fail', err);
}
});
}
else {
swan.showToast({
title: '此api目前仅可在百度App上使用',
icon: 'none'
});
}
}
});
代码示例 3:普通男声
Page({
data: {
},
textToAudio(){
// AI系列的api有宿主使用限制,只可在百度App中使用,建议使用时加一层判断防止代码报未知错误
let host = swan.getSystemInfoSync().host;
if (host === 'baiduboxapp') {
swan.ai.textToAudio({
tex: 'hello,这是一段测试语音合成的文字',
ctp: '1',
lan: 'zh',
spd: '5',
pit: '5',
vol: '5',
per: '1',
success: res => {
console.log('ai.textToAudio success', res);
swan.showToast({
title: '合成成功',
icon: 'none'
});
},
fail: err => {
console.log('ai.textToAudio fail', err);
}
});
}
else {
swan.showToast({
title: '此api目前仅可在百度App上使用',
icon: 'none'
});
}
}
});
代码示例 4:情感合成—度逍遥
Page({
data: {
},
textToAudio(){
// AI系列的api有宿主使用限制,只可在百度App中使用,建议使用时加一层判断防止代码报未知错误
let host = swan.getSystemInfoSync().host;
if (host === 'baiduboxapp') {
swan.ai.textToAudio({
tex: 'hello,这是一段测试语音合成的文字',
ctp: '1',
lan: 'zh',
spd: '5',
pit: '5',
vol: '5',
per: '3',
success: res => {
console.log('ai.textToAudio success', res);
swan.showToast({
title: '合成成功',
icon: 'none'
});
},
fail: err => {
console.log('ai.textToAudio fail', err);
}
});
}
else {
swan.showToast({
title: '此api目前仅可在百度App上使用',
icon: 'none'
});
}
}
});
代码示例 5:情感合成—度丫丫
Page({
data: {
},
textToAudio(){
// AI系列的api有宿主使用限制,只可在百度App中使用,建议使用时加一层判断防止代码报未知错误
let host = swan.getSystemInfoSync().host;
if (host === 'baiduboxapp') {
swan.ai.textToAudio({
tex: 'hello,这是一段测试语音合成的文字',
ctp: '1',
lan: 'zh',
spd: '5',
pit: '5',
vol: '5',
per: '4',
success: res => {
console.log('ai.textToAudio success', res);
swan.showToast({
title: '合成成功',
icon: 'none'
});
},
fail: err => {
console.log('ai.textToAudio fail', err);
}
});
}
else {
swan.showToast({
title: '此api目前仅可在百度App上使用',
icon: 'none'
});
}
}
});
Bug & Tip
- 重置 App Secret 会导致此功能无法使用。