录音文件实现语音转换和文本识别最终文档输出结果实现mp3等录音文件的语音识别转化为文本,最终得到文档格式或其他定义格式的文件,还可以提取数据处理逻辑,轻松实现大文件的语音转文本功能,准确、高效、方便...功能技术:java+阿里云语音识别+OSS文件存储*注:文件需要有读写权限可下载访问权限码配置区域ID、常量、固定值://区域ID、常量、固定值。(根据自己开通地址配置)publicstaticfinalStringREGIONID="cn-shenzhen";publicstaticfinalStringENDPOINTNAME="cn-shenzhen";publicstaticfinalStringPRODUCT="nls-filetrans";publicstaticfinalStringDOMAIN="filetrans.cn-shenzhen.aliyuncs.com";publicstaticfinalStringAPI_VERSION="2018-08-17";//中国站版本//publicstaticfinalStringAPI_VERSION="2019-08-23";//国际站版本publicstaticfinalStringPOST_REQUEST_ACTION="SubmitTask";publicstaticfinalStringGET_REQUEST_ACTION="GetTaskResult";//请请求参数publicstaticfinalStringKEY_APP_KEY="appkey";publicstaticfinalStringKEY_FILE_LINK="file_link";publicstaticfinalStringKEY_VERSION="version";publicstaticfinalStringKEY_ENABLE_WORDS="enable_words";//响应参数publicstaticfinalStringKEY_TASK="Task";publicstaticfinalStringKEY_TASK_ID="TaskId";publicstaticfinalStringKEY_STATUS_TEXT="StatusText";publicstaticfinalStringKEY_RESULT="Result";//状态值publicstaticfinalStringSTATUS_SUCCESS="SUCCESS";privatestaticfinalStringSTATUS_RUNNING="RUNNING";privatestaticfinalStringSTATUS_QUEUEING="QUEUEING";完整代码:packagecom.jame.excel.excelManager;importcn.hutool.core.io.FileUtil;importcn.hutool.core.io.IoUtil;导入cn.hutool.json.JSONUtil;导入com.aliyuncs.fastjson.JSONArray;导入com.aliyuncs.fastjson.JSONObject;导入com.aliyuncs.CommonRequest;导入com.aliyuncs.CommonResponse;导入com.aliyuncs.DefaultAcsClient;导入com.aliyuncs.IAcsClient;importcom.aliyuncs.exceptions.ClientException;importcom.aliyuncs.http.MethodType;importcom.aliyuncs.profile.DefaultProfile;importjava.io.File;importjava.util.ArrayList;importjava.util.列表;publicclassFileTransJavaDemo{//区域ID,常量,固定值publicstaticfinalStringREGIONID="cn-shenzhen";publicstaticfinalStringENDPOINTNAME="cn-shenzhen";publicstaticfinalStringPRODUCT="nls-filetrans";publicstaticfinalStringDOMAIN="filetrans.cn-shenzhen.aliyuncs.com";publicstaticfinalStringAPI_VERSION="2018-08-17";//中国站版本//publicstaticfinalStringAPI_VERSION="2019-08-23";//国际站版本publicstaticfinalStringPOST_REQUEST_ACTION="SubmitTask";publicstaticfinalStringGET_REQUEST_ACTION="GetTaskResult";//请请求参数publicstaticfinalStringKEY_APP_KEY="appkey";publicstaticfinalStringKEY_FILE_LINK="file_link";publicstaticfinalStringKEY_VERSION="version";publicstaticfinalStringKEY_ENABLE_WORDS="enable_words";//响应参数publicstaticfinalStringKEY_TASK="Task";publicstaticfinalStringKEY_TASK_ID="TaskId";publicstaticfinalStringKEY_STATUS_TEXT="StatusText";publicstaticfinalStringKEY_RESULT="Result";//状态值publicstaticfinalStringSTATUS_SUCCESS="SUCCESS";私有静态最终字符串STATUS_RUNNING="RUNNING";privatestaticfinal字符串STATUS_QUEUEING="QUEUEING";//阿里云鉴权clientIAcsClientclient;publicFileTransJavaDemo(StringaccessKeyId,StringaccessKeySecret){//设置端点try{DefaultProfile.addEndpoint(ENDPOINTNAME,REGIONID,PRODUCT,DOMAIN);}catch(ClientExceptione){e.printStackTrace();}//创建DefaultAcsClient实例并开始化DefaultProfileprofile=DefaultProfile.getProfile(REGIONID,accessKeyId,accessKeySecret);this.client=newDefaultAcsClient(profile);}publicStringsubmitFileTransRequest(StringappKey,StringfileLink){/***1.创建一个CommonRequest并设置请求参数*/CommonRequestpostRequest=newCommonRequest();//设置域名postRequest.setDomain(DOMAIN);//设置API的版本号,格式为YYYY-MM-DD。postRequest.setVersion(API_VERSION);//设置动作postRequest.setAction(POST_REQUEST_ACTION);//设置产品名称postRequest.setProduct(PRODUCT);/***2.设置录音文件识别请求参数,以JSON字符串格式设置到请求体中。*/JSONObjecttaskObject=newJSONObject();//设置应用密钥taskObject.put(KEY_APP_KEY,appKey);//设置音频文件访问链接taskObject.put(KEY_FILE_LINK,fileLink);//新访问请使用4.0版本,已有访问(默认2.0)如果想保持现状,请注释掉该参数设置。taskObject.put(KEY_VERSION,"4.0");//设置是否输出word信息,默认为false,开启时需要设置版本为4.0以上。taskObject.put(KEY_ENABLE_WORDS,true);taskObject.put("enable_sample_rate_adaptive",true);字符串任务=taskObject.toJSONString();System.out.println(任务);//将上面的JSON字符串设置为Body参数。postRequest.putBodyParameter(KEY_TASK,任务);//设置为POST请求。postRequest.setMethod(MethodType.POST);/***3.提交录音文件识别请求,获取录音文件识别请求任务ID,用于识别结果查询。*/StringtaskId=null;尝试{CommonResponsepostResponse=client.getCommonResponse(postRequest);System.err.println("响应提交录音文件识别请求:"+postResponse.getData());if(postResponse.getHttpStatus()==200){JSONObject结果=JSONObject.parseObject(postResponse.getData());StringstatusText=result.getString(KEY_STATUS_TEXT);如果(STATUS_SUCCESS.equals(statusText)){taskId=result.getString(KEY_TASK_ID);}}}catch(ClientExceptione){e.printStackTrace();}返回任务编号;}publicStringgetFileTransResult(StringtaskId){/***1.创建一个CommonRequest并设置任务ID。*/CommonRequestgetRequest=newCommonRequest();//设置域名getRequest.setDomain(DOMAIN);//设置API版本getRequest.setVersion(API_VERSION);//设置动作getRequest.setAction(GET_REQUEST_ACTION);//设置产品名称getRequest.setProduct(PRODUCT);//将任务ID设置为查询参数getRequest.putQueryParameter(KEY_TASK_ID,taskId);//将请求设置为GET方法getRequest.setMethod(MethodType.GET);/***2.提交录音文件识别结果查询请求*轮询查询识别结果,直到服务器返回的状态描述为“SUCCESS”或错误描述,则轮询结束。*/字符串结果=null;while(true){try{CommonResponsegetResponse=client.getCommonResponse(getRequest);System.err.println("识别查询结果:"+getResponse.getData());如果(getResponse.getHttpStatus()!=200){休息;}JSONObjectrootObj=JSONObject.parseObject(getResponse.getData());StringstatusText=rootObj.getString(KEY_STATUS_TEXT);if(STATUS_RUNNING.equals(statusText)||STATUS_QUEUEING.equals(statusText)){//继续轮询,注意设置轮询间隔。线程.睡眠(10000);}else{//如果状态信息成功,则返回识别结果;如果状态信息异常,则返回空。如果(STATUS_SUCCESS.equals(statusText)){结果=rootObj.getString(KEY_RESULT);//状态信息是成功的,但是没有识别结果,可能是文件里面全是静音、噪音等,识别为空。如果(结果==null){结果=“”;}}休息;}}catch(Exceptione){e.printStackTrace();}}返回结果;}publicstaticvoidmain(Stringargs[])throwsException{//写出文本路径文件Stringpath="C:\\Users\\Administrator\\Desktop\\"+System.currentTimeMillis()+".txt";//txt数据List
