Bulgarian Ref-Audio KaniTTS Final Package
Това е пакетираният финален ref-audio модел, обучен за българска реч с 5-секунден референтен аудио prompt вместо speaker ID токени.
Какво има вътре
models/kani-tts-400m-bg-refaudio5s-final-ckpt30000/- финалният модел за inference от
checkpoint-30000
- финалният модел за inference от
inference_refaudio.py- основният скрипт за синтез с референтно WAV аудио
inference.py- helper код за декодиране на audio token-ите обратно до WAV
config_loader.py- loader за локалните YAML конфигурации
config/model_config.yaml- token и codec конфигурация
config/inference_config.yaml- базови inference настройки
config/full_finetune_refaudio_1536_allhours.yaml- тренировъчната рецепта, използвана за този модел
full_finetune.py,build_cache.py- копия на training скриптовете за справка и повторяемост
Изисквания
Моделът е тестван в среда с PyTorch, Transformers, NeMo AudioCodec, SciPy и SoundFile.
Ако искаш отделна среда:
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Бърз старт
От директорията на пакета:
python inference_refaudio.py \
--ref /path/to/reference.wav \
--text "Рано сутрин градът е тих, а гласът трябва да звучи спокойно, ясно и естествено." \
--output demo_refaudio.wav
Демо
Към model repo-то е добавена и по-дълга демонстрация на възможностите на модела:
demos/Igrite_na_Vor_AudioScript_radio_play.wav
Това е озвучена радио пиеса, синтезирана с многоговорителен ref-audio pipeline и отделни reference WAV файлове за ролите.
Полезни аргументи
--ref- път до референтен WAV файл
--text- българският текст за синтез
--output- къде да се запише резултатът
--ref-seconds- колко секунди да се вземат от началото на референтния WAV, по подразбиране
5.0
- колко секунди да се вземат от началото на референтния WAV, по подразбиране
--temperature- sampling temperature, по подразбиране
0.5
- sampling temperature, по подразбиране
--top-p- nucleus sampling, по подразбиране
0.95
- nucleus sampling, по подразбиране
--repetition-penalty- наказание за повторения, по подразбиране
1.1
- наказание за повторения, по подразбиране
--max-new-tokens- максимален брой генерирани токени, по подразбиране
1400
- максимален брой генерирани токени, по подразбиране
Как работи conditioning-ът
Моделът очаква:
start_of_humanstart_of_speech + reference audio tokens + end_of_speech- текстовия prompt
end_of_human
След това моделът генерира:
start_of_aistart_of_speech- audio token-ите за целевия отговор
end_of_speech
inference_refaudio.py прави това автоматично.
Бележки
- Референтният WAV може да е с друг sample rate; скриптът го ресемплира до
22050 Hz. - Ако WAV файлът е stereo, автоматично се смесва до mono.
- За най-стабилни резултати използвай чист референтен сегмент с един говорител.
- В пакета е сложен inference-ready модел. Не са копирани optimizer и scheduler файловете, защото за inference не трябват.
Източник на модела
- Hugging Face repo:
beleata74/kani-tts-400m-bg-voice-clone-ref5s - База:
nineninesix/kani-tts-400m-0.3-pt - Финален пакетен модел:
checkpoint-30000 - Conditioning:
reference_audio - Контекст:
1536 - Референтен audio prompt:
5s
vLLM сървър
Aдаптираният FastAPI/vLLM server код за този модел е публикуван отделно като downloadable repo и по подразбиране очаква точно този model repo:
beleata74/kani-tts-bg-refaudio-server-code
Model tree for beleata74/kani-tts-400m-bg-voice-clone-ref5s
Base model
nineninesix/kani-tts-400m-0.3-pt