Skip to content

feat: add Smallest AI Pulse as a cloud STT provider#634

Open
harshitajain165 wants to merge 8 commits intoOpenWhispr:mainfrom
harshitajain165:feat/smallest-ai-stt-provider
Open

feat: add Smallest AI Pulse as a cloud STT provider#634
harshitajain165 wants to merge 8 commits intoOpenWhispr:mainfrom
harshitajain165:feat/smallest-ai-stt-provider

Conversation

@harshitajain165
Copy link
Copy Markdown

@harshitajain165 harshitajain165 commented Apr 20, 2026

Closes #631

Summary

Adds Smallest AI Pulse as a dedicated cloud transcription provider alongside OpenAI, Groq, and other cloud options. Smallest AI's API uses raw binary audio (application/octet-stream) rather than multipart form-data, so it required a dedicated code path rather than reuse of the existing provider flow.

Changes

File Change
src/models/modelRegistryData.json Add Smallest AI transcription provider with pulse model
src/helpers/audioManager.js Provider default, endpoint resolution, and dedicated transcription path
src/helpers/ipcHandlers.js SMALLEST_AI_TRANSCRIPTION_URL constant, key IPC handlers, transcription proxy path
src/helpers/environment.js getSmallestAiKey / saveSmallestAiKey, add to PERSISTED_KEYS
src/components/TranscriptionModelPicker.tsx Smallest AI provider tab, API key input, "Get key" link
src/components/SettingsPage.tsx Pass smallestAiApiKey / setSmallestAiApiKey props
src/components/OnboardingFlow.tsx Pass props + onboarding validation gate
src/hooks/useSettings.ts Expose smallestAiApiKey / setSmallestAiApiKey
src/stores/settingsStore.ts State, localStorage persistence, .env init on startup
src/utils/byokDetection.ts Include smallestAiApiKey in BYOK detection
src/utils/providerIcons.ts Register Smallest AI provider icon
src/assets/icons/providers/smallest-ai.png Bundled provider logo
preload.js Expose getSmallestAiKey / saveSmallestAiKey to renderer
src/locales/*/translation.json Add smallest_pulse description key across all 10 locale files

API details

  • Endpoint: https://api.smallest.ai/waves/v1/pulse/get_text
  • Auth: Authorization: Bearer <api_key>
  • Model: pulse
  • Request: Raw binary audio (application/octet-stream) with ?language= query param
  • Response: { "transcription": "..." }

Testing

  1. Get a Smallest AI API key from app.smallest.ai
  2. Open OpenWhispr Settings → Speech to Text → Cloud → Smallest AI tab
  3. Enter your API key
  4. Record audio and verify transcription works
  5. Verify the key persists across app restarts

@harshitajain165 harshitajain165 force-pushed the feat/smallest-ai-stt-provider branch 2 times, most recently from b078e06 to 3cea9d7 Compare April 22, 2026 09:57
@harshitajain165 harshitajain165 marked this pull request as ready for review April 22, 2026 12:59
harshitajain165 and others added 8 commits April 27, 2026 15:26
Integrates Smallest AI's Pulse speech-to-text model as a selectable cloud
transcription provider alongside OpenAI, Groq, and Mistral. Users provide
their own Smallest AI API key which is stored locally and used for all
transcription requests.

API: POST https://api.smallest.ai/waves/v1/pulse/get_text with
Content-Type: application/octet-stream (raw audio bytes).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Smallest AI key lookup in getAPIKey() renderer path
- Add octet-stream request path in processWithOpenAIAPI() with correct
  endpoint, binary body, and response parsing (transcription field)
- Fix getTranscriptionEndpoint() to return Smallest AI URL after cacheResult is defined
- Add 'pulse' as default model in getTranscriptionModel()
- Fix retry-transcription handler: use settings param instead of non-existent databaseManager.getSettings()
- Add X-Source and X-Version headers to both live and retry request paths
- Add SMALLEST_AI_API_KEY to PERSISTED_KEYS so key survives app restarts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Downloads and bundles the Smallest AI PNG logo as a provider icon,
wiring it up in PROVIDER_ICONS so the Smallest AI tab shows the
correct logo instead of the generic fallback.
@harshitajain165 harshitajain165 force-pushed the feat/smallest-ai-stt-provider branch from c8cfa4b to f1abe86 Compare April 27, 2026 09:57
@harshitajain165
Copy link
Copy Markdown
Author

Hey @gabrielste1n, this PR adds Smallest AI Pulse as a cloud STT provider to OpenWhispr - would love a review when you get a chance!

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.

Add Smallest AI Pulse as a cloud STT provider

1 participant