EdgeTTS.Net 1.1.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package EdgeTTS.Net --version 1.1.2                
NuGet\Install-Package EdgeTTS.Net -Version 1.1.2                
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="EdgeTTS.Net" Version="1.1.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add EdgeTTS.Net --version 1.1.2                
#r "nuget: EdgeTTS.Net, 1.1.2"                
#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.
// Install EdgeTTS.Net as a Cake Addin
#addin nuget:?package=EdgeTTS.Net&version=1.1.2

// Install EdgeTTS.Net as a Cake Tool
#tool nuget:?package=EdgeTTS.Net&version=1.1.2                

EdgeTTS.Net

EdgeTTS.Net,是一个免费的C#库,调用Microsoft Edge Text to Speech接口生成音频。

install

NuGet\Install-Package EdgeTTS.Net

方法

全局对象

参数 说明
EdgeTts.Debug 调试模式,为true则显示日志
EdgeTts.Await 同步模式,为true会等待函数执行完毕

Invoke/PlayText/SaveAudio方法

参数 说明
PlayOption 参数配置
Voice 音源
Action<List<callback>>? 回调函数,参数是一个binary数组

InvokeAsync/PlayTextAsync/SaveAudioAsync方法

参数 说明
PlayOption 参数配置
Voice 音源
Func<List<byte>, Task>>? 回调函数,参数是一个binary数组

PlayOption对象

名称 说明
Text 播放的文本
Rate 播放速度,是一个-100至+100的数值
Volume 音量,是一个0-1的浮点数值
SavePath 音频保存路径,为空不保存

获取一个Player对象

PlayerAudio对象,支持对音频进行简单的控制,例如:开始、暂停、继续播放、停止播放等。

// 获取一个PlayerAudio对象
static void getPlayer(string msg, eVoice voice)
{
    PlayOption option = new PlayOption
    {
        Rate = 0,
        Text = msg,
    };
    var player = EdgeTts.GetPlayer(option, voice);

    Console.WriteLine("开始播放");
    player.PlayAsync();
    Thread.Sleep(3000);


    Console.WriteLine("暂停播放");
    player.Pause();
    Thread.Sleep(3000);

    Console.WriteLine("继续播放");
    player.PlayAsync();
    Thread.Sleep(5000);

    player.Stop();
    Console.WriteLine("结束播放");
}

文字转语言

// 文本转语音
static void TextToAudio()
{
    PlayOption option = new PlayOption
    {
        Rate = 0,
        Text = "Hello EdgeTTs",
    };
    var voice = EdgeTts.GetVoice().First();
    EdgeTts.PlayText(option, voice);
}

保存到本地

// 保存音频
static void SaveAudio()
{
    PlayOption option = new PlayOption
    {
        Rate = 0,
        Text = "Hello EdgeTTs",
        SavePath = "C:\\audio"
    };
    // 获取xiaoxiao语音包
    var voice = EdgeTts.GetVoice().FirstOrDefault(i => i.Name == "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaoxiaoNeural)");
    EdgeTts.SaveAudio(option, voice);
}

自定义操作

// 自定义接口使用
static void MyFunc(string msg, eVoice voice)
{
    PlayOption option = new PlayOption
    {
        Rate = 0,
        Text = msg,
    };
    EdgeTts.Invoke(option, voice, libaray =>
    {
        // 写入自己的操作
        // ...
    } );
}

获取音频列表

using EdgeTTS.Net;

var voices = EdgeTts.GetVoice();
foreach(var item in voices){
    Console.WriteLine($"voice name is{item.Name}, locale(语言) is {item.Locale}, SuggestedCodec(音频类型) is {item.SuggestedCodec}");
}

汉语语音包有:

ShortName Locale 地区
zh-HK-HiuGaaiNeural zh-HK 香港
zh-HK-HiuMaanNeural zh-HK 香港
zh-HK-WanLungNeural zh-HK 香港
zh-CN-XiaoxiaoNeural zh-CN 中国(大陆)
zh-CN-XiaoyiNeural zh-CN 中国(大陆)
zh-CN-YunjianNeural zh-CN 中国(大陆)
zh-CN-YunxiNeural zh-CN 中国(大陆)
zh-CN-YunxiaNeural zh-CN 中国(大陆)
zh-CN-YunyangNeural zh-CN 中国(大陆)
zh-CN-liaoning-XiaobeiNeural zh-CN-liaoning 中国(辽宁)
zh-TW-HsiaoChenNeural zh-TW 台湾
zh-TW-YunJheNeural zh-TW 台湾
zh-TW-HsiaoYuNeural zh-TW 台湾
zh-CN-shaanxi-XiaoniNeural zh-CN-shaanxi 中国(陕西)

更新内容

  • 2024.10.30
    • 更新调用接口的方式
    • 添加异步方法
    • 支持 net8.0-windows;net7.0-windows;net6.0-windows;net481;net472

https://github.com/Entity-Now/Edge_tts_sharp

  • 2023.10.28
    • 第一次上传。
  • 2023.10.30
    • 更新调用接口的方式
Product Compatible and additional computed target framework versions.
.NET net6.0-windows7.0 is compatible.  net7.0-windows was computed.  net7.0-windows7.0 is compatible.  net8.0-windows was computed.  net8.0-windows7.0 is compatible. 
.NET Framework net472 is compatible.  net48 was computed.  net481 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.1.2.3 97 11/14/2024
1.1.2.2 84 11/12/2024
1.1.2.1 63 11/12/2024
1.1.2 64 11/12/2024