Pre-Recorded Audio Transcription
An overview of the Deepgram .NET SDK and Deepgram speech-to-text pre-recorded.
The .NET SDK
implements a PreRecordedClient at the root of the Deepgram
namespace that allows you to request transcripts for pre-recorded audio. To request a transcript for a pre-recorded particular audio file, you'll use the TranscribeUrl
or TranscribeFile
methods.
Installing the SDK
# Install the Deepgram .NET SDK
# https://github.com/deepgram/deepgram-dotnet-sdk
dotnet add package Deepgram
# Optionally, install the Deepgram Microphone package
dotnet add package Deepgram.Microphone
Transcription Sources
Two types of sources can be provided for transcription:
UrlSource
Provides a URL to the file to transcribe.
// Set "DEEPGRAM_API_KEY" environment variable to your Deepgram API Key
var deepgramClient = ClientFactory.CreateListenRESTClient();
var response = await deepgramClient.TranscribeUrl(
new UrlSource("https://static.deepgram.com/examples/Bueller-Life-moves-pretty-fast.wav"),
new PreRecordedSchema()
{
Model = "nova-2",
});
Console.WriteLine(response);
StreamSource
Provide a stream containing the file to transcribe.
// Set "DEEPGRAM_API_KEY" environment variable to your Deepgram API Key
var deepgramClient = ClientFactory.CreateListenRESTClient();
var audioData = File.ReadAllBytes(@"Bueller-Life-moves-pretty-fast.wav");
var response = await deepgramClient.TranscribeFile(
audioData,
new PreRecordedSchema()
{
Model = "nova-2",
Punctuate = true,
});
Console.WriteLine(response);
HTTP Client Timeout
For larger files, you might need to increase the default HTTP Timeout setting set to 30 seconds by default.
For TranscribeUrl
, that would look like:
# 10 minute timeout: 600,000ms = 10mins
CancellationTokenSource cancelToken = new CancellationTokenSource(600000);
var response = await deepgramClient.TranscribeUrl(
new UrlSource("https://static.deepgram.com/examples/Bueller-Life-moves-pretty-fast.wav"),
new PreRecordedSchema()
{
Model = "nova-2",
},
cancelToken);
For TranscribeFile
, that would look like:
# 10 minute timeout: 600,000ms = 10mins
CancellationTokenSource cancelToken = new CancellationTokenSource(600000);
var audioData = File.ReadAllBytes(@"Bueller-Life-moves-pretty-fast.wav");
var response = await deepgramClient.TranscribeFile(
audioData,
new PreRecordedSchema()
{
Model = "nova-2",
Punctuate = true,
},
cancelToken);
Increasing the Timeout for Processing Larger Files
For larger files, you might need to increase the default HTTP Timeout setting, which is 300 seconds (or 5 mins).
var deepgram = new DeepgramClient(credentials);
deepgram.SetHttpClientTimeout(TimeSpan.FromSeconds(300)); // 300 = 5 mins
Updated 3 months ago