nixos-config/nixos/machines/chungus/tts.nix
2023-08-25 09:32:16 +02:00

93 lines
2.5 KiB
Nix

{ pkgs
, config
, ...
}: {
#systemd.services.tts = {
# after = [ "network.target" ];
# wantedBy = [ "multi-user.target" ];
# path = [ pkgs.espeak ];
# environment.HOME = "/var/lib/tts";
# serviceConfig = {
# CapabilityBoundingSet = "";
# DeviceAllow = "";
# DevicePolicy = "closed";
# LockPersonality = true;
# # jit via numba->llvmpipe
# MemoryDenyWriteExecute = false;
# PrivateDevices = true;
# PrivateUsers = true;
# ProtectHome = true;
# ProtectHostname = true;
# ProtectKernelLogs = true;
# ProtectKernelModules = true;
# ProtectKernelTunables = true;
# ProtectControlGroups = true;
# ProtectProc = "invisible";
# ProcSubset = "pid";
# RestrictAddressFamilies = [
# "AF_UNIX"
# "AF_INET"
# "AF_INET6"
# ];
# RestrictRealtime = true;
# RestrictNamespaces = true;
# SystemCallArchitectures = "native";
# SystemCallFilter = [
# "@system-service"
# "~@privileged"
# ];
# UMask = "0077";
# StateDirectory = "tts";
# DynamicUser = true;
# User = "tts";
# Group = "tts";
# ExecStart = ''
# ${pkgs.tts}/bin/tts-server --model_name tts_models/en/ljspeech/vits --port 5004
# '';
# };
#};
# find models with ${pkgs.tts}/bin/tts --list_models
services.tts = {
servers = {
english = {
enable = true;
port = 5300;
#model = "tts_models/en/ljspeech/tacotron2-DDC";
model = "tts_models/en/ljspeech/vits";
};
german = {
enable = true;
port = 5301;
#model = "tts_models/de/thorsten/tacotron2-DDC";
model = "tts_models/de/thorsten/vits";
};
};
};
# fixes some issues
systemd.services.tts-german.serviceConfig.RestrictAddressFamilies = [
"AF_UNIX"
];
systemd.services.tts-english.serviceConfig.RestrictAddressFamilies = [
"AF_UNIX"
];
services.nginx = {
recommendedProxySettings = true;
enable = true;
virtualHosts."tts.${config.networking.hostName}.private" = {
locations."/".proxyPass = "http://localhost:${toString config.services.tts.servers.english.port}";
};
virtualHosts."en.tts.${config.networking.hostName}.private" = {
locations."/".proxyPass = "http://localhost:${toString config.services.tts.servers.english.port}";
};
virtualHosts."de.tts.${config.networking.hostName}.private" = {
locations."/".proxyPass = "http://localhost:${toString config.services.tts.servers.german.port}";
};
};
}