gitextract__vtvi0gi/ ├── .dockerignore ├── .gitignore ├── CHANGELOG.md ├── CHANGELOG_zh.md ├── Dockerfile ├── README.md ├── README_zh.md ├── backend/ │ ├── .gitignore │ ├── README.md │ ├── __init__.py │ ├── api/ │ │ ├── __init__.py │ │ ├── datasets.py │ │ ├── dialog_sessions.py │ │ ├── generation.py │ │ ├── openai_compat.py │ │ ├── preset_voices.py │ │ ├── projects.py │ │ ├── quick_generate.py │ │ ├── speakers.py │ │ ├── tasks.py │ │ └── training.py │ ├── app.py │ ├── config.py │ ├── i18n/ │ │ ├── __init__.py │ │ ├── en.json │ │ └── zh.json │ ├── inference/ │ │ ├── inference.py │ │ └── quick_generate_inference.py │ ├── run.py │ ├── scripts/ │ │ ├── generate_cantonese_training_dataset.py │ │ ├── generate_mcv_cantonese_training_dataset.py │ │ ├── generate_training_dataset.py │ │ └── migrate_dataset_paths.py │ ├── services/ │ │ ├── __init__.py │ │ ├── dataset_service.py │ │ ├── dialog_session_service.py │ │ ├── openai_compat_service.py │ │ ├── preset_voice_service.py │ │ ├── project_service.py │ │ ├── quick_generate_service.py │ │ ├── speaker_service.py │ │ ├── training_service.py │ │ └── voice_gerneration_service.py │ ├── task_manager/ │ │ ├── inference_task.py │ │ ├── quick_generate_task.py │ │ ├── task.py │ │ └── training_task.py │ ├── training/ │ │ ├── engine.py │ │ └── state.py │ └── utils/ │ ├── __init__.py │ ├── dialog_validator.py │ ├── file_handler.py │ └── tensorboard_reader.py ├── compose.yml ├── config/ │ ├── __init__.py │ └── configuration_vibevoice.py ├── demo/ │ ├── README_AUDIO_DENOISE.md │ ├── audio_denoise_deepfilter.py │ ├── audio_denose.py │ ├── convert_model.py │ ├── list_modules.py │ ├── local_file_inference.py │ ├── train.py │ ├── verify_dataset.py │ ├── view_tensorfile.py │ └── vram_offload_animation.py ├── docs/ │ ├── APIs.md │ ├── DATASET_PATH_FIX.md │ ├── DOCKER_REBUILD.md │ ├── develop_thoughts.md │ ├── model_components_analysis.md │ ├── multi-generation-ui-design.md │ ├── offloading.md │ ├── openai-compatible-api.md │ ├── preset-voice-feature.md │ ├── processor.md │ ├── quick-generate-feature.md │ └── vibevoice_inference_architecture.md ├── frontend/ │ ├── .gitignore │ ├── README.md │ ├── app/ │ │ ├── dataset/ │ │ │ ├── detail/ │ │ │ │ └── page.tsx │ │ │ └── page.tsx │ │ ├── fine-tuning/ │ │ │ └── page.tsx │ │ ├── generate-voice/ │ │ │ └── page.tsx │ │ ├── globals.css │ │ ├── layout.tsx │ │ ├── page.tsx │ │ ├── quick-generate/ │ │ │ └── page.tsx │ │ ├── speaker-role/ │ │ │ └── page.tsx │ │ └── voice-editor/ │ │ └── page.tsx │ ├── components/ │ │ ├── AudioPlayer.tsx │ │ ├── AudioUploader.tsx │ │ ├── CreateDatasetModal.tsx │ │ ├── CurrentGeneration.tsx │ │ ├── CurrentTraining.tsx │ │ ├── DatasetCard.tsx │ │ ├── DatasetItemModal.tsx │ │ ├── DatasetItemRow.tsx │ │ ├── DialogEditor.tsx │ │ ├── DialogPreview.tsx │ │ ├── GenerationForm.tsx │ │ ├── GenerationHistory.tsx │ │ ├── ImportDatasetModal.tsx │ │ ├── InlineAudioPlayer.tsx │ │ ├── LayoutWrapper.tsx │ │ ├── Navigation.tsx │ │ ├── PresetVoiceManager.tsx │ │ ├── PresetVoiceSelector.tsx │ │ ├── ProjectSelector.tsx │ │ ├── QuickGenerateHistory.tsx │ │ ├── QuickGenerateNavigation.tsx │ │ ├── SessionManager.tsx │ │ ├── SpeakerList.tsx │ │ ├── SpeakerRoleManager.tsx │ │ ├── SpeakerSelector.tsx │ │ ├── TextEditor.tsx │ │ ├── TrainingForm.tsx │ │ ├── TrainingHistory.tsx │ │ ├── TrainingMetricsChart.tsx │ │ ├── VoicePreview.tsx │ │ └── VoiceRecorder.tsx │ ├── eslint.config.mjs │ ├── lib/ │ │ ├── DatasetContext.tsx │ │ ├── DatasetItemsContext.tsx │ │ ├── GenerationContext.tsx │ │ ├── GlobalTaskContext.tsx │ │ ├── PresetVoiceContext.tsx │ │ ├── ProjectContext.tsx │ │ ├── SessionContext.tsx │ │ ├── SpeakerRoleContext.tsx │ │ ├── TrainingContext.tsx │ │ ├── api.ts │ │ ├── audioUtils.ts │ │ └── i18n/ │ │ ├── LanguageContext.tsx │ │ ├── config.ts │ │ └── locales/ │ │ ├── en.json │ │ └── zh.json │ ├── next.config.ts │ ├── package.json │ ├── postcss.config.mjs │ ├── public/ │ │ ├── icon-preview.html │ │ ├── icon-rect-preview.html │ │ └── site.webmanifest │ ├── scripts/ │ │ └── generate-version.js │ ├── tsconfig.json │ └── types/ │ ├── dialog.ts │ ├── generation.ts │ ├── preset.ts │ ├── project.ts │ ├── quickGenerate.ts │ ├── speaker.ts │ ├── task.ts │ └── training.ts ├── pyproject.toml ├── rebuild.sh ├── test_generation_offloading.py ├── test_offloading.py ├── tests/ │ ├── test_logging.py │ ├── test_lora_network.py │ └── test_training_service.py ├── tokenizer/ │ ├── tokenizer.json │ ├── tokenizer_config.json │ └── vocab.json ├── util/ │ ├── LOGGING_README.md │ ├── __init__.py │ ├── float8_scale.py │ ├── logger.py │ ├── logger_examples.py │ ├── model_utils.py │ ├── rand_init.py │ ├── safetensors_util.py │ └── vibevoice_norm.py └── vibevoice/ ├── __init__.py ├── configs/ │ ├── qwen2.5_1.5b_64k.json │ └── qwen2.5_7b_32k.json ├── generation/ │ ├── __init__.py │ └── visitor.py ├── lora/ │ ├── __init__.py │ └── lora_network.py ├── modular/ │ ├── __init__.py │ ├── adaptive_offload.py │ ├── custom_offloading_utils.py │ ├── modeling_vibevoice.py │ ├── modeling_vibevoice_inference.py │ ├── modular_vibevoice_diffusion_head.py │ ├── modular_vibevoice_qwen.py │ ├── modular_vibevoice_text_tokenizer.py │ ├── modular_vibevoice_tokenizer.py │ └── streamer.py ├── processor/ │ ├── __init__.py │ ├── vibevoice_processor.py │ └── vibevoice_tokenizer_processor.py ├── schedule/ │ ├── __init__.py │ ├── dpm_solver.py │ └── timestep_sampler.py ├── scripts/ │ ├── __init__.py │ └── convert_nnscaler_checkpoint_to_transformers.py └── training/ ├── dataset.py ├── fake_trainer.py ├── summary_visitor.py ├── trainer.py └── trainer_visitor.py