[FIXED] Actualizar URLs de modelos de voz en claude_voice.py

- 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 <noreply@anthropic.com>
This commit is contained in:
Mauro Rosero P. 2025-03-30 16:08:34 -05:00
parent 4b025f904e
commit 431473e0f1
Signed by: mrosero
GPG key ID: 83BD2A5F674B7E26

View file

@ -84,7 +84,25 @@ def download_model(language="es"):
if "-" in lang_code and lang_code not in language_map.values(): if "-" in lang_code and lang_code not in language_map.values():
lang_code = lang_code.split("-")[0] 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): if os.path.exists(model_path):
return model_path return model_path
@ -97,8 +115,10 @@ def download_model(language="es"):
try: try:
# Importar wget solo cuando se necesita # Importar wget solo cuando se necesita
import wget import wget
url = f"https://alphacephei.com/vosk/models/vosk-model-small-{lang_code}.zip" url = model_urls[lang_code]
zip_path = os.path.expanduser(f"~/.vosk/models/vosk-model-small-{lang_code}.zip") 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 # Descargar el modelo
wget.download(url, zip_path) wget.download(url, zip_path)
@ -112,7 +132,7 @@ def download_model(language="es"):
# Eliminar el zip # Eliminar el zip
os.remove(zip_path) 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 return model_path
except Exception as e: except Exception as e:
print(f"{Colors.RED}Error al descargar el modelo: {e}{Colors.END}") print(f"{Colors.RED}Error al descargar el modelo: {e}{Colors.END}")