Documentation

Build a voice agent

Soniqo follows the OpenAI audio API shape, 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="af_heart",       # built-in Soniqo preset
        response_format="pcm",  # low-latency 24 kHz stream
    ),
    vad=silero.VAD.load(),
)

4. Pick a voice

Pass a built-in Soniqo preset ID as voice. Fetch the current catalog from GET /v1/models/synthesize in the API reference. OpenAI voice names (nova, alloy, …) map to a default voice, so existing agent code runs unchanged.

Any compatible stack works

Nothing here is LiveKit-specific. Any framework or SDK that speaks the OpenAI audio API 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.