You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Braintrust Rust SDK has no instrumentation for aws-sdk-transcribestreaming, AWS's official Rust SDK crate for the Amazon Transcribe Streaming service — real-time speech-to-text execution. Braintrust already treats audio transcription as an in-scope, traced generative-AI capability (its OpenAI integration docs list "Transcription" as a covered Audio API, and issue #84 in this repo already flags the equivalent gap for local whisper-rs execution), but no Braintrust SDK instruments AWS's hosted real-time transcription service.
start_stream_transcription — the core execution call: opens a bidirectional stream, accepting an input audio-chunk event stream and returning a live transcript-result event stream, with configurable language identification, vocabulary filters, speaker partitioning, and PII redaction.
start_call_analytics_stream_transcription — real-time Call Analytics transcription (adds sentiment/categorization signals to the live transcript stream).
start_medical_stream_transcription — specialty medical real-time transcription.
start_medical_scribe_stream / get_medical_scribe_stream — Amazon Web Services HealthScribe session execution and status retrieval.
None of this is wired into the SDK:
No usage extraction path — extract_openai_usage()/extract_anthropic_usage() in src/extractors.rs parse a JSON usage object with token counts. Transcribe Streaming has no token-usage concept at all (billing is by audio duration, not tokens) and returns typed Rust event-stream structs (TranscriptEvent, Result, Alternative), not a serde_json::Value — neither extractor applies.
No stream aggregation path — BraintrustStream::aggregate() (src/stream.rs) deserializes items as StreamChunk { model, choices, usage } (OpenAI Chat Completions shape) from a Stream<Item = Result<Value, E>>. Transcribe Streaming's bidirectional event stream (interim + final Results with per-word timing/confidence) has no choices/JSON structure and is structurally incompatible with the existing aggregator, mirroring the same class of gap already noted for whisper-rs ([bot] Instrument whisper-rs (58,308 weekly downloads) #84) and Gemini's streamGenerateContent ([bot] BraintrustStream cannot aggregate Google Gemini streamGenerateContent events #60), but for AWS's distinct, typed, bidirectional-streaming client.
No transcription span type — there is no equivalent of a "transcription span" (input audio stream reference, output transcript segments with timestamps/confidence, detected language) anywhere in src/types.rs.
Methodology: exact sum of the crates.io downloads API's daily version_downloads entries (summed across all versions publishing downloads on a given day) plus meta.extra_downloads entries, for the complete 7-day window 2026-08-06 through 2026-08-12 inclusive (checked on 2026-08-17; more recent days were excluded due to crates.io's daily-aggregation lag). Per-day combined totals: 08-06: 630; 08-07: 527; 08-08: 481; 08-09: 394; 08-10: 679; 08-11: 492; 08-12: 811. Sum = 4,014. 90-day recent_downloads reported directly by crates.io: 51,181 (consistent with this weekly figure, ≈3.9K/week average).
Searched this repository's open issues for "transcribe", "transcription", "start_stream_transcription" — the only match is [bot] Instrument whisper-rs (58,308 weekly downloads) #84 (whisper-rs), which is explicitly local/offline and does not cover this AWS crate.
src/extractors.rs — extract_openai_usage() and extract_anthropic_usage() both operate on token-usage JSON; Transcribe Streaming has no token-usage concept and returns typed event-stream structs, not JSON
src/stream.rs — BraintrustStream::aggregate()/wrap_stream_with_span() require a Stream<Item = Result<Value, E>> deserializing OpenAI-shaped chunks; incompatible with Transcribe Streaming's bidirectional typed event stream
Summary
The Braintrust Rust SDK has no instrumentation for
aws-sdk-transcribestreaming, AWS's official Rust SDK crate for the Amazon Transcribe Streaming service — real-time speech-to-text execution. Braintrust already treats audio transcription as an in-scope, traced generative-AI capability (its OpenAI integration docs list "Transcription" as a covered Audio API, and issue #84 in this repo already flags the equivalent gap for localwhisper-rsexecution), but no Braintrust SDK instruments AWS's hosted real-time transcription service.What is missing
aws_sdk_transcribestreaming::client::Clientexposes these execution-oriented operations (per https://docs.rs/aws-sdk-transcribestreaming/latest/aws_sdk_transcribestreaming/client/struct.Client.html):start_stream_transcription— the core execution call: opens a bidirectional stream, accepting an input audio-chunk event stream and returning a live transcript-result event stream, with configurable language identification, vocabulary filters, speaker partitioning, and PII redaction.start_call_analytics_stream_transcription— real-time Call Analytics transcription (adds sentiment/categorization signals to the live transcript stream).start_medical_stream_transcription— specialty medical real-time transcription.start_medical_scribe_stream/get_medical_scribe_stream— Amazon Web Services HealthScribe session execution and status retrieval.None of this is wired into the SDK:
extract_openai_usage()/extract_anthropic_usage()insrc/extractors.rsparse a JSONusageobject with token counts. Transcribe Streaming has no token-usage concept at all (billing is by audio duration, not tokens) and returns typed Rust event-stream structs (TranscriptEvent,Result,Alternative), not aserde_json::Value— neither extractor applies.BraintrustStream::aggregate()(src/stream.rs) deserializes items asStreamChunk { model, choices, usage }(OpenAI Chat Completions shape) from aStream<Item = Result<Value, E>>. Transcribe Streaming's bidirectional event stream (interim + finalResults with per-word timing/confidence) has nochoices/JSON structure and is structurally incompatible with the existing aggregator, mirroring the same class of gap already noted forwhisper-rs([bot] Instrument whisper-rs (58,308 weekly downloads) #84) and Gemini'sstreamGenerateContent([bot] BraintrustStream cannot aggregate Google Gemini streamGenerateContent events #60), but for AWS's distinct, typed, bidirectional-streaming client.src/types.rs.Library significance
aws-sdk-rustmonorepo (https://github.com/awslabs/aws-sdk-rust), published by the "AWS SDK Rust Bot"1.112.0Weekly downloads
Weekly downloads: 4,014 (as of 2026-08-12; https://crates.io/api/v1/crates/aws-sdk-transcribestreaming/downloads)
Methodology: exact sum of the crates.io downloads API's daily
version_downloadsentries (summed across all versions publishing downloads on a given day) plusmeta.extra_downloadsentries, for the complete 7-day window 2026-08-06 through 2026-08-12 inclusive (checked on 2026-08-17; more recent days were excluded due to crates.io's daily-aggregation lag). Per-day combined totals: 08-06: 630; 08-07: 527; 08-08: 481; 08-09: 394; 08-10: 679; 08-11: 492; 08-12: 811. Sum = 4,014. 90-dayrecent_downloadsreported directly by crates.io: 51,181 (consistent with this weekly figure, ≈3.9K/week average).Braintrust docs status
supported for the underlying capability class (audio transcription), but not_found for Amazon Transcribe/AWS specifically. Checked https://www.braintrust.dev/docs/integrations/ai-providers/openai directly on 2026-08-17: the Python span-coverage table lists "Audio APIs (audio captured as an attachment)" as covering "Transcription, Translation, Speech," confirming transcription is already an in-scope traced capability class for Braintrust (for OpenAI's client). Neither Amazon Transcribe nor any AWS transcription service is mentioned on https://www.braintrust.dev/docs/integrations/ai-providers or https://www.braintrust.dev/docs/integrations/ai-providers/bedrock.
Relationship to existing issues
Upstream sources
aws-sdk-transcribestreamingon crates.io: https://crates.io/crates/aws-sdk-transcribestreamingBraintrust docs sources
Local repo files inspected
src/extractors.rs—extract_openai_usage()andextract_anthropic_usage()both operate on token-usage JSON; Transcribe Streaming has no token-usage concept and returns typed event-stream structs, not JSONsrc/stream.rs—BraintrustStream::aggregate()/wrap_stream_with_span()require aStream<Item = Result<Value, E>>deserializing OpenAI-shaped chunks; incompatible with Transcribe Streaming's bidirectional typed event streamsrc/types.rs— no transcription-oriented span fields (segments, timestamps, confidence, detected language)src/lib.rs— public API exports; no Amazon Transcribe referencesCargo.toml— noaws-sdk-transcribestreamingdependencytranscribestreaming,start_stream_transcription,TranscriptEvent— zero results