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

Configurações de fala

Configuração dos recursos de Speech to Text (STT) e Text to Speech (TTS)

Introdução à Fala

A Configuração de Fala inclui definições tanto para Speech-to-Text (STT) quanto para Text-to-Speech (TTS) sob uma seção speech: unificada. Adicionalmente, há um novo menu speechTab para configurações específicas do usuário.

Veja também: Para o esquema detalhado de configuração YAML e todas as opções disponíveis, consulte a documentação Speech Object Structure.

Variáveis de Ambiente

Ao usar serviços de STT/TTS baseados em nuvem, você precisará definir as chaves de API no seu arquivo .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

Essas chaves são então referenciadas em sua configuração librechat.yaml usando ${STT_API_KEY} e ${TTS_API_KEY}.

Aba Speech (opcional)

O menu speechTab oferece opções personalizáveis para conversação e modos avançados, bem como configurações detalhadas para STT e TTS. Isso definirá as configurações padrão para os usuários.

exemplo:

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)

O recurso de Speech-to-Text (STT) converte palavras faladas em texto escrito. Para habilitar o STT, clique no botão STT (próximo ao botão de enviar) ou use a combinação de teclas ++Ctrl+Alt+L++ para iniciar a transcrição.

Serviços de STT Disponíveis

  • STT Local
    • Baseado no navegador
    • Whisper (testado no LocalAI)
  • Cloud STT
    • OpenAI Whisper
    • Azure Whisper
    • Outros serviços de STT compatíveis com OpenAI

Configurando STT Local

  • Browser-based

    Nenhuma configuração é necessária. Certifique-se de que a opção "Speech To Text" na aba de configurações de voz esteja ativada e que "Browser" esteja selecionado no menu suspenso de engine.

  • Whisper Local

    Requer uma instância local do Whisper.

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

Configurando o 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'

Suporte a Domínio de Endpoint Azure

O campo instanceName suporta ambos os formatos de domínio do Azure OpenAI:

  • Novo formato: .cognitiveservices.azure.com (por exemplo, my-instance.cognitiveservices.azure.com)
  • Formato legado: .openai.azure.com (por exemplo, my-instance.openai.azure.com)

Você pode especificar o domínio completo ou apenas o nome da instância. Se você fornecer um domínio completo incluindo .azure.com, ele será usado como está. Caso contrário, o formato legado .openai.azure.com será aplicado para compatibilidade retroativa.

Consulte a seção OpenAI Whisper, ajustando a url e o model conforme necessário.

exemplo

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

TTS (Text-to-Speech)

O recurso de Text-to-Speech (TTS) converte texto escrito em palavras faladas. Vários serviços de TTS estão disponíveis:

Serviços de TTS Disponíveis

  • TTS Local
    • Baseado no navegador
    • Piper (testado no LocalAI)
    • Coqui (testado no LocalAI)
  • Cloud TTS
    • OpenAI TTS
    • Azure OpenAI
    • ElevenLabs
    • Outros serviços de TTS compatíveis com OpenAI/ElevenLabs

Configurando TTS Local

Nenhuma configuração é necessária. Certifique-se de que a opção "Text To Speech" na aba de configurações de fala esteja ativada e que "Browser" esteja selecionado no menu suspenso de mecanismo.

Requer uma instância local do 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"

Requer uma instância local do 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'

Configurando 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']

Suporte a Domínio de Endpoint Azure

O campo instanceName suporta ambos os formatos de domínio do Azure OpenAI:

  • Novo formato: .cognitiveservices.azure.com (por exemplo, my-instance.cognitiveservices.azure.com)
  • Formato legado: .openai.azure.com (por exemplo, my-instance.openai.azure.com)

Você pode especificar o domínio completo ou apenas o nome da instância. Se você fornecer um domínio completo incluindo .azure.com, ele será usado como está. Caso contrário, o formato legado .openai.azure.com será aplicado para compatibilidade retroativa.

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

Parâmetros adicionais específicos do ElevenLabs podem ser adicionados da seguinte forma:

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

Consulte a seção OpenAI TTS, ajustando a variável url conforme necessário

exemplo:

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 a seção ElevenLabs, ajustando a variável url conforme necessário

exemplo:

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']

Como está este guia?