我使⽤同声传译语⾳识别功能是为了实现⼩程序⾸页的语⾳搜索功能,如果你也是那么恭喜你,你可以ctrl+c、ctrl+v再改⼀改,如果你不是那么你也不要着急的⾛可以看完我的⽂章会对你有所帮助!
⾸先是在(也就是⼩程序的后台),在左侧菜单栏中的设置-->第三⽅设置下的插件管理-->添加-->搜索同声传译-->点击添加 接下来就是在代码中进⾏添加⼀些设置。
如果你是使⽤开发者⼯具进⾏开发⼩程序的话,需要在app.json⽂件中添加⼀下代码。
1 // app.json
2 {
3 ...
4 "plugins": {
5 ...
6 "WechatSI": {
7 "version": "0.3.4", // 这是同声传译的版本(也可以在公众平台添加的同声传译查看最新版本)
8 "provider": "wx069ba97219f66d99" // 这是同声传译的ID
9 }
10 }
11 }
如果你是使⽤ Hbuildex 进⾏开发⼩程序的话,需要在 manifest.json ⽂件的源码视图中进⾏添加修改。
在源码视图中到 mp-weixin,然后按照以下代码进⾏添加修改
1 // manifest.json
2 /* ⼩程序特有相关 */
3 "mp-weixin": {
4 "appid": "xxxxxxxxxx", // 这是你⼩程序的AppId
5 ...
6 "plugins": {
7 "WechatSI": {
8 "version": "0.3.4", // 这是同声传译的版本(也可以在公众平台添加的同声传译查看最新版本)
9 "provider": "wx069ba97219f66d99" // 这是同声传译的ID
10 }
11 }
12 }
做完以上步骤之后,就可以根据进⾏开发了
下⾯就是我的功能实现代码了
1 // index.vue 在这⾥我的页⾯布局只写了语⾳按钮(简化了)
2 <template>
3 <div @click="yuyin" class="yuyin-icon">
xp侧边栏
4 <img :src="baseUrlImg+'/yuyin.png'" alt="" class="img" />
5 </div>
6 </template>
7 <script>
8 export default {
9 data() {
10 return {
11 // 这是搜索框中的内容
12 search_word: ''
13 }
14 },
15 methods: {
16 // 语⾳点击事件
17 yuyin: function() {
18 var that = this
19 // 向⽤户发起授权请求
20 uni.authorize({
21 scope: 'd', // 获取录⾳功能,也就是麦克风权限 22 success: (res) => {
23 // ⽤户授权使⽤麦克风权限调⽤语⾳搜索事件函数
24 that.plugin()
25 },
26 // ⽤户没有授权使⽤麦克风权限执⾏以下代码
27 fail(res) {
28 // 显⽰模态弹窗提⽰⽤户没有开启麦克风权限
29 uni.showModal({
30 content: '检测到您未开启麦克风权限,请保持麦克风权限为开启状态',
31 confirmText: '去开启',
32 showCancel: false,
33 success: (res) => {
34 console.log(res)
35 firm) {
36 // 调起客户端⼩程序设置界⾯,返回⽤户设置的操作结果
37 uni.openSetting({
38 success: (res) => {
39 console.log(res)
40 if(res.authSetting['d'] == false) {
41 that.plugin()
42 }
43 }
44 })
45 } else {
46 uni.navigateBack({
47 delta: 1
乌塔教学设计48 })
49 }
50 }
51 })
52 }
53 })
54 }
55 // 语⾳搜索
56 plugin () {
57 var that = this
58 var plugin = requirePlugin('WechatSI')
59 var manager = RecordRecognitionManager()
60 // 设置录⾳的参数
61 manager.start({
62 duration: 5000, // 时间
63 lang: "zh_CN" // 语⾔
64 })
65 // 开始录⾳
66 Start = function(res) {
67 console.log("成功开始录⾳识别", res)
68 if(res.msg == 'Ok') {
69 // 提⽰⽤户正在录⾳
70 uni.showToast({
71 title: '正在识别语⾳...',
72 duration: 5000,
73 icon: 'loading'
74 })
75 }
76 }
77 // 录⾳结束
78 Stop = function(res) {
79 // 提⽰⽤户正在跳转到搜索页⾯(因为我做的时候,在跳转这块会有1~2秒的时间,所以我设置了⼀个提⽰框)
80 uni.showToast({
81 title: '正在跳转...',
82 duration: 1500,
83 icon: 'success'
84 })
85 // 将识别的语⾳翻译成⽂本
86 anslate({
87 lfrom: 'en_US',
88 lto: 'zh_CN',
89 content: sult,
90 success: function(res) {
91 de == 0) {
92 // (iphone是这样,Android不清楚)语⾳识别有时会在末尾添加符号
93 sult.sult.length - 1) == '。' || sult.sult.length - 1) == '.') {
94 sult = sult.substr(0, sult.length - 1);
95 }
96 // 将翻译后的内容放到搜索框中
97 that.search_word = sult
98 // 执⾏搜索功能的代码
99 that.searchName()
100 } else {
101 console.log('翻译失败', res)
102 }
103 },
104 fail: function(res) {
榆林学院学报105 console.log('⽹络失败', res)
106 // 当⽤户说话声⾳⼩或者⽤户没有说话就会报这两个错误
107 de == -10001 || de == -10002) {
108 uni.showToast({
109 title: '没有听清您说什么',
110 duration: 1000,
质量管理信息系统111 icon: 'error'
112 })
113 }
114 }同声传译
115 })
116 }数控切割机系统
117 // 打印错误信息
118 Error = function(res) {
119 ('error msg', res.msg)
120 }
121 }
122 }
123 }
124 </script>
(欢迎评论区留⾔,⼤家⼀起讨论学习)