概述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(); }

发表评论 取消回复