mit einem Klick
deepgram-rust-speech-to-text
// Use when implementing Deepgram speech-to-text in the Rust SDK, including prerecorded REST transcription, live WebSocket streaming, listen feature flags, Options builder usage, and response handling.
// Use when implementing Deepgram speech-to-text in the Rust SDK, including prerecorded REST transcription, live WebSocket streaming, listen feature flags, Options builder usage, and response handling.
| name | deepgram-rust-speech-to-text |
| description | Use when implementing Deepgram speech-to-text in the Rust SDK, including prerecorded REST transcription, live WebSocket streaming, listen feature flags, Options builder usage, and response handling. |
Use this skill for prerecorded transcription, live streaming transcription, or when mapping Deepgram docs to the Rust crate's real listen surface.
Deepgram::transcription().stream_request() / stream_request_with_options(...).common::options::Options for STT features such as model, language, punctuate, diarize, smart_format, utterances, and streaming knobs like endpointing.This skill covers Nova models on /v1/listen — Deepgram's general-purpose STT family (nova-3, nova-2, nova, enhanced, base). Both Nova and Flux are actively maintained, industry-leading STT model families.
Use a different skill when:
deepgram-rust-conversational-stt (Flux on /v2/listen).deepgram-rust-audio-intelligence (same /v1/listen endpoint, different params).deepgram-rust-voice-agent.deepgram defaults to manage + listen + speak. For STT-only installs, trim features explicitly:
[dependencies]
deepgram = { version = "0.10.0", default-features = false, features = ["listen"] }
tokio = { version = "1", features = ["full"] }
futures = "0.3"
use deepgram::Deepgram;
let dg = Deepgram::new(std::env::var("DEEPGRAM_API_KEY")?)?;
Authorization: Token <api_key>.Deepgram::with_temp_token(...) and send Bearer, but are mainly useful for voice APIs rather than Manage APIs.Deepgram::with_base_url(...) or Deepgram::with_base_url_and_api_key(...).use deepgram::{
common::{
audio_source::AudioSource,
options::{Language, Options},
},
Deepgram,
};
use tokio::fs::File;
static PATH_TO_FILE: &str = "examples/audio/bueller.wav";
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let api_key = std::env::var("DEEPGRAM_API_KEY")?;
let dg = Deepgram::new(&api_key)?;
let file = File::open(PATH_TO_FILE).await?;
let source = AudioSource::from_buffer_with_mime_type(file, "audio/wav");
let options = Options::builder()
.punctuate(true)
.language(Language::en_US)
.build();
let response = dg.transcription().prerecorded(source, &options).await?;
println!("{}", response.results.channels[0].alternatives[0].transcript);
Ok(())
}
use std::time::Duration;
use deepgram::{
common::options::{Encoding, Endpointing, Language, Options},
Deepgram,
};
use futures::stream::StreamExt;
static PATH_TO_FILE: &str = "examples/audio/bueller.wav";
static AUDIO_CHUNK_SIZE: usize = 3174;
static FRAME_DELAY: Duration = Duration::from_millis(16);
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let api_key = std::env::var("DEEPGRAM_API_KEY")?;
let dg = Deepgram::new(&api_key)?;
let options = Options::builder()
.smart_format(true)
.language(Language::en_US)
.build();
let mut results = dg
.transcription()
.stream_request_with_options(options)
.keep_alive()
.encoding(Encoding::Linear16)
.sample_rate(44100)
.channels(2)
.endpointing(Endpointing::CustomDurationMs(300))
.interim_results(true)
.utterance_end_ms(1000)
.vad_events(true)
.no_delay(true)
.file(PATH_TO_FILE, AUDIO_CHUNK_SIZE, FRAME_DELAY)
.await?;
println!("Deepgram Request ID: {}", results.request_id());
while let Some(result) = results.next().await {
println!("{result:?}");
}
Ok(())
}
prerecorded(...), prerecorded_callback(...), make_prerecorded_request_builder(...).stream_request(), stream_request_with_options(options), then .file(...), .stream(...), or .handle().await?.Options builder fields: model, language, punctuate, smart_format, diarize, multichannel, utterances, detect_language, keywords, search, replace, paragraphs.encoding, sample_rate, channels, endpointing, utterance_end_ms, interim_results, no_delay, vad_events, keep_alive, callback.common::batch_response::Response; live common::stream_response::StreamResponse.README.mdsrc/listen/rest.rssrc/listen/websocket.rssrc/common/options.rsexamples/transcription/rest/prerecorded_from_file.rsexamples/transcription/websocket/simple_stream.rshttps://developers.deepgram.com/openapi.yamlhttps://developers.deepgram.com/reference/speech-to-text/listen-pre-recordedhttps://developers.deepgram.com/asyncapi.yamlhttps://developers.deepgram.com/reference/speech-to-text/listen-streaming/llmstxt/developers_deepgram_llms_txthttps://developers.deepgram.com/docs/stt/getting-startedlisten feature gates correctly. STT modules are behind the listen Cargo feature.Options is by value for WebSocket builders. stream_request_with_options(options) takes ownership, unlike prerecorded APIs that take &Options.summary, topics, and sentiments live on prerecorded response types, not StreamResponse..file(...) helpers assume realistic chunk sizes and delays; sending audio too fast can produce bad streaming behavior.Token, not Bearer, for API keys. Bearer is only for temporary tokens.examples/transcription/rest/prerecorded_from_file.rsexamples/transcription/rest/prerecorded_from_url.rsexamples/transcription/rest/callback.rsexamples/transcription/rest/make_prerecorded_request_builder.rsexamples/transcription/websocket/simple_stream.rsexamples/transcription/websocket/callback_stream.rsexamples/transcription/websocket/microphone_stream.rsexamples/transcription/websocket/16_keepalive_close_stream.rsFor cross-language Deepgram product knowledge — the consolidated API reference, documentation finder, focused runnable recipes, third-party integration examples, and MCP setup — install the central skills:
npx skills add deepgram/skills
This SDK ships language-idiomatic code skills; deepgram/skills ships cross-language product knowledge (see api, docs, recipes, examples, starters, setup-mcp).
Use when implementing Deepgram audio intelligence from the Rust SDK, especially when intelligence features are attached to STT Options and batch responses instead of a separate audio-intelligence module.
Use when implementing Deepgram Flux conversational STT from the Rust SDK, including flux_request APIs, turn events, FluxResponse handling, and turn-detection tuning for voice-agent-style pipelines.
Use when implementing Deepgram project, key, member, scope, billing, invitation, or usage operations from the Rust SDK, including manage feature flags and the real Deepgram::projects/keys/members/scopes/billing/usage APIs.
Use when implementing Deepgram text-to-speech in the Rust SDK, including Aura model selection, speak feature flags, output file or byte-stream handling, and real crate APIs under speak::options and Speak.
Use when a user asks for Deepgram text intelligence from Rust. Route to raw HTTP guidance because this crate does not currently expose a dedicated /v1/read client or typed text-intelligence module.
Use when a user asks for Deepgram Voice Agent support from Rust. Route honestly: this crate does not currently expose the Agent WebSocket API, reusable agent configurations, or typed voice-agent events.