Theme
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 / file | Feed it /llms-api.txt — full machine-readable API |
| Run shell | npx aisha-ai tts "..." / npx aisha-ai stt file.wav |
| Run Node or Python | Install aisha-ai and call AishaClient (see Libraries & SDK) |
| Use tool calling | Copy 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.txtOr 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_keyCreate 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 --jsonGood default instruction for an agent:
Use
aisha-aiCLI withAISHA_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-formRelated
- Machine file:
llms-api.txt - Human SDK: Libraries & SDK
- Raw endpoints: TTS · STT