feat: 长文本语音合成

This commit is contained in:
Blizzard
2026-03-06 17:39:52 +08:00
parent 2583b5f302
commit dda4d2e1d6
24 changed files with 975 additions and 52 deletions
+30
View File
@@ -1,6 +1,7 @@
package radio
import (
"fmt"
"sundynix-go/global"
"sundynix-go/model/radio"
radioReq "sundynix-go/model/radio/request"
@@ -111,3 +112,32 @@ func (s *ProgramService) IncrementPlayCount(id string) error {
return global.DB.Model(&radio.RadioProgram{}).Where("id = ?", id).
UpdateColumn("play_count", gorm.Expr("play_count + ?", 1)).Error
}
// GenerateTTS 生成TTS语音并更新节目 (异步)
func (s *ProgramService) GenerateTTS(programId string) error {
// 1. 获取节目内容
var program radio.RadioProgram
if err := global.DB.Where("id = ?", programId).First(&program).Error; err != nil {
return err
}
if program.Content == "" {
return fmt.Errorf("节目内容为空")
}
// 2. 调用TTS提交任务 (异步,后台处理)
ttsReq := TTSTextToSpeechRequest{
Text: program.Content,
VoiceType: 101021, // 亲和女声
Speed: 0, // 正常语速
Volume: 0, // 正常音量
ProgramId: programId,
}
_, err := TTSServiceApp.SubmitTTSTask(ttsReq)
if err != nil {
return err
}
// 任务已提交,异步处理中
return nil
}