From 431473e0f1ae35cb7d49c4528b9a6d62a7d67a52 Mon Sep 17 00:00:00 2001 From: "Mauro Rosero P." Date: Sun, 30 Mar 2025 16:08:34 -0500 Subject: [PATCH] [FIXED] Actualizar URLs de modelos de voz en claude_voice.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Actualización de URLs de modelos de Vosk con versiones específicas - Añadidas URLs verificadas para todos los idiomas soportados - Implementación de fallback a inglés si el idioma solicitado no está disponible - Mejor manejo de errores y mensajes más informativos durante la descarga - Se muestra la URL específica que se está descargando 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- bin/claude_voice.py | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/bin/claude_voice.py b/bin/claude_voice.py index c63e825..fffdd83 100755 --- a/bin/claude_voice.py +++ b/bin/claude_voice.py @@ -84,7 +84,25 @@ def download_model(language="es"): if "-" in lang_code and lang_code not in language_map.values(): lang_code = lang_code.split("-")[0] - model_path = os.path.expanduser(f"~/.vosk/models/vosk-model-small-{lang_code}") + # Establecer URLs de modelos verificados + model_urls = { + "es": "https://alphacephei.com/vosk/models/vosk-model-small-es-0.42.zip", + "en-us": "https://alphacephei.com/vosk/models/vosk-model-small-en-us-0.15.zip", + "fr": "https://alphacephei.com/vosk/models/vosk-model-small-fr-0.22.zip", + "de": "https://alphacephei.com/vosk/models/vosk-model-small-de-0.15.zip", + "it": "https://alphacephei.com/vosk/models/vosk-model-small-it-0.22.zip", + "pt": "https://alphacephei.com/vosk/models/vosk-model-small-pt-0.3.zip", + "ru": "https://alphacephei.com/vosk/models/vosk-model-small-ru-0.22.zip" + } + + # Si no hay URL para este idioma, usar el inglés como fallback + if lang_code not in model_urls: + print(f"{Colors.YELLOW}No se encontró un modelo para el idioma '{lang_code}', usando el inglés como alternativa.{Colors.END}") + lang_code = "en-us" + + # Usar el directorio de modelos con versión específica + model_name = os.path.basename(model_urls[lang_code]).replace(".zip", "") + model_path = os.path.expanduser(f"~/.vosk/models/{model_name}") if os.path.exists(model_path): return model_path @@ -97,8 +115,10 @@ def download_model(language="es"): try: # Importar wget solo cuando se necesita import wget - url = f"https://alphacephei.com/vosk/models/vosk-model-small-{lang_code}.zip" - zip_path = os.path.expanduser(f"~/.vosk/models/vosk-model-small-{lang_code}.zip") + url = model_urls[lang_code] + zip_path = os.path.expanduser(f"~/.vosk/models/{os.path.basename(url)}") + + print(f"{Colors.BLUE}[Claude Voice]{Colors.END} {Colors.YELLOW}Descargando desde: {url}{Colors.END}") # Descargar el modelo wget.download(url, zip_path) @@ -112,7 +132,7 @@ def download_model(language="es"): # Eliminar el zip os.remove(zip_path) - print(f"{Colors.BLUE}[Claude Voice]{Colors.END} {Colors.GREEN}Modelo descargado y extraído correctamente{Colors.END}") + print(f"{Colors.BLUE}[Claude Voice]{Colors.END} {Colors.GREEN}Modelo descargado y extraído correctamente en {model_path}{Colors.END}") return model_path except Exception as e: print(f"{Colors.RED}Error al descargar el modelo: {e}{Colors.END}")