[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:
parent
431473e0f1
commit
5fec8b3f31
2 changed files with 52 additions and 4 deletions
|
@ -165,8 +165,11 @@ pip install --user vosk pydub sounddevice wget
|
||||||
# Modo interactivo básico (español por defecto)
|
# Modo interactivo básico (español por defecto)
|
||||||
bin/claude_voice.py
|
bin/claude_voice.py
|
||||||
|
|
||||||
# Especificar idioma (inglés)
|
# Ver idiomas soportados
|
||||||
bin/claude_voice.py --language en-US
|
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")
|
# Modo continuo (escucha hasta que digas "salir")
|
||||||
bin/claude_voice.py --continuous
|
bin/claude_voice.py --continuous
|
||||||
|
|
|
@ -71,12 +71,24 @@ def download_model(language="es"):
|
||||||
# Mapeo de códigos de idioma estándar a formato de Vosk
|
# Mapeo de códigos de idioma estándar a formato de Vosk
|
||||||
language_map = {
|
language_map = {
|
||||||
"es-ES": "es",
|
"es-ES": "es",
|
||||||
|
"es-AR": "es",
|
||||||
|
"es-MX": "es",
|
||||||
|
"es-CO": "es",
|
||||||
|
"es": "es",
|
||||||
"en-US": "en-us",
|
"en-US": "en-us",
|
||||||
|
"en-GB": "en-us",
|
||||||
|
"en": "en-us",
|
||||||
"fr-FR": "fr",
|
"fr-FR": "fr",
|
||||||
|
"fr": "fr",
|
||||||
"de-DE": "de",
|
"de-DE": "de",
|
||||||
|
"de": "de",
|
||||||
"it-IT": "it",
|
"it-IT": "it",
|
||||||
|
"it": "it",
|
||||||
"pt-PT": "pt",
|
"pt-PT": "pt",
|
||||||
"ru-RU": "ru"
|
"pt-BR": "pt",
|
||||||
|
"pt": "pt",
|
||||||
|
"ru-RU": "ru",
|
||||||
|
"ru": "ru"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Obtener código de idioma para Vosk
|
# Obtener código de idioma para Vosk
|
||||||
|
@ -305,14 +317,42 @@ def list_audio_devices():
|
||||||
|
|
||||||
return True
|
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():
|
def main():
|
||||||
parser = argparse.ArgumentParser(description='Claude Code Voice - Convierte voz a texto para Claude Code usando reconocimiento local')
|
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('-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('-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('-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('-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-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')
|
parser.add_argument('--install-deps', action='store_true', help='Instalar dependencias')
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
@ -357,6 +397,11 @@ def main():
|
||||||
list_audio_devices()
|
list_audio_devices()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# Listar idiomas si se solicita
|
||||||
|
if args.list_languages:
|
||||||
|
list_languages()
|
||||||
|
return
|
||||||
|
|
||||||
# Enviar texto directo si se proporciona
|
# Enviar texto directo si se proporciona
|
||||||
if args.text:
|
if args.text:
|
||||||
send_to_claude(args.text, args.silent)
|
send_to_claude(args.text, args.silent)
|
||||||
|
|
Loading…
Reference in a new issue