博舍

语音转文字 语音识别转文字器

语音转文字

第一步:把需要进行语音/录音转文字的音频文件拖入到页面中,这里支持批量拖入。也可以点击按钮选择文件或包含文件的文件夹。非VIP用户仅支持转换小于20M的音频文件,若要转换更多更大的文件请开通VIP会员。

第二步:等待上传和预处理时,可以在右侧的参数设置区域进行相应的选择操作。等待上传和预处理完成后,即可点击“开始转换”按钮进行转换。

第三步:待转换完成后,即可点击文件右侧的下载按钮,下载转换结果。

语音文字办公专家官方新版本

简介语音文字办公专家是一款专注于手机实时录音、录音转文字、视频转文字、音频转文字、语音转文字、语音翻译等多功能APP,产品内置了高级的识别系统,可快速无损的将语音、音频文件内容转换为文字内容输出,同时可进行多语种的翻译操作。可满足日常办公会议记录,媒体采访,录音取证等多场景下的录音转文字需求。语音识别后的内容可以进行一键复制,快速导出的录音转文字助手。【实时语音转文字】在线录音转文字,准确快速,提高办公或学习效率,方便省心:语音转文字、音频转文字、文字识别、文字提取、语记听写、音频提取等;【导入外部音频】一键导入外部录音文件,迅速转换提取为文本形式,可复制、编辑及校对;【视频转文字/音频】支持视频生成文字、视频提取文字导出、视频转音频文件、字幕提取等;【音频编辑处理】支持音频合并、音频裁剪、音频分割、音频编辑、音频倒放、音频混合、音频压缩、淡入淡出、音量调节、和变速变调等,同时支持多种音频格式间互相转换;【语音翻译】在线实时翻译、多种语言互译,专业智能!翻译录音、翻译软件、英语翻译、语音翻译、在线翻译、语言翻译器、对话翻译,中英翻译,日语翻译,韩语翻译,泰语翻译等;【录音机】音质流畅清晰无杂音,专业录音笔效果!让你在备忘速记时,得心应手:录音、备忘录、录音软件、语音备忘录、录音机、录音笔、语音笔记;

Recorderjs加百度语音识别实现语音转文字(中文普通话)

文章分为三个部分1、百度语音测试使用(开发平台提供的音频)2、Recorder.js捕获实际音频3、后端语音转文字处理使用原生JavaScript和jsp进行实现

1、百度语音测试使用(开发平台提供的音频)

2、Recorder.js捕获实际音频

1)下载地址:https://github.com/ubbcou/RecorderGitHub上有具体使用教程,以下是个人应用的部分代码,点击一次开始录音,再次点击停止录音并将音频传送到后端

varrec;varflag=0;functionstartRec(){flag+=1;if(flag%2==1){rec=Recorder({type:"mp3",sampleRate:16000,bitRate:16,numChannels:1});//使用默认配置,mp3格式//打开麦克风授权获得相关资源rec.open(function(){//开始录音rec.start();},function(msg,isUserNotAllow){//用户拒绝了权限或浏览器不支持alert((isUserNotAllow?"用户拒绝了权限,":"")+"无法录音:"+msg);});}if(flag%2==0){//停止录音,得到了录音文件blob二进制对象,想干嘛就干嘛rec.stop(function(blob,duration){/*blob文件对象,可以用FileReader读取出内容,或者用FormData上传,本例直接上传二进制文件,对于普通application/x-www-form-urlencoded表单上传,请参考github里面的例子*/varform=newFormData();form.append("upfile",blob,"recorder.mp3");//和普通form表单并无二致,后端接收到upfile参数的文件,文件名为recorder.mp3//直接用ajax上传varxhr=newXMLHttpRequest();xhr.open("POST","http://localhost:8080/语音处理程序路径");//这个假地址在控制台network中能看到请求数据和格式,请求结果无关紧要xhr.onreadystatechange=function(){if(xhr.readyState==4){alert(xhr.status==200?"上传成功":"测试请先打开浏览器控制台,然后重新录音,在network选项卡里面就能看到上传请求数据和格式了");document.getElementById("keyword").value=xhr.responseText;}}xhr.send(form);},function(msg){alert("录音失败:"+msg);});}};functionuploadRec(){//停止录音,得到了录音文件blob二进制对象,想干嘛就干嘛rec.stop(function(blob,duration){/*blob文件对象,可以用FileReader读取出内容,或者用FormData上传,本例直接上传二进制文件,对于普通application/x-www-form-urlencoded表单上传,请参考github里面的例子*/varform=newFormData();form.append("upfile",blob,"recorder.mp3");//和普通form表单并无二致,后端接收到upfile参数的文件,文件名为recorder.mp3//直接用ajax上传varxhr=newXMLHttpRequest();xhr.open("POST","");//放后端语音处理程序的地址xhr.onreadystatechange=function(){if(xhr.readyState==4){alert(xhr.status==200?"上传成功":"测试请先打开浏览器控制台,然后重新录音,在network选项卡里面就能看到上传请求数据和格式了");document.getElementById("keyword").value=xhr.responseText;}}xhr.send(form);},function(msg){alert("录音失败:"+msg);});};functionplayRec(){//停止录音,得到了录音文件blob二进制对象,想干嘛就干嘛rec.stop(function(blob,duration){varaudio=document.createElement("audio");audio.controls=true;document.body.appendChild(audio);//非常简单的就能拿到blob音频urlaudio.src=URL.createObjectURL(blob);audio.play();},function(msg){alert("录音失败:"+msg);});};3、后端语音转文字处理

1)百度语音试别音频格式要求2)ffmpeg安装这里使用ffmepeg进行音频格式转换i)安装解压static版到文件夹将bin目录的路径添加到Path中

