Voice Cloning & Verification
Not available on the public API
Voice cloning, emotion-vector TTS, tag-based expressive TTS, voice comparison, deepfake detection, and voice forensics are not available through the public FOTOhub API. Every endpoint earlier revisions of this page documented returns 404 in production:
POST /v1/ai/voice/clonePOST /v1/ai/voice/clone/previewPOST /v1/ai/voice/clone/listDELETE /v1/ai/voice/clone/{voice_uid}POST /v1/ai/voice/emotionalPOST /v1/ai/voice/comparePOST /v1/ai/voice/deepfake-detectPOST /v1/ai/voice/forensics
There is no client.voice.clone(), client.voice.compare(), client.voice.deepfake_detect(), or client.voice.forensics() in the Python or TypeScript SDKs, and no voice_uid / emotion_vec parameter accepted anywhere on the public API.
Voice cloning is a real, priced capability in FOTOhub's internal model catalogue — GET /v1/models lists a billable model voice-clone ($0.797/request, is_active: true), and it runs on FOTOhub's self-hosted IDA Voice engine. But that model has no working caller today, on any surface:
- REST: not reachable through
/v1/ai/generate/speechor any other documented endpoint. Being priced and active in the catalogue means it is billable once something calls it, not that a route exists today. - MCP: the MCP server registers a
voice_clonetool, but its implementation is a stub — it makes no backend call and always returns "Voice cloning is not yet available via MCP." The tool used to callPOST /voice_clone/trainon chatterbox-server, a route that doesn't exist and 404s; that call was removed, and the real cloning code (music-server'svoice_clone.py/tts.py) still has nothing public in front of it. A tool being registered is not proof it does anything — see MCP Integration for what MCP tools actually work today. The same is true of theseparate_stemsMCP tool: registered, but a stub that always returns "Stem separation is not yet available via MCP" rather than callingmusic-server's real (but unbilled, so not public-facing)/stemsroute. - Dashboard: the MCP stub's own error message points users at "the FOTOhub dashboard's Voice Cloning page" instead — that first-party UI is the one place this actually runs today, outside the scope of this developer API reference.
The public POST /v1/ai/generate/speech endpoint can select the same underlying engine with "model": "ida-voice", but only as a fixed built-in voice — it does not accept a reference-audio upload, a saved voice profile, or an emotion vector. There is currently no public route or working MCP tool to clone a voice, compare two samples for speaker identity, or run deepfake/forensic analysis on audio. If a route for voice-clone ships, it will be documented here with real, verified paths.
What's actually available today
For speech and audio production today, use one of the following:
| Capability | Endpoint | Notes |
|---|---|---|
| Voice Agents | POST /v1/voice/agents (see Voice Agents) | Realtime conversational agents with prebuilt voices, powered by xAI Grok Voice. |
| Text-to-Speech (built-in voices) | POST /v1/ai/generate/speech | model: "google", "ida-voice", or "grok". No cloning, no emotion vector. |
| Gemini Generative TTS | POST /v1/ai/tts/gemini/synthesize | Expressive voices with natural-language style prompting. See Music & Audio. |
| Azure Speech Neural TTS | POST /v1/ai/tts/azure/synthesize | Neural voices across many languages, with SSML emotion/role controls. See Music & Audio. |
| Amazon Polly TTS | POST /v1/ai/tts/polly/synthesize | See Music & Audio. |
None of these accept a reference audio upload to clone a new voice, compare two samples for speaker identity, or detect synthetic/deepfake audio — those capabilities are not exposed on the public API today.
Example: built-in-voice TTS
from fotohub import FotoHub
client = FotoHub(api_key="fh_live_...")
audio = client.request(
"POST", "/v1/ai/generate/speech",
json={
"text": "Hello, this is a test of the IDA Voice engine.",
"model": "ida-voice",
"language": "en",
},
)curl -X POST "https://apis.fotohub.app/v1/ai/generate/speech" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "Hello, this is a test of the IDA Voice engine.",
"model": "ida-voice",
"language": "en"
}'See Music & Audio for the full text-to-speech reference, including pricing, supported languages per provider, and voice lists.

