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.
