Fish Voice Clone

Clone a voice from a short audio sample and use it in Fish TTS.

Last updated View as Markdown

Fish Voice Clone

Badge: New
Node type: audio:fish_voice_clone
Category: audio

Description

Clone a voice from an audio sample uploaded to your Wireflow account. Outputs a voice_id you can wire straight into the Fish TTS node on the same canvas.

The clone is private to your account and shows up in the Fish TTS voice dropdown after the run.

Record and reuse a voice

  1. Add an Import node. Upload audio, or choose Record audio, allow the microphone, and record 30-120 seconds of clean speech from one speaker. Stop, listen to the preview, then choose Use recording.
  2. Connect the Import output to Voice Sample on a Fish Voice Clone node. Set Voice Name and check I own this voice or have permission to clone it.
  3. Run the Voice Clone node explicitly. This costs 15 credits. Recording and uploading do not run the clone.
  4. In a Fish TTS node, choose Refresh voices and select the saved private voice by name. You can reuse it in other workflows without running Voice Clone again.

The saved voice is account scoped. Uploaded source audio is hosted at a CDN URL; it is not private storage.

API and agents

Upload the source audio through POST /api/v1/media/upload-url, PUT the bytes to the returned URL, then call POST /api/v1/media/upload-url/complete. Prepare a private draft with POST /api/v1/voices/clone-workflow using { "name": "My narration", "audioUrl": "<completed upload URL>", "consentConfirmed": true }, or use MCP prepare_voice_clone. Preparing the draft costs no credits and does not clone the voice. Review its estimate, then use the returned workflow run endpoints when ready.

For REST estimate and run requests, send the draft's nodeIds as the body, for example { "nodeIds": ["clone-voice"] }. MCP run_workflow takes the same list as the draft's targetNodeIds instead; the REST run route refuses that name. A REST run with "dryRun": true checks the plan without cloning. If a run response is uncertain, poll the original execution before submitting another clone.

List saved voices with GET /api/v1/voices or MCP list_voices. Reuse the returned voice ID in Fish TTS.

Existing saved voices keep working. Re-running an older clone node now requires explicit consent and a completed audio upload owned by your account. Upload legacy or external samples again once before cloning.

Pricing

  • Cost: 15 credits per run. A clone is a one-time cost. Using the voice afterwards is just the Fish TTS price (3 credits per run).

Canvas ports

These appear as port handles on the left side of the node.

ID Label Details
audio_url Voice Sample AUDIO (required). An owned upload with 30-120 seconds of clean speech from one speaker
ID Label Details
title Voice Name TEXT. How the voice is labelled in your voice list
consent_confirmed I own this voice or have permission to clone it BOOLEAN (required). Must be explicitly checked before running

Outputs

ID Label Type
voice_id Voice ID TEXT

Limits

  • Sample must be a completed audio upload owned by your Wireflow account, 25 MB max. External URLs must be uploaded to Wireflow first.
  • The browser recorder stops after 120 seconds and uploads WAV audio. If recording is unavailable, upload a WAV, MP3, or M4A file.

Notes

  • Clean beats long. Background music, reverb, and two people talking all end up in the clone.
  • One run makes one voice. Re-running with the same sample makes a second, separate voice.
  • Only clone voices you have the right to clone.

For AI agents: the full documentation index is at /llms.txt, and most docs pages are available as Markdown by adding .md to the URL.

© 2026 Wireflow. All rights reserved.

Fish Voice Clone | Wireflow Docs