Documentation

Build a voice agent

Soniqo speaks the OpenAI and ElevenLabs audio APIs, so a voice-agent framework like LiveKit Agents works by pointing it at the Soniqo base URL — no custom plugin. Use Soniqo for transcription and speech; bring your own LLM.

1. Get an API key

Sign in with Google or GitHub, open Account → API keys, and create a key. The plaintext is shown once — copy it and save it:

export SONIQO_API_KEY=sk_...

2. Install LiveKit Agents

The OpenAI plugin is all you need — it talks to Soniqo unmodified.

pip install "livekit-agents[openai,silero]"

3. Point transcription and speech at Soniqo

Both the STT and TTS plugins accept a base_url; send your key as the API key (Soniqo accepts it as a Bearer token). For speech, model="tts-1" selects the raw-audio path and response_format="pcm" returns the 24 kHz stream voice runtimes expect.

from livekit.agents import AgentSession
from livekit.plugins import openai, silero

session = AgentSession(
    # Transcription — Soniqo Steno (OpenAI-Whisper-compatible)
    stt=openai.STT(
        base_url="https://api.soniqo.audio/v1",
        api_key="sk_...",
        model="whisper-1",
    ),
    # Bring your own LLM provider
    llm=openai.LLM(model="gpt-4o-mini"),
    # Speech — Soniqo Vox
    tts=openai.TTS(
        base_url="https://api.soniqo.audio/v1",
        api_key="sk_...",
        model="tts-1",
        voice="nova",           # a preset, or one of your cloned voices
        response_format="pcm",  # low-latency 24 kHz stream
    ),
    vad=silero.VAD.load(),
)

4. Pick a voice

Pass any Soniqo voice as voice — a built-in preset, or a voice you cloned via POST /v1/voices (see the API reference). OpenAI voice names (nova, alloy, …) map to a default voice, so existing agent code runs unchanged.

5. Prefer the ElevenLabs plugin?

Soniqo also implements the ElevenLabs streaming shape, so LiveKit’s elevenlabs TTS plugin works against /v1/text-to-speech/{voice_id}/stream with the same base-URL swap.

Any compatible stack works

Nothing here is LiveKit-specific. Any framework or SDK that speaks the OpenAI or ElevenLabs audio APIs talks to Soniqo the same way — change the base URL, keep your code. For low-latency streaming transcription, see the realtime section of the quickstart.