feat: Refactor voice cloning job submission to use FormData and update VoiceDesignForm instruct property to be optional
This commit is contained in:
@@ -177,27 +177,47 @@ const CustomVoiceForm = forwardRef<CustomVoiceFormHandle>((_props, ref) => {
|
|||||||
let result
|
let result
|
||||||
if (selectedItem?.source === 'saved-design') {
|
if (selectedItem?.source === 'saved-design') {
|
||||||
if (selectedItem.backendType === 'local') {
|
if (selectedItem.backendType === 'local') {
|
||||||
result = await ttsApi.createVoiceCloneJob({
|
const formData = new FormData()
|
||||||
text: data.text,
|
formData.append('text', data.text)
|
||||||
language: data.language,
|
formData.append('language', data.language)
|
||||||
ref_audio: null,
|
formData.append('voice_design_id', String(selectedItem.designId))
|
||||||
voice_design_id: selectedItem.designId,
|
formData.append('max_new_tokens', String(data.max_new_tokens ?? 2048))
|
||||||
max_new_tokens: data.max_new_tokens,
|
formData.append('temperature', String(data.temperature ?? 0.9))
|
||||||
temperature: data.temperature,
|
formData.append('backend', 'local')
|
||||||
backend: 'local',
|
|
||||||
|
const token = localStorage.getItem('token')
|
||||||
|
const baseURL = import.meta.env.VITE_API_URL || ''
|
||||||
|
const response = await fetch(`${baseURL}/tts/voice-clone`, {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Authorization': `Bearer ${token}`,
|
||||||
|
},
|
||||||
|
body: formData,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error('Failed to create voice clone job')
|
||||||
|
}
|
||||||
|
|
||||||
|
result = await response.json()
|
||||||
} else {
|
} else {
|
||||||
result = await ttsApi.createVoiceDesignJob({
|
result = await ttsApi.createVoiceDesignJob({
|
||||||
text: data.text,
|
text: data.text,
|
||||||
language: data.language,
|
language: data.language,
|
||||||
instruct: selectedItem.instruct!,
|
|
||||||
saved_design_id: selectedItem.designId,
|
saved_design_id: selectedItem.designId,
|
||||||
max_new_tokens: data.max_new_tokens,
|
max_new_tokens: data.max_new_tokens ?? 2048,
|
||||||
temperature: data.temperature,
|
temperature: data.temperature ?? 0.9,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
result = await ttsApi.createCustomVoiceJob(data)
|
result = await ttsApi.createCustomVoiceJob({
|
||||||
|
text: data.text,
|
||||||
|
language: data.language,
|
||||||
|
speaker: data.speaker,
|
||||||
|
instruct: data.instruct,
|
||||||
|
max_new_tokens: data.max_new_tokens ?? 2048,
|
||||||
|
temperature: data.temperature ?? 0.9,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
toast.success(t('taskCreated'))
|
toast.success(t('taskCreated'))
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ export interface CustomVoiceForm {
|
|||||||
export interface VoiceDesignForm {
|
export interface VoiceDesignForm {
|
||||||
text: string
|
text: string
|
||||||
language: string
|
language: string
|
||||||
instruct: string
|
instruct?: string
|
||||||
saved_design_id?: number
|
saved_design_id?: number
|
||||||
max_new_tokens?: number
|
max_new_tokens?: number
|
||||||
temperature?: number
|
temperature?: number
|
||||||
|
|||||||
Reference in New Issue
Block a user