[IMPROVED] Mejorar soporte de idiomas en claude_voice.py

- Añadida opción --list-languages para mostrar idiomas soportados
- Ampliado mapeo de códigos de idioma para incluir más variantes regionales
- Español (es) establecido como idioma predeterminado
- Añadida función para mostrar idiomas soportados con sus nombres
- Actualizado README con nueva información sobre idiomas

🤖 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:09:37 -05:00
parent 431473e0f1
commit 5fec8b3f31
Signed by: mrosero
GPG key ID: 83BD2A5F674B7E26
2 changed files with 52 additions and 4 deletions

View file

@ -165,8 +165,11 @@ pip install --user vosk pydub sounddevice wget
# Modo interactivo básico (español por defecto)
bin/claude_voice.py
# Especificar idioma (inglés)
bin/claude_voice.py --language en-US
# Ver idiomas soportados
bin/claude_voice.py --list-languages
# Usar idioma específico (inglés)
bin/claude_voice.py --language en-us
# Modo continuo (escucha hasta que digas "salir")
bin/claude_voice.py --continuous

View file

@ -71,12 +71,24 @@ def download_model(language="es"):
# Mapeo de códigos de idioma estándar a formato de Vosk
language_map = {
"es-ES": "es",
"es-AR": "es",
"es-MX": "es",
"es-CO": "es",
"es": "es",
"en-US": "en-us",
"en-GB": "en-us",
"en": "en-us",
"fr-FR": "fr",
"fr": "fr",
"de-DE": "de",
"de": "de",
"it-IT": "it",
"it": "it",
"pt-PT": "pt",
"ru-RU": "ru"
"pt-BR": "pt",
"pt": "pt",
"ru-RU": "ru",
"ru": "ru"
}
# Obtener código de idioma para Vosk
@ -305,14 +317,42 @@ def list_audio_devices():
return True
def get_supported_languages():
"""Devuelve una lista de idiomas soportados"""
return {
"es": "Español",
"en-us": "Inglés (EEUU)",
"fr": "Francés",
"de": "Alemán",
"it": "Italiano",
"pt": "Portugués",
"ru": "Ruso"
}
def list_languages():
"""Muestra una lista de idiomas soportados"""
languages = get_supported_languages()
print(f"{Colors.BLUE}[Claude Voice]{Colors.END} {Colors.GREEN}Idiomas soportados:{Colors.END}")
print(f"{Colors.CYAN}{'Código':<8} {'Idioma':<20}{Colors.END}")
print("-" * 30)
for code, name in languages.items():
print(f"{code:<8} {name:<20}")
# Mostrar información sobre los alias
print(f"\n{Colors.YELLOW}Nota: Todos los códigos regionales (es-ES, es-AR, etc.) se mapean al idioma base (es).{Colors.END}")
return True
def main():
parser = argparse.ArgumentParser(description='Claude Code Voice - Convierte voz a texto para Claude Code usando reconocimiento local')
parser.add_argument('-l', '--language', default='es-ES', help='Idioma para reconocimiento (ej. es-ES, en-US)')
parser.add_argument('-l', '--language', default='es', help='Idioma para reconocimiento (ej. es, en-us)')
parser.add_argument('-c', '--continuous', action='store_true', help='Modo continuo - escucha constantemente hasta que digas "salir"')
parser.add_argument('-t', '--text', help='Texto a enviar directamente (sin reconocimiento de voz)')
parser.add_argument('-s', '--silent', action='store_true', help='Modo silencioso - no muestra mensajes extra')
parser.add_argument('-d', '--device', type=int, help='ID del dispositivo de audio a utilizar')
parser.add_argument('--list-devices', action='store_true', help='Listar dispositivos de audio disponibles')
parser.add_argument('--list-languages', action='store_true', help='Listar idiomas soportados')
parser.add_argument('--install-deps', action='store_true', help='Instalar dependencias')
args = parser.parse_args()
@ -357,6 +397,11 @@ def main():
list_audio_devices()
return
# Listar idiomas si se solicita
if args.list_languages:
list_languages()
return
# Enviar texto directo si se proporciona
if args.text:
send_to_claude(args.text, args.silent)