Skip to content

feat: s2-pro#56

Merged
twangodev merged 2 commits intomainfrom
s2
Mar 10, 2026
Merged

feat: s2-pro#56
twangodev merged 2 commits intomainfrom
s2

Conversation

@twangodev
Copy link
Copy Markdown
Contributor

@twangodev twangodev commented Mar 10, 2026

Summary by CodeRabbit

  • Documentation

    • Clarified S1 (parenthesis) and S2 (bracket) syntax differences across multiple guides.
    • Updated S1 emotional expressions from 48+ to 64+.
    • Introduced S2-Pro as next-generation model with natural language emotion control and inline cue support.
  • Bug Fixes

    • Removed duplicate S2-Pro pricing entry in rate limits table.

Copilot AI review requested due to automatic review settings March 10, 2026 07:41
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 10, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: caa68967-4824-48ac-bbb7-28e4178c4374

📥 Commits

Reviewing files that changed from the base of the PR and between 2a87d7a and 7f16a06.

📒 Files selected for processing (9)
  • api-reference/emotion-reference.mdx
  • developer-guide/best-practices/emotion-control.mdx
  • developer-guide/core-features/emotions.mdx
  • developer-guide/core-features/text-to-speech.mdx
  • developer-guide/getting-started/changelog.mdx
  • developer-guide/models-pricing/models-overview.mdx
  • developer-guide/models-pricing/pricing-and-rate-limits.mdx
  • developer-guide/sdk-guide/javascript/text-to-speech.mdx
  • developer-guide/sdk-guide/python/text-to-speech.mdx

📝 Walkthrough

Walkthrough

Documentation updates clarifying model-specific syntax differences—S1 uses parenthesis syntax while S2 uses bracket syntax with natural language descriptions—distributed across multiple files. Includes changelog entry for S2 model (March 2026) and expanded models overview with updated feature descriptions.

Changes

Cohort / File(s) Summary
Documentation Tips for Model Syntax
api-reference/emotion-reference.mdx, developer-guide/best-practices/emotion-control.mdx, developer-guide/core-features/emotions.mdx, developer-guide/core-features/text-to-speech.mdx, developer-guide/sdk-guide/javascript/text-to-speech.mdx, developer-guide/sdk-guide/python/text-to-speech.mdx
Added Tip blocks consistently across emotion and TTS documentation files clarifying that S1 uses (parenthesis) syntax while S2 uses [bracket] syntax with natural language descriptions, with cross-references to Models Overview.
Model Information Updates
developer-guide/getting-started/changelog.mdx, developer-guide/models-pricing/models-overview.mdx
Changelog entry added for S2 (March 2026); S1 emotional expressions count updated from 48+ to 64+. Models Overview expanded with new "S2-Pro Natural Language Control" section, bracket-based examples, updated feature descriptions, and language support clarifications.
Pricing Table Issue
developer-guide/models-pricing/pricing-and-rate-limits.mdx
Duplicate s2-pro pricing row added, resulting in two identical entries; appears unintended.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~18 minutes

Poem

🐰 Documentation hops and bounds,
S1 in parens, S2 brackets sound!
Models aligned, syntax made clear,
A changelog added for S2 so dear,
But watch that pricing—duplicate's here! 📋✨

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch s2

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@twangodev twangodev merged commit 39e8f6f into main Mar 10, 2026
5 of 6 checks passed
@twangodev twangodev deleted the s2 branch March 10, 2026 07:42
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates documentation to introduce/position the s2-pro (S2) model and clarify how emotion control differs between S1 and S2 across guides and references.

Changes:

  • Adds “S1 vs S2” clarifications via <Tip> callouts in multiple TTS/emotion docs.
  • Expands the Models Overview with S2-Pro natural-language control details and updated positioning (“Recommended Model”).
  • Updates pricing/changelog content to include S2 information.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
developer-guide/sdk-guide/python/text-to-speech.mdx Adds tip clarifying S1 (parenthesis) vs S2 [bracket] emotion syntax.
developer-guide/sdk-guide/javascript/text-to-speech.mdx Adds the same S1 vs S2 emotion syntax tip for JS SDK readers.
developer-guide/models-pricing/pricing-and-rate-limits.mdx Adds s2-pro to TTS pricing table (but currently duplicates the row).
developer-guide/models-pricing/models-overview.mdx Repositions S2-Pro as recommended and adds a new “Natural Language Control” section.
developer-guide/getting-started/changelog.mdx Adds a new “Fish Audio S2” changelog entry and updates S1 emotion count text.
developer-guide/core-features/text-to-speech.mdx Adds a tip clarifying S1 vs S2 emotion syntax in the core TTS guide.
developer-guide/core-features/emotions.mdx Adds a tip clarifying that the page’s syntax applies to S1, with link to S2 section.
developer-guide/best-practices/emotion-control.mdx Adds a tip clarifying S1 vs S2 emotion syntax and links to Models Overview.
api-reference/emotion-reference.mdx Adds a tip clarifying S1 vs S2 emotion syntax and links to Models Overview.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Control how your AI voice expresses emotions, from happy and excited to sad and contemplative. Add natural pauses, laughter, and other human-like elements to make speech more engaging.

