前端实现语音识别、语音翻译

news/2024/11/28 18:52:32/

前端实现语音识别、语音翻译

需求:用户说一段话,转译英文

一、录音

使用的是js-audio-recorder

另我这个里面有些东西是不需要的,因为我有个录音波浪图的功能,大家可忽略

   let recorder = new Recorder({sampleBits: 16, // 采样位数,支持 8 或 16,默认是16sampleRate: 16000, // 采样率,支持 11025、16000、22050、24000、44100、48000numChannels: 1, // 声道,支持 1 或 2, 默认是1
});/***  录音的具体操作功能* */// 开始录音startRecorder() {recorder.start().then(() => {this.drawRecord(); //开始绘制图片},(error) => {console.log(`${error.name} : ${error.message}`);});},// 结束录音stopRecorder() {recorder.stop();this.drawRecordId && cancelAnimationFrame(this.drawRecordId);this.drawRecordId = null;},// 录音播放playRecorder() {recorder.play();this.drawPlay(); //绘制波浪图},// 停止录音播放stopPlayRecorder() {recorder.stopPlay();},// 销毁录音destroyRecorder() {recorder.destroy().then(function () {recorder = null;this.drawRecordId && cancelAnimationFrame(this.drawRecordId);this.drawRecordId = null;});},

二、blobtoBase64

因百度ai接口需要base64格式编码,需转一下格式

    /*** blob二进制 to base64**/export function blobToBase64(blob) {return new Promise((resolve, reject) => {const fileReader = new FileReader();fileReader.onload = (e) => {resolve(e.target.result);};// readAsDataURLfileReader.readAsDataURL(blob);fileReader.onerror = () => {reject(new Error('blobToBase64 error'));};});}

三、调用百度语音识别接口

先简单处理一下跨域问题

      '/oauth': {target: 'https://aip.baidubce.com',secure: true,pathRewrite: {'^/oauth' : '/oauth'},changeOrigin: true},

识别接口里有个参数token,所以需先获取token

/***  处理录音识别**/import request from '@/api/request'
const tokenUrl = "/oauth/2.0/token"; 
const urlInfo = "/server_api";
const API_KEY = "";//自己去官网上开通服务,拿到 API_KEY
const SECRET_KEY = "";//自己去官网上开通服务,拿到  SECRET_KEY
const myurl =tokenUrl +"?grant_type=client_credentials" +"&client_id=" +API_KEY +"&client_secret=" +SECRET_KEY;export async function identify(blob, size) {const res = await request.post(myurl)let access_token = res.access_token;let speech = blob.split("data:audio/wav;base64,")[1];let formData = {format: "wav",rate: 16000,dev_pid: 1537,channel: 1,token: access_token,cuid: "baidu_workshop",len: size,speech: speech,};const r = await request.post(urlInfo, formData)let basic = r.result[0];let newBasic = basic.substring(0, basic.length - 1);return newBasic}

四、调用百度语音翻译接口

同识别接口差不多,解决跨域问题再请求,不对,应该是先请求出现跨域问题再解决。

/***  处理语音翻译**/import axios from "axios";import md5 from "js-md5";const request = axios.create({baseURL: '',headers: {"Content-Type": "application/x-www-form-urlencoded",},});let appid = "";//去官网获取let key = "";//去官网获取let salt = new Date().getTime();const url = "/api/trans/vip/translate";let form = new FormData();let from = "zh";let to = "en";export async function translate(word) {let query = word; // 多个query可以用\n连接  如 query='apple\norange\nbanana\npear'let str1 = appid + query + salt + key;let sign = md5(str1);const myurl =url +"?appid=" +appid +"&from=" +from +"&to=" +to +"&salt=" +salt +"&sign=" +sign;form.append("q", query);const res = await request.post(myurl, form)let prompt = res.data.trans_result[0].dst;localStorage.setItem("prompt", prompt);return prompt}
      '/api': {target: 'http://api.fanyi.baidu.com',secure: false,pathRewrite: {'^/api' : '/api'},changeOrigin: true}

三、调用

调用即可 word为中文,prompt为英文

    /***  处理录音识别,语音翻译**/async identify() {let file = recorder.getWAVBlob();let size = file.size;const blob = await blobToBase64(file);const word = await identify(blob, size);const prompt = await translate(word);}

http://www.ppmy.cn/news/800096.html

相关文章

调用百度aip实现短语音翻译(附代码)

我的本意是想在Xilinx PYNQ上实现语音翻译,做一个类似翻译宝的应用,由于百度智能云目前仅支持安卓和IOS上的语音翻译,所以想要在嵌入式设备上实现该功能,就需要顺序调用短语音识别API和通用翻译API,下面记录使用方法。…

韩语在线翻译图片识别_在线翻译有道小程序

在线翻译小程序、在线翻译拍照、在线翻译词典、文字识别小程序、翻译软件、文字识别转换软件、 【拍照在线翻译】是一款实用的实时在线外语翻译神器,它可以帮我很快实现中英文在线翻译,不管是短语句还很是长语句,翻译的正确率都很高,可以彻底解放我的双手和大脑。而日且这么…

c语言在线翻译器,command(c语言翻译工具)

command键:command是指令的意思。绝大多数快捷键都是和这个按键搭配的,它无需解释,就是指令干什么而已。比如command+i(information)详细信息、command+q(. command是什么意思 command level命令级别command[英][k??mɑ:nd][美][k??m?nd]n.命令,指挥; 司令部,指挥部…

蒙古文字在线翻译_内蒙古语言免费中文转换蒙文翻译_中蒙互译电脑版在线

蒙汉语互相翻译除了手机版本蒙汉翻译通,电脑版本在线翻译蒙文也可以实现了,在准橙云市场就可以找到,注册登录后有独立账号,可以中蒙互译在线。 中文翻译成蒙文的效果如下: 蒙文翻译成中文的效果: 蒙文翻译的…

c语言在线翻译器,【C语言】【window】--在线翻译器.doc

【C语言】【Windows】--在线翻译器 01.程序简介 程序名称: 编译器:vs2010(其它也可以……) 程序大小:10K 文件包括:exe, skinh.she,SkinH.dll,msvcr100.dll 程序界面: 02.任务说明 /*********************************…

python维语翻译中文_维族语言在线翻译

展开全部 中文:“请保持环境卫生”; 维族语:“مۇھىت تازىلىقىنى ساقلاڭ”。 扩展资料 以上翻32313133353236313431303231363533e59b9ee7ad9431333366303731译是由中国民族语文翻译局提供的翻译。 中国民族语文翻译局(中…

语音翻译app排行十大最好用的语音识别翻译软件

每当出国旅游或是工作时,如果外语能力较差,就需要能帮助你与外国人沟通的工具,什么app语音实时翻译比较好?这里为大家准备了语音翻译app排行,有需要的小伙伴不妨来看看吧。 语音翻译app排行 1、有道翻译官 2、百度翻译 3、腾讯翻译君 4、谷歌翻译 5、出国翻译官 6、…

-XX:MaxDirectMemorySize

-XX:MaxDirectMemorySize最大堆外内存大小,此参数的含义是当Direct ByteBuffer分配的堆外内存到达指定大小后就触发Full GC。首先可以在jdk文档中找到:关于MaxDirectMemorySize内存的描述:Sets the maximum total size (in bytes) of the New…