【uniapp开发小程序】实现同声传译(长按语音转文字)

这篇具有很好参考价值的文章主要介绍了【uniapp开发小程序】实现同声传译(长按语音转文字)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

uniapp

效果图:

uniapp语音转文字,uniapp全栈,wx小程序,uni-app,小程序

 插件:

采用小程序插件:微信同声传译。插件文档定位

具体步骤:

  • 先登录小程序后台(项目别错了):官网传送
  • 然后 设置 => 第三方设置 => 添加插件 

uniapp语音转文字,uniapp全栈,wx小程序,uni-app,小程序

  • 在插件文档里面拿到Appid和版本号

uniapp语音转文字,uniapp全栈,wx小程序,uni-app,小程序

  • 在manifest.json切换成源码视图 然后在appid同级目录添加插件

uniapp语音转文字,uniapp全栈,wx小程序,uni-app,小程序

  •  然后就是引用插件,开始使用了

完整代码:

<template>
	<view>
		<view class="voicepad">
			{{voiceState}}
		</view>
		<button class="cu-btn  bg-green voicebtn " @touchstart="touchStart" @touchend="touchEnd">
			<image src="../../static/logo.png" mode="widthFix" style="width: 50rpx;"></image>
		</button>
		<view class="center" style="background-color: #555555; color: #FFF;" v-show="isShow">
			正在录音...
		</view>
	</view>
</template>

<script>
	var plugin = requirePlugin("WechatSI")
	let manager = plugin.getRecordRecognitionManager();

	export default {
		data() {
			return {
				voiceState: "你可以这样说...",
				isShow: false
			}
		},
		onShow() {

		},
		onLoad() {
			this.initRecord();
		},
		methods: {
			touchStart() {
				this.isShow = true
				manager.start({
                    //指定录音的时长,单位ms,最大为60000
					duration: 60000,
                    //识别的语言,目前支持zh_CN en_US zh_HK
					lang: "zh_CN"
				});
			},
			touchEnd() {
				uni.showToast({
					title: '录音完成',
					icon: "none"
				})
				this.isShow = false
				manager.stop();
			},
			/**  
			 * 初始化语音识别回调  
			 * 绑定语音播放开始事件  
			 */
			initRecord() {
				manager.onStart = (res) => {
					console.log('start', res.msg);
					this.voiceState = res.msg;
				};
				//有新的识别内容返回,则会调用此事件  
				manager.onRecognize = (res) => {
					this.voiceState = res.result;
					console.log('onRecognize');
				}

				// 识别结束事件  
				manager.onStop = (res) => {
					this.voiceState = res.result;
					console.log('onStop', res.result);
				}

				// 识别错误事件  
				manager.onError = (res) => {
					this.voiceState = res.msg;
					console.log('onError');

				}
			},
		}
	}
</script>

<style>
	.voicebtn {
		height: 130upx;
		display: block;
		width: 130upx;
		line-height: 130upx;
		border-radius: 65upx;
		font-size: 50upx;
		position: absolute;
		top: 1060upx;
		left: 310upx;
	}

	.voicepad {
		height: 250upx;
		width: 680upx;
		background: #fff;
		margin: 30upx auto;
		border-radius: 8upx;

		padding: 20upx;
		font-size: 35upx;
	}

	.center {
		text-align: center;
		align-items: center;
		width: 200rpx;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		padding: 20rpx;
		border-radius: 20rpx;
		/* 	height: 50rpx; */
		opacity: 0.8;
	}
</style>

注解:

@touchstart="touchStart"   手指触摸动作开始触发

@touchend="touchEnd"     手指触摸动作结束触发

问题:
有的朋友启用真机调试可以会报:error occurs:no such file or directory, access 'wxfile://usr/miniprogramLog/log2'

将2.0转为1.0就行了,发布后可正常 不会出现问题

node

效果图:

uniapp语音转文字,uniapp全栈,wx小程序,uni-app,小程序

一、对接百度智能云

登录百度智能云:百度智能云-云智一体深入产业

uniapp语音转文字,uniapp全栈,wx小程序,uni-app,小程序

