微信小程序使用同声传译实现语音识别功能
我使用同声传译语音识别功能是为了实现微信小程序首页的语音搜索功能,如果你也是那么恭喜你,你可以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">
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: 'scope.record', // 获取录音功能,也就是麦克风权限
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 if(res.confirm) {
36 // 调起客户端小程序设置界面,返回用户设置的操作结果
37 uni.openSetting({
38 success: (res) => {
39 console.log(res)
40 if(res.authSetting['scope.record'] == 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 = plugin.getRecordRecognitionManager()
60 // 设置录音的参数
61 manager.start({
62 duration: 5000, // 时间
63 lang: "zh_CN" // 语言
64 })
65 // 开始录音
66 manager.onStart = 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 manager.onStop = function(res) {
79 // 提示用户正在跳转到搜索页面(因为我做的时候,在跳转这块会有1~2秒的时间,所以我设置了一个提示框)
80 uni.showToast({
81 title: '正在跳转...',
82 duration: 1500,
83 icon: 'success'
84 })
85 // 将识别的语音翻译成文本
86 plugin.translate({
87 lfrom: 'en_US',
88 lto: 'zh_CN',
89 content: res.result,
90 success: function(res) {
91 if(res.retcode == 0) {
92 // (iphone是这样,Android不清楚)语音识别有时会在末尾添加符号
93 if(res.result.charAt(res.result.length - 1) == '。' || res.result.charAt(res.result.length - 1) == '.') {
94 res.result = res.result.substr(0, res.result.length - 1);
95 }
96 // 将翻译后的内容放到搜索框中
97 that.search_word = res.result
98 // 执行搜索功能的代码
99 that.searchName()
100 } else {
101 console.log('翻译失败', res)
102 }
103 },
104 fail: function(res) {
105 console.log('网络失败', res)
106 // 当用户说话声音小或者用户没有说话就会报这两个错误
107 if(res.retcode == -10001 || res.retcode == -10002) {
108 uni.showToast({
109 title: '没有听清您说什么',
110 duration: 1000,
111 icon: 'error'
112 })
113 }
114 }
115 })
116 }
117 // 打印错误信息
118 manager.onError = function(res) {
119 console.error('error msg', res.msg)
120 }
121 }
122 }
123 }
124 </script>
(欢迎评论区留言,大家一起讨论学习)
微信小程序使用同声传译实现语音识别功能的更多相关文章
- WordPress版微信小程序3.1.5版的新功能
产品的完善是无止境,每过段时间就会发现产品的新问题,使用的人越多,提的需求也会越多,我听得最多的一句话就是:如果加上某某功能就完美了.其实,完美是不存在的,每个人的视角不一样,完美的定义也是不一样的. ...
- 微信小程序wx.showActionSheet调用客服信息功能
微信小程序wx.showActionSheet调用客服消息功能 官方文档的代码: wx.showActionSheet({ itemList: ['A', 'B', 'C'], success (re ...
- 5行代码实现微信小程序图片上传与腾讯免费5G存储空间的使用
本文介绍了如何在微信小程序开发中使用腾讯官方提供的云开发功能快速实现图片的上传与存储,以及介绍云开发的 5G 存储空间的基本使用方法,这将大大提高微信小程序的开发效率,同时也是微信小程序系列教程的视频 ...
- 快速高效实现微信小程序图片上传与腾讯免费5G存储空间的使用
本文介绍了如何在微信小程序开发中使用腾讯官方提供的云开发功能快速实现图片的上传与存储,以及介绍云开发的 5G 存储空间的基本使用方法,这将大大提高微信小程序的开发效率 对于一般的图片上传功能开发,我们 ...
- 微信小程序图片上传并展示
1.首先编写微信小程序的页面和样式: index.js var total = []; Page({ data: { perImgSrc: [] }, onLoad: function (option ...
- 微信小程序转发商品的详情页 + 转发功能(传参)
1.微信小程序转发传参,利用的还是onShareAppMessageapi 2.利用的还有json转换 JSON 是用于存储和传输数据的格式. JSON 通常用于服务端向网页传递数据 函数 描述JSO ...
- 微信小程序---图片上传+服务端接受
原文地址:http://blog.csdn.net/sk719887916/article/details/54312573 微信小程序,图片上传,应用地方-修改用户信息的头像. 详细代码: 小程序的 ...
- 微信小程序图片上传和裁剪
本篇博客用于解决微信小程序图片裁剪问题 图片裁剪常用于头像选择和图片合成等. 图片裁剪解决方案: 目前网络上知名的微信小程序图片裁剪插件是we-cropper(文末有链接) 操作步骤:下载好we-cr ...
- 微信小程序文件上传结合lin ul
html <l-form name="goods" l-form-btn-class="l-form-btn-class" bind:linsubmit= ...
随机推荐
- ACCESS常见错误场景
ACCESS常见错误场景 今天用access时发现好多报错的地方,emmm,比MySQL麻烦好多,有些甚至还要自己去配置环境 不吐槽了,进入正题: 报错场景一:您尝试执行不包含指定聚合函数的查询 第一 ...
- NoSQL & Redis 介绍、缓存穿透 & 击穿 & 雪崩
1. NoSql 简介 2. Redis 简介 2.1 Redis 的起源 2.2 缓存过期 & 缓存淘汰 3. 缓存异常 1)缓存穿透 2)缓存击穿 3)缓存雪崩 4)总结 1. NoSQL ...
- php讲转义符号与json文件的趣事情
php中屡试不爽的数组和json json_encode与json_decode urlencode与urldecode addslashes与stripslashes addcslashes与str ...
- SpringCloud之(豪猪)Hystrix限流、熔断、降级
Spring Cloud 微服务架构学习记录与示例 一.初识Hystrix Hystrix [hɪst'rɪks],中文含义是豪猪,因其背上长满棘刺,从而拥有了自我保护的能力.本文所说的Hystrix ...
- Windows XP sp3 系统安装 Windbg 符号文件 Symbols 时微软失去支持的解决方案
0x01 前言 Windbg 是微软的正宗调试器,在正常的情况下调试一些程序并没有什么问题,但是如果需要调试分析程序的堆栈,或者是一些特殊的功能时则需要微软的符号文件的支持,所以符号文件是非常重要的, ...
- 逆向 ctype.h 函数库 isalnum、iscntrl、islower、isxdigit、tolower 函数
0x01 isalnum 函数 函数原型:int isalnum(int c); 函数功能:检查所传的字符是否是字母和数字 动态链接库:ucrtbase.dll C\C++ 实现: #define _ ...
- 《前端运维》一、Linux基础--基础命令(1)
在开始之前,你需要做一些准备工作,去阿里买一台服务器,服务器的具体细节其实并不是十分重要,我也不会在这里一步一步的教大家如何去买一个服务器.百度一下足够了,但是还是要贴一下这篇文章中,我所使用的服务器 ...
- Java中读取文件的几种路径配置
获取配置文件的两种方式区别 ClassLoader.getSystemClassLoader().getResourceAsStream() //ClassLoader.getSystemClassL ...
- RSS阅读器 - Reeder
苹果生态圈内最佳RSS阅读器 - Reeder 好用就完事了
- json-lib-2.1-jdk15.jar
链接:https://pan.baidu.com/s/1VvpCHoTZWJU2l0c6D1MhJg 提取码:jheq http://www.java2s.com/