Changelog
Changelog
New endpoints, improvements, and API changes to Munsit — newest first.
Word timestamps for Text to Speech
- NewNew
POST /api/v1/text-to-speech/{model_id}/with-timestampsreturns speech together with character-level timings for the text you submitted. Use it to highlight words as they are spoken, drive captions, or align a transcript to the audio. - The response is NDJSON — one JSON object per line. Audio lines carry base64 PCM16 in
audio_base64; the final lines carryalignment(aligned to your original text) andnormalized_alignment(aligned to the engine's normalized form). Concatenatingcharactersreproduces your input exactly, so array indices map straight back onto your string. - Break tags are supported in the text you send:
<break time="3s"/>and<break time="500ms"/>insert a pause of the given length. - APITimings are emitted once generation finishes, not incrementally with each audio chunk. To highlight from the first word, buffer the full response before playback or request long text sentence by sentence.
- Requires a model served by the v1.5 engine. Other models return
400withWord timestamps are not available for model '…'. Pricing, wallet deduction, and history are identical to a standard synthesis request — timestamps cost nothing extra.
Streaming finalization on the legacy STT socket
- NewSend
{"event":"end_of_stream"}to transcribe any remaining buffered audio, at any duration. The server replies with atranscriptioncarryingisFinal: true, then afinalizedevent with the complete transcript. Closing the socket does not flush buffered audio — send this first. transcriptionevents now carry anisFinalboolean. Clients reading onlydataare unaffected.- New
min_buffer_secondsquery parameter controls how much audio accumulates before an interim result is emitted. Default0.5, range0.1–5.0. - FixedUtterances shorter than roughly 1.7 seconds could complete with no transcript and no error. The audio buffer was measured before each incoming chunk was appended, and the first chunk was never evaluated, so short answers never reached the recognizer.
- Rapid audio frames arriving during connection setup could each start their own initialization, discarding the WAV metadata from the first frame. Every subsequent frame then failed with
Not a valid WAV file (missing RIFF header)for the life of the connection. Clients sending 10–20 ms frames were affected on every session. - Deprecated
WS /websocket/speech-to-textremains deprecated and receives no new recognition features. New integrations should useWS /api/v1/listen.
New capabilities
- NewNew Text-to-Speech capabilities.
- New Speech-to-Text capabilities.
Working with an AI assistant? Every page is available as Markdown: add .md to the URL, or send an Accept: text/markdown header. For the whole documentation in one request, point it at llms-full.txt; the page index is llms.txt. Or use Copy Page, top right.
