mirror of
https://github.com/getpaseo/paseo.git
synced 2026-07-29 12:01:31 +00:00
45 lines
1.4 KiB
TypeScript
45 lines
1.4 KiB
TypeScript
import { resolvePaseoHome } from "../src/server/paseo-home.js";
|
|
import { createRootLogger } from "../src/server/logger.js";
|
|
import {
|
|
DEFAULT_LOCAL_STT_MODEL,
|
|
DEFAULT_LOCAL_TTS_MODEL,
|
|
ensureLocalSpeechModels,
|
|
type LocalSpeechModelId,
|
|
} from "../src/server/speech/providers/local/models.js";
|
|
|
|
function parseArgs(argv: string[]): { modelsDir: string; modelIds: LocalSpeechModelId[] } {
|
|
const home = resolvePaseoHome();
|
|
let modelsDir = process.env.PASEO_LOCAL_MODELS_DIR || `${home}/models/local-speech`;
|
|
const modelIds: LocalSpeechModelId[] = [];
|
|
|
|
for (let i = 0; i < argv.length; i++) {
|
|
const arg = argv[i];
|
|
if (arg === "--models-dir") {
|
|
modelsDir = argv[i + 1] ?? modelsDir;
|
|
i++;
|
|
continue;
|
|
}
|
|
if (arg === "--model") {
|
|
const id = argv[i + 1] as LocalSpeechModelId | undefined;
|
|
if (!id) {
|
|
throw new Error("--model requires a value");
|
|
}
|
|
modelIds.push(id);
|
|
i++;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
if (modelIds.length === 0) {
|
|
modelIds.push(DEFAULT_LOCAL_STT_MODEL, DEFAULT_LOCAL_TTS_MODEL);
|
|
}
|
|
|
|
return { modelsDir, modelIds };
|
|
}
|
|
|
|
const logger = createRootLogger({ level: "info", format: "pretty" });
|
|
|
|
const { modelsDir, modelIds } = parseArgs(process.argv.slice(2));
|
|
await ensureLocalSpeechModels({ modelsDir, modelIds, logger });
|
|
logger.info({ modelsDir, modelIds }, "Done downloading speech models");
|