Traduzione automatica · Originale inglese
Fish Audio S2 Pro / Dramma 3
Questo primo partito Soniqo documenti pagina Fish Audio S2 Pro del locale speech-swift / speech-core implementazione. Hugging Face i fasci sono collegati di seguito dopo le note di integrazione.
Le carte di atterraggio e i menu Docs ora puntano qui prima; il modello di sorgente e i link di fascio rimangono disponibili da questa pagina.
In un solco
| Modello | Fish Audio S2 Pro |
|---|---|
| Role | Poliglotta sperimentale TTS con clonazione e marcatori di stile di riferimento grezzo |
| Indietro | MLX fp16 |
| Produzione | 44.1 kHz mono PCM |
| Lingue | Poliglotta |
| Licenza | Ricerca/pacchetto non commerciale; ottenere Fish Audio licenza per l'esposizione commerciale |
| Stato | Tempo di esecuzione programmatico; l'integrazione CLI è ancora in sospeso |
| Fonte | Fish Audio S2 Pro |
| Prodotto Swift | FishAudioTTS |
| CLI / runtime | Tempo di esecuzione programmatico oggi; discorso programmato parla --engine fish-audio |
Uso
Lo snippet seguente rispecchia l'attuale speech-swift API o comando esposto dal repo.
import FishAudioTTS
let model = try await FishAudioTTSModel.fromPretrained()
let pcm = try await model.generate(
text: "आज मैं बहुत खुश हूँ। [excited]",
referenceAudioURL: URL(fileURLWithPath: "reference.wav"),
referenceText: "नमस्ते, यह संदर्भ आवाज है।"
)
Link di modello
Note di attuazione
- Download utilizza il più recente manifesto di file ponderato byte, così il progresso riflette i byte reali trasferiti attraverso i frammenti multi-GB.
- I marcatori di controllo includono [pausa], [enfasi], [ride], [eccitato], [angry], [whisper], [screaming], [shouting], [sopruso], e [sad].
- Il runtime genera 10 file di codebook DAC, poi decodifica generati o codebooks di riferimento condizionati attraverso FishAudioCodec.
- I test attuali coprono il caricamento del fascio, la generazione di codebook, codifica/decode del codec, clonazione di Hindi, e ASR
Fish Audio Dramma 3
Il supporto sperimentale MLX nativo per Drama 3 è disponibile attraverso FishAudioDrama3Model. 35B ibrido-attenzione MoE backbone, torre audio temporale e Fish DAC codec produrre 44.1 kHz mono audio. 4-bit checkpoint superato forma d'onda e indipendente ASR controlli per generazione, clonazione di riferimento e uscita CLI su Apple M5 Pro. 8-bit e BF16 rimane invariato.
Il valore predefinito balanced la modalità regola idle MLX buffers sopra 512 MiB ai confini della fase. Il modello condiviso-vita di cache cap si applica anche, mantenendo i budget più bassi del caller; né limita il controllo della memoria di processo totale. --fish-drama3-memory-mode unrestricted o memoryOptions: .unrestricted carica i pesi con ansia e salta la fase di rifilatura, mantenendo il tappo di vita.
Sfiori di generazione di testo 794.4 MiB di pesi di codifica di riferimento. Il primo riferimento codifica carichi e li mantiene, quindi mantenere codec.safetensors disponibili fino ad allora. I codici di riferimento precomputati non hanno bisogno dell'encoder.
Fornisci un testo completo di input. La clonazione vocale richiede una clip di riferimento e la sua trascrizione esatta. 0–15 e le emozioni in linea sono supportate. lo streaming PCM è disponibile attraverso generateStreaming, generateStream e --stream. Il blocco predefinito contiene cornici codec 3, circa ms 139 dell'audio. L'ingresso automatico di testo a lungo testo e a flusso rimane indisponibile. Raggiungere il limite della cornice lancia un errore.
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)
}| Opzione | Predefinito |
|---|---|
--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 |
Costruito con Fish Audio. Bundles conservano la Licenza Comunitaria e AVVISO.
benchmark a 4 bit
| Modalità | Primo PCM, ms | Calda sintesi, s | Audio, s | RTF | Picco RSS, GiB | Picco impronta fisica, GiB |
|---|---|---|---|---|---|---|
| Testo-solo / Buffered | — | 2.306 | 3.483 | 0.662 | 14.457 | 24.220 |
| Clonazione di riferimento / Buffered | — | 2.681 | 3.204 | 0.837 | 15.064 | 24.789 |
| Testo-solo / Streaming | 275.3 | 2.529 | 3.483 | 0.726 | 15.571 | 22.321 |
| Clonazione di riferimento / Streaming | 730.2 | 2.860 | 3.204 | 0.893 | 14.676 | 23.885 |
Apple M5 Pro, 48 GiB, rilascia la costruzione, 2026-10-17. Median di tre chiamate calde, misurando la generazione completa delle forme d'onda. WAV file I/O sono esclusi; clonazione include codifica di riferimento su ogni chiamata. RTF = tempo di sintesi / durata audio. Indipendente ASR: 16/16 Utilizzare l'impronta fisica per il dimensionamento unificato-memoria. Prima PCM è il primo callback in streaming non vuoto; le righe tamponate non hanno alcun richiamo a blocchi. 139.3 ms di audio. L'inizio della riproduzione udibile non è stato misurato.