1. 简述
随着AI技术的不断发展,语音功能在我们日常生活中的应用越来越广泛。作为一名开发者,我们可能需要在我们的APP中加入语音播报的功能,便于用户的使用。幸运的是,uniapp提供了方便易用的语音播报插件uni-voice,能够帮助开发者快速添加语音功能到他们的应用中。
2. uni-voice插件介绍
uni-voice插件是uniapp社区开发的一个语音播报插件,使开发者能够在uniapp应用中轻松使用语音功能。uni-voice是对微信、支付宝、百度等语音API的封装,因此我们可以同时支持多个平台,而不需要开发者自行适配。
插件的使用非常简便,在插件市场中搜索uni-voice,安装后,在需要使用的vue页面的script标签中引入即可。以下为引入uni-voice插件的代码示例:
import uniVoice from '@/uni_modules/uni-voice/js_sdk/uni-voice.js'
3. uni-voice的使用
uni-voice的使用非常方便,只需要给语音播报的文本传入特定的参数就可以了。以下为uni-voice播报函数的基本参数:
text: 需要语音播报的文本,必填参数。
provider: 使用的语音服务商,非必填,默认为auto
success: 播报成功的回调函数
fail: 播报失败的回调函数
其中provider参数支持多种语音服务商。以下为uni-voice插件支持的语音服务商列表:
auto: 自动判断语音服务商,优先级顺序为百度->讯飞->腾讯
baidu:百度语音服务
xunfei:讯飞语音服务
txai:腾讯AI语音服务
ali:阿里云AI语音服务
以下为代码示例,用uni-voice将一个字符串转化为语音:
uniVoice.speak({
text: '我是语音播报',
success: function () {
console.log('播报成功')
},
fail: function (err) {
console.log('播报失败', err)
}
})
4. uni-voice的高级应用
4.1 更改语音参数
uni-voice支持更多的语音参数设置,允许开发者自定义语音播报的声音、速度、语调等参数。以下是可自定义的参数列表:
per:语音人物,默认为普通女声,可选范围百度语音的作者,如:
0:女性
1:男性
3:情感合成-度逍遥
4:情感合成-度丫丫
106:情感合成-度半波
spd:语速,取值范围0-15,默认为5中语速
pit:音调,取值范围0-15,默认为5中语调
vol:音量,取值范围0-15,默认为5中音量
speed:语速,取值范围0-9,默认为5中语速
pitch:音调,取值范围0-9,默认为5中语调
以下为新增了spd和per参数的语音播报代码:
uniVoice.speak({
text: '我是语音播报',
provider: 'baidu', //设置语音服务商为百度
spd: 7, //设置语音速度为7
per: 4, //设置发音人为度丫丫
success: function () {
console.log('播报成功')
},
fail: function (err) {
console.log('播报失败', err)
}
})
4.2 针对多段文本播报
如果需要播放一段较长的文本,可以将文本分段,分别播放每个文本段,这样更加自然。下面是针对多段文本播报的代码:
let textArr = [
'欢迎使用uni-voice语音播报插件',
'uni-voice插件支持多种语音服务商',
'可以自定义语音播报的声音、速度、语调等参数',
'语音播报组件使用非常简便,只需要给语音文本传入特定的参数即可'
]
let speakIndex = 0
const playText = () => {
if(speakIndex >= textArr.length){
console.log('播放完毕')
return
}
uniVoice.speak({
text: textArr[speakIndex],
success: function () {
console.log(`${textArr[speakIndex]} 播报成功`)
speakIndex++
playText()
},
fail: function (err) {
console.log(`${textArr[speakIndex]} 播报失败`, err)
speakIndex++
playText()
}
})
}
playText()
5. 总结
uni-voice插件使开发者能够轻松为自己的应用添加语音播报功能,支持多个平台,且使用非常方便。开发者可以根据需求灵活设置语音播报的参数,从而更好地满足用户的使用需求。