package com.rj.dto; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; /** * SiliconFlow TTS 请求DTO * https://docs.siliconflow.cn/cn/userguide/capabilities/text-to-speech#5 * * 主要请求参数: * model:用于语音合成的模型,支持的模型列表。 * input:待转换为音频的文本内容。 * voice:参考音色,支持系统预置音色、用户预置音色、用户动态音色。 详细参数请参考:创建文本转语音请求。 * speed:可以控制音频速度,float类型,默认值是1.0,可选范围是[0.25,4.0]; * gain:音频增益,单位dB,可以控制音频声音大小,float类型,默认值是0.0,可选范围是[-10,10]; * response_format:控制输出格式,支持 mp3、opus、wav 和 pcm 格式。在选择不同的输出格式时,输出的采样率也会有所不同。 * sample_rate:可以控制输出采样率,对于不同的视频输出类型,默认值和可取值范围均不同,具体如下: * opus: 目前只支持48000hz * wav, pcm: 支持 (8000, 16000, 24000, 32000, 44100), 默认44100 * mp3: 支持(32000, 44100), 默认44100 * * * @author rj * @date 2025-01-02 */ @Data public class SiliconFlowTtsRequest { /** * TTS模型名称 */ @JsonProperty("model") private String model; /** * 要转换的文本内容 */ @JsonProperty("input") private String input; /** * 语音参数(必填) * fnlp/MOSS-TTSD-v0.5 模型支持的voice值: * - fnlp/MOSS-TTSD-v0.5:alex (沉稳男声) * - fnlp/MOSS-TTSD-v0.5:anna (沉稳女声) * - fnlp/MOSS-TTSD-v0.5:bella (激情女声) * - fnlp/MOSS-TTSD-v0.5:benjamin (低沉男声) * - fnlp/MOSS-TTSD-v0.5:charles (磁性男声) * - fnlp/MOSS-TTSD-v0.5:claire (温柔女声) * - fnlp/MOSS-TTSD-v0.5:david (欢快男声) * - fnlp/MOSS-TTSD-v0.5:diana (欢快女声) */ @JsonProperty("voice") private String voice = "fnlp/MOSS-TTSD-v0.5:claire"; /** * 语速(可选) */ @JsonProperty("speed") private Double speed=1.0; /** * 音调(可选) */ @JsonProperty("pitch") private Double pitch; /** * 音量(可选) */ @JsonProperty("volume") private Double volume; /** * 输出格式(可选) */ @JsonProperty("format") private String format; /** * 采样率(可选) */ @JsonProperty("sample_rate") private Integer sampleRate; /** * 构造函数 */ public SiliconFlowTtsRequest() { } /** * 创建人姓名 */ private String creatorName; /** * 创建人电话 */ private String creatorPhone; /** * 构造函数 * * @param model 模型名称 * @param input 输入文本 */ public SiliconFlowTtsRequest(String model, String input) { this.model = model; this.input = input; } }