F5-TTS și Kokoro: sinteză vocală locală în AI Audio & Video

Sinteză Vocală & Speech-to-Text F5-TTS v1 Base (martie 2025), Kokoro-82M v1.0 (ianuarie 2025)

F5-TTS clonează o voce dintr-o mostră scurtă și transcrierea ei; Kokoro-82M este un model TTS mic, cu licență Apache, fără clonare și fără voci românești.

Flux de lucru & invocare
f5-tts_infer-cli --model F5TTS_v1_Base --ref_audio ref.wav --ref_text "..." --gen_text "..."

F5-TTS este un Diffusion Transformer cu ConvNeXt V2, antrenat cu flow matching. Primește o mostră audio de referință, transcrierea ei și textul de generat, apoi produce textul nou cu vocea din mostră. Modelul F5-TTS v1 Base a apărut pe 12 martie 2025. Codul este MIT, dar modelele preantrenate sunt sub licența CC-BY-NC, din cauza setului de date Emilia, deci nu se folosesc comercial.

Kokoro-82M este un model TTS cu 82 de milioane de parametri și greutăți sub licența Apache. Versiunea v1.0 (27 ianuarie 2025) are voci pentru engleză americană și britanică, japoneză, chineză mandarină, spaniolă, franceză, hindi, italiană și portugheză braziliană. Nu face clonare vocală și nu are voci românești.

Ambele rulează local, din Python sau din linia de comandă. Modelele de bază F5-TTS sunt antrenate pe setul Emilia în chineză și engleză (ZH-EN), iar Kokoro nu are română; pentru texte în română rezultatele trebuie testate înainte de orice utilizare.

Concepte cheie și caracteristici

Concept / Parametru Descriere practică
--ref_audio Mostra de referință cu vocea de imitat.
--ref_text Transcrierea mostrei; dacă o lași goală, un model ASR o transcrie (folosește memorie GPU în plus).
--gen_text / --gen_file Textul de generat, direct sau dintr-un fișier.
--speed Viteza audio-ului generat.
--output_dir / --output_file Unde se salvează rezultatul; implicit infer_cli_<dată>.wav.
Kokoro KPipeline KPipeline(lang_code='a') și o voce, de exemplu af_heart; ieșire la 24 kHz.

Exemple practice și scenarii reale

Exemplul 1: Clonare cu F5-TTS din terminal

f5-tts_infer-cli --model F5TTS_v1_Base \
  --ref_audio "voce_referinta.wav" \
  --ref_text "Transcrierea exactă a mostrei de referință." \
  --gen_text "Textul nou pe care vrei să îl generezi." \
  --output_dir rezultate

Exemplul 2: Kokoro din Python

from kokoro import KPipeline
import soundfile as sf

pipeline = KPipeline(lang_code='a')
for i, (gs, ps, audio) in enumerate(pipeline('Hello from Kokoro.', voice='af_heart')):
    sf.write(f'{i}.wav', audio, 24000)

Greșeli frecvente și capcane

  • Folosești F5-TTS comercial. Modelele preantrenate sunt CC-BY-NC.
  • Dai o transcriere inexactă în --ref_text. Modelul aliniază textul cu audio-ul de referință; diferențele strică rezultatul.
  • Aștepți clonare sau voci românești de la Kokoro. Modelul are doar vocile predefinite, în limbile listate.

Noțiuni și module înrudite