diff --git a/.env.example b/.env.example index 2aa08dd9..bea309f2 100644 --- a/.env.example +++ b/.env.example @@ -38,7 +38,7 @@ OPENAI_API_KEY= # OpenAI TTS fallback and GPT Image 2 image generat XAI_API_KEY= # Grok image generation/editing and Grok video generation DOUBAO_SPEECH_API_KEY= # Volcengine Doubao Speech TTS (new console API Key) DOUBAO_SPEECH_VOICE_TYPE= # Default Doubao speaker/voice type, e.g. zh_female_vv_uranus_bigtts -FISH_AUDIO_API_KEY= # fish.audio TTS (S1 / speech-1.x, reference_id voice cloning) +FISH_AUDIO_API_KEY= # fish.audio TTS (s1 / s2-pro / s2.1-pro, reference_id voice cloning) # Piper local voices do not require env vars; install `piper-tts` via pip # --- DashScope (Alibaba Cloud Bailian) --- diff --git a/docs/PROVIDERS.md b/docs/PROVIDERS.md index 497f78df..c19970f8 100644 --- a/docs/PROVIDERS.md +++ b/docs/PROVIDERS.md @@ -38,6 +38,7 @@ GOOGLE_API_KEY= # Google TTS + Imagen + Lyria music + Gemini Omni/V # VOICE + MUSIC ELEVENLABS_API_KEY= # TTS, music, sound effects (10K chars/month free) +FISH_AUDIO_API_KEY= # fish.audio TTS (voice cloning via reference_id, inline emotion tags) OPENAI_API_KEY= # OpenAI TTS + GPT Image 2 images XAI_API_KEY= # xAI Grok image generation/editing + Grok video generation DOUBAO_SPEECH_API_KEY= # Volcengine Doubao Speech TTS (strong Mandarin narration) @@ -250,6 +251,39 @@ No subscription — pure pay-as-you-go, no minimum spend. --- +### fish.audio — Expressive TTS + Voice Cloning + +> **High-emotion narration and reusable cloned voices.** S2-generation models support inline emotion tags (`[laugh]`, `[whispers]`) and 80+ languages. Voices created in the fish.audio playground are reused across runs via `reference_id`. + +**Tools unlocked:** `fish_audio_tts` +**Env var:** `FISH_AUDIO_API_KEY` + +#### Setup + +1. Sign up at [fish.audio](https://fish.audio) +2. Create an API key at [fish.audio/go-api/api-keys](https://fish.audio/go-api/api-keys/) +3. Add to `.env`: `FISH_AUDIO_API_KEY=your-key-here` +4. (Optional) Build or pick a voice model in the fish.audio playground and pass its id as `reference_id` to reuse a cloned voice + +#### Backend models + +`model` is **required — there is no default**. Pass one of: + +| Model | Best for | +|-------|----------| +| `s2.1-pro` | Latest flagship — inline emotion tags, 80+ languages, hero narration | +| `s2.1-pro-free` | Free tier of s2.1-pro — drafts, samples, validation runs at $0 | +| `s2-pro` | First S2 generation — stable high quality with emotion-tag support | +| `s1` | Previous flagship, kept for compatibility (no emotion tags) | + +The legacy `speech-1.x` tier and `s1-mini` have been removed from the fish.audio API and are not supported. + +#### Pricing + +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. Approximate: `s1` / `s2-pro` / `s2.1-pro` ≈ $15 per 1M bytes; `s2.1-pro-free` is $0. Verify current pricing at [fish.audio](https://fish.audio) before large batches. + +--- + ### Doubao Speech — Mandarin TTS > **Strong Mandarin narration.** Volcengine Doubao Speech is a good choice for Chinese explainer voiceovers and long-form narration that needs subtitle timing metadata. @@ -881,6 +915,7 @@ These tools require only FFmpeg or Python packages — no GPU, no API key. | **Piper** | — (install only) | `piper_tts` | Free | | **Google** | `GOOGLE_API_KEY` (or `GEMINI_API_KEY`) | `google_tts`, `google_imagen`, `google_music`, `gemini_omni_video`, `veo_video` | Free tier (TTS) + paid | | **ElevenLabs** | `ELEVENLABS_API_KEY` | `elevenlabs_tts`, `music_gen` | Free tier + paid | +| **fish.audio** | `FISH_AUDIO_API_KEY` | `fish_audio_tts` | Free tier (s2.1-pro-free) + paid | | **fal.ai** | `FAL_KEY` | `flux_image`, `recraft_image`, `kling_video`, `veo_video`, `minimax_video` | Pay-as-you-go | | **Kling Official** | `KLING_API_KEY` | `kling_official_video`, `kling_official_image`, `kling_tts`, `kling_avatar`, `kling_lip_sync` | Pay-as-you-go | | **OpenAI** | `OPENAI_API_KEY` | `openai_tts`, `openai_image` | Paid only | @@ -903,7 +938,7 @@ How many providers cover each capability: |-----------|----------------|-----------------|--------------| | **Image Generation** | FLUX, Kling Official, Grok, Google Imagen, GPT Image 2, Recraft | Local Diffusion | Pexels, Pixabay (stock) | | **Video Generation** | Grok, Kling Official, Kling via fal.ai, Runway, Veo, Gemini Omni, Higgsfield, MiniMax, HeyGen | WAN, Hunyuan, CogVideo, LTX | Pexels, Pixabay (stock) | -| **Text-to-Speech** | ElevenLabs, Google TTS, Kling Official, OpenAI | Piper | Piper, Google free tier, ElevenLabs free tier | +| **Text-to-Speech** | ElevenLabs, fish.audio, Google TTS, Kling Official, OpenAI | Piper | Piper, Google free tier, ElevenLabs free tier, fish.audio s2.1-pro-free | | **Music Generation** | ElevenLabs, Suno, Google Lyria | — | ElevenLabs free tier | | **Post-Production** | — | FFmpeg (compose, stitch, trim, mix, enhance, grade) | All free | | **Analysis** | — | WhisperX, Scene Detect, Frame Sampler, CLIP/BLIP-2 | All free | diff --git a/skills/INDEX.md b/skills/INDEX.md index 228cd62f..86a880d5 100644 --- a/skills/INDEX.md +++ b/skills/INDEX.md @@ -307,7 +307,7 @@ Claude Code accesses them via symlinks in `.claude/skills/`. |----------|-----------------|--------| | **Video Composition** | `remotion-best-practices`, `remotion`, `hyperframes` (router), `hyperframes-core`, `hyperframes-creative`, `hyperframes-media`, `hyperframes-animation`, `hyperframes-cli`, `hyperframes-registry`, `media-use`, `motion-graphics`, `music-to-video`, `remotion-to-hyperframes`, `website-to-video` | `remotion-dev/skills`, `digitalsamba/claude-code-video-toolkit`, `heygen-com/hyperframes` (vendored v0.7.17, see `.agents/skills/hyperframes/PROVENANCE.md`) | | **Video Processing** | `ffmpeg`, `video-toolkit` | `digitalsamba/claude-code-video-toolkit` | -| **TTS & Audio** | `text-to-speech`, `speech-to-text` (whisper, default STT), `azure-speech-to-text` (optional cloud STT), `music`, `sound-effects`, `elevenlabs`, `agents`, `setup-api-key` | `elevenlabs/skills`, `digitalsamba/claude-code-video-toolkit` | +| **TTS & Audio** | `text-to-speech`, `speech-to-text` (whisper, default STT), `azure-speech-to-text` (optional cloud STT), `music`, `sound-effects`, `elevenlabs`, `fish-audio-tts`, `agents`, `setup-api-key` | `elevenlabs/skills`, `digitalsamba/claude-code-video-toolkit`, local OpenMontage skill | | **Image Generation** | `flux-best-practices`, `bfl-api`, `grok-media` | `black-forest-labs/skills`, local OpenMontage skill | | **Math Animation** | `manimce-best-practices`, `manimgl-best-practices`, `manim-composer` | `adithya-s-k/manim_skill` | | **3D Graphics** | `threejs-animation`, `threejs-fundamentals`, `threejs-geometry`, `threejs-interaction`, `threejs-lighting`, `threejs-loaders`, `threejs-materials`, `threejs-postprocessing`, `threejs-shaders`, `threejs-textures` | `cloudai-x/threejs-skills` |