<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>语音识别示例</title>
</head>
<body>

<h2>语音识别示例</h2>
<p>点击下方按钮开始语音输入:</p>

<!-- 语音输入按钮 -->
<button id="start-btn">开始语音输入</button>

<!-- 显示识别结果 -->
<p>识别结果: <span id="result"></span></p>

<script>
    // 检查浏览器是否支持SpeechRecognition
    const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
    if (!SpeechRecognition) {
        alert('你的浏览器不支持语音识别功能,请使用支持的浏览器,例如Google Chrome。');
    } else {
        const recognition = new SpeechRecognition();
        recognition.lang = 'zh-CN';  // 设置识别语言为中文
        recognition.interimResults = false;  // 不返回临时结果
        recognition.maxAlternatives = 1;  // 返回的识别结果数量

        const startBtn = document.getElementById('start-btn');
        const resultSpan = document.getElementById('result');

        startBtn.onclick = () => {
            recognition.start();  // 开始语音识别
        };

        recognition.onstart = () => {
            console.log('开始语音识别...');
            startBtn.disabled = true;
            startBtn.textContent = '正在识别...';
        };

        recognition.onresult = (event) => {
            const transcript = event.results[0][0].transcript;
            console.log('识别结果:', transcript);
            resultSpan.textContent = transcript;
            sendToBackend(transcript);  // 将识别结果发送到后台
        };

        recognition.onerror = (event) => {
            console.error('识别错误:', event.error);
            alert('语音识别出错: ' + event.error);
        };

        recognition.onend = () => {
            console.log('语音识别结束');
            startBtn.disabled = false;
            startBtn.textContent = '开始语音输入';
        };

        function sendToBackend(transcript) {
            fetch('http://127.0.0.1:5000/msg', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'Access-Control-Allow-Origin':'*'
                },
                body: JSON.stringify({ msg: transcript }),
                // mode: 'no-cors'
            })
            .then(response => response.json())
            .then(data => {
                console.log('服务器响应:', data);
            })
            .catch((error) => {
                console.error('发送到后台时发生错误:', error);
            });
        }
    }
</script>

</body>
</html>