From e2f0774130f319d3d9f8b9bb7c115913d591c2be Mon Sep 17 00:00:00 2001 From: tdro Date: Tue, 21 Feb 2023 08:23:04 -0500 Subject: .config/nixpkgs: Replace pico2wave with larynx --- .config/nixpkgs/config.nix | 9 +++-- .config/nixpkgs/shells/larynx-server/shell.nix | 54 ++++++++++++++++++++++++++ .config/nixpkgs/shells/larynx/shell.nix | 54 ++++++++++++++++++++++++++ .local/bin/picospeaker | 14 ------- .local/bin/say | 20 ++++++++++ 5 files changed, 133 insertions(+), 18 deletions(-) create mode 100644 .config/nixpkgs/shells/larynx-server/shell.nix create mode 100644 .config/nixpkgs/shells/larynx/shell.nix delete mode 100755 .local/bin/picospeaker create mode 100755 .local/bin/say diff --git a/.config/nixpkgs/config.nix b/.config/nixpkgs/config.nix index 91ec9ed..df985b9 100644 --- a/.config/nixpkgs/config.nix +++ b/.config/nixpkgs/config.nix @@ -7,8 +7,8 @@ let sha256 = "1367bad5zz0mfm4czb6p0s0ni38f0x1ffh02z76rx4nranipqbgg"; }) { }; unstable = import (builtins.fetchTarball { - url = "https://releases.nixos.org/nixos/unstable/nixos-23.05pre431956.14ddeaebcbe/nixexprs.tar.xz"; - sha256 = "0ilpmvj84gdahz43z141qqninrzywmzz7hylzvnxbw8j6wxjznwv"; }) { }; + url = "https://releases.nixos.org/nixos/unstable/nixos-23.05pre455282.ac1f5b72a9e/nixexprs.tar.xz"; + sha256 = "0hmzawy3s2kzp6n9yd20xqa7hcp38z9v6pj797wxd0v1a2slicfv"; }) { }; in @@ -64,6 +64,8 @@ in Terminal = pkgs.buildEnv { name = "terminal"; paths = [ + (import ./shells/larynx/shell.nix).fhs + (import ./shells/larynx-server/shell.nix).fhs (callPackage ./packages/hugo/default.nix { }) (callPackage ./packages/chromexup/default.nix { }) (callPackage ./packages/pdf2htmlex/default.nix { }) @@ -130,7 +132,6 @@ in ocrmypdf pandoc pdsh - picotts pipes plantuml pngnq @@ -204,7 +205,6 @@ in unstable.firefox unstable.google-chrome unstable.nyxt - unstable.palemoon unstable.ungoogled-chromium unstable.vimb aegisub @@ -240,6 +240,7 @@ in mate.engrampa meld mypaint + palemoon pavucontrol peek qownnotes diff --git a/.config/nixpkgs/shells/larynx-server/shell.nix b/.config/nixpkgs/shells/larynx-server/shell.nix new file mode 100644 index 0000000..9021e47 --- /dev/null +++ b/.config/nixpkgs/shells/larynx-server/shell.nix @@ -0,0 +1,54 @@ +let + + name = "nix-shell.larynx-server"; + + nixpkgs = import { }; + + pkgs = import (builtins.fetchTarball { + url = "https://releases.nixos.org/nixos/22.11/nixos-22.11.466.596a8e828c5/nixexprs.tar.xz"; + sha256 = "1367bad5zz0mfm4czb6p0s0ni38f0x1ffh02z76rx4nranipqbgg"; + }) { }; + + larynx = pkgs.stdenvNoCC.mkDerivation rec { + name = "larynx"; + version = "1.1.0"; + sourceRoot = "."; + + src = pkgs.dockerTools.exportImage { + fromImage = pkgs.dockerTools.pullImage rec { + imageName = "rhasspy/larynx"; + imageDigest = "sha256:ada5b443e2446b38ba61d764ec37c0ed78d46e659a011243967e7cc8e52311e3"; + sha256 = "sha256-TbaHNNMRGp4SWYC06WSmNr3igpiJagDKoD3TEnttYt8="; + finalImageName = imageName; + finalImageTag = version; + }; + diskSize = "3072"; + }; + + phases = [ "unpackPhase" "installPhase" ]; + + installPhase = '' + mkdir --parents $out/bin/larynx/app + cp --recursive home/larynx/app/.venv $out/bin/larynx/app + cp --recursive home/larynx/app/larynx $out/bin/larynx/app + ''; + }; + + fhs = pkgs.buildFHSUserEnv { + name = "larynx-server"; + runScript = "${pkgs.writeScriptBin name '' + export PYTHONPATH=/bin/larynx/app + /bin/larynx/app/.venv/bin/python3 -m larynx.server + ''}/bin/${name}"; + targetPkgs = pkgs: [ + larynx + pkgs.python39 + ]; + profile = "export FHS=1"; + }; + +in pkgs.mkShell { + inherit fhs; + inherit name; + shellHook = "exec ${fhs}/bin/${fhs.name}"; +} diff --git a/.config/nixpkgs/shells/larynx/shell.nix b/.config/nixpkgs/shells/larynx/shell.nix new file mode 100644 index 0000000..ac2e940 --- /dev/null +++ b/.config/nixpkgs/shells/larynx/shell.nix @@ -0,0 +1,54 @@ +let + + name = "nix-shell.larynx"; + + nixpkgs = import { }; + + pkgs = import (builtins.fetchTarball { + url = "https://releases.nixos.org/nixos/22.11/nixos-22.11.466.596a8e828c5/nixexprs.tar.xz"; + sha256 = "1367bad5zz0mfm4czb6p0s0ni38f0x1ffh02z76rx4nranipqbgg"; + }) { }; + + larynx = pkgs.stdenvNoCC.mkDerivation rec { + name = "larynx"; + version = "1.1.0"; + sourceRoot = "."; + + src = pkgs.dockerTools.exportImage { + fromImage = pkgs.dockerTools.pullImage rec { + imageName = "rhasspy/larynx"; + imageDigest = "sha256:ada5b443e2446b38ba61d764ec37c0ed78d46e659a011243967e7cc8e52311e3"; + sha256 = "sha256-TbaHNNMRGp4SWYC06WSmNr3igpiJagDKoD3TEnttYt8="; + finalImageName = imageName; + finalImageTag = version; + }; + diskSize = "3072"; + }; + + phases = [ "unpackPhase" "installPhase" ]; + + installPhase = '' + mkdir --parents $out/bin/larynx/app + cp --recursive home/larynx/app/.venv $out/bin/larynx/app + cp --recursive home/larynx/app/larynx $out/bin/larynx/app + ''; + }; + + fhs = pkgs.buildFHSUserEnv { + name = "larynx"; + runScript = "${pkgs.writeScriptBin name '' + export PYTHONPATH=/bin/larynx/app + /bin/larynx/app/.venv/bin/python3 -m larynx "$@" + ''}/bin/${name}"; + targetPkgs = pkgs: [ + larynx + pkgs.python39 + ]; + profile = "export FHS=1"; + }; + +in pkgs.mkShell { + inherit fhs; + inherit name; + shellHook = "exec ${fhs}/bin/${fhs.name}"; +} diff --git a/.local/bin/picospeaker b/.local/bin/picospeaker deleted file mode 100755 index 55a1b7b..0000000 --- a/.local/bin/picospeaker +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -eu - -audio=/tmp/picospeaker-jfgOUcZdWu.wav -text=${1:-Nothing to read.} - -[ "${1-}" = "echo" ] && picospeaker "${2-}" "${1-}" && exit; - -pico2wave -w "$audio" "$text"; - -[ "${2-}" = "echo" ] \ - && ffmpeg -y -i "$audio" -map 0 -c:v copy -af aecho=1:1:50:0.5,atempo=0.85 "$audio.mp3" \ - && mplayer -really-quiet "$audio.mp3" && exit; - -mplayer -really-quiet "$audio"; diff --git a/.local/bin/say b/.local/bin/say new file mode 100755 index 0000000..cd9e07f --- /dev/null +++ b/.local/bin/say @@ -0,0 +1,20 @@ +#!/bin/sh -eu + +audio=/tmp/speak-jfgOUcZdWu.wav +text=${1:-Nothing to say.} + +[ "${1-}" = "echo" ] && $0 "${2-}" "${1-}" && exit; + +printf '%s' "$text" | larynx -q low > $audio + +[ "${2-}" = "echo" ] && + ffmpeg \ + -y \ + -i "$audio" \ + -map 0 \ + -c:v copy \ + -af aecho=1:1:50:0.5,atempo=0.85 "$audio.mp3" && + mplayer -really-quiet "$audio.mp3" && + exit; + +mplayer -really-quiet "$audio"; -- cgit v1.2.3