Skip to content

feat: speech-to-text (Transcribe) for OpenAI-compatible providers - #11

Merged
jkyberneees merged 3 commits into
mainfrom
feat/stt
Sep 23, 2026
Merged

jkyberneees merged 3 commits into
mainfrom
feat/stt

Conversation

@jkyberneees

Copy link
Copy Markdown
Contributor

Adds SDK.Transcribe(ctx, provider, model, TranscribeRequest) — STT via OpenAI-compatible POST /audio/transcriptions (multipart/form-data, stdlib only).

  • Input: raw audio bytes (\u226425MB, ConfigError beyond), filename/MIMEType hints, optional language/prompt/response_format
  • Output: {Text, Model, Language, DurationSec} — provider-omitted fields stay zero
  • Chat retry ladder + error taxonomy; 2xx non-JSON rejected as typed *APIError; keys never in errors
  • RED-first unit suite; e2e arm behind the e2e tag (Speak\u2192whisper-1 round trip, skip without keys)
  • README + AGENTS.md updated in-branch

Verified: go vet (+e2e tags), go test -race -count=1 green; live e2e passed (tts-1 \u2192 whisper-1: "Go LLM Speech-to-Text Probe"). Adversarially reviewed; both findings fixed RED-first (MIMEType honored, 25MB input cap).

@jkyberneees
jkyberneees merged commit 8ee8e18 into main Sep 23, 2026
7 checks passed
@jkyberneees
jkyberneees deleted the feat/stt branch September 23, 2026 12:13
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.

1 participant