uniapp语⾳识别_uni-app开发APP语⾳播报功能
const audioTeam =[];
let audioStartSwitch= fal;const getAudioUrl = '/text2audio';/**
* 浏览器调⽤语⾳合成接⼝
console.log('准备访问接⼝获取语⾳token')
和cret key, 请替换为⾃⼰申请的key
url: '/oauth/2.0/token',
method:'POST', //建议使⽤post访问//data:
'grant_type=client_credentials&client_id=nm6Os9qqOacgxXjKv8PIp45H&client_cret=BXHhGIpNU7Wi3GDYUt0AGY5cWbWklrov',
tinkle
data:
'grant_type=client_credentials&client_id=jtwoB9xzRnv3qltcfqL0pk1t&client_cret=A16UKHBKVeAh68kuGGSPqnemCVyPDmgb',
header: {"content-type": "application/x-www-form-urlencoded"},
success: (res)=>{
console.log('访问成功');
rs(res);
},
fail: (err)=>{
console.log('访问失败');
rj(err);
}
})
})
}
exportdefault function openVoice(objs) { //传⼊需转为语⾳的⽂本内容
let lineUp = fal;
新概念英语青少版
let returnAudio= fal;if (typeof(objs) !== 'string') {if (objs && objs.lineUp === true) {雅思托福哪个好考
lineUp= true;
}if (objs && urnAudio === true) {
returnAudio= true;
}
}if(returnAudio) {return new Promi((resolve, reject)=>{
openVoiceFc(objs, returnAudio).then(res=>{
resolve(res);
reject(err)
indifferent
});
})
}if (!audioStartSwitch ||lineUp) {
5月18日考试audioStartSwitch= true;
openVoiceFc(objs);
}el{
audioTeam.push(objs);
保留英文}
}
function openVoiceFc(objs, returnAudio) {
console.log('准备获取语⾳tok');if(returnAudio) {return new Promi((resolve, reject)=>{ getBDVoicToken().then(res=>{
console.log('获取语⾳tok接⼝成功');if (res.data &&res.data.access_token) {
console.log('token:' +res.data.access_token);
resolve(tts(objs, res.data.access_token, returnAudio));
}el{
console.log('获取语⾳tok接⼝为空');
reject('获取语⾳tok接⼝为空');
}
}).catch(err =>{
console.log('获取语⾳tok接⼝失败');
reject(err||'获取语⾳tok接⼝失败');
})
})
}el{
getBDVoicToken().then(res=>{
console.log('获取语⾳tok接⼝成功');if (res.data &&res.data.access_token) {
console.log('token:' +res.data.access_token);
tts(objs, res.data.access_token);
}el{
console.log('获取语⾳tok接⼝为空');
}
console.log('获取语⾳tok接⼝失败');
})
}
}
function tts(objs, tok, returnAudio) {if(typeof(objs)=='string')
objs={voiceSet: {tex: objs}};const data ={
tok,
cuid: tok,
ctp:1,
lan:'zh',
...objs.voiceSet
}if(returnAudio)returnbtts( data, objs.audioSet, objs.audioCallback, objs.lineUp, returnAudio);
btts( data, objs.audioSet, objs.audioCallback, objs.lineUp, returnAudio);
}
function tAudioSet(options, audio) {if(options) {
audio.volume= options.volume || 1;
audio.startTime= options.startTime || 0;
audio.loop= options.loop || fal;
audio.obeyMuteSwitch= options.obeyMuteSwitch && typeof(options.obeyMuteSwitch) == 'boolean' ? options.obeyMuteSwitch :true; //⽀持微信⼩程序、百度⼩程序、头条⼩程序
}
}
function btts(param, options, audioCallback, lineUp, returnAudio) {
let ateInnerAudioContext();
tAudioSet(options, audio);//序列化参数列表
七下英语单词let fd =[];for (let k inparam) {
二八定律英文fd.push(k+ '=' +encodeURIComponent(encodeURIComponent(param[k])));
}
audio.src= `${getAudioUrl}?${fd.join('&')}`;if(returnAudio) {
console.log('⾳频播放结束');
console.log('销毁⾳频实例');
audio.destroy();//销毁⾳频实例
audio = null;
})
console.log('⾳频播放错误:' +JSON.stringify(e));
console.log('销毁⾳频实例');
audio.destroy();//销毁⾳频实例
audio = null;
})returnaudio;
}
console.log('⾳频播放开始');if (audioCallback && Play && Play) == 'function') Play();
})
})
})
})
})
})
保送生需要什么条件
})
console.log('⾳频播放结束');
console.log('销毁⾳频实例');
audio.destroy();//销毁⾳频实例
audio = null;if (audioCallback && Ended && Ended) == 'function') Ended();if (lineUp !== fal) {if (audioTeam.length > 0) {rebirth
console.log('队列中');
openVoiceFc(audioTeam[0]);
audioTeam.splice(0, 1);
}el{
console.log('队列为零');
audioStartSwitch= fal;
}
}
})
console.log('⾳频播放错误:' +JSON.stringify(e));
console.log('销毁⾳频实例');
audio.destroy();//销毁⾳频实例
audio = null;
})
audio.play();
}