diff --git a/go.mod b/go.mod index 38f1fae2..db2b2fa8 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/Baidu-AIP/golang-sdk v1.1.1 - github.com/FloatTech/AnimeAPI v1.6.1-0.20230407094656-35c90555daf6 + github.com/FloatTech/AnimeAPI v1.6.1-0.20230409024643-f25135dee0da github.com/FloatTech/floatbox v0.0.0-20230331064925-9af336a84944 github.com/FloatTech/gg v1.1.3-0.20230226151425-6ea91286ba08 github.com/FloatTech/imgfactory v0.2.2-0.20230322091809-b0ddbe44b94b diff --git a/go.sum b/go.sum index 1adbf923..c567ef1d 100644 --- a/go.sum +++ b/go.sum @@ -4,6 +4,8 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/FloatTech/AnimeAPI v1.6.1-0.20230407094656-35c90555daf6 h1:hS5U1Xz6JtVyGdXOl50j9ubQxP446+TjIAhaGapGUpU= github.com/FloatTech/AnimeAPI v1.6.1-0.20230407094656-35c90555daf6/go.mod h1:UnCPjtpIzpNBZ02yeGYp+oYVxgoi5aF2yAK2bkOVxtI= +github.com/FloatTech/AnimeAPI v1.6.1-0.20230409024643-f25135dee0da h1:QyH0zpWt3YspNNfZ+5f8+QStvtmxrzld/DoocKjF+rc= +github.com/FloatTech/AnimeAPI v1.6.1-0.20230409024643-f25135dee0da/go.mod h1:UnCPjtpIzpNBZ02yeGYp+oYVxgoi5aF2yAK2bkOVxtI= github.com/FloatTech/floatbox v0.0.0-20230331064925-9af336a84944 h1:/eQoMa6Aj3coF5F7yhzZe1+SzX6SItul7MW8//pl18o= github.com/FloatTech/floatbox v0.0.0-20230331064925-9af336a84944/go.mod h1:FwQm6wk+b4wuW54KCKn3zccMX47Q5apnHD/Yakzv0fI= github.com/FloatTech/gg v1.1.3-0.20230226151425-6ea91286ba08 h1:dPLeoiTVSBlgls+66EB/UJ2e38BaASmBN5nANaycSBU= diff --git a/plugin/ai_reply/ai_tts.go b/plugin/ai_reply/ai_tts.go index e6a27e41..ae1abd05 100644 --- a/plugin/ai_reply/ai_tts.go +++ b/plugin/ai_reply/ai_tts.go @@ -2,6 +2,7 @@ package aireply import ( "errors" + "strings" "github.com/RomiChan/syncx" zero "github.com/wdvxdr1123/ZeroBot" @@ -57,6 +58,7 @@ const defaultttsindexkey = -2905 var ( 原 = newapikeystore("./data/tts/o.txt") ཆཏ = newapikeystore("./data/tts/c.txt") + 百 = newapikeystore("./data/tts/b.txt") ) type replymode []string @@ -202,7 +204,8 @@ func (t *ttsmode) getSoundMode(ctx *zero.Ctx) (tts.TTS, error) { if !ok || ins == nil { switch mode { case extrattsname[0]: - ins = baidutts.NewBaiduTTS(int(i&0x0f00) >> 8) + id, sec, _ := strings.Cut(百.k, ",") + ins = baidutts.NewBaiduTTS(int(i&0x0f00)>>8, id, sec) case extrattsname[1]: var err error ins, err = ttscn.NewTTSCN("中文(普通话,简体)", ttscnspeakers[int(i&0xf000)>>12], ttscn.KBRates[0]) diff --git a/plugin/ai_reply/main.go b/plugin/ai_reply/main.go index fa4fb988..2585b8c2 100644 --- a/plugin/ai_reply/main.go +++ b/plugin/ai_reply/main.go @@ -28,6 +28,7 @@ func init() { // 插件主体 "- 设置默认语音模式[原神人物/百度/TTSCN] 数字(百度/TTSCN说话人)\n" + "- 恢复成默认语音模式\n" + "- 设置原神语音 api key xxxxxx (key请加开发群获得)\n" + + "- 设置百度语音 api id xxxxxx secret xxxxxx (请自行获得)\n" + "当前适用的原神人物含有以下: \n" + list(genshin.SoundList[:], 5) + "\n当前适用的TTSCN人物含有以下(以数字顺序代表): \n" + list(ttscnspeakers[:], 5), PrivateDataFolder: "tts", @@ -103,7 +104,7 @@ func init() { // 插件主体 } }) - ent.OnRegex(`^设置语音模式\s*([\S\D]*)\s*(\d*)$`, zero.AdminPermission).SetBlock(true).Handle(func(ctx *zero.Ctx) { + ent.OnRegex(`^设置语音模式\s*(.*)\s+(\d*)$`, zero.AdminPermission).SetBlock(true).Handle(func(ctx *zero.Ctx) { param := ctx.State["regex_matched"].([]string)[1] num := ctx.State["regex_matched"].([]string)[2] n := 0 @@ -190,4 +191,13 @@ func init() { // 插件主体 } ctx.SendChain(message.Text("设置成功")) }) + + ent.OnRegex(`^设置百度语音\s*api\s*id\s*(.*)\s*secret\s*(.*)\s*$`, zero.OnlyPrivate, zero.SuperUserPermission).SetBlock(true).Handle(func(ctx *zero.Ctx) { + err := 百.set(ctx.State["regex_matched"].([]string)[1] + "," + ctx.State["regex_matched"].([]string)[2]) + if err != nil { + ctx.SendChain(message.Text("ERROR: ", err)) + return + } + ctx.SendChain(message.Text("设置成功")) + }) }