Skip to content

Add AssemblyAI (Cloud) tab + Local/Cloud service switch (#390)#391

Merged
maboa merged 4 commits into
mainfrom
assemblyai-cloud-tab
Jul 9, 2026
Merged

Add AssemblyAI (Cloud) tab + Local/Cloud service switch (#390)#391
maboa merged 4 commits into
mainfrom
assemblyai-cloud-tab

Conversation

@maboa

@maboa maboa commented Jul 9, 2026

Copy link
Copy Markdown
Member

Closes #390.

Adds AssemblyAI as a browser-only cloud transcription option and reorganises the Transcribe modal so it scales past four engines.

AssemblyAI (Cloud) tab

  • New js/hyperaudio-lite-editor-assemblyai.js (assemblyai-service), mirroring the Deepgram client but using AssemblyAI's async flow — upload → submit → poll — all direct fetch calls with the user's own key (the REST API is CORS-open, verified). Word list (start/end in ms) parses into the same data-m/data-d spans as the other engines.
  • Model dropdown: Universal-3.5 Pro (default) and Universal-2 (cost-effective, 99 languages), sent as the current speech_models array. Auto-detect or explicit language; speaker labels always on (matching Deepgram).

Transcribe modal: Local / Cloud switch

  • A CSS-only segmented Local ‖ Cloud switch; each side shows just its engines as tabs (Parakeet/Whisper · AssemblyAI/Deepgram, alphabetical). Scales cleanly past four.

Remembered choices + key handling

  • js/transcribe-prefs.js persists the service switch, selected engine, model/language, and API keys in localStorage; restored on load.
  • Deepgram token + AssemblyAI key are password fields with a show/hide eye toggle.
  • Per-key "Remember key on this device" toggle (default on); opting out stops persisting and drops any stored copy.

Notes

  • Keys live in localStorage in plain text (same trust model as pasting a bring-your-own key); the opt-out covers shared machines.
  • Model field values confirmed against AssemblyAI's current API docs; a live transcription is the final check.

maboa added 4 commits July 8, 2026 17:51
…#390)

New js/hyperaudio-lite-editor-assemblyai.js: an assemblyai-service custom element
mirroring the Deepgram client, but using AssemblyAI's async flow — upload the
file (or pass a public URL) → POST /transcript → poll /transcript/{id} — all
direct fetch calls with the user's own key (AssemblyAI's REST API is CORS-open).
Parses the word list (start/end in ms) into the same data-m/data-d spans as the
other engines, with optional speaker labels. New tab + template + script tag in
index.html (tabs narrowed, modal widened to fit four).
…de + opt-out

- Reorganise the modal with a Local ‖ Cloud segmented switch (CSS-only via
  sibling radios); each side shows just its engines as tabs, so it scales past
  four. Tabs back to 150px, modal to 36rem.
- js/transcribe-prefs.js: remember the service switch, selected engine tab, each
  engine's model/language/options and the API keys in localStorage; restore on
  load (models before languages so dependent lists repopulate first).
- Deepgram token + AssemblyAI key are now password fields with the standard
  eye show/hide toggle.
- Per-key "Remember key on this device" toggle (default on) — opting out stops
  persisting that key and drops any stored copy; the opt-out is itself remembered.
- Cloud tabs are now AssemblyAI then Deepgram (alphabetical); AssemblyAI is the
  default cloud tab.
- Remove the AssemblyAI "Detect speakers" toggle and always request
  speaker_labels — matching Deepgram's always-on diarization. The global
  Speakers toggle still controls whether the [speaker-N] labels are shown.
Update the Model dropdown to AssemblyAI's current models and send the correct
speech_models array (plural) — universal-3-5-pro (default, highest accuracy) and
universal-2 (cost-effective, 99 languages). The singular speech_model with
best/nano was deprecated/outdated.
@maboa maboa added the enhancement New feature or request label Jul 9, 2026
@maboa maboa merged commit 3807d95 into main Jul 9, 2026
1 check passed
@maboa maboa deleted the assemblyai-cloud-tab branch July 9, 2026 08:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add an AssemblyAI (Cloud) transcription tab — browser-only, no server

1 participant