微立顶科技

新闻资讯

创新 服务 价值

  本地免费版本语音唤醒功能

发布日期:2025/6/18 7:56:15      浏览量:

本地免费版本语音唤醒功能



<script>
    const listenBtn = document.getElementById(’listenBtn’);
    const statusEl = document.getElementById(’status’);
    
    // 检查浏览器支持
    if (!(’webkitSpeechRecognition’ in window)) {
        statusEl.textContent = ’浏览器不支持语音识别,请使用Chrome或Edge’;
    } else {
        const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
        const recognition = new SpeechRecognition();
        window.voiceRecognition = recognition; // 暴露给父页面
        
        // 配置识别参数
        recognition.continuous = true;
        recognition.interimResults = false;
        recognition.lang = ’zh-CN’;
        recognition.maxAlternatives = 1;
        
        // 自动启动监听
        function startListening() {
            navigator.mediaDevices.getUserMedia({ audio: true })
                .then(stream => {
                    stream.getTracks().forEach(track => track.stop());
                    recognition.start();
                    statusEl.textContent = "嗨!我在等你呼唤我哦:\"你好,小九\"";
                    window.voiceRecognitionActive = true;
                })
                .catch(error => {
                    let errorMsg = ’麦克风访问失败: ’;
                    if (error.name === ’NotAllowedError’) {
                        errorMsg += ’请允许麦克风权限’;
                    } else {
                        errorMsg += error.message;
                    }
                    statusEl.textContent = errorMsg;
                    window.voiceRecognitionActive = false;
                });
        }
        
        // 延迟1秒启动,确保页面加载完成
        setTimeout(startListening, 1000);
        
        // 识别结果处理
        recognition.onresult = (event) => {
            const transcript = event.results[event.results.length-1][0].transcript;
            console.log(`识别到语音: ${transcript}`);
            
            const wakePhrases = [’你好小九’, ’你好,小九’, ’你好,小酒’, ’好小酒’, ’你好呀,小酒’, ’好呀,小酒’];
            const isWakeWord = wakePhrases.some(phrase => transcript.includes(phrase));
            
            if (isWakeWord) {
                statusEl.textContent = ’已唤醒,正在启动数字人...’;
                // 通知父页面启动数字人
                window.parent.postMessage(’wake_word_detected’, ’*’);
                recognition.stop();
                window.voiceRecognitionActive = false;
            }
        };
        
        // 错误处理 - 忽略"no-speech"错误
        recognition.onerror = (event) => {
            if (event.error === ’no-speech’) {
                return; // 忽略未检测到语音的错误
            }
            
            let errorMsg = ’语音识别错误: ’;
            switch(event.error) {
                case ’audio-capture’:
                    errorMsg += ’麦克风不可用’;
                    break;
                case ’not-allowed’:
                    errorMsg += ’麦克风访问被拒绝’;
                    break;
                default:
                    errorMsg += event.error;
            }
            statusEl.textContent = errorMsg;
            window.voiceRecognitionActive = false;
        };
        
        // 识别结束 - 自动重新启动
        recognition.onend = () => {
            // 如果不是因为唤醒词而停止,则重新启动
            if (!statusEl.textContent.includes(’已唤醒’) && window.voiceRecognitionActive) {
                setTimeout(() => {
                    try {
                        recognition.start();
                    } catch (error) {
                        console.error(’语音识别重启失败:’, error);
                        startListening();
                    }
                }, 500);
            }
        };
        
        // 暴露停止方法给父页面
        window.stopVoiceRecognition = function() {
            try {
                recognition.stop();
                statusEl.textContent = ’语音监听已关闭’;
                window.voiceRecognitionActive = false;
            } catch (e) {
                console.log(’停止语音识别时出错:’, e);
            }
        };
    }
    
    // 监听父页面消息
    window.addEventListener(’message’, function(event) {
        if (event.data === ’stop_listening’) {
            window.stopVoiceRecognition();
        }
    });
</script>



  业务实施流程

需求调研 →

团队组建和动员 →

数据初始化 →

调试完善 →

解决方案和选型 →

硬件网络部署 →

系统部署试运行 →

系统正式上线 →

合作协议

系统开发/整合

制作文档和员工培训

售后服务

马上咨询: 如果您有业务方面的问题或者需求,欢迎您咨询!我们带来的不仅仅是技术,还有行业经验积累。
QQ: 39764417/308460098     Phone: 13 9800 1 9844 / 135 6887 9550     联系人:石先生/雷先生