From 3813af4bd240e63b47bc7f0a2c3e16faa110a703 Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Tue, 14 Apr 2026 00:44:44 -0700 Subject: [PATCH] nixos: enable local coqui tts --- nixos/machines/strixi-minaj.nix | 2 +- nixos/overlay.nix | 40 ++++++++++++++++++++++++++++++++- nixos/tts.nix | 2 ++ 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/nixos/machines/strixi-minaj.nix b/nixos/machines/strixi-minaj.nix index 450d7332..6d3250e8 100644 --- a/nixos/machines/strixi-minaj.nix +++ b/nixos/machines/strixi-minaj.nix @@ -19,7 +19,7 @@ myModules.electron.enable = true; myModules.quickshell.enable = true; myModules.wyoming.enable = false; - myModules.tts.enable = false; + myModules.tts.enable = true; myModules."keepbook-sync".enable = true; hardware.enableRedistributableFirmware = true; diff --git a/nixos/overlay.nix b/nixos/overlay.nix index 0c17ff40..3278fa6a 100644 --- a/nixos/overlay.nix +++ b/nixos/overlay.nix @@ -254,10 +254,48 @@ in }; }); + tts = prev.tts.overrideAttrs (old: + let + compatAccelerate = final.python3Packages.accelerate.override { + huggingface-hub = final.python3Packages.huggingface-hub_0; + }; + compatKDiffusion = final.python3Packages.k-diffusion.override { + accelerate = compatAccelerate; + }; + compatTokenizers = final.python3Packages.tokenizers.override { + huggingface-hub = final.python3Packages.huggingface-hub_0; + }; + compatTransformers = final.python3Packages.transformers_4.override { + huggingface-hub = final.python3Packages.huggingface-hub_0; + tokenizers = compatTokenizers; + }; + replacePythonDeps = pkg: + let + pkgName = pkg.pname or (prev.lib.getName pkg); + in + if pkgName == "transformers" then compatTransformers + else if pkgName == "k-diffusion" then compatKDiffusion + else pkg; + in + { + propagatedBuildInputs = map replacePythonDeps old.propagatedBuildInputs; + postPatch = (old.postPatch or "") + '' + substituteInPlace TTS/tts/layers/tortoise/autoregressive.py \ + --replace-fail \ + 'if Version(transformers.__version__) >= Version("4.45"):' \ + 'if Version(transformers.__version__) >= Version("4.45") and hasattr(transformers.pytorch_utils, "isin_mps_friendly"):' + + sed -i \ + -e 's/^from transformers import ($/from transformers.generation.beam_search import BeamSearchScorer\ +from transformers import (/' \ + -e '/^ BeamSearchScorer,$/d' \ + TTS/tts/layers/xtts/stream_generator.py + ''; + }); + happy-coder = final.callPackage ./packages/happy-coder { }; playwright-cli = final.callPackage ./packages/playwright-cli { }; t3code = final.callPackage ./packages/t3code { }; - # Custom Waybar fork for workspace taskbar support + external SNI watcher option. waybar = prev.waybar.overrideAttrs (old: { src = prev.fetchFromGitHub { diff --git a/nixos/tts.nix b/nixos/tts.nix index c2e6e937..016d644a 100644 --- a/nixos/tts.nix +++ b/nixos/tts.nix @@ -4,5 +4,7 @@ makeEnable config "myModules.tts" false { enable = true; useCuda = false; port = 11115; + model = "tts_models/en/vctk/vits"; + extraArgs = [ "--speaker_idx" "p376" ]; }; }