package dto import ( "gitea.com/red-future/common/beans" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/os/gtime" ) // CreateCustomVoiceReq 创建自定义音色请求 type CreateCustomVoiceReq struct { g.Meta `path:"/createCustomVoice" method:"post" tags:"自定义音色" summary:"创建自定义音色" dc:"上传参考音频创建自定义音色"` VoiceType string `json:"voiceType" v:"required" dc:"音色类型 design/clone(设计/克隆)"` Name string `json:"name" v:"required" dc:"音色名称"` Description string `json:"description" dc:"音色描述"` Text string `json:"text" dc:"参考文本"` // 参考音频 ReferenceAudio []byte `json:"referenceAudio" dc:"参考音频数据(base64编码的WAV文件,voiceType=clone 时必填)"` } // CreateCustomVoiceRes 创建自定义音色响应 type CreateCustomVoiceRes struct { VoiceID string `json:"voiceId" dc:"音色ID"` } // ListCustomVoiceReq 获取自定义音色列表请求 type ListCustomVoiceReq struct { g.Meta `path:"/listCustomVoices" method:"get" tags:"自定义音色" summary:"获取自定义音色列表" dc:"分页查询自定义音色列表"` *beans.Page } // ListCustomVoiceRes 获取自定义音色列表响应 type ListCustomVoiceRes struct { List []*CustomVoiceItem `json:"list" dc:"自定义音色列表"` Total int64 `json:"total" dc:"总数"` } // CustomVoiceItem 自定义音色列表项 type CustomVoiceItem struct { ID string `json:"id"` Name string `json:"name"` Description string `json:"description"` Status int `json:"status" dc:"状态:0生成中/1成功/2失败"` ErrorMsg string `json:"errorMsg" dc:"错误信息"` OssFile string `json:"ossFile" dc:"结果文件OSS地址"` CreatedAt *gtime.Time `json:"createdAt"` UpdatedAt *gtime.Time `json:"updatedAt"` } // DeleteCustomVoiceReq 删除自定义音色请求 type DeleteCustomVoiceReq struct { g.Meta `path:"/deleteCustomVoice" method:"delete" tags:"自定义音色" summary:"删除自定义音色" dc:"删除自定义音色"` VoiceID string `json:"voiceId" v:"required" dc:"音色ID"` } // Qwen3VoiceCloneRequest Qwen3-TTS 音色克隆请求 type Qwen3VoiceCloneRequest struct { Name string `json:"name"` // 音色名称 Audio string `json:"audio"` // base64编码的参考音频 Text string `json:"text"` // 参考文本(可选) } // Qwen3VoiceCloneResponse Qwen3-TTS 音色克隆响应 type Qwen3VoiceCloneResponse struct { Code int `json:"code"` Msg string `json:"msg"` VoiceID string `json:"voice_id"` // 克隆后的音色ID }