mooch10/mochiptos/fish-audio-tts
Claude Code and agent skill by mooch10/mochiptos
- community
Checking that the SKILL.md file is still in the repository.
Generate expressive, multilingual narration with fish.audio (S1 / S2-generation models) and reuse cloned voices via reference_id. Use when the user prefers fish.audio/Fish Audio TTS, wants a specific playground voice model, or needs high-emotion voice-clone narration.
Install
npx vskill@latest install mooch10/mochiptos/fish-audio-ttsSKILL.md
The same SKILL.md was published earlier as vikasvardhanv/jerry_skills/fish-audio-tts.
fish.audio TTS
Requires FISH_AUDIO_API_KEY in .env (create one at https://fish.audio/go-api/api-keys/). Create voice models in the fish.audio playground and pass their id as reference_id to reuse a cloned voice.
Current API
Single synchronous call returning raw audio bytes:
The backend model is chosen with the model HTTP header, not a body field. In OpenMontage this maps to the tool's model input.
Backend models
model is required — there is no default. Pass one of:
s2.1-pro— latest generation. Best quality: inline emotion tags, 80+ languages, multi-speaker. Hero narration.s2.1-pro-free— promotional free access to s2.1-pro. Drafts, samples, and validation runs at $0 during the promo window only. Per the fish.audio announcement: free through August 31, 2026, subject to Fair Use, no SLA/latency guarantee, requests may be retained, and commercial use is restricted. Never route production or client narration through it.s2-pro— first S2 generation. Stable high quality with emotion-tag support.s1— previous flagship. Kept for compatibility with existing integrations.
Billing is per UTF-8 byte of input text (not per character). CJK text and emoji cost 3-4x an ASCII character of the same visible length. Current list pricing: s1 / s2-pro / s2.1-pro = $15 per 1M bytes, s2.1-pro-free = $0 during the promo window only (the tool's estimate_cost() switches to the paid s2.1-pro rate after August 31, 2026). Verify current pricing at https://docs.fish.audio/developer-guide/models-pricing/pricing-and-rate-limits before large batches.
Inline emotion tags (S2 models only)
s2-pro / s2.1-pro / s2.1-pro-free interpret inline emotion tags embedded in the text:
- Tags like
[laugh],[whispers]change the delivery mid-sentence. - Example:
"That's hilarious [laugh] but let me explain seriously." s1does not interpret emotion tags — they may be read out as plain text, so strip them when targeting s1.
Voice selection (reference_id)
- Build or pick a voice in the fish.audio playground, then copy its model id.
- Pass it as
reference_id. The selector's genericvoice_idis accepted as an alias whenreference_idis absent. - Without a
reference_id, fish.audio uses its default voice for the chosen model.
Inline on-the-fly cloning (uploading reference audio + text per request) is not supported by this tool — create a voice model in the playground first.
OpenMontage Usage
Generate with the TTS selector:
Or call the provider directly:
The provider writes the audio to output_path and returns data.output plus the resolved model and reference_id.
Quality & latency tuning
latency:normal(default, best quality),balanced(a little faster), orlow(fastest, slight quality cost).normalize: defaulttrue; keep it on so numbers, dates, and currency read naturally.prosody: optional{ "speed": 1.0, "volume": 0 }to nudge pace/loudness.mp3_bitrate:128is a good default; raise to192for music-bed-heavy mixes.temperature: default0.7. Raise toward0.9for more expressive reads (recommended when leaning on emotion tags); lower for a steadier, more predictable delivery.top_p/repetition_penalty: usually leave at the defaults (0.7/1.2).
Recommended Workflow
- Generate a 10-15 second sample with the chosen
model+reference_idbefore a full paid narration. - Ask the user to approve voice naturalness, emotion, and pace.
- Generate the full narration only after approval.
- For batch/localization variants where cost matters, prototype on
s2.1-pro-free(promo-window $0; non-commercial drafts only) and upgrade the final tos2.1-pro.
Troubleshooting
401 Unauthorized: wrong or missingFISH_AUDIO_API_KEY.402/ payment errors: account credit exhausted.404/ bad voice: thereference_idis wrong or not owned by this account.- Empty/short audio: check that
textis non-empty andnormalizeis not stripping the whole input.
Safety
Never print or write the API key to logs, metadata, patches, or project artifacts. .env.example should contain only empty variable names.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingfrontend/.agents/fish-audio-tts/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/mooch10/mochiptos/fish-audio-tts)