我使用同声传译语音识别功能是为了实现微信小程序首页的语音搜索功能,如果你也是那么恭喜你,你可以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>

  (欢迎评论区留言,大家一起讨论学习)

微信小程序使用同声传译实现语音识别功能的更多相关文章

  1. WordPress版微信小程序3.1.5版的新功能

    产品的完善是无止境,每过段时间就会发现产品的新问题,使用的人越多,提的需求也会越多,我听得最多的一句话就是:如果加上某某功能就完美了.其实,完美是不存在的,每个人的视角不一样,完美的定义也是不一样的. ...

  2. 微信小程序wx.showActionSheet调用客服信息功能

    微信小程序wx.showActionSheet调用客服消息功能 官方文档的代码: wx.showActionSheet({ itemList: ['A', 'B', 'C'], success (re ...

  3. 5行代码实现微信小程序图片上传与腾讯免费5G存储空间的使用

    本文介绍了如何在微信小程序开发中使用腾讯官方提供的云开发功能快速实现图片的上传与存储,以及介绍云开发的 5G 存储空间的基本使用方法,这将大大提高微信小程序的开发效率,同时也是微信小程序系列教程的视频 ...

  4. 快速高效实现微信小程序图片上传与腾讯免费5G存储空间的使用

    本文介绍了如何在微信小程序开发中使用腾讯官方提供的云开发功能快速实现图片的上传与存储,以及介绍云开发的 5G 存储空间的基本使用方法,这将大大提高微信小程序的开发效率 对于一般的图片上传功能开发,我们 ...

  5. 微信小程序图片上传并展示

    1.首先编写微信小程序的页面和样式: index.js var total = []; Page({ data: { perImgSrc: [] }, onLoad: function (option ...

  6. 微信小程序转发商品的详情页 + 转发功能(传参)

    1.微信小程序转发传参,利用的还是onShareAppMessageapi 2.利用的还有json转换 JSON 是用于存储和传输数据的格式. JSON 通常用于服务端向网页传递数据 函数 描述JSO ...

  7. 微信小程序---图片上传+服务端接受

    原文地址:http://blog.csdn.net/sk719887916/article/details/54312573 微信小程序,图片上传,应用地方-修改用户信息的头像. 详细代码: 小程序的 ...

  8. 微信小程序图片上传和裁剪

    本篇博客用于解决微信小程序图片裁剪问题 图片裁剪常用于头像选择和图片合成等. 图片裁剪解决方案: 目前网络上知名的微信小程序图片裁剪插件是we-cropper(文末有链接) 操作步骤:下载好we-cr ...

  9. 微信小程序文件上传结合lin ul

    html <l-form name="goods" l-form-btn-class="l-form-btn-class" bind:linsubmit= ...

随机推荐

  1. k8s daemonset

    DaemonSet控制器会在每个节点上运行单一的副本,他非常适合部署那些节点本身提供服务或者执行维护的 Pod 例如 : 存储相关,每个节点上运行glusterd, ceph 日志收集相关,每个节点上 ...

  2. ASP程序写的项目与微信服务号(公众号)完美结合。仅需一个DLL组建WeixinDLL

    因ASP程序开发有很多优点,早年间ASP风靡全球,因此如今还在继续运营的ASP开发的项目仍在运行着,但是随着社交网络不断发达,特别是微信支付.微信通讯.小程序等的出现,导致很多ASP项目对接起来就比较 ...

  3. AppScan扫描器的用法

    目录 AppScan 软件功能 建立一次基础的扫描 AppScan AppScan是一款非常好用且功能强大的Web 应用安全测试工具,曾以 Watchfire AppScan 的名称享誉业界,AppS ...

  4. 解决在Vim中鼠标右键不能粘贴问题

    最近维护一台服务器,使用putty登录后,用vim时,鼠标右键不能 粘贴而是进入了visual模式.网上查找一番找到了解决方法: 方 法一:在普通模式下键入" :set mouse-=a&q ...

  5. dependencyManagement 版本管理

    帮别人解决bug的时候碰到,随便记录一下. 使用<dependencyManagement>标签, 做版本管理的时候,需要父子项目关联,就需要子模块中利用<parent> 否则 ...

  6. Android学习之TTS踩坑笔记

    •前言 最近在做一款英文词典的 APP,做到语音模块的时候,我裂开,从网上搜索了各种博客,各种瞎捣鼓,模拟器就是不发音: 辗转反侧数日,终于让我找到解决之法,接下来就本次测试列出一些需要(必须)解决的 ...

  7. DevEco Device Tool 2.1 Beta1在Hi3861开发板上可视化分析的体验

    DevEco Device Tool迎来了2.1 Beta1,新版本有很多亮点.在上次"DevEco Device Tool 2.1 Beta1 的Hi3861在Windows平台的编译体验 ...

  8. GitBash管理代码

    一.Git是什么? Git是目前世界上最先进的分布式版本控制系统. 1.Git和SVN的区别 SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中 ...

  9. 一文解决MySQL时区相关问题

    前言: 在使用MySQL的过程中,你可能会遇到时区相关问题,比如说时间显示错误.时区不是东八区.程序取得的时间和数据库存储的时间不一致等等问题.其实,这些问题都与数据库时区设置有关,本篇文章将从数据库 ...

  10. 解决Latex输出PDF纸张自适应大小及中文无法显示问题

    遗留的问题 之前我们进行了基于texlive定制chemfig化学式转换Python服务镜像,虽然完成pdf的输出服务改造,但是输出效果并不是太好,如下图: 这个图有两个比较严重问题 不支持中文 空白 ...