更新记录
1.0.1(2025-03-30)
更新使用文档
1.0.0(2025-03-30)
完成接入阿里云的语音识别、语音播放、语音合成
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
HBuilderX 4.21,Android:4.4,iOS:不支持,HarmonyNext:不支持 |
× |
× |
× |
× |
× |
× |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
鸿蒙元服务 |
× |
× |
× |
× |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
× |
× |
× |
× |
× |
× |
× |
× |
× |
fy-alispeech
阿里云的语音识别、语音合成、语音播报插件
插件对外暴露FyPermission和FySpeechRecognizer和FyTts三个类
开发文档
UTS 语法
UTS API插件
UTS 组件插件
Hello UTS
1.FyPermission使用说明
FyPermission授权的事件说明
方法 |
参数 |
返回 |
说明 |
check |
void |
Boolean |
判断权限是否已经被用户授予 |
requestPermission |
RequestPermissionOptions |
void |
请求系统权限 |
RequestPermissionOptions 说明
参数名 |
必填 |
返回 |
说明 |
success |
否 |
(res: string) => void |
获取权限成功 |
fail |
否 |
(res: string) => void |
获取权限失败;获取失败后再次调起授权会提示打开权限设置页面 |
例子
import { FyPermission } from '@/uni_modules/fy-alispeech';
const permis = new FyPermission();
permis.requestPermission({
success: function (res) {
console.log(res);
},
fail: function(res){
console.log(res);
}
})
2.FyTts使用说明
构造函数OBJECT 参数说明
参数名 |
类型 |
必填 |
说明 |
appKey |
string |
是 |
项目Appkey |
accessKey |
string |
否 |
accessKey需要和accessKeySecret搭配使用, 和token参数互斥, 推荐使用token |
accessKeySecret |
string |
否 |
accessKey需要和accessKeySecret搭配使用, 和token参数互斥, 推荐使用token |
token |
string |
否 |
推荐使用,由服务器生成返回 |
stsToken |
string |
否 |
无 |
fontName |
string |
否 |
发音人 |
speed_level |
string |
否 |
调整语速, 语速倍速区间为[0.5, 1.0, 2.0] |
pitch_level |
string |
否 |
调整音调, [-500,500],默认0 |
volume |
string |
否 |
调整音量, (0,2],默认1.0 |
TTSFnOptions 参数说明
参数名 |
类型 |
必填 |
说明 |
start |
Function |
否 |
发言开始触发 |
done |
string |
否 |
发言完成触发 |
TTSSpeekOptions 参数说明
参数名 |
类型 |
必填 |
说明 |
text |
Function |
是 |
发言文本 |
接口事件说明
方法 |
参数 |
返回 |
说明 |
init |
TTSFnOptions |
void |
初始化定义事件监听 |
start |
TTSSpeekOptions |
void |
启动语音合成,并播报语音 |
pause |
void |
void |
暂停播报 |
resume |
void |
void |
继续播报 |
stop |
void |
void |
停止播报,(需要重新实例化) |
relase |
void |
void |
停止播报,并销毁数据(需要重新实例化) |
例子
<template>
<view class="content">
<button @click="handlePlayTts">开始播放</button>
<button @click="handlePauseTts">暂停播放</button>
<button @click="handleRePlayTts">重新播放</button>
<button @click="handleRealseTts">释放播放</button>
</view>
</template>
<script>
import { FyPermission, FyTts, FySpeechRecognizer } from "@/uni_modules/fy-alispeech"
let ttsHandle: FyTts | null = null;
export default {
data() {
return {
}
},
onReady() {
const permis = new FyPermission();
permis.requestPermission({
ttsHandle = new FyTts({
appKey: 'xxx',
accessKey: 'xxx',
accessKeySecret: 'xxx',
// token: '',
// stsToken: '',
// fontName: '',
// speed_level: '',
// pitch_level: '',
// volume: '',
})
ttsHandle?.init({
done(uuid) {
console.log('播放结束=================',uuid)
}
})
}
})
},
methods:{
handlePlayTts() {
ttsHandle?.start({ text: '你好啊,小陈' });
},
handlePauseTts() {
ttsHandle?.pause();
},
handleRePlayTts() {
ttsHandle?.resume();
},
handleRealseTts() {
ttsHandle?.relase();
}
}
}
</script>
3.FySpeechRecognizer使用说明
构造函数OBJECT 参数说明
参数名 |
类型 |
必填 |
说明 |
appKey |
string |
是 |
项目Appkey |
accessKey |
string |
否 |
accessKey需要和accessKeySecret搭配使用, 和token参数互斥, 推荐使用token |
accessKeySecret |
string |
否 |
accessKey需要和accessKeySecret搭配使用, 和token参数互斥, 推荐使用token |
token |
string |
否 |
推荐使用,由服务器生成返回 |
startOptions 参数说明
参数名 |
类型 |
必填 |
说明 |
listener |
Function |
否 |
监听语音识别 |
接口事件说明
方法 |
参数 |
返回 |
说明 |
startDialog |
startOptions |
boolean |
开始识别 |
stopDialog |
void |
void |
结束识别 |
release |
void |
void |
释放 |
综合例子
<template>
<view class="content">
<button @click="handlePlay">开始识别</button>
<button @click="handleStop">停止识别</button>
<button @click="handleRealse">释放识别</button>
<button @click="handlePlayTts">开始播放</button>
<button @click="handlePauseTts">暂停播放</button>
<button @click="handleRePlayTts">重新播放</button>
<button @click="handleRealseTts">释放播放</button>
</view>
</template>
<script>
import { FyPermission, FyTts, FySpeechRecognizer } from "@/uni_modules/fy-alispeech"
let recogHandle: FySpeechRecognizer | null = null;
let ttsHandle: FyTts | null = null;
export default {
data() {
return {
}
},
onReady() {
const permis = new FyPermission();
permis.requestPermission({
success: function () {
recogHandle = new FySpeechRecognizer({
appKey: 'xxx', // 项目Appkey
accessKey: 'xxx', // accessKey需要和accessKeySecret搭配使用, 和token参数互斥, 推荐使用token
accessKeySecret: 'xxx',
// token: 'xxx',
});
ttsHandle = new FyTts({
appKey: 'xxx',
accessKey: 'xxx',
accessKeySecret: 'xxx',
// token: '',
// stsToken: '',
// fontName: '',
// speed_level: '',
// pitch_level: '',
// volume: '',
})
ttsHandle?.init({
done(uuid) {
console.log('播放结束=================',uuid)
}
})
}
})
},
methods:{
handlePlay() {
recogHandle?.startDialog({
listener(res) {
console.log('================', res)
}
});
},
handleStop() {
recogHandle?.stopDialog();
},
handleRealse() {
recogHandle?.release();
},
handlePlayTts() {
ttsHandle?.start({ text: '你好啊,小陈' });
},
handlePauseTts() {
ttsHandle?.pause();
},
handleRePlayTts() {
ttsHandle?.resume();
},
handleRealseTts() {
ttsHandle?.relase();
}
}
}
</script>
重点注意事项
- 获取token文档[https://help.aliyun.com/zh/isi/getting-started/obtain-an-access-token-1/]
- AccessKey及AccessKeySecret在登录阿里云的控制台右上角鼠标放上去可以看到accessKey按钮,点击进去就可以创建了。
- 开发前先阅读一下阿里云的文档,看着挺难受的[https://help.aliyun.com/zh/isi/getting-started/manage-projects?spm=a2c4g.11186623.help-menu-30413.d_1_1.23894b4fQ12Zgm]