Skip to content

Commit 58e45bd

Browse files
committed
nixos: enable local coqui tts
1 parent e0d053b commit 58e45bd

3 files changed

Lines changed: 42 additions & 2 deletions

File tree

nixos/machines/strixi-minaj.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
myModules.electron.enable = true;
2020
myModules.quickshell.enable = true;
2121
myModules.wyoming.enable = false;
22-
myModules.tts.enable = false;
22+
myModules.tts.enable = true;
2323
myModules."keepbook-sync".enable = true;
2424

2525
hardware.enableRedistributableFirmware = true;

nixos/overlay.nix

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,10 +254,48 @@ in
254254
};
255255
});
256256

257+
tts = prev.tts.overrideAttrs (old:
258+
let
259+
compatAccelerate = final.python3Packages.accelerate.override {
260+
huggingface-hub = final.python3Packages.huggingface-hub_0;
261+
};
262+
compatKDiffusion = final.python3Packages.k-diffusion.override {
263+
accelerate = compatAccelerate;
264+
};
265+
compatTokenizers = final.python3Packages.tokenizers.override {
266+
huggingface-hub = final.python3Packages.huggingface-hub_0;
267+
};
268+
compatTransformers = final.python3Packages.transformers_4.override {
269+
huggingface-hub = final.python3Packages.huggingface-hub_0;
270+
tokenizers = compatTokenizers;
271+
};
272+
replacePythonDeps = pkg:
273+
let
274+
pkgName = pkg.pname or (prev.lib.getName pkg);
275+
in
276+
if pkgName == "transformers" then compatTransformers
277+
else if pkgName == "k-diffusion" then compatKDiffusion
278+
else pkg;
279+
in
280+
{
281+
propagatedBuildInputs = map replacePythonDeps old.propagatedBuildInputs;
282+
postPatch = (old.postPatch or "") + ''
283+
substituteInPlace TTS/tts/layers/tortoise/autoregressive.py \
284+
--replace-fail \
285+
'if Version(transformers.__version__) >= Version("4.45"):' \
286+
'if Version(transformers.__version__) >= Version("4.45") and hasattr(transformers.pytorch_utils, "isin_mps_friendly"):'
287+
288+
sed -i \
289+
-e 's/^from transformers import ($/from transformers.generation.beam_search import BeamSearchScorer\
290+
from transformers import (/' \
291+
-e '/^ BeamSearchScorer,$/d' \
292+
TTS/tts/layers/xtts/stream_generator.py
293+
'';
294+
});
295+
257296
happy-coder = final.callPackage ./packages/happy-coder { };
258297
playwright-cli = final.callPackage ./packages/playwright-cli { };
259298
t3code = final.callPackage ./packages/t3code { };
260-
261299
# Custom Waybar fork for workspace taskbar support + external SNI watcher option.
262300
waybar = prev.waybar.overrideAttrs (old: {
263301
src = prev.fetchFromGitHub {

nixos/tts.nix

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,7 @@ makeEnable config "myModules.tts" false {
44
enable = true;
55
useCuda = false;
66
port = 11115;
7+
model = "tts_models/en/vctk/vits";
8+
extraArgs = [ "--speaker_idx" "p376" ];
79
};
810
}

0 commit comments

Comments
 (0)