fish-audio-tts

Generate multilingual narration audio with fish.audio TTS models and cloned voices.

Updated Sep 1, 2026
One-click install
npx skills add https://github.com/zamansepeti43/c-rak-agent --skill fish-audio-tts-zamansepeti43
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: fish-audio-tts
Source: https://github.com/zamansepeti43/c-rak-agent/tree/main/video-engine/.agents/skills/fish-audio-tts
Command: npx skills add https://github.com/zamansepeti43/c-rak-agent --skill fish-audio-tts-zamansepeti43

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Producing expressive voiceover narration for videos requires a TTS provider that supports emotion control, many languages, and reusable cloned voices, and this Skill provides the exact API usage, model selection, and cost guidance for fish.audio. ## Core Features & Use Cases - Model Selection: Choose between s2.1-pro, s2.1-pro-free, s2-pro, and s1 backends, with guidance on quality, emotion-tag support, and per-byte billing. - Voice Cloning Reuse: Pass a playground-created voice model as reference_id to reuse cloned voices across narration jobs. - Emotion & Prosody Control: Use inline emotion tags like [laugh] or [whispers] plus latency, temperature, speed, and bitrate tuning for delivery control. - Use Case: A video producer drafts narration on the free promotional model, gets voice approval from a 10-15 second sample, then renders the final hero narration on s2.1-pro. ## Quick Start Generate a short sample narration with the fish.audio provider using model s1 and my playground voice reference_id, saving the audio to my project's assets folder.

Frequently Asked Questions about fish-audio-tts

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate TTS narration with fish.audio API?

Send a POST request to https://api.fish.audio/v1/tts with your FISH_AUDIO_API_KEY as a Bearer token and the text in the JSON body. Select the backend with the model HTTP header, and the API returns raw audio bytes you write to an output file.

How do I reuse a cloned voice in fish.audio?

Create the voice model in the fish.audio playground, copy its model id, and pass it as reference_id in each TTS request. Inline on-the-fly cloning from uploaded reference audio is not supported, so the voice model must exist beforehand.

Which fish.audio model should I use for narration?

Use s2.1-pro for the best quality with emotion tags and 80+ languages, s2-pro for stable high quality, or s1 for legacy compatibility. The s2.1-pro-free tier suits drafts only during the promo window and must not serve production or commercial narration.

Does fish.audio support emotion tags in TTS text?

S2 models (s2-pro, s2.1-pro, s2.1-pro-free) interpret inline tags like [laugh] and [whispers] to change delivery mid-sentence. The s1 model does not interpret them and may read them aloud, so strip tags when targeting s1.

Why did my fish.audio TTS request return a 401 or 404 error?

A 401 means the FISH_AUDIO_API_KEY is missing or incorrect, while a 404 indicates the reference_id is wrong or not owned by your account. A 402 signals exhausted account credit, and empty audio usually means empty text input.

How is fish.audio TTS billed?

Billing is per UTF-8 byte of input text, not per character, so CJK text and emoji cost three to four times an ASCII character of the same visible length. List pricing is $15 per 1M bytes for s1, s2-pro, and s2.1-pro.