"The tts dispatcher thing and the text highlight is completely out of sync on desktop." Firefox + speech-dispatcher (like iOS) reports no onboundary events, so the highlight rode a pure estimate - and a 130-word section drifts seconds away from an engine that speaks at its own pace. - On platforms without boundaries the system engine now speaks one sentence at a time, and every finished utterance re-anchors the clock: measured duration vs estimate, smoothed (half old, half new, clamped to 0.25-4x). Drift cannot accumulate past a sentence. - The per-word estimate is punctuation-aware (full stop ~260ms, comma ~130ms). - Once a boundary does arrive (Chrome), the rest of the section goes back to a single utterance with the exact clock - the accurate path is unchanged. - When a boundary lands mid-section, the remainder is spoken as one utterance (it used to skip to the next section). podcast-test's engine stub finishes utterances now and pins the whole thing: one sentence first, the next following on its own, the highlight inside the spoken text, a boundary collapsing the remainder, the highlight advancing. 53 checks. Version 0.7.10, SW v102.
44 lines
1.2 KiB
JSON
44 lines
1.2 KiB
JSON
{
|
|
"name": "freezmo",
|
|
"version": "0.8.0",
|
|
"private": true,
|
|
"license": "GPL-3.0-only",
|
|
"scripts": {
|
|
"predev": "node scripts/copy-pdf-worker.mjs",
|
|
"dev": "next dev -H 0.0.0.0 -p 3207",
|
|
"prebuild": "node scripts/copy-pdf-worker.mjs",
|
|
"build": "next build",
|
|
"start": "next start -H 0.0.0.0 -p 3207",
|
|
"lint": "eslint",
|
|
"test:e2e": "node tests/run-all.mjs",
|
|
"version:bump": "node scripts/bump-version.mjs"
|
|
},
|
|
"dependencies": {
|
|
"canvas-confetti": "^1.9.4",
|
|
"framer-motion": "^12.23.24",
|
|
"jszip": "^3.10.2",
|
|
"katex": "^0.19.0",
|
|
"mammoth": "^1.13.0",
|
|
"next": "15.5.27",
|
|
"pdfjs-dist": "^6.4.299",
|
|
"react": "19.1.0",
|
|
"react-dom": "19.1.0",
|
|
"web-push": "^3.6.7",
|
|
"zod": "^4.1.13"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/eslintrc": "^3",
|
|
"@tailwindcss/postcss": "^4",
|
|
"@types/canvas-confetti": "^1.9.0",
|
|
"@types/node": "^20",
|
|
"@types/react": "^19",
|
|
"@types/react-dom": "^19",
|
|
"@types/web-push": "^3.6.4",
|
|
"axe-core": "^4.14.0",
|
|
"eslint": "^9",
|
|
"eslint-config-next": "15.5.27",
|
|
"playwright-core": "^1.64.0",
|
|
"tailwindcss": "^4",
|
|
"typescript": "^5"
|
|
}
|
|
}
|