UNPKG

gpt-sovits-sdk

Version:

Node.js SDK for GPT-SoVITS API

115 lines (114 loc) 3.3 kB
/** * GPT-SoVITS SDK 客户端实现 */ import { GPTSoVITSClientOptions, TTSRequestOptions, TTSResponse, ModelsResponse, ReferenceAudiosResponse, EmotionAudiosResponse, EmotionAudiosQueryOptions, HealthResponse, RootResponse, APIResponse } from './types'; /** * GPT-SoVITS API 客户端 */ export declare class GPTSoVITSClient { private options; private controller; /** * 创建GPT-SoVITS客户端实例 * @param options 客户端配置选项 */ constructor(options?: GPTSoVITSClientOptions); /** * 记录调试信息 * @param message 消息 * @param data 数据 */ private log; /** * 构建完整URL * @param endpoint API端点 * @param params 查询参数 * @returns 完整URL */ private buildUrl; /** * 发送HTTP请求 * @param endpoint API端点 * @param options 请求选项 * @returns 响应数据 */ private request; /** * 获取API根信息 * @returns API根信息 */ getRoot(): Promise<RootResponse>; /** * 获取API健康状态 * @returns 健康状态信息 */ getHealth(): Promise<HealthResponse>; /** * 获取可用模型列表 * @returns 模型列表 */ getModels(): Promise<APIResponse<ModelsResponse>>; /** * 获取参考音频列表 * @param subdir 子目录名称 * @returns 参考音频列表 */ getReferenceAudios(subdir?: string): Promise<APIResponse<ReferenceAudiosResponse>>; /** * 获取情感音频列表 * @param options 查询选项 * @returns 情感音频列表 */ getEmotionAudios(options?: EmotionAudiosQueryOptions): Promise<APIResponse<EmotionAudiosResponse>>; /** * 获取情感参考音频列表 * @returns 情感参考音频列表 */ getEmotionReferenceAudios(): Promise<APIResponse<EmotionAudiosResponse>>; /** * 规范化选项,支持驼峰命名法和下划线命名法 * @param options 原始选项 * @returns 规范化后的选项 */ private normalizeOptions; /** * 文本转语音 * @param options TTS选项 * @returns TTS响应 */ textToSpeech(options: TTSRequestOptions): Promise<TTSResponse>; /** * 文本转语音(直接返回音频数据) * @param options TTS选项 * @param outputPath 可选的输出文件路径 * @returns 音频数据或文件路径 */ textToSpeechDirect(options: TTSRequestOptions, outputPath?: string): Promise<ArrayBuffer | string>; /** * 设置GPT模型 * @param modelPath 模型路径 * @returns 响应结果 */ setGptModel(modelPath: string): Promise<{ status: string; }>; /** * 设置SoVITS模型 * @param modelPath 模型路径 * @returns 响应结果 */ setSovitsModel(modelPath: string): Promise<{ status: string; }>; /** * 获取生成的音频文件 * @param audioName 音频文件名 * @param outputPath 可选的输出文件路径 * @returns 音频数据或文件路径 */ getAudio(audioName: string, outputPath?: string): Promise<ArrayBuffer | string>; /** * 取消所有正在进行的请求 */ abort(): void; }