开会是工作中经常做的一件事情,会议记录是一件让人烦恼的事情。听不清,记不住是时有发生的,很多人也对此很苦恼,如果说要想会议达到一个比较好的效果,那不妨用腾讯云AI语音识别打造一个小帮手,对会议录音进行识别,用cv大法来写会议纪要。
准备事项
- 需要一台有公网ip的云服务器,这里推荐选择腾讯云轻量应用服务器
- 本文采用vue node.js技术栈来搭建
- 购买腾讯云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 方式提升系统鲁棒性,对通用以及垂直领域下场景有领先业界的识别精度和效率。
自助提升准确率
针对垂直领域,上传词表或句子即可完成语言模型的自动优化,借助自训练平台,不懂算法也可轻松实现定制化模型,进一步提升识别准确率。
支持场景丰富
经过内部微信、腾讯视频、王者荣耀等大流量产品的充分验证,在互联网、金融、教育等领域,基于海量数据实现分场景优化,积累了多行业的最佳实践。