调用Edge-tts文本朗读

Edge_tts_sharp/Edge_tts_sharp/Edge_tts.cs at main · Entity-Now/Edge_tts_sharp · GitHub

说明:不支持.net framework,支持.net8

Edge_tts_sharp

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

install

NuGet\Install-Package Edge_tts_sharp
 

方法

全局对象

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

Invoke/PlayText/SaveAudio方法

参数说明
PlayOption 参数配置
eVoice 音源
Action<List> 回调函数,参数是一个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 = Edge_tts.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 = Edge_tts.GetVoice().First();
    Edge_tts.PlayText(option, voice);
}
 

保存到本地

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

自定义操作

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

获取音频列表

using Edge_tts_sharp;

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

汉语语音包有:

ShortNameLocale地区
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 中国(陕西)
posted @ 2024-10-11 16:36  81  阅读(111)  评论(0编辑  收藏  举报