ZGGSONG / EdgeTTS.Net

Home Page:https://www.nuget.org/packages/EdgeTTS.Net

Repository from Github https://github.comZGGSONG/EdgeTTS.NetRepository from Github https://github.comZGGSONG/EdgeTTS.Net

EdgeTTS.Net

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

Describes

Fork 自 https://github.com/STBBRD/EdgeTTS_dotNET_Framework

install

NuGet\Install-Package EdgeTTS.Net

方法

全局对象

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

Invoke/PlayText/SaveAudio方法

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

PlayTextAsync方法

参数 说明
PlayOption 参数配置
Voice 音源
CancellationToken CancellationToken

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.11.14
    • 异步方法等待结束
  • 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
    • 更新调用接口的方式

About

https://www.nuget.org/packages/EdgeTTS.Net


Languages

Language:C# 100.0%