Add AssemblyAI (Cloud) tab + Local/Cloud service switch (#390)#391
Merged
Conversation
…#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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
js/hyperaudio-lite-editor-assemblyai.js(assemblyai-service), mirroring the Deepgram client but using AssemblyAI's async flow — upload → submit → poll — all directfetchcalls with the user's own key (the REST API is CORS-open, verified). Word list (start/end in ms) parses into the samedata-m/data-dspans as the other engines.speech_modelsarray. Auto-detect or explicit language; speaker labels always on (matching Deepgram).Transcribe modal: Local / Cloud switch
Remembered choices + key handling
js/transcribe-prefs.jspersists the service switch, selected engine, model/language, and API keys in localStorage; restored on load.Notes