ajh-code's picture
Add files using upload-large-folder tool
2c8c506 verified
|
Raw
History Blame Contribute Delete
13 kB
<div align="center">
<h1>Fish Speech</h1>
[English](../README.md) | [็ฎ€ไฝ“ไธญๆ–‡](README.zh.md) | [Portuguese](README.pt-BR.md) | [ๆ—ฅๆœฌ่ชž](README.ja.md) | **ํ•œ๊ตญ์–ด** | [ุงู„ุนุฑุจูŠุฉ](README.ar.md) | [Espaรฑol](docs/README.es.md) <br>
<a href="https://www.producthunt.com/products/fish-speech?embed=true&utm_source=badge-top-post-badge&utm_medium=badge&utm_source=badge-fish&#0045;audio&#0045;s1" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=1023740&theme=light&period=daily&t=1761164814710" alt="Fish&#0032;Audio&#0032;S1 - Expressive&#0032;Voice&#0032;Cloning&#0032;and&#0032;Text&#0045;to&#0045;Speech | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a>
<a href="https://trendshift.io/repositories/7014" target="_blank">
<img src="https://trendshift.io/api/badge/repositories/7014" alt="fishaudio%2Ffish-speech | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/>
</a>
<br>
</div>
<br>
<div align="center">
<img src="https://count.getloli.com/get/@fish-speech?theme=asoul" /><br>
</div>
<br>
<div align="center">
<a target="_blank" href="https://discord.gg/Es5qTB9BcN">
<img alt="Discord" src="https://img.shields.io/discord/1214047546020728892?color=%23738ADB&label=Discord&logo=discord&logoColor=white&style=flat-square"/>
</a>
<a target="_blank" href="https://hub.docker.com/r/fishaudio/fish-speech">
<img alt="Docker" src="https://img.shields.io/docker/pulls/fishaudio/fish-speech?style=flat-square&logo=docker"/>
</a>
<a target="_blank" href="https://pd.qq.com/s/bwxia254o">
<img alt="QQ Channel" src="https://img.shields.io/badge/QQ-blue?logo=tencentqq">
</a>
</div>
<div align="center">
<a target="_blank" href="https://huggingface.co/fishaudio/s2-pro">
<img alt="HuggingFace Model" src="https://img.shields.io/badge/๐Ÿค—%20-models-orange"/>
</a>
<a target="_blank" href="https://fish.audio/blog/fish-audio-open-sources-s2/">
<img alt="Fish Audio Blog" src="https://img.shields.io/badge/Blog-Fish_Audio_S2-1f7a8c?style=flat-square&logo=readme&logoColor=white"/>
</a>
<a target="_blank" href="https://arxiv.org/abs/2603.08823">
<img alt="Paper | Technical Report" src="https://img.shields.io/badge/Paper-Technical_Report-b31b1b?style=flat-square"/>
</a>
</div>
> [!IMPORTANT]
> **๋ผ์ด์„ ์Šค ๊ณ ์ง€**
> ์ด ์ฝ”๋“œ๋ฒ ์ด์Šค ๋ฐ ๊ด€๋ จ ๋ชจ๋ธ ๊ฐ€์ค‘์น˜๋Š” **[FISH AUDIO RESEARCH LICENSE](../LICENSE)** ์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ [LICENSE](../LICENSE)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
> [!WARNING]
> **๋ฒ•์  ๋ฉด์ฑ… ์กฐํ•ญ**
> ๋‹น์‚ฌ๋Š” ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ๋ถˆ๋ฒ•์ ์ธ ์‚ฌ์šฉ์— ๋Œ€ํ•ด ์–ด๋– ํ•œ ์ฑ…์ž„๋„ ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ง€์—ญ์˜ DMCA ๋ฐ ๊ธฐํƒ€ ๊ด€๋ จ ๋ฒ•๋ฅ ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
## ๋น ๋ฅธ ์‹œ์ž‘
### ๋ฌธ์„œ ์ž…๊ตฌ
Fish Audio S2์˜ ๊ณต์‹ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. ์ง€์นจ์— ๋”ฐ๋ผ ์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค.
- [์„ค์น˜](https://speech.fish.audio/ko/install/)
- [๋ช…๋ น์ค„ ์ถ”๋ก ](https://speech.fish.audio/ko/inference/)
- [WebUI ์ถ”๋ก ](https://speech.fish.audio/ko/inference/)
- [์„œ๋ฒ„ ์ถ”๋ก ](https://speech.fish.audio/ko/server/)
- [Docker ๋ฐฐํฌ](https://speech.fish.audio/ko/install/)
> [!IMPORTANT]
> **SGLang ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด [SGLang-Omni README](https://github.com/sgl-project/sglang-omni/blob/main/sglang_omni/models/fishaudio_s2_pro/README.md)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.**
>
> **vLLM Omni ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด [vLLM-Omni Fish Speech S2 Pro Recipe](https://github.com/vllm-project/vllm-omni/blob/main/recipes/fishaudio/Fish-Speech-S2-Pro.md)์™€ [์‚ฌ์šฉ์ž ๊ฐ€์ด๋“œ](https://github.com/vllm-project/vllm-omni/blob/main/docs/user_guide/examples/online_serving/text_to_speech.md#fish-speech-s2-pro)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.**
### LLM Agent ๊ฐ€์ด๋“œ
```
๋จผ์ € https://speech.fish.audio/ko/install/ ์„ ์ฝ๊ณ  ๋ฌธ์„œ์— ๋”ฐ๋ผ Fish Audio S2๋ฅผ ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑํ•˜์‹ญ์‹œ์˜ค.
```
## Fish Audio S2 Pro
**์Œ์„ฑ ์ƒ์„ฑ์˜ ๊ฒฝ๊ณ„๋ฅผ ์žฌ์ •์˜ํ•˜๋Š” ์—…๊ณ„ ์ตœ๊ณ ์˜ ๋‹ค๊ตญ์–ด ํ…์ŠคํŠธ ์Œ์„ฑ ๋ณ€ํ™˜(TTS) ์‹œ์Šคํ…œ.**
Fish Audio S2 Pro๋Š” [Fish Audio](https://fish.audio/)์—์„œ ๊ฐœ๋ฐœํ•œ ์ตœ์ฒจ๋‹จ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ์ „ ์„ธ๊ณ„ **80๊ฐœ ์ด์ƒ์˜ ์–ธ์–ด**๋ฅผ ์•„์šฐ๋ฅด๋Š” **1,000๋งŒ ์‹œ๊ฐ„** ์ด์ƒ์˜ ๋ฐฉ๋Œ€ํ•œ ์˜ค๋””์˜ค ๋ฐ์ดํ„ฐ๋กœ ํ•™์Šต๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜์‹ ์ ์ธ **์ด์ค‘ ์ž๊ธฐํšŒ๊ท€(Dual-AR)** ์•„ํ‚คํ…์ฒ˜์™€ ๊ฐ•ํ™” ํ•™์Šต(RL) ์ •๋ ฌ ๊ธฐ์ˆ ์„ ํ†ตํ•ด S2 Pro๋Š” ๊ทน๋„๋กœ ์ž์—ฐ์Šค๋Ÿฝ๊ณ  ์‚ฌ์‹ค์ ์ด๋ฉฐ ๊ฐ์ •์ด ํ’๋ถ€ํ•œ ์Œ์„ฑ์„ ์ƒ์„ฑํ•˜๋ฉฐ, ์˜คํ”ˆ ์†Œ์Šค์™€ ํดใƒญใƒผใ‚บ๋“œ ์†Œ์Šค ๊ฒฝ์Ÿ ๋ชจ๋‘์—์„œ ์„ ๋‘๋ฅผ ๋‹ฌ๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
S2 Pro์˜ ํ•ต์‹ฌ ๊ฐ•์ ์€ ์ž์—ฐ์–ด ํƒœ๊ทธ(์˜ˆ: `[whisper]`, `[excited]`, `[angry]`)๋ฅผ ํ†ตํ•ด ์šด์œจ๊ณผ ๊ฐ์ •์„ **ํ•˜์œ„ ๋‹จ์–ด ์ˆ˜์ค€(Sub-word Level)**์—์„œ ๋งค์šฐ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ธ๋ผ์ธ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‹ค์ค‘ ํ™”์ž ์ƒ์„ฑ ๋ฐ ๊ธด ์ปจํ…์ŠคํŠธ์˜ ๋‹ค์ค‘ ํ„ด ๋Œ€ํ™” ์ƒ์„ฑ์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
์ง€๊ธˆ ๋ฐ”๋กœ [Fish Audio ๊ณต์‹ ์›น์‚ฌ์ดํŠธ](https://fish.audio/)์—์„œ ์˜จ๋ผ์ธ ๋ฐ๋ชจ๋ฅผ ์ฒดํ—˜ํ•˜๊ฑฐ๋‚˜, [๊ธฐ์ˆ  ๋ณด๊ณ ์„œ](https://arxiv.org/abs/2603.08823) ๋ฐ [๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ](https://fish.audio/blog/fish-audio-open-sources-s2/)์„ ํ†ตํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์‹ญ์‹œ์˜ค.
### ๋ชจ๋ธ ๋ณ€์ฒด
| ๋ชจ๋ธ | ํฌ๊ธฐ | ๊ฐ€์šฉ์„ฑ | ์„ค๋ช… |
|------|------|-------------|-------------|
| S2-Pro | 4B ํŒŒ๋ผ๋ฏธํ„ฐ | [HuggingFace](https://huggingface.co/fishaudio/s2-pro) | ์ตœ๊ณ ์˜ ํ’ˆ์งˆ๊ณผ ์•ˆ์ •์„ฑ์„ ๊ฐ–์ถ˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ํ”Œ๋ž˜๊ทธ์‹ญ ๋ชจ๋ธ |
๋ชจ๋ธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ [๊ธฐ์ˆ  ๋ณด๊ณ ์„œ](https://arxiv.org/abs/2411.01156)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
## ๋ฒค์น˜๋งˆํฌ ๊ฒฐ๊ณผ
| ๋ฒค์น˜๋งˆํฌ | Fish Audio S2 |
|------|------|
| Seed-TTS Eval โ€” WER(์ค‘๊ตญ์–ด) | **0.54%** (์ „์ฒด ์ตœ๊ณ ) |
| Seed-TTS Eval โ€” WER(์˜์–ด) | **0.99%** (์ „์ฒด ์ตœ๊ณ ) |
| Audio Turing Test (์ง€์นจ ํฌํ•จ) | **0.515** ํ›„ํ—˜ ํ‰๊ท  |
| EmergentTTS-Eval โ€” ์Šน๋ฅ  | **81.88%** (์ „์ฒด ์ตœ๊ณ ) |
| Fish Instruction Benchmark โ€” TAR | **93.3%** |
| Fish Instruction Benchmark โ€” ํ’ˆ์งˆ | **4.51 / 5.0** |
| ๋‹ค๊ตญ์–ด (MiniMax Testset) โ€” ์ตœ๊ณ  WER | **24๊ฐœ ์–ธ์–ด ์ค‘ 11๊ฐœ** |
| ๋‹ค๊ตญ์–ด (MiniMax Testset) โ€” ์ตœ๊ณ  SIM | **24๊ฐœ ์–ธ์–ด ์ค‘ 17๊ฐœ** |
Seed-TTS Eval์—์„œ S2๋Š” ํดใƒญใƒผใ‚บ๋“œ ์†Œ์Šค ์‹œ์Šคํ…œ์„ ํฌํ•จํ•œ ๋ชจ๋“  ํ‰๊ฐ€ ๋ชจ๋ธ ์ค‘ ๊ฐ€์žฅ ๋‚ฎ์€ WER์„ ๋‹ฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค: Qwen3-TTS (0.77/1.24), MiniMax Speech-02 (0.99/1.90), Seed-TTS (1.12/2.25). Audio Turing Test์—์„œ S2์˜ 0.515๋Š” Seed-TTS (0.417) ๋Œ€๋น„ 24%, MiniMax-Speech (0.387) ๋Œ€๋น„ 33% ํ–ฅ์ƒ๋œ ์ˆ˜์น˜์ž…๋‹ˆ๋‹ค. EmergentTTS-Eval์—์„œ S2๋Š” ๋ถ€์ฐจ ์–ธ์–ดํ•™(91.61% ์Šน๋ฅ ), ์˜๋ฌธ๋ฌธ(84.41%), ๊ตฌ๋ฌธ ๋ณต์žก์„ฑ(83.39%) ๋“ฑ์˜ ์ธก๋ฉด์—์„œ ํŠนํžˆ ๋‘๋“œ๋Ÿฌ์ง„ ์„ฑ๊ณผ๋ฅผ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.
## ํ•˜์ด๋ผ์ดํŠธ
<img src="./assets/totalability.png" width=200%>
### ์ž์—ฐ์–ด๋ฅผ ํ†ตํ•œ ์ดˆ๋ฏธ์„ธ ์ธ๋ผ์ธ ์ œ์–ด
S2 Pro๋Š” ์Œ์„ฑ์— ์ „๋ก€ ์—†๋Š” "์˜ํ˜ผ"์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ `[tag]` ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…์ŠคํŠธ์˜ ์–ด๋А ์œ„์น˜์—๋‚˜ ๊ฐ์ • ์ง€์นจ์„ ์ •ํ™•ํ•˜๊ฒŒ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
- **15,000๊ฐœ ์ด์ƒ์˜ ๊ณ ์œ  ํƒœ๊ทธ ์ง€์›**: ๊ณ ์ •๋œ ์‚ฌ์ „ ์„ค์ •์— ๊ตญํ•œ๋˜์ง€ ์•Š๊ณ  **์ž์œ  ํ˜•์‹์˜ ํ…์ŠคํŠธ ์„ค๋ช…**์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. `[whisper in small voice]` (์ž‘์€ ๋ชฉ์†Œ๋ฆฌ๋กœ ์†์‚ญ์ž„), `[professional broadcast tone]` (์ „๋ฌธ ๋ฐฉ์†ก ํ†ค), `[pitch up]` (์Œ๋†’์ด ๋†’์ž„) ๋“ฑ์„ ์‹œ๋„ํ•ด ๋ณด์‹ญ์‹œ์˜ค.
- **ํ’๋ถ€ํ•œ ๊ฐ์ • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ**:
`[pause]` `[emphasis]` `[laughing]` `[inhale]` `[chuckle]` `[tsk]` `[singing]` `[excited]` `[laughing tone]` `[interrupting]` `[chuckling]` `[excited tone]` `[volume up]` `[echo]` `[angry]` `[low volume]` `[sigh]` `[low voice]` `[whisper]` `[screaming]` `[shouting]` `[loud]` `[surprised]` `[short pause]` `[exhale]` `[delight]` `[panting]` `[audience laughter]` `[with strong accent]` `[volume down]` `[clearing throat]` `[sad]` `[moaning]` `[shocked]`
### ํ˜์‹ ์ ์ธ ์ด์ค‘ ์ž๊ธฐํšŒ๊ท€ (Dual-Autoregressive) ์•„ํ‚คํ…์ฒ˜
S2 Pro๋Š” Decoder-only Transformer์™€ RVQ ์˜ค๋””์˜ค ์ฝ”๋ฑ(10๊ฐœ ์ฝ”๋“œ๋ถ, ์•ฝ 21Hz ํ”„๋ ˆ์ž„ ์†๋„)์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋งˆ์Šคํ„ฐ-์Šฌ๋ ˆ์ด๋ธŒ ๋ฐฉ์‹์˜ Dual-AR ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ฑ„ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.
- **Slow AR (4B ํŒŒ๋ผ๋ฏธํ„ฐ)**: ์‹œ๊ฐ„ ์ถ•์„ ๋”ฐ๋ผ ์ž‘๋™ํ•˜๋ฉฐ ํ•ต์‹ฌ ์˜๋ฏธ ์ฝ”๋“œ๋ถ์„ ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค.
- **Fast AR (400M ํŒŒ๋ผ๋ฏธํ„ฐ)**: ๊ฐ ํƒ€์ž„์Šคํ…์—์„œ ๋‚˜๋จธ์ง€ 9๊ฐœ์˜ ์ž”์ฐจ ์ฝ”๋“œ๋ถ์„ ์ƒ์„ฑํ•˜์—ฌ ๊ทน๋„๋กœ ์ •๊ตํ•œ ์Œํ–ฅ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๋น„๋Œ€์นญ ์„ค๊ณ„๋Š” ์˜ค๋””์˜ค์˜ ์ตœ๊ณ  ์ถฉ์‹ค๋„๋ฅผ ๋ณด์žฅํ•˜๋Š” ๋™์‹œ์— ์ถ”๋ก  ์†๋„๋ฅผ ๋Œ€ํญ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
### ๊ฐ•ํ™” ํ•™์Šต (RL) ์ •๋ ฌ
S2 Pro๋Š” ์‚ฌํ›„ ํ•™์Šต ์ •๋ ฌ์„ ์œ„ํ•ด **Group Relative Policy Optimization (GRPO)** ๊ธฐ์ˆ ์„ ์ฑ„ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์ •์ œ ๋ฐ ์ฃผ์„ ์ฒ˜๋ฆฌ์— ์‚ฌ์šฉ๋œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ชจ๋ธ ์„ธํŠธ๋ฅผ ๋ณด์ƒ ๋ชจ๋ธ(Reward Model)๋กœ ์ง์ ‘ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์‚ฌ์ „ ํ•™์Šต ๋ฐ์ดํ„ฐ ๋ถ„ํฌ์™€ ์‚ฌํ›„ ํ•™์Šต ๋ชฉํ‘œ ๊ฐ„์˜ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
- **๋‹ค์ฐจ์› ๋ณด์ƒ ์‹ ํ˜ธ**: ์˜๋ฏธ ์ฒด๊ณ„์˜ ์ •ํ™•์„ฑ, ์ง€์นจ ์ค€์ˆ˜ ๋Šฅ๋ ฅ, ์Œํ–ฅ ์„ ํ˜ธ๋„ ์ ์ˆ˜ ๋ฐ ์Œ์ƒ‰ ์œ ์‚ฌ์„ฑ์„ ์ข…ํ•ฉ์ ์œผ๋กœ ํ‰๊ฐ€ํ•˜์—ฌ ์ƒ์„ฑ๋œ ์Œ์„ฑ์˜ ๋งค์ดˆ๊ฐ€ ์ธ๊ฐ„์˜ ์ง๊ด€์— ๋ถ€ํ•ฉํ•˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
### SGLang ๊ธฐ๋ฐ˜์˜ ๊ทนํ•œ ์ŠคํŠธ๋ฆฌ๋ฐ ์ถ”๋ก  ์„ฑ๋Šฅ
Dual-AR ์•„ํ‚คํ…์ฒ˜๋Š” ํ‘œ์ค€ LLM ๊ตฌ์กฐ์™€ ๋™ํ˜•์ด๋ฏ€๋กœ S2 Pro๋Š” Continuous Batching, Paged KV Cache, CUDA Graph ๋ฐ RadixAttention ๊ธฐ๋ฐ˜ Prefix Caching์„ ํฌํ•จํ•œ SGLang์˜ ๋ชจ๋“  ์ถ”๋ก  ๊ฐ€์† ๊ธฐ๋Šฅ์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
**๋‹จ์ผ NVIDIA H200 GPU ์„ฑ๋Šฅ ์ง€ํ‘œ:**
- **์‹ค์‹œ๊ฐ„ ๊ณ„์ˆ˜ (RTF)**: 0.195
- **์ฒซ ์Œ์„ฑ ์ง€์—ฐ (TTFA)**: ์•ฝ 100 ms
- **์ดˆ๊ณ ์† ์ฒ˜๋ฆฌ๋Ÿ‰**: RTF < 0.5 ์œ ์ง€ ์‹œ ์ฒ˜๋ฆฌ๋Ÿ‰ 3,000+ acoustic tokens/s ๋‹ฌ์„ฑ
### ๊ฐ•๋ ฅํ•œ ๋‹ค๊ตญ์–ด ์ง€์›
S2 Pro๋Š” ์Œ์†Œ๋‚˜ ํŠน์ • ์–ธ์–ด ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š” ์—†๋Š” ๊ณ ํ’ˆ์งˆ ํ•ฉ์„ฑ์„ 80๊ฐœ ์ด์ƒ์˜ ์–ธ์–ด์—์„œ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
- **1๊ณ„์ธต (Tier 1)**: ์ผ๋ณธ์–ด (ja), ์˜์–ด (en), ์ค‘๊ตญ์–ด (zh)
- **2๊ณ„์ธต (Tier 2)**: ํ•œ๊ตญ์–ด (ko), ์ŠคํŽ˜์ธ์–ด (es), ํฌ๋ฅดํˆฌ๊ฐˆ์–ด (pt), ์•„๋ž์–ด (ar), ๋Ÿฌ์‹œ์•„์–ด (ru), ํ”„๋ž‘์Šค์–ด (fr), ๋…์ผ์–ด (de)
- **๊ธ€๋กœ๋ฒŒ ์ปค๋ฒ„๋ฆฌ์ง€**: sv, it, tr, no, nl, cy, eu, ca, da, gl, ta, hu, fi, pl, et, hi, la, ur, th, vi, jw, bn, yo, xsl, cs, sw, nn, he, ms, uk, id, kk, bg, lv, my, tl, sk, ne, fa, af, el, bo, hr, ro, sn, mi, yi, am, be, km, is, az, sd, br, sq, ps, mn, ht, ml, sr, sa, te, ka, bs, pa, lt, kn, si, hy, mr, as, gu, fo ๋“ฑ.
### ๋„ค์ดํ‹ฐ๋ธŒ ๋‹ค์ค‘ ํ™”์ž ์ƒ์„ฑ
<img src="./assets/chattemplate.png" width=200%>
Fish Audio S2๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์—ฌ๋Ÿฌ ํ™”์ž๊ฐ€ ํฌํ•จ๋œ ์ฐธ์กฐ ์˜ค๋””์˜ค๋ฅผ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ชจ๋ธ์€ `<|speaker:i|>` ํ† ํฐ์„ ํ†ตํ•ด ๊ฐ ํ™”์ž์˜ ํŠน์ง•์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ ํ™”์ž ID ํ† ํฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ธ์˜ ํ‘œํ˜„์„ ์ œ์–ดํ•จ์œผ๋กœ์จ ํ•œ ๋ฒˆ์˜ ์ƒ์„ฑ์— ์—ฌ๋Ÿฌ ํ™”์ž๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ์ด์ƒ ํ™”์ž๋งˆ๋‹ค ๋ณ„๋„์˜ ์ฐธ์กฐ ์˜ค๋””์˜ค๋ฅผ ์—…๋กœ๋“œํ•˜๊ณ  ์Œ์„ฑ์„ ์ƒ์„ฑํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
### ๋‹ค์ค‘ ํ„ด ๋Œ€ํ™” ์ƒ์„ฑ
๋ชจ๋ธ ์ปจํ…์ŠคํŠธ ํ™•์žฅ์— ํž˜์ž…์–ด ์ด์ œ ์ด์ „ ์ •๋ณด์˜ ๋„์›€์„ ๋ฐ›์•„ ํ›„์† ์ƒ์„ฑ ๋‚ด์šฉ์˜ ํ‘œํ˜„๋ ฅ์„ ๋†’์ด๊ณ  ์ฝ˜ํ…์ธ ์˜ ์ž์—ฐ์Šค๋Ÿฌ์›€์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
### ๊ณ ์† ์Œ์„ฑ ๋ณต์ œ
Fish Audio S2๋Š” ์งง์€ ์ฐธ์กฐ ์ƒ˜ํ”Œ(๋ณดํ†ต 10-30์ดˆ)์„ ์‚ฌ์šฉํ•œ ์ •ํ™•ํ•œ ์Œ์„ฑ ๋ณต์ œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ์€ ์Œ์ƒ‰, ๋งํ•˜๊ธฐ ์Šคํƒ€์ผ ๋ฐ ๊ฐ์ •์  ๊ฒฝํ–ฅ์„ ํฌ์ฐฉํ•˜์—ฌ ์ถ”๊ฐ€์ ์ธ ๋ฏธ์„ธ ์กฐ์ • ์—†์ด๋„ ์‚ฌ์‹ค์ ์ด๊ณ  ์ผ๊ด€๋œ ๋ณต์ œ ์Œ์„ฑ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
SGLang ์„œ๋ฒ„ ์‚ฌ์šฉ์— ๋Œ€ํ•ด์„œ๋Š” [SGLang-Omni README](https://github.com/sgl-project/sglang-omni/blob/main/sglang_omni/models/fishaudio_s2_pro/README.md)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
---
## ๊ฐ์‚ฌ์˜ ๋ง
- [VITS2 (daniilrobnikov)](https://github.com/daniilrobnikov/vits2)
- [Bert-VITS2](https://github.com/fishaudio/Bert-VITS2)
- [GPT VITS](https://github.com/innnky/gpt-vits)
- [MQTTS](https://github.com/b04901014/MQTTS)
- [GPT Fast](https://github.com/pytorch-labs/gpt-fast)
- [GPT-SoVITS](https://github.com/RVC-Boss/GPT-SoVITS)
- [Qwen3](https://github.com/QwenLM/Qwen3)
## ๊ธฐ์ˆ  ๋ณด๊ณ ์„œ
```bibtex
@misc{fish-speech-v1.4,
title={Fish-Speech: Leveraging Large Language Models for Advanced Multilingual Text-to-Speech Synthesis},
author={Shijia Liao and Yuxuan Wang and Tianyu Li and Yifan Cheng and Ruoyi Zhang and Rongzhi Zhou and Yijin Xing},
year={2024},
eprint={2411.01156},
archivePrefix={arXiv},
primaryClass={cs.SD},
url={https://arxiv.org/abs/2411.01156},
}
@misc{liao2026fishaudios2technical,
title={Fish Audio S2 Technical Report},
author={Shijia Liao and Yuxuan Wang and Songting Liu and Yifan Cheng and Ruoyi Zhang and Tianyu Li and Shidong Li and Yisheng Zheng and Xingwei Liu and Qingzheng Wang and Zhizhuo Zhou and Jiahua Liu and Xin Chen and Dawei Han},
year={2026},
eprint={2603.08823},
archivePrefix={arXiv},
primaryClass={cs.SD},
url={https://arxiv.org/abs/2603.08823},
}
```