Skip to content

Speaker diarization (Deepgram) + editable speaker names - #38

Merged
Chaddacus merged 1 commit into
mainfrom
codex/speaker-diarization
Jun 28, 2026
Merged

Chaddacus merged 1 commit into
mainfrom
codex/speaker-diarization

Conversation

@Chaddacus

Copy link
Copy Markdown
Owner

What

Sister's ask #2 follow-on: separate transcription audio by speaker, and rename speakers after the fact.

  • Transcription routes through Deepgram (nova-3, diarize=true&utterances=true) when DEEPGRAM_API_KEY is set; Whisper stays as fallback.
  • New Speaker model + user-scoped PATCH /api/speakers/<id>/ rename endpoint (foreign id → 404).
  • Frontend "Transcript by Speaker" view: turns grouped, speaker names inline-editable, persisted.
  • Model choice grounded in docs/DEEPGRAM_DIARIZATION_RESEARCH.md (verified against live Deepgram docs).

Verification

  • Backend: 101 passed (15 new diarization tests), ruff clean.
  • Frontend: tsc + eslint clean.
  • Real Deepgram E2E: 2 speakers detected on a multi-voice clip.
  • Playwright (login-first): grouped rendering → rename "Speaker 1"→"Daniel" → persisted after reload.

https://claude.ai/code/session_01BzkXTG6PfbUdFoif8kBeyw

…r names

Route transcription through Deepgram (diarize + utterances) when
DEEPGRAM_API_KEY is set, so each segment carries a "Speaker N" label;
Whisper remains the fallback when no key is configured. Add a Speaker
model (note -> label -> editable name), a user-scoped speaker-rename
endpoint (foreign id -> 404), and a "Transcript by Speaker" view that
groups turns and lets you rename a speaker inline.

Model: nova-3 (Deepgram-recommended, diarization-capable, $0.0043/min).

Verified: 101 backend tests pass (15 new), tsc/eslint clean, real
Deepgram E2E detected 2 speakers, Playwright login->rename->persist green.

Claude-Session: https://claude.ai/code/session_01BzkXTG6PfbUdFoif8kBeyw
@Chaddacus
Chaddacus merged commit 0f41322 into main Jun 28, 2026
3 of 5 checks passed
@Chaddacus
Chaddacus deleted the codex/speaker-diarization branch June 28, 2026 13:57
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