{ stdenv, fetchurl, unzip, system }:
# Source https://github.com/Lykos153/numen-nix
let
  getSource = system: version: let
    sources = {
      x86_64-linux = {
        systemString = "linux-x86_64";
        sha256 = "sha256-u9yO2FxDl59kQxQoiXcOqVy/vFbP+1xdzXOvqHXF+7I=";
      };
      aarch64-linux = {
        systemString = "linux-aarch64";
        sha256 = "sha256-ReldN3Vd6wdWjnlJfX/rqMA67lqeBx3ymWGqAj/ZRUE=";
      };
      i686-linux = {
        systemString = "linux-x86";
        sha256 = "sha256-tTnvwieAlIvZji7LnBuSygizxVKhh0T3ICq3hAW44fk=";
      };
    };
  in {
    url = "https://github.com/alphacep/vosk-api/releases/download/v${version}/vosk-${(builtins.getAttr system sources).systemString}-${version}.zip";
    sha256 = (builtins.getAttr system sources).sha256;

  };
in
stdenv.mkDerivation rec {
  # todo: other arches as well.
  name = "vosk-bin";
  version = "0.3.45";
  src = fetchurl (getSource system version);
  nativeBuildInputs = [ unzip ];
  unpackCmd = "unzip $curSrc";

  installPhase = ''
    mkdir -p $out/lib
    mv libvosk.so $out/lib/
    mkdir -p $out/include
    mv vosk_api.h $out/include/
  '';
}