9f42ee2460
Private, offline speech-to-text that runs Whisper on the user's own device — free, no account, no per-minute fees. Replaces Otter.ai / Rev. - Pure, tested engine: chunking, overlap timestamp-stitching, exports (SRT/VTT/TXT/MD/JSON), WAV codec, resampler, job queue, model catalog (142 tests). - Platform-abstracted TranscriptionEngine: transformers.js on web (loaded from CDN at runtime to dodge Metro's onnxruntime-web bundling limits), whisper.rn on native. Shared pipeline orchestrates decode -> chunk -> transcribe -> stitch. - Cross-platform StorageRepo (Dexie web / expo-sqlite native), Zod-validated. - UI: library + search, import, live-progress transcription, synced click-to-seek editor, multi-format export; model picker + privacy in settings. - Web ships as a single-page PWA with COOP/COEP isolation for threaded WASM; Docker (nginx) image + Traefik compose for wisp.briggen.dev. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
59 lines
1.6 KiB
JSON
59 lines
1.6 KiB
JSON
{
|
|
"name": "wisp",
|
|
"main": "expo-router/entry",
|
|
"version": "1.0.0",
|
|
"dependencies": {
|
|
"@expo/ui": "~56.0.17",
|
|
"@huggingface/transformers": "^4.2.0",
|
|
"dexie": "^4.4.3",
|
|
"expo": "~56.0.11",
|
|
"expo-constants": "~56.0.18",
|
|
"expo-device": "~56.0.4",
|
|
"expo-document-picker": "^56.0.4",
|
|
"expo-font": "~56.0.6",
|
|
"expo-glass-effect": "~56.0.4",
|
|
"expo-image": "~56.0.11",
|
|
"expo-linking": "~56.0.14",
|
|
"expo-router": "~56.2.10",
|
|
"expo-splash-screen": "~56.0.10",
|
|
"expo-sqlite": "^56.0.5",
|
|
"expo-status-bar": "~56.0.4",
|
|
"expo-symbols": "~56.0.6",
|
|
"expo-system-ui": "~56.0.5",
|
|
"expo-web-browser": "~56.0.5",
|
|
"react": "19.2.3",
|
|
"react-dom": "19.2.3",
|
|
"react-native": "0.85.3",
|
|
"react-native-gesture-handler": "~2.31.1",
|
|
"react-native-reanimated": "4.3.1",
|
|
"react-native-safe-area-context": "~5.7.0",
|
|
"react-native-screens": "4.25.2",
|
|
"react-native-web": "~0.21.0",
|
|
"react-native-worklets": "0.8.3",
|
|
"whisper.rn": "^0.6.0",
|
|
"zod": "^4.4.3",
|
|
"zustand": "^5.0.14"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^25.9.3",
|
|
"@types/react": "~19.2.2",
|
|
"fake-indexeddb": "^6.2.5",
|
|
"fast-check": "^4.8.0",
|
|
"typescript": "~6.0.3",
|
|
"vitest": "^4.1.8"
|
|
},
|
|
"scripts": {
|
|
"start": "expo start",
|
|
"android": "expo start --android",
|
|
"ios": "expo start --ios",
|
|
"web": "expo start --web",
|
|
"export:web": "expo export --platform web",
|
|
"prebuild:android": "expo prebuild --platform android --no-install",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"typecheck": "tsc --noEmit",
|
|
"lint": "expo lint"
|
|
},
|
|
"private": true
|
|
}
|