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

Ustawienia mowy

Konfiguracja funkcji zamiany mowy na tekst (STT) oraz tekstu na mowę (TTS)

Wprowadzenie do mowy

Konfiguracja mowy (Speech Configuration) obejmuje ustawienia zarówno dla zamiany mowy na tekst (STT), jak i tekstu na mowę (TTS) w ramach ujednoliconej sekcji speech:. Dodatkowo dostępna jest nowa karta speechTab w menu ustawień użytkownika.

Zobacz także: Szczegółowy schemat konfiguracji YAML oraz wszystkie dostępne opcje znajdują się w dokumentacji Speech Object Structure.

Zmienne środowiskowe

Podczas korzystania z usług STT/TTS opartych na chmurze, należy ustawić klucze API w pliku .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

Te klucze są następnie przywoływane w konfiguracji librechat.yaml przy użyciu ${STT_API_KEY} oraz ${TTS_API_KEY}.

Karta mowy (opcjonalne)

Menu speechTab zapewnia konfigurowalne opcje dla trybów konwersacji i zaawansowanego, a także szczegółowe ustawienia dla STT i TTS. Pozwoli to na określenie domyślnych ustawień dla użytkowników.

przykład:

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)

Funkcja zamiany mowy na tekst (STT) konwertuje wypowiedziane słowa na tekst pisany. Aby włączyć STT, kliknij przycisk STT (znajdujący się obok przycisku wysyłania) lub użyj kombinacji klawiszy ++Ctrl+Alt+L++, aby rozpocząć transkrypcję.

Dostępne usługi STT

  • Lokalne STT
    • Oparte na przeglądarce
    • Whisper (przetestowano na LocalAI)
  • Cloud STT
    • OpenAI Whisper
    • Azure Whisper
    • Inne usługi STT kompatybilne z OpenAI

Konfigurowanie lokalnego STT

  • Browser-based

    Nie wymaga konfiguracji. Upewnij się, że przełącznik "Speech To Text" w zakładce ustawień mowy jest włączony, a w menu rozwijanym silnika wybrano opcję "Browser".

  • Whisper Local

    Wymaga lokalnej instancji Whisper.

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

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

Obsługa domeny endpointu Azure

Pole instanceName obsługuje oba formaty domen Azure OpenAI:

  • Nowy format: .cognitiveservices.azure.com (np. my-instance.cognitiveservices.azure.com)
  • Starszy format: .openai.azure.com (np. my-instance.openai.azure.com)

Możesz podać pełną domenę lub tylko nazwę instancji. Jeśli podasz pełną domenę, w tym .azure.com, zostanie ona użyta w niezmienionej formie. W przeciwnym razie, dla zachowania kompatybilności wstecznej, zostanie zastosowany starszy format .openai.azure.com.

Zapoznaj się z sekcją OpenAI Whisper, dostosowując url oraz model w razie potrzeby.

przykład

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

TTS (Text-to-Speech)

Funkcja Text-to-Speech (TTS) przekształca tekst pisany na słowa mówione. Dostępne są różne usługi TTS:

Dostępne usługi TTS

  • Lokalny TTS
    • Oparte na przeglądarce
    • Piper (przetestowano na LocalAI)
    • Coqui (przetestowano na LocalAI)
  • Cloud TTS
    • OpenAI TTS
    • Azure OpenAI
    • ElevenLabs
    • Inne usługi TTS kompatybilne z OpenAI/ElevenLabs

Konfigurowanie lokalnego TTS

Nie jest wymagana żadna konfiguracja. Upewnij się, że przełącznik "Text To Speech" w zakładce ustawień mowy jest włączony, a w menu rozwijanym silnika wybrano opcję "Browser".

Wymaga lokalnej instancji 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"

Wymaga lokalnej instancji 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'

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

Obsługa domeny endpointu Azure

Pole instanceName obsługuje oba formaty domen Azure OpenAI:

  • Nowy format: .cognitiveservices.azure.com (np. my-instance.cognitiveservices.azure.com)
  • Starszy format: .openai.azure.com (np. my-instance.openai.azure.com)

Możesz podać pełną domenę lub tylko nazwę instancji. Jeśli podasz pełną domenę, w tym .azure.com, zostanie ona użyta w niezmienionej formie. W przeciwnym razie, dla zachowania kompatybilności wstecznej, zostanie zastosowany starszy format .openai.azure.com.

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

Dodatkowe parametry specyficzne dla ElevenLabs można dodać w następujący sposób:

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

Zapoznaj się z sekcją OpenAI TTS, dostosowując zmienną url w razie potrzeby

przykład:

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

Zapoznaj się z sekcją ElevenLabs, dostosowując zmienną url w razie potrzeby

przykład:

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

Jaka jest ta instrukcja?