feat: Add support for fetching speakers by backend from user preferences and create Aliyun documentation.

This commit is contained in:
2026-02-03 19:09:46 +08:00
parent 18fd1f0fa5
commit 26a8a6d08c
2 changed files with 8 additions and 4 deletions

View File

@@ -15,6 +15,7 @@ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/comp
import { ttsApi, jobApi } from '@/lib/api'
import { useJobPolling } from '@/hooks/useJobPolling'
import { useHistoryContext } from '@/contexts/HistoryContext'
import { useUserPreferences } from '@/contexts/UserPreferencesContext'
import { LoadingState } from '@/components/LoadingState'
import { AudioPlayer } from '@/components/AudioPlayer'
import { PresetSelector } from '@/components/PresetSelector'
@@ -54,6 +55,7 @@ const CustomVoiceForm = forwardRef<CustomVoiceFormHandle>((_props, ref) => {
const { currentJob, isPolling, isCompleted, startPolling, elapsedTime } = useJobPolling()
const { refresh } = useHistoryContext()
const { preferences } = useUserPreferences()
const {
register,
@@ -93,9 +95,10 @@ const CustomVoiceForm = forwardRef<CustomVoiceFormHandle>((_props, ref) => {
useEffect(() => {
const fetchData = async () => {
try {
const backend = preferences?.default_backend || 'local'
const [langs, spks] = await Promise.all([
ttsApi.getLanguages(),
ttsApi.getSpeakers(),
ttsApi.getSpeakers(backend),
])
setLanguages(langs)
setSpeakers(spks)
@@ -104,7 +107,7 @@ const CustomVoiceForm = forwardRef<CustomVoiceFormHandle>((_props, ref) => {
}
}
fetchData()
}, [])
}, [preferences?.default_backend])
const onSubmit = async (data: FormData) => {

View File

@@ -221,8 +221,9 @@ export const ttsApi = {
}))
},
getSpeakers: async (): Promise<Speaker[]> => {
const response = await apiClient.get<Speaker[]>(API_ENDPOINTS.TTS.SPEAKERS)
getSpeakers: async (backend?: string): Promise<Speaker[]> => {
const params = backend ? { backend } : {}
const response = await apiClient.get<Speaker[]>(API_ENDPOINTS.TTS.SPEAKERS, { params })
return response.data.map((speaker) => ({
name: speaker.name,
description: SPEAKER_DESCRIPTIONS_ZH[speaker.name] || speaker.description,