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

Paramètres vocaux

Configuration des fonctionnalités de synthèse vocale (TTS) et de reconnaissance vocale (STT)

Introduction à la synthèse vocale

La configuration vocale inclut des paramètres pour la conversion parole-texte (STT) et texte-parole (TTS) sous une section speech: unifiée. De plus, un nouveau menu speechTab est disponible pour les paramètres spécifiques à l'utilisateur.

Voir aussi : Pour le schéma de configuration YAML détaillé et toutes les options disponibles, consultez la documentation Speech Object Structure.

Variables d'environnement

Lorsque vous utilisez des services STT/TTS basés sur le cloud, vous devrez définir les clés API dans votre fichier .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

Ces clés sont ensuite référencées dans votre configuration librechat.yaml en utilisant ${STT_API_KEY} et ${TTS_API_KEY}.

Onglet Speech (optionnel)

Le menu speechTab propose des options personnalisables pour les modes conversation et avancé, ainsi que des paramètres détaillés pour STT et TTS. Cela définira les paramètres par défaut pour les utilisateurs.

exemple :

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 fonctionnalité Speech-to-Text (STT) convertit les mots prononcés en texte écrit. Pour activer le STT, cliquez sur le bouton STT (près du bouton d'envoi) ou utilisez la combinaison de touches ++Ctrl+Alt+L++ pour démarrer la transcription.

Services STT disponibles

  • STT local
    • Basé sur le navigateur
    • Whisper (testé sur LocalAI)
  • Cloud STT
    • OpenAI Whisper
    • Azure Whisper
    • Autres services STT compatibles avec OpenAI

Configuration de STT local

  • Browser-based

    Aucune configuration requise. Assurez-vous que l'option « Speech To Text » est activée dans l'onglet des paramètres vocaux et que « Browser » est sélectionné dans le menu déroulant du moteur.

  • Whisper Local

    Nécessite une instance Whisper locale.

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

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

Prise en charge du domaine de l'endpoint Azure

Le champ instanceName prend en charge les deux formats de domaine Azure OpenAI :

  • Nouveau format : .cognitiveservices.azure.com (par ex. my-instance.cognitiveservices.azure.com)
  • Format hérité : .openai.azure.com (par ex. my-instance.openai.azure.com)

Vous pouvez spécifier soit le domaine complet, soit simplement le nom de l'instance. Si vous fournissez un domaine complet incluant .azure.com, il sera utilisé tel quel. Sinon, le format hérité .openai.azure.com sera appliqué pour assurer la compatibilité ascendante.

Reportez-vous à la section OpenAI Whisper, en ajustant l' url et le model selon vos besoins.

exemple

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

TTS (Text-to-Speech)

La fonctionnalité de synthèse vocale (TTS) convertit le texte écrit en mots parlés. Divers services TTS sont disponibles :

Services TTS disponibles

  • TTS local
    • Basé sur le navigateur
    • Piper (testé sur LocalAI)
    • Coqui (testé sur LocalAI)
  • Cloud TTS
    • OpenAI TTS
    • Azure OpenAI
    • ElevenLabs
    • Autres services TTS compatibles OpenAI/ElevenLabs

Configuration de la TTS locale

Aucune configuration requise. Assurez-vous que l'option "Text To Speech" est activée dans l'onglet des paramètres vocaux et que "Browser" est sélectionné dans le menu déroulant du moteur.

Nécessite une instance Piper locale.

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"

Nécessite une instance Coqui locale.

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'

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

Prise en charge du domaine de l'endpoint Azure

Le champ instanceName prend en charge les deux formats de domaine Azure OpenAI :

  • Nouveau format : .cognitiveservices.azure.com (par ex. my-instance.cognitiveservices.azure.com)
  • Format hérité : .openai.azure.com (par ex. my-instance.openai.azure.com)

Vous pouvez spécifier soit le domaine complet, soit simplement le nom de l'instance. Si vous fournissez un domaine complet incluant .azure.com, il sera utilisé tel quel. Sinon, le format hérité .openai.azure.com sera appliqué pour assurer la compatibilité ascendante.

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

Des paramètres supplémentaires spécifiques à ElevenLabs peuvent être ajoutés comme suit :

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

Reportez-vous à la section OpenAI TTS, en ajustant la variable url si nécessaire

exemple :

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

Reportez-vous à la section ElevenLabs, en ajustant la variable url si nécessaire

exemple :

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

Que pensez-vous de ce guide ?