@drakulavich/kesha-voice-kit 1.0.8 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/cli.ts +26 -2
package/package.json
CHANGED
package/src/cli.ts
CHANGED
|
@@ -30,6 +30,7 @@ interface MainCommandArgs {
|
|
|
30
30
|
_: string[];
|
|
31
31
|
json: boolean;
|
|
32
32
|
verbose: boolean;
|
|
33
|
+
format?: string;
|
|
33
34
|
lang?: string;
|
|
34
35
|
}
|
|
35
36
|
|
|
@@ -113,6 +114,10 @@ export const mainCommand = defineCommand({
|
|
|
113
114
|
description: "Show language detection details",
|
|
114
115
|
default: false,
|
|
115
116
|
},
|
|
117
|
+
format: {
|
|
118
|
+
type: "string",
|
|
119
|
+
description: "Output format: transcript (enriched text with lang/confidence)",
|
|
120
|
+
},
|
|
116
121
|
lang: {
|
|
117
122
|
type: "string",
|
|
118
123
|
description: "Expected language code (ISO 639-1), warn if mismatch",
|
|
@@ -129,7 +134,7 @@ export const mainCommand = defineCommand({
|
|
|
129
134
|
let hasError = false;
|
|
130
135
|
const results: TranscribeResult[] = [];
|
|
131
136
|
|
|
132
|
-
const wantsLangId = !!(args.lang || args.verbose || args.json);
|
|
137
|
+
const wantsLangId = !!(args.lang || args.verbose || args.json || args.format === "transcript" || args.format === "json");
|
|
133
138
|
|
|
134
139
|
for (const file of files) {
|
|
135
140
|
try {
|
|
@@ -178,8 +183,10 @@ export const mainCommand = defineCommand({
|
|
|
178
183
|
}
|
|
179
184
|
}
|
|
180
185
|
|
|
181
|
-
if (args.json) {
|
|
186
|
+
if (args.json || args.format === "json") {
|
|
182
187
|
process.stdout.write(formatJsonOutput(results));
|
|
188
|
+
} else if (args.format === "transcript") {
|
|
189
|
+
process.stdout.write(formatTranscriptOutput(results));
|
|
183
190
|
} else if (args.verbose) {
|
|
184
191
|
process.stdout.write(formatVerboseOutput(results));
|
|
185
192
|
} else {
|
|
@@ -258,6 +265,23 @@ export function formatVerboseOutput(results: TranscribeResult[]): string {
|
|
|
258
265
|
.join("\n") + "\n";
|
|
259
266
|
}
|
|
260
267
|
|
|
268
|
+
export function formatTranscriptOutput(results: TranscribeResult[]): string {
|
|
269
|
+
return results
|
|
270
|
+
.map((r, i) => {
|
|
271
|
+
const lines: string[] = [];
|
|
272
|
+
if (results.length > 1) {
|
|
273
|
+
if (i > 0) lines.push("");
|
|
274
|
+
lines.push(`=== ${r.file} ===`);
|
|
275
|
+
}
|
|
276
|
+
lines.push(r.text);
|
|
277
|
+
const lang = r.textLanguage?.code || r.audioLanguage?.code || r.lang;
|
|
278
|
+
const confidence = r.textLanguage?.confidence ?? r.audioLanguage?.confidence;
|
|
279
|
+
if (lang) lines.push(`[lang: ${lang}${confidence != null ? `, confidence: ${confidence.toFixed(2)}` : ""}]`);
|
|
280
|
+
return lines.join("\n");
|
|
281
|
+
})
|
|
282
|
+
.join("\n") + "\n";
|
|
283
|
+
}
|
|
284
|
+
|
|
261
285
|
export function formatJsonOutput(results: TranscribeResult[]): string {
|
|
262
286
|
return JSON.stringify(results, null, 2) + "\n";
|
|
263
287
|
}
|