mirror of
https://github.com/calesthio/OpenMontage.git
synced 2026-08-24 17:10:27 +08:00
fix: address selector contract, promo pricing, idempotency, and registry metadata review
- Require 'model' in the input schema and accept 'model_id' as a selector-compatible alias (tts_selector exposes model_id); add a selector-routing regression test - Document s2.1-pro-free as promotional (free through end of July 2026, Fair Use, no SLA, possible request retention, commercial-use restrictions) in PROVIDERS.md and the Layer 3 skill; estimate_cost() falls back to the paid s2.1-pro rate after the promo window - Normalize voice_id/reference_id and model_id/model aliases before computing the idempotency key, and include all output-affecting inputs (bitrate, sample_rate, temperature, top_p, repetition_penalty, latency, prosody, normalize, chunk_length) with API defaults applied - Declare env:FISH_AUDIO_API_KEY in dependencies so registry metadata reports the requirement - Add fish_audio to the TTS provider set in the phase3 registry contract test
This commit is contained in:
@@ -272,15 +272,17 @@ No subscription — pure pay-as-you-go, no minimum spend.
|
||||
| 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.1-pro-free` | Promotional free access to s2.1-pro — drafts, samples, validation runs (see caveats below) |
|
||||
| `s2-pro` | First S2 generation — stable high quality with emotion-tag support |
|
||||
| `s1` | Previous flagship, kept for compatibility (no emotion tags) |
|
||||
|
||||
**`s2.1-pro-free` caveats — promotional, not a durable free tier.** Per the [fish.audio announcement](https://fish.audio/ar/blog/s2-1-pro-free-api/?articleLocale=en), free API access runs **through the end of July 2026** and is subject to Fair Use limits, carries **no SLA or latency guarantee**, requests **may be retained** by fish.audio, and **commercial use is restricted**. Don't route client work or production narration through it, and don't plan long-term costs at $0 — `fish_audio_tts.estimate_cost()` falls back to the paid `s2.1-pro` rate after the promotional window ends.
|
||||
|
||||
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.
|
||||
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 only during the promotional window (through end of July 2026 — see caveats above). Verify current pricing at [fish.audio](https://fish.audio) before large batches.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user