Speechall vs. OpenRouter for Speech-to-Text: Why Streaming Raw Audio Matters
October 31, 2026 by Lena Lucille Meyer, Developer Advocate (AI-generated fictional author)
Loading table of contents...
Speechall combines live WebSocket transcription, subtitle-ready output, reusable text replacement rules, and raw binary uploads in one speech-focused API.
Whether you’re transcribing a voice memo, processing interviews, or building live captions, you can select a model and use the resulting transcript without maintaining a separate API integration for every provider.
Speechall brings those workflows together: live transcripts from supported streaming providers, SRT and VTT subtitles from compatible models, and reusable rules for correcting or transforming recognized text. For audio input, you can choose direct binary uploads, OpenAI-compatible multipart requests, or remote audio URLs.
OpenRouter also offers speech-to-text through its broader multimodal API. Its STT documentation describes base64 JSON requests, multipart uploads, and audio URLs for selected providers. Base64 is optional on both platforms. The practical differences are in live transcription support, speech-specific output tools, and the available upload interfaces.
Here’s how Speechall supports those workflows, starting with live transcription.
Comparison checked against the linked documentation on October 31, 2026. Model availability, limits, and supported features can change.
1. Receive Live Transcripts over WebSocket
For live captions, voice interfaces, and call transcription, Speechall provides a dedicated WebSocket endpoint:
wss://api.speechall.com/v1/transcribe Your application sends audio chunks through the connection and receives transcription results as they become available from a supported streaming provider.
For example, a Deepgram connection URL can specify the model and language:
wss://api.speechall.com/v1/transcribe?model=deepgram.nova-2&language=en&output_format=json Authentication is also required. Server-side clients can send an Authorization: Bearer header; browser WebSocket clients use the api_key query parameter. The streaming guide documents authentication, connection parameters, and the audio requirements: 16 kHz, mono, 16-bit PCM chunks.
Speechall’s documented WebSocket integrations include Deepgram, AssemblyAI, OpenAI, and Gladia. You work through Speechall’s interface instead of implementing each provider’s connection protocol separately.
OpenRouter’s public STT guide documents a recording-in, transcription-response workflow. As of this comparison, it does not document an equivalent unified, bidirectional STT WebSocket endpoint.
With Speechall, you can build both file transcription and live speech features within one API platform.
Live transcription
Use the words while they're being spoken
Speechall's WebSocket interface returns partial transcripts from supported streaming models.
In the live workflow, partial transcripts arrive while the person is still speaking. In the completed-recording workflow, the recording is submitted after capture and text is returned in the transcription response.
Schematic, not a latency benchmark. Partial-result and final-result timing depend on the selected provider and model.
2. Get Outputs Built for Speech Workflows
Speechall’s value extends from sending audio to using the transcript in your application.
Subtitle output
Speechall supports SRT and VTT output for compatible models. Applications can request subtitle-ready results directly, reducing the need for a separate subtitle formatting step.
OpenRouter’s documented STT output formats are JSON and verbose JSON. Its endpoint does not directly return SRT or VTT files.
Reusable text replacement rules
Speechall provides text replacement rulesets for correcting or transforming recognized text. You can define reusable replacements and apply them to transcription requests, rather than duplicating the same post-processing logic across integrations.
OpenRouter’s STT guide does not document an equivalent native ruleset feature.
Model selection and speech-specific settings
Speechall provides access to providers including Deepgram, AssemblyAI, OpenAI, Speechmatics, and Rev AI. Its catalog also includes specialized Deepgram configurations for domains such as medical terminology, phone conversations, and meetings.
Depending on the selected model, you can request speaker diarization, word-level timestamps, punctuation, automatic language detection, confidence scores, initial prompts, and custom vocabulary. The model catalog helps you check the capabilities available for your workflow.
OpenRouter also exposes timestamps, diarization, and selected provider-specific settings. These shared capabilities are model-dependent on both platforms. Speechall combines model access with raw uploads, live transcription, subtitle output, and reusable transcript processing in a speech-focused interface.
3. Send Audio Directly with Speechall
Speechall’s direct transcription endpoint accepts raw binary audio as the HTTP request body, with transcription settings in query parameters:
curl -X POST
"https://api.speechall.com/v1/transcribe?model=deepgram.nova-3&language=en&output_format=json"
-H "Authorization: Bearer $SPEECHALL_API_KEY"
-H "Content-Type: audio/wav"
--data-binary @recording.wav The body contains the audio bytes. You don’t need to base64-encode the file, wrap it in JSON, or construct a multipart form. The model and transcription options are available before Speechall reads the audio body.
Keep audio as bytes
Base64 expands the audio representation by approximately 33%: a 100 MB recording becomes about 133.3 MB of encoded data, before JSON framing or HTTP compression. A client that reads a whole file, encodes it, and serializes a JSON request may also hold several representations in memory.
Speechall’s direct endpoint avoids those encoding steps. OpenRouter’s multipart uploads and supported audio URL integrations also avoid base64. Its documentation specifies a 25 MB multipart limit and describes larger base64 JSON uploads for OpenAI and Groq models, with different limits for other integrations.
Speechall additionally offers OpenAI-compatible multipart endpoints and a remote URL endpoint, so you can choose the input method that fits your application.
Progressive HTTP uploads depend on the provider
Where the selected provider and Speechall integration support incremental ingestion, a compatible client can send audio as it’s captured. This can let recording and uploading overlap, reducing the audio left to transfer when recording stops.
Support depends on the provider, audio format, client, and any buffering along the request path. Model-specific processing time, size limits, and request-duration limits also apply. Check compatibility for your selected integration before relying on progressive uploads; use Speechall’s WebSocket endpoint for live transcription results.
The example below also shows the work before an upload starts in a client that constructs a whole-file base64 JSON request: reading the recording, base64 encoding it, and serializing the JSON. Adjust that preparation time and the binary transfer time to explore the effect. You can switch to a binary/multipart baseline to compare workflows without base64 overhead.
Explore the upload delay
See what happens before the transcript arrives
Include preparation before upload, transfer time, and model processing in this hypothetical example.
The file is read, encoded, and serialized before the request starts. The 3 s preparation time is your assumption, not a measurement. At the same transfer rate, the approximately 33% larger base64 audio takes 20 s to upload instead of 15 s.
OpenRouter · base64 JSON
28 s wait after recording
Whole-file read → base64 encode → JSON serialize → upload
Speechall · progressive HTTP
5 s wait after recording
Requires a provider and integration that support incremental ingestion
23 seconds less waiting in this scenario by overlapping capture and transfer and avoiding whole-file base64/JSON preparation and payload expansion.
Illustration, not measured API latency. The base64 path models a client that prepares the entire recording in memory; OpenRouter's multipart and supported URL paths avoid base64. Assumes steady capture and transfer, no buffering or HTTP compression, and a compatible provider and integration. Binary file reading is included in transfer time; the base64 preparation control models a separate whole-file read, encoding, and serialization step. Connection setup and server JSON decoding are not assigned a duration. Model processing takes the same time and starts after all audio is received in both workflows. Multipart can also stream where supported.
Multipart bodies can also be streamed by compatible clients and servers. Speechall’s raw-body interface keeps routing settings separate from the audio, providing a direct upload path for integrations that support it.
4. Speechall vs. OpenRouter: Feature Comparison
| Capability | Speechall | OpenRouter |
|---|---|---|
| Unified real-time STT WebSocket | Available with supported providers | No equivalent documented STT WebSocket |
| SRT/VTT output | Available for compatible models | Not directly supported |
| Reusable text replacement rules | Yes | Not documented as a native STT feature |
| Unified STT model access | Yes | Yes |
| Raw audio as the entire HTTP request body | Dedicated endpoint | Not documented for STT |
| Upload without base64 encoding | Raw binary, multipart, or remote URL | Multipart or supported remote URL integrations |
| Multipart file uploads | Yes | Yes, documented 25 MB limit |
| Remote audio URLs | Dedicated endpoint | Available with selected providers |
| Speaker diarization and timestamps | Model-dependent | Model-dependent |
| Provider-specific settings | Model-dependent | Model-dependent |
The upload and output differences give you concrete integration choices. You can send raw audio, use a compatibility endpoint, request subtitles, or build live transcription through Speechall without adding a separate platform for each workflow.
5. Add Speechall to Your Existing AI Stack
You can use Speechall for transcription alongside the language models and other AI services you already use. This applies to a simple voice memo feature as well as an application processing audio continuously.
A voice application can follow this pipeline:
Microphone → Speechall → Transcript → Your chosen LLM → Application response
Send Speechall’s transcripts to whichever language model your application uses. Your choice of LLM platform doesn’t need to determine how you upload audio, generate subtitles, or deliver live transcripts.
Speechall gives you a shared API for evaluating and switching transcription providers, with model-specific settings available for the speech features your application needs.
Build Your Speech Workflow with Speechall
Speechall brings live transcription, subtitle output, reusable text replacement rules, and flexible uploads into one speech-focused API. WebSockets support applications that need transcripts while someone is speaking, and raw binary uploads avoid base64 conversion. With a compatible provider and integration, progressive HTTP uploads can also let capture and transfer overlap.
Start with the workflow you need today and use the same platform as your speech features grow.
Create an API key, browse the speech-to-text models, or follow the getting-started guide to make your first transcription request.