Skip to content

Murf

Nuget package dotnet License: MIT Discord

C# SDK for the Murf AI API -- enterprise-grade text-to-speech with 150+ voices across 35 languages, voice changer, translation, and dubbing.

Features

  • Fully generated C# SDK based on Murf AI 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.
  • MEAI AIFunction tools for use with any IChatClient

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using Murf;

using var client = new MurfClient(apiKey);

// Generate speech from text
var response = await client.SubpackageTextToSpeech.GenerateAsync(
    text: "Hello, welcome to Murf AI!",
    voiceId: "en-US-natalie");

Console.WriteLine($"Audio URL: {response.AudioFile}");
Console.WriteLine($"Duration: {response.AudioLengthInSeconds}s");

// List available voices
var voices = await client.SubpackageTextToSpeech.GetVoicesAsync();
foreach (var voice in voices)
{
    Console.WriteLine($"{voice.DisplayName} ({voice.VoiceId}) - {voice.Gender}");
}

// Translate text
var translation = await client.SubpackageText.TranslateAsync(
    targetLanguage: "es-ES",
    texts: ["Hello, how are you?"]);

MEAI Tools

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
using Murf;
using Microsoft.Extensions.AI;

using var murfClient = new MurfClient(apiKey);

// Use Murf TTS as a tool with any IChatClient
IChatClient chatClient = /* your preferred chat client */;
var response = await chatClient.GetResponseAsync(
    "Generate speech saying 'Welcome to the future of AI'",
    new ChatOptions
    {
        Tools = [murfClient.AsTextToSpeechTool()],
    });

Text to Speech

Generate natural-sounding speech audio from text using Murf AI.

1
2
3
4
5
6
7
8
9
using var client = new MurfClient(apiKey);

// Generate speech from text using the Murf TTS API.
var response = await client.SubpackageTextToSpeech.GenerateAsync(
    text: "Hello, welcome to Murf AI text to speech.",
    voiceId: "en-US-natalie",
    format: "MP3");

// The response contains a URL to the generated audio file and metadata.

Voices

List available Murf AI voices for speech synthesis.

1
2
3
4
5
6
7
using var client = new MurfClient(apiKey);

// List available voices for text-to-speech synthesis.
var voices = await client.SubpackageTextToSpeech.GetVoicesAsync(
    model: "GEN2");

// The response contains a list of available voices with metadata.

Translation

Translate text between languages using Murf AI.

1
2
3
4
5
6
7
8
using var client = new MurfClient(apiKey);

// Translate text to a target language using the Murf translation API.
var response = await client.SubpackageText.TranslateAsync(
    targetLanguage: "es-ES",
    texts: ["Hello, how are you?"]);

// The response contains the translated text.

Support

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

Acknowledgments

JetBrains logo

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