Overview
GiggySTTService streams live input audio through Giggy’s paid transcription API.
It emits replaceable interim transcript snapshots during capture and one final
transcript after verifying durable completion. Developers keep their existing
language model, context aggregators and transport, and may use Giggy TTS for output.
The integration is maintained by Giggy. It requires upstream VAD, mono PCM16 LE
at 16 kHz and automatic language detection. It does not supply word timestamps,
speaker diarization, audio resampling or server-side turn detection.
Installation and compatibility
Install the Giggy-maintained integration from PyPI:mode:"streaming", microphone:true. The adapter supplies a fresh valid
request UUID per utterance; V17 also accepts omission and generates the UUID.
Neither form resumes a disconnected session. Readiness supplies the admitted
UUID, attempt and input capability used for ordered PCM frame POSTs.
Prerequisites
- Create a Giggy account and your own API key.
- Add paid Streaming credits. See Giggy pricing.
- Keep
GIGGY_API_KEYon your application server. STT needs no voice UUID. - Configure transport input as mono PCM16 at 16 kHz.
- Supply
VADUserStartedSpeakingFrameandVADUserStoppedSpeakingFrameupstream of STT, with total VAD onset/detection delay no greater than one second.
Usage
Transcript handling and utterance limits
EachInterimTranscriptionFrame contains a complete provisional snapshot.
Replace displayed text; do not append revisions or commit them to LLM context.
Only the canonical artifact becomes a finalized TranscriptionFrame.
Each VAD-delimited captured utterance, including real-audio pre-roll and stop
silence, must contain 0.5–30 seconds of audio. Shorter segments report an error
before paid admission. Longer segments fail and close the stream. No silence is
fabricated and no automatic rollover, reconnect or retry occurs.
One previous utterance may finalize while one new utterance is captured. Network
operations and final transcripts stay ordered. Slow finalization delays the next
admission; a third pending utterance fails visibly rather than accumulating an
unbounded queue. Each utterance is a separate paid Streaming operation, using
Giggy’s existing actual-duration settlement and cancellation/refund contract.
Cancellation and errors
InterruptionFrame passes through without cancelling transcription of the user’s
new speech. The application’s output transport handles bot playback interruption.
CancelFrame, mute and cleanup close unfinished STT streams and sender tasks.
EndFrame flushes capture and waits for completion.
Readiness identity/attempt, transcript ordering, input acknowledgements, completed
status and artifact duration are validated. Failed or ambiguous requests are
never retried. The adapter does not switch to completed-WAV uploads or another
STT provider. Errors omit API keys, input capabilities and provider response bodies.
No measured STT latency guarantee is claimed.
Example and demo
The source repository containsexamples/transcribe.py, replaying one existing 0.5–30 second mono PCM16 16 kHz
WAV at capture cadence through the live input protocol. It requires a Giggy key,
paid Streaming credits and GIGGY_ALLOW_BILLABLE_EXAMPLE=1; no LLM or TTS is needed.
Watch the two-voice STT conversation demo.
It shows real interim/final transcription, repeated turns and VAD-driven
interruption of assistant playback. User utterances are prerecorded Giggy TTS;
assistant replies are scripted and synthesized with Giggy TTS. Displayed assistant
text timing is approximate. This recording does not qualify physical microphone
hardware. Production recorded-input conversation and separate cancellation/refund
checks passed.