Tonemark is a SvelteKit PWA for transcribing YouTube videos, audio and video files, and microphone recordings using a local Whisper backend. Features: - Dark glassmorphic UI with electric-lime accent (5 switchable themes) - Rail nav (desktop) / tab bar (mobile) layout - Drop zone, YouTube URL input, and live audio recording inputs - Audio mode waveform cards (none / standard / aggressive / auto) - Real-time transcription progress with animated waveform - Job queue with SSE streaming updates - Push notifications on job completion - PWA with native SvelteKit service worker - SRT / TXT / MD / JSON transcript downloads Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
export type AudioMode = 'auto' | 'standard' | 'aggressive' | 'none';
|
||||
|
||||
export type JobStatus = 'pending' | 'downloading' | 'preparing' | 'transcribing' | 'processing' | 'done' | 'failed' | 'cancelled';
|
||||
|
||||
export interface Segment {
|
||||
index: number;
|
||||
start: number;
|
||||
end: number;
|
||||
text: string;
|
||||
words: Word[];
|
||||
}
|
||||
|
||||
export interface Word {
|
||||
start: number;
|
||||
end: number;
|
||||
word: string;
|
||||
probability?: number;
|
||||
}
|
||||
|
||||
export interface Job {
|
||||
id: string;
|
||||
status: JobStatus;
|
||||
title: string;
|
||||
source: string;
|
||||
audioMode: AudioMode;
|
||||
meanVolume: number | null;
|
||||
whisperJobId: string | null;
|
||||
progress: number;
|
||||
outputDir: string | null;
|
||||
segmentsJson: string | null;
|
||||
error: string | null;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
export interface WhisperJob {
|
||||
id: string;
|
||||
status: 'queued' | 'running' | 'done' | 'failed' | 'cancelled';
|
||||
language: string | null;
|
||||
task: string;
|
||||
duration_secs: number | null;
|
||||
progress: number;
|
||||
segments: Segment[];
|
||||
error: string | null;
|
||||
created_at: string;
|
||||
completed_at: string | null;
|
||||
}
|
||||
|
||||
export interface PushSubscription {
|
||||
id: number;
|
||||
endpoint: string;
|
||||
p256dh: string;
|
||||
auth: string;
|
||||
createdAt: string;
|
||||
}
|
||||
|
||||
export interface AudioAnalysis {
|
||||
meanVolume: number;
|
||||
maxVolume: number;
|
||||
}
|
||||
Reference in New Issue
Block a user