@saraudio/svelte
v0.0.5
Published
Svelte 5 bindings for SARAUDIO pipeline
Downloads
42
Maintainers
Readme
@saraudio/svelte
Svelte 5 bindings for SARAUDIO audio pipeline.
Installation
pnpm add @saraudio/svelte @saraudio/runtime-browserUsage
<script>
import { createRecorder } from '@saraudio/svelte';
import { vadEnergy } from '@saraudio/vad-energy';
import { meter } from '@saraudio/meter';
const rec = createRecorder({
stages: [vadEnergy({ thresholdDb: -50 }), meter()],
segmenter: { preRollMs: 300, hangoverMs: 500 },
});
</script>
<button onclick={() => rec.start()}>Start</button>
<button onclick={() => rec.stop()}>Stop</button>
<p>Status: {rec.status}</p>
<p>Segments: {rec.segments.length}</p>
{#if rec.vad}
<p>Speech: {rec.vad.speech ? 'Yes' : 'No'}</p>
{/if}
{#each rec.segments as segment}
<div>{segment.id}</div>
{/each}Note: Runtime is created automatically. You can optionally pass your own:
<script>
import { createRecorder } from '@saraudio/svelte';
import { createBrowserRuntime } from '@saraudio/runtime-browser';
const runtime = createBrowserRuntime();
const rec = createRecorder({ runtime, stages: [...] });
</script>API
createRecorder(options)
Creates a reactive recorder instance with Svelte 5 runes.
Returns:
recorder- Recorder instancestatus- Current status ('idle' | 'acquiring' | 'running' | 'stopping' | 'error')error- Last error (if any)segments- Array of recorded segmentsvad- Current VAD scorepipeline- Audio pipeline instancestart()- Start recordingstop()- Stop recordingreset()- Reset recorder stateclearSegments()- Clear segments array
Requirements
- Svelte 5.0.0 or higher
