Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Configuración de voz

Configuración de las funciones de voz a texto (STT) y texto a voz (TTS)

Introducción a la voz

La configuración de voz (Speech Configuration) incluye ajustes tanto para la conversión de voz a texto (STT) como de texto a voz (TTS) bajo una sección unificada speech:. Además, hay un nuevo menú speechTab para los ajustes específicos del usuario.

Véase también: Para obtener el esquema de configuración YAML detallado y todas las opciones disponibles, consulte la documentación de Speech Object Structure.

Variables de entorno

Al utilizar servicios de STT/TTS basados en la nube, deberá configurar las claves de API en su archivo .env:

# Speech-to-Text API key (e.g., OpenAI Whisper)
STT_API_KEY=your-stt-api-key
 
# Text-to-Speech API key (e.g., OpenAI TTS, ElevenLabs)
TTS_API_KEY=your-tts-api-key

Estas claves se referencian entonces en su configuración de librechat.yaml usando ${STT_API_KEY} y ${TTS_API_KEY}.

Pestaña de voz (opcional)

El menú speechTab ofrece opciones personalizables para los modos de conversación y avanzado, así como ajustes detallados para STT y TTS. Esto establecerá la configuración predeterminada para los usuarios.

ejemplo:

speech:
  speechTab:
    conversationMode: true
    advancedMode: false
    speechToText:
      engineSTT: "external"
      languageSTT: "English (US)"
      autoTranscribeAudio: true
      decibelValue: -45
      autoSendText: 0
    textToSpeech:
      engineTTS: "external"
      voice: "alloy"
      languageTTS: "en"
      automaticPlayback: true
      playbackRate: 1.0
      cacheTTS: true

STT (Speech-to-Text)

La función de Speech-to-Text (STT) convierte las palabras habladas en texto escrito. Para habilitar STT, haga clic en el botón STT (cerca del botón de enviar) o utilice la combinación de teclas ++Ctrl+Alt+L++ para iniciar la transcripción.

Servicios STT disponibles

  • STT local
    • Basado en navegador
    • Whisper (probado en LocalAI)
  • Cloud STT
    • OpenAI Whisper
    • Azure Whisper
    • Otros servicios de STT compatibles con OpenAI

Configuración de STT local

  • Browser-based

    No se requiere configuración. Asegúrese de que el interruptor "Speech To Text" en la pestaña de configuración de voz esté activado y que "Browser" esté seleccionado en el menú desplegable del motor.

  • Whisper Local

    Requiere una instancia local de Whisper.

speech:
  stt:
    openai:
      url: 'http://host.docker.internal:8080/v1/audio/transcriptions'
      model: 'whisper'

Configuración de Cloud STT

speech:
  stt:
    openai:
      apiKey: '${STT_API_KEY}'
      model: 'whisper-1'
speech:
  stt:
    azureOpenAI:
      instanceName: 'instanceName'
      apiKey: '${STT_API_KEY}'
      deploymentName: 'deploymentName'
      apiVersion: 'apiVersion'

Soporte de dominio para el endpoint de Azure

El campo instanceName admite ambos formatos de dominio de Azure OpenAI:

  • Nuevo formato: .cognitiveservices.azure.com (p. ej., my-instance.cognitiveservices.azure.com)
  • Formato heredado: .openai.azure.com (p. ej., my-instance.openai.azure.com)

Puede especificar el dominio completo o solo el nombre de la instancia. Si proporciona un dominio completo que incluya .azure.com, se utilizará tal cual. De lo contrario, se aplicará el formato heredado .openai.azure.com para la compatibilidad con versiones anteriores.

Consulte la sección de OpenAI Whisper, ajustando la url y el model según sea necesario.

ejemplo

speech:
  stt:
    openai:
      url: 'http://host.docker.internal:8080/v1/audio/transcriptions'
      model: 'whisper'

TTS (Texto a voz)

