用腾讯云 AI 语音识别打造会议小帮手

2022-11-30 13:51:55 浏览数 (3)

开会是工作中经常做的一件事情,会议记录是一件让人烦恼的事情。听不清,记不住是时有发生的,很多人也对此很苦恼,如果说要想会议达到一个比较好的效果,那不妨用腾讯云AI语音识别打造一个小帮手,对会议录音进行识别,用cv大法来写会议纪要。

准备事项

  1. 需要一台有公网ip的云服务器,这里推荐选择腾讯云轻量应用服务器
  2. 本文采用vue node.js技术栈来搭建
  3. 购买腾讯云AI语音识别资源包,活动首单只要9.9元包含30小时录音转文字(可以先用新用户专享资源包,包含十小时录音转文字)

node配置项

引入腾讯云包命令

代码语言:javascript复制
npm install tencentcloud-sdk-nodejs --save

必要的参数配置和文档入口

点击查看腾讯云id和key

点击查看node.js官方指导文档

点击查看语音识别官方示例和参数文档

node代码

代码语言:javascript复制

const tencentcloud = require("tencentcloud-sdk-nodejs");
const CvmClient = tencentcloud.asr.v20190614.Client;
// 引入node中间间 用于保存音频文件
const multer = require("multer");
const path = require("path");

const clientConfig = {
	// 腾讯云认证信息
	credential: {
		secretId: //"腾讯云id",
		secretKey: // "腾讯云key",
	},
	// 可选地区 官方文档提示:非必要参数
	region: "ap-shanghai",
	// 可选配置实例
	profile: {
		signMethod: "HmacSHA256", // 签名方法
		httpProfile: {
			endpoint: "asr.tencentcloudapi.com", // 请求地址
			reqMethod: "POST", // 请求方法
			reqTimeout: 60, // 请求超时时间,默认60s
		},
	},
};
	
var storage = multer.diskStorage({
	// 配置文件上传后存储的路径
	destination: function (req, file, cb) {
		// console.log(__dirname);  //获取当前文件在服务器上的完整目录 
		// console.log(__filename); //获取当前文件在服务器上的完整路径
		cb(null, path.join(__dirname, '../img'))
	},
	// 配置文件上传后存储的路径和文件名
	filename: function (req, file, cb) {
		var filename = Date.now()   path.extname(file.originalname)
		cb(null, filename)
	}
})
var upload = multer({ storage: storage });
// 下面upload.single中的video要与前端给的名称一致
router.post('/video', upload.single('video'), (req, res) => {
	
	// 拼接储存到服务器的音频的地址 名称
	let url = '存储音频文件的url'   req.file.filename;
	// 配置必要的参数 详细可查看官方文档
	// 这里写死了,可以根据需求配合前端自由定制传参数据
	var obj = {
	// 可在公网访问的url
		'Url': url,
		"ChannelNum": 1,
		"EngineModelType": "16k_zh",
		"ResTextFormat": 2,
		"SourceType": 0
	}
	const client = new CvmClient(clientConfig)
	// 把上面写好的参数放进去
	client.CreateRecTask(obj).then(
		(data) => {
	// 文档推荐轮询请求 这里设定每隔五秒调用一次直到状态为2 说明成功了
			let poll = setInterval(() => {
				client.DescribeTaskStatus(data.Data).then(
					(data) => {
						console.log(data);
						if (data.Data.Status == 2) {
						// 把拿到的参数返回给用户
							res.json({
								code: 200,
								data: data.Data.Result
							})
							// 结束重复请求
							clearInterval(poll)
						}
					},
					(err) => {
						console.error("error", err);
						clearInterval(poll)
					}
				);
			}, 5000);
		},
		(err) => {
			console.error("error", err)
		}
	)
})

前端代码

代码语言:javascript复制
<template>
	<div id="app">
		<div class="main">
			<div>
			// ref一个video虚拟dom accept是文件类型audio是音频类型 @change选中文件触发
				<input @change="getText()" type="file" accept="audio/*" ref="video" />
			</div>
			<div>
			
				<textarea v-model="data" name="" id="" cols="30" rows="10"></textarea>
			</div>
		</div>
	</div>
</template>

<script>
	import axios from 'axios';

	export default {
		data() {
			return {
			
				data: '',
			}
		},
		methods: {
			getText() {
				// 接口
				let url = '接口';
				// 拿虚拟dom
				let video = this.$refs.video;
				let fileVideo = video.files[0];
				let formData = new FormData();
				// 这里定义的名称需要和node一致
				formData.append("video", fileVideo);
				axios.post(url,formData).then((res) => {
					this.data = res.data.data
				})
			}
		},
	}
</script>

<style>
	#app {
		width: 100%;
		height: 500px;
	}

	.main {
		height: 100%;
		display: flex;
		justify-content: center;
		align-items: center;
	}
	div {
		flex: 1
	}
</style>

实际效果

新版:

旧版:

线上demo地址

点击跳转试用

官方试用地址

开源地址:https://gitee.com/diss998/tencent-cloud-ai-voice-to-text

产品特性

价格低

购买预付费包更加优惠,识别1小时语音不到1元。每月赠送免费额度,最大程度降低客户成本。

效果好

字准率97%处于业界领先水平,与微信、王者荣耀的语音转文字使用一套服务,效果一样好。

语种多

已经支持中文普通话、英语、粤语、日语、泰语和上海话等23种方言的语音识别,后续将持续开放其他语种和语言的识别能力

算法强大

基于创新网络结构 TLC-BLSTM,利用 ATTENTION 机制有效地对语音信号进行建模,通过 Teacher-Student 方式提升系统鲁棒性,对通用以及垂直领域下场景有领先业界的识别精度和效率。

自助提升准确率

针对垂直领域,上传词表或句子即可完成语言模型的自动优化,借助自训练平台,不懂算法也可轻松实现定制化模型,进一步提升识别准确率。

支持场景丰富

经过内部微信、腾讯视频、王者荣耀等大流量产品的充分验证,在互联网、金融、教育等领域,基于海量数据实现分场景优化,积累了多行业的最佳实践。

0 人点赞