@webgal-tools/voice
Version:
WebGAL GPT-SoVITS语音合成应用
74 lines • 2.23 kB
TypeScript
export interface VoiceTask {
character: string;
originalText: string;
targetText: string;
audioFileName: string;
refAudioPath?: string;
refText?: string;
contentHash?: string;
}
export declare class VoiceGenerator {
private api;
private audioOutputDir;
private configManager;
private backupManager;
private workDir;
constructor(workDir: string);
/**
* 初始化角色语言特色
*/
private initializeCharacterStyles;
private ensureAudioDir;
/**
* 生成基于内容的音频文件名
* @param character 角色名
* @param text 对话内容
* @returns 音频文件名
*/
private generateAudioFileName;
/**
* 检查音频文件是否已存在
* @param audioFileName 音频文件名
* @returns 文件是否存在
*/
private audioFileExists;
/**
* 生成内容哈希
* @param character 角色名
* @param text 对话内容
* @returns 内容哈希
*/
private generateContentHash;
/**
* 删除音频文件
* @param audioFileName 音频文件名
*/
private deleteAudioFile;
/**
* 创建语音生成任务(优化版本)
* @param addedDialogues 新增的对话
* @returns 去重后的语音任务数组
*/
private createVoiceTasks;
/**
* 使用并行处理器处理翻译和语音合成任务
* @param tasks 语音任务数组
* @param allDialogues 所有对话(用于提取上下文)
* @returns 成功处理的任务数组
*/
private processTasksParallel;
/**
* 主要的语音生成函数(优化版本 - 基于文件缓存)
* @param fileName 脚本文件名(相对于工作目录/scene)
* @param forceMode 强制模式,清理现有音频文件并重新生成所有语音
*/
generateVoice(fileName: string, forceMode?: boolean): Promise<void>;
/**
* 更新脚本文件引用(新方法)
* @param filePath 脚本文件路径
* @param allDialogues 所有对话
* @param successfulTasks 成功的语音任务(可选)
*/
private updateScriptFileReferences;
}
//# sourceMappingURL=generator.d.ts.map