Speech Synthesis
Select a voice and type your text to generate speech.
🎤
No voice selected
Click to select or add a voice
Inference Steps
32
Speed
1.0x
Generated audio
Voice Design
Describe how you want the voice to sound. Powered by Qwen3-TTS.
Voice Description
Generated audio
Voice Library
Preset speakers and your custom cloned voices. Select one to use in Voice Clone.
Your Voices
Preset Speakers
Transcribe
Upload an audio file to transcribe it to text. Powered by Cohere Transcribe.
Drop an audio file here or click to upload
MP3, WAV, FLAC, M4A supported
History
Your recent generations.
No generations yet
API
Use your HF token to call OmniVoice directly from your code or AI agents.
// Auth: set TOKEN to your HF token from https://huggingface.co/settings/tokens
const TOKEN = process.env.HF_TOKEN || "hf_...";
const BASE = "https://k2-fsa-omnivoice.hf.space/gradio_api";
const SESSION = crypto.randomUUID();
// 1. Upload
const form = new FormData();
form.append("files", audioFile);
const [path] = await fetch(`${BASE}/upload`, {
method: "POST",
headers: { Authorization: `Bearer ${TOKEN}` },
body: form
}).then(r => r.json());
// 2. Join queue
await fetch(`${BASE}/queue/join`, {
method: "POST",
headers: { "Content-Type": "application/json",
Authorization: `Bearer ${TOKEN}` },
body: JSON.stringify({
data: ["Text", "English",
{ path, meta: { _type: "gradio.FileData" },
orig_name: "voice.mp3" },
"", "", 32, 2.0, true, 1.0, 0, true, true],
fn_index: 0, session_hash: SESSION })
});
// 3. Stream SSE
const r = await fetch(
`${BASE}/queue/data?session_hash=${SESSION}`,
{ headers: { Authorization: `Bearer ${TOKEN}` } }
);
Use with AI agents — These API calls work great with Claude Code, Cursor, Windsurf, or any AI coding agent. Just paste the curl or Python snippet into your agent's context and ask it to clone a voice. The agent can use your
HF_TOKEN environment variable to authenticate. Works with MCP servers, automation scripts, and CI/CD pipelines too.