小程序语音:文字合成语音
步骤:
1、获取百度语音token
2、将文字合成语音,获取url
3、播放url
一、获取token
getBaiDuYuYinAccessToken(body) {
return doRequest(`https://aip.百度bce.com/oauth/2.0/token`, 'POST', body, false, false, {
'content-type': 'application/x-www-form-urlencoded'
})
}
/**
* 获取语音token
* @returns {Promise<void>}
*/
async getBaiDuYuYinAccessTokenData() {
const { apiKey, secretKey, grantType } = BaiDuYuYin
const res = await baiDuYuYinService.getBaiDuYuYinAccessToken({
grant_type: grantType,
client_id: apiKey,
client_secret: secretKey
})
const { access_token } = res
useSetStorageSync('baiDuYuYinAccessToken', access_token)
useSetStorageSync('baiDuYuYinAccessTokenTime', new Date().getTime()) // 用于设置token过期
}
/**
* 初始化语音
*/
getBaiDuYuYinAccessToken() {
const baiDuYuYinAccessToken = useGetStorageSync('baiDuYuYinAccessToken') || ''
if (!baiDuYuYinAccessToken) {
this.getBaiDuYuYinAccessTokenData()
} else {
const tokenTime = useGetStorageSync('baiDuYuYinAccessTokenTime')
const limitDay = new Date(parseInt(new Date().getTime() - tokenTime) * 1000).getDay()
if (limitDay > 28) { // token28天过期重新获取
this.getBaiDuYuYinAccessTokenData()
}
}
}
二、将文字合成语音,获取url
用到的参数:
const params = {
tex: encodeURIComponent(encodeURIComponent(`查询到您已到达预约地点, 请从${enterStr}入口进入`)),
tok: baiDuYuYinAccessToken,
cuid: baiDuYuYinAccessToken,
ctp: 1,
lan: 'zh'
}
获取url的方法:
1、拼接
const url = `http://tsn.百度.com/text2audio?tex=${params.tex}&tok=${params.tok}&cuid=${params.cuid}&ctp=${params.ctp}&lan=${params.lan}`
2、通过百度api
/**
* 合成语音
* @param body
*/
composeBaiDuYuYinVoice(body) {
return doRequest(`http://tsn.百度.com/text2audio`, 'GET', body)
}
const res = await baiDuYuYinService.composeBaiDuYuYinVoice({
tex: encodeURIComponent(encodeURIComponent('百度你好')),
tok: baiDuYuYinAccessToken,
cuid: baiDuYuYinAccessToken,
ctp: 1,
lan: 'zh'
})
console.log('语音合成结果', res)
结果如下:
方法2获取的结果需要转成url
三、播放
const audio = Taro.createInnerAudioContext()
audio.autoplay = true
audio.src = url // url为步骤二中的结果
audio.play()
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgcfhkf
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01