From 227c07597ea379b236a3820b19f22ef343192c5d Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 21 May 2022 09:09:13 +0200 Subject: [PATCH 1/4] =?UTF-8?q?stt:=200.9.3=20=E2=86=92=201.3.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/coqui-ai/STT/releases/tag/v1.0.0 – dropped protobuf model support https://github.com/coqui-ai/STT/releases/tag/v1.1.0 https://github.com/coqui-ai/STT/releases/tag/v1.2.0 https://github.com/coqui-ai/STT/releases/tag/v1.3.0 --- pkgs/tools/audio/stt/default.nix | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/pkgs/tools/audio/stt/default.nix b/pkgs/tools/audio/stt/default.nix index c8fff7ddbb4a7..6e37152c87ee4 100644 --- a/pkgs/tools/audio/stt/default.nix +++ b/pkgs/tools/audio/stt/default.nix @@ -1,12 +1,18 @@ -{ stdenv, lib, fetchurl, autoPatchelfHook }: +{ stdenv +, lib +, fetchurl +, autoPatchelfHook +, xz +, bzip2 +}: stdenv.mkDerivation rec { pname = "stt"; - version = "0.9.3"; + version = "1.3.0"; src = fetchurl { - url = "https://github.com/coqui-ai/STT/releases/download/v${version}/native_client.tf.Linux.tar.xz"; - sha256 = "0axwys8vis4f0m7d1i2r3dfqlc8p3yj2nisvc7pdi5qs741xgy8w"; + url = "https://github.com/coqui-ai/STT/releases/download/v${version}/native_client.tflite.Linux.tar.xz"; + sha256 = "JsMrSNE0KlKpI998wPY6dMTyTggRtqu4JmucBmgirNs="; }; setSourceRoot = "sourceRoot=`pwd`"; @@ -16,12 +22,20 @@ stdenv.mkDerivation rec { buildInputs = [ stdenv.cc.cc.lib + xz # for lzma + bzip2 ]; installPhase = '' + runHook preInstall + install -D stt $out/bin/stt install -D coqui-stt.h $out/include/coqui-stt.h + install -D libsox.so.3 $out/lib/libsox.so.3 + install -D libkenlm.so $out/lib/libkenlm.so install -D libstt.so $out/lib/libstt.so + + runHook postInstall ''; meta = with lib; { From ae87b79ff574515f6db617a845b5c08fff614557 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 21 May 2022 09:11:10 +0200 Subject: [PATCH 2/4] stt-models: init --- pkgs/tools/audio/stt/models.nix | 18 ++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 20 insertions(+) create mode 100644 pkgs/tools/audio/stt/models.nix diff --git a/pkgs/tools/audio/stt/models.nix b/pkgs/tools/audio/stt/models.nix new file mode 100644 index 0000000000000..ea3514cb2b981 --- /dev/null +++ b/pkgs/tools/audio/stt/models.nix @@ -0,0 +1,18 @@ +{ + fetchurl, +}: + +{ + english = { + # https://coqui.ai/english/coqui/v0.9.3 + scorer = fetchurl { + url = "https://coqui.gateway.scarf.sh/english/coqui/v0.9.3/coqui-stt-0.9.3-models.scorer"; + sha256 = "0M+SarnKtUqKfXAAO5MbLWLr2RBe05LR7JyEACmGd5k="; + }; + + tflite = fetchurl { + url = "https://coqui.gateway.scarf.sh/english/coqui/v0.9.3/model.tflite"; + sha256 = "Coj5j/Fcm/dgv32gNbna+uJA5+sACvN2+H4FKq4zEgM="; + }; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 743d67d5d6aa3..15d8e08fc7e7d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -32210,6 +32210,8 @@ with pkgs; stt = callPackage ../tools/audio/stt { }; + stt-models = recurseIntoAttrs (callPackages ../tools/audio/stt/models.nix { }); + stuntrally = callPackage ../games/stuntrally { ogre = ogre1_9; mygui = mygui.override { From abe561672f06732a831dd9f73d97ddf1b960c9ce Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 21 May 2022 07:04:24 +0200 Subject: [PATCH 3/4] gst-deepspeech: init at unstable-2021-04-08 --- .../libraries/gst-deepspeech/default.nix | 63 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 65 insertions(+) create mode 100644 pkgs/development/libraries/gst-deepspeech/default.nix diff --git a/pkgs/development/libraries/gst-deepspeech/default.nix b/pkgs/development/libraries/gst-deepspeech/default.nix new file mode 100644 index 0000000000000..d15a529f93dd7 --- /dev/null +++ b/pkgs/development/libraries/gst-deepspeech/default.nix @@ -0,0 +1,63 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchurl +, autoreconfHook +, pkg-config +, gst_all_1 +, stt +, stt-models +, unstableGitUpdater +}: + +stdenv.mkDerivation rec { + pname = "gst-deepspeech"; + version = "unstable-2021-04-08"; + + outputs = [ "out" "dev" ]; + + src = fetchFromGitHub { + owner = "Elleo"; + repo = "gst-deepspeech"; + rev = "2aef372a7a1064c90ffb70c12721657bf92fca66"; + sha256 = "9XGSUYV6jRMsMSA8TO7y7u9T7NihB4azzKJfZ/OPcLI="; + }; + + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; + + buildInputs = [ + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + stt + ]; + + postPatch = '' + # https://github.com/Elleo/gst-deepspeech/pull/20 + substituteInPlace src/gstdeepspeech.cc \ + --replace "/usr/share/deepspeech/models/deepspeech-0.9.3-models.pbmm" "${stt-models.english.tflite}" \ + --replace "/usr/share/deepspeech/models/deepspeech-0.9.3-models.scorer" "${stt-models.english.scorer}" \ + --replace "#include " "" \ + --replace "DS_" "STT_" + substituteInPlace src/gstdeepspeech.h \ + --replace '#include "deepspeech.h"' "#include " + substituteInPlace src/Makefile.am \ + --replace "-ldeepspeech" "-lstt" + ''; + + passthru = { + updateScript = unstableGitUpdater { + url = "${src.meta.homepage}.git"; + }; + }; + + meta = { + description = "GStreamer plug-in for STT"; + homepage = "https://github.com/Elleo/gst-deepspeech"; + license = lib.licenses.lgpl2Plus; + maintainers = with lib.maintainers; [ jtojnar ]; + platforms = stt.meta.platforms; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 15d8e08fc7e7d..23b9a4d40187c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -17564,6 +17564,8 @@ with pkgs; inherit (darwin.apple_sdk.frameworks) AudioToolbox AVFoundation Cocoa CoreFoundation CoreMedia CoreServices CoreVideo DiskArbitration Foundation IOKit MediaToolbox OpenGL VideoToolbox; }); + gst-deepspeech = callPackage ../development/libraries/gst-deepspeech { }; + gusb = callPackage ../development/libraries/gusb { }; qt-mobility = callPackage ../development/libraries/qt-mobility {}; From b008f3d6599155edf0e96444f8b8ced6a4464198 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 21 May 2022 09:59:39 +0200 Subject: [PATCH 4/4] ibus-engines.stt: init at unstable-2017-12-30 --- .../ibus-engines/ibus-stt/default.nix | 61 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 63 insertions(+) create mode 100644 pkgs/tools/inputmethods/ibus-engines/ibus-stt/default.nix diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-stt/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-stt/default.nix new file mode 100644 index 0000000000000..5b070ae0154b1 --- /dev/null +++ b/pkgs/tools/inputmethods/ibus-engines/ibus-stt/default.nix @@ -0,0 +1,61 @@ +{ stdenv +, lib +, fetchFromGitHub +, autoreconfHook +, pkg-config +, gst_all_1 +, gst-deepspeech +, ibus +, pango +, python3 +, gobject-introspection +, wrapGAppsHook +, unstableGitUpdater +}: + +stdenv.mkDerivation rec { + pname = "ibus-deepspeech"; + version = "unstable-2017-12-30"; + + src = fetchFromGitHub { + owner = "Elleo"; + repo = "ibus-deepspeech"; + rev = "3ea7c537e60e3ff66c566355c2b365febc91a91a"; + sha256 = "51rSPqen40drSfB60q/unc2EbX5lgJnPCIRoH4qq/AM="; + }; + + nativeBuildInputs = [ + autoreconfHook + pkg-config + gobject-introspection # for setup hook + wrapGAppsHook + ]; + + buildInputs = [ + gst_all_1.gstreamer + gst_all_1.gst-plugins-good + gst-deepspeech + ibus + pango + (python3.withPackages (ps: [ + ps.pygobject3 + ps.gst-python + (ps.toPythonModule ibus) + ])) + ]; + + passthru = { + updateScript = unstableGitUpdater { + url = "${src.meta.homepage}.git"; + }; + }; + + meta = with lib; { + isIbusEngine = true; + description = "IBus plugin to allow any Linux application to make use of speech recognition"; + homepage = "https://github.com/Elleo/ibus-deepspeech"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ jtojnar ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 23b9a4d40187c..f62c36cea4109 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4778,6 +4778,8 @@ with pkgs; rime = callPackage ../tools/inputmethods/ibus-engines/ibus-rime { }; + stt = callPackage ../tools/inputmethods/ibus-engines/ibus-stt { }; + table = callPackage ../tools/inputmethods/ibus-engines/ibus-table { }; table-chinese = callPackage ../tools/inputmethods/ibus-engines/ibus-table-chinese {