Merge #142 into master from cc_20260515_audio_ge
音频生成 * cc_20260515_audio_ge: (3 commits squashed) - fix:音频生成 - fix:新增删除音频记录接口 - fix:删除音频记录接口入参修改 Signed-off-by: 王非凡 <accounts_67eba0c5fee9c49c80c8e2b4@mail.teambition.com> Merged-by: 正新 <accounts_6964c7bcd2a2c377c5bbd01b@mail.teambition.com> CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/142
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
package com.cool.store.dto.audio;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 音频附加信息DTO
|
||||
*/
|
||||
@Data
|
||||
public class AudioExtraInfoDTO {
|
||||
/**
|
||||
* 音频时长(毫秒)
|
||||
*/
|
||||
private Long audioLength;
|
||||
|
||||
/**
|
||||
* 音频采样率
|
||||
*/
|
||||
private Long audioSampleRate;
|
||||
|
||||
/**
|
||||
* 音频大小
|
||||
*/
|
||||
private Long audioSize;
|
||||
|
||||
/**
|
||||
* 比特率
|
||||
*/
|
||||
private Long bitrate;
|
||||
|
||||
/**
|
||||
* 使用字符数
|
||||
*/
|
||||
private Long usageCharacters;
|
||||
|
||||
/**
|
||||
* 音频格式
|
||||
*/
|
||||
private String audioFormat;
|
||||
|
||||
/**
|
||||
* 音频声道
|
||||
*/
|
||||
private Integer audioChannel;
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.cool.store.dto.audio;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 音频生成记录VO
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("音频生成记录")
|
||||
public class AudioGenerateRecordVO {
|
||||
|
||||
@ApiModelProperty("记录ID")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("音频URL")
|
||||
private String url;
|
||||
|
||||
@ApiModelProperty("音色ID")
|
||||
private String voiceId;
|
||||
|
||||
@ApiModelProperty("音色名称")
|
||||
private String voiceName;
|
||||
|
||||
@ApiModelProperty("文案内容")
|
||||
private String content;
|
||||
|
||||
@ApiModelProperty("创建时间")
|
||||
private Date createTime;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.cool.store.dto.audio;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 删除音频生成记录请求DTO
|
||||
*/
|
||||
@Data
|
||||
public class DeleteAudioRecordReqDTO {
|
||||
@NotNull(message = "记录ID不能为空")
|
||||
@ApiModelProperty(value = "音频生成记录ID", required = true)
|
||||
private Long id;
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.cool.store.dto.audio;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 音色记忆DTO
|
||||
*/
|
||||
@Data
|
||||
public class FavoriteVoiceDTO {
|
||||
/**
|
||||
* 音色ID
|
||||
*/
|
||||
private String voiceId;
|
||||
|
||||
/**
|
||||
* 音色名称
|
||||
*/
|
||||
private String voiceName;
|
||||
|
||||
/**
|
||||
* 参考文案
|
||||
*/
|
||||
private String text;
|
||||
|
||||
/**
|
||||
* 模式标记
|
||||
*/
|
||||
private String mode;
|
||||
|
||||
/**
|
||||
* 模式展示名
|
||||
*/
|
||||
private String modeLabel;
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.cool.store.dto.audio;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
/**
|
||||
* 音频生成请求DTO
|
||||
*/
|
||||
@Data
|
||||
public class GenerateAudioReqDTO {
|
||||
@NotBlank(message = "文案不能为空")
|
||||
@Size(max = 500, message = "文案长度不能超过500")
|
||||
@ApiModelProperty(value = "文案", required = true)
|
||||
private String content;
|
||||
|
||||
@NotBlank(message = "音色不能为空")
|
||||
@ApiModelProperty(value = "音色ID", required = true)
|
||||
private String voiceId;
|
||||
|
||||
@NotBlank(message = "音色名称不能为空")
|
||||
@ApiModelProperty("音色名称")
|
||||
private String voiceName;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.cool.store.dto.audio;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* AI文案优化请求DTO
|
||||
*/
|
||||
@Data
|
||||
public class OptimizeCopyReqDTO {
|
||||
@NotBlank(message = "文案不能为空")
|
||||
@ApiModelProperty(value = "原始文案", required = true)
|
||||
private String text;
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.cool.store.dto.audio;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 文案优化请求DTO
|
||||
*/
|
||||
@Data
|
||||
public class OptimizeCopyRequestDTO {
|
||||
/**
|
||||
* 原始文案
|
||||
*/
|
||||
private String text;
|
||||
|
||||
/**
|
||||
* 当前音色ID
|
||||
*/
|
||||
private String voiceId;
|
||||
|
||||
/**
|
||||
* 音色记忆列表
|
||||
*/
|
||||
private List<FavoriteVoiceDTO> favorites;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.cool.store.dto.audio;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 文案优化响应DTO
|
||||
*/
|
||||
@Data
|
||||
public class OptimizeCopyResponseDTO {
|
||||
/**
|
||||
* 优化后的文案
|
||||
*/
|
||||
private String optimizedText;
|
||||
|
||||
/**
|
||||
* 推荐音色ID
|
||||
*/
|
||||
private String recommendedVoiceId;
|
||||
|
||||
/**
|
||||
* 朗读指令
|
||||
*/
|
||||
private String ttsInstructions;
|
||||
|
||||
/**
|
||||
* 推荐原因
|
||||
*/
|
||||
private String reason;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.cool.store.dto.audio;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 文本生成语音请求DTO
|
||||
*/
|
||||
@Data
|
||||
public class SpeechRequestDTO {
|
||||
/**
|
||||
* 待合成文本
|
||||
*/
|
||||
private String text;
|
||||
|
||||
/**
|
||||
* 音色配置
|
||||
*/
|
||||
private VoiceConfigDTO voice;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.cool.store.dto.audio;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 文本生成语音响应DTO
|
||||
*/
|
||||
@Data
|
||||
public class SpeechResponseDTO {
|
||||
/**
|
||||
* 音频Base64
|
||||
*/
|
||||
private String audioBase64;
|
||||
|
||||
/**
|
||||
* 原始hex音频
|
||||
*/
|
||||
private String audioHex;
|
||||
|
||||
/**
|
||||
* 请求追踪ID
|
||||
*/
|
||||
private String traceId;
|
||||
|
||||
/**
|
||||
* 音频附加信息
|
||||
*/
|
||||
private AudioExtraInfoDTO extraInfo;
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.cool.store.dto.audio;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 音色配置DTO
|
||||
*/
|
||||
@Data
|
||||
public class VoiceConfigDTO {
|
||||
/**
|
||||
* 音色ID
|
||||
*/
|
||||
private String voiceId;
|
||||
|
||||
/**
|
||||
* 语速
|
||||
*/
|
||||
private Double speed;
|
||||
|
||||
/**
|
||||
* 音量
|
||||
*/
|
||||
private Double vol;
|
||||
|
||||
/**
|
||||
* 音高
|
||||
*/
|
||||
private Double pitch;
|
||||
|
||||
/**
|
||||
* 情绪
|
||||
*/
|
||||
private String emotion;
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.cool.store.dto.audio;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 音色对象DTO
|
||||
*/
|
||||
@Data
|
||||
public class VoiceDTO {
|
||||
/**
|
||||
* 音色ID
|
||||
*/
|
||||
private String voiceId;
|
||||
|
||||
/**
|
||||
* 音色名称
|
||||
*/
|
||||
private String voiceName;
|
||||
|
||||
/**
|
||||
* 音色描述
|
||||
*/
|
||||
private List<String> description;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private String createdTime;
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.cool.store.dto.audio;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 音色列表响应DTO
|
||||
*/
|
||||
@Data
|
||||
public class VoiceListDTO {
|
||||
/**
|
||||
* 系统音色列表
|
||||
*/
|
||||
private List<VoiceDTO> systemVoice;
|
||||
|
||||
/**
|
||||
* 快速复刻音色列表
|
||||
*/
|
||||
private List<VoiceDTO> voiceCloning;
|
||||
|
||||
/**
|
||||
* 文生音色列表
|
||||
*/
|
||||
private List<VoiceDTO> voiceGeneration;
|
||||
|
||||
/**
|
||||
* 自定义音色列表
|
||||
*/
|
||||
private List<VoiceDTO> customVoice;
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.cool.store.entity.audio;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import javax.persistence.*;
|
||||
|
||||
/**
|
||||
* 音频生成记录
|
||||
*/
|
||||
@Table(name = "zxjp_audio_generate_record")
|
||||
@Data
|
||||
public class AudioGenerateRecordDO {
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 音频路径
|
||||
*/
|
||||
private String url;
|
||||
|
||||
/**
|
||||
* 音色id
|
||||
*/
|
||||
@Column(name = "voice_id")
|
||||
private String voiceId;
|
||||
|
||||
/**
|
||||
* 音色名称
|
||||
*/
|
||||
@Column(name = "voice_name")
|
||||
private String voiceName;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@Column(name = "create_time")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 创建人id
|
||||
*/
|
||||
@Column(name = "create_user_id")
|
||||
private String createUserId;
|
||||
|
||||
/**
|
||||
* 文案
|
||||
*/
|
||||
private String content;
|
||||
}
|
||||
Reference in New Issue
Block a user