Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / artificial-intelligence

Effortlessly Implement Audio Translations in .NET Applications

5.00/5 (1 vote)
12 Oct 2023CPOL1 min read 5.9K  
Seamlessly convert audio messages to text in .NET using OpenAI's API
Discover how the power of OpenAI's API can be harnessed in .NET applications to efficiently translate audio files into text. This article dives into the latest functionality added to a popular NuGet package, providing a hands-on guide to implementing audio-to-text translations with ease.

Introduction

OpenAI's advancements in artificial intelligence and machine learning have provided developers with powerful tools. The recent addition of audio translations functionality to the ConnectingApps.Refit.OpenAI NuGet package makes integrating OpenAI's API into .NET applications even more seamless. This article will walk you through utilizing the new audio translations feature.

Background

The ability to translate audio content is invaluable in a myriad of applications, ranging from multimedia content creation to accessibility tools. With multimedia being omnipresent in today's digital landscape, audio translations can play a significant role in creating inclusive and globalized applications.

For those new to this NuGet package, it was introduced in a previous article. Additionally, the package received an update, introducing image variations functionality, which was detailed here.

Using the Code

After ensuring that the NuGet package is installed in your project, the following steps will guide you to use the audio translations feature:

  1. Retrieve your OpenAI API key and set it as an environment variable.
  2. Read the audio file to be translated with the FileStream object.
  3. Call the OpenAI API for audio translation.

Below is a C# code snippet showcasing this process:

C#
using ConnectingApps.Refit.OpenAI;
using ConnectingApps.Refit.OpenAI.AudioTranslation;
using Refit;

var apiKey = Environment.GetEnvironmentVariable("OPENAI_KEY");
var authorizationHeader = $"Bearer {apiKey}";
await using (var recording = new FileStream
            ("HalloWereld.mp3", FileMode.Open, FileAccess.Read))
{
    var openAiApi = RestService.For<iaudiotranslation>
        ("https://api.openai.com", OpenAiRefitSettings.RefitSettings);
    var streamPart = new StreamPart(recording, "HalloWereld.mp3");
    var response = await openAiApi.GetAudioTranslation
    (authorizationHeader, streamPart, "whisper-1");
    Console.WriteLine($"Returned response status code {response.StatusCode}");
    Console.WriteLine($"Translated text {response.Content!.Text}");
}

For comprehensive details and additional examples, visit the package's GitHub repository.

Points of Interest

The ConnectingApps.Refit.OpenAI NuGet package's evolution is a testament to the growing synergy between AI and modern development practices. The introduction of audio translations, especially, paves the way for a plethora of new applications, enhancing the user experience and breaking language barriers.

History

  • 12th October, 2023: Detailed the newly added audio translations feature
  • Earlier in October, 2023: Introduced the image variations feature
  • Previously: Initial introduction of the NuGet package

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)