Evom Labs

Developer platform

Developer documentation

Integrate speech recognition, speech synthesis and custom voices into your product with Loli 2.0, Loly 3.5 and the Voice Library. Evom Labs supports REST API, NDJSON and WebSocket, for standalone processing jobs as well as real-time audio streams.

On this page

Evom Labs capabilities

Loli 2.0

Speech-to-Text

Turns speech into text, from an audio file or a continuous PCM stream. Supports a JSON response, NDJSON progress and a real-time WebSocket.

Loly 3.5

Text-to-Speech

Turns text into speech, either as a finished file or as a PCM16 stream delivered frame by frame.

Voice Library

Custom voices

Create and manage voices from audio samples you are authorised to use.

Integration methods

REST API

Suited to standalone processing jobs: transcribing a file, generating speech, enrolling a voice and reading usage.

NDJSON

Delivers progress and results chunk by chunk while a long audio file is transcribed.

WebSocket

Suited to applications that send or receive audio continuously, in real time.

  • Loli 2.0 receives binary PCM16 from the client.
  • Loly 3.5 returns binary PCM16 frame by frame.

Base URL

REST requests use the base URL below. Every path in this documentation is relative to it.

Base URL
https://studio.evomlabs.com

Endpoints

The endpoints below are the public surface listed in the source registry. Each one is documented in full on its product page.

POST/api/v1/voices
DELETE/api/v1/voices/{id}
POST/api/v1/tts/generate
POST/api/v1/tts/bytes
POST/api/v1/tts/sse
POST/api/v1/tts/stream-token
WS/ws/tts/stream?token=<stream_token>
POST/api/v1/stt/transcriptions
POST/api/v1/stt/transcriptions?stream=true
WS/api/public/v1/stt/ws?token=<stt_key>
GET/api/public/v1/auth/check
GET/api/v1/keys
GET/api/v1/usage

Quickstart

Pick a product, create the credential it requires, then send a first request.

  1. 1

    Create an account

    Sign in to Evom Labs to manage credentials, voices and usage.

  2. 2

    Pick a product

    Loli 2.0 for Speech-to-Text, Loly 3.5 for Text-to-Speech.

  3. 3

    Create a credential

    Issue an STT key, an account key or a voice key, according to the task.

  4. 4

    Send a request

    REST for standalone jobs, NDJSON for transcription progress, WebSocket for real-time audio.

curl
curl -X POST https://studio.evomlabs.com/api/v1/tts/generate \
  -H "Authorization: Bearer vc_sk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Xin chào, đây là bài test giọng nói.",
    "language": "vi",
    "format": "wav",
    "cfg_value": 2.0,
    "dit_steps": 10
  }'

Important

A voice key is bound to one voice. To use another voice, issue another key: the payload carries no voice_id.

Next: Authentication, Loli 2.0, Loly 3.5

Response format

Endpoints under /api/v1/ wrap their result in an envelope: check ok before reading data.

JSON
// success
{ "ok": true,  "data":  { } }

// failure
{ "ok": false, "error": { "code": "QUOTA_EXCEEDED", "message": "Not enough quota remaining" } }

Not one envelope everywhere

This is not a single contract across the platform. A successful transcription returns the transcription object directly, an STT error may arrive with or without the ok field, and NDJSON and WebSocket carry their own event shapes. See Loli 2.0.