uniapp语音转文字,uniapp全栈,wx小程序,uni-app,小程序

新用户可以免费体验,按照下面来就行:

uniapp语音转文字,uniapp全栈,wx小程序,uni-app,小程序

 创建应用之后就会有密钥啥的了

uniapp语音转文字,uniapp全栈,wx小程序,uni-app,小程序

二、在node项目中安装依赖并使用 

所有依赖如下:

    "baidu-aip-sdk": "^4.16.12",
    "express": "^4.18.2",
    "multer": "^1.4.5-lts.1",
    "nodemon": "^2.0.22"

不知道安装命令可到此处查找:npm

index.html

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>图片上传</title>
</head>

<body>
    <form id="uploadForm">
        <input type="file" id="fileInput">
        <button type="submit">上传图片</button>
    </form>

    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script>
        $(document).ready(function () {
            $('#uploadForm').submit(function (event) {
                event.preventDefault(); // 阻止表单的默认提交行为

                const formData = new FormData();
                formData.append('image', $('#fileInput')[0].files[0]);

                $.ajax({
                    url: 'http://127.0.0.1:3000/upload',
                    type: 'POST',
                    data: formData,
                    processData: false,
                    contentType: false,
                    success: function (result) {
                        console.log(result);
                    },
                    error: function (error) {
                        console.error(error);
                    }
                });
            });
        });
    </script>
</body>

</html>

app.js,需要在app.js的同级目录下创建static存放图片

var AipOcrClient = require("baidu-aip-sdk").ocr;
const express = require('express')
const multer = require('multer')
const fs = require('fs');
const path = require('path')
const app = express()

// 设置APPID/AK/SK
var APP_ID = "xxxxxxx";
var API_KEY = "xxxxxxxxxxxxxxxxxxxx";
var SECRET_KEY = "xxxxxxxxxxxxxxxxxxxxx";
// 新建一个对象,建议只保存一个对象调用服务接口
var client = new AipOcrClient(APP_ID, API_KEY, SECRET_KEY);

// diskStorage创建上传存储器 
const storage = multer.diskStorage({
    // 设置上传文件存储目录
    destination: function (req, file, cb) {
        cb(null, './static/')
    },
    //保存在 uploads 中的文件名
    filename: function (req, file, cb) {
        const extname = path.extname(file.originalname) // 获取文件后缀名
        const filename = Date.now() + '' + extname     // 时间戳+后缀名 生成唯一文件名
        cb(null, filename)
    }
})

//创建一个名为upload的文件上传示例
const upload = multer({ storage: storage })

// 创建上传路由
// upload.single('image') 处理单个文件上传
app.post('/upload', upload.single('image'), (req, res) => {
    const file = req.file
    if (!file) {
        return res.status(400).send('请选择要上传的图片')
    }
    const filePath = req.file.path;
    // 读取文件
    fs.readFile(filePath, (err, data) => {
        if (err) {
            console.error(err);
            res.status(500).send('Failed to read the file.');
            return;
        }
        // 将文件数据转换为 Base64
        const base64Data = data.toString('base64');
        client.generalBasic(base64Data).then(function(result) {
            res.send(result)
            console.log(result);
        }).catch(function(err) {
            console.log(err);
        });
    });
})


const PORT = process.env.PORT || 3000;
// 启动服务器
app.listen(3000, () => {
    console.log(`Server running on http://localhost:${PORT}`)
})

注解:

百度智能云更详细的可看文档:接口说明 - 文字识别OCR文章来源地址https://www.toymoban.com/news/detail-728886.html

