Skip to content

feat(asr): expose Deepgram English recognition - #47

Merged
quanru merged 6 commits into
mainfrom
feat/deepgram-product-integration
Sep 25, 2026
Merged

quanru merged 6 commits into
mainfrom
feat/deepgram-product-integration

Conversation

@quanru

@quanru quanru commented Sep 22, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • register Deepgram Nova-3 as an English recognition service
  • make API-key save, clear, probe, readiness, onboarding copy, and privacy copy provider-driven
  • expose Deepgram in onboarding and Settings with English and Chinese UI text
  • document credential storage, audio routing, billing ownership, and the current US-English scope
  • extend the synthetic onboarding fixture and scenario for Deepgram selection and credential testing

Dependency

Depends on #46, which depends on #45.

Validation

  • PYTHONPATH=src /Users/bytedance/personal/doubao-say/.venv/bin/python -m unittest tests.unit.test_recognition_providers tests.unit.test_deepgram_credentials tests.unit.test_deepgram_asr_client
  • /Users/bytedance/personal/doubao-say/.venv/bin/python -m ruff check src tests packaging
  • PYTHONPATH=src /Users/bytedance/personal/doubao-say/.venv/bin/python -m compileall -q src tests
  • parsed tests/e2e/cases/onboarding-regressions.yaml with PyYAML
  • git diff --check

Validation gaps

  • a live Deepgram credential, public audio sample, and full GTK voice-test flow were tested on Linux using a virtual microphone; physical microphone acceptance remains outstanding
  • the updated GTK flow was exercised through Midscene on an isolated Linux X11 desktop
  • the provider is intentionally fixed to US English; language selection and multilingual mode are not part of this PR

Review order

Review after #46 and before the Voxtype integration PR.

Live Linux validation (2026-09-25)

  • Verified a user-supplied API key through Deepgram's official /v1/auth/token endpoint (HTTP 200); the key was not logged or committed.
  • Used this PR's DeepgramASRClient to stream a public 16 kHz mono PCM speech sample to Nova-3 (en-US). WebSocket opened in 1.032 s; the client received 7 result callbacks and finalized 0.200 s after audio send ended. Final sample text began “And so my fellow Americans”. No authentication or transport errors occurred.
  • The test used a public audio file, not the user's physical microphone. The installed main-branch application still lacks the Deepgram UI until this PR stack is integrated.

Midscene GUI validation (2026-09-25)

  • Ran the PR build in an isolated Linux X11 desktop with the user-supplied key in a temporary, private config. Midscene selected Deepgram and the app displayed “API key accepted”.
  • Routed a public speech sample through a virtual microphone. The local microphone check displayed “Microphone is working”, then Midscene ran the full Voice test. The app transcribed “And so my fellow Americans…” and displayed “Voice test passed. Your text stayed here — nothing was pasted or sent.”
  • Application logs measured 432 ms from releasing the voice-test button to final transcription (94 characters). The temporary config and virtual microphone were removed and the previous default microphone restored after testing.

@quanru

quanru commented Sep 23, 2026

Copy link
Copy Markdown
Owner Author

Midscene CI 验证:Ubuntu 定向用例「Switch to Deepgram English recognition」1/1 通过、9/9 步骤首次通过:https://github.com/quanru/doubao-say/actions/runs/35813578881 。在 #48 的 Omarchy VM 定向运行中,同一 Deepgram 入口场景也首次通过:https://github.com/quanru/doubao-say/actions/runs/35818832674 。此验证使用合成 API Key/端点,只覆盖界面选择、凭证输入与引导,不代表真实 Deepgram WebSocket 服务验收。

@quanru

quanru commented Sep 25, 2026

Copy link
Copy Markdown
Owner Author

Midscene live GUI report (2026-09-25)

Open/download the complete Midscene HTML report.

This report records the isolated Linux X11 run of this PR build: Deepgram API-key connection accepted, virtual microphone check passed, and the full Voice test transcribed the public sample beginning “And so my fellow Americans…” with “Voice test passed” shown in the app. The HTML report includes Midscene screenshots and the final visual assertion. Application logs measured 432 ms from release to final transcription. The report was checked for the Deepgram and Midscene API keys before upload; neither is present.

@quanru
quanru changed the base branch from feat/deepgram-transport to main September 25, 2026 11:52
@quanru
quanru merged commit c5a45db into main Sep 25, 2026
9 of 18 checks passed
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.

1 participant