Altairis.Services.AzureSpeechToTextBatch 1.2.0

dotnet add package Altairis.Services.AzureSpeechToTextBatch --version 1.2.0
                    
NuGet\Install-Package Altairis.Services.AzureSpeechToTextBatch -Version 1.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Altairis.Services.AzureSpeechToTextBatch" Version="1.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Altairis.Services.AzureSpeechToTextBatch" Version="1.2.0" />
                    
Directory.Packages.props
<PackageReference Include="Altairis.Services.AzureSpeechToTextBatch" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Altairis.Services.AzureSpeechToTextBatch --version 1.2.0
                    
#r "nuget: Altairis.Services.AzureSpeechToTextBatch, 1.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Altairis.Services.AzureSpeechToTextBatch@1.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Altairis.Services.AzureSpeechToTextBatch&version=1.2.0
                    
Install as a Cake Addin
#tool nuget:?package=Altairis.Services.AzureSpeechToTextBatch&version=1.2.0
                    
Install as a Cake Tool

Azure AI Speech Batch Transcription Client

This library provides a client for performing batch transcription of audio files using Azure AI Speech services in batch mode. The Azure SDK lacks the batch transcription feature, so this client serves as a workaround to enable batch processing of audio files for transcription.

Getting started

Prerequisites

  • An Azure subscription. If you don't have one, you can create a free account here.
  • An Azure Speech resource. You can create one in the Azure portal. Make sure to note down the resource key and region, as you will need them to authenticate with the Azure Speech service.
  • Most likely Azure Storage account with a blob container to store the audio files and the transcription results. Make sure to note down the storage account connection string and the container name. You don't have to use Azure Storage, but it is the easiest way to handle batch transcription, as the Azure Speech service requires the audio files to be accessible via a public URL.

Sample code

For more detailed sample code, see the demo CLI application in the Altairis.Services.AzureSpeechToTextBatch.Cli project.

Create a batch transcription
using Altairis.Services.AzureSpeechToTextBatch;

// Create batch data structure
var batch = new TranscriptionRequest {
    DisplayName = "My Transcription",
    ContentUrls = { "https://example.com/audio1.wav", "https://example.com/audio2.aac" },
    Locale = "en-US",
    Properties = new TranscriptionProperties {
        ProfanityFilterMode = ProfanityFilterMode.None,
        PunctuationMode = PunctuationMode.Automatic,
        DiarizationEnabled = false,
        DisplayFormWordLevelTimestampsEnabled = true,
        WordLevelTimestampsEnabled = true
    }
};

// Create instance of the client
var tc = new TranscriptionClient("<your-speech-key>", "<your-speech-region>");

// Submit the batch transcription to API
var response = await tc.CreateTranscription(batch, cancellationToken);
var transcriptionId = response.GetId();
Console.WriteLine($"Transcription created with ID: {transcriptionId}");
Get the status of a batch transcription and download all results
using Altairis.Services.AzureSpeechToTextBatch;

var transcriptionId = "00000000-0000-0000-0000-000000000000";

// Create instance of the client
var tc = new TranscriptionClient("<your-speech-key>", "<your-speech-region>");

// Get the status of the transcription job
var job = await tc.GetTranscription(transcriptionId);
if(job.Status != TranscriptionStatus.Succeeded) {
    Console.WriteLine($"Transcription status: {job.Status}");
    return;
}

// Download the results of the transcription job
Console.WriteLine($"Transcription succeeded. Downloading results...");
var files = await tc.ListFiles(transcriptionId);
using var httpClient = new HttpClient();
foreach(var file in files) {
    // Get SAS download URL for the file
    var downloadUrl = await tc.GetFileDownloadUrl(transcriptionId, file.GetId(), cancellationToken);

    // Download the file using HttpClient
    using var response = await httpClient.GetAsync(downloadUrl, cancellationToken);
    response.EnsureSuccessStatusCode();
    await using var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None);
    await response.Content.CopyToAsync(fs, cancellationToken);
}

// Delete transcription job
await tc.DeleteTranscription(transcriptionId);
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.2.0 121 8/4/2026
1.1.0 111 8/3/2026
1.0.0 118 8/1/2026