Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 42ef2d5ad2 | |||
| 35f1939030 |
@@ -0,0 +1,26 @@
|
|||||||
|
/**
|
||||||
|
* 配音相关 API — 目录化入口
|
||||||
|
* 保持与原 voices.ts 相同导出,向后兼容
|
||||||
|
*/
|
||||||
|
|
||||||
|
// 类型
|
||||||
|
export type {
|
||||||
|
UnifiedVoiceItem,
|
||||||
|
UnifiedVoiceListResponse,
|
||||||
|
PresetVoiceItem,
|
||||||
|
PresetVoiceListResponse,
|
||||||
|
UnifiedVoiceListParams,
|
||||||
|
VoiceItem,
|
||||||
|
CreateVoiceRequest,
|
||||||
|
} from "./types"
|
||||||
|
|
||||||
|
// API 函数
|
||||||
|
export {
|
||||||
|
fetchVoices,
|
||||||
|
fetchPresetVoices,
|
||||||
|
getVoices,
|
||||||
|
createVoice,
|
||||||
|
updateVoice,
|
||||||
|
deleteVoice,
|
||||||
|
generateAIVoice,
|
||||||
|
} from "./voices"
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
/**
|
||||||
|
* 配音相关类型定义
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** 统一音色条目(preset + clone 混合) */
|
||||||
|
export interface UnifiedVoiceItem {
|
||||||
|
id: string
|
||||||
|
type: "preset" | "clone"
|
||||||
|
name: string
|
||||||
|
description: string
|
||||||
|
gender: string
|
||||||
|
language: string
|
||||||
|
voice_id: string
|
||||||
|
voice_provider: string
|
||||||
|
audio_url: string | null
|
||||||
|
preview_url: string | null
|
||||||
|
duration: number | null
|
||||||
|
file_size: number | null
|
||||||
|
status: string
|
||||||
|
tags: string[]
|
||||||
|
user_id: string | null
|
||||||
|
project_id: string | null
|
||||||
|
voice_clone_profile_id: string | null
|
||||||
|
created_at: string | null
|
||||||
|
updated_at: string | null
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 统一音色列表响应 */
|
||||||
|
export interface UnifiedVoiceListResponse {
|
||||||
|
items: UnifiedVoiceItem[]
|
||||||
|
total: number
|
||||||
|
preset_count: number
|
||||||
|
clone_count: number
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 预设音色条目 */
|
||||||
|
export interface PresetVoiceItem {
|
||||||
|
voice_id: string
|
||||||
|
name: string
|
||||||
|
description: string
|
||||||
|
gender: string
|
||||||
|
language: string
|
||||||
|
preview_url: string | null
|
||||||
|
tags: string[]
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 预设音色列表响应 */
|
||||||
|
export interface PresetVoiceListResponse {
|
||||||
|
items: PresetVoiceItem[]
|
||||||
|
total: number
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 统一列表查询参数 */
|
||||||
|
export interface UnifiedVoiceListParams {
|
||||||
|
type?: "preset" | "clone"
|
||||||
|
status?: string
|
||||||
|
skip?: number
|
||||||
|
limit?: number
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 配音条目(旧) */
|
||||||
|
export interface VoiceItem {
|
||||||
|
id: string
|
||||||
|
name: string
|
||||||
|
text: string
|
||||||
|
voice_type?: string
|
||||||
|
duration_seconds?: number
|
||||||
|
storage_key?: string
|
||||||
|
audio_url?: string
|
||||||
|
status?: string
|
||||||
|
is_favorite?: boolean
|
||||||
|
created_at?: string
|
||||||
|
updated_at?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 创建配音请求(旧) */
|
||||||
|
export interface CreateVoiceRequest {
|
||||||
|
name: string
|
||||||
|
text: string
|
||||||
|
voice_type?: string
|
||||||
|
}
|
||||||
@@ -1,68 +1,15 @@
|
|||||||
/**
|
/**
|
||||||
* 配音相关 API
|
* 配音相关 API 函数
|
||||||
* Phase 1 新增:全局配音库
|
|
||||||
*
|
|
||||||
* 任务 3.11:新增统一音色 API(对接后端 3.04),保留旧接口向后兼容
|
* 任务 3.11:新增统一音色 API(对接后端 3.04),保留旧接口向后兼容
|
||||||
*/
|
*/
|
||||||
import apiClient from "./client"
|
import apiClient from "../client"
|
||||||
|
import type {
|
||||||
/* ── 统一音色 API(后端 3.04) ─────────────────────────── */
|
CreateVoiceRequest,
|
||||||
|
PresetVoiceListResponse,
|
||||||
/** 统一音色条目(preset + clone 混合) */
|
UnifiedVoiceListParams,
|
||||||
export interface UnifiedVoiceItem {
|
UnifiedVoiceListResponse,
|
||||||
id: string
|
VoiceItem,
|
||||||
type: "preset" | "clone"
|
} from "./types"
|
||||||
name: string
|
|
||||||
description: string
|
|
||||||
gender: string
|
|
||||||
language: string
|
|
||||||
voice_id: string
|
|
||||||
voice_provider: string
|
|
||||||
audio_url: string | null
|
|
||||||
preview_url: string | null
|
|
||||||
duration: number | null
|
|
||||||
file_size: number | null
|
|
||||||
status: string
|
|
||||||
tags: string[]
|
|
||||||
user_id: string | null
|
|
||||||
project_id: string | null
|
|
||||||
voice_clone_profile_id: string | null
|
|
||||||
created_at: string | null
|
|
||||||
updated_at: string | null
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 统一音色列表响应 */
|
|
||||||
export interface UnifiedVoiceListResponse {
|
|
||||||
items: UnifiedVoiceItem[]
|
|
||||||
total: number
|
|
||||||
preset_count: number
|
|
||||||
clone_count: number
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 预设音色条目 */
|
|
||||||
export interface PresetVoiceItem {
|
|
||||||
voice_id: string
|
|
||||||
name: string
|
|
||||||
description: string
|
|
||||||
gender: string
|
|
||||||
language: string
|
|
||||||
preview_url: string | null
|
|
||||||
tags: string[]
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 预设音色列表响应 */
|
|
||||||
export interface PresetVoiceListResponse {
|
|
||||||
items: PresetVoiceItem[]
|
|
||||||
total: number
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 统一列表查询参数 */
|
|
||||||
export interface UnifiedVoiceListParams {
|
|
||||||
type?: "preset" | "clone"
|
|
||||||
status?: string
|
|
||||||
skip?: number
|
|
||||||
limit?: number
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 获取统一音色列表(推荐) */
|
/** 获取统一音色列表(推荐) */
|
||||||
export const fetchVoices = async (
|
export const fetchVoices = async (
|
||||||
@@ -86,28 +33,6 @@ export const fetchPresetVoices = async (): Promise<PresetVoiceListResponse> => {
|
|||||||
|
|
||||||
/* ── 向后兼容(旧接口) ────────────────────────────────── */
|
/* ── 向后兼容(旧接口) ────────────────────────────────── */
|
||||||
|
|
||||||
/** 配音条目(旧) */
|
|
||||||
export interface VoiceItem {
|
|
||||||
id: string
|
|
||||||
name: string
|
|
||||||
text: string
|
|
||||||
voice_type?: string
|
|
||||||
duration_seconds?: number
|
|
||||||
storage_key?: string
|
|
||||||
audio_url?: string
|
|
||||||
status?: string
|
|
||||||
is_favorite?: boolean
|
|
||||||
created_at?: string
|
|
||||||
updated_at?: string
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 创建配音请求(旧) */
|
|
||||||
export interface CreateVoiceRequest {
|
|
||||||
name: string
|
|
||||||
text: string
|
|
||||||
voice_type?: string
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 获取当前用户的所有配音(旧 → /voices/legacy) */
|
/** 获取当前用户的所有配音(旧 → /voices/legacy) */
|
||||||
export const getVoices = async (): Promise<VoiceItem[]> => {
|
export const getVoices = async (): Promise<VoiceItem[]> => {
|
||||||
const response = await apiClient.get("/voices/legacy")
|
const response = await apiClient.get("/voices/legacy")
|
||||||
Reference in New Issue
Block a user