Automatische vertaling · Engels origineel
Fish Audio S2 Pro / Drama 3
Deze eerste partij Soniqo paginadocumenten Fish Audio S2 Pro van de lokale speech-swift / speech-core implementatie. Hugging Face zijn hieronder gekoppeld na de integratienoten.
Landingskaarten en docs menu's wijzen nu eerst hier; bronmodel en bundel links blijven beschikbaar van deze pagina.
Bij een Glance
| Model | Fish Audio S2 Pro |
|---|---|
| Rol | Experimenteel meertalig TTS met raw-reference klonen en stijlmarkeringen |
| Backend | MLX fp16 |
| Uitvoer | 44,1 kHz mono PCM |
| Talen | Meertalig |
| Licentie | Onderzoek / niet-commerciële bundel; verkrijg Fish Audio licentie voor commerciële blootstelling |
| Status | Programmatische runtime; CLI-integratie is nog in behandeling |
| Bron | Fish Audio S2 Pro |
| Swift product | FishAudioTTS |
| CLI / looptijd | Programmatische runtime vandaag; geplande spraak spreekt --engine visaudio |
Gebruik
Het onderstaande knipsel spiegelt de huidige speech-swift API of commando blootgesteld door de repo.
import FishAudioTTS
let model = try await FishAudioTTSModel.fromPretrained()
let pcm = try await model.generate(
text: "आज मैं बहुत खुश हूँ। [excited]",
referenceAudioURL: URL(fileURLWithPath: "reference.wav"),
referenceText: "नमस्ते, यह संदर्भ आवाज है।"
)
Modellinks
Opmerkingen over de uitvoering
- Download maakt gebruik van de nieuwere expliciete byte-gewogen bestand manifest, dus vooruitgang weerspiegelt echte overgedragen bytes over de multi-GB scherven.
- Controlemarkeringen omvatten [pauze], [nadruk], [lachend], [opgewonden], [angry], [fluisterend],, [schreeuwend], (verrast], en [sad].
- De runtime genereert 10 DAC codebook rijen, dan decodeert gegenereerde of referentie-geconditioneerde codeboeken via FishAudioCodec.
- De huidige tests hebben betrekking op bundellading, codeboekgeneratie, codec-codering/decodering, Hindi-klonen en ASR ronde-trippoorten.
Fish Audio Drama 3
Experimentele native MLX ondersteuning voor Drama 3 is beschikbaar via FishAudioDrama3Model. Een 35B hybride-aandacht MoE backbone, temporal audio tower en Fish DAC codec produceren 44,1 kHz mono audio. De 4-bits controlepunt doorgegeven golfvorm en onafhankelijke ASR controles voor tekst alleen genereren, referentie klonen en CLI output op Apple M5 Pro. 8-bit en BF16 blijven ongeldig.
De standaard balanced modus trimt inactief MLX buffers boven 512 MiB op fasegrenzen. De gedeelde model-levensduur cache cap is ook van toepassing, waarbij lagere beller budgetten behouden blijven; noch de controle beperkt het totale procesgeheugen. --fish-drama3-memory-mode unrestricted of memoryOptions: .unrestricted laadt gewichten gretig over en slaat fase-trimmen over, met behoud van de levensduur cap.
Tekst-only generatie stelt 794.4 MiB referentie-encodergewichten uit. De eerste referentie-encoding ladingen en behoudt ze, dus houd codec.safetensors tot dan beschikbaar. Voorgecomponeerde referentiecodes hebben de encoder niet nodig.
Voice cloning vereist een referentie clip en de exacte transcriptie. Speaker tags 0Z15 en inline emoties worden ondersteund. PCM streaming is beschikbaar via generateStreaming, generateStream en --stream. De standaard brok bevat 3 codec frames, over 139 ms audio. Automatische lang-tekst chunking en gestreamde tekst invoer blijven niet beschikbaar. Het bereiken van de frame limiet gooit een fout.
speech speak "Hello from Drama 3." --engine fish-drama3 --fish-drama3-bundle-dir /path/to/bundle -o hello.wav
speech speak "Hello from Drama 3." --engine fish-drama3 --stream --fish-drama3-chunk-frames 3 -o streamed.wav
speech speak "Hello in the reference voice." --engine fish-drama3 --voice-sample reference.wav --fish-drama3-reference-text "The exact reference transcript." --seed 42 -o cloned.wavimport FishAudioTTS
let model = try await FishAudioDrama3Model.fromBundle(bundleURL, memoryOptions: .balanced)
let pcm = try await model.generate(text: "Hello from Drama 3.", options: .init(seed: 42))
try await model.generateStreaming(text: "Hello from Drama 3.", options: .init(seed: 42, streamingChunkFrames: 3)) { chunk in
print(chunk.frameIndex, chunk.samples.count, chunk.isFinal)
}| Optie | Standaard |
|---|---|
--fish-drama3-model-id | mlx-community/fish-audio-drama-3-4bit |
--fish-drama3-bundle-dir | — |
--fish-drama3-reference-text | — |
--fish-drama3-max-frames | 2048 |
--fish-drama3-temperature | 1 |
--fish-drama3-top-k | 30 |
--fish-drama3-top-p | 0.9 |
--voice-sample | — |
--seed | 0 |
--stream | false |
--fish-drama3-chunk-frames | 3 |
--fish-drama3-memory-mode | balanced |
Gebouwd met Fish Audio. Bundels behouden de Community License and Notice.
4-bits benchmark
| Modus | Eerste PCM, ms | Warme synthese, s | Audio. | RTF | Piek RSS, GiB | Piek fysieke voetafdruk, GiB |
|---|---|---|---|---|---|---|
| Alleen tekst / gebufferd | — | 2.306 | 3.483 | 0.662 | 14.457 | 24.220 |
| Referentie klonen / gebufferd | — | 2.681 | 3.204 | 0.837 | 15.064 | 24.789 |
| Alleen tekst / Streaming | 275.3 | 2.529 | 3.483 | 0.726 | 15.571 | 22.321 |
| Referentie klonen / Streaming | 730.2 | 2.860 | 3.204 | 0.893 | 14.676 | 23.885 |
Apple M5 Pro, 48 GiB, release build, 2026-10-17. Mediaan van drie warme oproepen, het meten van volledige golfvormgeneratie. Modelloading en WAV file I/O zijn uitgesloten; klonen omvat referentiecodering bij elke oproep. RTF = synthesetijd / audioduur. Onafhankelijk ASR: 16/16 clips, nul woordfouten. Gebruik fysieke voetafdruk voor unified-memory sizing. Eerste PCM is de eerste niet-lege streaming callback; gebufferde rijen hebben geen brok callback. De standaard brok bevat 139,3 ms audio. De hoorbare weergave werd niet gemeten.