<Tip>
The `(parenthesis)` syntax on this page applies to the S1 model. S2 uses `[bracket]` syntax with natural language descriptions and is not limited to a fixed set of tags. See the [Models Overview](/developer-guide/models-pricing/models-overview#s2-natural-language-control) for details.
Copy link

Copilot AI Mar 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Models Overview link uses the #s2-natural-language-control fragment, but models-overview.mdx does not define an anchor with that id (the heading is "S2-Pro Natural Language Control", which will typically slug to #s2-pro-natural-language-control). Update the fragment to match the actual heading id or add an explicit anchor in the destination page to avoid broken in-page navigation.

Suggested change
The `(parenthesis)` syntax on this page applies to the S1 model. S2 uses `[bracket]` syntax with natural language descriptions and is not limited to a fixed set of tags. See the [Models Overview](/developer-guide/models-pricing/models-overview#s2-natural-language-control) for details.
The `(parenthesis)` syntax on this page applies to the S1 model. S2 uses `[bracket]` syntax with natural language descriptions and is not limited to a fixed set of tags. See the [Models Overview](/developer-guide/models-pricing/models-overview#s2-pro-natural-language-control) for details.

Copilot uses AI. Check for mistakes.
This reference guide provides a comprehensive list of all 64+ supported emotional expressions and voice styles available in Fish Audio's S1 TTS model. The latest S2-Pro model supports free-form natural language emotion tags.

<Tip>
The `(parenthesis)` syntax on this page applies to the S1 model. S2 uses `[bracket]` syntax with natural language descriptions and is not limited to a fixed set of tags. See the [Models Overview](/developer-guide/models-pricing/models-overview#s2-natural-language-control) for details.
Copy link

Copilot AI Mar 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Models Overview link uses the #s2-natural-language-control fragment, but models-overview.mdx does not define an anchor with that id (the heading is "S2-Pro Natural Language Control", which will typically slug to #s2-pro-natural-language-control). Update the fragment to match the actual heading id or add an explicit anchor in the destination page to avoid broken in-page navigation.

Suggested change
The `(parenthesis)` syntax on this page applies to the S1 model. S2 uses `[bracket]` syntax with natural language descriptions and is not limited to a fixed set of tags. See the [Models Overview](/developer-guide/models-pricing/models-overview#s2-natural-language-control) for details.
The `(parenthesis)` syntax on this page applies to the S1 model. S2 uses `[bracket]` syntax with natural language descriptions and is not limited to a fixed set of tags. See the [Models Overview](/developer-guide/models-pricing/models-overview#s2-pro-natural-language-control) for details.

Copilot uses AI. Check for mistakes.
## Emotions and Expressions

<Tip>
The `(parenthesis)` syntax below applies to the S1 model. S2 uses `[bracket]` syntax with natural language descriptions and is not limited to a fixed set of tags. See the [Models Overview](/developer-guide/models-pricing/models-overview#s2-natural-language-control) for details.
Copy link

Copilot AI Mar 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Models Overview link uses the #s2-natural-language-control fragment, but models-overview.mdx does not define an anchor with that id (the heading is "S2-Pro Natural Language Control", which will typically slug to #s2-pro-natural-language-control). Update the fragment to match the actual heading id or add an explicit anchor in the destination page to avoid broken in-page navigation.

Suggested change
The `(parenthesis)` syntax below applies to the S1 model. S2 uses `[bracket]` syntax with natural language descriptions and is not limited to a fixed set of tags. See the [Models Overview](/developer-guide/models-pricing/models-overview#s2-natural-language-control) for details.
The `(parenthesis)` syntax below applies to the S1 model. S2 uses `[bracket]` syntax with natural language descriptions and is not limited to a fixed set of tags. See the [Models Overview](/developer-guide/models-pricing/models-overview#s2-pro-natural-language-control) for details.

Copilot uses AI. Check for mistakes.
## Emotions

<Tip>
The `(parenthesis)` syntax below applies to the S1 model. S2 uses `[bracket]` syntax with natural language descriptions and is not limited to a fixed set of tags. See the [Models Overview](/developer-guide/models-pricing/models-overview#s2-natural-language-control) for details.
Copy link

Copilot AI Mar 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Models Overview link uses the #s2-natural-language-control fragment, but models-overview.mdx does not define an anchor with that id (the heading is "S2-Pro Natural Language Control", which will typically slug to #s2-pro-natural-language-control). Update the fragment to match the actual heading id or add an explicit anchor in the destination page to avoid broken in-page navigation.

Suggested change
The `(parenthesis)` syntax below applies to the S1 model. S2 uses `[bracket]` syntax with natural language descriptions and is not limited to a fixed set of tags. See the [Models Overview](/developer-guide/models-pricing/models-overview#s2-natural-language-control) for details.
The `(parenthesis)` syntax below applies to the S1 model. S2 uses `[bracket]` syntax with natural language descriptions and is not limited to a fixed set of tags. See the [Models Overview](/developer-guide/models-pricing/models-overview#s2-pro-natural-language-control) for details.

Copilot uses AI. Check for mistakes.
## Adding Emotions

<Tip>
The `(parenthesis)` syntax below applies to the S1 model. S2 uses `[bracket]` syntax with natural language descriptions and is not limited to a fixed set of tags. See the [Models Overview](/developer-guide/models-pricing/models-overview#s2-natural-language-control) for details.
Copy link

Copilot AI Mar 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Models Overview link uses the #s2-natural-language-control fragment, but models-overview.mdx does not define an anchor with that id (the heading is "S2-Pro Natural Language Control", which will typically slug to #s2-pro-natural-language-control). Update the fragment to match the actual heading id or add an explicit anchor in the destination page to avoid broken in-page navigation.

Suggested change
The `(parenthesis)` syntax below applies to the S1 model. S2 uses `[bracket]` syntax with natural language descriptions and is not limited to a fixed set of tags. See the [Models Overview](/developer-guide/models-pricing/models-overview#s2-natural-language-control) for details.
The `(parenthesis)` syntax below applies to the S1 model. S2 uses `[bracket]` syntax with natural language descriptions and is not limited to a fixed set of tags. See the [Models Overview](/developer-guide/models-pricing/models-overview#s2-pro-natural-language-control) for details.

Copilot uses AI. Check for mistakes.
Fish Audio models support 64+ emotional expressions and voice styles that can be controlled through text markers in your input. Add natural pauses, laughter, and other human-like elements to make speech more engaging and realistic.

<Tip>
The `(parenthesis)` syntax on this page applies to the S1 model. S2 uses `[bracket]` syntax with natural language descriptions and is not limited to a fixed set of tags. See the [Models Overview](/developer-guide/models-pricing/models-overview#s2-natural-language-control) for details.
Copy link

Copilot AI Mar 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Models Overview link uses the #s2-natural-language-control fragment, but models-overview.mdx does not define an anchor with that id (the heading is "S2-Pro Natural Language Control", which will typically slug to #s2-pro-natural-language-control). Update the fragment to match the actual heading id or add an explicit anchor in the destination page to avoid broken in-page navigation.

Suggested change
The `(parenthesis)` syntax on this page applies to the S1 model. S2 uses `[bracket]` syntax with natural language descriptions and is not limited to a fixed set of tags. See the [Models Overview](/developer-guide/models-pricing/models-overview#s2-natural-language-control) for details.
The `(parenthesis)` syntax on this page applies to the S1 model. S2 uses `[bracket]` syntax with natural language descriptions and is not limited to a fixed set of tags. See the [Models Overview](/developer-guide/models-pricing/models-overview#s2-pro-natural-language-control) for details.

Copilot uses AI. Check for mistakes.
Comment on lines +107 to +110
### S2-Pro Natural Language Control

### S1
S2-Pro treats `[bracket]` tags as standard text rather than dedicated control tokens. Through training on massive datasets, the model learned implicit mappings between natural language descriptions and acoustic variations. This means you are not limited to a predefined set of tags — you can use any descriptive expression and the model will interpret it, such as `[whispers sweetly]` or `[laughing nervously]`.

Copy link

Copilot AI Mar 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Multiple pages link to models-overview#s2-natural-language-control, but this page does not currently define that anchor. Since this heading will usually slug to #s2-pro-natural-language-control, either add an explicit anchor with id s2-natural-language-control here or align all inbound links to the actual slug to prevent broken navigation.

Copilot uses AI. Check for mistakes.

Use model ID `s2-pro` in the API. S1 remains supported for existing integrations.

[GitHub](https://github.com/fishaudio/fish-speech) | [HuggingFace](https://huggingface.co/fishaudio)
Copy link

Copilot AI Mar 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Link text uses "HuggingFace" here, but the rest of this changelog uses "Hugging Face" (with a space). Use consistent branding for readability and consistency.

Suggested change
[GitHub](https://github.com/fishaudio/fish-speech) | [HuggingFace](https://huggingface.co/fishaudio)
[GitHub](https://github.com/fishaudio/fish-speech) | [Hugging Face](https://huggingface.co/fishaudio)

Copilot uses AI. Check for mistakes.
|--------------|------------------------|
| `s2-pro` | $15.00 / M UTF-8 bytes |
| `s1` | $15.00 / M UTF-8 bytes |
| `s2-pro` | $15.00 / M UTF-8 bytes |
Copy link

Copilot AI Mar 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The TTS pricing table lists s2-pro twice (lines 54 and 56). This is confusing and can mislead readers; remove the duplicate row (or replace it with the intended model) so each model appears only once.

Suggested change
| `s2-pro` | $15.00 / M UTF-8 bytes |

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants