Skip to content

transcription: an Amazon Transcribe streaming backend behind the same /v1/audio/transcriptions contract (STT_BACKEND=transcribe) #1706

Description

@DmitriyG228

Value this issue delivers

A customer whose policy says "Amazon Transcribe for all audio processing" can run the transcription brick with Transcribe as the engine and change nothing else: the bot's whisper client keeps posting 16 kHz WAV windows to POST /v1/audio/transcriptions and keeps receiving the same verbose_json shape. Today the brick is faster-whisper only, and Transcribe's streaming API speaks HTTP/2 event streams with SigV4, which the bot must never learn.

What this issue ships

  • STT_BACKEND=whisper|transcribe on core/meetings/services/transcription, default whisper, behaviour unchanged when unset.
  • With transcribe: no Whisper model is loaded; each request's WAV window is sent through Transcribe streaming (amazon-transcribe, Apache-2.0) with the AWS credential chain and AWS_REGION; final results are mapped into the existing segment shape; language codes map from the bot's ISO-639-1 to a BCP-47 default with TRANSCRIBE_LANGUAGE_DEFAULT.
  • Errors keep the contract the bot already handles: throttling → 503 with Retry-After; malformed audio → 422; missing credentials → 503 and /health says why.
  • A compose file under deploy/transcription/ for the Transcribe-backed unit and a docs section on the custom-STT how-to.

Validation contract

Machine-observable, offline: the existing suite stays green with the default backend; new tests drive the endpoint with a stubbed streaming client and assert the response keys are identical to the whisper path, the three error mappings, and both /health states. A live run against a real Transcribe account is verified by the caller and reported here.

Out of scope: Transcribe batch jobs (S3 round trip, seconds of latency per window); speaker labels from Transcribe (per-participant audio already gives identity); any change to the bot.

Refs: business custody DmitriyG228/biz#208.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions