Speech-to-Text (STT)
Speech-to-Text (STT)
Transcribe audio to text
SpeechToText class
SpeechToText capability class Provides speech-to-text transcription with model introspection
Example:
const stt = SpeechToText.create({
connector: 'openai',
model: 'whisper-1',
});
const result = await stt.transcribe(audioBuffer);
console.log(result.text);
const detailed = await stt.transcribeWithTimestamps(audioBuffer, 'word');
console.log(detailed.words);
Static Methods
static create()
Create a new SpeechToText instance
static create(config: SpeechToTextConfig): SpeechToText
Parameters:
config:SpeechToTextConfig
Returns: SpeechToText
Methods
transcribe()
Transcribe audio to text
async transcribe(
audio: Buffer | string,
options?: Partial<Omit<STTOptions, 'model' | 'audio'>>
): Promise<STTResponse>
Parameters:
audio:string | Buffer<ArrayBufferLike>options:Partial<Omit<STTOptions, "model" | "audio">> | undefined(optional)
Returns: Promise<STTResponse>
supportsStreaming()
Whether the current provider exposes live streaming transcription.
supportsStreaming(): boolean
Returns: boolean
transcribeStream()
Stream raw audio to a live STT session and receive interim/final transcript events. The caller is responsible for yielding audio in real-time-paced chunks.
transcribeStream(
audio: AsyncIterable<STTStreamInput> | Iterable<STTStreamInput>,
options: Partial<Omit<STTStreamOptions, 'model' | 'audio'>> = {}
): AsyncIterableIterator<STTStreamEvent>
Parameters:
audio:AsyncIterable<STTStreamInput> | Iterable<STTStreamInput>options:Partial<Omit<STTStreamOptions, "model" | "audio">>(optional) (default:{})
Returns: AsyncIterableIterator<STTStreamEvent>
transcribeFile()
Transcribe audio file by path
async transcribeFile(
filePath: string,
options?: Partial<Omit<STTOptions, 'model' | 'audio'>>
): Promise<STTResponse>
Parameters:
filePath:stringoptions:Partial<Omit<STTOptions, "model" | "audio">> | undefined(optional)
Returns: Promise<STTResponse>
transcribeWithTimestamps()
Transcribe audio with word or segment timestamps
async transcribeWithTimestamps(
audio: Buffer | string,
granularity: 'word' | 'segment' = 'segment',
options?: Partial<Omit<STTOptions, 'model' | 'audio' | 'includeTimestamps' | 'timestampGranularity'>>
): Promise<STTResponse>
Parameters:
audio:string | Buffer<ArrayBufferLike>granularity:"word" | "segment"(optional) (default:'segment')options:Partial<Omit<STTOptions, "model" | "audio" | "includeTimestamps" | "timestampGranularity">> | undefined(optional)
Returns: Promise<STTResponse>
translate()
Translate audio to English text Note: Only supported by some models (e.g., Whisper)
async translate(
audio: Buffer | string,
options?: Partial<Omit<STTOptions, 'model' | 'audio'>>
): Promise<STTResponse>
Parameters:
audio:string | Buffer<ArrayBufferLike>options:Partial<Omit<STTOptions, "model" | "audio">> | undefined(optional)
Returns: Promise<STTResponse>
getModelInfo()
Get model information for current or specified model
getModelInfo(model?: string): ISTTModelDescription
Parameters:
model:string | undefined(optional)
Returns: ISTTModelDescription
getModelCapabilities()
Get model capabilities
getModelCapabilities(model?: string)
Parameters:
model:string | undefined(optional)
Returns: STTModelCapabilities
listAvailableModels()
List all available models for this provider's vendor
listAvailableModels(): ISTTModelDescription[]
Returns: ISTTModelDescription[]
supportsFeature()
Check if a specific feature is supported by the model
supportsFeature(
feature: keyof ISTTModelDescription['capabilities']['features'],
model?: string
): boolean
Parameters:
feature:"translation" | "diarization" | "streaming" | "punctuation" | "profanityFilter"model:string | undefined(optional)
Returns: boolean
getSupportedInputFormats()
Get supported input audio formats
getSupportedInputFormats(model?: string): readonly string[] | string[]
Parameters:
model:string | undefined(optional)
Returns: readonly string[] | string[]
getSupportedOutputFormats()
Get supported output formats
getSupportedOutputFormats(model?: string): readonly string[]
Parameters:
model:string | undefined(optional)
Returns: readonly string[]
getSupportedLanguages()
Get supported languages (empty array = auto-detect all)
getSupportedLanguages(model?: string): readonly string[]
Parameters:
model:string | undefined(optional)
Returns: readonly string[]
supportsTimestamps()
Check if timestamps are supported
supportsTimestamps(model?: string): boolean
Parameters:
model:string | undefined(optional)
Returns: boolean
supportsTranslation()
Check if translation is supported
supportsTranslation(model?: string): boolean
Parameters:
model:string | undefined(optional)
Returns: boolean
supportsDiarization()
Check if speaker diarization is supported
supportsDiarization(model?: string): boolean
Parameters:
model:string | undefined(optional)
Returns: boolean
getTimestampGranularities()
Get timestamp granularities supported
getTimestampGranularities(model?: string): ('word' | 'segment')[] | undefined
Parameters:
model:string | undefined(optional)
Returns: ("word" | "segment")[] | undefined
setModel()
Update default model
setModel(model: string): void
Parameters:
model:string
Returns: void
setLanguage()
Update default language
setLanguage(language: string): void
Parameters:
language:string
Returns: void
setTemperature()
Update default temperature
setTemperature(temperature: number): void
Parameters:
temperature:number
Returns: void
ISTTModelDescription interface
📍 src/domain/entities/STTModel.ts:80
Complete STT model description
Properties
| Property | Type | Description |
|---|---|---|
capabilities |
capabilities: STTModelCapabilities; |
- |
pricing? |
pricing?: STTModelPricing; |
- |
SpeechToTextConfig interface
Configuration for SpeechToText capability
Properties
| Property | Type | Description |
|---|---|---|
connector |
`connector: string | Connector;` |
model? |
model?: string; |
Default model to use |
language? |
language?: string; |
Default language (ISO-639-1 code) |
temperature? |
temperature?: number; |
Default temperature for sampling |
STTModelCapabilities interface
📍 src/domain/entities/STTModel.ts:22
STT model capabilities
Properties
| Property | Type | Description |
|---|---|---|
inputFormats |
`inputFormats: readonly string[] | string[];` |
outputFormats |
outputFormats: STTOutputFormat[]; |
Supported output formats |
languages |
languages: string[]; |
Supported languages (empty = auto-detect all) |
timestamps |
`timestamps: { |
supported: boolean;
granularities?: ('word' | 'segment')[];
};| Timestamp support | |features|features: {
/** Translation to English /
translation: boolean;
/* Speaker identification /
diarization: boolean;
/* Real-time streaming /
streaming: boolean;
/* Automatic punctuation /
punctuation: boolean;
/* Profanity filtering /
profanityFilter: boolean;
};| Feature support flags | |limits|limits: {
/* Maximum file size in MB /
maxFileSizeMB: number;
/* Maximum duration in seconds */
maxDurationSeconds?: number;
};| Model limits | |vendorOptions?|vendorOptions?: Record<string, VendorOptionSchema>;` | Vendor-specific options schema |
STTOptions interface
📍 src/domain/interfaces/IAudioProvider.ts:115
Options for speech-to-text transcription
Properties
| Property | Type | Description |
|---|---|---|
model |
model: string; |
Model to use (e.g., 'whisper-1', 'gpt-4o-transcribe') |
audio |
`audio: Buffer | string;` |
sampleRate? |
`sampleRate?: 8000 | 16000 |
encoding? |
`encoding?: 'pcm' | 'mulaw' |
language? |
language?: string; |
Language code (ISO-639-1), optional for auto-detection |
outputFormat? |
outputFormat?: STTOutputFormat; |
Output format |
includeTimestamps? |
includeTimestamps?: boolean; |
Include word/segment timestamps |
timestampGranularity? |
`timestampGranularity?: 'word' | 'segment';` |
prompt? |
prompt?: string; |
Optional prompt to guide the model |
temperature? |
temperature?: number; |
Temperature for sampling (0-1) |
vendorOptions? |
vendorOptions?: Record<string, unknown>; |
Vendor-specific options passthrough |
STTResponse interface
📍 src/domain/interfaces/IAudioProvider.ts:177
Response from speech-to-text transcription
Properties
| Property | Type | Description |
|---|---|---|
text |
text: string; |
Transcribed text |
language? |
language?: string; |
Detected or specified language |
durationSeconds? |
durationSeconds?: number; |
Audio duration in seconds |
words? |
words?: WordTimestamp[]; |
Word-level timestamps (if requested) |
segments? |
segments?: SegmentTimestamp[]; |
Segment-level timestamps (if requested) |
STTOutputFormat type
📍 src/domain/entities/STTModel.ts:17
STT output format types
type STTOutputFormat = 'json' | 'text' | 'srt' | 'vtt' | 'verbose_json'
STTOutputFormat type
📍 src/domain/interfaces/IAudioProvider.ts:110
STT output format types
type STTOutputFormat = 'json' | 'text' | 'srt' | 'vtt' | 'verbose_json'
calculateSTTCost function
📍 src/domain/entities/STTModel.ts:633
Calculate estimated cost for STT
export function calculateSTTCost(
modelName: string,
durationSeconds: number,
options?: { inputTokens?: number; streaming?: boolean }
): number | null
getSTTModelsWithFeature function
📍 src/domain/entities/STTModel.ts:622
Get STT models that support a specific feature
export function getSTTModelsWithFeature(
feature: keyof ISTTModelDescription['capabilities']['features']
): ISTTModelDescription[]
STT_MODEL_REGISTRY const
📍 src/domain/entities/STTModel.ts:152
Complete STT model registry Last full audit: October 2026
Properties
| Property | Type | Description |
|---|---|---|
'gpt-transcribe' |
`{ |
name: 'gpt-transcribe',
displayName: 'GPT Transcribe',
provider: Vendor.OpenAI,
description: 'Current accurate file-transcription model for multilingual audio',
isActive: true,
lifecycle: 'active',
availability: 'public',
preferred: true,
endpoints: ['audio_transcription'],
releaseDate: '2026-07-09',
sources: {
documentation: 'https://developers.openai.com/api/docs/models/gpt-transcribe',
pricing: 'https://developers.openai.com/api/docs/pricing',
lastVerified: '2026-08-30',
},
capabilities: {
...WHISPER_BASE_CAPABILITIES,
outputFormats: ['json', 'text'],
features: { translation: false, diarization: false, streaming: false, punctuation: true, profanityFilter: false },
limits: { maxFileSizeMB: 25, maxDurationSeconds: 7200 },
},
pricing: { perMinute: 0.0045, currency: 'USD' },
}| - | |'gpt-4o-mini-transcribe'|{
name: 'gpt-4o-mini-transcribe',
displayName: 'GPT-4o Mini Transcribe',
provider: Vendor.OpenAI,
description: 'Cost-efficient GPT-4o transcription for high-volume workloads',
isActive: true,
lifecycle: 'active',
availability: 'public',
endpoints: ['audio_transcription'],
releaseDate: '2025-03-20',
sources: {
documentation: 'https://developers.openai.com/api/docs/models/gpt-4o-mini-transcribe',
pricing: 'https://developers.openai.com/api/docs/pricing',
lastVerified: '2026-08-30',
},
capabilities: {
...WHISPER_BASE_CAPABILITIES,
outputFormats: ['json', 'text'],
features: { translation: false, diarization: false, streaming: false, punctuation: true, profanityFilter: false },
limits: { maxFileSizeMB: 25, maxDurationSeconds: 7200 },
},
pricing: { perMinute: 0.003, currency: 'USD' },
}| - | |'gpt-live-transcribe'|{
name: 'gpt-live-transcribe',
displayName: 'GPT Live Transcribe',
provider: Vendor.OpenAI,
description: 'Recommended streaming speech-to-text model with incremental transcript deltas, vocabulary hints, multilingual hints, and tunable latency',
isActive: true,
sources: {
documentation: 'https://developers.openai.com/api/docs/models/gpt-live-transcribe',
pricing: 'https://developers.openai.com/api/docs/pricing',
lastVerified: '2026-08-30',
},
capabilities: {
...WHISPER_BASE_CAPABILITIES,
outputFormats: ['json', 'text'],
features: {
translation: false,
diarization: false,
streaming: true,
punctuation: true,
profanityFilter: false,
},
limits: { maxFileSizeMB: 0 },
vendorOptions: {
delay: {
type: 'string',
description: 'Streaming transcript latency/accuracy tradeoff',
default: 'low',
},
keywords: {
type: 'array',
description: 'Literal vocabulary hints such as product names and acronyms',
},
languages: {
type: 'array',
description: 'Expected ISO language codes; do not combine with language',
},
},
},
pricing: { perMinute: 0.017, currency: 'USD' },
}| - | |'gpt-realtime-whisper'|{
name: 'gpt-realtime-whisper',
displayName: 'GPT Realtime Whisper',
provider: Vendor.OpenAI,
description: 'Low-latency streaming speech-to-text model for realtime transcription',
isActive: true,
sources: {
documentation: 'https://developers.openai.com/api/docs/models/gpt-realtime-whisper',
pricing: 'https://developers.openai.com/api/docs/pricing',
lastVerified: '2026-08-30',
},
capabilities: {
...WHISPER_BASE_CAPABILITIES,
outputFormats: ['json', 'text'],
features: {
translation: false,
diarization: false,
streaming: true,
punctuation: true,
profanityFilter: false,
},
limits: { maxFileSizeMB: 0 },
},
pricing: { perMinute: 0.017, currency: 'USD' },
}| - | |'gpt-4o-transcribe'|{
name: 'gpt-4o-transcribe',
displayName: 'GPT-4o Transcribe',
provider: Vendor.OpenAI,
description: 'GPT-4o based transcription with superior accuracy and context understanding',
isActive: true,
releaseDate: '2025-04-01',
sources: {
documentation: 'https://platform.openai.com/docs/guides/speech-to-text',
pricing: 'https://openai.com/pricing',
lastVerified: '2026-08-30',
},
capabilities: {
...WHISPER_BASE_CAPABILITIES,
features: {
translation: true,
diarization: false,
streaming: false, // Not implementing streaming in v1
punctuation: true,
profanityFilter: false,
},
limits: { maxFileSizeMB: 25, maxDurationSeconds: 7200 },
},
pricing: { perMinute: 0.006, currency: 'USD' },
}| - | |'gpt-4o-transcribe-diarize'|{
name: 'gpt-4o-transcribe-diarize',
displayName: 'GPT-4o Transcribe + Diarization',
provider: Vendor.OpenAI,
description: 'GPT-4o transcription with speaker identification',
isActive: true,
releaseDate: '2025-04-01',
sources: {
documentation: 'https://platform.openai.com/docs/guides/speech-to-text',
pricing: 'https://openai.com/pricing',
lastVerified: '2026-08-30',
},
capabilities: {
...WHISPER_BASE_CAPABILITIES,
outputFormats: ['json', 'verbose_json'],
features: {
translation: true,
diarization: true, // Built-in speaker identification
streaming: false,
punctuation: true,
profanityFilter: false,
},
limits: { maxFileSizeMB: 25, maxDurationSeconds: 7200 },
vendorOptions: {
max_speakers: {
type: 'number',
description: 'Maximum number of speakers to detect',
min: 2,
max: 10,
default: 4,
},
},
},
pricing: { perMinute: 0.012, currency: 'USD' }, // 2x for diarization
}| - | |'whisper-1'|{
name: 'whisper-1',
displayName: 'Whisper',
provider: Vendor.OpenAI,
description: "OpenAI's general-purpose speech recognition model",
isActive: true,
releaseDate: '2023-03-01',
sources: {
documentation: 'https://platform.openai.com/docs/guides/speech-to-text',
pricing: 'https://openai.com/pricing',
lastVerified: '2026-08-30',
},
capabilities: {
...WHISPER_BASE_CAPABILITIES,
inputFormats: ['mp3', 'mp4', 'mpeg', 'mpga', 'm4a', 'wav', 'webm'],
features: {
translation: true,
diarization: false,
streaming: false,
punctuation: true,
profanityFilter: false,
},
limits: { maxFileSizeMB: 25 },
},
pricing: { perMinute: 0.006, currency: 'USD' },
}| - | |'gemini-3.5-transcribe'|{
name: 'gemini-3.5-transcribe',
displayName: 'Gemini 3.5 Transcribe',
provider: Vendor.Google,
description: 'Dedicated file transcription with automatic language detection, diarization, word timestamps, and custom vocabulary',
isActive: true,
lifecycle: 'active',
availability: 'public',
preferred: true,
endpoints: ['interactions'],
releaseDate: '2026-08-26',
sources: {
documentation: 'https://ai.google.dev/gemini-api/docs/transcribe',
pricing: 'https://ai.google.dev/gemini-api/docs/pricing',
lastVerified: '2026-08-30',
},
capabilities: {
...WHISPER_BASE_CAPABILITIES,
inputFormats: ['wav', 'mp3', 'aiff', 'aac', 'ogg', 'flac'],
outputFormats: ['text'],
timestamps: { supported: true, granularities: ['word', 'segment'] },
features: { translation: false, diarization: true, streaming: false, punctuation: true, profanityFilter: false },
limits: { maxFileSizeMB: 20, maxDurationSeconds: 34_200 },
vendorOptions: {
customVocabulary: { type: 'array', description: 'Up to 1,000 phrases to bias recognition toward' },
diarizationMode: { type: 'string', description: 'Set to speaker to identify up to eight speakers' },
transcriptionConfig: { type: 'object', description: 'Additional Gemini Interactions transcription_config fields' },
},
},
pricing: { perMinute: 0.005, perMInputTokens: 2, currency: 'USD' },
}| - | |'gemini-3.5-transcribe-live'|{
name: 'gemini-3.5-transcribe-live',
displayName: 'Gemini 3.5 Transcribe Live',
provider: Vendor.Google,
description: 'Low-latency bidirectional WebSocket audio transcription',
isActive: true,
lifecycle: 'active',
availability: 'public',
endpoints: ['realtime'],
releaseDate: '2026-08-26',
sources: {
documentation: 'https://ai.google.dev/gemini-api/docs/transcribe',
pricing: 'https://ai.google.dev/gemini-api/docs/pricing',
lastVerified: '2026-08-30',
},
capabilities: {
...WHISPER_BASE_CAPABILITIES,
inputFormats: ['pcm', 'wav'],
outputFormats: ['text'],
timestamps: { supported: true, granularities: ['word', 'segment'] },
features: { translation: false, diarization: true, streaming: true, punctuation: true, profanityFilter: false },
limits: { maxFileSizeMB: 0 },
},
pricing: { perMinute: 0.009, streamingPerMinute: 0.009, perMInputTokens: 3.5, currency: 'USD' },
}| - | |'gemini-3.6-flash'|{
name: 'gemini-3.6-flash',
displayName: 'Gemini 3.6 Flash Audio Transcription',
provider: Vendor.Google,
description: 'Gemini Interactions transcription with language hints, normalized timestamps, diarization, and custom vocabulary',
isActive: true,
lifecycle: 'active',
availability: 'public',
endpoints: ['interactions'],
releaseDate: '2026-07-21',
sources: {
documentation: 'https://ai.google.dev/gemini-api/docs/audio',
pricing: 'https://ai.google.dev/gemini-api/docs/pricing',
lastVerified: '2026-08-30',
},
capabilities: {
...WHISPER_BASE_CAPABILITIES,
inputFormats: ['wav', 'mp3', 'aiff', 'aac', 'ogg', 'flac'],
outputFormats: ['text'],
timestamps: { supported: true, granularities: ['segment'] },
features: { translation: true, diarization: true, streaming: false, punctuation: true, profanityFilter: false },
limits: { maxFileSizeMB: 20, maxDurationSeconds: 34200 },
vendorOptions: {
instructions: { type: 'string', description: 'Custom transcription, translation, or extraction instructions' },
customVocabulary: { type: 'array', description: 'Phrases to bias native speech recognition toward' },
diarizationMode: { type: 'string', description: 'Set to speaker to include speaker labels on words' },
transcriptionConfig: { type: 'object', description: 'Additional Gemini Interactions transcription_config fields' },
},
},
pricing: { perMInputTokens: 1.5, currency: 'USD' },
}| - | |'grok-voice-transcribe-2.0'|{
name: 'grok-voice-transcribe-2.0',
displayName: 'Grok Voice Transcribe 2.0',
provider: Vendor.Grok,
description: 'Current xAI file and streaming transcription model with timestamps, diarization, and multichannel support',
isActive: true,
lifecycle: 'active',
availability: 'region_limited',
preferred: true,
endpoints: ['audio_transcription', 'realtime'],
releaseDate: '2026-09-17',
sources: { documentation: 'https://docs.x.ai/developers/model-capabilities/audio/speech-to-text', pricing: 'https://docs.x.ai/developers/models/speech-to-text', lastVerified: '2026-10-07' },
capabilities: {
...WHISPER_BASE_CAPABILITIES,
outputFormats: ['json', 'text', 'verbose_json'],
features: { translation: false, diarization: true, streaming: true, punctuation: true, profanityFilter: false },
limits: { maxFileSizeMB: 500 },
vendorOptions: {
format: { type: 'boolean', description: 'Apply automatic transcript formatting', default: false },
multichannel: { type: 'boolean', description: 'Transcribe channels independently', default: false },
channels: { type: 'number', description: 'Number of channels in raw audio', min: 2, max: 8 },
diarize: { type: 'boolean', description: 'Identify distinct speakers', default: false },
keyterm: { type: 'array', description: 'Terms whose recognition should be boosted' },
filler_words: { type: 'boolean', description: 'Retain filler words in the transcript', default: false },
vad_threshold: { type: 'number', description: 'Voice-activity detection threshold', min: 0, max: 1, default: 0.08 },
},
},
pricing: { perMinute: 0.0016666667, streamingPerMinute: 0.0033333333, currency: 'USD' },
}| - | |'xai-stt'|{
name: 'xai-stt',
displayName: 'xAI Speech to Text',
provider: Vendor.Grok,
description: 'Low-cost xAI file and streaming transcription with timestamps, diarization, and multichannel support',
isActive: true,
lifecycle: 'legacy',
availability: 'region_limited',
replacementModel: 'grok-voice-transcribe-2.0',
endpoints: ['audio_transcription', 'realtime'],
releaseDate: '2026-07-23',
sources: {
documentation: 'https://docs.x.ai/developers/model-capabilities/audio/speech-to-text',
pricing: 'https://docs.x.ai/developers/models/speech-to-text',
lastVerified: '2026-08-30',
},
capabilities: {
...WHISPER_BASE_CAPABILITIES,
outputFormats: ['json', 'text', 'verbose_json'],
features: { translation: false, diarization: true, streaming: true, punctuation: true, profanityFilter: false },
limits: { maxFileSizeMB: 500 },
vendorOptions: {
format: { type: 'boolean', description: 'Apply automatic transcript formatting', default: false },
multichannel: { type: 'boolean', description: 'Transcribe channels independently', default: false },
channels: { type: 'number', description: 'Number of channels in raw audio', min: 2, max: 8 },
diarize: { type: 'boolean', description: 'Identify distinct speakers', default: false },
keyterm: { type: 'array', description: 'Terms whose recognition should be boosted' },
filler_words: { type: 'boolean', description: 'Retain filler words in the transcript', default: false },
vad_threshold: { type: 'number', description: 'Voice-activity detection threshold', min: 0, max: 1, default: 0.08 },
},
},
pricing: { perMinute: 0.0016666667, streamingPerMinute: 0.0033333333, currency: 'USD' },
}| - | |'whisper-large-v3'|{
name: 'whisper-large-v3',
displayName: 'Whisper Large v3 (Groq)',
provider: Vendor.Groq,
description: 'Ultra-fast Whisper on Groq LPUs - 12x cheaper than OpenAI',
isActive: true,
releaseDate: '2024-04-01',
sources: {
documentation: 'https://console.groq.com/docs/speech-to-text',
pricing: 'https://console.groq.com/docs/speech-to-text',
lastVerified: '2026-08-30',
},
capabilities: {
...WHISPER_BASE_CAPABILITIES,
timestamps: { supported: true, granularities: ['word', 'segment'] },
outputFormats: ['json', 'text', 'verbose_json'],
features: {
translation: true,
diarization: false,
streaming: false,
punctuation: true,
profanityFilter: false,
},
limits: { maxFileSizeMB: 100 },
},
pricing: { perMinute: 0.00185, currency: 'USD' },
}| - | |'whisper-large-v3-turbo'|{
name: 'whisper-large-v3-turbo',
displayName: 'Whisper Large v3 Turbo (Groq)',
provider: Vendor.Groq,
description: 'Cost-optimized multilingual Whisper transcription on Groq LPUs',
isActive: true,
lifecycle: 'active',
availability: 'public',
preferred: true,
releaseDate: '2024-09-18',
sources: {
documentation: 'https://console.groq.com/docs/speech-to-text',
pricing: 'https://console.groq.com/docs/speech-to-text',
lastVerified: '2026-08-30',
},
capabilities: {
...WHISPER_BASE_CAPABILITIES,
outputFormats: ['json', 'text', 'verbose_json'],
timestamps: { supported: true, granularities: ['word', 'segment'] },
features: { translation: true, diarization: false, streaming: false, punctuation: true, profanityFilter: false },
limits: { maxFileSizeMB: 100 },
},
pricing: { perMinute: 0.0006666667, currency: 'USD' },
}| - | |'distil-whisper-large-v3-en'|{
name: 'distil-whisper-large-v3-en',
displayName: 'Distil Whisper (Groq)',
provider: Vendor.Groq,
description: 'Faster English-only Whisper variant on Groq',
isActive: false,
lifecycle: 'retired',
retirementDate: '2025-08-23',
replacementModel: 'whisper-large-v3-turbo',
releaseDate: '2024-04-01',
sources: {
documentation: 'https://console.groq.com/docs/speech-to-text',
pricing: 'https://console.groq.com/docs/speech-to-text',
lastVerified: '2026-08-30',
},
capabilities: {
inputFormats: AUDIO_FORMATS.STT_INPUT,
outputFormats: ['json', 'text', 'verbose_json'],
languages: ['en'], // English only
timestamps: { supported: true, granularities: ['segment'] },
features: {
translation: false,
diarization: false,
streaming: false,
punctuation: true,
profanityFilter: false,
},
limits: { maxFileSizeMB: 25 },
},
pricing: { perMinute: 0.00033, currency: 'USD' },
}` | - |