本发明涉及语音识别技术领域,特别涉及一种基于百度AI的网页版在线语音包转文字的方法。
背景技术:
语音识别技术,也被称为自动语音识别Automatic Speech Recognit1n, (ASR),其目标是将人类的语音中的词汇内容转换为计算机可读的输入。
但是,目前面临的主要问题有:
在以往的想要将一段语音包中的语音转换为文字时,往往都需要手动的多次播放和聆听语音包并将语音记录为文字,或下载各种软件提供语音转文字的技术支持等,缺乏一种实时、高效、在线、低成本的网页版的将语音包转换为文字的方法。
技术实现要素:
本发明解决了在以往的想要将一段语音包中的语音转换为文字时,往往都需要手动的多次播放和聆听语音包并将语音记录为文字,或下载各种软件将语音转文字等,本发明提供了一种实时、高效、在线、低成本的网页版的将语音包转换为文字的方法。
本发明解决上述技术问题的技术方案是:
所述的方法包含以下几个步骤:
步骤一、下载百度AI的语音识别SDK;
步骤二、创建一个html页面,并定义需要的标签;
步骤三、利用js检测用户上传的语音包的类型,并判断是否为合法类型;
步骤四、用户点击上传时,服务器对上传的文件进行处理;
步骤五、服务器调用百度AI提供的方法对用户上传的语音包检测,并将结果转换返回给用户;
本发明的有益效果:提供了一种实时、高效、在线、低成本的网页版的将语音包转换为文字的方法。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明的方法流程图。
具体实施方式
如图1所示,本发明采用如下步骤可以实现一种基于百度AI的网页版在线语音包转文字的方法。
步骤一、下载百度AI的语音识别SDK,下载百度AI提供的SDK,本专利使用node.js做服务器,需要安装node和express依赖包和formidable中间件。
步骤二、创建一个html页面,并定义需要的标签;
步骤三、利用js检测用户上传的语音包的格式,并判断是否为合法格式;
var flag = false;
function changFn(obj){
var exe = obj.files[0].name.split(".").splice(-1);
var arr = ["pcm", "wav", "amr"];
$.each(arr, function(i){
if(exe == arr[i]){
flag = true;
return false;
}
});
if(!flag){
alert("上传的文件格式非法");
}
}
步骤四、用户点击上传时,服务器对上传的文件进行处理;
const fs = require('fs');
const path = require("path");
const http = require("http");
const formidable = require('formidable');
const express = require("express");
const app = express();
app.post("/uploadFile", function(req, res, next){
var form = new formidable.IncomingForm();
form.uploadDir = path.join(__dirname, "./statics/audio");
form.parse(req, function (err, fields, files) {
var oldPath = files.file.path;
var extname = path.extname(files.file.name);
var newPath = path.join(__dirname, "./statics/audio/", parseInt(Math.random()*10000000) + extname);
fs.rename(oldPath, newPath, function (err) {
if (err) { res.send("上传失败"); return; }
console.log("上传成功");
transformYY(res, newPath);
});
});
});
http.createServer(app).listen(3000,"127.0.0.1");
步骤五、服务器调用百度AI提供的方法对用户上传的语音包检测转换,并将转换结果以文字形式返回给用户;
var AipSpeechClient = require("baidu-aip-sdk").speech;
// 设置APPID/AK/SK
var APP_ID = "您百度AI的APP_ID";
var API_KEY = "您百度AI的API_KEY";
var SECRET_KEY = "您百度AI的SECRET_KEY";
function transformYY(res,newPath){
let filePath = fs.readFileSync(newPath);
let fileBuffer = new Buffer(filePath );
client.recognize(fileBuffer , 'pcm', 16000).then(function (result) {
res.send(result['result']);
}, function(err) {
console.log(err);
});
}。