feat: 长文本语音合成
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user