[PR #5596] [MERGED] feat: add server-side speech-to-text with OpenAI provider #5491

Closed
opened 2026-06-05 15:21:31 -04:00 by yindo · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/Mintplex-Labs/anything-llm/pull/5596
Author: @shatfield4
Created: 5/7/2026
Status: Merged
Merged: 6/1/2026
Merged by: @timothycarambat

Base: masterHead: feat/stt-server-foundation-openai


📝 Commits (10+)

  • 5482395 feat: add server-side speech-to-text with OpenAI provider
  • 34eb343 extract shared mic button and silence detector for STT
  • d240556 dynamically fetch openai stt models from api
  • b454bdc Merge remote-tracking branch 'origin/master' into feat/stt-server-foundation-openai
  • db805b7 Merge branch 'master' into feat/stt-server-foundation-openai
  • 347bcd6 add STT entries to .env.example
  • 551340d filter non-audio uploads in handleAudioUpload
  • c88e97f update translations for STT
  • 648a529 Deepgram provider for STT (#5612)
  • 6c4be17 deepgram nit

📊 Changes

54 files changed (+1707 additions, -138 deletions)

View changed files

collector/convertAudioToWav/index.js (+54 -0)
📝 collector/index.js (+26 -0)
📝 docker/.env.example (+20 -0)
frontend/src/components/SpeechToText/DeepgramOptions/index.jsx (+89 -0)
frontend/src/components/SpeechToText/GenericOpenAiOptions/index.jsx (+66 -0)
frontend/src/components/SpeechToText/LemonadeOptions/index.jsx (+207 -0)
frontend/src/components/SpeechToText/OpenAiOptions/index.jsx (+87 -0)
frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SpeechToText/BrowserNative/index.jsx (+91 -0)
frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SpeechToText/MicButton/index.jsx (+85 -0)
frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SpeechToText/ServerSTT/index.jsx (+132 -0)
📝 frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SpeechToText/index.jsx (+23 -136)
frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SpeechToText/useSilenceDetector.js (+69 -0)
📝 frontend/src/locales/ar/common.js (+4 -0)
📝 frontend/src/locales/ca/common.js (+4 -0)
📝 frontend/src/locales/cs/common.js (+4 -0)
📝 frontend/src/locales/da/common.js (+4 -0)
📝 frontend/src/locales/de/common.js (+5 -0)
📝 frontend/src/locales/en/common.js (+4 -0)
📝 frontend/src/locales/es/common.js (+5 -0)
📝 frontend/src/locales/et/common.js (+4 -0)

...and 34 more files

📄 Description

Pull Request Type

  • feat (New feature)
  • 🐛 fix (Bug fix)
  • ♻️ refactor (Code refactoring without changing behavior)
  • 💄 style (UI style changes)
  • 🔨 chore (Build, CI, maintenance)
  • 📝 docs (Documentation updates)

Relevant Issues

resolves #4732
resolves #3885

connect #5740
connect #5609
connect #5610

Description

  • Adds support for server-side speech-to-text so users can transcribe through cloud providers
  • Lays the foundation for upcoming STT provider PRs (Lemonade, OpenAI Compatible, Deepgram)
  • Adds OpenAI as the first server-side STT provider with a dynamic model picker that filters for transcription models
  • Same mic button UX as before: auto-stops on silence and respects the auto-submit setting, just transcribed by the chosen provider instead of the browser

Visuals (if applicable)

Additional Information

Developer Validations

  • I ran yarn lint from the root of the repo & committed changes
  • Relevant documentation has been updated (if applicable)
  • I have tested my code functionality
  • Docker build succeeds locally

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Mintplex-Labs/anything-llm/pull/5596 **Author:** [@shatfield4](https://github.com/shatfield4) **Created:** 5/7/2026 **Status:** ✅ Merged **Merged:** 6/1/2026 **Merged by:** [@timothycarambat](https://github.com/timothycarambat) **Base:** `master` ← **Head:** `feat/stt-server-foundation-openai` --- ### 📝 Commits (10+) - [`5482395`](https://github.com/Mintplex-Labs/anything-llm/commit/548239595b82a59582272417908c7a1d67e9d0ff) feat: add server-side speech-to-text with OpenAI provider - [`34eb343`](https://github.com/Mintplex-Labs/anything-llm/commit/34eb343bbffc64acea4612e85d63f2138914b815) extract shared mic button and silence detector for STT - [`d240556`](https://github.com/Mintplex-Labs/anything-llm/commit/d24055694c9aa10133ca4469c1f450bee43c53a3) dynamically fetch openai stt models from api - [`b454bdc`](https://github.com/Mintplex-Labs/anything-llm/commit/b454bdc3665f83f165939bc5dc819e3bee0054b4) Merge remote-tracking branch 'origin/master' into feat/stt-server-foundation-openai - [`db805b7`](https://github.com/Mintplex-Labs/anything-llm/commit/db805b7c654b32d06bb9159491b48787b70b12f4) Merge branch 'master' into feat/stt-server-foundation-openai - [`347bcd6`](https://github.com/Mintplex-Labs/anything-llm/commit/347bcd668969a5086ab063867339701582f35e12) add STT entries to .env.example - [`551340d`](https://github.com/Mintplex-Labs/anything-llm/commit/551340d7006958b649a95a2b480a9130a9c4248f) filter non-audio uploads in handleAudioUpload - [`c88e97f`](https://github.com/Mintplex-Labs/anything-llm/commit/c88e97fd37fd917bfcbb302cd1c6bb95011e47e9) update translations for STT - [`648a529`](https://github.com/Mintplex-Labs/anything-llm/commit/648a5290fe5371f0150286131884314821a0c71a) Deepgram provider for STT (#5612) - [`6c4be17`](https://github.com/Mintplex-Labs/anything-llm/commit/6c4be1736c6bce8804173a6cc427eab1582b40d8) deepgram nit ### 📊 Changes **54 files changed** (+1707 additions, -138 deletions) <details> <summary>View changed files</summary> ➕ `collector/convertAudioToWav/index.js` (+54 -0) 📝 `collector/index.js` (+26 -0) 📝 `docker/.env.example` (+20 -0) ➕ `frontend/src/components/SpeechToText/DeepgramOptions/index.jsx` (+89 -0) ➕ `frontend/src/components/SpeechToText/GenericOpenAiOptions/index.jsx` (+66 -0) ➕ `frontend/src/components/SpeechToText/LemonadeOptions/index.jsx` (+207 -0) ➕ `frontend/src/components/SpeechToText/OpenAiOptions/index.jsx` (+87 -0) ➕ `frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SpeechToText/BrowserNative/index.jsx` (+91 -0) ➕ `frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SpeechToText/MicButton/index.jsx` (+85 -0) ➕ `frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SpeechToText/ServerSTT/index.jsx` (+132 -0) 📝 `frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SpeechToText/index.jsx` (+23 -136) ➕ `frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SpeechToText/useSilenceDetector.js` (+69 -0) 📝 `frontend/src/locales/ar/common.js` (+4 -0) 📝 `frontend/src/locales/ca/common.js` (+4 -0) 📝 `frontend/src/locales/cs/common.js` (+4 -0) 📝 `frontend/src/locales/da/common.js` (+4 -0) 📝 `frontend/src/locales/de/common.js` (+5 -0) 📝 `frontend/src/locales/en/common.js` (+4 -0) 📝 `frontend/src/locales/es/common.js` (+5 -0) 📝 `frontend/src/locales/et/common.js` (+4 -0) _...and 34 more files_ </details> ### 📄 Description ### Pull Request Type <!-- For change type, change [ ] to [x]. --> - [x] ✨ feat (New feature) - [ ] 🐛 fix (Bug fix) - [ ] ♻️ refactor (Code refactoring without changing behavior) - [ ] 💄 style (UI style changes) - [ ] 🔨 chore (Build, CI, maintenance) - [ ] 📝 docs (Documentation updates) ### Relevant Issues <!-- Use "resolves #xxx" to auto resolve on merge. Otherwise, please use "connect #xxx" --> resolves #4732 resolves #3885 connect #5740 connect #5609 connect #5610 ### Description <!-- Describe the changes in this PR that are impactful to the repo. What problem does it solve? --> - Adds support for server-side speech-to-text so users can transcribe through cloud providers - Lays the foundation for upcoming STT provider PRs (Lemonade, OpenAI Compatible, Deepgram) - Adds OpenAI as the first server-side STT provider with a dynamic model picker that filters for transcription models - Same mic button UX as before: auto-stops on silence and respects the auto-submit setting, just transcribed by the chosen provider instead of the browser ### Visuals (if applicable) <!-- Add screenshots or screen recordings to demonstrate the changes, especially for UI updates. --> ### Additional Information <!-- Add any other context about the Pull Request here that was not captured above. --> ### Developer Validations <!-- All of the applicable items should be checked. --> - [x] I ran `yarn lint` from the root of the repo & committed changes - [x] Relevant documentation has been updated (if applicable) - [x] I have tested my code functionality - [x] Docker build succeeds locally --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
yindo added the pull-request label 2026-06-05 15:21:31 -04:00
yindo closed this issue 2026-06-05 15:21:31 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Mintplex-Labs/anything-llm#5491