chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
---
|
||||
title: "Transcribe audio using Deepgram"
|
||||
sidebarTitle: "Deepgram audio transcription"
|
||||
description: "This example will show you how to transcribe audio using Deepgram's speech recognition API with Trigger.dev."
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
Transcribe audio using [Deepgram's](https://developers.deepgram.com/docs/introduction) speech recognition API.
|
||||
|
||||
## Key Features
|
||||
|
||||
- Transcribe audio from a URL
|
||||
- Use the Nova 2 model for transcription
|
||||
|
||||
## Task code
|
||||
|
||||
```ts trigger/deepgramTranscription.ts
|
||||
import { createClient } from "@deepgram/sdk";
|
||||
import { logger, task } from "@trigger.dev/sdk";
|
||||
|
||||
// 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:
|
||||
|
||||
```json
|
||||
{
|
||||
"audioUrl": "https://dpgr.am/spacewalk.wav"
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user