Overview
Transcribe audio using Deepgram’s speech recognition API.
Key Features
- Transcribe audio from a URL
- Use the Nova 2 model for transcription
Task code
trigger/deepgramTranscription.ts
import { createClient } from "@deepgram/sdk";
import { logger, task } from "@trigger.dev/sdk/v3";
// Initialize the Deepgram client, using your Deepgram API key (you can find this in your Deepgram account settings).
const deepgram = createClient(process.env.DEEPGRAM_SECRET_KEY);
export const deepgramTranscription = task({
id: "deepgram-transcribe-audio",
run: async (payload: { audioUrl: string }) => {
const { audioUrl } = payload;
logger.log("Transcribing audio from URL", { audioUrl });
// Transcribe the audio using Deepgram
const { result, error } = await deepgram.listen.prerecorded.transcribeUrl(
{
url: audioUrl,
},
{
model: "nova-2", // Use the Nova 2 model for the transcription
smart_format: true, // Automatically format transcriptions to improve readability
diarize: true, // Recognize speaker changes and assign a speaker to each word in the transcript
}
);
if (error) {
logger.error("Failed to transcribe audio", { error });
throw error;
}
console.dir(result, { depth: null });
// Extract the transcription from the result
const transcription = result.results.channels[0].alternatives[0].paragraphs?.transcript;
logger.log(`Generated transcription: ${transcription}`);
return {
result,
};
},
});
Testing your task
To test this task in the dashboard, you can use the following payload:
{
"audioUrl": "https://dpgr.am/spacewalk.wav"
}