<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>语音转文字</title>
<script src="http://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<script src="https://webapi.openspeech.cn/socket.io/socket.io.js"></script>
</head>
<body>
<h1>语音转文字</h1>
<button id="startButton">开始录音</button>
<button id="stopButton">停止录音</button>
<div id="resultContainer"></div>
<script>
// 请替换以下内容为您的科大讯飞API账号信息
var appId = "YOUR_APP_ID";
var secretKey = "YOUR_SECRET_KEY";
var apiKey = "YOUR_API_KEY";
var socket;
var sessionBegin = false;
// 创建WebSocket连接
function createWebSocket() {
socket = io.connect("wss://wsapi.xfyun.cn/v1/aiui");
socket.on("connect", function() {
console.log("WebSocket连接成功");
});
socket.on("message", function(data) {
var result = JSON.parse(data);
if (result.action == "result") {
var text = result.data.wresult;
$("#resultContainer").append(text + "<br>");
}
});
socket.on("disconnect", function() {
console.log("WebSocket连接断开");
});
}
// 发送鉴权信息
function sendAuthData() {
var currentTime = Math.floor(Date.now() / 1000);
var signaStr = apiKey + currentTime;
var signature = CryptoJS.HmacMD5(signaStr, secretKey).toString();
var authData = {
"common": {
"app_id": appId
},
"business": {
"ent": "ifr",
"aue": "raw"
},
"data": {
"status": 0
}
};
socket.emit("auth", {
"data": JSON.stringify(authData),
"signature": signature,
"signatime": currentTime
});
}
// 开始录音
function startRecord() {
if (sessionBegin) {
console.log("会话已经开始");
return;
}
socket.emit("data", "r");
sessionBegin = true;
}
// 停止录音
function stopRecord() {
if (!sessionBegin) {
console.log("会话已经结束");
return;
}
socket.emit("data", "s");
sessionBegin = false;
}
// 绑定按钮点击事件
$(function() {
$("#startButton").click(function() {
startRecord();
});
$("#stopButton").click(function() {
stopRecord();
});
});
// 页面加载完成后创建WebSocket连接并发送鉴权信息
$(document).ready(function() {
createWebSocket();
sendAuthData();
});
</script>
</body>
</html>
H5实现语音转文字完整代码
最新推荐文章于 2024-04-26 16:06:24 发布