Streaming transcription adds ElevenLabs and Soniox, and prefers them for Spanish

ElevenLabs Scribe realtime and Soniox are now served on the streaming transcription socket, and a Spanish request prefers ElevenLabs first and Soniox second ahead of the board's global winner. A Deepgram streaming defect that returned empty transcripts is fixed in the same change.

Providers whose whole session configuration arrives in a first message can now be served: the streaming transcription path gained a handshake step, which text-to-speech already had. Soniox sends its API key in that frame and had been unavailable for that reason alone.

ElevenLabs streams its realtime model. The catalog row is the batch model, and the socket accepts only the realtime identifier, so the router translates between them rather than publishing a second row for one wire value.

A Spanish streaming request now prefers ElevenLabs, then Soniox. This is a preference and not a restriction: a provider that cannot serve the request is skipped, the rest of the ranking keeps its order behind it, and a language with no preference is unaffected.

Deepgram streaming sent no encoding or sample rate, so raw audio arrived undecodable: the socket connected, the audio was accepted, and every transcript came back empty with no error reported. It now declares the 16 kHz mono format the router guarantees.

Verified against the live providers: a Spanish request resolved to ElevenLabs and returned a transcript, the same request pinned to Soniox returned a transcript, and an English request resolved to Deepgram and returned a transcript.

Action: No migration is required. A Spanish streaming transcription request that previously resolved to whichever provider ranked first globally now resolves to ElevenLabs, or to Soniox when ElevenLabs cannot serve it.