feat(media): 音频生成 - 支持 IndexTTS2 情感控制参数

This commit is contained in:
ddcat666
2026-09-30 14:38:09 +08:00
parent 123c7cd285
commit b080674524
13 changed files with 266 additions and 10 deletions

View File

@@ -20,6 +20,16 @@ export type CanvasGenerationRequestFingerprintInput = {
};
operation?: string;
audioInstructions?: string;
audioEmotionControlMethod?: string;
audioEmotionRandom?: string;
audioEmotionHappy?: string;
audioEmotionAngry?: string;
audioEmotionSad?: string;
audioEmotionAfraid?: string;
audioEmotionDisgusted?: string;
audioEmotionMelancholic?: string;
audioEmotionSurprised?: string;
audioEmotionCalm?: string;
promptTemplateOperation?: string;
promptTemplateVariables?: Record<string, string>;
context: Pick<NodeGenerationContext, "referenceImages" | "referenceVideos" | "referenceAudios" | "characterReferences" | "resolvedCharacterVersions" | "resolvedCharacterVoices">;
@@ -45,6 +55,16 @@ export function canvasGenerationRequestFingerprint(input: CanvasGenerationReques
workflow: input.workflow,
operation: input.operation,
audioInstructions: input.audioInstructions,
audioEmotionControlMethod: input.audioEmotionControlMethod,
audioEmotionRandom: input.audioEmotionRandom,
audioEmotionHappy: input.audioEmotionHappy,
audioEmotionAngry: input.audioEmotionAngry,
audioEmotionSad: input.audioEmotionSad,
audioEmotionAfraid: input.audioEmotionAfraid,
audioEmotionDisgusted: input.audioEmotionDisgusted,
audioEmotionMelancholic: input.audioEmotionMelancholic,
audioEmotionSurprised: input.audioEmotionSurprised,
audioEmotionCalm: input.audioEmotionCalm,
promptTemplateOperation: input.promptTemplateOperation,
promptTemplateVariables: input.promptTemplateVariables,
references: {

View File

@@ -242,6 +242,16 @@ export function buildAudioGenerationMetadata(config: AiConfig): CanvasNodeMetada
audioFormat: config.audioFormat,
audioSpeed: config.audioSpeed,
audioInstructions: config.audioInstructions,
audioEmotionControlMethod: config.audioEmotionControlMethod,
audioEmotionRandom: config.audioEmotionRandom,
audioEmotionHappy: config.audioEmotionHappy,
audioEmotionAngry: config.audioEmotionAngry,
audioEmotionSad: config.audioEmotionSad,
audioEmotionAfraid: config.audioEmotionAfraid,
audioEmotionDisgusted: config.audioEmotionDisgusted,
audioEmotionMelancholic: config.audioEmotionMelancholic,
audioEmotionSurprised: config.audioEmotionSurprised,
audioEmotionCalm: config.audioEmotionCalm,
};
}

View File

@@ -134,7 +134,7 @@ export function modelRequestOptions(config: AiConfig, capability: ModelCapabilit
case "video":
return { size: config.size, videoSeconds: Number(config.videoSeconds), vquality: config.vquality, videoGenerateAudio: config.videoGenerateAudio === "true", videoWatermark: config.videoWatermark === "true" };
case "audio":
return { audioVoice: config.audioVoice, audioFormat: config.audioFormat, audioSpeed: Number(config.audioSpeed) };
return { audioVoice: config.audioVoice, audioFormat: config.audioFormat, audioSpeed: Number(config.audioSpeed), audioEmotionControlMethod: config.audioEmotionControlMethod, audioEmotionRandom: config.audioEmotionRandom === "true", audioEmotionHappy: Number(config.audioEmotionHappy), audioEmotionAngry: Number(config.audioEmotionAngry), audioEmotionSad: Number(config.audioEmotionSad), audioEmotionAfraid: Number(config.audioEmotionAfraid), audioEmotionDisgusted: Number(config.audioEmotionDisgusted), audioEmotionMelancholic: Number(config.audioEmotionMelancholic), audioEmotionSurprised: Number(config.audioEmotionSurprised), audioEmotionCalm: Number(config.audioEmotionCalm) };
default:
return {};
}