1.2 - Rvc-gui Voice Models 2
def _run_conversion(self, in_file, out_file): try: run_rvc(self.selected_model, in_file, out_file) self.root.after(0, lambda: self._play_result(out_file)) except Exception as e: self.root.after(0, lambda: messagebox.showerror("Error", str(e)))
def scan_models(self): for row in self.tree.get_children(): self.tree.delete(row) self.model_list = [] folder = self.models_dir.get() if not os.path.isdir(folder): return for f in os.listdir(folder): if f.endswith(".pth"): path = os.path.join(folder, f) size_mb = os.path.getsize(path) / (1024*1024) mod_time = datetime.fromtimestamp(os.path.getmtime(path)).strftime("%Y-%m-%d") node = self.tree.insert("", "end", text=f, values=(f"{size_mb:.1f}", mod_time)) self.model_list.append((f, path)) self.status.config(text=f"Found {len(self.model_list)} models") RVC-GUI Voice Models 2 1.2
def on_model_select(self, event): sel = self.tree.selection() if not sel: return model_name = self.tree.item(sel[0], "text") model_path = None for name, path in self.model_list: if name == model_name: model_path = path break if model_path: self.selected_model = model_path self.show_model_info(model_path) out_file): try: run_rvc(self.selected_model
# Conversion frame convert_frame = tk.Frame(root) convert_frame.pack(fill=tk.X, padx=10, pady=5) tk.Button(convert_frame, text="Load Audio & Convert", command=self.convert_audio).pack(side=tk.LEFT, padx=5) tk.Button(convert_frame, text="Record & Convert", command=self.record_convert).pack(side=tk.LEFT, padx=5) tk.Button(convert_frame, text="Export Model List", command=self.export_list).pack(side=tk.RIGHT, padx=5) "text") model_path = None for name