Skip to content

For AI agents

Use VoiceLab from Cursor, Claude, ChatGPT tools, MCP, or your own agent runtime with almost no glue code.

Pick a path

Agent can…Do this
Read a URL / fileFeed it /llms-api.txt — full machine-readable API
Run shellnpx aisha-ai tts "..." / npx aisha-ai stt file.wav
Run Node or PythonInstall aisha-ai and call AishaClient (see Libraries & SDK)
Use tool callingCopy the tool schemas below

1. Give the agent the API file

Point the agent at the absolute docs URL:

txt
https://docs.voicelab.uz/llms-api.txt

Or paste the file contents into the system prompt / RAG.

That file includes base URL, auth, endpoints, curl, and tool schemas.

2. Environment

bash
export AISHA_API_KEY=your_api_key

Create keys in the VoiceLab app. Never put the key in the model prompt — only in the tool runtime env.

3. Zero-code shell tools

bash
npx aisha-ai tts "Salom dunyo" --model Gulnoza --out /tmp/out.wav
npx aisha-ai stt /tmp/audio.wav --json

Good default instruction for an agent:

Use aisha-ai CLI with AISHA_API_KEY. Prefer CLI for one-off TTS/STT. For structured apps, use the Node/Python SDK.

4. Tool definitions (Claude / OpenAI / MCP)

json
[
  {
    "name": "aisha_tts",
    "description": "Convert text to natural speech with VoiceLab (aisha-ai). Returns a URL to WAV audio. Best for Uzbek; also supports en/ru.",
    "input_schema": {
      "type": "object",
      "properties": {
        "transcript": { "type": "string", "description": "Text to speak, max 1000 characters" },
        "language": { "type": "string", "enum": ["uz", "en", "ru"], "default": "uz" },
        "model": { "type": "string", "default": "Gulnoza" },
        "mood": { "type": "string", "enum": ["Neutral", "Cheerful", "Happy", "Sad"], "default": "Neutral" },
        "speed": { "type": "number", "minimum": 0.5, "maximum": 2, "default": 1.0 }
      },
      "required": ["transcript"]
    }
  },
  {
    "name": "aisha_stt",
    "description": "Transcribe an audio file (mp3/wav/ogg/m4a) to text with VoiceLab. Best for Uzbek.",
    "input_schema": {
      "type": "object",
      "properties": {
        "file_path": { "type": "string", "description": "Path to the audio file" },
        "language": { "type": "string", "enum": ["uz", "en", "ru"], "default": "uz" },
        "diarization": { "type": "boolean", "default": false, "description": "Label speakers (audio >= 15s)" }
      },
      "required": ["file_path"]
    }
  }
]

Node handler

js
import { AishaClient } from "aisha-ai";

const aisha = new AishaClient({ apiKey: process.env.AISHA_API_KEY });

export async function aisha_tts({ transcript, language = "uz", model = "Gulnoza", mood = "Neutral", speed = 1 }) {
  const result = await aisha.tts({ transcript, language, model, mood, speed });
  return { audio_url: result.audioUrl };
}

export async function aisha_stt({ file_path, language = "uz", diarization = false }) {
  const result = await aisha.stt({ file: file_path, language, diarization });
  return { transcript: result.transcript };
}

Python handler

python
from aisha_ai import AishaClient

aisha = AishaClient()

def aisha_tts(transcript, language="uz", model="Gulnoza", mood="Neutral", speed=1.0):
    return {"audio_url": aisha.tts(transcript=transcript, language=language, model=model, mood=mood, speed=speed).audio_url}

def aisha_stt(file_path, language="uz", diarization=False):
    return {"transcript": aisha.stt(file=file_path, language=language, diarization=diarization).transcript}

5. Prompt snippet you can paste

txt
You can use VoiceLab speech tools via aisha-ai.
- Docs for machines: /llms-api.txt
- Human SDK guide: /libraries/sdk
- Auth: AISHA_API_KEY in the environment only
- Prefer SDK/CLI over inventing HTTP unless the task needs realtime WebSocket or STT v2 long-form