feat: Implement Aliyun TTS backend integration and API key management
This commit is contained in:
@@ -37,6 +37,7 @@ const formSchema = z.object({
|
||||
top_k: z.number().min(1).max(100).optional(),
|
||||
top_p: z.number().min(0).max(1).optional(),
|
||||
repetition_penalty: z.number().min(0).max(2).optional(),
|
||||
backend: z.string().optional(),
|
||||
})
|
||||
|
||||
type FormData = z.infer<typeof formSchema>
|
||||
@@ -75,6 +76,7 @@ function VoiceCloneForm() {
|
||||
top_k: 20,
|
||||
top_p: 0.7,
|
||||
repetition_penalty: 1.05,
|
||||
backend: 'local',
|
||||
} as Partial<FormData>,
|
||||
})
|
||||
|
||||
@@ -233,6 +235,22 @@ function VoiceCloneForm() {
|
||||
|
||||
<div className={step === 2 ? 'block space-y-4' : 'hidden'}>
|
||||
{/* Step 2: Synthesis Options */}
|
||||
<div className="space-y-0.5">
|
||||
<Label>后端选择</Label>
|
||||
<Select
|
||||
value={watch('backend')}
|
||||
onValueChange={(value: string) => setValue('backend', value)}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectValue />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectItem value="local">本地模型</SelectItem>
|
||||
<SelectItem value="aliyun">阿里云 API</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</div>
|
||||
|
||||
<div className="space-y-0.5">
|
||||
<IconLabel icon={Globe2} tooltip="语言(可选)" />
|
||||
<Select
|
||||
|
||||
Reference in New Issue
Block a user