到了这里,关于【uniapp开发小程序】实现同声传译(长按语音转文字)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小程序中使用微信同声传译插件实现语音识别、语音合成、文本翻译功能----文本翻译(三)

    官方文档链接:https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=wx069ba97219f66d99token=370941954lang=zh_CN#- 要使用插件需要先在小程序管理后台的 设置-第三方设置-插件管理 中添加插件,目前该插件仅认证后的小程序。 文本翻译目前支持的语言有 zh_CN(中国大陆) en_US(英语)。 参数说明:

    2024年01月18日
    浏览(127)
  • 小程序中使用微信同声传译插件实现语音识别、语音合成、文本翻译功能----语音识别(一)

    官方文档链接:https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=wx069ba97219f66d99token=370941954lang=zh_CN#- 要使用插件需要先在小程序管理后台的 设置-第三方设置-插件管理 中添加插件,目前该插件仅认证后的小程序。 提供语音的实时流式识别能力,通过获取全局唯一的语音识别管理器rec

    2024年01月19日
    浏览(149)
  • 微信小程序插件之微信同声传译

    1、在小城程序后台,点击设置-第三方设置-插件管理-添加插件。 搜索微信同声传译,添加到小程序即可。 2、基于uniapp开发的小程序,在uni项目中的的manifest.json文件中,找到 mp-weixin,添加plugins   3、添加成功之后,就可以在想要文字转语音的地方使用 示例:

    2024年01月20日
    浏览(77)
  • 微信小程序 -- 获取语音,并将语音转为文字(插件:微信同声传译)

     实现的功能是获取语音,并将语音转为文字,实现效果如下:                 1. 小程序后台添加插件:微信同声传译 登录小程序后台:https://mp.weixin.qq.com 11. 设置 - 第三方设置 - 添加插件 12. 输入“微信同声传译”,点击搜索,之后选择并点击添加  13. 成功添加后,

    2024年02月06日
    浏览(66)
  • MetaAI发布Seamless:两秒内实现跨语言同声传译

    在当今日益互联的世界中,语言差异常常成为沟通的障碍。MetaAI最新发布的语音翻译大模型Seamless,正是为打破这一障碍而生。Seamless不仅提供流畅、高效的多语言翻译功能,更在保留说话人韵律和风格方面取得突破,是AI同声传译领域的一大革命。 huggingface模型下载: https

    2024年02月04日
    浏览(55)
  • SeamlessStreaming在vrchat的同声传译

    之前发了几个视频简单的演示了下同声传译的效果(显卡是特斯拉P40,效果比较差,功能是ok了) Vrchat 尝试实时翻译和语音输出_哔哩哔哩_bilibili 写一下实现的思路和相关的配置(可以根据思路换其他的软件或者网站实现) 当然这一套也是可以用在其他软件,或者在vr中使用

    2024年01月17日
    浏览(62)
  • uni-app语音转文字功能demo(同声传译)

    目录 首先去微信开发者官网申请一下同声传译的插件  微信公众平台 在文件中开始引用: 首先去微信开发者官网申请一下 同声传译 的插件   微信公众平台 后续使用的时候可以看详情里面的信息进行使用 在文件中开始引用: 注意!!在这个源码视图中开始引入插件!!

    2024年02月09日
    浏览(65)
  • (保姆教程及高级玩法及坑)微信同声传译插件-语音识别

    目录 一、背景 二、效果  ​编辑 三、保姆级教程 3.1 小程序后台添加插件:微信同声传译 3.1.1 设置 - 第三方设置 - 添加插件  3.1.2 搜索插件  3.1.3 成功添加后,点击详情  3.1.4 复制它的AppID和最新版本号(后序有用)  3.2 配置项目 3.2.1 微信原生小程序  3.2.2 uniapp配置 3.

    2024年02月08日
    浏览(64)
  • 华为云会议推出同声传译功能,不错的边说边译体验~

    在全球疫情蔓延下,各个领域的跨国在线交流需求猛增。对于这种会议往往有多语种沟通的需求,比如跨国的大型会议、峰会、展会,或者业务员与国外的客户沟通大型项目,“口译员”的角色不可或缺。 然而,国内的参会人员都要先听发言人以原文说一次,再听口译员用中

    2024年02月13日
    浏览(56)
  • 手机同声传译软件有哪些?推荐四款软件实时翻译软件

    小伙伴们有时候会在街上或者旅游景点遇到外国人吗?他们有可能向我们问路、问好玩的地方、问美食推荐等等,但如果我们因为外语水平不好,而导致语言不通,很难跟他们进行交流,这个时候应该怎么办呢?其实可以借助手机同声传译软件,更好的帮助我们与外国友人交

    2024年02月09日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包