Add whisperx

This commit is contained in:
Geoffrey Frogeye 2024-11-15 22:41:26 +01:00
parent 22b844df2c
commit 84268f3c47
Signed by: geoffrey
GPG key ID: C72403E7F82E6AD8
3 changed files with 39 additions and 1 deletions

68
hm/extra/default.nix Normal file
View file

@ -0,0 +1,68 @@
{ pkgs, lib, config, ... }:
{
config = lib.mkIf config.frogeye.extra {
programs = {
pandoc.enable = true;
yt-dlp = {
enable = true;
settings = {
format = "bestvideo[height<=${builtins.toString config.frogeye.desktop.maxVideoHeight}]+bestaudio/best";
sponsorblock-mark = "all";
sponsorblock-remove = "intro,outro,sponsor,selfpromo,preview,interaction,music_offtopic";
sub-langs = "en,fr";
write-auto-subs = true;
write-subs = true;
};
};
};
home.packages = with pkgs; ([
# android tools
android-tools
# Communication
signal-desktop
(pkgs.callPackage ./whisperx.nix {}) # Transcribe voice messages
# downloading
# transmission TODO Collision if both transmissions are active?
# Multimedia toolbox
ffmpeg
# documents
visidata
# texlive.combined.scheme-full
# TODO Convert existing LaTeX documents into using Nix build system
# texlive is big and not that much used, sooo
pdftk
pdfgrep
# Misc
haskellPackages.dice
rustdesk-flutter
] ++ lib.optionals config.frogeye.desktop.xorg [
# multimedia editors
darktable
puddletag
audacity
xournalpp
krita
# downloading
transmission-qt
# wine only makes sense on x86_64
] ++ lib.optionals pkgs.stdenv.isx86_64 [
wine
# TODO wine-gecko wine-mono lib32-libpulse (?)
] ++ lib.optionals (!stdenv.isAarch64) [
# Musescore is broken on aarch64
musescore
# Blender 4.0.1 can't compile on aarch64
# https://hydra.nixos.org/job/nixos/release-23.11/nixpkgs.blender.aarch64-linux
blender
]);
};
}

37
hm/extra/whisperx.nix Normal file
View file

@ -0,0 +1,37 @@
{ pkgs ? import <nixpkgs> { } }:
pkgs.python3Packages.buildPythonPackage {
pname = "whisperx";
version = "2024-08-19";
# pypi doesn't have the requirements.txt file, and it's required
src = pkgs.fetchFromGitHub {
owner = "m-bain";
repo = "whisperX";
rev = "9e3a9e0e38fcec1304e1784381059a0e2c670be5"; # git doesn't have tags
hash = "sha256-IVtn9fe/yi4+fbH57s9LoiREnMZ2nhEObp1a4R/7gHg=";
};
pyproject = true;
dependencies = [
pkgs.python3Packages.torch
pkgs.python3Packages.torchaudio
(pkgs.python3Packages.faster-whisper.overrideAttrs (old: {
# 1.0.2 is actually breaking APIs (requires hotwords argument)
src = pkgs.fetchFromGitHub {
owner = "SYSTRAN";
repo = "faster-whisper";
rev = "v1.0.0";
hash = "sha256-0fE8X1d6CgDrrHtRudksN/tIGRtBKMvoNwkSVyFNda4=";
};
}))
pkgs.python3Packages.transformers
pkgs.python3Packages.pyannote-audio # Not in the requirements.txt for some reason
pkgs.python3Packages.pandas
pkgs.python3Packages.nltk
];
build-system = [
pkgs.python3Packages.setuptools
];
pythonImportsCheck = [
"whisperx"
];
}