@aituber-onair/voice
Version:
Voice synthesis library for AITuber OnAir
47 lines (46 loc) • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.VoiceEngineFactory = void 0;
const AivisCloudEngine_1 = require("./AivisCloudEngine");
const AivisSpeechEngine_1 = require("./AivisSpeechEngine");
const MinimaxEngine_1 = require("./MinimaxEngine");
const NijiVoiceEngine_1 = require("./NijiVoiceEngine");
const NoneEngine_1 = require("./NoneEngine");
const OpenAiEngine_1 = require("./OpenAiEngine");
const VoicePeakEngine_1 = require("./VoicePeakEngine");
const VoiceVoxEngine_1 = require("./VoiceVoxEngine");
/**
* Voice engine factory
* Generate appropriate voice engine instances based on voice engine type
*/
class VoiceEngineFactory {
/**
* Get the voice engine for the specified engine type
* @param engineType string of engine type ('voicevox', 'voicepeak', etc.)
* @returns voice engine instance
* @throws error if engine type is unknown
*/
static getEngine(engineType) {
switch (engineType) {
case 'voicevox':
return new VoiceVoxEngine_1.VoiceVoxEngine();
case 'voicepeak':
return new VoicePeakEngine_1.VoicePeakEngine();
case 'aivisSpeech':
return new AivisSpeechEngine_1.AivisSpeechEngine();
case 'aivisCloud':
return new AivisCloudEngine_1.AivisCloudEngine();
case 'openai':
return new OpenAiEngine_1.OpenAiEngine();
case 'nijivoice':
return new NijiVoiceEngine_1.NijiVoiceEngine();
case 'minimax':
return new MinimaxEngine_1.MinimaxEngine();
case 'none':
return new NoneEngine_1.NoneEngine();
default:
throw new Error(`Unsupported voice engine type: ${engineType}`);
}
}
}
exports.VoiceEngineFactory = VoiceEngineFactory;