【工具】HTML自动识别用户正在讲话 以及停止讲话

【工具】HTML自动识别用户正在讲话 以及停止讲话

javascript 复制代码
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>语音识别</title>
</head>
<body>
    <h2>点击按钮开始语音识别</h2>
    <button id="startButton">开始识别</button>
    <p id="status">等待用户讲话...</p>
    <script>
        let recognition;
        let isRecognizing = false;

        // 检查浏览器是否支持 Web Speech API
        if (!('webkitSpeechRecognition' in window)) {
            alert("抱歉,您的浏览器不支持语音识别!");
        } else {
            recognition = new webkitSpeechRecognition();
            recognition.continuous = true;  // 设置为持续模式,识别一段时间后不会停止
            recognition.interimResults = true;  // 获取中间结果

            // 语音识别开始时
            recognition.onstart = function() {
                isRecognizing = true;
                document.getElementById('status').innerText = "正在识别中...";
            };

            // 语音识别结束时
            recognition.onend = function() {
                isRecognizing = false;
                document.getElementById('status').innerText = "停止识别,等待用户讲话...";
            };

            // 识别到语音时
            recognition.onresult = function(event) {
                let result = event.results[event.resultIndex];
                let transcript = result[0].transcript;  // 获取识别的文本
                console.log("识别结果:", transcript);
                
                // 如果有中间结果,可以实时更新
                if (event.results[0].isFinal) {
                    document.getElementById('status').innerText = "识别结果: " + transcript;
                }
            };

            // 点击按钮开始识别
            document.getElementById('startButton').addEventListener('click', function() {
                if (isRecognizing) {
                    recognition.stop();  // 停止识别
                    document.getElementById('status').innerText = "已停止识别。";
                } else {
                    recognition.start();  // 开始识别
                }
            });
        }
    </script>
</body>
</html>
相关推荐
greasyfork1 小时前
多种数据库管理混乱?Navicat Premium 17 for Mac 统一解决
数据库·mysql·macos·mac
不负信仰2 小时前
Visual Studio 三月更新 —— 打造专属自定义 Agent
ide·visual studio
碎_浪3 小时前
Mac 壁纸被 MDM 锁住?我做了个 2MB 的开源方案
macos·开源·swift
流量猎手5 小时前
Vscode登陆服务器
服务器·ide·vscode
逆向编程5 小时前
AI编程CLI两种配置方案(macOS专用)
macos·ai编程
沐禾安信5 小时前
开会来不及记录?Mac 录屏方法收好
macos·音视频·电脑录屏
HAPPY酷5 小时前
【ROS2】16G 内存笔记本跑 ROS2 仿真?VMware 虚拟机“保姆级”配置指南 (R9 7940HX + RTX 4060)
java·linux·ide·windows·pycharm
ITKEY_15 小时前
macOS brew 安装的nginx 文件在哪里?
运维·nginx·macos
烽火聊员15 小时前
查看Android Studio错误日志
android·ide·android studio
大E帝国子民116 小时前
MacOS 安装Seismic Unix
服务器·macos·unix