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.
