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

View File

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