A telephone-themed bookend set, tuned by ear:
- speak: heartbeat entry ("Speak to Me" woven with warm MF tones), soft-chord
exit (pure sines, easy on the ears on repetition)
- listen: mf-dial start (the genuine Young Lust R1 operator routing sequence,
KP 0-4-4-1-8-3-1 ST) and machine end (Welcome to the Machine throb)
- mf-listen/mf-done gentler alternatives, and a call-waiting blip
listen() is now conversation-first: wait_for_silence defaults on with a 30s
cap, and the "go" tone plays only after the mic is live (warmup) so the first
word isn't clipped. VAD defaults tuned (aggressiveness 3, 2200ms silence,
400ms min-speech) after live testing showed the old values cut replies off on
brief background transients. Adds webrtcvad-wheels for the VAD path.
41 lines
997 B
TOML
41 lines
997 B
TOML
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "mcspeak"
|
|
version = "2026.03.04.1"
|
|
description = "Multi-engine TTS server with speech queue, exposed via FastMCP 3.0 Streamable HTTP"
|
|
requires-python = ">=3.12"
|
|
license = "MIT"
|
|
authors = [{name = "Ryan Malloy", email = "ryan@supported.systems"}]
|
|
dependencies = [
|
|
"fastmcp>=3.0.0",
|
|
"httpx",
|
|
"kokoro-onnx>=0.5.0",
|
|
"numpy",
|
|
"onnxruntime",
|
|
"pydantic-settings",
|
|
"snac>=1.2.1",
|
|
"soundfile",
|
|
"torch",
|
|
# webrtcvad-wheels is a drop-in fork of webrtcvad that ships pre-built
|
|
# wheels for Python 3.12/3.13 — the original requires gcc to build from
|
|
# source, which the slim Docker image doesn't have.
|
|
"webrtcvad-wheels",
|
|
"wyoming>=1.8.0",
|
|
]
|
|
|
|
[project.scripts]
|
|
mcspeak = "mcspeak.__main__:main"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/mcspeak"]
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py312"
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "I", "W"]
|