Skip to content

feat: add configurable voice transcription - #6860

Open
LauraGPT wants to merge 1 commit into
ChatGPTNextWeb:mainfrom
LauraGPT:codex/funasr-transcription-endpoint-6803
Open

feat: add configurable voice transcription#6860
LauraGPT wants to merge 1 commit into
ChatGPTNextWeb:mainfrom
LauraGPT:codex/funasr-transcription-endpoint-6803

Conversation

@LauraGPT

@LauraGPT LauraGPT commented Jul 23, 2026

Copy link
Copy Markdown

Summary

  • add configurable OpenAI-compatible speech-to-text settings for endpoint and model
  • keep the optional bearer token in the existing access credential store
  • add a microphone action to ordinary chats that records, transcribes, and appends text without replacing the current draft
  • release microphone tracks on success, recorder errors, construction failures, and component cleanup

The defaults target a local FunASR/SenseVoice-compatible endpoint at http://localhost:8000/v1, while remaining provider-agnostic.

Browser-to-local FunASR setup

Because NextChat sends transcription requests directly from the browser, the local server must allow the exact origin serving the NextChat page. Merged FunASR #3427 adds an explicit, default-disabled option on FunASR main:

funasr-server --device cpu --model sensevoice \
  --cors-origin http://localhost:3000

Repeat --cors-origin when more than one trusted origin is needed. Against the exact FunASR PR head, an authenticated multipart preflight returned HTTP 200 with the matching ACAO header, the repository sample transcribed on CPU in 0.565 seconds, and a non-allowlisted origin returned HTTP 400 without ACAO.

Validation

  • yarn test:ci --runInBand: 38 suites, 174 tests passed
  • yarn tsc --noEmit
  • ESLint on all changed files: 0 errors
  • yarn build

Closes #6803

@LauraGPT

Copy link
Copy Markdown
Author

@TIANQIAN1238 This PR is current with main and locally validated with 38 suites / 174 tests, type checking, ESLint, and a production build. The sole reported check is Vercel's external account deployment block. I have also added exact browser-to-local FunASR CORS setup and real CPU/preflight evidence, with the companion server change in modelscope/FunASR#3427. Could you review it when bandwidth allows?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature: Add FunASR/SenseVoice as a local STT engine

1 participant