Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
cd99de5
docs: add design spec for live speech-to-text
VineeTagarwaL-code Apr 21, 2026
311635c
docs: clarify hallucinationPhrases config in live stt design
VineeTagarwaL-code Apr 21, 2026
cd1b6d1
docs: drop hallucinationPhrases from live stt design
VineeTagarwaL-code Apr 21, 2026
9a2a8ed
docs: add implementation plan for live speech-to-text
VineeTagarwaL-code Apr 21, 2026
bf2ff10
docs: make live-stt plan task 8 robust to starting branch state
VineeTagarwaL-code Apr 21, 2026
3630bf1
feat(request): add fetchJSSStream for raw Response access
VineeTagarwaL-code Apr 21, 2026
11e5abf
feat(audio/live): add PCM16 Chunker with overlap + WAV framing
VineeTagarwaL-code Apr 21, 2026
a22b1fa
fix(audio/live): adjust pendingChunkBytes on overflow drops
VineeTagarwaL-code Apr 21, 2026
752b3f8
feat(audio/live): add Stitcher with token overlap + fuzzy match
VineeTagarwaL-code Apr 21, 2026
60aa05c
style(audio/live): sort stitcher test imports for biome
VineeTagarwaL-code Apr 21, 2026
d38da93
style(tests/live): sort imports for biome in chunker + request-stream…
VineeTagarwaL-code Apr 21, 2026
83088b6
feat(audio/live): add SSE transcript parser
VineeTagarwaL-code Apr 21, 2026
471da93
feat(audio): add LiveSTT types
VineeTagarwaL-code Apr 21, 2026
38a5951
feat(audio/live): add Transcriber with state machine + events
VineeTagarwaL-code Apr 21, 2026
7978536
fix(audio/live): restore maxBufferSeconds guard + adjust overflow tes…
VineeTagarwaL-code Apr 21, 2026
8796bbf
style(audio/live): apply biome formatter
VineeTagarwaL-code Apr 21, 2026
dd2d466
feat(audio): expose speech_to_text_live on audio namespace
VineeTagarwaL-code Apr 21, 2026
76807ff
chore: add examples/live-mic.js reference
VineeTagarwaL-code Apr 21, 2026
c62d9d7
test(audio): add opt-in live STT integration test
VineeTagarwaL-code Apr 21, 2026
083c130
docs: document speech_to_text_live in README
VineeTagarwaL-code Apr 21, 2026
f4892ee
fix: run tests/live in test:all + biome sort for live-mic example
VineeTagarwaL-code Apr 21, 2026
89427e3
fix(audio/live): strip trailing punctuation shared with previous commit
VineeTagarwaL-code Apr 21, 2026
e78bcd9
feat(audio/live): expose vad toggle + document streaming is English-only
VineeTagarwaL-code Apr 21, 2026
3c84df7
feat(audio/live): drop language + channels config (hardcode en + mono)
VineeTagarwaL-code Apr 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,38 @@ const objectDetectionResp = await jigsaw.vision.object_detection({
});
```

### Live speech-to-text (streaming)

Pipe real-time PCM16 audio (microphone, WebRTC, file) into the SDK and receive incremental and committed transcripts.

```js
import { Readable } from "stream";
import recorder from "node-record-lpcm16";
import { JigsawStack } from "jigsawstack";

const jigsaw = JigsawStack({ apiKey: process.env.JIGSAWSTACK_API_KEY });
// Streaming is English-only and expects mono 16-bit PCM input (downmix stereo sources beforehand).
const transcriber = jigsaw.audio.speech_to_text_live({
sampleRate: 16000,
});

transcriber.on("delta", ({ text }) => process.stdout.write(`\r… ${text}`));
transcriber.on("turn", ({ text }) => console.log(`\n${text}`));

await transcriber.connect();

const rec = recorder.record({ sampleRate: 16000, channels: 1, audioType: "raw" });
Readable.toWeb(rec.stream()).pipeTo(transcriber.stream());

process.on("SIGINT", async () => {
rec.stop();
await transcriber.close();
process.exit();
});
```

See `examples/live-mic.js` for a full working example.

## Community

Join JigsawStack community on [Discord](https://discord.gg/dj8fMBpnqd) to connect with other developers, share ideas, and get help with the SDK.
Expand Down
Loading
Loading