La función de Text-to-Speech (TTS) convierte texto escrito en palabras habladas. Hay varios servicios de TTS disponibles:

Servicios de TTS disponibles

  • TTS Local
    • Basado en navegador
    • Piper (probado en LocalAI)
    • Coqui (probado en LocalAI)
  • Cloud TTS
    • OpenAI TTS
    • Azure OpenAI
    • ElevenLabs
    • Otros servicios de TTS compatibles con OpenAI/ElevenLabs

Configuración de TTS local

No se requiere configuración. Asegúrese de que el interruptor "Text To Speech" en la pestaña de configuración de voz esté activado y que "Browser" esté seleccionado en el menú desplegable del motor.

Requiere una instancia local de Piper.

speech:
  tts:
    localai:
      url: "http://host.docker.internal:8080/tts"
      apiKey: "EMPTY"
      voices: [
        "en-us-amy-low.onnx",
        "en-us-danny-low.onnx",
        "en-us-libritts-high.onnx",
        "en-us-ryan-high.onnx",
      ]
      backend: "piper"

Requiere una instancia local de Coqui.

speech:
  tts:
    localai:
      url: 'http://localhost:8080/v1/audio/synthesize'
      voices: ['tts_models/en/ljspeech/glow-tts', 'tts_models/en/ljspeech/tacotron2', 'tts_models/en/ljspeech/waveglow']
      backend: 'coqui'

Configuración de Cloud TTS

speech:
  tts:
    openai:
      apiKey: '${TTS_API_KEY}'
      model: 'tts-1'
      voices: ['alloy', 'echo', 'fable', 'onyx', 'nova', 'shimmer']
speech:
  tts:
    azureOpenAI:
      instanceName: ''
      apiKey: '${TTS_API_KEY}'
      deploymentName: ''
      apiVersion: ''
      model: 'tts-1'
      voices: ['alloy', 'echo', 'fable', 'onyx', 'nova', 'shimmer']

Soporte de dominio para el endpoint de Azure

El campo instanceName admite ambos formatos de dominio de Azure OpenAI:

  • Nuevo formato: .cognitiveservices.azure.com (p. ej., my-instance.cognitiveservices.azure.com)
  • Formato heredado: .openai.azure.com (p. ej., my-instance.openai.azure.com)

Puede especificar el dominio completo o solo el nombre de la instancia. Si proporciona un dominio completo que incluya .azure.com, se utilizará tal cual. De lo contrario, se aplicará el formato heredado .openai.azure.com para la compatibilidad con versiones anteriores.

speech:
  tts:
    elevenlabs:
      apiKey: '${TTS_API_KEY}'
      model: 'eleven_multilingual_v2'
      voices: ['202898wioas09d2', 'addwqr324tesfsf', '3asdasr3qrq44w', 'adsadsa']

Se pueden añadir parámetros adicionales específicos de ElevenLabs de la siguiente manera:

      voice_settings:
        similarity_boost: '' # number
        stability: '' # number
        style: '' # number
        use_speaker_boost: # boolean
      pronunciation_dictionary_locators: [''] # list of strings (array)

Consulte la sección OpenAI TTS, ajustando la variable url según sea necesario

ejemplo:

speech:
  tts:
    openai:
      url: 'http://host.docker.internal:8080/v1/audio/synthesize'
      apiKey: '${TTS_API_KEY}'
      model: 'tts-1'
      voices: ['alloy', 'echo', 'fable', 'onyx', 'nova', 'shimmer']

Consulte la sección de ElevenLabs, ajustando la variable url según sea necesario

ejemplo:

speech:
  tts:
    elevenlabs:
      url: 'http://host.docker.internal:8080/v1/audio/synthesize'
      apiKey: '${TTS_API_KEY}'
      model: 'eleven_multilingual_v2'
      voices: ['202898wioas09d2', 'addwqr324tesfsf', '3asdasr3qrq44w', 'adsadsa']

¿Qué te parece esta guía?