Give your brand its own voice. Clone a voice from a short recording, or save a ready-made voice from the community library, then use it anywhere you'd use a studio voice with the MenaVoice Clone model.
Your voice library
Every account has a voice library on the My Voices page. It holds two kinds of voices:
| Cloned voices | Community voices | |
|---|---|---|
| What | Voices you clone from your own recordings | Ready-made voices shared by the community |
| Who can use them | Only you | Anyone who saves them |
| Plan | Any paid plan (Starter and up) | Every plan, including Free |
| Limit | Up to 5 | Your library holds up to 30 voices in total |
Clone a voice
Open Create Voice
In the web app, open Create Voice and choose Instant Voice Clone.
Add a sample
Record in the browser or upload a file (MP3, WAV, WebM, OGG, M4A or FLAC). 10 to 30 seconds of clear speech is all it takes. Recording stops on its own after 60 seconds.
Name it
Give the voice a name of up to 60 characters, such as "Brand voice". The name is how you'll find it in your library.
Create and use it
Cloning takes about a minute. Your new voice appears in My Voices. Click Use to open it in Text to Speech with the MenaVoice Clone model selected.
The clone copies everything in the sample, including room echo, background noise and the way you speak. Record close to the microphone, in a quiet room, in the tone you want to hear back.
Only clone voices you have the right to use: your own, or a voice whose owner has given you permission.
Save a community voice
Open Discovery, preview voices, and click Add to save one to your library. Community voices don't use your clone slots.
Use a library voice with the API
Set quality to clone and voiceId to the library voice's ID:
import base64
import os
import requests
response = requests.post(
"https://api.menavoice.ai/api/tts",
headers={"x-api-key": os.environ["MENAVOICE_API_KEY"]},
json={
"text": "هذا صوتي المستنسخ يقرأ أي نص أكتبه.",
"voiceId": "YOUR_LIBRARY_VOICE_ID",
"quality": "clone",
},
timeout=120,
)
response.raise_for_status()
with open("clone.mp3", "wb") as f:
f.write(base64.b64decode(response.json()["audio"]))import { writeFile } from "node:fs/promises";
const response = await fetch("https://api.menavoice.ai/api/tts", {
method: "POST",
headers: {
"x-api-key": process.env.MENAVOICE_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
text: "هذا صوتي المستنسخ يقرأ أي نص أكتبه.",
voiceId: "YOUR_LIBRARY_VOICE_ID",
quality: "clone",
}),
});
const result = await response.json();
if (!response.ok) throw new Error(result.error);
await writeFile("clone.mp3", Buffer.from(result.audio, "base64"));curl -X POST https://api.menavoice.ai/api/tts \
-H "x-api-key: $MENAVOICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "هذا صوتي المستنسخ يقرأ أي نص أكتبه.", "voiceId": "YOUR_LIBRARY_VOICE_ID", "quality": "clone"}' \
| jq -r .audio | base64 --decode > clone.mp3To find a library voice's ID, open the API Playground, choose the MenaVoice Clone model and your voice, and copy the voiceId from the generated code.
The response's voice field holds the voice's name in your library. A voiceId that isn't in your library fails with 400 Pick a voice from your voice library first.
Good to know:
- Library voices work only with
"quality": "clone", and only for the account that saved them. dialectIdhas no effect on cloned voices. The voice keeps the accent of its sample.- Clone requests cost the same as any other model: $25 per million characters through the API.
- Library voices work in multi-speaker dialogues too, as long as every speaker is from your library.
Delete a voice
Delete a voice from My Voices at any time. Deleting a cloned voice removes it permanently and frees a clone slot. Removing a community voice only takes it out of your library, and you can add it again from Discovery.

