概述Web Speech API 支持语音识别。本文演示识别会话与结果持久化。能力检测与识别const SR = window.SpeechRecognition || window.webkitSpeechRecognition; const supportsSR = !!SR; function startRecognition(lang = 'zh-CN', onText) { if (!supportsSR) throw new Error('unsupported'); const rec = new SR(); rec.lang = lang; rec.interimResults = true; rec.continuous = true; rec.onresult = (e) => { for (let i = e.resultIndex; i < e.results.length; i++) { const t = e.results[i][0].transcript; onText && onText(t); } }; rec.start(); return rec; } 持久化结果function openDB(name) { return new Promise((resolve, reject) => { const r = indexedDB.open(name, 1); r.onupgradeneeded = () => { const db = r.result; if (!db.objectStoreNames.contains('speech')) db.createObjectStore('speech', { autoIncrement: true }); }; r.onsuccess = () => resolve(r.result); r.onerror = () => reject(r.error); }); } async function saveText(text) { const db = await openDB('speechdb'); const tx = db.transaction('speech','readwrite'); tx.objectStore('speech').add({ text, ts: Date.now() }); await new Promise((res, rej) => { tx.oncomplete = res; tx.onerror = () => rej(tx.error); }); db.close(); }

发表评论 取消回复