Skip to main content 홈 크리에이터 comeonoliver skillshub deepgram-cost-tuning
deepgram-cost-tuning Optimize Deepgram costs and usage for budget-conscious deployments.
Use when reducing transcription costs, implementing usage controls,
or optimizing pricing tier utilization.
Trigger: "deepgram cost", "reduce deepgram spending", "deepgram pricing",
"deepgram budget", "optimize deepgram usage", "deepgram billing".
설치로 이동 Skills Marketplace 커뮤니티가 만든 AI 스킬을 발견하고 탐색하세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/ComeOnOliver/skillshub --skill deepgram-cost-tuning명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
Zip 다운로드 다운로드 중... 이 저장소의 다른 Skills Review product and feature risk before an AI coding agent starts implementation.
Use Xquik for X data and confirmation-gated X actions: tweet search, user lookup, follower export, media download, monitors, webhooks, MCP, and SDK workflows.
Canton Network open-source ecosystem guide covering DAML SDK, Canton runtime, and Splice applications. Use when working with Canton Network, DAML smart contracts, or building decentralized applications.
name deepgram-cost-tuning description Optimize Deepgram costs and usage for budget-conscious deployments.
Use when reducing transcription costs, implementing usage controls,
or optimizing pricing tier utilization.
Trigger: "deepgram cost", "reduce deepgram spending", "deepgram pricing",
"deepgram budget", "optimize deepgram usage", "deepgram billing".
allowed-tools Read, Write, Edit, Bash(ffmpeg:*) version 1.0.0 license MIT author Jeremy Longshore <jeremy@intentsolutions.io> compatible-with claude-code, codex, openclaw tags ["saas","deepgram","cost-optimization","billing"]
Deepgram Cost Tuning
Overview
Optimize Deepgram API costs through smart model selection, audio preprocessing to reduce billable minutes, usage monitoring via the Deepgram API, budget guardrails, and feature-aware cost estimation. Deepgram bills per audio minute processed.
Deepgram Pricing (2026)
Product Model Price/Minute Notes STT (Batch) Nova-3 $0.0043 Best accuracy STT (Batch) Nova-2 $0.0043 Proven stable STT (Streaming) Nova-3 $0.0059 Real-time STT (Streaming) Nova-2 $0.0059 Real-time STT (Batch) Base $0.0048 Fastest STT (Batch) Whisper $0.0048 Multilingual TTS Aura-2 Pay-per-character See TTS pricing Intelligence Summarize/Topics/Sentiment Included with STT No extra cost
Add-on costs:
Diarization: +$0.0044/min
Multichannel: billed per channel
Instructions
Step 1: Budget-Aware Transcription Service
import { createClient } from '@deepgram/sdk' ;
interface BudgetConfig {
monthlyLimitUsd : number ;
warningThreshold : number ;
costPerMinute : number ;
}
class BudgetAwareTranscriber {
private client : ReturnType < createClient>;
: ;
monthlySpendUsd = ;
monthlyMinutes = ;
( ) {
. = (apiKey);
. = config;
}
( ) {
estimatedCost = . (options);
projected = . + estimatedCost;
(projected > . . ) {
(
+
);
}
(projected > . . * . . ) {
. (
+
);
}
{ result, error } = . . . . (
source, options
);
(error) error;
duration = result. . / ;
actualCost = . (duration, options);
. += duration;
. += actualCost;
result;
}
( : ): {
. ( , options);
}
( : , : ): {
cost = minutes * . . ;
(options. ) cost += minutes * ;
cost;
}
( ) {
{
: . . ( ),
: . . ( ),
: ( . . - . ). ( ),
: (( . / . . ) * ). ( ),
};
}
}
transcriber = (process. . !, {
: ,
: ,
: ,
});
typeof
private
config
BudgetConfig
private
0
private
0
constructor
apiKey : string , config : BudgetConfig
this
client
createClient
this
config
async
transcribe
source : any , options : any
const
this
estimateCost
const
this
monthlySpendUsd
if
this
config
monthlyLimitUsd
throw
new
Error
`Budget exceeded: $${this .monthlySpendUsd.toFixed(2 )} spent, `
`$${this .config.monthlyLimitUsd} limit`
if
this
config
monthlyLimitUsd
this
config
warningThreshold
console
warn
`Budget warning: ${((projected / this .config.monthlyLimitUsd) * 100 ).toFixed(0 )} % `
`of $${this .config.monthlyLimitUsd} limit`
const
await
this
client
listen
prerecorded
transcribeUrl
if
throw
const
metadata
duration
60
const
this
calculateCost
this
monthlyMinutes
this
monthlySpendUsd
return
private
estimateCost
options
any
number
return
this
calculateCost
5
private
calculateCost
minutes
number
options
any
number
let
this
config
costPerMinute
if
diarize
0.0044
return
getUsageSummary
return
minutesUsed
this
monthlyMinutes
toFixed
1
spentUsd
this
monthlySpendUsd
toFixed
4
remainingUsd
this
config
monthlyLimitUsd
this
monthlySpendUsd
toFixed
4
utilizationPercent
this
monthlySpendUsd
this
config
monthlyLimitUsd
100
toFixed
1
const
new
BudgetAwareTranscriber
env
DEEPGRAM_API_KEY
monthlyLimitUsd
100
warningThreshold
0.8
costPerMinute
0.0043
Step 2: Reduce Billable Minutes with Audio Preprocessing
ffmpeg -i input.wav \
-af "silenceremove=stop_periods=-1:stop_duration=0.5:stop_threshold=-30dB" \
-ar 16000 -ac 1 -acodec pcm_s16le \
trimmed.wav
ffmpeg -i input.wav \
-filter:a "atempo=1.25" \
-ar 16000 -ac 1 -acodec pcm_s16le \
faster.wav
import { execSync } from 'child_process' ;
function measureSavings (inputPath : string ) {
const origDuration = parseFloat (
execSync (`ffprobe -v quiet -show_entries format=duration -of csv=p=0 "${inputPath} "` )
.toString ().trim ()
);
execSync (`ffmpeg -y -i "${inputPath} " \
-af "silenceremove=stop_periods=-1:stop_duration=0.5:stop_threshold=-30dB" \
-ar 16000 -ac 1 -acodec pcm_s16le /tmp/trimmed.wav 2>/dev/null` );
const trimmedDuration = parseFloat (
execSync (`ffprobe -v quiet -show_entries format=duration -of csv=p=0 /tmp/trimmed.wav` )
.toString ().trim ()
);
const savings = ((1 - trimmedDuration / origDuration) * 100 ).toFixed (1 );
const costSaved = ((origDuration - trimmedDuration) / 60 * 0.0043 ).toFixed (4 );
console .log (`Original: ${origDuration.toFixed(1 )} s` );
console .log (`Trimmed: ${trimmedDuration.toFixed(1 )} s` );
console .log (`Savings: ${savings} % (${costSaved} /file at $0.0043/min)` );
}
Step 3: Query Deepgram Usage API import { createClient } from '@deepgram/sdk' ;
async function getUsageDashboard (projectId : string ) {
const client = createClient (process.env .DEEPGRAM_API_KEY !);
const now = new Date ();
const monthStart = new Date (now.getFullYear (), now.getMonth (), 1 );
const { result } = await client.manage .getUsage (projectId, {
start : monthStart.toISOString (),
end : now.toISOString (),
});
const byModel : Record <string , { minutes : number ; cost : number }> = {};
for (const entry of (result as any ).results ?? []) {
const model = entry.model ?? 'unknown' ;
if (!byModel[model]) byModel[model] = { minutes : 0 , cost : 0 };
byModel[model].minutes += (entry.hours ?? 0 ) * 60 + (entry.minutes ?? 0 );
}
console .log ('=== Monthly Usage ===' );
for (const [model, data] of Object .entries (byModel)) {
const cost = data.minutes * 0.0043 ;
console .log (`${model} : ${data.minutes.toFixed(1 )} min ($${cost.toFixed(2 )} )` );
}
const dayOfMonth = now.getDate ();
const daysInMonth = new Date (now.getFullYear (), now.getMonth () + 1 , 0 ).getDate ();
const totalMinutes = Object .values (byModel).reduce ((s, d ) => s + d.minutes , 0 );
const projectedMinutes = (totalMinutes / dayOfMonth) * daysInMonth;
const projectedCost = projectedMinutes * 0.0043 ;
console .log (`\nProjected monthly: ${projectedMinutes.toFixed(0 )} min ($${projectedCost.toFixed(2 )} )` );
}
Step 4: Cost-Optimized Model Selection function recommendModel (params : {
qualityNeeded: 'high' | 'medium' | 'low' ;
isRealtime: boolean ;
languages: string [];
budgetPerMinute?: number ;
} ): { model : string ; pricePerMin : number ; reason : string } {
const { qualityNeeded, isRealtime, languages, budgetPerMinute } = params;
if (languages.length > 1 || !['en' , 'es' , 'fr' , 'de' ].includes (languages[0 ])) {
return { model : 'whisper-large' , pricePerMin : 0.0048 , reason : 'Multilingual support' };
}
if (budgetPerMinute !== undefined && budgetPerMinute < 0.005 ) {
return { model : 'nova-2' , pricePerMin : 0.0043 , reason : 'Best price per quality' };
}
if (isRealtime) {
return { model : 'nova-3' , pricePerMin : 0.0059 , reason : 'Best real-time accuracy' };
}
switch (qualityNeeded) {
case 'high' :
return { model : 'nova-3' , pricePerMin : 0.0043 , reason : 'Highest accuracy' };
case 'medium' :
return { model : 'nova-2' , pricePerMin : 0.0043 , reason : 'Good accuracy, proven' };
case 'low' :
return { model : 'base' , pricePerMin : 0.0048 , reason : 'Fastest processing' };
}
}
Step 5: Feature Cost Awareness
const featureCosts : Record <string , { cost : number ; description : string }> = {
smart_format : { cost : 0 , description : 'Punctuation + paragraphs + numerals' },
punctuate : { cost : 0 , description : 'Punctuation only' },
paragraphs : { cost : 0 , description : 'Paragraph formatting' },
summarize : { cost : 0 , description : 'AI summary (included with STT)' },
detect_topics : { cost : 0 , description : 'Topic detection (included)' },
sentiment : { cost : 0 , description : 'Sentiment analysis (included)' },
intents : { cost : 0 , description : 'Intent recognition (included)' },
redact : { cost : 0 , description : 'PII redaction (included)' },
diarize : { cost : 0.0044 , description : 'Speaker identification (+$0.0044/min)' },
multichannel : { cost : 0.0043 , description : 'Per-channel billing (1x STT cost per channel)' },
};
function estimateJobCost (params : {
durationMinutes: number ;
model: string ;
features: string [];
channels?: number ;
} ): number {
const baseCost = params.durationMinutes * 0.0043 ;
let addOnCost = 0 ;
for (const feature of params.features ) {
addOnCost += (featureCosts[feature]?.cost ?? 0 ) * params.durationMinutes ;
}
const channelMultiplier = params.channels ?? 1 ;
return (baseCost + addOnCost) * channelMultiplier;
}
Output
Budget-aware transcription with auto-blocking
Audio preprocessing to reduce billable minutes
Usage dashboard via Deepgram API
Cost-optimized model recommendation
Feature cost breakdown with estimation
Cost Optimization Quick Wins Strategy Savings Effort Remove silence from audio 10-40% Low (ffmpeg one-liner) Disable diarization when not needed ~50% Low (remove option) Use callback for long files Indirect (no timeouts) Low Cache repeated transcriptions 20-60% Medium (Redis) Speed up audio 1.25x 20% Low (ffmpeg) Use Nova-2 instead of Nova-3 0% (same price) None Batch pre-recorded vs streaming 37% ($0.0043 vs $0.0059) Medium
Error Handling Issue Cause Solution Budget exceeded No controls Enable budget check before transcription Unexpected charges Diarization always on Make diarization opt-in Usage API empty Wrong project ID Get ID from getProjects() Cost spike Batch job without limits Set concurrency limits + budget cap
Resources