TTS language surface aligned with product-team canonical

The unified TTS endpoints (POST /waves/v1/tts + wss://api.smallest.ai/waves/v1/tts/live) now document the full language surface the platform accepts, matching the product-team lineup for both lightning_v3.1 (base) and lightning_v3.1_pro.

Added to the language enum on both HTTP and WebSocket:

  • auto — routes the request internally based on input text. Any English or Hindi voice can be used across all supported languages when auto is set; the platform handles language-appropriate routing without needing an explicit code per call. Recommended for cross-language use cases.
  • nl (Dutch) — accepted on both lightning_v3.1 and lightning_v3.1_pro.
  • sv (Swedish) — accepted on both lightning_v3.1 and lightning_v3.1_pro.

Models docs URL migration — waves → models, version dropdown flattened

The Models product now lives under /models/ on the docs site, replacing the older /waves/ prefix. The version dropdown is also gone. There is only one active version (v4.0.0), and it is served from a flat URL — /waves/v-4-0-0/documentation/text-to-speech-lightning/streaming becomes /models/documentation/text-to-speech-lightning/streaming.

Every old URL 301-redirects to its new equivalent. Legacy v2.2.0 and v3.0.1 bookmarks (retired earlier) also land on the same flat /models/* paths. Bookmarks, external links, and search-indexed pages keep resolving.

Waves docs v2.2.0 and v3.0.1 retired; v4.0.0 is now the sole documented surface

The v4.0.0 doc surface is now the only supported view of the Waves models. The version dropdown no longer offers v3.0.1 or v2.2.0, and the pages under those two versions have been removed from the docs site. Old bookmarked and search-indexed URLs 301-redirect to their v4 equivalents; where a specific v3.0.1/v2.2.0 page was renamed or merged in the v4 restructure, the redirect points at the closest v4 page (voice-cloning how-tos land on Instant Clone (API) etc.). The API-reference tabs on the retired versions rendered a completely different OpenAPI (Lightning v1/v2/large focused), so any auto-generated API-ref URLs on those versions land on the v4 API-ref authentication page.

TTS deprecated endpoints hidden from API ref; delete-voice endpoint retired from docs

Nine deprecated TTS endpoints are hidden from the v4 API-reference sidebar. Old bookmarked URLs 301-redirect to the current unified endpoints on /waves/v1/tts and /waves/v1/voice-cloning. Wire-level behavior is unchanged. Existing customer code keeps working.

Hidden from sidebar:

  • POST /waves/v1/lightning-v3.1/get_speech, POST /waves/v1/lightning-v3.1/stream, WSS /waves/v1/lightning-v3.1/get_speech/stream (superseded by POST /waves/v1/tts + POST /waves/v1/tts/live + WSS /waves/v1/tts/live)
  • POST /waves/v1/lightning-v2/get_speech, POST /waves/v1/lightning-v2/stream, WSS /waves/v1/lightning-v2/get_speech/stream (deprecated, superseded by the same unified routes)
  • POST /waves/v1/lightning-large/add_voice (superseded by POST /waves/v1/voice-cloning)
  • GET /waves/v1/lightning-large/get_cloned_voices (superseded by GET /waves/v1/voice-cloning)

Pulse STT: `vad_events` query parameter on the streaming WebSocket

The Pulse STT WebSocket accepts a new query parameter, vad_events. When set to true, the server emits two additional JSON message types: speech_started and speech_ended. They are interleaved with the transcription stream on the same connection.

Usage

Set vad_events=true on the WebSocket URL. Default is false. vad=true is accepted as an alias; when both are set, vad_events takes precedence and vad is ignored.

Lightning v3.1 + Pulse STT API-ref Python snippets — `SmallestAI(api_key=...)` (was `token=...`)

The Python “Try it” snippets attached to the Lightning v3.1 TTS and Pulse STT API reference operations used the pre-4.4.5 SDK constructor signature:

1client = SmallestAI(token="YOUR_API_KEY")

The SDK kwarg was renamed in 4.4.5. Customers copy-pasting the old snippet hit:

WebSocket auth and default URL fixes

Fixed authentication configuration and default server URLs across the WebSocket specs for Lightning TTS, Pulse STT, and related endpoints.

Additional endpoints for v2.2.0 and v3.0.1 are now marked deprecated in the API reference.

Hydra — full-duplex speech-to-speech model

Hydra, Smallest AI’s in-house speech-to-speech model, is now live. A single WebSocket carries microphone audio from your client to the model and streams synthesised response audio back — no STT → LLM → TTS pipeline in the middle.

1import asyncio, base64, json, os, wave
2import websockets
3
4API_KEY = os.environ["SMALLEST_API_KEY"]
5URL = f"wss://api.smallest.ai/waves/v1/s2s?model=hydra&api_key={API_KEY}"

Electron LLM — chat completions on the Waves API

Electron, Smallest AI’s in-house language model, is now generally available on the Waves API. Use it as a drop-in replacement for OpenAI’s chat completions — point the OpenAI SDK at https://api.smallest.ai/waves/v1 and pass "model": "electron".

1import os
2from openai import OpenAI
3
4client = OpenAI(
5 base_url="https://api.smallest.ai/waves/v1",
6 api_key=os.environ["SMALLEST_API_KEY"],

Fern CLI 5.28.2 + Python SDK generator 5.12.12

The Fern CLI has been updated to 5.28.2 and the Python SDK generator (fernapi/fern-python-sdk) bumped from 4.61.3 to 5.12.12.

Why: CLI 5.28.2 ships an updated @fern-api/replay that fixes a regression where customer commits made directly on a fern-bot regeneration PR branch could be silently dropped on the next regen if the PR was merged via the GitHub merge-commit button. Pinning the generator to the latest stable (5.12.12) aligns automated regenerations going forward.

API reference rewrite — Lightning v3.1 + Pulse

The Lightning v3.1 (sync + SSE + WebSocket) and Pulse (REST + WebSocket) endpoints in the API reference have been rewritten end-to-end. Each page now opens with a one-paragraph what, a when to use this comparison against the alternatives, a how-it-works walkthrough, copy-paste examples for cURL / Python / JavaScript, and a common gotchas section.

A note for JavaScript users: the official smallestai npm package (v1.0.1) predates Lightning v3.1 and Pulse, so the docs show fetch (REST/SSE) and ws (WebSocket) examples for those endpoints — they work in Node and the browser with no SDK install.

Waves API spec — corrected `output_format` enum and resynced base ↔ v4 overrides

The output_format enum on Lightning v3.1 (POST /waves/v1/lightning-v3.1/get_speech and /stream) is now correctly documented as ["pcm", "mp3", "wav", "ulaw", "alaw"]. The previously listed mulaw is rejected by the platform with an invalid_enum_value error and has been removed. Verified live against api.smallest.ai.

The sample_rate enum on the same endpoints now correctly includes 44100 (the model’s native rate) on both the SDK schema and the rendered API reference.

OpenWhispr integration guide

Added a documentation page for using Smallest AI’s Pulse model as the speech-to-text engine inside OpenWhispr, the open-source desktop dictation app for macOS, Windows, and Linux.

OpenWhispr integration

Unified voice cloning API

Voice cloning now has a single cross-model endpoint: POST /waves/v1/voice-cloning. Upload a short audio sample, get back a voice_... ID that works across supported Lightning TTS models.

The legacy Lightning-large clone endpoint is deprecated and will be removed in a future release.

Voice Cloning guide