Skip to content

tryAGI/Gladia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

187 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gladia

Nuget package dotnet License: MIT Discord

Features 🔥

  • Fully generated C# SDK based on official Gladia OpenAPI specification using AutoSDK
  • Same day update to support new features
  • Updated and supported automatically if there are no breaking changes
  • All modern .NET features - nullability, trimming, NativeAOT, etc.
  • Support .Net Framework/.Net Standard 2.0

Usage

using Gladia;

using var client = new GladiaClient(apiKey);

CLI

dotnet tool install --global Gladia.CLI --prerelease
gladia api --help

List Transcription Jobs

List pre-recorded transcription jobs.

using var client = new GladiaClient(apiKey);

// List recent pre-recorded transcription jobs.
var response = await client.PreRecordedV2.PreRecordedControllerGetPreRecordedJobsV2Async(
    limit: 10);

Speech To Text Client Get Text Async

using var api = new GladiaClient(apiKey);
ISpeechToTextClient speechClient = api;

// Transcribe audio using the MEAI ISpeechToTextClient interface.
// The client uploads the audio stream and polls until transcription is complete.
using var httpClient = new HttpClient();
await using var audioStream = await httpClient.GetStreamAsync(
    "https://cdn.openai.com/API/docs/audio/alloy.wav");

var ms = new MemoryStream();
await audioStream.CopyToAsync(ms);
ms.Position = 0;

var response = await speechClient.GetTextAsync(ms);

Console.WriteLine($"Text: {response.Text}");

Speech To Text Client Get Service Metadata

using var api = new GladiaClient("dummy-key");
ISpeechToTextClient speechClient = api;

// Retrieve metadata about the speech-to-text provider.
var metadata = speechClient.GetService<SpeechToTextClientMetadata>();

Pre-Recorded Solaria-3 Model

Configure a pre-recorded transcription request to use Solaria-3.

var request = new InitTranscriptionRequest
{
    AudioUrl = "https://files.gladia.io/example/audio-transcription/split_infinity.wav",
    Model = PreRecordedTranscriptionModel.Solaria3,
    LanguageConfig = new LanguageConfig
    {
        Languages = [TranscriptionLanguageCodeEnum.En],
        CodeSwitching = false,
    },
};

// Solaria-3 is available for async pre-recorded transcription only.
// Use one supported language and keep code switching disabled.
var job = await client.PreRecordedV2.PreRecordedControllerInitPreRecordedJobV2Async(request);

Speech To Text Client Get Service Self

using var api = new GladiaClient("dummy-key");
ISpeechToTextClient speechClient = api;

// Access the underlying GladiaClient from the MEAI interface.
var self = speechClient.GetService<GladiaClient>();

Support

Priority place for bugs: https://github.com/tryAGI/Gladia/issues
Priority place for ideas and general questions: https://github.com/tryAGI/Gladia/discussions
Discord: https://discord.gg/Ca2xhfBf3v

Acknowledgments

JetBrains logo

This project is supported by JetBrains through the Open Source Support Program.

CodeRabbit logo

This project is supported by CodeRabbit through the Open Source Support Program.