ii)在命令符窗口中测试,出现如下内容即安装成功

3)后端语音处理代码

publicclassAudioServletextendsHttpServlet{publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse){doGet(request,response);}SecretKeypublicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse){finalStringAPP_ID="写自己申请到的AppID";finalStringAPI_KEY="写自己申请到的APIKey";finalStringSECRET_KEY="写自己申请到的APIKey";DiskFileItemFactoryfactory=newDiskFileItemFactory();Stringpath="E:\audio";factory.setRepository(newFile(path));factory.setSizeThreshold(1024*1024);ServletFileUploadupload=newServletFileUpload(factory);try{Listitems=(List)upload.parseRequest(request);for(FileItemitem:items){if(item.isFormField()){//System.out.println(item.getFieldName());}else{//System.out.println(item.getName());//System.out.println(item.getString());//byte[]data;//data=Util.readFileByBytes(item.getString());//readFileByBytes仅为获取二进制数据示例Stringvalue=item.getName();intstart=value.lastIndexOf("\");System.out.println("1");Stringfilename=value.substring(start+1);System.out.println("2");try{OutputStreamout=newFileOutputStream(newFile(path,filename));InputStreamin=item.getInputStream();intlength=0;byte[]buf=newbyte[1024];//System.out.println("获取上传文件的总共的容量:"+item.getSize());while((length=in.read(buf))!=-1){out.write(buf,0,length);}in.close();out.close();}catch(FileNotFoundExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}Stringroot="E:\ProgramFiles\ffmpeg\bin";//填自己的ffmpeg的bin目录所在路径Stringmp3Name="E:\audio\recorder.mp3";StringpcmName="E:\audio\test.pcm";Runtimerun=Runtime.getRuntime();try{Processp=run.exec(newFile(root).getAbsolutePath()+"\ffmpeg-y-i"+mp3Name+"-fs16le-ar16000-ac1-acodecpcm_s16le"+pcmName);//进程调用ffmpeg对音频进行格式转换p.getOutputStream().close();p.getInputStream().close();p.getErrorStream().close();p.waitFor();}catch(IOExceptione){e.printStackTrace();}catch(InterruptedExceptione){e.printStackTrace();}finally{run.freeMemory();}AipSpeechclient=newAipSpeech(APP_ID,API_KEY,SECRET_KEY);JSONObjectasrRes2=client.asr((pcmName),"pcm",16000,null);JSONArrayresult=asrRes2.getJSONArray("result");try{response.setCharacterEncoding("utf-8");PrintWriterpw=response.getWriter();Stringword=result.get(0).toString();word=word.substring(0,word.length()-1);pw.write(word);}catch(IOExceptione){e.printStackTrace();}}}}catch(FileUploadExceptione){e.printStackTrace();}}}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