<template>
<div class="recordPlagin">
<!-- 录音提示 -->
<div class="mask" v-if="yingPingDisPlay">
<img src="../assets/help/yuYin/yingPingBo.gif" />
<span>正在听,松开进行搜索!</span>
</div>
<!-- 按钮 -->
<!-- <div @touchstart="gtouchstart()" @touchend="gtouchend()" style="background-image: linear-gradient(#FE4C6B, #FE4C6B); font-weight: bold; border-radius: 20px; display: flex;align-items: center;color: #fff; center;padding: 5px 2%;width: 30%;margin: 10px 33%;justify-content: space-evenly;">
<img style="width: 20px;height: 20px;" src="../assets/help/lu_yin.png" />
<div>{{viodeText}}</div>
</div> -->
<div class="buttonImg" @touchstart="gtouchstart()" @touchend="gtouchend()" :style="{backgroundImage:'url('+buttonImg+')'}">
</div>
</div>
</template>
<script>
import Recorder from 'js-audio-recorder'
var recorder = new Recorder({
sampleBits: 16, // 采样位数,支持 8 或 16,默认是16
sampleRate: 16000, // 采样率,支持 11025、16000、22050、24000、44100、48000,根据浏览器默认值,我的chrome是48000
numChannels: 1, // 声道,支持 1 或 2, 默认是1
// compiling: false,(0.x版本中生效,1.x增加中) // 是否边录边转换,默认是false
})
// 绑定事件-打印的是当前录音数据
recorder.onprogress = function(params) {
// alert('--------------START---------------')
// alert('录音时长(秒)', params.duration);
// alert('录音大小(字节)', params.fileSize);
// alert('录音音量百分比(%)', params.vol);
// alert('当前录音的总数据([DataView, DataView...])', params.data);
// alert('--------------END---------------')
}
export default {
data() {
return {
viodeText: '长按说话',
search: '',
yingPingDisPlay:false,
buttonImg:require('../assets/help/yuyin_sh.png'),
};
},
mounted() {
//获取录音权限
Recorder.getPermission().then(() => {
// this.$vux.toast.text('获取权限成功', 'top');
}, (error) => {
alert(`${error.name} : ${error.message}`);
});
},
methods: {
gtouchstart() {
// this.viodeText = '松开搜索'
this.buttonImg = require('../assets/help/yuyin_ss.png');
this.startRecorder();
this.yingPingDisPlay = true;
},
gtouchend(event) {
this.yingPingDisPlay = false;
// this.viodeText = '长按说话'
this.buttonImg = require('../assets/help/yuyin_sh.png');
this.stopRecorder();
this.getRecorder();
},
//开始录音
startRecorder() {
recorder.start().then(() => {
}, (error) => {
// 出错了
alert(`${error.name} : ${error.message}`);
});
},
// 结束录音
stopRecorder() {
recorder.stop()
},
//获取onload里面的录音信息
getRecordInfo(e) {
var that = this;
let wavValue = e.split("base64,")[1];
var data = {
ProjectId: 0, //腾讯云项目 ID
SubServiceType: 2, //一句话识别
SourceType: 1, //语音数据
EngSerViceType: "16k_zh",
VoiceFormat: "wav", //识别音频的音频格式。
Data: wavValue,
UsrAudioKey: "snimay",
FilterDirty:1,//是否过滤脏词
FilterPunc:2,//是否过滤标点符号
FilterModal:2//是否过语气词
};
console.log(data)
that.$vux.loading.show({text: '语音识别中!'});
that.$axios
.post(
"/common.do",
that.$qs.stringify({
method: this.$method.METHOD_API_CATEGORYMODULE,
data: JSON.stringify(data),
})
)
.then((res) => {
setTimeout(() => {
that.$vux.loading.hide();
}, 10);
if (res.data.data.Result == '' || res.data.data.Result == undefined) {
that.$vux.toast.text('抱歉,没有听清楚!', 'middle');
} else {
const { Result } = res.data.data;
that.$emit('abc', Result);
// alert(this.key_word)
// this.getProblemusercollect();
}
});
},
//获取录音wav
getRecorder() {
let toltime = recorder.duration; //录音总时长
let fileSize = recorder.fileSize; //录音总大小
// alert(`时间:${toltime},大小:${toltime}`)
// let PCMBlob = recorder.getPCMBlob(); //获取 PCM 数据
var wav = recorder.getWAVBlob(); //获取 WAV 数据
var reader = new FileReader();
reader.readAsDataURL(wav);
this.search = '';
reader.onload = () => {
this.search = reader.result;
//调用其他方法
this.getRecordInfo(this.search, '', )
}
}
}
};
</script>
<style scoped lang="less">
.recordPlagin{
position: fixed;
bottom: 50px;
width: 100%;
.mask{
background: #fff;
margin-bottom: 35px;
img{
width: 100%;
}
span{
display: flex;
justify-content: center;
opacity: 0.5;
}
}
.buttonImg{
width: 135px;
height: 37.44px;
background-size: 100% 100%;
margin: auto;
}
}
</style>
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
vue使用js-audio-recorder实现一句话识别功能:以vue前端框架+腾讯云语音识别为基础,实现客户端长按录音,获取语音转换编译出来的识别码,传给后端去腾讯云语音识别库去换取识别回来的文本尽心客户端的文本查询!实现一句话查询效果!以vue前端框架+腾讯云语音识别为基础,实现客户端长按录音,获取语音转换编译出来的识别码,传给后端去腾讯云语音识别库去换取识别回来的文本尽心客户端的文本查询!实现一句话查询效果!以vue前端框架+腾讯云语音识别为基础,实现客户端长按录音,获取语音转换编译出来的识别码,传给后端去腾讯云语音识别库去换取识别回来的文本尽心客户端的文本查询!实现一句话查询效果!以vue前端框架+腾讯云语音识别为基础,实现客户端长按录音,获取语音转换编译出来的识别码,传给后端去腾讯云语音识别库去换取识别回来的文本尽心客户端的文本查询!实现一句话查询效果!以vue前端框架+腾讯云语音识别为基础,实现客户端长按录音,获取语音转换编译出来的识别码,传给后端去腾讯云语音识别库去换取识别回来的文本尽心客户端的文本查询!实现一句话查询效果!以vue前端框架+腾讯云语音识别为基础,实现客
资源详情
资源评论
资源推荐
收起资源包目录




共 2 条
- 1


格式:pdf 资源大小:42.6KB 页数:3



















格式:rar 资源大小:256.6KB









我就不思
- 粉丝: 4058
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 石油化工企业设计防火规范》(2009版).doc
- 大厦简介2.0修改状态(0次).doc
- 合同副经理与合同部长责任书(样本).docx
- 2015年全国研究生数学建模竞赛B题《数据的多流形结构分析》论文及附件。.zip
- 高气压对机体的影响(1).pptx
- 9衡重式下挡墙施工技术交底(000).doc
- 城市地下综合管廊案例-20151013-培训课件.pptx
- 新疆柯坪县群众文化中心工程建设监理月报.doc
- 公路造价确定与控制200道练习题.doc
- mpvue框架仿滴滴出行微信小程序.zip
- 房屋入住流程图.docx
- S-工程建设标准强制性条文.doc
- 【风险预案】血液透析风险预案完整版.pdf
- 小学语文作业布置出题网站源码简单方便的作业练习册随机出题网站源码支持打印
- 两个做给健身房预约课程的微信小程序.zip
- [江苏]商住综合体项目可行性分析报告(97页-图文结合详述)1.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0