feat: add ttsc CLI tool for TTS streaming

This commit is contained in:
mitchell 2026-04-28 02:49:46 -04:00
parent 4112295144
commit 6b75836647
2 changed files with 10 additions and 4 deletions

View file

@ -4,16 +4,19 @@
"type": "module",
"private": true,
"bin": {
"aicl": "out/index.js"
"lmc": "out/index.js",
"ttsc": "out/tts.js"
},
"scripts": {
"dev": "bun run index.ts",
"prod": "bun run out/index.js",
"check": "bunx --bun @biomejs/biome check --write && bun run tc",
"build:js": "bun run check && bun run build:bundle && bun run shebang",
"build:js": "bun run check && bun run --parallel build:bundle build:tts && bun run --parallel shebang shebang:tts",
"build:bundle": "bun build --target=bun --production --sourcemap --outdir=out index.ts",
"build:tts": "bun build --target=bun --production --sourcemap --outdir=out tts.ts",
"build:bin": "bun build --compile --outfile=out/aicl index.ts",
"shebang": "sed -i '1i#!\\/usr\\/bin\\/env bun' out/index.js",
"shebang:tts": "sed -i '1i#!\\/usr\\/bin\\/env bun' out/tts.js",
"tc": "tsc --noEmit --incremental"
},
"devDependencies": {

7
tts.ts
View file

@ -1,12 +1,15 @@
import os from "node:os";
import chalk from "chalk";
const text = await Bun.stdin.text();
if (!text) process.exit(1);
const home = os.homedir();
const koko = Bun.spawn({
cmd: ["uv", "run", "--", "python", "-u", "main.py"],
cwd: "./tts/",
cwd: `${home}/.ttsc/`,
stdin: Buffer.from(text),
stdout: "pipe",
stderr: "inherit",
@ -29,7 +32,7 @@ for await (const line of koko.stdout) {
await Bun.spawn({
cmd: ["mpv", `${info.file}.wav`],
cwd: "./tts/",
cwd: `${home}/.ttsc/`,
stdin: "ignore",
stdout: "inherit",
stderr: "inherit",