SYMBOL INDEX (1324 symbols across 145 files) FILE: backend/api/__init__.py function ping (line 11) | def ping(): FILE: backend/api/datasets.py function get_dataset_service (line 12) | def get_dataset_service(project_id: str) -> DatasetService: function list_datasets (line 30) | def list_datasets(project_id): function get_dataset (line 63) | def get_dataset(project_id, dataset_id): function create_dataset (line 100) | def create_dataset(project_id): function update_dataset (line 157) | def update_dataset(project_id, dataset_id): function delete_dataset (line 210) | def delete_dataset(project_id, dataset_id): function export_dataset (line 250) | def export_dataset(project_id, dataset_id): function import_to_existing_dataset (line 325) | def import_to_existing_dataset(project_id, dataset_id): function import_dataset (line 378) | def import_dataset(project_id): function list_dataset_items (line 429) | def list_dataset_items(project_id, dataset_id): function add_dataset_item (line 485) | def add_dataset_item(project_id, dataset_id): function update_dataset_item (line 555) | def update_dataset_item(project_id, dataset_id, item_index): function delete_dataset_item (line 618) | def delete_dataset_item(project_id, dataset_id, item_index): function get_dataset_audio (line 667) | def get_dataset_audio(project_id, dataset_id, filename): function get_dataset_voice_prompt (line 718) | def get_dataset_voice_prompt(project_id, dataset_id, filename): FILE: backend/api/dialog_sessions.py function get_dialog_session_service (line 12) | def get_dialog_session_service(project_id: str) -> DialogSessionService: function list_sessions (line 33) | def list_sessions(project_id): function get_session (line 66) | def get_session(project_id, session_id): function create_session (line 102) | def create_session(project_id): function update_session (line 169) | def update_session(project_id, session_id): function delete_session (line 235) | def delete_session(project_id, session_id): function get_session_text (line 274) | def get_session_text(project_id, session_id): function download_session_text (line 313) | def download_session_text(project_id, session_id): FILE: backend/api/generation.py function _enrich_generation_with_session_name (line 21) | def _enrich_generation_with_session_name(generation: Generation, dialog_... function _validate_offloading_config (line 51) | def _validate_offloading_config(offloading: dict) -> dict: function get_voice_generation_service (line 102) | def get_voice_generation_service(project_id: str): function get_current_generation (line 189) | def get_current_generation(): function get_current_generation_for_project (line 235) | def get_current_generation_for_project(project_id: str): function get_all_generations (line 286) | def get_all_generations(project_id): function download_generation_audio (line 345) | def download_generation_audio(project_id: str, request_id: str): function download_generation_item_audio (line 411) | def download_generation_item_audio(project_id: str, request_id: str, ite... function get_generation (line 518) | def get_generation(project_id: str, request_id: str): function delete_generation (line 568) | def delete_generation(project_id: str, request_id: str): function batch_delete_generations (line 617) | def batch_delete_generations(project_id: str): FILE: backend/api/openai_compat.py function _openai_error (line 20) | def _openai_error(message: str, error_type: str = "invalid_request_error", function _get_service (line 34) | def _get_service() -> OpenAICompatService: function create_speech (line 44) | def create_speech(): function list_models (line 156) | def list_models(): FILE: backend/api/preset_voices.py function get_preset_service (line 13) | def get_preset_service() -> PresetVoiceService: function list_preset_voices (line 19) | def list_preset_voices(): function add_preset_voice (line 73) | def add_preset_voice(): function get_preset_voice (line 141) | def get_preset_voice(filename): function delete_preset_voice (line 172) | def delete_preset_voice(filename): function batch_delete_preset_voices (line 205) | def batch_delete_preset_voices(): function list_preset_languages (line 250) | def list_preset_languages(): function preview_preset_voice (line 267) | def preview_preset_voice(filename): FILE: backend/api/projects.py function get_project_service (line 11) | def get_project_service() -> ProjectService: function validate_project_name (line 19) | def validate_project_name(name: str) -> tuple[bool, str]: function list_projects (line 53) | def list_projects(): function get_project (line 77) | def get_project(project_id): function create_project (line 107) | def create_project(): function update_project (line 164) | def update_project(project_id): function delete_project (line 225) | def delete_project(project_id): FILE: backend/api/quick_generate.py function _allowed_file (line 22) | def _allowed_file(filename: str) -> bool: function _get_quick_generate_service (line 27) | def _get_quick_generate_service() -> QuickGenerateService: function _validate_offloading_config (line 35) | def _validate_offloading_config(offloading: dict) -> dict: function start_quick_generation (line 84) | def start_quick_generation(): function get_quick_generation (line 214) | def get_quick_generation(request_id: str): function get_current_quick_generation (line 256) | def get_current_quick_generation(): function list_quick_generation_history (line 289) | def list_quick_generation_history(): function download_quick_generation_audio (line 325) | def download_quick_generation_audio(request_id: str): function download_quick_generation_item_audio (line 366) | def download_quick_generation_item_audio(request_id: str, item_index: int): function delete_quick_generation (line 408) | def delete_quick_generation(request_id: str): function preview_quick_generation_voice (line 442) | def preview_quick_generation_voice(request_id: str): function preview_quick_generation_voice_by_index (line 456) | def preview_quick_generation_voice_by_index(request_id: str, voice_index... FILE: backend/api/speakers.py function get_speaker_service (line 12) | def get_speaker_service(project_id: str) -> SpeakerService: function list_speakers (line 30) | def list_speakers(project_id): function get_speaker (line 63) | def get_speaker(project_id, speaker_id): function add_speaker (line 99) | def add_speaker(project_id): function update_speaker (line 148) | def update_speaker(project_id, speaker_id): function delete_speaker (line 198) | def delete_speaker(project_id, speaker_id): function download_voice_file (line 237) | def download_voice_file(project_id, speaker_id): function update_voice_file (line 273) | def update_voice_file(project_id, speaker_id): function add_speaker_from_preset (line 324) | def add_speaker_from_preset(project_id): function trim_voice_file (line 388) | def trim_voice_file(project_id, speaker_id): FILE: backend/api/tasks.py function _enrich_generation_with_session_name (line 20) | def _enrich_generation_with_session_name(generation, dialog_service): function get_current_task (line 40) | def get_current_task(): FILE: backend/api/training.py function _get_training_service (line 18) | def _get_training_service(project_id: str) -> tuple: function create_training_job (line 59) | def create_training_job(project_id: str): function list_training_jobs (line 153) | def list_training_jobs(project_id: str): function get_current_training_job (line 192) | def get_current_training_job(project_id: str): function get_training_job (line 234) | def get_training_job(project_id: str, job_id: str): function delete_training_job (line 273) | def delete_training_job(project_id: str, job_id: str): function batch_delete_training_jobs (line 322) | def batch_delete_training_jobs(project_id: str): function download_lora_file (line 379) | def download_lora_file(project_id: str, job_id: str, filename: str): function list_lora_files (line 423) | def list_lora_files(project_id: str): function get_training_metrics (line 458) | def get_training_metrics(project_id: str, job_id: str): FILE: backend/app.py function create_app (line 15) | def create_app(config_name='production') -> Flask: function register_error_handlers (line 85) | def register_error_handlers(app): function register_blueprints (line 132) | def register_blueprints(app): FILE: backend/config.py class Config (line 10) | class Config: class DevelopmentConfig (line 45) | class DevelopmentConfig(Config): class ProductionConfig (line 52) | class ProductionConfig(Config): class TestingConfig (line 59) | class TestingConfig(Config): function get_config (line 74) | def get_config(env=None): FILE: backend/i18n/__init__.py function load_translations (line 13) | def load_translations(): function get_locale (line 28) | def get_locale(): function translate (line 81) | def translate(key: str, **params) -> str: function with_locale (line 130) | def with_locale(f): FILE: backend/inference/inference.py class FakeModel (line 52) | class FakeModel: method __init__ (line 53) | def __init__(self): method generate (line 56) | def generate(self, **kwargs) -> Union[torch.LongTensor, VibeVoiceGener... class InferenceBase (line 67) | class InferenceBase(ABC): method __init__ (line 68) | def __init__(self, generation: Generation, speaker_service: SpeakerSer... method get_generation (line 88) | def get_generation(self) -> Generation: method create (line 92) | def create(generation: Generation, speaker_service: SpeakerService, method _load_model (line 148) | def _load_model(self, dtype: torch.dtype, config: str = None): method failure (line 151) | def failure(self, message: str, failure_type: str): method _save_audio (line 155) | def _save_audio(self, outputs: Union[torch.LongTensor, VibeVoiceGenera... method run_inference (line 163) | def run_inference(self): method success (line 260) | def success(self, message: str): method generation_info (line 263) | def generation_info(self) -> Dict[str, Any]: method finalize (line 266) | def finalize(self): class InferenceEngine (line 296) | class InferenceEngine(InferenceBase): method __init__ (line 297) | def __init__(self, generation, speaker_service, dialog_service, meta_f... method _load_model (line 314) | def _load_model(self, dtype: torch.dtype, config: str = None): method _collect_offloading_metrics (line 351) | def _collect_offloading_metrics(self, generation_time: float) -> Optio... method _save_audio (line 389) | def _save_audio(self, outputs: Union[torch.LongTensor, VibeVoiceGenera... class FakeInferenceEngine (line 435) | class FakeInferenceEngine(InferenceBase): method __init__ (line 436) | def __init__(self, generation, speaker_service, dialog_service, meta_f... method _load_model (line 453) | def _load_model(self, dtype: torch.dtype, config: str = None): method _generate_fake_offloading_metrics (line 461) | def _generate_fake_offloading_metrics(self, generation_time: float, nu... method _save_audio (line 529) | def _save_audio(self, outputs: Union[torch.LongTensor, VibeVoiceGenera... FILE: backend/inference/quick_generate_inference.py function _get_model_classes (line 24) | def _get_model_classes(): function _get_offload_presets (line 32) | def _get_offload_presets(): class FakeQuickGenerateModel (line 59) | class FakeQuickGenerateModel: method generate (line 62) | def generate(self, **kwargs) -> Any: class QuickGenerateVisitor (line 74) | class QuickGenerateVisitor: method __init__ (line 77) | def __init__(self, quick_gen: QuickGenerate): method visit_preprocessing (line 81) | def visit_preprocessing(self, timestamp: float = None): method visit_inference_start (line 86) | def visit_inference_start(self, scripts: List[str] = None, **kwargs): method visit_inference_batch_start (line 92) | def visit_inference_batch_start(self, batch_index: int, seeds: int): method visit_inference_batch_end (line 106) | def visit_inference_batch_end(self, batch_index: int): method visit_inference_save_audio_file (line 112) | def visit_inference_save_audio_file(self, output_audio_path: str = None, method visit_inference_step_start (line 130) | def visit_inference_step_start(self, current_step: int, total_steps: i... method visit_inference_step_end (line 144) | def visit_inference_step_end(self, current_step: int, total_steps: int): method visit_completed (line 147) | def visit_completed(self, message: str = None): method visit_failed (line 153) | def visit_failed(self, message: str, failure_type: str = None): class QuickGenerateInferenceBase (line 159) | class QuickGenerateInferenceBase(ABC): method __init__ (line 162) | def __init__(self, quick_gen: QuickGenerate, voice_paths: List[str], o... method get_quick_generate (line 179) | def get_quick_generate(self) -> QuickGenerate: method create (line 183) | def create(quick_gen: QuickGenerate, voice_paths: List[str], output_di... method _load_model (line 233) | def _load_model(self, dtype: torch.dtype): method _save_audio (line 237) | def _save_audio(self, outputs, processor, generation_time: float, inpu... method failure (line 241) | def failure(self, message: str, failure_type: str = None): method success (line 244) | def success(self, message: str = None): method generation_info (line 247) | def generation_info(self) -> Dict[str, Any]: method _prepare_script_and_voices (line 250) | def _prepare_script_and_voices(self) -> tuple: method _convert_narration_to_script (line 288) | def _convert_narration_to_script(self, text: str) -> str: method run_inference (line 322) | def run_inference(self): method finalize (line 395) | def finalize(self): class QuickGenerateInferenceEngine (line 426) | class QuickGenerateInferenceEngine(QuickGenerateInferenceBase): method __init__ (line 429) | def __init__(self, quick_gen: QuickGenerate, voice_paths: List[str], o... method _load_model (line 435) | def _load_model(self, dtype: torch.dtype): method _save_audio (line 465) | def _save_audio(self, outputs, processor, generation_time: float, inpu... class FakeQuickGenerateInferenceEngine (line 491) | class FakeQuickGenerateInferenceEngine(QuickGenerateInferenceBase): method __init__ (line 494) | def __init__(self, quick_gen: QuickGenerate, voice_paths: List[str], o... method _load_model (line 499) | def _load_model(self, dtype: torch.dtype): method _save_audio (line 506) | def _save_audio(self, outputs, processor, generation_time: float, inpu... FILE: backend/run.py function main (line 20) | def main(): FILE: backend/scripts/generate_cantonese_training_dataset.py function parse_metadata_file (line 19) | def parse_metadata_file(file_path: str) -> List[Dict[str, str]]: function group_by_speaker (line 56) | def group_by_speaker(utterances: List[Dict[str, str]]) -> Dict[str, List... function select_voice_prompts (line 75) | def select_voice_prompts( function get_wav_path (line 102) | def get_wav_path(meta_file_path: str, speaker_id: str, uttrans_id: str) ... function generate_dataset (line 118) | def generate_dataset( function write_dataset_jsonl (line 213) | def write_dataset_jsonl(dataset: List[Dict], output_path: str): function generate_copy_script (line 222) | def generate_copy_script( function main (line 275) | def main(): FILE: backend/scripts/generate_mcv_cantonese_training_dataset.py function parse_tsv_file (line 19) | def parse_tsv_file(file_path: str) -> List[Dict[str, str]]: function group_by_speaker (line 60) | def group_by_speaker(utterances: List[Dict[str, str]]) -> Dict[str, List... function select_voice_prompts (line 79) | def select_voice_prompts( function generate_dataset (line 129) | def generate_dataset( function write_dataset_jsonl (line 234) | def write_dataset_jsonl(dataset: List[Dict], output_path: str): function generate_copy_script (line 243) | def generate_copy_script( function main (line 295) | def main(): FILE: backend/scripts/generate_training_dataset.py function parse_metadata_file (line 17) | def parse_metadata_file(file_path: str, num_columns: int = 2) -> Dict[st... function parse_filename (line 40) | def parse_filename(filename: str) -> Tuple[str, str]: function group_by_person_and_dialect (line 56) | def group_by_person_and_dialect( function select_voice_prompts (line 89) | def select_voice_prompts( function generate_dataset (line 130) | def generate_dataset( function write_dataset_jsonl (line 249) | def write_dataset_jsonl(dataset: List[Dict], output_path: str): function generate_copy_script (line 258) | def generate_copy_script( function main (line 303) | def main(): FILE: backend/scripts/migrate_dataset_paths.py function migrate_dataset_file (line 15) | def migrate_dataset_file(jsonl_path: Path) -> None: function main (line 86) | def main(): FILE: backend/services/dataset_service.py class DatasetService (line 15) | class DatasetService: method __init__ (line 24) | def __init__(self, project_datasets_dir: Path): method _load_metadata (line 42) | def _load_metadata(self) -> Dict[str, Dict[str, Any]]: method _save_metadata (line 56) | def _save_metadata(self, metadata: Dict[str, Dict[str, Any]]) -> None: method _generate_dataset_id (line 68) | def _generate_dataset_id(self, name: str) -> str: method _get_dataset_dir (line 89) | def _get_dataset_dir(self, dataset_id: str) -> Path: method _get_items_file_path (line 93) | def _get_items_file_path(self, dataset_id: str) -> Path: method _get_audio_dir (line 97) | def _get_audio_dir(self, dataset_id: str) -> Path: method _get_voice_prompts_dir (line 101) | def _get_voice_prompts_dir(self, dataset_id: str) -> Path: method _load_items (line 105) | def _load_items(self, dataset_id: str) -> List[DatasetItem]: method _save_items (line 136) | def _save_items(self, dataset_id: str, items: List[DatasetItem]) -> None: method _sync_item_count (line 162) | def _sync_item_count(self, dataset_id: str) -> None: method _validate_audio_file (line 184) | def _validate_audio_file(self, filename: str) -> bool: method _extract_filename_from_path (line 197) | def _extract_filename_from_path(self, path: str) -> str: method list_datasets (line 209) | def list_datasets(self) -> List[Dataset]: method get_dataset (line 219) | def get_dataset(self, dataset_id: str) -> Optional[Dataset]: method create_dataset (line 236) | def create_dataset(self, name: str, description: str = "") -> Dataset: method update_dataset (line 284) | def update_dataset(self, dataset_id: str, name: Optional[str] = None, method delete_dataset (line 313) | def delete_dataset(self, dataset_id: str) -> bool: method list_items (line 341) | def list_items(self, dataset_id: str, offset: int = 0, limit: Optional... method add_item (line 379) | def add_item(self, dataset_id: str, text: str, audio_file: FileStorage, method update_item (line 472) | def update_item(self, dataset_id: str, item_index: int, text: Optional... method delete_item (line 598) | def delete_item(self, dataset_id: str, item_index: int) -> bool: method export_dataset (line 647) | def export_dataset(self, dataset_id: str, export_path: Path) -> None: method import_dataset (line 683) | def import_dataset(self, import_file: FileStorage, dataset_name: Optio... method import_to_existing_dataset (line 785) | def import_to_existing_dataset(self, dataset_id: str, import_file: Fil... FILE: backend/services/dialog_session_service.py class DialogSessionService (line 16) | class DialogSessionService: method __init__ (line 21) | def __init__(self, project_scripts_dir: Path, speaker_service=None): method _load_metadata (line 41) | def _load_metadata(self) -> List[Dict[str, Any]]: method _save_metadata (line 59) | def _save_metadata(self, sessions: List[Dict[str, Any]]) -> None: method _get_valid_speaker_ids (line 71) | def _get_valid_speaker_ids(self) -> Set[str]: method list_sessions (line 85) | def list_sessions(self) -> List[DialogSession]: method get_session (line 95) | def get_session(self, session_id: str) -> Optional[DialogSession]: method create_session (line 111) | def create_session(self, name: str, description: str, dialog_text: str, method update_session (line 198) | def update_session(self, session_id: str, name: Optional[str] = None, method delete_session (line 293) | def delete_session(self, session_id: str) -> bool: method get_session_text (line 333) | def get_session_text(self, session_id: str) -> Optional[str]: method get_text_file_path (line 357) | def get_text_file_path(self, session_id: str) -> Optional[Path]: method parse_session_txt_script (line 372) | def parse_session_txt_script(self, session_id: str) -> Tuple[str, List... method parse_narration_script (line 428) | def parse_narration_script(self, session_id: str) -> Tuple[str, List[s... FILE: backend/services/openai_compat_service.py class OpenAICompatService (line 47) | class OpenAICompatService: method __init__ (line 50) | def __init__(self, workspace_dir: Path, preset_dir: Path, fake_model: ... method validate_api_key (line 57) | def validate_api_key(self, auth_header: Optional[str]) -> bool: method resolve_voice (line 79) | def resolve_voice(self, voice_name: str) -> Tuple[Optional[str], Optio... method resolve_model (line 101) | def resolve_model(self, model_name: str) -> Tuple[Optional[str], Optio... method generate_speech (line 115) | def generate_speech(self, text: str, voice_filename: str, model_dtype:... method _convert_audio (line 191) | def _convert_audio(self, source_path: Path, target_format: str) -> Opt... method get_available_voices (line 236) | def get_available_voices(self) -> list: FILE: backend/services/preset_voice_service.py class PresetVoiceService (line 19) | class PresetVoiceService: method __init__ (line 33) | def __init__(self, preset_dir: Path): method _validate_audio_file (line 44) | def _validate_audio_file(self, filename: str) -> bool: method _validate_language (line 49) | def _validate_language(self, language: str) -> bool: method _validate_gender (line 53) | def _validate_gender(self, gender: str) -> bool: method _validate_name (line 57) | def _validate_name(self, name: str) -> bool: method _scan_presets (line 61) | def _scan_presets(self, locale: str = 'en') -> List[PresetVoice]: method list_presets (line 85) | def list_presets( method get_preset (line 128) | def get_preset(self, filename: str, locale: str = 'en') -> Optional[Pr... method get_preset_path (line 144) | def get_preset_path(self, filename: str) -> Optional[Path]: method add_preset (line 159) | def add_preset( method _convert_to_wav (line 245) | def _convert_to_wav(self, source_path: Path, target_path: Path) -> None: method delete_preset (line 273) | def delete_preset(self, filename: str) -> bool: method batch_delete_presets (line 299) | def batch_delete_presets(self, filenames: List[str]) -> Tuple[List[str... method get_available_languages (line 323) | def get_available_languages(self, locale: str = 'en') -> List[Dict[str... FILE: backend/services/project_service.py class ProjectService (line 12) | class ProjectService: method __init__ (line 15) | def __init__(self, workspace_dir: Path, meta_file_name: str = 'project... method _load_metadata (line 34) | def _load_metadata(self) -> Dict[str, Dict[str, Any]]: method _save_metadata (line 48) | def _save_metadata(self, metadata: Dict[str, Dict[str, Any]]) -> None: method _generate_project_id (line 60) | def _generate_project_id(self, name: str) -> str: method list_projects (line 81) | def list_projects(self) -> List[Project]: method get_project (line 91) | def get_project(self, project_id: str) -> Optional[Project]: method create_project (line 108) | def create_project(self, name: str, description: str = "") -> Project: method update_project (line 153) | def update_project(self, project_id: str, name: Optional[str] = None, method delete_project (line 182) | def delete_project(self, project_id: str) -> bool: method get_project_path (line 210) | def get_project_path(self, project_id: str) -> Optional[Path]: FILE: backend/services/quick_generate_service.py class QuickGenerateService (line 25) | class QuickGenerateService: method __init__ (line 32) | def __init__(self, workspace_dir: Path, fake_model: bool = False): method _ensure_directories (line 51) | def _ensure_directories(self): method _load_history (line 61) | def _load_history(self) -> List[Dict[str, Any]]: method _save_history (line 74) | def _save_history(self, history: List[Dict[str, Any]]) -> None: method _add_to_history (line 81) | def _add_to_history(self, quick_gen: QuickGenerate) -> None: method _update_history (line 87) | def _update_history(self, request_id: str, updates: Dict[str, Any]) ->... method save_voice_file (line 97) | def save_voice_file(self, file_data: bytes, original_filename: str) ->... method start_generation (line 123) | def start_generation(self, voice_files: List[str], text: str, method get_generation (line 197) | def get_generation(self, request_id: str) -> Optional[QuickGenerate]: method list_history (line 226) | def list_history(self, limit: int = 20, offset: int = 0) -> Dict[str, ... method delete_generation (line 263) | def delete_generation(self, request_id: str) -> bool: method get_audio_path (line 309) | def get_audio_path(self, request_id: str, item_index: int = 0) -> Opti... method get_voice_path (line 353) | def get_voice_path(self, voice_filename: str) -> Optional[Path]: method cleanup_old_data (line 368) | def cleanup_old_data(self, voice_days: int = 7, output_days: int = 30,... FILE: backend/services/speaker_service.py class SpeakerService (line 16) | class SpeakerService: method __init__ (line 22) | def __init__(self, project_voices_dir: Path): method _load_metadata (line 40) | def _load_metadata(self) -> List[Dict[str, Any]]: method _save_metadata (line 58) | def _save_metadata(self, speakers: List[Dict[str, Any]]) -> None: method _generate_speaker_id (line 70) | def _generate_speaker_id(self, index: int) -> str: method _reindex_speakers (line 82) | def _reindex_speakers(self, speakers: List[SpeakerRole]) -> List[Speak... method _validate_audio_file (line 96) | def _validate_audio_file(self, filename: str) -> bool: method list_speakers (line 109) | def list_speakers(self) -> List[SpeakerRole]: method get_speaker (line 119) | def get_speaker(self, speaker_id: str) -> Optional[SpeakerRole]: method add_speaker (line 135) | def add_speaker(self, description: str, voice_file: FileStorage) -> Sp... method update_speaker (line 188) | def update_speaker(self, speaker_id: str, description: Optional[str] =... method update_voice_file (line 222) | def update_voice_file(self, speaker_id: str, voice_file: FileStorage) ... method trim_voice_file (line 289) | def trim_voice_file(self, speaker_id: str, start_time: float, end_time... method delete_speaker (line 393) | def delete_speaker(self, speaker_id: str) -> bool: method get_voice_file_path (line 436) | def get_voice_file_path(self, speaker_id: str) -> Optional[Path]: method get_speakers_filepath (line 451) | def get_speakers_filepath(self, speaker_names: List[str]) -> List[str]: method add_speaker_from_preset (line 468) | def add_speaker_from_preset( FILE: backend/services/training_service.py class TrainingService (line 21) | class TrainingService: method __init__ (line 26) | def __init__(self, project_training_dir: Path, project_id: str = None,... method _save_metadata (line 48) | def _save_metadata(self, data: dict) -> None: method _load_metadata (line 52) | def _load_metadata(self) -> dict: method _is_job_name_unique (line 70) | def _is_job_name_unique(self, job_name: str) -> bool: method create_training_job (line 86) | def create_training_job(self, job_name: str, train_config: TrainConfig, method list_jobs (line 154) | def list_jobs(self) -> List[TrainingState]: method get_job (line 204) | def get_job(self, job_id: str) -> Optional[TrainingState]: method get_current_job (line 226) | def get_current_job(self) -> Optional[TrainingState]: method get_lora_file_path (line 284) | def get_lora_file_path(self, job_id: str, filename: str) -> Optional[P... method delete_job (line 311) | def delete_job(self, job_id: str) -> bool: method list_available_lora_files (line 354) | def list_available_lora_files(self) -> List[dict]: method delete_jobs_batch (line 396) | def delete_jobs_batch(self, job_ids: List[str]) -> dict: FILE: backend/services/voice_gerneration_service.py class VoiceGenerationService (line 12) | class VoiceGenerationService: method __init__ (line 16) | def __init__(self, project_generation_dir: Path, speaker_service: Spea... method _load_metadata (line 38) | def _load_metadata(self) -> List[Dict[str, Any]]: method _save_metadata (line 56) | def _save_metadata(self, generations: List[Dict[str, Any]]) -> None: method list_generations (line 68) | def list_generations(self) -> List[Generation]: method delete_generation (line 78) | def delete_generation(self, request_id: str) -> bool: method delete_generations_batch (line 111) | def delete_generations_batch(self, request_ids: List[str]) -> Dict[str... method generation (line 156) | def generation(self, dialog_session_id: str, request_id: str, FILE: backend/task_manager/inference_task.py class InferenceTask (line 12) | class InferenceTask(Task): method __init__ (line 14) | def __init__(self, inference: InferenceBase, file_handler: FileHandler... method from_inference (line 21) | def from_inference(cls, inference: InferenceBase, file_handler: FileHa... method run (line 24) | def run(self): method task_failure (line 29) | def task_failure(self, error_msg: str, failure_type: str = FAILURE_TYP... method task_success (line 33) | def task_success(self, message: str): method unwrap (line 37) | def unwrap(self) -> InferenceBase: method task_appended (line 40) | def task_appended(self, message: str): method _task_finalize (line 45) | def _task_finalize(self): method _load_metadata (line 54) | def _load_metadata(self) -> List[Dict[str, Any]]: method _save_metadata (line 72) | def _save_metadata(self, generations: List[Dict[str, Any]]) -> None: method _update_metadata (line 84) | def _update_metadata(self, generation_dict: Dict[str, Any]) -> None: FILE: backend/task_manager/quick_generate_task.py class QuickGenerateTask (line 15) | class QuickGenerateTask(Task): method __init__ (line 18) | def __init__(self, inference: QuickGenerateInferenceBase, file_handler... method from_inference (line 25) | def from_inference(cls, inference: QuickGenerateInferenceBase, file_ha... method run (line 29) | def run(self): method task_failure (line 33) | def task_failure(self, error_msg: str, failure_type: str = FAILURE_TYP... method task_success (line 37) | def task_success(self, message: str): method unwrap (line 41) | def unwrap(self) -> QuickGenerateInferenceBase: method task_appended (line 44) | def task_appended(self, message: str): method _task_finalize (line 49) | def _task_finalize(self): method _load_history (line 58) | def _load_history(self) -> List[Dict[str, Any]]: method _save_history (line 70) | def _save_history(self, history: List[Dict[str, Any]]) -> None: method _update_history (line 77) | def _update_history(self, gen_dict: Dict[str, Any]) -> None: FILE: backend/task_manager/task.py class Task (line 16) | class Task(ABC): method __init__ (line 18) | def __init__(self, task_id: str = None): method id (line 21) | def id(self) -> str: method run (line 25) | def run(self): method task_failure (line 29) | def task_failure(self, error_msg: str, failure_type: str = FAILURE_TYP... method task_success (line 33) | def task_success(self, message: str): method task_appended (line 37) | def task_appended(self, message: str): method unwrap (line 41) | def unwrap(self) -> Any: method task_finalize (line 44) | def task_finalize(self): method _task_finalize (line 52) | def _task_finalize(self): class Manager (line 56) | class Manager: method __init__ (line 57) | def __init__(self): method task_run_loop (line 60) | def task_run_loop(self): method add_task (line 81) | def add_task(self, task: Task) -> bool: method get_current_task (line 92) | def get_current_task(self) -> Task: method has_task (line 97) | def has_task(self) -> bool: FILE: backend/task_manager/training_task.py class TrainingTask (line 9) | class TrainingTask(Task): method __init__ (line 11) | def __init__(self, task_id: str, training_engine: BaseTrainingEngine): method from_engine (line 16) | def from_engine(cls, task_id: str, training_engine: BaseTrainingEngine... method run (line 19) | def run(self): method task_failure (line 22) | def task_failure(self, error_msg: str, failure_type: str = FAILURE_TYP... method task_success (line 26) | def task_success(self, message: str): method unwrap (line 30) | def unwrap(self) -> BaseTrainingEngine: method task_appended (line 33) | def task_appended(self, message: str): method _task_finalize (line 36) | def _task_finalize(self): FILE: backend/training/engine.py class BaseTrainingEngine (line 13) | class BaseTrainingEngine(TrainerVisitor): method __init__ (line 15) | def __init__(self, trainer: Trainer, task_id: str, state_writer: Train... method train (line 27) | def train(self): method visit_training_begin (line 30) | def visit_training_begin(self, timestamp: float, batch_size: int, tota... method visit_training_end (line 41) | def visit_training_end(self, timestamp: float, loss: float, diffusion_... method visit_step_begin (line 53) | def visit_step_begin(self, timestamp: float, step: int, epoch: int, method visit_step_end (line 61) | def visit_step_end(self, timestamp: float, step: int, epoch: int, step... method visit_epoch_begin (line 85) | def visit_epoch_begin(self, timestamp: float, epoch: int, lr: float): method visit_epoch_end (line 90) | def visit_epoch_end(self, timestamp: float, epoch: int, lr: float, avg... method visit_training_failed (line 108) | def visit_training_failed(self, timestamp, error_msg: str, failure_typ... method get_state (line 114) | def get_state(self) -> TrainingState: method visit_lora_file_saved (line 117) | def visit_lora_file_saved(self, lora_file): method visit_final_lora_file_saved (line 120) | def visit_final_lora_file_saved(self, lora_file): method finalize (line 123) | def finalize(self): class TrainingEngine (line 127) | class TrainingEngine(BaseTrainingEngine): method __init__ (line 137) | def __init__(self, method finalize (line 155) | def finalize(self): class FakeTrainingEngine (line 160) | class FakeTrainingEngine(BaseTrainingEngine): method __init__ (line 165) | def __init__(self, FILE: backend/training/state.py class TrainingState (line 9) | class TrainingState: method get_all_lora_files (line 60) | def get_all_lora_files(self) -> List[str]: method to_dict (line 72) | def to_dict(self) -> Dict[str, Any]: method from_dict (line 84) | def from_dict(cls, data: Dict[str, Any]) -> 'TrainingState': class TrainingStateWriter (line 108) | class TrainingStateWriter: method __init__ (line 110) | def __init__(self, file_handler: FileHandler, task_id: str, path: str): method update_state (line 115) | def update_state(self, train_state: TrainingState) -> None: FILE: backend/utils/dialog_validator.py class DialogValidator (line 9) | class DialogValidator: method parse_narration_text (line 16) | def parse_narration_text(text: str) -> List[str]: method validate_narration_text (line 52) | def validate_narration_text(text: str, narrator_speaker_id: str, method convert_narration_to_dialog (line 80) | def convert_narration_to_dialog(text: str, narrator_speaker_id: str) -... method parse_dialog_text (line 95) | def parse_dialog_text(text: str) -> List[Tuple[str, str]]: method extract_speaker_ids (line 146) | def extract_speaker_ids(text: str) -> Set[str]: method validate_speaker_ids (line 163) | def validate_speaker_ids(text: str, valid_speaker_ids: Set[str]) -> Tu... method format_dialog_text (line 187) | def format_dialog_text(dialogs: List[Tuple[str, str]]) -> str: method read_and_validate_file (line 206) | def read_and_validate_file(file_path: Path, valid_speaker_ids: Set[str... FILE: backend/utils/file_handler.py class DateTimeEncoder (line 11) | class DateTimeEncoder(json.JSONEncoder): method default (line 14) | def default(self, obj): class FileHandler (line 20) | class FileHandler: method ensure_directory (line 24) | def ensure_directory(path: Path) -> None: method read_json (line 34) | def read_json(file_path: Path) -> Dict[str, Any]: method write_json (line 52) | def write_json(file_path: Path, data: Dict[str, Any], indent: int = 2)... method write_json_atomic (line 68) | def write_json_atomic(file_path: Path, data: Dict[str, Any], indent: i... method delete_directory (line 108) | def delete_directory(path: Path, ignore_errors: bool = False) -> None: method list_directories (line 120) | def list_directories(parent_path: Path) -> List[str]: method sanitize_filename (line 139) | def sanitize_filename(filename: str) -> str: FILE: backend/utils/tensorboard_reader.py class TensorBoardReader (line 9) | class TensorBoardReader: method __init__ (line 14) | def __init__(self, logdir: str): method _load_events (line 27) | def _load_events(self): method get_scalar_tags (line 43) | def get_scalar_tags(self) -> List[str]: method get_scalar_data (line 49) | def get_scalar_data(self, tag: str, max_points: Optional[int] = None) ... method get_loss_metrics (line 88) | def get_loss_metrics(self, max_points: Optional[int] = 500) -> Dict: method get_learning_rate (line 108) | def get_learning_rate(self, max_points: Optional[int] = 500) -> List[D... method get_timing_metrics (line 112) | def get_timing_metrics(self, max_points: Optional[int] = 500) -> Dict: method get_all_metrics (line 121) | def get_all_metrics(self, max_points: Optional[int] = 500) -> Dict: FILE: config/configuration_vibevoice.py class InferencePhase (line 11) | class InferencePhase: class QwenConfig (line 20) | class QwenConfig: method __init__ (line 26) | def __init__( method from_config (line 77) | def from_config(cls, config): class VibeVoiceAcousticTokenizerConfig (line 80) | class VibeVoiceAcousticTokenizerConfig: method __init__ (line 83) | def __init__( class VibeVoiceSemanticTokenizerConfig (line 142) | class VibeVoiceSemanticTokenizerConfig: method __init__ (line 145) | def __init__( class VibeVoiceDiffusionHeadConfig (line 195) | class VibeVoiceDiffusionHeadConfig: method __init__ (line 198) | def __init__( class VibeVoiceConfig (line 227) | class VibeVoiceConfig: method __init__ (line 249) | def __init__( method from_dict (line 309) | def from_dict(cls, config_dict: Dict, **kwargs): FILE: demo/audio_denoise_deepfilter.py function parse_args (line 27) | def parse_args(): function get_device (line 138) | def get_device(device_arg: str) -> str: function load_audio (line 145) | def load_audio(file_path: str) -> Tuple[torch.Tensor, int]: function save_audio (line 159) | def save_audio( function load_deepfilter_model (line 201) | def load_deepfilter_model(model_name: str, device: str, post_filter: boo... function denoise_audio_deepfilter (line 240) | def denoise_audio_deepfilter( function process_directory (line 349) | def process_directory( function main (line 403) | def main(): FILE: demo/audio_denose.py function parse_args (line 23) | def parse_args(): function get_device (line 117) | def get_device(device_arg: str) -> str: function load_audio (line 124) | def load_audio(file_path: str, target_sr: int = 16000, resample: bool = ... function save_audio (line 159) | def save_audio( function denoise_audio (line 201) | def denoise_audio( function main (line 283) | def main(): FILE: demo/convert_model.py function parse_args (line 12) | def parse_args(): function main (line 20) | def main(): FILE: demo/list_modules.py function list_moduels (line 7) | def list_moduels(model_path: str): FILE: demo/local_file_inference.py class VoiceMapper (line 16) | class VoiceMapper: method __init__ (line 19) | def __init__(self): method setup_voice_presets (line 36) | def setup_voice_presets(self): method get_voice_path (line 74) | def get_voice_path(self, speaker_name: str) -> str: function parse_txt_script (line 91) | def parse_txt_script(txt_content: str) -> Tuple[List[str], List[str]]: function parse_args (line 137) | def parse_args(): function load_model (line 209) | def load_model(model_file: str = None, function main (line 233) | def main(): FILE: demo/train.py function main (line 12) | def main(): FILE: demo/verify_dataset.py class Colors (line 21) | class Colors: function parse_metadata_file (line 31) | def parse_metadata_file(file_path: str) -> Dict[str, str]: function extract_audio_id (line 45) | def extract_audio_id(file_path: str) -> str: function load_dataset (line 50) | def load_dataset(dataset_path: str) -> List[Dict]: function verify_dataset (line 67) | def verify_dataset( function verify_copy_script (line 200) | def verify_copy_script(script_path: str, dataset_path: str) -> Tuple[int... function main (line 276) | def main(): FILE: demo/view_tensorfile.py function print_metadata (line 14) | def print_metadata(metadata: dict, format_type: str = "plain"): function list_tensor_keys (line 34) | def list_tensor_keys(file_path: str, key_pattern: str = None, show_shape... function get_file_stats (line 73) | def get_file_stats(file_path: str): function main (line 108) | def main(): FILE: demo/vram_offload_animation.py function t (line 155) | def t(key: str, **kwargs) -> str: class LayerOffloadingDemo (line 163) | class LayerOffloadingDemo(Scene): method construct (line 169) | def construct(self): method create_memory_regions (line 197) | def create_memory_regions(self): method create_layers (line 260) | def create_layers(self): method show_initial_state (line 284) | def show_initial_state(self, all_layers, gpu_region, cpu_region): method demonstrate_inference_flow (line 383) | def demonstrate_inference_flow(self, all_layers, gpu_region, cpu_regio... method show_summary (line 542) | def show_summary(self): class SimpleLayerFlow (line 604) | class SimpleLayerFlow(Scene): method construct (line 609) | def construct(self): class InferenceTimeline (line 779) | class InferenceTimeline(Scene): method construct (line 784) | def construct(self): FILE: frontend/app/dataset/detail/page.tsx function DatasetDetailContent (line 14) | function DatasetDetailContent({ datasetId }: { datasetId: string }) { function DatasetDetailPageContent (line 356) | function DatasetDetailPageContent() { function DatasetDetailPage (line 397) | function DatasetDetailPage() { FILE: frontend/app/dataset/page.tsx function DatasetPageContent (line 12) | function DatasetPageContent() { function DatasetPage (line 162) | function DatasetPage() { FILE: frontend/app/fine-tuning/page.tsx function TrainingContent (line 13) | function TrainingContent() { function TrainingPage (line 89) | function TrainingPage() { FILE: frontend/app/generate-voice/page.tsx function GenerateVoiceContent (line 13) | function GenerateVoiceContent() { function GenerateVoicePage (line 89) | function GenerateVoicePage() { FILE: frontend/app/layout.tsx function RootLayout (line 39) | function RootLayout({ FILE: frontend/app/page.tsx function Home (line 3) | function Home() { FILE: frontend/app/quick-generate/page.tsx constant PRESET_INFO (line 13) | const PRESET_INFO = { function QuickGenerateContent (line 31) | function QuickGenerateContent() { function QuickGeneratePage (line 1291) | function QuickGeneratePage() { FILE: frontend/app/speaker-role/page.tsx function SpeakerRolePage (line 10) | function SpeakerRolePage() { FILE: frontend/app/voice-editor/page.tsx function VoiceEditorContent (line 16) | function VoiceEditorContent() { function VoiceEditorPage (line 223) | function VoiceEditorPage() { FILE: frontend/components/AudioPlayer.tsx type AudioPlayerProps (line 8) | interface AudioPlayerProps { function AudioPlayer (line 16) | function AudioPlayer({ voiceFileUrl, voiceFileName, onChangeVoice, onTri... FILE: frontend/components/AudioUploader.tsx type AudioUploaderProps (line 6) | interface AudioUploaderProps { function AudioUploader (line 10) | function AudioUploader({ onUpload }: AudioUploaderProps) { FILE: frontend/components/CreateDatasetModal.tsx type CreateDatasetModalProps (line 6) | interface CreateDatasetModalProps { function CreateDatasetModal (line 11) | function CreateDatasetModal({ onClose, onCreate }: CreateDatasetModalPro... FILE: frontend/components/CurrentGeneration.tsx function CurrentGeneration (line 17) | function CurrentGeneration() { FILE: frontend/components/CurrentTraining.tsx constant METRICS_REFRESH_INTERVAL_OPTIONS (line 12) | const METRICS_REFRESH_INTERVAL_OPTIONS = [5, 10, 15, 30, 60, 120]; constant STATE_REFRESH_INTERVAL_OPTIONS (line 13) | const STATE_REFRESH_INTERVAL_OPTIONS = [2, 3, 5, 10, 15, 30]; function extractDatasetIdFromPath (line 17) | function extractDatasetIdFromPath(datasetPath: string | null): string | ... function CurrentTraining (line 23) | function CurrentTraining() { FILE: frontend/components/DatasetCard.tsx type Dataset (line 7) | interface Dataset { type DatasetCardProps (line 16) | interface DatasetCardProps { function DatasetCard (line 24) | function DatasetCard({ dataset, onDelete, onImport, onExport, onViewDeta... FILE: frontend/components/DatasetItemModal.tsx type DatasetItemModalProps (line 7) | interface DatasetItemModalProps { function DatasetItemModal (line 14) | function DatasetItemModal({ onClose, onSave, initialText = "", mode }: D... FILE: frontend/components/DatasetItemRow.tsx type DatasetItemRowProps (line 7) | interface DatasetItemRowProps { function DatasetItemRow (line 18) | function DatasetItemRow({ FILE: frontend/components/DialogEditor.tsx type DialogEditorProps (line 8) | interface DialogEditorProps { function DialogEditor (line 23) | function DialogEditor({ FILE: frontend/components/DialogPreview.tsx type DialogPreviewProps (line 7) | interface DialogPreviewProps { function DialogPreview (line 12) | function DialogPreview({ dialogLines, speakers }: DialogPreviewProps) { FILE: frontend/components/GenerationForm.tsx constant PRESET_INFO (line 12) | const PRESET_INFO = { function GenerationForm (line 33) | function GenerationForm() { FILE: frontend/components/GenerationHistory.tsx function GenerationHistory (line 18) | function GenerationHistory() { FILE: frontend/components/ImportDatasetModal.tsx type ImportDatasetModalProps (line 6) | interface ImportDatasetModalProps { function ImportDatasetModal (line 12) | function ImportDatasetModal({ datasetName, onClose, onImport }: ImportDa... FILE: frontend/components/InlineAudioPlayer.tsx type InlineAudioPlayerProps (line 5) | interface InlineAudioPlayerProps { function InlineAudioPlayer (line 11) | function InlineAudioPlayer({ audioUrl, filename, onPlay }: InlineAudioPl... FILE: frontend/components/LayoutWrapper.tsx function LayoutWrapper (line 8) | function LayoutWrapper({ children }: { children: React.ReactNode }) { FILE: frontend/components/Navigation.tsx type MenuItem (line 12) | interface MenuItem { type MenuGroup (line 19) | interface MenuGroup { function Navigation (line 90) | function Navigation() { FILE: frontend/components/PresetVoiceManager.tsx type PresetVoiceManagerProps (line 10) | interface PresetVoiceManagerProps { function PresetVoiceManagerContent (line 15) | function PresetVoiceManagerContent({ onClose }: { onClose: () => void }) { function PresetVoiceManager (line 539) | function PresetVoiceManager({ isOpen, onClose }: PresetVoiceManagerProps) { FILE: frontend/components/PresetVoiceSelector.tsx type PresetVoiceSelectorProps (line 8) | interface PresetVoiceSelectorProps { function PresetVoiceSelector (line 12) | function PresetVoiceSelector({ onSelect }: PresetVoiceSelectorProps) { FILE: frontend/components/ProjectSelector.tsx function validateProjectName (line 18) | function validateProjectName(name: string, t: (key: string) => string): ... function ProjectSelector (line 41) | function ProjectSelector() { FILE: frontend/components/QuickGenerateHistory.tsx type QuickGenerateHistoryProps (line 9) | interface QuickGenerateHistoryProps { function QuickGenerateHistory (line 15) | function QuickGenerateHistory({ onSelectGeneration, currentGenerationId,... FILE: frontend/components/QuickGenerateNavigation.tsx function QuickGenerateNavigation (line 10) | function QuickGenerateNavigation() { FILE: frontend/components/SessionManager.tsx function SessionManager (line 11) | function SessionManager() { FILE: frontend/components/SpeakerList.tsx type SpeakerListProps (line 5) | interface SpeakerListProps { function SpeakerList (line 13) | function SpeakerList({ FILE: frontend/components/SpeakerRoleManager.tsx function SpeakerRoleManager (line 15) | function SpeakerRoleManager() { FILE: frontend/components/SpeakerSelector.tsx type SpeakerSelectorProps (line 6) | interface SpeakerSelectorProps { function SpeakerSelector (line 13) | function SpeakerSelector({ FILE: frontend/components/TextEditor.tsx type TextEditorProps (line 5) | interface TextEditorProps { function TextEditor (line 10) | function TextEditor({ speaker, onContentChange }: TextEditorProps) { FILE: frontend/components/TrainingForm.tsx constant PRESET_INFO (line 12) | const PRESET_INFO = { function TrainingForm (line 33) | function TrainingForm() { FILE: frontend/components/TrainingHistory.tsx function extractDatasetIdFromPath (line 15) | function extractDatasetIdFromPath(datasetPath: string | null): string | ... function TrainingHistory (line 21) | function TrainingHistory() { FILE: frontend/components/TrainingMetricsChart.tsx type TrainingMetricsChartProps (line 9) | interface TrainingMetricsChartProps { function TrainingMetricsChart (line 16) | function TrainingMetricsChart({ FILE: frontend/components/VoicePreview.tsx type VoicePreviewProps (line 6) | interface VoicePreviewProps { function VoicePreview (line 11) | function VoicePreview({ speaker, onVoiceFileChange }: VoicePreviewProps) { FILE: frontend/components/VoiceRecorder.tsx type VoiceRecorderProps (line 6) | interface VoiceRecorderProps { function VoiceRecorder (line 10) | function VoiceRecorder({ onSave }: VoiceRecorderProps) { FILE: frontend/lib/DatasetContext.tsx type DatasetContextType (line 6) | interface DatasetContextType { function DatasetProvider (line 21) | function DatasetProvider({ children, projectId }: { children: React.Reac... function useDataset (line 157) | function useDataset(): DatasetContextType { FILE: frontend/lib/DatasetItemsContext.tsx constant ITEMS_PER_PAGE_KEY_PREFIX (line 6) | const ITEMS_PER_PAGE_KEY_PREFIX = "vibevoice-dataset-items-per-page-"; constant DEFAULT_ITEMS_PER_PAGE (line 7) | const DEFAULT_ITEMS_PER_PAGE = 20; constant MIN_ITEMS_PER_PAGE (line 9) | const MIN_ITEMS_PER_PAGE = 1; constant MAX_ITEMS_PER_PAGE (line 10) | const MAX_ITEMS_PER_PAGE = 500; function getSavedItemsPerPage (line 13) | function getSavedItemsPerPage(datasetId: string): number { function saveItemsPerPage (line 26) | function saveItemsPerPage(datasetId: string, count: number): void { type DatasetItemsContextType (line 31) | interface DatasetItemsContextType { function DatasetItemsProvider (line 51) | function DatasetItemsProvider({ function useDatasetItems (line 212) | function useDatasetItems(): DatasetItemsContextType { FILE: frontend/lib/GenerationContext.tsx type GenerationContextType (line 8) | interface GenerationContextType { type GenerationProviderProps (line 26) | interface GenerationProviderProps { function GenerationProvider (line 31) | function GenerationProvider({ children, projectId }: GenerationProviderP... function useGeneration (line 294) | function useGeneration() { FILE: frontend/lib/GlobalTaskContext.tsx type GlobalTaskContextType (line 7) | interface GlobalTaskContextType { function GlobalTaskProvider (line 14) | function GlobalTaskProvider({ children }: { children: React.ReactNode }) { function useGlobalTask (line 56) | function useGlobalTask() { FILE: frontend/lib/PresetVoiceContext.tsx type PresetVoiceContextType (line 7) | interface PresetVoiceContextType { constant DEFAULT_LIMIT (line 48) | const DEFAULT_LIMIT = 10; function PresetVoiceProvider (line 50) | function PresetVoiceProvider({ children }: { children: ReactNode }) { function usePresetVoice (line 191) | function usePresetVoice() { FILE: frontend/lib/ProjectContext.tsx function ProjectProvider (line 10) | function ProjectProvider({ children }: { children: React.ReactNode }) { function useProject (line 159) | function useProject() { FILE: frontend/lib/SessionContext.tsx type CreateSessionOptions (line 9) | interface CreateSessionOptions { type SessionContextType (line 16) | interface SessionContextType { function SessionProvider (line 30) | function SessionProvider({ children }: { children: React.ReactNode }) { function useSession (line 398) | function useSession() { FILE: frontend/lib/SpeakerRoleContext.tsx type SpeakerRoleContextType (line 8) | interface SpeakerRoleContextType { function SpeakerRoleProvider (line 23) | function SpeakerRoleProvider({ children, projectId }: { children: React.... function useSpeakerRole (line 272) | function useSpeakerRole() { FILE: frontend/lib/TrainingContext.tsx type TrainingContextType (line 7) | interface TrainingContextType { type TrainingProviderProps (line 29) | interface TrainingProviderProps { function TrainingProvider (line 34) | function TrainingProvider({ children, projectId }: TrainingProviderProps) { function useTraining (line 336) | function useTraining() { FILE: frontend/lib/api.ts constant API_BASE_URL (line 45) | const API_BASE_URL = process.env.NODE_ENV === 'development' type Project (line 49) | interface Project { type Speaker (line 57) | interface Speaker { type SessionMode (line 65) | type SessionMode = 'dialogue' | 'narration'; type DialogSession (line 67) | interface DialogSession { type Dataset (line 78) | interface Dataset { type LoRAFile (line 87) | interface LoRAFile { type DatasetItem (line 94) | interface DatasetItem { class ApiClient (line 100) | class ApiClient { method constructor (line 103) | constructor(baseUrl: string = API_BASE_URL) { method fetch (line 107) | private async fetch( method listProjects (line 147) | async listProjects(): Promise<{ projects: Project[]; count: number }> { method getProject (line 151) | async getProject(projectId: string): Promise { method createProject (line 155) | async createProject(data: { method updateProject (line 165) | async updateProject( method deleteProject (line 175) | async deleteProject(projectId: string): Promise<{ message: string; pro... method listSpeakers (line 183) | async listSpeakers(projectId: string): Promise<{ speakers: Speaker[]; ... method getSpeaker (line 187) | async getSpeaker(projectId: string, speakerId: string): Promise { method createPresetVoice (line 339) | async createPresetVoice(data: { method deletePresetVoice (line 377) | async deletePresetVoice(filename: string): Promise { method getPresetPreviewUrl (line 396) | getPresetPreviewUrl(filename: string): string { method listSessions (line 402) | async listSessions(projectId: string): Promise<{ sessions: DialogSessi... method getSession (line 406) | async getSession(projectId: string, sessionId: string): Promise { method createGeneration (line 481) | async createGeneration( method getCurrentGeneration (line 491) | async getCurrentGeneration(): Promise { method getCurrentGenerationForProject (line 495) | async getCurrentGenerationForProject(projectId: string): Promise { method getCurrentQuickGeneration (line 1009) | async getCurrentQuickGeneration(): Promise { function audioBufferToWav (line 35) | function audioBufferToWav(audioBuffer: AudioBuffer): Blob { function writeString (line 82) | function writeString(view: DataView, offset: number, string: string): vo... FILE: frontend/lib/i18n/LanguageContext.tsx type Messages (line 9) | type Messages = typeof enMessages; type LanguageContextType (line 11) | interface LanguageContextType { function getBrowserLocale (line 25) | function getBrowserLocale(): Locale { function getSavedLocale (line 38) | function getSavedLocale(): Locale | null { function LanguageProvider (line 49) | function LanguageProvider({ children }: { children: React.ReactNode }) { function useLanguage (line 119) | function useLanguage() { FILE: frontend/lib/i18n/config.ts type Locale (line 6) | type Locale = (typeof i18n)['locales'][number]; FILE: frontend/next.config.ts method rewrites (line 9) | async rewrites() { FILE: frontend/scripts/generate-version.js function getGitVersion (line 14) | function getGitVersion() { function main (line 33) | function main() { FILE: frontend/types/dialog.ts type DialogLine (line 1) | interface DialogLine { type SpeakerInfo (line 7) | interface SpeakerInfo { type SessionMode (line 14) | type SessionMode = 'dialogue' | 'narration'; type DialogSession (line 16) | interface DialogSession { FILE: frontend/types/generation.ts type InferencePhase (line 9) | enum InferencePhase { type ModelDtype (line 21) | type ModelDtype = 'bf16' | 'float8_e4m3fn'; type GenerationItem (line 27) | interface GenerationItem { type GenerationDetails (line 44) | interface GenerationDetails { type Generation (line 70) | interface Generation { type OffloadingMode (line 101) | type OffloadingMode = 'preset' | 'manual'; type OffloadingPreset (line 106) | type OffloadingPreset = 'balanced' | 'aggressive' | 'extreme'; type OffloadingConfig (line 111) | interface OffloadingConfig { type OffloadingTimeBreakdown (line 121) | interface OffloadingTimeBreakdown { type OffloadingMetrics (line 130) | interface OffloadingMetrics { type CreateGenerationRequest (line 145) | interface CreateGenerationRequest { type CreateGenerationResponse (line 160) | interface CreateGenerationResponse { type CurrentGenerationResponse (line 170) | interface CurrentGenerationResponse { type ListGenerationsResponse (line 178) | interface ListGenerationsResponse { type GetGenerationResponse (line 186) | interface GetGenerationResponse { function getOffloadingConfig (line 193) | function getOffloadingConfig(generation: Generation): OffloadingConfig |... function getOffloadingMetrics (line 200) | function getOffloadingMetrics(generation: Generation): OffloadingMetrics... function getLoraDisplayName (line 208) | function getLoraDisplayName(loraPath: string | null | undefined): string... function isMultiGeneration (line 230) | function isMultiGeneration(generation: Generation): boolean { function getGenerationItems (line 238) | function getGenerationItems(generation: Generation): GenerationItem[] { function getCompletedItemsCount (line 245) | function getCompletedItemsCount(generation: Generation): number { function getMultiGenerationStats (line 253) | function getMultiGenerationStats(generation: Generation): { function getAudioFilename (line 295) | function getAudioFilename(audioPath: string): string { FILE: frontend/types/preset.ts type PresetVoice (line 12) | interface PresetVoice { type PresetLanguage (line 21) | interface PresetLanguage { type ListPresetsResponse (line 27) | interface ListPresetsResponse { type ListPresetLanguagesResponse (line 35) | interface ListPresetLanguagesResponse { type CreatePresetRequest (line 39) | interface CreatePresetRequest { type DeletePresetResponse (line 47) | interface DeletePresetResponse { type BatchDeletePresetsResponse (line 52) | interface BatchDeletePresetsResponse { FILE: frontend/types/project.ts type Project (line 1) | interface Project { type ProjectContextType (line 9) | interface ProjectContextType { FILE: frontend/types/quickGenerate.ts type QuickGenerateMode (line 10) | type QuickGenerateMode = 'dialogue' | 'narration'; type QuickGenerateItem (line 15) | interface QuickGenerateItem { type QuickGenerateDetails (line 29) | interface QuickGenerateDetails { type QuickGenerate (line 38) | interface QuickGenerate { type StartQuickGenerateRequest (line 66) | interface StartQuickGenerateRequest { type StartQuickGenerateResponse (line 80) | interface StartQuickGenerateResponse { type CurrentQuickGenerateResponse (line 90) | interface CurrentQuickGenerateResponse { type QuickGenerateHistoryItem (line 98) | interface QuickGenerateHistoryItem { type QuickGenerateHistoryResponse (line 111) | interface QuickGenerateHistoryResponse { function isQuickMultiGeneration (line 120) | function isQuickMultiGeneration(quickGen: QuickGenerate): boolean { function getQuickCompletedItemsCount (line 127) | function getQuickCompletedItemsCount(quickGen: QuickGenerate): number { function getQuickMultiGenerationStats (line 137) | function getQuickMultiGenerationStats(quickGen: QuickGenerate): { FILE: frontend/types/speaker.ts type Speaker (line 1) | interface Speaker { type SpeakerData (line 8) | interface SpeakerData { type SpeakerRole (line 14) | interface SpeakerRole { type VoiceFile (line 24) | interface VoiceFile { type AudioFileExtension (line 32) | type AudioFileExtension = '.wav' | '.mp3' | '.m4a' | '.flac' | '.webm'; constant ACCEPTED_AUDIO_TYPES (line 33) | const ACCEPTED_AUDIO_TYPES = ['audio/wav', 'audio/mpeg', 'audio/mp4', 'a... constant ACCEPTED_AUDIO_EXTENSIONS (line 34) | const ACCEPTED_AUDIO_EXTENSIONS: AudioFileExtension[] = ['.wav', '.mp3',... FILE: frontend/types/task.ts type TaskType (line 12) | type TaskType = 'inference' | 'training' | 'quick_generation' | null; type TaskData (line 17) | type TaskData = Generation | TrainingState | QuickGenerate | null; type CurrentTask (line 22) | interface CurrentTask { type CurrentTaskResponse (line 31) | interface CurrentTaskResponse { function isInferenceTask (line 39) | function isInferenceTask(task: CurrentTask): task is CurrentTask & { typ... function isTrainingTask (line 46) | function isTrainingTask(task: CurrentTask): task is CurrentTask & { type... function isQuickGenerationTask (line 53) | function isQuickGenerationTask(task: CurrentTask): task is CurrentTask &... function hasActiveTask (line 60) | function hasActiveTask(task: CurrentTask | null): boolean { FILE: frontend/types/training.ts type TrainingStatus (line 8) | type TrainingStatus = 'Prepare' | 'Training' | 'Completed' | 'Failed'; type OptimizerType (line 13) | type OptimizerType = 'AdamW' | 'AdamW8bit'; type TrainingDtype (line 18) | type TrainingDtype = 'bfloat16' | 'float8_e4m3fn'; type TrainingState (line 23) | interface TrainingState { type TrainConfig (line 82) | interface TrainConfig { type CreateTrainingRequest (line 114) | interface CreateTrainingRequest { type CreateTrainingResponse (line 122) | interface CreateTrainingResponse { type CurrentTrainingResponse (line 131) | interface CurrentTrainingResponse { type ListTrainingStatesResponse (line 139) | interface ListTrainingStatesResponse { type GetTrainingStateResponse (line 147) | interface GetTrainingStateResponse { type DeleteTrainingResponse (line 154) | interface DeleteTrainingResponse { type BatchDeleteTrainingResponse (line 162) | interface BatchDeleteTrainingResponse { type MetricDataPoint (line 173) | interface MetricDataPoint { type LossMetrics (line 182) | interface LossMetrics { type TimingMetrics (line 194) | interface TimingMetrics { type TrainingMetrics (line 203) | interface TrainingMetrics { type GetTrainingMetricsResponse (line 213) | interface GetTrainingMetricsResponse { constant DEFAULT_TRAIN_CONFIG (line 222) | const DEFAULT_TRAIN_CONFIG: Partial = { FILE: test_generation_offloading.py class GenerationMetrics (line 61) | class GenerationMetrics: function parse_txt_script (line 81) | def parse_txt_script(txt_content: str) -> Tuple[List[str], List[str]]: function get_vram_usage (line 121) | def get_vram_usage() -> Tuple[float, float]: function load_model (line 132) | def load_model(model_file: str, config_path: str, dtype: torch.dtype, function run_generation (line 177) | def run_generation(args, offload_config: Optional[OffloadConfig] = None)... function print_summary (line 347) | def print_summary(metrics: GenerationMetrics, config_name: str = "Defaul... function benchmark_configurations (line 399) | def benchmark_configurations(args): function parse_args (line 471) | def parse_args(): function main (line 597) | def main(): FILE: test_offloading.py function get_memory_usage (line 35) | def get_memory_usage(): function test_model_loading (line 44) | def test_model_loading(offload_config=None, model_path="models/converted... function test_inference_speed (line 119) | def test_inference_speed(model, num_iterations=5): function main (line 193) | def main(): FILE: tests/test_logging.py function test_basic_usage (line 12) | def test_basic_usage(): function test_custom_level (line 23) | def test_custom_level(): function test_custom_format (line 32) | def test_custom_format(): function test_file_logging (line 44) | def test_file_logging(): function test_custom_handler (line 64) | def test_custom_handler(): function test_logger_reuse (line 94) | def test_logger_reuse(): function test_environment_levels (line 104) | def test_environment_levels(): function test_reset_logger (line 119) | def test_reset_logger(): function test_hierarchical_loggers (line 133) | def test_hierarchical_loggers(): function test_no_propagation (line 148) | def test_no_propagation(): function demo_real_world_usage (line 161) | def demo_real_world_usage(): FILE: tests/test_lora_network.py class TestLoRANetwork (line 6) | class TestLoRANetwork: method test_includes_layers (line 9) | def test_includes_layers(self): method test_includes_layers_specific_patterns (line 76) | def test_includes_layers_specific_patterns(self): FILE: tests/test_training_service.py class TestDateTimeEncoder (line 16) | class TestDateTimeEncoder: method test_datetime_serialization (line 19) | def test_datetime_serialization(self): method test_nested_datetime_serialization (line 29) | def test_nested_datetime_serialization(self): method test_non_datetime_objects_still_work (line 46) | def test_non_datetime_objects_still_work(self): class TestFileHandlerJsonSerialization (line 62) | class TestFileHandlerJsonSerialization: method setup_method (line 65) | def setup_method(self): method teardown_method (line 70) | def teardown_method(self): method test_write_json_with_datetime (line 74) | def test_write_json_with_datetime(self): method test_write_json_atomic_with_datetime (line 94) | def test_write_json_atomic_with_datetime(self): class TestTrainingStateJsonSerialization (line 115) | class TestTrainingStateJsonSerialization: method setup_method (line 118) | def setup_method(self): method teardown_method (line 123) | def teardown_method(self): method test_training_state_round_trip (line 127) | def test_training_state_round_trip(self): method test_training_state_with_datetime_objects_in_dict (line 158) | def test_training_state_with_datetime_objects_in_dict(self): method test_fallback_datetime_encoder_handles_raw_datetime (line 191) | def test_fallback_datetime_encoder_handles_raw_datetime(self): class TestTrainingServiceListJobs (line 216) | class TestTrainingServiceListJobs: method setup_method (line 219) | def setup_method(self): method teardown_method (line 224) | def teardown_method(self): method test_list_jobs_with_orphaned_training_status (line 228) | def test_list_jobs_with_orphaned_training_status(self): FILE: util/float8_scale.py function cast_bias_weight (line 12) | def cast_bias_weight(module, input :torch.Tensor=None, dtype: torch.dtyp... class ResetParametersMixin (line 38) | class ResetParametersMixin: method reset_parameters (line 39) | def reset_parameters(self): class AutoCast (line 42) | class AutoCast: class Linear (line 43) | class Linear(nn.Linear, ResetParametersMixin): method fp8_linear (line 45) | def fp8_linear(self, input): method forward_comfy_cast_weights (line 90) | def forward_comfy_cast_weights(self, input): method forward (line 98) | def forward(self, *args, **kwargs): class Conv1d (line 103) | class Conv1d(torch.nn.Conv1d, ResetParametersMixin): method reset_parameters (line 104) | def reset_parameters(self): method forward_comfy_cast_weights (line 107) | def forward_comfy_cast_weights(self, input): method forward (line 111) | def forward(self, *args, **kwargs): class Conv2d (line 117) | class Conv2d(torch.nn.Conv2d, ResetParametersMixin): method reset_parameters (line 118) | def reset_parameters(self): method forward_comfy_cast_weights (line 121) | def forward_comfy_cast_weights(self, input): method forward (line 125) | def forward(self, *args, **kwargs): class GroupNorm (line 131) | class GroupNorm(torch.nn.GroupNorm, ResetParametersMixin): method reset_parameters (line 132) | def reset_parameters(self): method forward_comfy_cast_weights (line 135) | def forward_comfy_cast_weights(self, input): method forward (line 139) | def forward(self, *args, **kwargs): class LayerNorm (line 145) | class LayerNorm(torch.nn.LayerNorm, ResetParametersMixin): method reset_parameters (line 146) | def reset_parameters(self): method forward_comfy_cast_weights (line 149) | def forward_comfy_cast_weights(self, input): method forward (line 157) | def forward(self, *args, **kwargs): class QwenRMSNorm (line 163) | class QwenRMSNorm(QwenRMSNorm, ResetParametersMixin): method reset_parameters (line 164) | def reset_parameters(self): method forward_comfy_cast_weights (line 168) | def forward_comfy_cast_weights(self, input): method forward (line 176) | def forward(self, *args, **kwargs): class ConvTranspose2d (line 182) | class ConvTranspose2d(torch.nn.ConvTranspose2d, ResetParametersMixin): method reset_parameters (line 183) | def reset_parameters(self): method forward_comfy_cast_weights (line 186) | def forward_comfy_cast_weights(self, input, output_size=None): method forward (line 197) | def forward(self, *args, **kwargs): class ConvTranspose1d (line 203) | class ConvTranspose1d(torch.nn.ConvTranspose1d, ResetParametersMixin): method reset_parameters (line 204) | def reset_parameters(self): method forward_comfy_cast_weights (line 207) | def forward_comfy_cast_weights(self, input, output_size=None): method forward (line 218) | def forward(self, *args, **kwargs): class Embedding (line 224) | class Embedding(torch.nn.Embedding, ResetParametersMixin): method reset_parameters (line 225) | def reset_parameters(self): method forward_comfy_cast_weights (line 229) | def forward_comfy_cast_weights(self, input, out_dtype=None): method forward (line 234) | def forward(self, *args, **kwargs): FILE: util/logger.py function _get_log_level (line 50) | def _get_log_level(level: Optional[Union[int, str]] = None) -> int: function _create_console_handler (line 80) | def _create_console_handler( function _create_file_handler (line 102) | def _create_file_handler( function get_logger (line 153) | def get_logger( function configure_root_logger (line 271) | def configure_root_logger( function reset_logger (line 298) | def reset_logger(name: str) -> None: function reset_all_loggers (line 311) | def reset_all_loggers() -> None: FILE: util/logger_examples.py class VoiceGenerator (line 43) | class VoiceGenerator: method __init__ (line 44) | def __init__(self): method generate (line 47) | def generate(self, text): FILE: util/model_utils.py function addnet_hash_legacy (line 11) | def addnet_hash_legacy(b): function addnet_hash_safetensors (line 19) | def addnet_hash_safetensors(b): function precalculate_safetensors_hashes (line 36) | def precalculate_safetensors_hashes(tensors, metadata): function merge_lora_weights (line 53) | def merge_lora_weights(model: nn.Module, lora_path: str, lora_weight: fl... FILE: util/rand_init.py function get_generator (line 7) | def get_generator(seeds: int = 42, force_set: bool = False) -> torch.Gen... FILE: util/safetensors_util.py class SafetensorFileInfo (line 7) | class SafetensorFileInfo: method __init__ (line 8) | def __init__(self, filename: str): method _read_header (line 13) | def _read_header(self, file): method keys (line 25) | def keys(self): class MemoryEfficientSafeOpen (line 34) | class MemoryEfficientSafeOpen: method __init__ (line 41) | def __init__(self, filename): method __enter__ (line 51) | def __enter__(self): method __exit__ (line 55) | def __exit__(self, exc_type, exc_val, exc_tb): method keys (line 59) | def keys(self): method metadata (line 67) | def metadata(self) -> Dict[str, str]: method _read_header (line 75) | def _read_header(self): method get_tensor (line 87) | def get_tensor(self, key: str, device: Optional[torch.device] = None, ... method _deserialize_tensor (line 162) | def _deserialize_tensor(self, byte_tensor: torch.Tensor, metadata: Dict): method _get_torch_dtype (line 183) | def _get_torch_dtype(dtype_str): method _convert_float8 (line 213) | def _convert_float8(byte_tensor, dtype_str, shape): class MultipleSafetensorLoader (line 236) | class MultipleSafetensorLoader: method __init__ (line 238) | def __init__(self, model_index_file: str): method load_dict (line 252) | def load_dict(self) -> Dict: FILE: util/vibevoice_norm.py class QwenRMSNorm (line 6) | class QwenRMSNorm(nn.Module): method __init__ (line 7) | def __init__(self, hidden_size, eps=1e-6): method forward (line 15) | def forward(self, hidden_states, weights=None): method extra_repr (line 26) | def extra_repr(self): class RMSNorm (line 29) | class RMSNorm(nn.Module): method __init__ (line 30) | def __init__(self, dim: int, eps: float = 1e-5, elementwise_affine=Tru... method _norm (line 41) | def _norm(self, x): method forward (line 44) | def forward(self, x): method extra_repr (line 50) | def extra_repr(self) -> str: FILE: vibevoice/generation/visitor.py class GenerationVisitor (line 5) | class GenerationVisitor(ABC): method visit_preprocessing (line 8) | def visit_preprocessing(self, timestamp: float = None): method visit_inference_start (line 12) | def visit_inference_start(self, scripts: List[str] = None, method visit_inference_batch_start (line 19) | def visit_inference_batch_start(self, batch_index: int, seeds: int): method visit_inference_batch_end (line 23) | def visit_inference_batch_end(self, batch_index: int): method visit_inference_save_audio_file (line 27) | def visit_inference_save_audio_file(self, output_audio_path: str = None, method visit_inference_step_start (line 38) | def visit_inference_step_start(self, current_step: int, total_steps: i... method visit_inference_step_end (line 42) | def visit_inference_step_end(self, current_step: int, total_steps: int): method visit_completed (line 46) | def visit_completed(self, message: str = None): method visit_failed (line 50) | def visit_failed(self, message: str, failure_type: str): FILE: vibevoice/lora/lora_network.py class LoRAModule (line 13) | class LoRAModule(nn.Module): method __init__ (line 25) | def __init__(self, method apply_to (line 57) | def apply_to(self): method forward (line 63) | def forward(self, x): class LoRANetwork (line 94) | class LoRANetwork(nn.Module): method __init__ (line 96) | def __init__( method _includes_layers (line 183) | def _includes_layers(self) -> List[re.Pattern]: method prepare_network (line 214) | def prepare_network(self, args): method set_multiplier (line 220) | def set_multiplier(self, multiplier): method set_enabled (line 225) | def set_enabled(self, is_enabled): method load_weights (line 229) | def load_weights(self, file): method apply_to (line 240) | def apply_to(self): method is_mergeable (line 249) | def is_mergeable(self): method merge_to (line 252) | def merge_to(self, weights_sd, dtype=None, device=None, non_blocking=F... method set_loraplus_lr_ratio (line 273) | def set_loraplus_lr_ratio(self, loraplus_lr_ratio): method prepare_optimizer_params (line 278) | def prepare_optimizer_params(self, learning_rate: float = 1e-4, **kwar... method enable_gradient_checkpointing (line 323) | def enable_gradient_checkpointing(self): method prepare_grad_etc (line 327) | def prepare_grad_etc(self, unet): method on_epoch_start (line 330) | def on_epoch_start(self, unet): method on_step_start (line 333) | def on_step_start(self): method get_trainable_params (line 336) | def get_trainable_params(self): method save_weights (line 339) | def save_weights(self, file: str, dtype: torch.dtype, metadata: Dict[s... method apply_max_norm_regularization (line 367) | def apply_max_norm_regularization(self, max_norm_value, device): function create_network (line 411) | def create_network(original_model: nn.Module, FILE: vibevoice/modular/adaptive_offload.py class AdaptiveOffloadManager (line 20) | class AdaptiveOffloadManager: method estimate_vram_usage (line 43) | def estimate_vram_usage( method recommend_offload_config (line 104) | def recommend_offload_config( method get_available_vram_gb (line 157) | def get_available_vram_gb(device: Optional[torch.device] = None) -> fl... method get_total_vram_gb (line 186) | def get_total_vram_gb(device: Optional[torch.device] = None) -> float: method auto_configure (line 208) | def auto_configure( method print_vram_table (line 285) | def print_vram_table(use_float8: bool = True, logger: Optional[logging... method get_preset_config (line 335) | def get_preset_config(preset: str) -> OffloadConfig: FILE: vibevoice/modular/custom_offloading_utils.py class OffloadConfig (line 28) | class OffloadConfig: class LayerOffloader (line 63) | class LayerOffloader: method __init__ (line 79) | def __init__( method _setup_offloading (line 136) | def _setup_offloading(self): method _initialize_offloaded_layer (line 182) | def _initialize_offloaded_layer(self, layer_idx: int): method _copy_layer_gpu_to_staging_buffer (line 227) | def _copy_layer_gpu_to_staging_buffer(self, layer_idx: int): method _release_layer_gpu_memory (line 279) | def _release_layer_gpu_memory(self, layer_idx: int): method _async_move_to_gpu (line 319) | def _async_move_to_gpu(self, layer_idx: int): method _async_move_to_cpu (line 332) | def _async_move_to_cpu(self, layer_idx: int): method _ensure_layer_on_gpu (line 348) | def _ensure_layer_on_gpu(self, layer_idx: int): method _register_hooks (line 397) | def _register_hooks(self): method _pre_forward_transfer (line 420) | def _pre_forward_transfer(self, layer_idx: int, _module: nn.Module, ar... method _post_forward_transfer (line 455) | def _post_forward_transfer(self, layer_idx: int, _module: nn.Module, o... method _start_async_prefetch (line 514) | def _start_async_prefetch(self, layer_idx: int): method _prefetch_layer_sync (line 557) | def _prefetch_layer_sync(self, layer_idx: int): method synchronize (line 574) | def synchronize(self): method get_memory_stats (line 579) | def get_memory_stats(self) -> Dict[str, Any]: method get_stats (line 607) | def get_stats(self) -> Dict[str, Any]: method _print_profile_summary (line 658) | def _print_profile_summary(self): method print_stats (line 742) | def print_stats(self): method cleanup (line 765) | def cleanup(self): method __del__ (line 785) | def __del__(self): FILE: vibevoice/modular/modeling_vibevoice.py class VibeVoiceCausalLMOutputWithPast (line 23) | class VibeVoiceCausalLMOutputWithPast: class LlamaRMSNorm (line 32) | class LlamaRMSNorm(nn.Module): method __init__ (line 33) | def __init__(self, hidden_size, eps=1e-6): method forward (line 41) | def forward(self, hidden_states): method extra_repr (line 51) | def extra_repr(self): class VibeVoiceGenerationOutput (line 57) | class VibeVoiceGenerationOutput(ModelOutput): class SpeechConnector (line 71) | class SpeechConnector(nn.Module): method __init__ (line 72) | def __init__(self, input_dim, output_dim, dtype: torch.dtype = torch.b... method forward (line 79) | def forward(self, features, **kwargs): class VibeVoicePreTrainedModel (line 87) | class VibeVoicePreTrainedModel(nn.Module): method _init_weights (line 101) | def _init_weights(self, module): class VibeVoiceModel (line 123) | class VibeVoiceModel(VibeVoicePreTrainedModel): method __init__ (line 124) | def __init__(self, config: VibeVoiceConfig): method get_input_embeddings (line 163) | def get_input_embeddings(self): method set_input_embeddings (line 173) | def set_input_embeddings(self, value): method set_speech_tokenizers (line 176) | def set_speech_tokenizers(self, acoustic_tokenizer=None, semantic_toke... method forward (line 188) | def forward(self, class VibeVoiceForConditionalGeneration (line 227) | class VibeVoiceForConditionalGeneration(VibeVoicePreTrainedModel): method __init__ (line 231) | def __init__(self, config): method get_input_embeddings (line 238) | def get_input_embeddings(self): method set_input_embeddings (line 241) | def set_input_embeddings(self, value): method get_output_embeddings (line 244) | def get_output_embeddings(self): method set_decoder (line 247) | def set_decoder(self, decoder): method get_decoder (line 250) | def get_decoder(self): method tie_weights (line 253) | def tie_weights(self): method set_output_embeddings (line 282) | def set_output_embeddings(self, new_embeddings): method forward_speech_features (line 287) | def forward_speech_features(self, speech_tensors=None, method forward (line 342) | def forward(self, input_ids: torch.LongTensor = None, FILE: vibevoice/modular/modeling_vibevoice_inference.py class VibeVoiceCausalLMOutputWithPast (line 34) | class VibeVoiceCausalLMOutputWithPast(BaseModelOutputWithPast): class VibeVoiceGenerationOutput (line 45) | class VibeVoiceGenerationOutput(ModelOutput): class VibeVoiceTokenConstraintProcessor (line 59) | class VibeVoiceTokenConstraintProcessor(LogitsProcessor): method __init__ (line 62) | def __init__(self, valid_token_ids: List[int], device: torch.device = ... method __call__ (line 65) | def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTen... class VibeVoiceForConditionalInference (line 74) | class VibeVoiceForConditionalInference(nn.Module): method __init__ (line 78) | def __init__(self, config: VibeVoiceConfig): method generate_config_from_dict (line 108) | def generate_config_from_dict(self, config_dict: Dict) -> GenerationCo... method __del__ (line 113) | def __del__(self): method noise_scheduler (line 122) | def noise_scheduler(self): method prediction_head (line 126) | def prediction_head(self): method speech_scaling_factor (line 130) | def speech_scaling_factor(self): method speech_bias_factor (line 134) | def speech_bias_factor(self): method acoustic_tokenizer (line 138) | def acoustic_tokenizer(self): method semantic_tokenizer (line 142) | def semantic_tokenizer(self): method acoustic_connector (line 146) | def acoustic_connector(self): method semantic_connector (line 150) | def semantic_connector(self): method tie_weights (line 153) | def tie_weights(self): method get_input_embeddings (line 160) | def get_input_embeddings(self): method set_input_embeddings (line 163) | def set_input_embeddings(self, value): method get_output_embeddings (line 166) | def get_output_embeddings(self): method set_output_embeddings (line 169) | def set_output_embeddings(self, new_embeddings): method set_speech_tokenizers (line 172) | def set_speech_tokenizers(self, acoustic_tokenizer=None, semantic_toke... method set_ddpm_inference_steps (line 176) | def set_ddpm_inference_steps(self, num_steps=None): method _process_speech_inputs (line 179) | def _process_speech_inputs(self, speech_tensors, speech_masks, speech_... method forward (line 209) | def forward( method _build_generate_config_model_kwargs (line 284) | def _build_generate_config_model_kwargs(self, generation_config, input... method generate (line 353) | def generate( method _ensure_prediction_head_on_gpu (line 832) | def _ensure_prediction_head_on_gpu(self): method _move_prediction_head_to_cpu (line 838) | def _move_prediction_head_to_cpu(self): method sample_speech_tokens (line 847) | def sample_speech_tokens(self, condition, neg_condition, cfg_scale=3.0... method _prepare_generation_config (line 872) | def _prepare_generation_config(self, generation_config: Optional[Gener... method _prepare_special_tokens (line 906) | def _prepare_special_tokens( method from_pretrain (line 965) | def from_pretrain(cls, model_path: str, config: VibeVoiceConfig, devic... method _prepare_model_inputs (line 1050) | def _prepare_model_inputs( method _get_stopping_criteria (line 1075) | def _get_stopping_criteria( method prepare_inputs_for_generation (line 1097) | def prepare_inputs_for_generation( method _prepare_cache_for_generation (line 1156) | def _prepare_cache_for_generation( method _update_model_kwargs_for_generation (line 1177) | def _update_model_kwargs_for_generation( method _cache_dependant_input_preparation (line 1213) | def _cache_dependant_input_preparation( method forward_speech_features (line 1242) | def forward_speech_features(self, method call_for_train (line 1290) | def call_for_train(self, method mask_for_ce (line 1431) | def mask_for_ce(self, labels: torch.Tensor, attention_mask: torch.Tens... FILE: vibevoice/modular/modular_vibevoice_diffusion_head.py class RMSNorm (line 13) | class RMSNorm(nn.Module): method __init__ (line 14) | def __init__(self, dim: int, eps: float = 1e-6, elementwise_affine=Tru... method _norm (line 24) | def _norm(self, x): method forward (line 27) | def forward(self, x): method extra_repr (line 36) | def extra_repr(self) -> str: function modulate (line 39) | def modulate(x, shift, scale): class TimestepEmbedder (line 44) | class TimestepEmbedder(nn.Module): method __init__ (line 52) | def __init__(self, hidden_size, frequency_embedding_size=256): method timestep_embedding (line 63) | def timestep_embedding(t, dim, max_period=10000): method forward (line 86) | def forward(self, t): class FeedForwardNetwork (line 92) | class FeedForwardNetwork(nn.Module): method __init__ (line 100) | def __init__( method forward (line 112) | def forward(self, x): class HeadLayer (line 121) | class HeadLayer(nn.Module): method __init__ (line 131) | def __init__( method forward (line 153) | def forward(self, x, c): class FinalLayer (line 158) | class FinalLayer(nn.Module): method __init__ (line 168) | def __init__(self, hidden_size, output_size, cond_size, norm_eps=1e-5): method forward (line 178) | def forward(self, x, c): class VibeVoiceDiffusionHead (line 184) | class VibeVoiceDiffusionHead(nn.Module): method __init__ (line 198) | def __init__(self, config, dtype: torch.dtype = torch.bfloat16): method initialize_weights (line 232) | def initialize_weights(self): method forward (line 246) | def forward( FILE: vibevoice/modular/modular_vibevoice_qwen.py function dynamic_rope_update (line 16) | def dynamic_rope_update(rope_forward): function default_rope_parameters (line 78) | def default_rope_parameters( function rotate_half (line 119) | def rotate_half(x): function apply_rotary_pos_emb (line 125) | def apply_rotary_pos_emb(q, k, cos, sin, position_ids=None, unsqueeze_di... function repeat_kv (line 151) | def repeat_kv(hidden_states: torch.Tensor, n_rep: int) -> torch.Tensor: function eager_attention_forward (line 162) | def eager_attention_forward( function sdpa_attention_forward (line 186) | def sdpa_attention_forward( class QwenRotaryEmbedding (line 236) | class QwenRotaryEmbedding(nn.Module): method __init__ (line 237) | def __init__(self, config: QwenConfig, device=None): method forward (line 255) | def forward(self, x, position_ids): class Qwen2MLP (line 269) | class Qwen2MLP(nn.Module): method __init__ (line 270) | def __init__(self, config: QwenConfig): method forward (line 280) | def forward(self, x): class Qwen2Attention (line 285) | class Qwen2Attention(nn.Module): method __init__ (line 286) | def __init__(self, config: QwenConfig, layer_idx: int): method forward (line 301) | def forward( class QwenDecoderLayer (line 347) | class QwenDecoderLayer(nn.Module): method __init__ (line 348) | def __init__(self, config: QwenConfig, layer_idx: int): method forward (line 359) | def forward( class QwenModel (line 397) | class QwenModel(nn.Module): method __init__ (line 405) | def __init__(self, config: QwenConfig, dtype: torch.dtype = torch.bflo... method forward (line 422) | def forward( class Qwen2ForCausalLM (line 496) | class Qwen2ForCausalLM(nn.Module): method __init__ (line 497) | def __init__(self, config): method forward (line 505) | def forward( method from_pretrained (line 541) | def from_pretrained(cls, pretrained_model_name_or_path: str, config: Q... FILE: vibevoice/modular/modular_vibevoice_text_tokenizer.py class VibeVoiceTextTokenizer (line 10) | class VibeVoiceTextTokenizer(Qwen2Tokenizer): method __init__ (line 35) | def __init__( method _add_vibevoice_special_tokens (line 64) | def _add_vibevoice_special_tokens(self): method eos_id (line 85) | def eos_id(self) -> int: method speech_start_id (line 90) | def speech_start_id(self) -> int: method speech_end_id (line 95) | def speech_end_id(self) -> int: method speech_diffusion_id (line 100) | def speech_diffusion_id(self) -> int: method pad_id (line 105) | def pad_id(self) -> int: class VibeVoiceTextTokenizerFast (line 110) | class VibeVoiceTextTokenizerFast(Qwen2TokenizerFast): method __init__ (line 134) | def __init__( method _add_vibevoice_special_tokens (line 161) | def _add_vibevoice_special_tokens(self): method eos_id (line 184) | def eos_id(self) -> int: method speech_start_id (line 189) | def speech_start_id(self) -> int: method speech_end_id (line 194) | def speech_end_id(self) -> int: method speech_diffusion_id (line 199) | def speech_diffusion_id(self) -> int: method pad_id (line 204) | def pad_id(self) -> int: FILE: vibevoice/modular/modular_vibevoice_tokenizer.py class ConvLayerNorm (line 26) | class ConvLayerNorm(nn.LayerNorm): method __init__ (line 31) | def __init__(self, normalized_shape: tp.Union[int, tp.List[int], torch... method forward (line 34) | def forward(self, x): class RMSNorm (line 44) | class RMSNorm(nn.Module): method __init__ (line 45) | def __init__(self, dim: int, eps: float = 1e-5, elementwise_affine=Tru... method _norm (line 56) | def _norm(self, x): method forward (line 59) | def forward(self, x): method extra_repr (line 68) | def extra_repr(self) -> str: class ConvRMSNorm (line 71) | class ConvRMSNorm(RMSNorm): method __init__ (line 72) | def __init__(self, dim: int, eps: float = 1e-5, elementwise_affine=Tru... method forward (line 75) | def forward(self, x): function apply_parametrization_norm (line 92) | def apply_parametrization_norm(module: nn.Module, norm: str = 'none') ->... function get_norm_module (line 104) | def get_norm_module(module: nn.Module, causal: bool = False, norm: str =... function get_extra_padding_for_conv1d (line 120) | def get_extra_padding_for_conv1d(x: torch.Tensor, kernel_size: int, stri... function pad1d (line 129) | def pad1d(x: torch.Tensor, paddings: tp.Tuple[int, int], mode: str = 'ze... function unpad1d (line 147) | def unpad1d(x: torch.Tensor, paddings: tp.Tuple[int, int]): class NormConv1d (line 156) | class NormConv1d(nn.Module): method __init__ (line 158) | def __init__(self, *args, causal: bool = False, norm: str = 'none', method forward (line 165) | def forward(self, x): class NormConvTranspose1d (line 170) | class NormConvTranspose1d(nn.Module): method __init__ (line 172) | def __init__(self, *args, causal: bool = False, norm: str = 'none', method forward (line 179) | def forward(self, x): class VibeVoiceTokenizerStreamingCache (line 184) | class VibeVoiceTokenizerStreamingCache: method __init__ (line 186) | def __init__(self): method get (line 189) | def get(self, layer_id: str, sample_indices: torch.Tensor) -> Optional... method set (line 219) | def set(self, layer_id: str, sample_indices: torch.Tensor, states: tor... method set_to_zero (line 225) | def set_to_zero(self, sample_indices: torch.Tensor): method clear (line 234) | def clear(self, layer_id: Optional[str] = None, sample_indices: Option... class SConv1d (line 249) | class SConv1d(nn.Module): method __init__ (line 251) | def __init__(self, in_channels: int, out_channels: int, method layer_id (line 282) | def layer_id(self): method forward (line 287) | def forward(self, x: torch.Tensor, method _forward_streaming (line 318) | def _forward_streaming(self, x: torch.Tensor, method _forward_non_streaming (line 375) | def _forward_non_streaming(self, x: torch.Tensor, debug: bool = False)... class SConvTranspose1d (line 411) | class SConvTranspose1d(nn.Module): method __init__ (line 413) | def __init__(self, in_channels: int, out_channels: int, method layer_id (line 443) | def layer_id(self): method forward (line 448) | def forward(self, x: torch.Tensor, method _forward_streaming (line 468) | def _forward_streaming(self, x: torch.Tensor, method _forward_non_streaming (line 541) | def _forward_non_streaming(self, x: torch.Tensor, debug: bool = False)... class FFN (line 569) | class FFN(nn.Module): method __init__ (line 570) | def __init__(self, method forward (line 580) | def forward(self, x): class Convlayer (line 586) | class Convlayer(nn.Module): method __init__ (line 587) | def __init__(self, method forward (line 603) | def forward(self, x): class Block1D (line 606) | class Block1D(nn.Module): method __init__ (line 607) | def __init__(self, dim, kernel_size=7, drop_path=0., mixer_layer='conv', method forward (line 647) | def forward(self, x): class TokenizerEncoder (line 674) | class TokenizerEncoder(nn.Module): method __init__ (line 681) | def __init__(self, config): method forward_features (line 769) | def forward_features(self, x, cache=None, sample_indices=None, use_cac... method forward (line 809) | def forward(self, x, cache=None, sample_indices=None, use_cache=False,... class TokenizerDecoder (line 814) | class TokenizerDecoder(nn.Module): method __init__ (line 821) | def __init__(self, config): method forward_features (line 920) | def forward_features(self, x, cache=None, sample_indices=None, use_cac... method forward (line 960) | def forward(self, x, cache=None, sample_indices=None, use_cache=False,... class VibeVoiceTokenizerEncoderOutput (line 966) | class VibeVoiceTokenizerEncoderOutput: method sample (line 977) | def sample(self, dist_type='fix'): method kl (line 1010) | def kl(self): method mode (line 1015) | def mode(self): class VibeVoiceAcousticTokenizerModel (line 1019) | class VibeVoiceAcousticTokenizerModel(nn.Module): method __init__ (line 1029) | def __init__(self, config, dtype: torch.dtype = torch.bfloat16): method _init_weights (line 1087) | def _init_weights(self, module): method encode (line 1102) | def encode(self, audio, cache=None, sample_indices=None, use_cache=Fal... method sampling (line 1108) | def sampling(self, encoder_output, dist_type=None): method decode (line 1120) | def decode(self, latents, cache=None, sample_indices=None, use_cache=F... method forward (line 1130) | def forward(self, audio, cache=None, sample_indices=None, use_cache=Fa... class VibeVoiceSemanticTokenizerModel (line 1137) | class VibeVoiceSemanticTokenizerModel(nn.Module): method __init__ (line 1147) | def __init__(self, config, dtype: torch.dtype = torch.bfloat16): method _init_weights (line 1180) | def _init_weights(self, module): method encode (line 1195) | def encode(self, audio, cache=None, sample_indices=None, use_cache=Fal... method sampling (line 1201) | def sampling(self, encoder_output, dist_type=None): method forward (line 1205) | def forward(self, audio, cache=None, sample_indices=None, use_cache=Fa... FILE: vibevoice/modular/streamer.py class AudioStreamer (line 13) | class AudioStreamer(BaseStreamer): method __init__ (line 27) | def __init__( method put (line 42) | def put(self, audio_chunks: torch.Tensor, sample_indices: torch.Tensor): method end (line 57) | def end(self, sample_indices: Optional[torch.Tensor] = None): method __iter__ (line 78) | def __iter__(self): method get_stream (line 82) | def get_stream(self, sample_idx: int): class AudioSampleIterator (line 89) | class AudioSampleIterator: method __init__ (line 92) | def __init__(self, streamer: AudioStreamer, sample_idx: int): method __iter__ (line 96) | def __iter__(self): method __next__ (line 99) | def __next__(self): class AudioBatchIterator (line 106) | class AudioBatchIterator: method __init__ (line 109) | def __init__(self, streamer: AudioStreamer): method __iter__ (line 113) | def __iter__(self): method __next__ (line 116) | def __next__(self): class AsyncAudioStreamer (line 150) | class AsyncAudioStreamer(AudioStreamer): method __init__ (line 155) | def __init__( method put (line 166) | def put(self, audio_chunks: torch.Tensor, sample_indices: torch.Tensor): method end (line 176) | def end(self, sample_indices: Optional[torch.Tensor] = None): method get_stream (line 190) | async def get_stream(self, sample_idx: int): method __aiter__ (line 201) | def __aiter__(self): class AsyncAudioBatchIterator (line 206) | class AsyncAudioBatchIterator: method __init__ (line 209) | def __init__(self, streamer: AsyncAudioStreamer): method __aiter__ (line 213) | def __aiter__(self): method __anext__ (line 216) | async def __anext__(self): method _get_chunk (line 262) | async def _get_chunk(self, idx): FILE: vibevoice/processor/vibevoice_processor.py class VibeVoiceProcessor (line 19) | class VibeVoiceProcessor: method __init__ (line 37) | def __init__(self, tokenizer=None, audio_processor=None, speech_tok_co... method from_pretrained (line 46) | def from_pretrained(cls, pretrained_model_name_or_path, **kwargs): method save_pretrained (line 130) | def save_pretrained(self, save_directory: Union[str, os.PathLike], **k... method __call__ (line 164) | def __call__( method _process_single (line 247) | def _process_single( method _batch_encode (line 307) | def _batch_encode( method _create_voice_prompt (line 407) | def _create_voice_prompt( method prepare_speech_inputs (line 462) | def prepare_speech_inputs( method _convert_json_to_script (line 512) | def _convert_json_to_script(self, json_file: str) -> str: method _convert_text_to_script (line 559) | def _convert_text_to_script(self, text_file: str) -> str: method _parse_script (line 597) | def _parse_script(self, script: str) -> List[Tuple[int, str]]: method _merge_inputs (line 634) | def _merge_inputs(self, text_inputs: BatchEncoding, audio_inputs: Dict... method batch_decode (line 647) | def batch_decode(self, *args, **kwargs): method decode (line 654) | def decode(self, *args, **kwargs): method model_input_names (line 662) | def model_input_names(self): method save_audio (line 670) | def save_audio(self, audio: Union[torch.Tensor, np.ndarray, List[Union... FILE: vibevoice/processor/vibevoice_tokenizer_processor.py class AudioNormalizer (line 17) | class AudioNormalizer: method __init__ (line 25) | def __init__(self, target_dB_FS: float = -25, eps: float = 1e-6): method tailor_dB_FS (line 36) | def tailor_dB_FS(self, audio: np.ndarray) -> tuple: method avoid_clipping (line 51) | def avoid_clipping(self, audio: np.ndarray, scalar: Optional[float] = ... method __call__ (line 71) | def __call__(self, audio: np.ndarray) -> np.ndarray: class VibeVoiceTokenizerProcessor (line 89) | class VibeVoiceTokenizerProcessor(FeatureExtractionMixin): method __init__ (line 106) | def __init__( method _ensure_mono (line 133) | def _ensure_mono(self, audio: np.ndarray) -> np.ndarray: method _process_single_audio (line 161) | def _process_single_audio(self, audio: Union[np.ndarray, List[float]])... method __call__ (line 186) | def __call__( method _load_audio_from_path (line 269) | def _load_audio_from_path(self, audio_path: str) -> np.ndarray: method preprocess_audio (line 309) | def preprocess_audio( method to_dict (line 344) | def to_dict(self) -> Dict[str, Any]: method save_audio (line 350) | def save_audio( method _prepare_audio_for_save (line 457) | def _prepare_audio_for_save(self, audio: np.ndarray, normalize: bool) ... FILE: vibevoice/schedule/dpm_solver.py function betas_for_alpha_bar (line 28) | def betas_for_alpha_bar( function rescale_zero_terminal_snr (line 87) | def rescale_zero_terminal_snr(betas): class DPMSolverMultistepScheduler (line 122) | class DPMSolverMultistepScheduler(SchedulerMixin, ConfigMixin): method __init__ (line 203) | def __init__( method step_index (line 298) | def step_index(self): method begin_index (line 305) | def begin_index(self): method set_begin_index (line 311) | def set_begin_index(self, begin_index: int = 0): method set_timesteps (line 321) | def set_timesteps( method _threshold_sample (line 426) | def _threshold_sample(self, sample: torch.Tensor) -> torch.Tensor: method _sigma_to_t (line 460) | def _sigma_to_t(self, sigma, log_sigmas): method _sigma_to_alpha_sigma_t (line 483) | def _sigma_to_alpha_sigma_t(self, sigma): method _convert_to_karras (line 490) | def _convert_to_karras(self, in_sigmas: torch.Tensor, num_inference_st... method _convert_to_lu (line 515) | def _convert_to_lu(self, in_lambdas: torch.Tensor, num_inference_steps... method convert_model_output (line 528) | def convert_model_output( method dpm_solver_first_order_update (line 627) | def dpm_solver_first_order_update( method multistep_dpm_solver_second_order_update (line 696) | def multistep_dpm_solver_second_order_update( method multistep_dpm_solver_third_order_update (line 819) | def multistep_dpm_solver_third_order_update( method index_for_timestep (line 904) | def index_for_timestep(self, timestep, schedule_timesteps=None): method _init_step_index (line 923) | def _init_step_index(self, timestep): method step (line 935) | def step( method add_noise (line 1024) | def add_noise( method get_velocity (line 1046) | def get_velocity(self, original_samples: torch.Tensor, noise: torch.Te... method __len__ (line 1064) | def __len__(self): FILE: vibevoice/schedule/timestep_sampler.py class UniformSampler (line 4) | class UniformSampler: method __init__ (line 5) | def __init__(self, timesteps: int = 1000): method sample (line 8) | def sample(self, batch_size, device): class LogitNormalSampler (line 11) | class LogitNormalSampler: method __init__ (line 12) | def __init__(self, timesteps: int = 1000, m: int = 0, s: int = 1): method sample (line 18) | def sample(self, batch_size: int, device: torch.device): FILE: vibevoice/scripts/convert_nnscaler_checkpoint_to_transformers.py function convert_vibevoice_nnscaler_checkpoint_to_hf (line 20) | def convert_vibevoice_nnscaler_checkpoint_to_hf( function main (line 133) | def main(): FILE: vibevoice/training/dataset.py function _resample_if_needed (line 21) | def _resample_if_needed(wav: np.ndarray, orig_sr: int, target_sr: int) -... class VibeVoiceDataset (line 36) | class VibeVoiceDataset: method __init__ (line 37) | def __init__( method __len__ (line 49) | def __len__(self) -> int: method __getitem__ (line 52) | def __getitem__(self, idx: int) -> Dict[str, Any]: function _apply_silence_with_crossfade (line 101) | def _apply_silence_with_crossfade( function _load_audio_to_24k (line 164) | def _load_audio_to_24k( class VibeVoiceCollator (line 195) | class VibeVoiceCollator: method __call__ (line 209) | def __call__(self, features: Sequence[Dict[str, Any]]) -> Dict[str, Any]: FILE: vibevoice/training/fake_trainer.py class FakeTrainer (line 13) | class FakeTrainer(Trainer): method __init__ (line 14) | def __init__(self, method _train (line 21) | def _train(self): method mock_save_model (line 192) | def mock_save_model(self, epoch_no: int, steps: int, is_final: bool = ... method training_cleanup (line 218) | def training_cleanup(self): FILE: vibevoice/training/summary_visitor.py class SummaryVisitor (line 6) | class SummaryVisitor(TrainerVisitor): method __init__ (line 17) | def __init__(self, log_prefix: str = None, step_loss_interval: int = 1... method visit_training_begin (line 27) | def visit_training_begin(self, timestamp: float, batch_size: int, tota... method visit_training_end (line 45) | def visit_training_end(self, timestamp: float, loss: float, diffusion_... method visit_step_begin (line 67) | def visit_step_begin(self, timestamp: float, step: int, epoch: int, st... method visit_step_end (line 72) | def visit_step_end(self, timestamp: float, step: int, epoch: int, step... method visit_epoch_begin (line 98) | def visit_epoch_begin(self, timestamp: float, epoch: int, lr: float): method visit_epoch_end (line 107) | def visit_epoch_end(self, timestamp: float, epoch: int, epoch_elapsed:... method visit_training_failed (line 126) | def visit_training_failed(self, timestamp, error_msg): method visit_lora_file_saved (line 129) | def visit_lora_file_saved(self, lora_file: str): method visit_final_lora_file_saved (line 132) | def visit_final_lora_file_saved(self, lora_file: str): FILE: vibevoice/training/trainer.py class TrainConfig (line 28) | class TrainConfig: method from_dict (line 57) | def from_dict(cls, config_dict: dict) -> "TrainConfig": method from_toml (line 88) | def from_toml(cls, toml_path: str) -> "TrainConfig": method to_metadata (line 94) | def to_metadata(self) -> Dict[str, Any]: method to_dict (line 122) | def to_dict(self) -> Dict[str, Any]: class Trainer (line 125) | class Trainer(ABC): method __init__ (line 127) | def __init__(self, train_config: TrainConfig, visitor: Optional[Traine... method train (line 133) | def train(self): method _train (line 137) | def _train(self): method training_cleanup (line 141) | def training_cleanup(self): class VibeVoiceTrainer (line 144) | class VibeVoiceTrainer(Trainer): method __init__ (line 146) | def __init__(self, train_config: TrainConfig, visitor: Optional[Traine... method _train (line 162) | def _train(self): method save_model (line 337) | def save_model(self, metadata: Dict[str, str], network: LoRANetwork, s... method _preprocess_inputs (line 346) | def _preprocess_inputs(self, inputs: Dict[str, Any]) -> Dict[str, Any]: method _to_device (line 372) | def _to_device(self, inputs: dict) -> dict: method get_model_config (line 378) | def get_model_config(self) -> dict: method _load_model (line 396) | def _load_model(self, model_file: Path, method _get_optimizer (line 421) | def _get_optimizer(self, trainable_params: list[torch.nn.Parameter]) -... method _get_dataloader (line 478) | def _get_dataloader(self, processor: VibeVoiceProcessor, model: VibeVo... method _patch_acoustic_encode_for_legacy_indexing (line 513) | def _patch_acoustic_encode_for_legacy_indexing(self, model_obj): method training_cleanup (line 548) | def training_cleanup(self): FILE: vibevoice/training/trainer_visitor.py class TrainerVisitor (line 4) | class TrainerVisitor(ABC): method visit_training_begin (line 6) | def visit_training_begin(self, timestamp: float, batch_size: int, tota... method visit_training_end (line 10) | def visit_training_end(self, timestamp: float, loss: float, diffusion_... method visit_step_begin (line 14) | def visit_step_begin(self, timestamp: float, step: int, epoch: int, st... method visit_step_end (line 18) | def visit_step_end(self, timestamp: float, step: int, epoch: int, step... method visit_epoch_begin (line 22) | def visit_epoch_begin(self, timestamp: float, epoch: int, lr: float): method visit_epoch_end (line 26) | def visit_epoch_end(self, timestamp: float, epoch: int, epoch_elapsed:... method visit_training_failed (line 30) | def visit_training_failed(self, timestamp: float, error_msg: str): method visit_lora_file_saved (line 34) | def visit_lora_file_saved(self, lora_file: str): method visit_final_lora_file_saved (line 38) | def visit_final_lora_file_saved(self, lora_file: str): class VisitorManager (line 42) | class VisitorManager(TrainerVisitor): method __init__ (line 43) | def __init__(self): method register_visitor (line 46) | def register_visitor(self, visitor: TrainerVisitor): method visit_training_begin (line 49) | def visit_training_begin(self, timestamp: float, batch_size: int, tota... method visit_training_end (line 53) | def visit_training_end(self, timestamp: float, loss: float, diffusion_... method visit_step_begin (line 57) | def visit_step_begin(self, timestamp: float, step: int, epoch: int, st... method visit_step_end (line 61) | def visit_step_end(self, timestamp: float, step: int, epoch: int, step... method visit_epoch_begin (line 65) | def visit_epoch_begin(self, timestamp: float, epoch: int, lr: float): method visit_epoch_end (line 69) | def visit_epoch_end(self, timestamp: float, epoch: int, epoch_elapsed:... method visit_training_failed (line 73) | def visit_training_failed(self, timestamp: float, error_msg: str): method visit_lora_file_saved (line 77) | def visit_lora_file_saved(self, lora_file: str): method visit_final_lora_file_saved (line 81) | def visit_final_lora_file_saved(self, lora_file: str):