πŸš€ Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more β†’
Socket
DemoInstallSign in
Socket

EdgeTtsSharp

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

EdgeTtsSharp

Library for interfacing with Microsoft EdgeTTS service heavily inspired by Entity-Now/Edge_tts_sharp. This library uses direct streaming under the hood and is able to start playing audio immediatelly before the download is completed. It provides an audio stream or can write directly into 3rd party stream (like HTTP reponse).

2.0.4
NuGet
Version published
Maintainers
1
Created
Source

EdgeTTS Sharp

Overview

EdgeTTS Sharp is a .NET Standard 2.1 library that provides an easy-to-use interface for text-to-speech (TTS) synthesis using Microsoft's Edge voices. It is designed to work across different systems and environments, offering flexible ways to handle audio streams. Whether you need real-time streaming, file saving, or direct playback, EdgeTTS Sharp makes it simple to integrate high-quality TTS into your applications.

Key Features

βœ” Real-time audio streaming – Start playback immediately as the first audio packet arrives.
βœ” Save to file – Store generated speech as an audio file while streaming.
βœ” Stream to third-party services – Send audio directly to a network stream (e.g., HTTP response).
βœ” Cross-platform support – Works on any system supporting .NET Standard 2.1.
βœ” Windows-specific playback support – Utilize NAudio for local playback on Windows.

EdgeTtsSharp

EdgeTts.GetAudioStream

Returns a stream that starts playing immediately once the first audio packet arrives.

var voice = await EdgeTts.GetVoice("en-US-ChristopherNeural");
await using var stream = voice.GetAudioStream("test");

// use the stream here

EdgeTts.SaveAudioToFile

Uses GetAudioStream internally and redirects the stream to a file. The saving process starts immediately when the first packet arrives.

var voice = await EdgeTts.GetVoice("en-US-ChristopherNeural");
await voice.SaveAudioToFile("test", @"d:\test\test1.mp3");

EdgeTts.StreamText

Streams audio directly to a specified output stream, such as an HTTP response body. If HTTP headers are set correctly, browsers can start playback before the download finishes, showing the progress indicator as the audio loads.

[HttpGet("api/audio/{id}")]
[Produces("audio/mpeg")]
[ResponseCache(NoStore = true, Location = ResponseCacheLocation.None)]

...

var voice = await EdgeTts.GetVoice("en-US-ChristopherNeural");

// stream audio directly to HttpResponse as it's being downloaded
await voice.StreamText(this.Response.Body, "test");

EdgeTts.GetVoices

Provides an offline lookup of all available voices from Edge_tts_sharp. If the list is outdated, feel free to report it.

EdgeTts.GetVoice

Retrieves a specific voice using its short name (e.g., "en-US-ChristopherNeural").

EdgeTtsSharp.NAudio (Windows-Specific)

This module is for Windows users who want local playback using NAudio. However, due to NAudio's limitations, it requires downloading the entire stream before playback begins.

EdgeTtsWindowsPlayback.PlayText

var voice = await EdgeTts.GetVoice("en-US-ChristopherNeural");
await voice.PlayText("test");

License

EdgeTtsSharp is licensed under the MIT License.

The configuration file containing the list of available voices was taken from Entity-Now/Edge_tts_sharp, and the authentication method is also inspired by that project.

Keywords

FAQs

Package last updated on 17 Feb 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts