Inworld AI: Realtime STT
Inworld's first-party multilingual speech-to-text model for live voice agents: 30 languages, synchronous file transcription plus bidirectional WebSocket streaming with tunable or client-driven turn detection, and Voice Profile paralinguistic signals (age, gender, emotion, vocal style, accent) alongside the transcript.
Providers
Different providers can host the same model. Choose one provider when you need a fixed backend, or let routing select among them.
Supported languages
ar
yue
zh
cs
da
nl
en
fil
fi
fr
de
el
hi
hu
id
it
ja
ko
mk
ms
fa
pl
pt
ro
ru
es
sv
th
tr
vi
Features
Transcribes spoken audio to text.
speech_to_text
The sync endpoint sniffs the container and rejects headerless raw PCM, which is a WebSocket-only input.
container_required_on_sync
Bidirectional WebSocket streaming (/stt/v1/transcribe:streamBidirectional) returning interim results then isFinal transcripts.
streaming
includeWordTimestamps returns per-word {word, startTimeMs, endTimeMs, confidence, speaker} on the WebSocket streaming endpoint.
word_timestamps
Streaming word timestamps carry a per-word confidence score.
word_confidence
Experimental and streaming-only: enableSpeakerDiarization and includeWordTimestamps are required together, and speaker ids are small integers scoped to one stream.
diarization
voiceProfileConfig.enableVoiceProfile returns ranked paralinguistic labels for age, gender, emotion, vocalStyle and accent.
voice_profile
Server-side end-of-turn detection by default, tunable via endOfTurnConfidenceThreshold, inworldSttV1Config.minEndOfTurnSilenceWhenConfident, inworldSttV1Config.vadThreshold and inactivityTimeoutSeconds; vadThreshold=0 hands turn control to the client (endTurn / closeStream), with a single manual turn capped around 30 seconds.
turn_detection
prompts biases recognition toward domain terms as a soft bias, not a hard keyword lock.
custom_vocabulary
Auto-detects the spoken language; the language field is only a hint and may be omitted.
language_detection
30 languages.
multilingual_transcription
Code
ElevenLabs SDK streaming STT
Streams microphone or file audio through the ElevenLabs-compatible allmodels route.
import { ElevenLabsClient } from "elevenlabs";
const client = new ElevenLabsClient({
apiKey: process.env.ALLMODELS_API_KEY,
baseUrl: "https://api.allmodels.io/el"
});
const connection = await client.speechToText.realtime.connect({
modelId: "inworld/inworld-stt-1",
languageCode: "en"
}, {
queryParams: {
provider: {
"only": [
"inworld"
]
}
}
});
// Send audio frames to connection, then handle transcript events.
