EdgeTTS.Net ,是一个免费的C#库,调用Microsoft Edge Text to Speech接口生成音频。
Fork 自 https://github.com/STBBRD/EdgeTTS_dotNET_Framework
NuGet\I nstall-Package EdgeTTS.Net
参数
说明
EdgeTts.Debug
调试模式,为true则显示日志
EdgeTts.Await
同步模式,为true会等待函数执行完毕
Invoke/PlayText/SaveAudio方法
参数
说明
PlayOption
参数配置
Voice
音源
Action<List>?
回调函数,参数是一个binary数组
参数
说明
PlayOption
参数配置
Voice
音源
CancellationToken
CancellationToken
名称
说明
Text
播放的文本
Rate
播放速度,是一个-100至+100的数值
Volume
音量,是一个0-1的浮点数值
SavePath
音频保存路径,为空不保存
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