Skip to content

feat: add Amazon Bedrock as transcription provider#4229

Open
devin-ai-integration[bot] wants to merge 2 commits intomainfrom
devin/1772014732-amazon-bedrock-stt
Open

feat: add Amazon Bedrock as transcription provider#4229
devin-ai-integration[bot] wants to merge 2 commits intomainfrom
devin/1772014732-amazon-bedrock-stt

Conversation

@devin-ai-integration
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot commented Feb 25, 2026

feat: add Amazon Bedrock as transcription provider

Summary

Adds Amazon Bedrock as a new STT provider using the bedrock-mantle OpenAI-compatible endpoint (https://bedrock-mantle.us-east-1.api.aws/v1). Supports both real-time (WebSocket) and batch transcription.

Key decisions:

  • Uses bedrock-mantle's OpenAI-compatible API rather than native AWS SDK/SigV4 — authentication is Bearer token (API key)
  • Real-time adapter follows the OpenAI Realtime protocol (session.update, input_audio_buffer.append/commit)
  • Default live model: openai.gpt-4o-transcribe, default batch model: amazon.nova-sonic-v1:0
  • Live sample rate: 24000 Hz (matching OpenAI)
  • Hardcoded to us-east-1 region; users can override via custom base URL

Files added: bedrock/mod.rs, bedrock/batch.rs, bedrock/live.rs

Registration across dispatch sites: listener-core, listener2-core, transcribe-proxy (batch + streaming + env + tests), desktop settings UI

Closes #3000

Review & Testing Checklist for Human

  • Batch model mismatch: default_batch_model() in providers.rs returns "amazon.nova-sonic-v1:0" but the desktop UI lists "openai.whisper-1" as a model option. These need to be aligned to whatever bedrock-mantle actually expects for batch transcription.
  • WebSocket protocol correctness: The live adapter assumes bedrock-mantle implements the OpenAI Realtime API (session.update with nested audio.input.transcription config, input_audio_buffer.append, conversation.item.input_audio_transcription.completed/delta, etc.). Verify this matches bedrock-mantle's actual WebSocket protocol — especially the include: ["item.input_audio_transcription.logprobs"] field in the session config, which may be OpenAI-specific.
  • WebSocket path: ws_path() returns /v1/realtime for Bedrock. Confirm this is the correct path for bedrock-mantle's WebSocket endpoint.
  • End-to-end test with a real Bedrock API key: This code was not tested against a live bedrock-mantle endpoint. Test both batch and real-time transcription paths to verify the protocol assumptions are correct.
  • Icon availability: Desktop UI uses <Icon icon="simple-icons:amazonaws" /> — confirm this icon resolves correctly in the app's iconify setup.

Suggested test plan:

  1. Configure a Bedrock API key in the desktop settings UI and verify the provider appears correctly
  2. Run a batch transcription against a real audio file and verify the response parses correctly
  3. Run a real-time transcription session and verify WebSocket connection, session update, audio streaming, and transcript responses all work

Notes

- Add BedrockAdapter with OpenAI-compatible Realtime API support via bedrock-mantle
- Implement both RealtimeSttAdapter (WebSocket) and BatchSttAdapter (multipart)
- Register Bedrock in all dispatch sites: listener-core, listener2-core, transcribe-proxy
- Add Bedrock to desktop settings UI with bedrock-mantle endpoint
- Default models: openai.gpt-4o-transcribe (live), openai.whisper-1 (batch)
- Uses Bearer token authentication via bedrock-mantle endpoint

Co-Authored-By: John <john@hyprnote.com>
@netlify
Copy link

netlify bot commented Feb 25, 2026

Deploy Preview for hyprnote-storybook canceled.

Name Link
🔨 Latest commit 4db7e82
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote-storybook/deploys/699ed208fcb82b0008af1920

@netlify
Copy link

netlify bot commented Feb 25, 2026

Deploy Preview for hyprnote canceled.

Name Link
🔨 Latest commit 4db7e82
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote/deploys/699ed208a7a48f0008a97572

@devin-ai-integration
Copy link
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

Co-Authored-By: John <john@hyprnote.com>
@ComputelessComputer ComputelessComputer requested review from yujonglee and removed request for ComputelessComputer February 25, 2026 11:38
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.

Amazon Bedrock support

1 participant