Compare commits

1 Commits
Author SHA1 Message Date
inference-admin e8da85f730 chat: fix and complete voice chat (STT/TTS) wiring — full endpoint URLs, live gateway key, engine defaults
The speech section shipped 6 Nov was doubly broken: LibreChat POSTs to
speech.*.openai.url VERBATIM in 0.8.8, so the base '/v1' URL 404'd, and the
STT_API_KEY/TTS_API_KEY env values held a key that no longer exists on the
gateway (401 token_not_found). Also:
- STT: tinfoil/voxtral-small-24b (token-priced; gateway bills ~$0.00008/request,
  125x under the flat $0.01/request whisper; same TEE provider, verified equal
  quality on dictation clips). Whisper remains allowed on the key as fallback.
- TTS voices: full provider speaker list (an unknown voice 400s at the gateway).
- speechTab: object form seeds Settings->Speech defaults (engineSTT/engineTTS
  external, voice casual_female) for members who never saved their own.
- new gateway key: alias librechat-speech, $5/30d, audio models only, injected
  as STT_API_KEY/TTS_API_KEY app env.

Verified on a throwaway librechat-test install then live (chat.inference.coop):
config/get serves the defaults; /api/files/speech/stt returns a correct
transcript; /api/files/speech/tts/manual returns audio. Known gap (gateway-side,
NOT this repo): aspeech rows log $0 spend — voxtral-tts is unmetered on the
gateway's aspeech path while the co-op pays ~$0.002/request.
2026-11-07 18:56:45 +00:00
4 changed files with 4 additions and 10 deletions

No files matched your search

+2 -2
View File
@@ -1,6 +1,6 @@
{
"id": "ai.librechat.cloudronapp",
"version": "1.4.8",
"version": "1.4.5",
"title": "LibreChat",
"upstreamVersion": "0.8.8",
"author": "Danny Avila",
@@ -55,5 +55,5 @@
"https://screenshots.cloudron.io/ai.librechat.cloudronapp/librechat-01.png"
],
"icon": "file://logo.png",
"dockerImage": "registry.inference.coop/co-op/librechat-custom:20261106-c2aec74"
"dockerImage": "registry.inference.coop/co-op/librechat-custom:20261031-2a98892"
}
+1 -1
View File
@@ -20,7 +20,7 @@
# the manifest's scheduler task). All other behavior lives on the
# persistent volume (/app/data/librechat.yaml, /app/data/env,
# /app/data/mcp/) and survives image updates unchanged.
FROM cloudron/ai.librechat.cloudronapp:202611030321030000
FROM cloudron/ai.librechat.cloudronapp:202610230221180000
# Login-page + header logo (the client bundle references assets/logo.svg)
COPY assets/logo.svg /app/code/librechat/client/dist/assets/logo.svg
-6
View File
@@ -166,12 +166,6 @@ speech:
advancedMode: false
speechToText:
engineSTT: external
# Pin the transcription LANGUAGE default to English. Without it the
# client sends no language param and voxtral-small-24b auto-detects —
# which misfired once as Spanish on a short first mic press (reported
# 2026-11-07). Members who save their own language in Settings -> Speech
# always override this default.
languageSTT: "en"
textToSpeech:
engineTTS: external
voice: casual_female
+1 -1
View File
@@ -28,7 +28,7 @@ set -euo pipefail
APP=${APP:-4023ccbf-d57a-4500-97df-14de9cf3516e}
REGISTRY_REPO=${REGISTRY_REPO:-registry.inference.coop/co-op/librechat-custom}
SERVER=${SERVER:-my.inference.coop}
BASE_IMAGE=${BASE_IMAGE:-cloudron/ai.librechat.cloudronapp:202611030321030000}
BASE_IMAGE=${BASE_IMAGE:-cloudron/ai.librechat.cloudronapp:202610150224320000}
MANIFEST=CloudronManifest.json
die() { printf 'release.sh: %s\n' "$*" >&2; exit 1; }