数字人项目迁移

This commit is contained in:
2026-04-27 11:07:21 +08:00
parent ba360bc89b
commit 995e038541
38 changed files with 4844 additions and 0 deletions

View File

@@ -0,0 +1,151 @@
package dto
import (
"digital-human/consts"
"gitea.com/red-future/common/beans"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gtime"
)
// CreateAudioReq 创建音频请求
type CreateAudioReq struct {
g.Meta `path:"/createAudio" method:"post" tags:"音频管理" summary:"创建音频" dc:"创建新的音频"`
// 基础信息
Name string `json:"name" v:"required" dc:"音频名称"`
Description string `json:"description" dc:"音频描述"`
ScriptText string `json:"scriptText" v:"required" dc:"话术文本"`
// 音色配置
Voice string `json:"voice" dc:"音色serena/vivian/uncle_fu/ryan/aiden/ono_anna/sohee/eric/dylan默认serena"`
VoiceType string `json:"voiceType" dc:"音色类型preset/custom预设/自定义默认preset"`
CustomVoice string `json:"customVoice" dc:"自定义音色ID用于声音克隆voiceType=custom时必填"`
}
// CreateAudioRes 创建音频响应
type CreateAudioRes struct {
Id int64 `json:"id" dc:"音频ID"`
}
// ListAudioReq 获取音频列表请求
type ListAudioReq struct {
g.Meta `path:"/listAudios" method:"get" tags:"音频管理" summary:"获取音频列表" dc:"分页查询音频列表,支持多条件筛选"`
*beans.Page
Status consts.AudioStatus `json:"status" dc:"状态0生成中/1成功/2失败"`
Keyword string `json:"keyword" dc:"关键词搜索"`
}
// ListAudioRes 获取音频列表响应
type ListAudioRes struct {
List []*AudioListItem `json:"list" dc:"音频列表"`
Total int64 `json:"total" dc:"总数"`
}
// AudioListItem 音频列表项
type AudioListItem struct {
ID int64 `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
ScriptText string `json:"scriptText"`
AudioURL string `json:"audioUrl"`
Status consts.AudioStatus `json:"status"`
ErrorMsg string `json:"errorMsg"`
Duration int `json:"duration"`
ExternalID string `json:"externalId"`
Voice string `json:"voice"`
VoiceType string `json:"voiceType"`
CustomVoice string `json:"customVoice"`
CreatedAt *gtime.Time `json:"createdAt"`
UpdatedAt *gtime.Time `json:"updatedAt"`
}
// GetAudioReq 获取音频详情请求
type GetAudioReq struct {
g.Meta `path:"/getAudio" method:"get" tags:"音频管理" summary:"获取音频详情" dc:"获取音频详情"`
ID int64 `json:"id" v:"required" dc:"音频ID"`
}
// GetAudioRes 获取音频详情响应
type GetAudioRes struct {
ID int64 `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
ScriptText string `json:"scriptText"`
AudioURL string `json:"audioUrl"`
Status consts.AudioStatus `json:"status"`
ErrorMsg string `json:"errorMsg"`
Duration int `json:"duration"`
ExternalID string `json:"externalId"`
Voice string `json:"voice"`
VoiceType string `json:"voiceType"`
CustomVoice string `json:"customVoice"`
CreatedAt *gtime.Time `json:"createdAt"`
UpdatedAt *gtime.Time `json:"updatedAt"`
}
// UpdateAudioReq 更新音频请求
type UpdateAudioReq struct {
g.Meta `path:"/updateAudio" method:"put" tags:"音频管理" summary:"更新音频" dc:"更新音频信息"`
ID int64 `json:"id" v:"required" dc:"音频ID"`
// 基础信息
Name string `json:"name" dc:"音频名称"`
Description string `json:"description" dc:"音频描述"`
// 音色配置
Voice string `json:"voice" dc:"音色"`
VoiceType string `json:"voiceType" dc:"音色类型"`
CustomVoice string `json:"customVoice" dc:"自定义音色ID"`
}
// DeleteAudioReq 删除音频请求
type DeleteAudioReq struct {
g.Meta `path:"/deleteAudio" method:"delete" tags:"音频管理" summary:"删除音频" dc:"删除音频"`
ID int64 `json:"id" v:"required" dc:"音频ID"`
}
// GenerateAudioReq 生成音频请求
type GenerateAudioReq struct {
g.Meta `path:"/generateAudio" method:"post" tags:"音频管理" summary:"生成音频" dc:"根据话术文本生成音频"`
ID int64 `json:"id" v:"required" dc:"音频ID"`
}
// GenerateAudioRes 生成音频响应
type GenerateAudioRes struct {
TaskID string `json:"taskId" dc:"任务ID"`
}
// TTSReq 文本转语音请求
type TTSReq struct {
g.Meta `path:"/tts" method:"post" tags:"音频管理" summary:"文本转语音" dc:"将文本转换为语音直接返回MP3二进制数据"`
Text string `json:"text" v:"required" dc:"要转换的文本内容"`
Voice string `json:"voice" dc:"音色默认default"`
Speed int `json:"speed" dc:"语速0.5-2.0默认1.0"`
}
// TTSRes 文本转语音响应返回二进制MP3数据
type TTSRes struct {
g.Meta `mime:"audio/mpeg"`
Data []byte `json:"-" dc:"MP3音频二进制数据"`
}
// GetAudioStatusOptionsReq 获取音频状态选项请求
type GetAudioStatusOptionsReq struct {
g.Meta `path:"/getAudioStatusOptions" method:"get" tags:"音频管理" summary:"获取音频状态选项" dc:"获取所有音频状态的选项列表"`
}
// GetAudioStatusOptionsRes 获取音频状态选项响应
type GetAudioStatusOptionsRes struct {
Options []consts.AudioStatusKeyValue `json:"options" dc:"音频状态选项列表"`
}
// Qwen3TTSRequest Qwen3-TTS 请求结构
type Qwen3TTSRequest struct {
Text string `json:"text"`
Speaker string `json:"speaker"` // 预设音色名或克隆音色ID
VoiceID string `json:"voice_id,omitempty"` // 克隆音色ID可选
}
// Qwen3TTSResponse Qwen3-TTS 响应结构
type Qwen3TTSResponse struct {
Code int `json:"code"`
Msg string `json:"msg"`
Audio string `json:"audio"` // base64编码的音频数据
}