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

语音设置

语音转文字 (STT) 和文字转语音 (TTS) 功能的配置

语音介绍

语音配置包含统一的 speech: 部分下的语音转文字 (STT) 和文字转语音 (TTS) 设置。此外,还有一个用于用户特定设置的全新 speechTab 菜单。

另请参阅: 有关详细的 YAML 配置模式及所有可用选项,请参阅 Speech Object Structure 文档。

环境变量

在使用基于云的 STT/TTS 服务时,您需要在 .env 文件中设置 API 密钥:

# 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

然后,这些密钥会在您的 librechat.yaml 配置文件中通过 ${STT_API_KEY}${TTS_API_KEY} 进行引用。

语音选项卡 (可选)

speechTab 菜单提供了针对对话模式和高级模式的可自定义选项,以及 STT 和 TTS 的详细设置。这将为用户设置默认配置。

示例:

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 (语音转文字)

语音转文字 (STT) 功能可将口述内容转换为书面文本。要启用 STT,请点击 STT 按钮(位于发送按钮附近)或使用组合键 ++Ctrl+Alt+L++ 来开始转录。

可用的 STT 服务

  • 本地 STT
    • 基于浏览器的
    • Whisper (已在 LocalAI 上测试)
  • 云端 STT
    • OpenAI Whisper
    • Azure Whisper
    • 其他兼容 OpenAI 的 STT 服务

配置本地 STT

  • Browser-based

    无需设置。请确保在语音设置选项卡中启用了“Speech To Text”开关,并在引擎下拉菜单中选择了“Browser”。

  • Whisper 本地部署

    需要一个本地的 Whisper 实例。

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

配置 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'

Azure Endpoint 域名支持

instanceName 字段支持以下两种 Azure OpenAI 域名格式:

  • 新格式.cognitiveservices.azure.com(例如 my-instance.cognitiveservices.azure.com
  • 旧版格式.openai.azure.com(例如 my-instance.openai.azure.com

您可以指定完整域名或仅指定实例名称。如果您提供包含 .azure.com 的完整域名,它将按原样使用。否则,为了向后兼容,将应用旧版的 .openai.azure.com 格式。

请参考 OpenAI Whisper 部分,根据需要调整 urlmodel

示例

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

TTS (文本转语音)

文本转语音 (TTS) 功能可将书面文本转换为口语。目前提供多种 TTS 服务:

可用的 TTS 服务

  • 本地 TTS
    • 基于浏览器的
    • Piper (已在 LocalAI 上测试)
    • Coqui (已在 LocalAI 上测试)
  • 云端 TTS
    • OpenAI TTS
    • Azure OpenAI
    • ElevenLabs
    • 其他兼容 OpenAI/ElevenLabs 的 TTS 服务

配置本地 TTS

无需设置。请确保在语音设置选项卡中启用了“Text To Speech”开关,并在引擎下拉菜单中选择了“Browser”。

需要一个本地的 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"

需要一个本地的 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'

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

Azure Endpoint 域名支持

instanceName 字段支持以下两种 Azure OpenAI 域名格式:

  • 新格式.cognitiveservices.azure.com(例如 my-instance.cognitiveservices.azure.com
  • 旧版格式.openai.azure.com(例如 my-instance.openai.azure.com

您可以指定完整域名或仅指定实例名称。如果您提供包含 .azure.com 的完整域名,它将按原样使用。否则,为了向后兼容,将应用旧版的 .openai.azure.com 格式。

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

可以按照以下方式添加额外的 ElevenLabs 特定参数:

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

请参考 OpenAI TTS 部分,并根据需要调整 url 变量。

示例:

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

请参考 ElevenLabs 部分,并根据需要调整 url 变量。

示例:

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

这篇指南怎么样?