[PATCH] gnu: Add Mycroft Voice Assistant

OpenSubmitted by phodina.
Details
4 participants
  • Morgan Smith
  • Efraim Flashner
  • Nicolas Goaziou
  • phodina
Owner
unassigned
Severity
normal
P
P
phodina wrote on 18 Sep 2021 19:01
[PATCH 01/18] gnu: Add python-pyee.
(name . guix-patches@gnu.org)(address . guix-patches@gnu.org)
qQ-NMjrokukHQud2psYiSbCZ9IpYwa0oatHWsznaPmngNBwHWaDqjE-NIb4plR7BF0snEHpfSGWL_RFYn5_fJ7kdg8lhZNDcW4O5YTfwwOE=@protonmail.com
* gnu/packages/python-xyz.scm (python-pyee): New variable.

Toggle diff (40 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 758c20868e..7add339e90 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -16446,6 +16446,35 @@ Record Format (DWARF).")
 (define-public python2-pyev
   (package-with-python2 python-pyev))

+(define-public python-pyee
+  (package
+    (name "python-pyee")
+    (version "8.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pyee" version))
+       (sha256
+        (base32
+         "0cgxbdr4zmil03wwr5fv58789i51gka8a9fxm1dgkf5xs9dwrnlj"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-pytest-trio" ,python-pytest-trio)
+       ("python-pytest-asyncio" ,python-pytest-asyncio)
+       ("python-pytest-runner" ,python-pytest-runner)
+       ("python-pytest" ,python-pytest)
+       ("python-mock" ,python-mock)))
+    (propagated-inputs
+     `(("python-vcversioner" ,python-vcversioner)
+       ("python-twisted" ,python-twisted)
+       ("python-trio" ,python-trio)))
+    (home-page "https://github.com/jfhbrook/pyee")
+    (synopsis
+     "Port of node.js's EventEmitter to python")
+    (description
+     "Port of node.js's EventEmitter to python.")
+    (license license:expat)))
+
 (define-public python-imagesize
   (package
     (name "python-imagesize")
--
2.32.0
P
P
phodina wrote on 18 Sep 2021 19:04
[PATCH 02/18] gnu: Add python-fann2.
(name . 50663@debbugs.gnu.org)(address . 50663@debbugs.gnu.org)
dNEaftdaAUsa5CyCkZI_eYHKdef15ifNQsyNpEb3LChpW_qH1uq2-uCyD9E2RYXSiu0l_SjRa-bgQALP3Zu-J4xBGN637SCeUzIJdcy4x-U=@protonmail.com
* gnu/packages/python-xyz.scm (python-fann2): New variable.

Toggle diff (41 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 7add339e90..6aa0f3236a 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -174,6 +174,7 @@
   #:use-module (gnu packages maths)
   #:use-module (gnu packages monitoring)
   #:use-module (gnu packages multiprecision)
+  #:use-module (gnu packages machine-learning)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages openstack)
@@ -17885,6 +17886,28 @@ current test, while only declaring the test-specific fields")
 (define-public python2-factory-boy
   (package-with-python2 python-factory-boy))

+(define-public python-fann2
+  (package
+    (name "python-fann2")
+    (version "1.0.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "fann2" version))
+       (sha256
+        (base32
+         "17zv6hbq26qg9jmsshx3xnnnv203fr4cyjg4v3rgq38a5i5agv2k"))))
+    (build-system python-build-system)
+    (native-inputs `(("swig" ,swig)))
+    (propagated-inputs `(("fann" ,fann)))
+    (home-page
+     "https://github.com/FutureLinkCorporation/fann2")
+    (synopsis
+     "Fast Artificial Neural Network Library (FANN) Python bindings")
+    (description
+     "Fast Artificial Neural Network Library (FANN) Python bindings.")
+    (license license:lgpl2.1)))
+
 (define-public python-translate-toolkit
   (package
     (name "python-translate-toolkit")
--
2.32.0
P
P
phodina wrote on 18 Sep 2021 20:58
[PATCH 03/19] gnu: Add python-padaos.
(name . 50663@debbugs.gnu.org)(address . 50663@debbugs.gnu.org)
1Y1jXI0j316yGOUUVTgI8YYNWbjfYVVwrY1ye6FCjH1zvsK9fNlvdOG30SPHHLaR2kEoTG8R9FA32XUcABfdT4wQnevjJR7662pswAtaLyI=@protonmail.com
* gnu/packages/python-xyz.scm (python-padaos): New variable.

Toggle diff (28 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 074f799130..b2d7a290e6 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -13759,6 +13759,23 @@ anymore.")
 (define-public python2-pathlib
   (package-with-python2 python-pathlib))

+(define-public python-padaos
+  (package
+    (name "python-padaos")
+    (version "0.1.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "padaos" version))
+       (sha256
+        (base32
+         "10zfk0nfv0fsy6r0by4cf6hlxxid7kp4bai2fwsbad9zskz6dgj7"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/MycroftAI/padaos")
+    (synopsis "Rigid, lightweight, dead-simple intent parser")
+    (description "Converts sentences into one big chunk of regex. Each intent is a single compiled regex matcher.")
+    (license license:expat)))
+
 (define-public python2-pathlib2
   (package
     (name "python2-pathlib2")
--
2.32.0
P
P
phodina wrote on 18 Sep 2021 20:59
[PATCH 04/19] gnu: Add python-precise-runner.
(name . 50663@debbugs.gnu.org)(address . 50663@debbugs.gnu.org)
z1bwHDOp7KCYOmqr5TcTxAwNmCGN6H3rwf5tvu5Y2hw58tDleDtjzWps4QoeVr3PM6V6m6nNbfojDF35v4OVaHwQYmJEYmkZqe0EooX5bPg=@protonmail.com
* gnu/packages/python-xyz.scm (python-precise-runner): New variable.

Toggle diff (39 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b2d7a290e6..4fe8748931 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -133,6 +133,7 @@
   #:use-module (gnu packages adns)
   #:use-module (gnu packages aidc)
   #:use-module (gnu packages attr)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages check)
@@ -22094,6 +22095,26 @@ multi-language pre-commit hooks.")
 RFC 8265 and RFC 8266.")
     (license license:expat)))

+(define-public python-precise-runner
+  (package
+    (name "python-precise-runner")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "precise-runner" version))
+       (sha256
+        (base32
+         "13zbxd8yccsk67b5ksrjf7206krwxj2s3q07x9pnhrrn8k6hkn45"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-pyaudio" ,python-pyaudio)))
+    (home-page "https://github.com/MycroftAI/mycroft-precise")
+    (synopsis "Wrapper to use Mycroft Precise Wake Word Listener")
+    (description "Audio stream monitoring wrapper which triggers an event when
+it recognizes a specific phrase.")
+    (license license:asl2.0)))
+
 (define-public python-absl-py
   (package
     (name "python-absl-py")
--
2.32.0
P
P
phodina wrote on 18 Sep 2021 20:59
[PATCH 05/19] gnu: Add python-petact.
(name . 50663@debbugs.gnu.org)(address . 50663@debbugs.gnu.org)
rwCwfG_sDBgYk-li7wEqFozsxp0tNmqJPSOlDqjGKp_lbr7gUStQyW2t8ueY4UdzgkqMZggGnRqWMXOo_Qd_ZAPXPy5X-YRNfrcf4O93NZM=@protonmail.com
* gnu/packages/python-xyz.scm (python-petact): New variable.

Toggle diff (29 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 4fe8748931..072bd121d5 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -9349,6 +9349,24 @@ PEP 8.")
          ,@(package-arguments base)))
     (native-inputs `()))))

+(define-public python-petact
+  (package
+    (name "python-petact")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "petact" version))
+       (sha256
+        (base32
+         "1rjh0fjimmixbvrv6znkfrfa83ndjc4pgyfyl90iwq3az120vjsx"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/matthewscholefield/petact")
+    (synopsis "Package extraction tool")
+    (description "Library used for installing and updating compressed tar
+files.")
+    (license license:expat))) ; MIT
+
 (define-public python-pyflakes
   (package
     (name "python-pyflakes")
--
2.32.0
P
P
phodina wrote on 18 Sep 2021 21:00
[PATCH 06/19] gnu: Add python-padatious.
(name . 50663@debbugs.gnu.org)(address . 50663@debbugs.gnu.org)
jqH83qVESAC1MpmcHRP_9DqOQ_MRWGBhwfCZ0uKqcBZ5Egvv5LjMk_l8uKFYA6b1MkCuEvtFzMTQ0OCH5b2JlzWs7cFDRKdOEDTWt8jOyig=@protonmail.com
* gnu/packages/python-xyz.scm (python-padatious): New variable.

Toggle diff (40 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 072bd121d5..1b1a26f603 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -142,6 +142,7 @@
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages dbm)
+  #:use-module (gnu packages digest)
   #:use-module (gnu packages djvu)
   #:use-module (gnu packages docker)
   #:use-module (gnu packages enchant)
@@ -13795,6 +13796,27 @@ anymore.")
     (description "Converts sentences into one big chunk of regex. Each intent is a single compiled regex matcher.")
     (license license:expat)))

+(define-public python-padatious
+  (package
+    (name "python-padatious")
+    (version "0.4.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "padatious" version))
+       (sha256
+        (base32
+         "0xbgf75kxclacgairid8m948hrrngcxhykr1wkvav32fp58z4wg4"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-fann2" ,python-fann2)
+       ("python-padaos" ,python-padaos)
+       ("python-xxhash" ,python-xxhash)))
+    (home-page "https://github.com/MycroftAI/padatious")
+    (synopsis "Neural network intent parser")
+    (description "A neural network intent parser")
+    (license license:asl2.0)))
+
 (define-public python2-pathlib2
   (package
     (name "python2-pathlib2")
--
2.32.0
P
P
phodina wrote on 18 Sep 2021 21:01
[PATCH 07/19] gnu: Add python-lazy.
(name . 50663@debbugs.gnu.org)(address . 50663@debbugs.gnu.org)
OLY7gCvWS6mxjo6zqJ-e0uHKyDZhiFuHUMI5LdoUt-PEbnNGunQRCV26x3w9mtl8bhb1IdZAngtcJ7JELOvEC_RdvzP2f-JxK3M-9g7sitU=@protonmail.com
* gnu/packages/python-xyz.scm (python-lazy): New variable.

Toggle diff (33 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 1b1a26f603..8f92800112 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -15254,6 +15254,28 @@ feels like an AST.")
 inspection of types defined in the Python standard typing module.")
     (license license:expat)))

+(define-public python-lazy
+  (package
+    (name "python-lazy")
+    (version "1.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference   ; pypi release link leads to project page
+             (url "https://github.com/stefanholek/lazy")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1y3y35jr0nnfh32zgdrb4r4sf9v8k36j07z2m0g6kz7bf3azsgc5"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/stefanholek/lazy")
+    (synopsis "Lazy attributes for Python objects")
+    (description "Provides lazy attributes that are evaluated only once,
+the first time they are used.  Subsequent uses return the results of the first
+call.")
+    (license license:bsd-2)))
+
 (define-public python-lazy-object-proxy
   (package
     (name "python-lazy-object-proxy")
--
2.32.0
P
P
phodina wrote on 18 Sep 2021 21:01
[PATCH 08/19] gnu: Add python-pako.
(name . 50663@debbugs.gnu.org)(address . 50663@debbugs.gnu.org)
lVQxLxLtGr99wmQx3Q-z9FRPvlE7Xxbs6i3hAHJtPEn_2h4dh7Hy_J06NXOTaZ2tVCR3hgp21wsNH57qnGQA0gSCMwwY8zGJrsOu4zCeZxU=@protonmail.com
* gnu/packages/python-xyz.scm (python-pako): New variable.

Toggle diff (31 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 8f92800112..7180be87e5 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -13817,6 +13817,26 @@ anymore.")
     (description "A neural network intent parser")
     (license license:asl2.0)))

+(define-public python-pako
+  (package
+    (name "python-pako")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pako" version))
+       (sha256
+        (base32
+         "07r3f86idlxb2x2mvy24fzkxyq5xalkbmk0zmqva7341pdrs0cy0"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-appdirs" ,python-appdirs)))
+    (home-page "https://github.com/MycroftAI/pako")
+    (synopsis "The universal package manager library")
+    (description
+     "Provides unified way to handle native universal package manager.")
+    (license license:asl2.0)))
+
 (define-public python2-pathlib2
   (package
     (name "python2-pathlib2")
--
2.32.0
P
P
phodina wrote on 18 Sep 2021 21:02
[PATCH 09/19] gnu: Add python-adapt-parser.
(name . 50663@debbugs.gnu.org)(address . 50663@debbugs.gnu.org)
9CWWuF11TrnE2Cuq79S8qlkMzdkAGpVyA1yQFWfbvmJGuh_CNWPeMCQ3uh8GWNmo100ewFbAiYF93tfTRFLwK0ZMGnX-vP4t8t-6174vlN8=@protonmail.com
* gnu/packages/python-xyz.scm (python-adapt-parser): New variable.

Toggle diff (35 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 7180be87e5..e3f996a2d2 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -13502,6 +13502,30 @@ ISO 8859, etc.).")
 (define-public python2-translitcodec
   (package-with-python2 python-translitcodec))

+(define-public python-adapt-parser
+  (package
+    (name "python-adapt-parser")
+    (version "v0.3.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/MycroftAI/adapt")
+             (commit (string-append "release/" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1f67plj9f0314pm2vfqvmzqmngfq4vznzs3ikgkwsz798m1hzl6y"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-pyee" ,python-pyee)
+       ("python-six" ,python-six)))
+    (home-page "https://github.com/MycroftAI/adapt")
+    (synopsis "Text-to-intent parsing framework")
+    (description "Flexible and extensible way to parse natural language text
+into a structured intent.")
+    (license license:asl2.0)))
+
 (define-public python-anyqt
   (package
     (name "python-anyqt")
--
2.32.0
P
P
phodina wrote on 18 Sep 2021 21:03
[PATCH 10/19] gnu: Add python-msm.
(name . 50663@debbugs.gnu.org)(address . 50663@debbugs.gnu.org)
ypDVEUQFsw3OGCSXSS-LoTIbUR3k-gCbmv6aPgfoIGw71KIYPNITO0CdKiJW78qq4N3nV9U29xjP9kUfImQyMr_TTvinPP9hw4eIOKUPwSo=@protonmail.com
* gnu/packages/python-xyz.scm (python-msm): New variable.

Toggle diff (45 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index e3f996a2d2..1379302ef4 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -148,6 +148,7 @@
   #:use-module (gnu packages enchant)
   #:use-module (gnu packages file)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages geo)
   #:use-module (gnu packages ghostscript)
@@ -10143,6 +10144,32 @@ reading and writing MessagePack data.")
 (define-public python2-msgpack
   (package-with-python2 python-msgpack))

+(define-public python-msm
+  (package
+    (name "python-msm")
+    (version "0.8.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "msm" version))
+       (sha256
+        (base32
+         "00z588imq7q33iv3hn83mf2cyqrbs5f6zzyfa6445ainxvskkzz2"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-fasteners" ,python-fasteners)
+       ("python-gitpython" ,python-gitpython)
+       ("python-lazy" ,python-lazy)
+       ("python-pako" ,python-pako)
+       ("python-pyxdg" ,python-pyxdg)
+       ("python-pyyaml" ,python-pyyaml)
+       ("python-requests" ,python-requests)))
+    (home-page "https://github.com/MycroftAI/mycroft-skills-manager")
+    (synopsis "Mycroft Skills Manager")
+    (description "Command line tool for interacting with the mycroft-skills
+repository.")
+    (license license:asl2.0)))
+
 (define-public python-netaddr
   (package
     (name "python-netaddr")
--
2.32.0
P
P
phodina wrote on 18 Sep 2021 21:03
[PATCH 11/19] gnu: Add python-msk.
(name . 50663@debbugs.gnu.org)(address . 50663@debbugs.gnu.org)
dvK9DSO7wbK1WBU-gVXZjuyfdt2ZVUB9p5e8izYNuHSp7qL-htm35zG32xUNbaZ5AqiSJ0EPqCzvHnCOtL-enBqboFBnCofOIQExwaWwmuQ=@protonmail.com
* gnu/packages/python-xyz.scm (python-msk): New variable.

Toggle diff (35 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 1379302ef4..6f03518ea8 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10144,6 +10144,30 @@ reading and writing MessagePack data.")
 (define-public python2-msgpack
   (package-with-python2 python-msgpack))

+(define-public python-msk
+  (package
+    (name "python-msk")
+    (version "0.3.16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "msk" version))
+       (sha256
+        (base32
+         "11zf2s5wdglzki2r05plx6j9gykwvbpdn8fbr3fnjz4g0vy1g9y6"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-colorama" ,python-colorama)
+       ("python-gitpython" ,python-gitpython)
+       ("python-msm" ,python-msm)
+       ("python-pygithub" ,python-pygithub)
+       ("python-requests" ,python-requests)))
+    (home-page "https://github.com/MycroftAI/mycroft-skills-kit")
+    (synopsis "Mycroft Skills Kit")
+    (description "Tool to help with creating, uploading, and upgrading Mycroft
+skills.")
+    (license license:asl2.0)))
+
 (define-public python-msm
   (package
     (name "python-msm")
--
2.32.0
P
P
phodina wrote on 18 Sep 2021 21:03
[PATCH 12/19] gnu: Add python-lingua-franca.
(name . 50663@debbugs.gnu.org)(address . 50663@debbugs.gnu.org)
YwWPS9kOC0lgNLJapSLqNRE7WzVL-l4-mIbvVAKarWU-HHgkWFAg4SHrgEJzND3_tm4FEFwr7hZ6GxgMoT2XleKQHEXXiMTG37h1Ee_74UQ=@protonmail.com
* gnu/packages/python-xyz.scm (python-lingua-franca): New variable.

Toggle diff (40 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6f03518ea8..5c068ee17b 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19348,6 +19348,35 @@ lines are read from a single file.")
 (define-public python2-linecache2
   (package-with-python2 python-linecache2))

+(define-public python-lingua-franca
+  (package
+    (name "python-lingua-franca")
+    (version "v0.4.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri
+          (git-reference
+            (url "https://github.com/MycroftAI/lingua-franca")
+            (commit (string-append "release/" version))))
+        (file-name (git-file-name name version))
+        (modules '((guix build utils)))
+        (snippet '(begin
+                     ;; Use newer version of pkg
+                     (substitute* "requirements.txt"
+                        (("python-dateutil==") "python-dateutil>="))
+                     #t))
+        (sha256
+          (base32
+            "1qrd1jdi57lv9q3h1g18sg1whgxsmij7x3jw6p608cnhpssf92dr"))))
+    (build-system python-build-system)
+    (propagated-inputs
+      `(("python-dateutil" ,python-dateutil)))
+    (home-page "https://github.com/MycroftAI/lingua-franca")
+    (synopsis "Mycroft's multilingual text parsing and formatting library")
+    (description "Converts data into spoken equivalents.")
+    (license license:asl2.0)))
+
 (define-public python-traceback2
   (package
     (name "python-traceback2")
--
2.32.0
P
P
phodina wrote on 18 Sep 2021 21:04
[PATCH 13/19] gnu: Add python-pocketsphinx.
(name . 50663@debbugs.gnu.org)(address . 50663@debbugs.gnu.org)
C6e8rIo2_W7l36gAQM870V3OZ-Y9rBXO50bBab4rG4KysCdhwjTKxppQQWOagEgv3gLe6GGHyOJsWgrEZ71bqC-VSrxpfgzTEAV6dguLfaI=@protonmail.com
* gnu/packages/python-xyz.scm (python-pocketsphinx): New variable.

Toggle diff (49 lines)
diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm
index a7a3443707..5f9967ba0e 100644
--- a/gnu/packages/sphinx.scm
+++ b/gnu/packages/sphinx.scm
@@ -45,14 +45,44 @@
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages swig)
   #:use-module (gnu packages time)
   #:use-module (gnu packages python-science)
   #:use-module (gnu packages graph))

+(define-public python-pocketsphinx
+  (package
+    (name "python-pocketsphinx")
+    (version "0.1.15")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+	 (url "https://github.com/bambocher/pocketsphinx-python")
+	    (recursive? #t)
+	    (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "18i1jw9138ldxigfcjz6rk9z2c2wc2ng2zdnkzippv45d5izkdz8"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("swig" ,swig)))
+    (propagated-inputs
+     `(("pulseaudio" ,pulseaudio)
+       ("alsa-lib" ,alsa-lib)))
+    (home-page "https://github.com/bambocher/pocketsphinx-python")
+    (synopsis "Python interface to CMU Sphinxbase and Pocketsphinx libraries")
+    (description "Python interface to CMU Sphinxbase and Pocketsphinx libraries")
+    (license license:bsd-3)))
+
 (define-public python-sphinx
   (package
     (name "python-sphinx")
--
2.32.0
P
P
phodina wrote on 18 Sep 2021 21:04
[PATCH 14/19] gnu: Add python-gtts.
(name . 50663@debbugs.gnu.org)(address . 50663@debbugs.gnu.org)
k2qw9zW5ZxTsP9Fcdc5GZTAB8vMzZpVmmqW5PvwDbfZD8O7x6ZxDnuFAAAisjEXEIjOkHN-eA6C6royUJqZW71--_hI-CoOhHa7j4QnG9p0=@protonmail.com
* gnu/packages/python-xyz.scm (python-gtts): New variable.

Toggle diff (42 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 5c068ee17b..46e5c2522d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -16371,6 +16371,37 @@ A GraphQL schema describes your data model, and provides a GraphQL server
 with an associated set of resolve methods that know how to fetch data.")
     (license license:expat)))

+(define-public python-gtts
+  (package
+    (name "python-gtts")
+    (version "2.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "gTTS" version))
+       (sha256
+        (base32
+         "03qah9gxhx8m6apviqyffay2dpijm2k5h88ikzgndyvs6zc18dxm"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-flake8" ,python-flake8)
+       ("python-mock" ,python-mock)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-six" ,python-six)
+       ("python-testfixtures" ,python-testfixtures)))
+    (propagated-inputs
+     `(("python-click" ,python-click)
+       ("python-requests" ,python-requests)
+       ("python-six" ,python-six)))
+    (home-page "https://github.com/pndurette/gTTS")
+    (synopsis
+     "Python interface to Google Translate text-to-speech API")
+    (description
+     "Python library and CLI tool to interface with Google Translate
+text-to-speech API")
+    (license license:expat)))
+
 (define-public python-nautilus
   (package
     (name "python-nautilus")
--
2.32.0
P
P
phodina wrote on 18 Sep 2021 21:11
[PATCH 16/19] gnu: Add python-mycroft-messagebus-client.
(name . 50663@debbugs.gnu.org)(address . 50663@debbugs.gnu.org)
ObdpmSNIqwUcT3brbgrBtykw20eitqv1O1SMdLtFij2H3TWt4hhxY18zpehFflUz8DQn_xh8BsRde0GAsxmkN31j2eOfDJw0H9xb5V5j7Hk=@protonmail.com
* gnu/packages/python-xyz.scm (python-mycroft-messagebus-client): New variable.

Toggle diff (34 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 60d597677a..84ad0ae37a 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -20700,6 +20700,29 @@ working with iterables.")
     (propagated-inputs
      `(("python2-six" ,python2-six-bootstrap)))))

+(define-public python-mycroft-messagebus-client
+  (package
+    (name "python-mycroft-messagebus-client")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "mycroft-messagebus-client" version))
+       (sha256
+        (base32
+         "0dvzq1rnpg88bzz9dp5275fvw4jrr8wdfgdl3bbz81zhxnp151ih"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-pyee" ,python-pyee)
+       ("python-websocket-client"
+        ,python-websocket-client)))
+    (home-page "https://github.com/MycroftAI/mycroft-messagebus-client")
+    (synopsis "Mycroft Messagebus Client")
+    (description "This module provides simple interface for the mycroft
+messagebus and can be used to connect to mycroft, send messages and react
+to messages sent by the Mycroft system.")
+    (license license:asl2.0)))
+
 (define-public python-latexcodec
   (package
     (name "python-latexcodec")
--
2.32.0
P
P
phodina wrote on 18 Sep 2021 21:11
[PATCH 17/19] gnu: Add mycroft-mimic.
(name . 50663@debbugs.gnu.org)(address . 50663@debbugs.gnu.org)
WLX8HQlBfclOByucU1qDOH9aaRjeGCOqxwYhzLPulq9Fa533g37M_T6VZOtCoiNFlMoQ3G242cgcxeadZuWEl4g-biU1yxCCjyQfm_tTVUo=@protonmail.com
* gnu/packages/speech.scm (mycroft-mimic): New variable.

Toggle diff (57 lines)
diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm
index cbc46b32b4..78694362e8 100644
--- a/gnu/packages/speech.scm
+++ b/gnu/packages/speech.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2021 qblade <qblade@protonmail.com>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -45,6 +46,7 @@
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
@@ -237,6 +239,36 @@ efficiency through the use of a compact vector representation of n-grams.")
     (home-page "https://github.com/mitlm/mitlm")
     (license license:expat)))

+(define-public mycroft-mimic
+  (package
+    (name "mycroft-mimic")
+    (version "1.3.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri
+               (git-reference
+                (url "https://github.com/MycroftAI/mimic1")
+                (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1agwgby9ql8r3x5rd1rgx3xp9y4cdg4pi3kqlz3vanv9na8nf3id"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("libtool" ,libtool)
+       ("automake" ,automake)
+       ("autoconf" ,autoconf)))
+    (inputs `(("alsa-lib" ,alsa-lib)
+              ("pcre2" ,pcre2)))
+    (synopsis "Mycroft's TTS engine, based on CMU's Flite (Festival Lite)")
+    (description "Mimic is a fast, lightweight Text-to-speech engine developed
+by Mycroft A.I. and VocaliD, based on Carnegie Mellon University’s Flite
+(Festival-Lite) software.  Mimic takes in text and reads it out loud to create
+a high quality voice.")
+    (home-page "https://github.com/MycroftAI/mimic1")
+    (license #f)))
+
 (define-public speech-dispatcher
   (package
     (name "speech-dispatcher")
--
2.32.0
P
P
phodina wrote on 18 Sep 2021 21:12
[PATCH 18/19] gnu: Add python-speech-recognition.
(name . 50663@debbugs.gnu.org)(address . 50663@debbugs.gnu.org)
OLTAlbo157362lWZtknIgkP9--YAJrA2beRYmTUcnnuWO_qYgsOXg3-L21FWY-vweCwkmymYbCk2kc20eUgrcyYR464JaV-W62anREDd73Y=@protonmail.com
* gnu/packages/python-xyz.scm (python-speech-recognition): New variable.

Toggle diff (36 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 84ad0ae37a..0af13a0423 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -5340,6 +5340,31 @@ color scales, and color space conversion easy.  It has support for:
 (define-public python2-spectra
   (package-with-python2 python-spectra))

+(define-public python-speech-recognition
+  (package
+    (name "python-speech-recognition")
+    (version "3.8.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+         (url "https://github.com/Uberi/speech_recognition")
+         (commit version)))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32
+            "1lq6g4kl3y1b4ch3b6wik7xy743x6pp5iald0jb9zxqgyxy1zsz4"))))
+    (build-system python-build-system)
+    (arguments
+      ;; Attempts to aquire sound card
+      '(#:tests? #f))
+    (inputs `(("python-pyaudio" ,python-pyaudio)))
+    (home-page "https://github.com/Uberi/speech_recognition")
+    (synopsis "Speech recognition module for Python")
+    (description "Library for performing speech recognition, with support for
+several engines and APIs, online and offline.")
+    (license license:bsd-2)))
+
 (define-public python-pyspnego
   (package
     (name "python-pyspnego")
--
2.32.0
P
P
phodina wrote on 18 Sep 2021 21:12
[PATCH 19/19] gnu: Add python-mycroft-core.
(name . 50663@debbugs.gnu.org)(address . 50663@debbugs.gnu.org)
A7GxbtyWR9aUbxxsQL7CIU5ur19weZRZS6ciUPXLtRMOsXEmeGBRqQEbXHMTUxk8IGTeXt-fVsmIQyQ1am_yTmnJPpfmALNpNKzIjxRt4Co=@protonmail.com
* gnu/packages/python-xyz.scm (python-mycroft-core): New variable.

Toggle diff (100 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 0af13a0423..fcb936e31e 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -202,6 +202,7 @@
   #:use-module (gnu packages search)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages shells)
+  #:use-module (gnu packages speech)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages swig)
@@ -20725,6 +20726,87 @@ working with iterables.")
     (propagated-inputs
      `(("python2-six" ,python2-six-bootstrap)))))

+(define-public python-mycroft-core
+  (package
+    (name "python-mycroft-core")
+    (version "21.2.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri
+          (git-reference
+               (url "https://github.com/MycroftAI/mycroft-core")
+               (commit (string-append "release/v" version))))
+        (file-name (git-file-name name version))
+        (modules '((guix build utils)))
+        (snippet '(begin
+                     ;; Use newer version of pkg
+                     (substitute* "requirements/requirements.txt"
+                        (("tornado==") "tornado>="))
+                     (substitute* "requirements/requirements.txt"
+                        (("pyserial==") "pyserial>="))
+                     (substitute* "requirements/requirements.txt"
+                        (("psutil==") "psutil>="))
+                     (substitute* "requirements/requirements.txt"
+                        (("pocketsphinx==") "pocketsphinx>="))
+                     (substitute* "requirements/requirements.txt"
+                        (("python-dateutil==") "python-dateutil>="))
+                     (substitute* "requirements/requirements.txt"
+                        (("fasteners==") "fasteners>="))
+                     (substitute* "requirements/requirements.txt"
+                        (("PyYAML==5.4") "PyYAML>=5.3.1"))
+                     (substitute* "requirements/requirements.txt"
+                        (("pyxdg==") "pyxdg>="))
+                     #t))
+        (sha256
+          (base32
+            "1v5yb48y3zr4s0cgkid8y1zsi6x1wrhy1jfb9axzi090ammgy700"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+         (modify-phases %standard-phases
+           (replace 'check
+             (lambda _
+               (setenv "PYTHONPATH"
+                 (string-append "./build/lib:" (getenv "PYTHONPATH"))))))))
+    (inputs `(("mycroft-mimic" ,mycroft-mimic)
+              ("pocketsphinx" ,pocketsphinx)))
+    (propagated-inputs
+      `(("python-fasteners" ,python-fasteners)
+        ("python-inflection" ,python-inflection)
+        ("python-pyxdg" ,python-pyxdg)
+        ("python-mycroft-messagebus-client"
+         ,python-mycroft-messagebus-client)
+        ("python-psutil" ,python-psutil)
+        ("python-tornado" ,python-tornado-6)
+        ("python-petact" ,python-petact)
+        ("python-precise-runner" ,python-precise-runner)
+        ("python-padaos" ,python-padaos)
+        ("python-speech-recoginition" ,python-speech-recognition)
+        ("python-padatious" ,python-padatious)
+        ("python-msk" ,python-msk)
+        ("python-pillow" ,python-pillow)
+        ("python-gtts" ,python-gtts)
+        ("python-requests-futures" ,python-requests-futures)
+        ("python-pyserial" ,python-pyserial)
+        ("python-pocketsphinx" ,python-pocketsphinx)
+        ("python-adapt-parser" ,python-adapt-parser)
+        ("python-lingua-franca" ,python-lingua-franca)
+        ("python-pyyaml" ,python-pyyaml)
+        ("python-fasteners" ,python-fasteners)
+        ("python-pyee" ,python-pyee)
+        ("python-psutil" ,python-psutil)
+        ("python-fann2" ,python-fann2)
+        ("python-pyxdg" ,python-pyxdg)
+        ("python-websocket-client" ,python-websocket-client)
+        ("python-requests" ,python-requests)
+        ("python-requests-futures"
+         ,python-requests-futures)))
+    (home-page "https://github.com/HelloChatterbox/HolmesIV")
+    (synopsis "Mycroft Core, the Mycroft Artificial Intelligence platform")
+    (description "This module provides a hackable open source voice assistant - Mycroft")
+    (license license:asl2.0)))
+
 (define-public python-mycroft-messagebus-client
   (package
     (name "python-mycroft-messagebus-client")
--
2.32.0
P
P
phodina wrote on 18 Sep 2021 21:16
[PATCH 02/19] gnu: Add python-pyee.
(name . 50663@debbugs.gnu.org)(address . 50663@debbugs.gnu.org)
F908h1zgGnHxigNPvfWOgc8OgVgxG_4Ezz_ikPC5S1crMSPh9KH09zxDaAEPfqkvVC82JkV1vwnjgQR1bHb_mNJIiQA7PYrDe-hOhq3jxQ0=@protonmail.com
This is the second patch. I unfortunately mismanaged the numbering during rebase operation. If necessary I can send the patches again or if you wrap your head around that here's the order:

0001-gnu-Add-python-requests-futures.patch
0002-gnu-Add-python-pyee.patch
0003-gnu-Add-python-fann2.patch
0004-gnu-Add-python-padaos.patch
0005-gnu-Add-python-precise-runner.patch
0006-gnu-Add-python-petact.patch
0007-gnu-Add-python-padatious.patch
0008-gnu-Add-python-lazy.patch
0009-gnu-Add-python-pako.patch
0010-gnu-Add-python-adapt-parser.patch
0011-gnu-Add-python-msm.patch
0012-gnu-Add-python-msk.patch
0013-gnu-Add-python-lingua-franca.patch
0014-gnu-Add-python-pocketsphinx.patch
0015-gnu-Add-python-gtts.patch
0016-gnu-Add-python-mycroft-messagebus-client.patch
0017-gnu-Add-mycroft-mimic.patch
0018-gnu-Add-python-speech-recognition.patch
0019-gnu-Add-python-mycroft-core.patch

Sorry for that :-)

Toggle snippet (44 lines)
* gnu/packages/python-xyz.scm (python-pyee): New variable.

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index d108389aef..c2527e915f 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -16446,6 +16446,33 @@ Record Format (DWARF).")
(define-public python2-pyev
(package-with-python2 python-pyev))

+(define-public python-pyee
+ (package
+ (name "python-pyee")
+ (version "8.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pyee" version))
+ (sha256
+ (base32
+ "0cgxbdr4zmil03wwr5fv58789i51gka8a9fxm1dgkf5xs9dwrnlj"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pytest-trio" ,python-pytest-trio)
+ ("python-pytest-asyncio" ,python-pytest-asyncio)
+ ("python-pytest-runner" ,python-pytest-runner)
+ ("python-pytest" ,python-pytest)
+ ("python-mock" ,python-mock)))
+ (propagated-inputs
+ `(("python-vcversioner" ,python-vcversioner)
+ ("python-twisted" ,python-twisted)
+ ("python-trio" ,python-trio)))
+ (home-page "https://github.com/jfhbrook/pyee")
+ (synopsis "Port of node.js's EventEmitter to python")
+ (description "Provides a port of node.js's EventEmitter to python.")
+ (license license:expat)))
+
(define-public python-imagesize
(package
(name "python-imagesize")
--
2.32.0
P
P
phodina wrote on 8 Dec 2021 12:48
Add Mycroft - Voice Assistant
(name . 50663@debbugs.gnu.org)(address . 50663@debbugs.gnu.org)
NCAS0Ded6IK9Wh8T21xbxm7w9sEFdV6MSO5JfW39o1jYoIyzKlOAJwg56n_8vOUuL4hhkKmwPPB8RlH-XNEXRBsnYQWiRWXFaoLtnx8b8YY=@protonmail.com
Hi,

I've rebased the patch set and updated the package definitions.

The aim of this patch set is to bring in the MyCroft - private and open Voice Assistant.

----
Petr
From 247ec26f040f9d6237b9ab28bd7a4acf6da8c8a7 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:15:41 +0200
Subject: [PATCH 01/20] gnu: Add python-requests-futures.

* gnu/packages/python-xyz.scm (python-requests-futures): New variable.

Toggle diff (35 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 81b99e1d2e..23fa409e1a 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -21936,6 +21936,28 @@ (define-public python-requests-file
 (define-public python2-requests-file
   (package-with-python2 python-requests-file))
 
+(define-public python-requests-futures
+  (package
+    (name "python-requests-futures")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "requests-futures" version))
+       (sha256
+        (base32
+         "0j611g1wkn98qp2b16kqz7lfz29a153jyfm02r3h8n0rpw17am1m"))))
+    (build-system python-build-system)
+    (arguments
+     ;; The test tries to open a connection to a remote server.
+     `(#:tests? #f))
+    (propagated-inputs
+     `(("python-requests" ,python-requests)))
+    (home-page "https://github.com/ross/requests-futures")
+    (synopsis "Asynchronous Python HTTP for Humans")
+    (description "Asynchronous Python HTTP for Humans.")
+    (license license:asl2.0)))
+
 (define-public python-identify
   (package
     (name "python-identify")
-- 
2.34.0
From 31f15387f18a9e50cf8df030230636bec968cbad Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:19:21 +0200
Subject: [PATCH 02/20] gnu: Add python-pyee.

* gnu/packages/python-xyz.scm (python-pyee): New variable.

Toggle diff (40 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 23fa409e1a..c6775cf522 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -17363,6 +17363,33 @@ (define-public python-pyev
 (define-public python2-pyev
   (package-with-python2 python-pyev))
 
+(define-public python-pyee
+  (package
+    (name "python-pyee")
+    (version "8.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pyee" version))
+       (sha256
+        (base32
+         "0cgxbdr4zmil03wwr5fv58789i51gka8a9fxm1dgkf5xs9dwrnlj"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-pytest-trio" ,python-pytest-trio)
+       ("python-pytest-asyncio" ,python-pytest-asyncio)
+       ("python-pytest-runner" ,python-pytest-runner)
+       ("python-pytest" ,python-pytest)
+       ("python-mock" ,python-mock)))
+    (propagated-inputs
+     `(("python-vcversioner" ,python-vcversioner)
+       ("python-twisted" ,python-twisted)
+       ("python-trio" ,python-trio)))
+    (home-page "https://github.com/jfhbrook/pyee")
+    (synopsis "Port of node.js's EventEmitter to python")
+    (description "Provides a port of node.js's EventEmitter to python.")
+    (license license:expat)))
+
 (define-public python-imagesize
   (package
     (name "python-imagesize")
-- 
2.34.0
From 953d8b2c5d353e63c1bd7a1ebfa8be6a5a4e9aa0 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:38:01 +0200
Subject: [PATCH 11/20] gnu: Add python-msm.

* gnu/packages/python-xyz.scm (python-msm): New variable.

Toggle diff (47 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 426295844a..23f111092e 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -151,6 +151,7 @@ (define-module (gnu packages python-xyz)
   #:use-module (gnu packages enchant)
   #:use-module (gnu packages file)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages geo)
   #:use-module (gnu packages ghostscript)
@@ -10787,6 +10788,32 @@ (define-public python-msgpack-transitional
 (define-public python2-msgpack
   (package-with-python2 python-msgpack))
 
+(define-public python-msm
+  (package
+    (name "python-msm")
+    (version "0.8.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "msm" version))
+       (sha256
+        (base32
+         "00z588imq7q33iv3hn83mf2cyqrbs5f6zzyfa6445ainxvskkzz2"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-fasteners" ,python-fasteners)
+       ("python-gitpython" ,python-gitpython)
+       ("python-lazy" ,python-lazy)
+       ("python-pako" ,python-pako)
+       ("python-pyxdg" ,python-pyxdg)
+       ("python-pyyaml" ,python-pyyaml)
+       ("python-requests" ,python-requests)))
+    (home-page "https://github.com/MycroftAI/mycroft-skills-manager")
+    (synopsis "Mycroft Skills Manager")
+    (description "Command line tool for interacting with the mycroft-skills
+repository.")
+    (license license:asl2.0)))
+
 (define-public python-netaddr
   (package
     (name "python-netaddr")
-- 
2.34.0
From 1a6a90388fa2b114ce62f7df3b04c0011679331b Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:22:48 +0200
Subject: [PATCH 03/20] gnu: Add python-fann2.

* gnu/packages/python-xyz.scm (python-fann2): New variable.

Toggle diff (40 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index c6775cf522..6152b82b6e 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -177,6 +177,7 @@ (define-module (gnu packages python-xyz)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages monitoring)
   #:use-module (gnu packages multiprecision)
+  #:use-module (gnu packages machine-learning)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages openstack)
@@ -18800,6 +18801,25 @@ (define-public python-factory-boy
 (define-public python2-factory-boy
   (package-with-python2 python-factory-boy))
 
+(define-public python-fann2
+  (package
+    (name "python-fann2")
+    (version "1.0.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "fann2" version))
+       (sha256
+        (base32
+         "17zv6hbq26qg9jmsshx3xnnnv203fr4cyjg4v3rgq38a5i5agv2k"))))
+    (build-system python-build-system)
+    (native-inputs `(("swig" ,swig)))
+    (propagated-inputs `(("fann" ,fann)))
+    (home-page "https://github.com/FutureLinkCorporation/fann2")
+    (synopsis "Fast Artificial Neural Network Library (FANN) Python bindings")
+    (description "Provides bindings for Fast Artificial Neural Networks 2.2.0.")
+    (license license:lgpl2.1)))
+
 (define-public python-translate-toolkit
   (package
     (name "python-translate-toolkit")
-- 
2.34.0
From fd95175e36583558956a8b9e508e3ccd66d12df6 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:26:12 +0200
Subject: [PATCH 06/20] gnu: Add python-petact.

* gnu/packages/python-xyz.scm (python-petact): New variable.

Toggle diff (31 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 82d11f04aa..6d23941899 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -9972,6 +9972,24 @@ (define-public python2-pep517
          ,@(package-arguments base)))
     (native-inputs `()))))
 
+(define-public python-petact
+  (package
+    (name "python-petact")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "petact" version))
+       (sha256
+        (base32
+         "1rjh0fjimmixbvrv6znkfrfa83ndjc4pgyfyl90iwq3az120vjsx"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/matthewscholefield/petact")
+    (synopsis "Package extraction tool")
+    (description "Library used for installing and updating compressed tar
+files.")
+    (license license:expat))) ; MIT
+
 (define-public python-pyflakes
   (package
     (name "python-pyflakes")
-- 
2.34.0
From b5fe6b583e1993cb4c11af033b724e39a13ca966 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:33:03 +0200
Subject: [PATCH 09/20] gnu: Add python-pako.

* gnu/packages/python-xyz.scm (python-pako): New variable.

Toggle diff (33 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 2b5e2a94b2..b7a816fef8 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -14630,6 +14630,26 @@ (define-public python-padatious
     (description "A neural network intent parser")
     (license license:asl2.0)))
 
+(define-public python-pako
+  (package
+    (name "python-pako")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pako" version))
+       (sha256
+        (base32
+         "07r3f86idlxb2x2mvy24fzkxyq5xalkbmk0zmqva7341pdrs0cy0"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-appdirs" ,python-appdirs)))
+    (home-page "https://github.com/MycroftAI/pako")
+    (synopsis "The universal package manager library")
+    (description
+     "Provides unified way to handle native universal package manager.")
+    (license license:asl2.0)))
+
 (define-public python2-pathlib2
   (package
     (name "python2-pathlib2")
-- 
2.34.0
From 02ce61ca029307e35509496281470eaa0a4ab14e Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:29:42 +0200
Subject: [PATCH 07/20] gnu: Add python-padatious.

* gnu/packages/python-xyz.scm (python-padatious): New variable.

Toggle diff (42 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6d23941899..d36eb615fd 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -144,6 +144,7 @@ (define-module (gnu packages python-xyz)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages dbm)
+  #:use-module (gnu packages digest)
   #:use-module (gnu packages django)
   #:use-module (gnu packages djvu)
   #:use-module (gnu packages docker)
@@ -14608,6 +14609,27 @@ (define-public python-padaos
 is a single compiled regex matcher.")
     (license license:expat)))
 
+(define-public python-padatious
+  (package
+    (name "python-padatious")
+    (version "0.4.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "padatious" version))
+       (sha256
+        (base32
+         "0xbgf75kxclacgairid8m948hrrngcxhykr1wkvav32fp58z4wg4"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-fann2" ,python-fann2)
+       ("python-padaos" ,python-padaos)
+       ("python-xxhash" ,python-xxhash)))
+    (home-page "https://github.com/MycroftAI/padatious")
+    (synopsis "Neural network intent parser")
+    (description "A neural network intent parser")
+    (license license:asl2.0)))
+
 (define-public python2-pathlib2
   (package
     (name "python2-pathlib2")
-- 
2.34.0
From 8ce1a3a51e000672e9aa45e52d934e02a0a78dad Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:32:07 +0200
Subject: [PATCH 08/20] gnu: Add python-lazy.

* gnu/packages/python-xyz.scm (python-lazy): New variable.

Toggle diff (35 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index d36eb615fd..2b5e2a94b2 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -16095,6 +16095,28 @@ (define-public python-typing-inspect
 inspection of types defined in the Python standard typing module.")
     (license license:expat)))
 
+(define-public python-lazy
+  (package
+    (name "python-lazy")
+    (version "1.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference   ; pypi release link leads to project page
+             (url "https://github.com/stefanholek/lazy")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1y3y35jr0nnfh32zgdrb4r4sf9v8k36j07z2m0g6kz7bf3azsgc5"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/stefanholek/lazy")
+    (synopsis "Lazy attributes for Python objects")
+    (description "Provides lazy attributes that are evaluated only once,
+the first time they are used.  Subsequent uses return the results of the first
+call.")
+    (license license:bsd-2)))
+
 (define-public python-lazy-object-proxy
   (package
     (name "python-lazy-object-proxy")
-- 
2.34.0
From c215af1ee2de09a03e87bf908c3e4ebac5174ce3 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:36:26 +0200
Subject: [PATCH 12/20] gnu: Add python-msk.

* gnu/packages/python-xyz.scm (python-msk): New variable.

Toggle diff (37 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 23f111092e..39c6741d2f 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10788,6 +10788,30 @@ (define-public python-msgpack-transitional
 (define-public python2-msgpack
   (package-with-python2 python-msgpack))
 
+(define-public python-msk
+  (package
+    (name "python-msk")
+    (version "0.3.16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "msk" version))
+       (sha256
+        (base32
+         "11zf2s5wdglzki2r05plx6j9gykwvbpdn8fbr3fnjz4g0vy1g9y6"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-colorama" ,python-colorama)
+       ("python-gitpython" ,python-gitpython)
+       ("python-msm" ,python-msm)
+       ("python-pygithub" ,python-pygithub)
+       ("python-requests" ,python-requests)))
+    (home-page "https://github.com/MycroftAI/mycroft-skills-kit")
+    (synopsis "Mycroft Skills Kit")
+    (description "Tool to help with creating, uploading, and upgrading Mycroft
+skills.")
+    (license license:asl2.0)))
+
 (define-public python-msm
   (package
     (name "python-msm")
-- 
2.34.0
From c716eba3bcb200935ade8022e6c9b6accd168cc0 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:38:54 +0200
Subject: [PATCH 13/20] gnu: Add python-lingua-franca.

* gnu/packages/python-xyz.scm (python-lingua-franca): New variable.

Toggle diff (42 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 39c6741d2f..527cf80903 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -20308,6 +20308,35 @@ (define-public python-linecache2
 (define-public python2-linecache2
   (package-with-python2 python-linecache2))
 
+(define-public python-lingua-franca
+  (package
+    (name "python-lingua-franca")
+    (version "0.4.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/MycroftAI/lingua-franca")
+         (commit (string-append "release/v" version))))
+       (file-name (git-file-name name version))
+       (modules '((guix build utils)))
+       (snippet '(begin
+                   ;; Use newer version of pkg
+                   (substitute* "requirements.txt"
+                     (("python-dateutil==") "python-dateutil>="))
+                   #t))
+       (sha256
+        (base32
+         "1wx1c8a2k9155z74113yn1xcs6y0zljbgan2pbbmzsvki8m0z6jn"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-dateutil" ,python-dateutil)))
+    (home-page "https://github.com/MycroftAI/lingua-franca")
+    (synopsis "Mycroft's multilingual text parsing and formatting library")
+    (description "Converts data into spoken equivalents.")
+    (license license:asl2.0)))
+
 (define-public python-traceback2
   (package
     (name "python-traceback2")
-- 
2.34.0
From 12160ba8d72c6a5738bca7cc7f2f92ea95548f49 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 20:35:12 +0200
Subject: [PATCH 17/20] gnu: Add mycroft-mimic.

* gnu/packages/speech.scm (mycroft-mimic): New variable.

Toggle diff (59 lines)
diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm
index cbc46b32b4..ad073322cf 100644
--- a/gnu/packages/speech.scm
+++ b/gnu/packages/speech.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2021 qblade <qblade@protonmail.com>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -45,6 +46,7 @@ (define-module (gnu packages speech)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
@@ -237,6 +239,36 @@ (define-public mitlm
     (home-page "https://github.com/mitlm/mitlm")
     (license license:expat)))
 
+(define-public mycroft-mimic
+  (package
+    (name "mycroft-mimic")
+    (version "1.3.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri
+               (git-reference
+                (url "https://github.com/MycroftAI/mimic1")
+                (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1agwgby9ql8r3x5rd1rgx3xp9y4cdg4pi3kqlz3vanv9na8nf3id"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("libtool" ,libtool)
+       ("automake" ,automake)
+       ("autoconf" ,autoconf)))
+    (inputs `(("alsa-lib" ,alsa-lib)
+              ("pcre2" ,pcre2)))
+    (synopsis "Mycroft's TTS engine, based on CMU's Flite (Festival Lite)")
+    (description "Mimic is a fast, lightweight Text-to-speech engine developed
+by Mycroft A.I. and VocaliD, based on Carnegie Mellon University’s Flite
+(Festival-Lite) software.  Mimic takes in text and reads it out loud to create
+a high quality voice.")
+    (home-page "https://github.com/MycroftAI/mimic1")
+    (license license:asl2.0)))
+
 (define-public speech-dispatcher
   (package
     (name "speech-dispatcher")
-- 
2.34.0
From 3f5b3fde4527c04c40aab777696061a424b31f09 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:21:07 +0200
Subject: [PATCH 20/20] gnu: Add python-mycroft-core.

* gnu/packages/python-xyz.scm (python-mycroft-core): New variable.

Toggle diff (101 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 992c6fbd1b..e236b170c2 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -206,6 +206,7 @@ (define-module (gnu packages python-xyz)
   #:use-module (gnu packages search)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages shells)
+  #:use-module (gnu packages speech)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages swig)
@@ -21685,6 +21686,86 @@ (define-public python2-more-itertools
     (propagated-inputs
      `(("python2-six" ,python2-six-bootstrap)))))
 
+(define-public python-mycroft-core
+  (package
+    (name "python-mycroft-core")
+    (version "21.2.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/MycroftAI/mycroft-core")
+         (commit (string-append "release/v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1v5yb48y3zr4s0cgkid8y1zsi6x1wrhy1jfb9axzi090ammgy700"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-requirements
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Use newer version of pkg
+             (substitute* "requirements/requirements.txt"
+               (("mycroft-messagebus-client==") "mycroft-messagebus-client>=")
+               (("tornado==") "tornado>=")
+               (("pyserial==") "pyserial>=")
+               (("psutil==") "psutil>=")
+               (("padaos==") "padaos>=")
+               (("precise-runner==") "precise-runner>=")
+               (("pocketsphinx==") "pocketsphinx>=")
+               (("python-dateutil==") "python-dateutil>=")
+               (("fasteners==") "fasteners>=")
+               (("requests-futures==") "requests-futures>=")
+               (("pillow==") "pillow>=")
+               (("PyYAML==5.4") "PyYAML>=5.3.1")
+               (("pyxdg==") "pyxdg>="))))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (setenv "PYTHONPATH"
+                       (string-append "./build/lib:" (getenv
+                                                      "PYTHONPATH")))))))))
+    (inputs `(("mycroft-mimic" ,mycroft-mimic)
+              ("pocketsphinx" ,pocketsphinx)))
+    (propagated-inputs
+     `(("python-fasteners" ,python-fasteners)
+       ("python-inflection" ,python-inflection)
+       ("python-pyxdg" ,python-pyxdg)
+       ("python-mycroft-messagebus-client"
+        ,python-mycroft-messagebus-client)
+       ("python-psutil" ,python-psutil)
+       ("python-tornado" ,python-tornado-6)
+       ("python-petact" ,python-petact)
+       ("python-precise-runner" ,python-precise-runner)
+       ("python-padaos" ,python-padaos)
+       ("python-speech-recoginition" ,python-speech-recognition)
+       ("python-padatious" ,python-padatious)
+       ("python-msk" ,python-msk)
+       ("python-pillow" ,python-pillow)
+       ("python-gtts" ,python-gtts)
+       ("python-requests-futures" ,python-requests-futures)
+       ("python-pyserial" ,python-pyserial)
+       ("python-pocketsphinx" ,python-pocketsphinx)
+       ("python-adapt-parser" ,python-adapt-parser)
+       ("python-lingua-franca" ,python-lingua-franca)
+       ("python-pyyaml" ,python-pyyaml)
+       ("python-fasteners" ,python-fasteners)
+       ("python-pyee" ,python-pyee)
+       ("python-psutil" ,python-psutil)
+       ("python-fann2" ,python-fann2)
+       ("python-pyxdg" ,python-pyxdg)
+       ("python-websocket-client" ,python-websocket-client)
+       ("python-requests" ,python-requests)
+       ("python-requests-futures"
+        ,python-requests-futures)))
+    (home-page "https://github.com/HelloChatterbox/HolmesIV")
+    (synopsis "Mycroft Core, the Mycroft Artificial Intelligence platform")
+    (description "This module provides a hackable open source voice assistant - Mycroft")
+    (license license:asl2.0)))
+
 (define-public python-mycroft-messagebus-client
   (package
     (name "python-mycroft-messagebus-client")
-- 
2.34.0
From 135d4b404bb00b10e27a9c464126d4fa02402758 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:23:50 +0200
Subject: [PATCH 04/20] gnu: Add python-padaos.

* gnu/packages/python-xyz.scm (python-padaos): New variable.

Toggle diff (31 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6152b82b6e..fd3a2e1b75 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -14571,6 +14571,24 @@ (define-public python-pathlib
 (define-public python2-pathlib
   (package-with-python2 python-pathlib))
 
+(define-public python-padaos
+  (package
+    (name "python-padaos")
+    (version "0.1.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "padaos" version))
+       (sha256
+        (base32
+         "0wkd6p3ggf3ffsg3j47fgfcfmmj5k7h5rak88mbkr1r6r35mzh1a"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/MycroftAI/padaos")
+    (synopsis "Rigid, lightweight, dead-simple intent parser")
+    (description "Converts sentences into one big chunk of regex.  Each intent
+is a single compiled regex matcher.")
+    (license license:expat)))
+
 (define-public python2-pathlib2
   (package
     (name "python2-pathlib2")
-- 
2.34.0
From 31ec8ea31331f55fae43bf2f0689be7db91e2de5 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 20:29:15 +0200
Subject: [PATCH 15/20] gnu: Add python-gtts.

* gnu/packages/python-xyz.scm (python-gtts): New variable.

Toggle diff (42 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 527cf80903..e70e21beaa 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -17289,6 +17289,35 @@ (define-public python-graphene
 with an associated set of resolve methods that know how to fetch data.")
     (license license:expat)))
 
+(define-public python-gtts
+  (package
+    (name "python-gtts")
+    (version "2.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "gTTS" version))
+       (sha256
+        (base32
+         "0g467h1501kxw4zniym03xkz3766bdp6j2j5l04p11ki4h8smkw8"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-flake8" ,python-flake8)
+       ("python-mock" ,python-mock)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-six" ,python-six)
+       ("python-testfixtures" ,python-testfixtures)))
+    (propagated-inputs
+     `(("python-click" ,python-click)
+       ("python-requests" ,python-requests)
+       ("python-six" ,python-six)))
+    (home-page "https://github.com/pndurette/gTTS")
+    (synopsis "Python interface to Google Translate text-to-speech API")
+    (description "Python library and CLI tool to interface with Google Translate
+text-to-speech API")
+    (license license:expat)))
+
 (define-public python-nautilus
   (package
     (name "python-nautilus")
-- 
2.34.0
From d567ad4e5d7f36704fc6241ae0a6791355dbf09b Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:40:47 +0200
Subject: [PATCH 14/20] gnu: Add python-pocketsphinx.

* gnu/packages/python-xyz.scm (python-pocketsphinx): New variable.

Toggle diff (51 lines)
diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm
index a7a3443707..acab5c1178 100644
--- a/gnu/packages/sphinx.scm
+++ b/gnu/packages/sphinx.scm
@@ -45,14 +45,44 @@ (define-module (gnu packages sphinx)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages swig)
   #:use-module (gnu packages time)
   #:use-module (gnu packages python-science)
   #:use-module (gnu packages graph))
 
+(define-public python-pocketsphinx
+  (package
+    (name "python-pocketsphinx")
+    (version "0.1.15")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/bambocher/pocketsphinx-python")
+             (recursive? #t)
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "18i1jw9138ldxigfcjz6rk9z2c2wc2ng2zdnkzippv45d5izkdz8"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("swig" ,swig)))
+    (propagated-inputs
+     `(("pulseaudio" ,pulseaudio)
+       ("alsa-lib" ,alsa-lib)))
+    (home-page "https://github.com/bambocher/pocketsphinx-python")
+    (synopsis "Python interface to CMU Sphinxbase and Pocketsphinx libraries")
+    (description "Python interface to CMU Sphinxbase and Pocketsphinx libraries")
+    (license license:bsd-3)))
+
 (define-public python-sphinx
   (package
     (name "python-sphinx")
-- 
2.34.0
From 3ca8914bb993b6e23ffcd5836d932d9003a6d7b0 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Sat, 18 Sep 2021 18:44:39 +0200
Subject: [PATCH 18/20] gnu: Add python-speech-recognition.

* gnu/packages/python-xyz.scm (python-speech-recognition): New variable.

Toggle diff (38 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index eb902b95a2..03f734169d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -5631,6 +5631,31 @@ (define-public python-spectra
 (define-public python2-spectra
   (package-with-python2 python-spectra))
 
+(define-public python-speech-recognition
+  (package
+    (name "python-speech-recognition")
+    (version "3.8.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Uberi/speech_recognition")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1lq6g4kl3y1b4ch3b6wik7xy743x6pp5iald0jb9zxqgyxy1zsz4"))))
+    (build-system python-build-system)
+    (arguments
+     ;; Attempts to aquire sound card
+     '(#:tests? #f))
+    (inputs `(("python-pyaudio" ,python-pyaudio)))
+    (home-page "https://github.com/Uberi/speech_recognition")
+    (synopsis "Speech recognition module for Python")
+    (description "Library for performing speech recognition, with support for
+several engines and APIs, online and offline.")
+    (license license:bsd-2)))
+
 (define-public python-pyspnego
   (package
     (name "python-pyspnego")
-- 
2.34.0
From b7494794d545306bb61a6976d0618e47d2c3a366 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:17:21 +0200
Subject: [PATCH 16/20] gnu: Add python-mycroft-messagebus-client.

* gnu/packages/python-xyz.scm (python-mycroft-messagebus-client): New variable.

Toggle diff (36 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index e70e21beaa..eb902b95a2 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -21660,6 +21660,29 @@ (define-public python2-more-itertools
     (propagated-inputs
      `(("python2-six" ,python2-six-bootstrap)))))
 
+(define-public python-mycroft-messagebus-client
+  (package
+    (name "python-mycroft-messagebus-client")
+    (version "0.9.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "mycroft-messagebus-client" version))
+       (sha256
+        (base32
+         "08vsamppk12a15yiv5ra6rr3x3psinsln7y06aw4abpj6cja8pgw"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-pyee" ,python-pyee)
+       ("python-websocket-client"
+        ,python-websocket-client)))
+    (home-page "https://github.com/MycroftAI/mycroft-messagebus-client")
+    (synopsis "Mycroft Messagebus Client")
+    (description "This module provides simple interface for the mycroft
+messagebus and can be used to connect to mycroft, send messages and react
+to messages sent by the Mycroft system.")
+    (license license:asl2.0)))
+
 (define-public python-latexcodec
   (package
     (name "python-latexcodec")
-- 
2.34.0
From 4b139255155356ef68585b794c7374f146dfc832 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:34:56 +0200
Subject: [PATCH 10/20] gnu: Add python-adapt-parser.

* gnu/packages/python-xyz.scm (python-adapt-parser): New variable.

Toggle diff (37 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b7a816fef8..426295844a 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -14267,6 +14267,30 @@ (define-public python-translitcodec
 (define-public python2-translitcodec
   (package-with-python2 python-translitcodec))
 
+(define-public python-adapt-parser
+  (package
+    (name "python-adapt-parser")
+    (version "0.5.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/MycroftAI/adapt")
+             (commit (string-append "release/v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "08ma098saysspm7bbja8ic26lqg2bibz51bzfnifdch89r30i23n"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-pyee" ,python-pyee)
+       ("python-six" ,python-six)))
+    (home-page "https://github.com/MycroftAI/adapt")
+    (synopsis "Text-to-intent parsing framework")
+    (description "Flexible and extensible way to parse natural language text
+into a structured intent.")
+    (license license:asl2.0)))
+
 (define-public python-anyqt
   (package
     (name "python-anyqt")
-- 
2.34.0
From 2e87e2e4dd0cd8a8c4cd362e459004c024685c78 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:25:02 +0200
Subject: [PATCH 05/20] gnu: Add python-precise-runner.

* gnu/packages/python-xyz.scm (python-precise-runner): New variable.

Toggle diff (41 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index fd3a2e1b75..82d11f04aa 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -135,6 +135,7 @@ (define-module (gnu packages python-xyz)
   #:use-module (gnu packages adns)
   #:use-module (gnu packages aidc)
   #:use-module (gnu packages attr)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages check)
@@ -23094,6 +23095,26 @@ (define-public python-precis-i18n
 RFC 8265 and RFC 8266.")
     (license license:expat)))
 
+(define-public python-precise-runner
+  (package
+    (name "python-precise-runner")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "precise-runner" version))
+       (sha256
+        (base32
+         "03dqjvw0mafxs5hakhvb3ah8f157n8632a54spss7w2bzc4l4ihs"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-pyaudio" ,python-pyaudio)))
+    (home-page "https://github.com/MycroftAI/mycroft-precise")
+    (synopsis "Wrapper to use Mycroft Precise Wake Word Listener")
+    (description "Audio stream monitoring wrapper which triggers an event when
+it recognizes a specific phrase.")
+    (license license:asl2.0)))
+
 (define-public python-absl-py
   (package
     (name "python-absl-py")
-- 
2.34.0
From a5466aab965cce20c7b490af7b98628769cba239 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 8 Dec 2021 12:44:47 +0100
Subject: [PATCH 19/20] gnu: python-pillow: Update to 8.4.0.

* gnu/packages/python-xyz.scm (python-pillow): Update to 8.4.0.

Toggle diff (23 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 03f734169d..992c6fbd1b 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -7018,14 +7018,14 @@ (define-public python-pikepdf
 (define-public python-pillow
   (package
     (name "python-pillow")
-    (version "8.1.1")
+    (version "8.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Pillow" version))
        (sha256
         (base32
-         "086g7nhv52wclrwnzbzs2x3nvyzs2hfq1bvgivsrp5f7r7wiiz7n"))))
+         "1vbn66rlzpqfvbca569wdvxzp7biwcnqajs674694hg1aqygiqmq"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-pytest" ,python-pytest)))
-- 
2.34.0
M
M
Morgan Smith wrote on 30 Dec 2021 09:12
control message for bug #50663
(address . control@debbugs.gnu.org)
BYAPR05MB4023F8D5B3C698DB921E7B79C5459@BYAPR05MB4023.namprd05.prod.outlook.com
retitle 50663 [PATCH] gnu: Add Mycroft Voice Assistant
quit
N
N
Nicolas Goaziou wrote on 24 Jan 23:45 +0100
Re: [bug#50663] Add Mycroft - Voice Assistant
(name . phodina via Guix-patches via)(address . guix-patches@gnu.org)
87r18wbvnq.fsf@nicolasgoaziou.fr
Hello,

phodina via Guix-patches via <guix-patches@gnu.org> writes:

Toggle quote (3 lines)
> The aim of this patch set is to bring in the MyCroft - private and
> open Voice Assistant.

Thank you.

I fixed some descriptions, removed labels from inputs, fixed compilation
with GCC 10 (for Mimic). Then I tried to apply the patch set. Alas
Mycroft core fails to build. You may want to have a look at it.

I'm sending back the updated patches to you, if that helps.

Regards,
--
Nicolas Goaziou
From a8e11183ad26ec2bc601c5a4e8265a10ce52948e Mon Sep 17 00:00:00 2001
Message-Id: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:15:41 +0200
Subject: [PATCH v2 01/19] gnu: Add python-requests-futures.

* gnu/packages/python-xyz.scm (python-requests-futures): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/python-xyz.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 8bd5f655ba..4500121e10 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -22223,6 +22223,29 @@ (define-public python-requests-file
 (define-public python2-requests-file
   (package-with-python2 python-requests-file))
 
+(define-public python-requests-futures
+  (package
+    (name "python-requests-futures")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "requests-futures" version))
+       (sha256
+        (base32
+         "0j611g1wkn98qp2b16kqz7lfz29a153jyfm02r3h8n0rpw17am1m"))))
+    (build-system python-build-system)
+    (arguments
+     ;; The test tries to open a connection to a remote server.
+     `(#:tests? #f))
+    (propagated-inputs
+     (list python-requests))
+    (home-page "https://github.com/ross/requests-futures")
+    (synopsis "Asynchronous Python HTTP for humans")
+    (description "This package is a small add-on for the Python Requests HTTP
+library.  It makes use of @code{concurrent.futures}.")
+    (license license:asl2.0)))
+
 (define-public python-identify
   (package
     (name "python-identify")
-- 
2.34.0
From f0b3d8e874ec2bba9851166bfa27cf34ca1a53fe Mon Sep 17 00:00:00 2001
Message-Id: <f0b3d8e874ec2bba9851166bfa27cf34ca1a53fe.1643064268.git.mail@nicolasgoaziou.fr>
In-Reply-To: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
References: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:19:21 +0200
Subject: [PATCH v2 02/19] gnu: Add python-pyee.

* gnu/packages/python-xyz.scm (python-pyee): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/python-xyz.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 4500121e10..2e90f540f4 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -17733,6 +17733,31 @@ (define-public python-pyev
 (define-public python2-pyev
   (package-with-python2 python-pyev))
 
+(define-public python-pyee
+  (package
+    (name "python-pyee")
+    (version "8.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pyee" version))
+       (sha256
+        (base32
+         "0cgxbdr4zmil03wwr5fv58789i51gka8a9fxm1dgkf5xs9dwrnlj"))))
+    (build-system python-build-system)
+    (native-inputs
+     (list python-pytest-trio python-pytest-asyncio python-pytest-runner
+           python-pytest python-mock))
+    (propagated-inputs
+     (list python-vcversioner python-twisted python-trio))
+    (home-page "https://github.com/jfhbrook/pyee")
+    (synopsis "Port of Node.js's EventEmitter to Python")
+    (description "Pyee supplies a @code{EventEmitter} object that is similar
+to the @code{EventEmitter} class from Node.js.  It also supplies a number of
+subclasses with added support for async and threaded programming in Python,
+such as async/await.")
+    (license license:expat)))
+
 (define-public python-imagesize
   (package
     (name "python-imagesize")
-- 
2.34.0
From 599b00e8f24ebaa8951e9510f9c2956b732dad1b Mon Sep 17 00:00:00 2001
Message-Id: <599b00e8f24ebaa8951e9510f9c2956b732dad1b.1643064268.git.mail@nicolasgoaziou.fr>
In-Reply-To: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
References: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
From: Petr Hodina <phodina@protonmail.com>
Date: Mon, 24 Jan 2022 15:56:57 +0100
Subject: [PATCH v2 03/19] gnu: Add python-fann2.

* gnu/packages/python-xyz.scm (python-fann2): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/python-xyz.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 2e90f540f4..f05827a1a4 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -177,6 +177,7 @@ (define-module (gnu packages python-xyz)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
+  #:use-module (gnu packages machine-learning)
   #:use-module (gnu packages man)
   #:use-module (gnu packages markup)
   #:use-module (gnu packages maths)
@@ -19134,6 +19135,25 @@ (define-public python-factory-boy
      current test, while only declaring the test-specific fields")
     (license license:expat)))
 
+(define-public python-fann2
+  (package
+    (name "python-fann2")
+    (version "1.0.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "fann2" version))
+       (sha256
+        (base32
+         "17zv6hbq26qg9jmsshx3xnnnv203fr4cyjg4v3rgq38a5i5agv2k"))))
+    (build-system python-build-system)
+    (native-inputs (list swig))
+    (propagated-inputs (list fann))
+    (home-page "https://github.com/FutureLinkCorporation/fann2")
+    (synopsis "Fast Artificial Neural Network library (FANN) Python bindings")
+    (description "This package provides Python bindings for Fast Artificial
+Neural Networks (FANN) 2.2.0.")
+    (license license:lgpl2.1)))
 (define-public python-translate-toolkit
   (package
     (name "python-translate-toolkit")
-- 
2.34.0
From 5abc0b770c771b54ed7fb90ef36ebee76391a3cc Mon Sep 17 00:00:00 2001
Message-Id: <5abc0b770c771b54ed7fb90ef36ebee76391a3cc.1643064268.git.mail@nicolasgoaziou.fr>
In-Reply-To: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
References: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:23:50 +0200
Subject: [PATCH v2 04/19] gnu: Add python-padaos.

* gnu/packages/python-xyz.scm (python-padaos): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/python-xyz.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index f05827a1a4..c1ea6c47f6 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -15040,6 +15040,27 @@ (define-public python-pathlib
 (define-public python2-pathlib
   (package-with-python2 python-pathlib))
 
+(define-public python-padaos
+  (package
+    (name "python-padaos")
+    (version "0.1.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "padaos" version))
+       (sha256
+        (base32
+         "0wkd6p3ggf3ffsg3j47fgfcfmmj5k7h5rak88mbkr1r6r35mzh1a"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/MycroftAI/padaos")
+    (synopsis "Rigid, lightweight, simple intent parser")
+    (description "To deploy an intent parser into production with an automated
+feedback loop, it's essential that the new data doesn't interfere with the old
+data.  It's also necessary that the parser can learn from sentences that
+closely match written English (or any other language).  That's what Padaos
+does.")
+    (license license:expat)))
+
 (define-public python2-pathlib2
   (package
     (name "python2-pathlib2")
-- 
2.34.0
From 048e7f578828ac84944de827d06d0538434aea70 Mon Sep 17 00:00:00 2001
Message-Id: <048e7f578828ac84944de827d06d0538434aea70.1643064268.git.mail@nicolasgoaziou.fr>
In-Reply-To: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
References: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:25:02 +0200
Subject: [PATCH v2 05/19] gnu: Add python-precise-runner.

* gnu/packages/python-xyz.scm (python-precise-runner): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/python-xyz.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index c1ea6c47f6..25c10752e6 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -139,6 +139,7 @@ (define-module (gnu packages python-xyz)
   #:use-module (gnu packages adns)
   #:use-module (gnu packages aidc)
   #:use-module (gnu packages attr)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages check)
@@ -23378,6 +23379,27 @@ (define-public python-precis-i18n
 RFC 8265 and RFC 8266.")
     (license license:expat)))
 
+(define-public python-precise-runner
+  (package
+    (name "python-precise-runner")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "precise-runner" version))
+       (sha256
+        (base32
+         "03dqjvw0mafxs5hakhvb3ah8f157n8632a54spss7w2bzc4l4ihs"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-pyaudio))
+    (home-page "https://github.com/MycroftAI/mycroft-precise")
+    (synopsis "Wrapper to use Mycroft Precise Wake Word Listener")
+    (description "Precise is a wake word listener.  The software monitors an
+audio stream---usually a microphone---and when it recognizes a specific phrase
+it triggers an event.")
+    (license license:asl2.0)))
+
 (define-public python-absl-py
   (package
     (name "python-absl-py")
-- 
2.34.0
From bdb397ea8b48a8de193482f0394a8f6ddda2d0f4 Mon Sep 17 00:00:00 2001
Message-Id: <bdb397ea8b48a8de193482f0394a8f6ddda2d0f4.1643064268.git.mail@nicolasgoaziou.fr>
In-Reply-To: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
References: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:26:12 +0200
Subject: [PATCH v2 06/19] gnu: Add python-petact.

* gnu/packages/python-xyz.scm (python-petact): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/python-xyz.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 25c10752e6..9be5e77be8 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10235,6 +10235,24 @@ (define-public python2-pep517
          ,@(package-arguments base)))
     (native-inputs `()))))
 
+(define-public python-petact
+  (package
+    (name "python-petact")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "petact" version))
+       (sha256
+        (base32
+         "1rjh0fjimmixbvrv6znkfrfa83ndjc4pgyfyl90iwq3az120vjsx"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/matthewscholefield/petact")
+    (synopsis "Library for installing and updating compressed tar files")
+    (description "Petact is a library used for installing and updating
+compressed tar files.")
+    (license license:expat))) ; MIT
+
 (define-public python-pyflakes
   (package
     (name "python-pyflakes")
-- 
2.34.0
From 96fa261f50a067a3b1e08d750bc875bd0f3055e6 Mon Sep 17 00:00:00 2001
Message-Id: <96fa261f50a067a3b1e08d750bc875bd0f3055e6.1643064268.git.mail@nicolasgoaziou.fr>
In-Reply-To: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
References: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:29:42 +0200
Subject: [PATCH v2 07/19] gnu: Add python-padatious.

* gnu/packages/python-xyz.scm (python-padatious): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/python-xyz.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 9be5e77be8..c8230030ff 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -148,6 +148,7 @@ (define-module (gnu packages python-xyz)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages dbm)
+  #:use-module (gnu packages digest)
   #:use-module (gnu packages django)
   #:use-module (gnu packages djvu)
   #:use-module (gnu packages docker)
@@ -15080,6 +15081,26 @@ (define-public python-padaos
 does.")
     (license license:expat)))
 
+(define-public python-padatious
+  (package
+    (name "python-padatious")
+    (version "0.4.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "padatious" version))
+       (sha256
+        (base32
+         "0xbgf75kxclacgairid8m948hrrngcxhykr1wkvav32fp58z4wg4"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-fann2 python-padaos python-xxhash))
+    (home-page "https://github.com/MycroftAI/padatious")
+    (synopsis "Neural network intent parser")
+    (description "Padatious is an efficient and agile neural network intent
+parser.  It is a core component of Mycroft AI.")
+    (license license:asl2.0)))
+
 (define-public python2-pathlib2
   (package
     (name "python2-pathlib2")
-- 
2.34.0
From d7e819a3d0803aa8bb3a361803fa60697e60f8db Mon Sep 17 00:00:00 2001
Message-Id: <d7e819a3d0803aa8bb3a361803fa60697e60f8db.1643064268.git.mail@nicolasgoaziou.fr>
In-Reply-To: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
References: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:32:07 +0200
Subject: [PATCH v2 08/19] gnu: Add python-lazy.

* gnu/packages/python-xyz.scm (python-lazy): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/python-xyz.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index c8230030ff..534aeabec2 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -16527,6 +16527,28 @@ (define-public python-typing-inspect
 inspection of types defined in the Python standard typing module.")
     (license license:expat)))
 
+(define-public python-lazy
+  (package
+    (name "python-lazy")
+    (version "1.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference            ;pypi release link leads to project page
+             (url "https://github.com/stefanholek/lazy")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1y3y35jr0nnfh32zgdrb4r4sf9v8k36j07z2m0g6kz7bf3azsgc5"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/stefanholek/lazy")
+    (synopsis "Lazy attributes for Python objects")
+    (description "This library provides lazy attributes that are evaluated
+only once, the first time they are used.  Subsequent uses return the results
+of the first call.")
+    (license license:bsd-2)))
+
 (define-public python-lazy-object-proxy
   (package
     (name "python-lazy-object-proxy")
-- 
2.34.0
From ffbd98650b530679b923fe67cdb209cb6a438c9d Mon Sep 17 00:00:00 2001
Message-Id: <ffbd98650b530679b923fe67cdb209cb6a438c9d.1643064268.git.mail@nicolasgoaziou.fr>
In-Reply-To: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
References: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:33:03 +0200
Subject: [PATCH v2 09/19] gnu: Add python-pako.

* gnu/packages/python-xyz.scm (python-pako): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/python-xyz.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 534aeabec2..6f4c88a953 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -15101,6 +15101,26 @@ (define-public python-padatious
 parser.  It is a core component of Mycroft AI.")
     (license license:asl2.0)))
 
+(define-public python-pako
+  (package
+    (name "python-pako")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pako" version))
+       (sha256
+        (base32
+         "07r3f86idlxb2x2mvy24fzkxyq5xalkbmk0zmqva7341pdrs0cy0"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-appdirs))
+    (home-page "https://github.com/MycroftAI/pako")
+    (synopsis "Universal package manager library")
+    (description
+     "Pako provides a unified way to handle native package managers.")
+    (license license:asl2.0)))
+
 (define-public python2-pathlib2
   (package
     (name "python2-pathlib2")
-- 
2.34.0
From 39abe4f0a6aefe087073d7546fffa6b22de4400e Mon Sep 17 00:00:00 2001
Message-Id: <39abe4f0a6aefe087073d7546fffa6b22de4400e.1643064269.git.mail@nicolasgoaziou.fr>
In-Reply-To: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
References: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:34:56 +0200
Subject: [PATCH v2 10/19] gnu: Add python-adapt-parser.

* gnu/packages/python-xyz.scm (python-adapt-parser): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/python-xyz.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6f4c88a953..2706dac029 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -14746,6 +14746,31 @@ (define-public python-translitcodec
 (define-public python2-translitcodec
   (package-with-python2 python-translitcodec))
 
+(define-public python-adapt-parser
+  (package
+    (name "python-adapt-parser")
+    (version "0.5.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/MycroftAI/adapt")
+             (commit (string-append "release/v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "08ma098saysspm7bbja8ic26lqg2bibz51bzfnifdch89r30i23n"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-pyee python-six))
+    (home-page "https://github.com/MycroftAI/adapt")
+    (synopsis "Text-to-intent parsing framework")
+    (description "The Adapt intent parser is a flexible and extensible intent
+definition and determination framework.  It is intended to parse natural
+language text into a structured intent that can then be invoked
+programatically.")
+    (license license:asl2.0)))
+
 (define-public python-anyqt
   (package
     (name "python-anyqt")
-- 
2.34.0
From 10c02e7b77e51e3946fff4c1ca0f9ada154fadb7 Mon Sep 17 00:00:00 2001
Message-Id: <10c02e7b77e51e3946fff4c1ca0f9ada154fadb7.1643064269.git.mail@nicolasgoaziou.fr>
In-Reply-To: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
References: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
From: Petr Hodina <phodina@protonmail.com>
Date: Mon, 24 Jan 2022 16:01:00 +0100
Subject: [PATCH v2 11/19] gnu: Add python-msm.

* gnu/packages/python-xyz.scm (python-msm): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/python-xyz.scm | 33 ++++++++++++++++++++++++++++++---
1 file changed, 30 insertions(+), 3 deletions(-)

Toggle diff (58 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 2706dac029..aec75b3ac4 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -11196,6 +11196,33 @@ (define-public python-msgpack-transitional
 (define-public python2-msgpack
   (package-with-python2 python-msgpack))
 
+(define-public python-msm
+  (package
+    (name "python-msm")
+    (version "0.8.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "msm" version))
+       (sha256
+        (base32
+         "00z588imq7q33iv3hn83mf2cyqrbs5f6zzyfa6445ainxvskkzz2"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-fasteners
+           python-gitpython
+           python-lazy
+           python-pako
+           python-pyxdg
+           python-pyyaml
+           python-requests))
+    (home-page "https://github.com/MycroftAI/mycroft-skills-manager")
+    (synopsis "Mycroft skills manager")
+    (description "This package provides a command line tool for interacting
+with the Mycroft skills repository.")
+    (license license:asl2.0)))
+
+
 (define-public python-netaddr
   (package
     (name "python-netaddr")
@@ -11205,14 +11232,14 @@ (define-public python-netaddr
        (method url-fetch)
        (uri (pypi-uri "netaddr" version))
        (sha256
-         (base32
-          "0hx2npi0wnhwlcybilgwlddw6qffx1mb7a3sj4p9s7bvl33mgk6n"))))
+        (base32
+         "0hx2npi0wnhwlcybilgwlddw6qffx1mb7a3sj4p9s7bvl33mgk6n"))))
     (build-system python-build-system)
     (arguments `(#:tests? #f)) ;; No tests.
     (home-page "https://github.com/drkjam/netaddr/")
     (synopsis "Pythonic manipulation of  network addresses")
     (description
-      "A Python library for representing and manipulating IPv4, IPv6, CIDR, EUI
+     "A Python library for representing and manipulating IPv4, IPv6, CIDR, EUI
 and MAC network addresses.")
     (license license:bsd-3)))
 
-- 
2.34.0
From 53b3478c8df3f8bbe39a6215322afc2a314437a5 Mon Sep 17 00:00:00 2001
Message-Id: <53b3478c8df3f8bbe39a6215322afc2a314437a5.1643064269.git.mail@nicolasgoaziou.fr>
In-Reply-To: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
References: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:36:26 +0200
Subject: [PATCH v2 12/19] gnu: Add python-msk.

* gnu/packages/python-xyz.scm (python-msk): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/python-xyz.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index aec75b3ac4..ff33d7adba 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -11196,6 +11196,27 @@ (define-public python-msgpack-transitional
 (define-public python2-msgpack
   (package-with-python2 python-msgpack))
 
+(define-public python-msk
+  (package
+    (name "python-msk")
+    (version "0.3.16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "msk" version))
+       (sha256
+        (base32
+         "11zf2s5wdglzki2r05plx6j9gykwvbpdn8fbr3fnjz4g0vy1g9y6"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-colorama python-gitpython python-msm python-pygithub
+           python-requests))
+    (home-page "https://github.com/MycroftAI/mycroft-skills-kit")
+    (synopsis "Mycroft Skills Kit")
+    (description "MSK is a tool to help with creating, uploading, and
+upgrading Mycroft skills.")
+    (license license:asl2.0)))
+
 (define-public python-msm
   (package
     (name "python-msm")
-- 
2.34.0
From 4a52fa1d3009007376af92d01f8574dbebd11dd0 Mon Sep 17 00:00:00 2001
Message-Id: <4a52fa1d3009007376af92d01f8574dbebd11dd0.1643064269.git.mail@nicolasgoaziou.fr>
In-Reply-To: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
References: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:38:54 +0200
Subject: [PATCH v2 13/19] gnu: Add python-lingua-franca.

* gnu/packages/python-xyz.scm (python-lingua-franca): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/python-xyz.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index ff33d7adba..ede522d61e 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -20542,6 +20542,36 @@ (define-public python-linecache2
 (define-public python2-linecache2
   (package-with-python2 python-linecache2))
 
+(define-public python-lingua-franca
+  (package
+    (name "python-lingua-franca")
+    (version "0.4.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/MycroftAI/lingua-franca")
+         (commit (string-append "release/v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1wx1c8a2k9155z74113yn1xcs6y0zljbgan2pbbmzsvki8m0z6jn"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'relax-requirements
+           (lambda _
+             (substitute* "requirements.txt"
+               (("python-dateutil==") "python-dateutil>=")))))))
+    (propagated-inputs
+     (list python-dateutil))
+    (home-page "https://github.com/MycroftAI/lingua-franca")
+    (synopsis "Mycroft's multilingual text parsing and formatting library")
+    (description "Lingua Franca converts data into spoken equivalents.")
+    (license license:asl2.0)))
+
 (define-public python-traceback2
   (package
     (name "python-traceback2")
-- 
2.34.0
From 79fea0ab52d4f390f3640c173644e2ae421af656 Mon Sep 17 00:00:00 2001
Message-Id: <79fea0ab52d4f390f3640c173644e2ae421af656.1643064269.git.mail@nicolasgoaziou.fr>
In-Reply-To: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
References: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
From: Petr Hodina <phodina@protonmail.com>
Date: Mon, 24 Jan 2022 16:03:28 +0100
Subject: [PATCH v2 14/19] gnu: Add python-pocketsphinx.

* gnu/packages/sphinx.scm (python-pocketsphinx): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/sphinx.scm | 31 ++++++++++++++++++++++++++++++-
1 file changed, 30 insertions(+), 1 deletion(-)

Toggle diff (60 lines)
diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm
index dfbc3194ea..c62f28b24e 100644
--- a/gnu/packages/sphinx.scm
+++ b/gnu/packages/sphinx.scm
@@ -46,15 +46,44 @@ (define-module (gnu packages sphinx)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages swig)
   #:use-module (gnu packages time)
   #:use-module (gnu packages python-science)
   #:use-module (gnu packages graph))
 
+(define-public python-pocketsphinx
+  (package
+    (name "python-pocketsphinx")
+    (version "0.1.15")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/bambocher/pocketsphinx-python")
+             (recursive? #t)
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "18i1jw9138ldxigfcjz6rk9z2c2wc2ng2zdnkzippv45d5izkdz8"))))
+    (build-system python-build-system)
+    (native-inputs
+     (list python-pytest swig))
+    (propagated-inputs
+     (list pulseaudio alsa-lib))
+    (home-page "https://github.com/bambocher/pocketsphinx-python")
+    (synopsis "Python interface to CMU Sphinxbase and Pocketsphinx libraries")
+    (description "This package provides a Python interface to CMU Sphinxbase
+and Pocketsphinx libraries.")
+    (license license:bsd-3)))
+
 (define-public python-sphinx
   (package
     (name "python-sphinx")
@@ -97,7 +126,7 @@ (define-public python-sphinx
            python-sphinxcontrib-serializinghtml))
     (native-inputs
      (list graphviz
-           imagemagick ;for "convert"
+           imagemagick                  ;for "convert"
            python-html5lib
            python-mock
            python-nose
-- 
2.34.0
From 8f8dcdbd69c76beed20bdc88c86a5033d54f8dcc Mon Sep 17 00:00:00 2001
Message-Id: <8f8dcdbd69c76beed20bdc88c86a5033d54f8dcc.1643064269.git.mail@nicolasgoaziou.fr>
In-Reply-To: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
References: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
From: Petr Hodina <phodina@protonmail.com>
Date: Mon, 24 Jan 2022 16:05:19 +0100
Subject: [PATCH v2 15/19] gnu: Add python-gtts.

* gnu/packages/python-xyz.scm (python-gtts): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/python-xyz.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index ede522d61e..e8b7139073 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -17705,6 +17705,35 @@ (define-public python-graphene
      with an associated set of resolve methods that know how to fetch data.")
     (license license:expat)))
 
+(define-public python-gtts
+  (package
+    (name "python-gtts")
+    (version "2.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "gTTS" version))
+       (sha256
+        (base32
+         "0g467h1501kxw4zniym03xkz3766bdp6j2j5l04p11ki4h8smkw8"))))
+    (build-system python-build-system)
+    (native-inputs
+     (list python-flake8
+           python-mock
+           python-pytest
+           python-pytest-cov
+           python-six
+           python-testfixtures))
+    (propagated-inputs
+     (list python-click
+           python-requests
+           python-six))
+    (home-page "https://github.com/pndurette/gTTS")
+    (synopsis "Python interface to Google Translate text-to-speech API")
+    (description "This package provides a Python library and CLI tool to
+interface with Google Translate text-to-speech API.")
+    (license license:expat)))
+
 (define-public python-random2
   (package
     (name "python-random2")
-- 
2.34.0
From 31b5eee023b1bd62775157d281bfb34134fdd6fc Mon Sep 17 00:00:00 2001
Message-Id: <31b5eee023b1bd62775157d281bfb34134fdd6fc.1643064269.git.mail@nicolasgoaziou.fr>
In-Reply-To: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
References: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:17:21 +0200
Subject: [PATCH v2 16/19] gnu: Add python-mycroft-messagebus-client.

* gnu/packages/python-xyz.scm (python-mycroft-messagebus-client): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/python-xyz.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index e8b7139073..f3c05232e1 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -21943,6 +21943,27 @@ (define-public python2-more-itertools
     (propagated-inputs
      `(("python2-six" ,python2-six-bootstrap)))))
 
+(define-public python-mycroft-messagebus-client
+  (package
+    (name "python-mycroft-messagebus-client")
+    (version "0.9.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "mycroft-messagebus-client" version))
+       (sha256
+        (base32
+         "08vsamppk12a15yiv5ra6rr3x3psinsln7y06aw4abpj6cja8pgw"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-pyee python-websocket-client))
+    (home-page "https://github.com/MycroftAI/mycroft-messagebus-client")
+    (synopsis "Mycroft Messagebus Client")
+    (description "This module provides simple interface for the mycroft
+messagebus and can be used to connect to mycroft, send messages and react
+to messages sent by the Mycroft system.")
+    (license license:asl2.0)))
+
 (define-public python-latexcodec
   (package
     (name "python-latexcodec")
-- 
2.34.0
From a8500175c36ce90a97d78d9bfcfbcb1db40af9cc Mon Sep 17 00:00:00 2001
Message-Id: <a8500175c36ce90a97d78d9bfcfbcb1db40af9cc.1643064269.git.mail@nicolasgoaziou.fr>
In-Reply-To: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
References: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 20:35:12 +0200
Subject: [PATCH v2 17/19] gnu: Add mycroft-mimic.

* gnu/packages/speech.scm (mycroft-mimic): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/speech.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (57 lines)
diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm
index f6ca6099de..98b6ebffe2 100644
--- a/gnu/packages/speech.scm
+++ b/gnu/packages/speech.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2021 qblade <qblade@protonmail.com>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -45,6 +46,7 @@ (define-module (gnu packages speech)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
@@ -232,6 +234,34 @@ (define-public mitlm
     (home-page "https://github.com/mitlm/mitlm")
     (license license:expat)))
 
+(define-public mycroft-mimic
+  (package
+    (name "mycroft-mimic")
+    (version "1.3.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri
+               (git-reference
+                (url "https://github.com/MycroftAI/mimic1")
+                (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1agwgby9ql8r3x5rd1rgx3xp9y4cdg4pi3kqlz3vanv9na8nf3id"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("CFLAGS=-fcommon"))) ;for GCC-10
+    (native-inputs
+     (list pkg-config libtool automake autoconf))
+    (inputs (list alsa-lib pcre2))
+    (synopsis "Mycroft's TTS engine, based on CMU's Flite (Festival Lite)")
+    (description "Mimic is a fast, lightweight Text-to-speech engine developed
+by Mycroft A.I. and VocaliD, based on Carnegie Mellon University’s Flite
+(Festival-Lite) software.  Mimic takes in text and reads it out loud to create
+a high quality voice.")
+    (home-page "https://github.com/MycroftAI/mimic1")
+    (license license:asl2.0)))
+
 (define-public speech-dispatcher
   (package
     (name "speech-dispatcher")
-- 
2.34.0
From cc13f0700b7b2c3f49e76a45b38f3f7a72a0d6a5 Mon Sep 17 00:00:00 2001
Message-Id: <cc13f0700b7b2c3f49e76a45b38f3f7a72a0d6a5.1643064269.git.mail@nicolasgoaziou.fr>
In-Reply-To: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
References: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
From: Petr Hodina <phodina@protonmail.com>
Date: Mon, 24 Jan 2022 16:07:12 +0100
Subject: [PATCH v2 18/19] gnu: Add python-speech-recognition.

* gnu/packages/python-xyz.scm (python-speech-recognition): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/python-xyz.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index f3c05232e1..4353797e83 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -5787,6 +5787,31 @@ (define-public python-spectra
 @end enumerate\n")
     (license license:expat)))
 
+(define-public python-speech-recognition
+  (package
+    (name "python-speech-recognition")
+    (version "3.8.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Uberi/speech_recognition")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1lq6g4kl3y1b4ch3b6wik7xy743x6pp5iald0jb9zxqgyxy1zsz4"))))
+    (build-system python-build-system)
+    (arguments
+     ;; Attempts to aquire sound card
+     '(#:tests? #f))
+    (inputs (list python-pyaudio))
+    (home-page "https://github.com/Uberi/speech_recognition")
+    (synopsis "Speech recognition module for Python")
+    (description "This package is a Python library for performing speech
+recognition, with support for several engines and APIs, online and offline.")
+    (license license:bsd-2)))
+
 (define-public python-pyspnego
   (package
     (name "python-pyspnego")
-- 
2.34.0
From 51e054b823c60442317bc3487a0c769f14de9d1f Mon Sep 17 00:00:00 2001
Message-Id: <51e054b823c60442317bc3487a0c769f14de9d1f.1643064269.git.mail@nicolasgoaziou.fr>
In-Reply-To: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
References: <a8e11183ad26ec2bc601c5a4e8265a10ce52948e.1643064268.git.mail@nicolasgoaziou.fr>
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:21:07 +0200
Subject: [PATCH v2 19/19] gnu: Add python-mycroft-core.

* gnu/packages/python-xyz.scm (python-mycroft-core): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
---
gnu/packages/python-xyz.scm | 80 +++++++++++++++++++++++++++++++++++++
1 file changed, 80 insertions(+)

Toggle diff (100 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 4353797e83..1834152c3c 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -210,6 +210,7 @@ (define-module (gnu packages python-xyz)
   #:use-module (gnu packages search)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages shells)
+  #:use-module (gnu packages speech)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages swig)
@@ -21968,6 +21969,85 @@ (define-public python2-more-itertools
     (propagated-inputs
      `(("python2-six" ,python2-six-bootstrap)))))
 
+(define-public python-mycroft-core
+  (package
+    (name "python-mycroft-core")
+    (version "21.2.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/MycroftAI/mycroft-core")
+         (commit (string-append "release/v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "02r0vxw0hsihnvviwn4fyspwky3kwq42f9z455q1s70k0snzhb28"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-requirements
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Use newer version of pkg
+             (substitute* "requirements/requirements.txt"
+               (("mycroft-messagebus-client==") "mycroft-messagebus-client>=")
+               (("tornado==") "tornado>=")
+               (("pyserial==") "pyserial>=")
+               (("psutil==") "psutil>=")
+               (("padaos==") "padaos>=")
+               (("precise-runner==") "precise-runner>=")
+               (("pocketsphinx==") "pocketsphinx>=")
+               (("python-dateutil==") "python-dateutil>=")
+               (("fasteners==") "fasteners>=")
+               (("requests-futures==") "requests-futures>=")
+               (("pillow==") "pillow>=")
+               (("PyYAML==5.4") "PyYAML>=5.3.1")
+               (("pyxdg==") "pyxdg>=")
+               (("requests>=2.20.0,<2.26.0") "requests>=2.20.0"))))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (setenv "PYTHONPATH"
+                       (string-append "./build/lib:"
+                                      (or (getenv "PYTHONPATH")
+                                          "")))))))))
+    (inputs (list mycroft-mimic pocketsphinx))
+    (propagated-inputs
+     (list python-fasteners
+           python-inflection
+           python-pyxdg
+           python-mycroft-messagebus-client
+           python-psutil
+           python-tornado-6
+           python-petact
+           python-precise-runner
+           python-padaos
+           python-speech-recognition
+           python-padatious
+           python-msk
+           python-pillow
+           python-gtts
+           python-requests-futures
+           python-pyserial
+           python-pocketsphinx
+           python-adapt-parser
+           python-lingua-franca
+           python-pyyaml
+           python-fasteners
+           python-pyee
+           python-psutil
+           python-fann2
+           python-pyxdg
+           python-websocket-client
+           python-requests
+           python-requests-futures))
+    (home-page "https://github.com/HelloChatterbox/HolmesIV")
+    (synopsis "Mycroft Core, the Mycroft Artificial Intelligence platform")
+    (description "This module provides a hackable open source voice assistant - Mycroft")
+    (license license:asl2.0)))
+
 (define-public python-mycroft-messagebus-client
   (package
     (name "python-mycroft-messagebus-client")
-- 
2.34.0
E
E
Efraim Flashner wrote on 25 Jan 11:49 +0100
(name . Nicolas Goaziou)(address . mail@nicolasgoaziou.fr)
Ye/VvVG2FWBFUE8a@3900XT
On Mon, Jan 24, 2022 at 11:45:13PM +0100, Nicolas Goaziou wrote:
Toggle quote (19 lines)
> Hello,
>
> phodina via Guix-patches via <guix-patches@gnu.org> writes:
>
> > The aim of this patch set is to bring in the MyCroft - private and
> > open Voice Assistant.
>
> Thank you.
>
> I fixed some descriptions, removed labels from inputs, fixed compilation
> with GCC 10 (for Mimic). Then I tried to apply the patch set. Alas
> Mycroft core fails to build. You may want to have a look at it.
>
> I'm sending back the updated patches to you, if that helps.
>
> Regards,
> --
> Nicolas Goaziou

I made some changes to python-mycroft-core but I couldn't get it to pass
the sanity-check or the test suite. I've attached my changes. Also make
sure you sort the inputs alphabetically, I found at least a duplicate
python-pyxdg. Also some of the patches include a line or two of
unrelated indentation changes in other packages.

--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
Toggle diff (102 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 1834152c3c..b9c4529cd5 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -21986,63 +21986,61 @@ (define-public python-mycroft-core
          "02r0vxw0hsihnvviwn4fyspwky3kwq42f9z455q1s70k0snzhb28"))))
     (build-system python-build-system)
     (arguments
-     `(#:phases
+     `(#:tests? #f      ; TODO
+       #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-requirements
            (lambda* (#:key inputs #:allow-other-keys)
-             ;; Use newer version of pkg
+             ;; Use newer version of packages.
+             (setenv "MYCROFT_LOOSE_REQUIREMENTS" "1")
              (substitute* "requirements/requirements.txt"
-               (("mycroft-messagebus-client==") "mycroft-messagebus-client>=")
-               (("tornado==") "tornado>=")
-               (("pyserial==") "pyserial>=")
-               (("psutil==") "psutil>=")
-               (("padaos==") "padaos>=")
-               (("precise-runner==") "precise-runner>=")
-               (("pocketsphinx==") "pocketsphinx>=")
-               (("python-dateutil==") "python-dateutil>=")
-               (("fasteners==") "fasteners>=")
-               (("requests-futures==") "requests-futures>=")
-               (("pillow==") "pillow>=")
-               (("PyYAML==5.4") "PyYAML>=5.3.1")
-               (("pyxdg==") "pyxdg>=")
                (("requests>=2.20.0,<2.26.0") "requests>=2.20.0"))))
+         (replace 'sanity-check
+           (lambda args
+             ;(setenv "PYTHONPATH"
+             ;        (string-append "./build/lib:"
+             ;                       (or (getenv "PYTHONPATH")
+             ;                           "")))
+             (apply (assoc-ref %standard-phases 'sanity-check) args)))
          (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
+           (lambda* (#:key tests? #:allow-other-keys #:rest args)
              (when tests?
                (setenv "PYTHONPATH"
                        (string-append "./build/lib:"
                                       (or (getenv "PYTHONPATH")
-                                          "")))))))))
+                                          "")))
+               (apply (assoc-ref %standard-phases 'check) args)))))))
     (inputs (list mycroft-mimic pocketsphinx))
     (propagated-inputs
-     (list python-fasteners
+     (list python-adapt-parser
+           python-dateutil
+           python-fann2
+           python-fasteners
+           python-gtts
            python-inflection
-           python-pyxdg
+           python-lingua-franca
+           python-msk
+           python-msm
            python-mycroft-messagebus-client
-           python-psutil
-           python-tornado-6
-           python-petact
-           python-precise-runner
            python-padaos
-           python-speech-recognition
            python-padatious
-           python-msk
+           python-petact
            python-pillow
-           python-gtts
-           python-requests-futures
-           python-pyserial
            python-pocketsphinx
-           python-adapt-parser
-           python-lingua-franca
-           python-pyyaml
-           python-fasteners
+           python-psutil
+           python-pyaudio
            python-pyee
-           python-psutil
-           python-fann2
            python-pyxdg
-           python-websocket-client
+           python-pyyaml
+           python-pyserial
+           python-precise-runner
            python-requests
-           python-requests-futures))
+           python-requests-futures
+           python-speech-recognition
+           python-tornado-6
+           python-websocket-client))
+    (native-inputs
+     (list python-pytest))
     (home-page "https://github.com/HelloChatterbox/HolmesIV")
     (synopsis "Mycroft Core, the Mycroft Artificial Intelligence platform")
     (description "This module provides a hackable open source voice assistant - Mycroft")
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmHv1boACgkQQarn3Mo9
g1GvCRAAuXAf/pkBB7Z11VKrewBDfJkpm6yp+UUoyHtCHtwuBe3IhmBw4kyLDB2m
20NRBB/5UtkgpwLP0SZ7u7dzbf90wEQRZbqBYCe8Fq8fx0CCQM4G1aDp9GX16Ii6
UE+9RGBvqgi5uC0viokxIP6n4KTBs77e/kac942Vkwb7q2a1ryf7+gjvj2CU88gs
X99kg41Nr/9yF/Eh6jONOPoB8us+P64kuL4cuxFEkpnzKig0vjKxvG0GN0BTre/l
nlKQhnerZ56LSE0frlcOOYTwCD+OpBWIplCJRlEl8DYhbFuM7eCEVB3HM5xrRbu8
bzie+oDRZGnkdJ5UcU8fSEJSgWLgg9UPrlxrPRvUbCY+/bNGqNM5ho3Q3foa/l6W
I5KhTJpnpBcegE9Tt3V4Szriz3OvwbNXjtYL0b7PZAIt+iqygNsHS2hWOz75aGQ4
mhzHE6DPXYIQKtbTMa5TE76nC5P+ebQHF5Xc4Z7rrvXNZUBneWaekzQg9Vh0y/JH
pGcXCVhJA+5YA7g9nB+M/0IhT32s9vrhUUZIJtKKEbDm4k8bTFkdHNMX405N1Jzr
GpYNXveMZN2v1CHw/GLZGiaPM0xFgiqNbf3QpBHpKquXrIlN8yyMXtdkwuZHfZYo
Jy/eBzc0Rr/DTwPhBsDPOvsLOmEBhXwArjOUN/vtB8oSfm1DLfM=
=VlMw
-----END PGP SIGNATURE-----


P
P
phodina wrote on 26 Jan 13:53 +0100
(name . Efraim Flashner)(address . efraim@flashner.co.il)
JPhhxQuVdnbXirJAA3WuVSURoutH_KgJ7hEsLoiglUMxdljsXjHIRElWaChVfXAIrFkI7Gaz29EBhqRcVEVbosHbBKsCe1qe6zeOuaW3_-w=@protonmail.com
Hi Efraim and Nicolas,

Toggle quote (43 lines)
> On Mon, Jan 24, 2022 at 11:45:13PM +0100, Nicolas Goaziou wrote:
>
> > Hello,
> >
> > phodina via Guix-patches via guix-patches@gnu.org writes:
> >
> > > The aim of this patch set is to bring in the MyCroft - private and
> > >
> > > open Voice Assistant.
> >
> > Thank you.
> >
> > I fixed some descriptions, removed labels from inputs, fixed compilation
> >
> > with GCC 10 (for Mimic). Then I tried to apply the patch set. Alas
> >
> > Mycroft core fails to build. You may want to have a look at it.
> >
> > I'm sending back the updated patches to you, if that helps.
> >
> > Regards,
> > --------
> >
> > Nicolas Goaziou
>
> I made some changes to python-mycroft-core but I couldn't get it to pass
>
> the sanity-check or the test suite. I've attached my changes. Also make
>
> sure you sort the inputs alphabetically, I found at least a duplicate
>
> python-pyxdg. Also some of the patches include a line or two of
>
> unrelated indentation changes in other packages.
>
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Efraim Flashner efraim@flashner.co.il רנשלפ םירפא
>
> GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
>
> Confidentiality cannot be guaranteed on emails sent or received unencrypted

Thanks for the review and updated patches. I'll check the reason why it won't build and failing tests.

----
Petr
P
P
phodina wrote on 15 Feb 15:37 +0100
[PATCH v3 1/2] gnu: Add python-xdg.
(name . 50663@debbugs.gnu.org)(address . 50663@debbugs.gnu.org)
buIpKGDFKHj2syAWDtX3ittSW7KKIKhFmkhKpJ8U8GhWEjoWaqY0tvW7qq-IhbINsxXSjH8DpNPF2S37xjw4dlDgZ2lu_h8SkhfzuO4r120=@protonmail.com
Hi,

here are updated patches based on the review. Also I manged to fix the issues in the sanity-check phase.

However, there are still some points to be solved
https://github.com/MycroftAI/mycroft-core/issues/3074as the ALSA lib error blocks the tests. I also don't know how to mock the audio subsystem in tests properly.

FIY I renamed the package from python-mycroft-core to mycroft-core and move it to gnu/packages/speech.scm as this IMHO reflect more the purpose of this package.

Python module xdg was added as it's referenced in the code.

----
Petr
Attachment: file
From c5a8653641595e549369a9ff008194a4a749f98e Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Tue, 15 Feb 2022 09:07:15 +0100
Subject: [PATCH v3 1/2] gnu: Add python-xdg.

* gnu/packages/python-xyz.scm (python-xdg): New variable.

Toggle diff (30 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index feab9c7b50..d95fc12465 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -14511,6 +14511,23 @@ (define-public python-pyfiglet
 in pure Python.")
     (license license:expat)))
 
+(define-public python-xdg
+  (package
+    (name "python-xdg")
+    (version "5.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "xdg" version))
+        (sha256
+          (base32 "0v6hmhjqlc6km284lr14kc4h5rl6xva231q1lsr8hq7crhk9yqda"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/srstevenson/xdg")
+    (synopsis "Implementation of the XDG Base Directory Specification")
+    (description "This package provides implementation of the XDG Base Directory
+Specification.")
+    (license license:isc)))
+
 (define-public python-xdo
   (package
     (name "python-xdo")
-- 
2.34.0
From 25a9106faf2d9bd34fb48b689d39232a01a90cba Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 30 Jul 2021 17:21:07 +0200
Subject: [PATCH v3 2/2] gnu: Add mycroft-core.

* gnu/packages/speech.scm (mycroft-core): New variable.

Toggle diff (200 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index d95fc12465..020855fb2a 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -210,6 +210,7 @@ (define-module (gnu packages python-xyz)
   #:use-module (gnu packages search)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages shells)
+  #:use-module (gnu packages speech)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages swig)
diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm
index 98b6ebffe2..1851728d72 100644
--- a/gnu/packages/speech.scm
+++ b/gnu/packages/speech.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2021 qblade <qblade@protonmail.com>
-;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
+;;; Copyright © 2021, 2022 Petr Hodina <phodina@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,28 +32,43 @@ (define-module (gnu packages speech)
   #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)            ;for 'which'
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages curl)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages emacs)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gstreamer)
+  #:use-module (gnu packages icu4c)
+  #:use-module (gnu packages image)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages libffi)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages machine-learning)
+  #:use-module (gnu packages mp3)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages python-web)
+  #:use-module (gnu packages screen)
+  #:use-module (gnu packages sphinx)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages texinfo)
-  #:use-module (gnu packages textutils))
+  #:use-module (gnu packages textutils)
+  #:use-module (gnu packages time)
+  #:use-module (gnu packages xiph))
 
 (define-public flite
   (package
@@ -652,6 +667,127 @@ (define-public sphinxbase
 manipulating acoustic feature and audio files.")
     (license license:bsd-4)))
 
+(define-public mycroft-core
+  (package
+    (name "mycroft-core")
+    (version "21.2.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/MycroftAI/mycroft-core")
+                    (commit (string-append "release/v" version))))
+              (file-name (git-file-name name version))
+              (patches (search-patches "mycroft-core-remove-venv.patch"))
+              (sha256
+               (base32
+                "02r0vxw0hsihnvviwn4fyspwky3kwq42f9z455q1s70k0snzhb28"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f ; Currently failing due to ALSA lib
+	               ; https://github.com/MycroftAI/mycroft-core/issues/3074
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'patch-requirements
+                    (lambda* (#:key inputs outputs #:allow-other-keys)
+                      (let ((mycroft-home (string-append (assoc-ref outputs
+                                                                    "out")
+                                                         "/opt/mycroft")))
+                        (mkdir-p mycroft-home)
+                        ;; Fix home Mycroft directory (used for e.g. skills)
+                        (substitute* "scripts/mycroft-use.sh"
+                          (("/opt/mycroft") mycroft-home))
+                        (substitute* "scripts/my-info.sh"
+                          (("/opt/mycroft") mycroft-home))
+                        (substitute* "mycroft/skills/mycroft_skill/mycroft_skill.py"
+                          (("/opt/mycroft") mycroft-home))
+                        (substitute* "mycroft/configuration/mycroft.conf"
+                          (("/opt/mycroft") mycroft-home))
+                        (substitute* "mycroft/util/file_utils.py"
+                          (("/opt/mycroft") mycroft-home))
+                        (substitute* "test/unittests/tts/test_mimic_tts.py"
+                          (("/opt/mycroft") mycroft-home))
+                        (substitute* "test/unittests/api/test_api.py"
+                          (("/opt/mycroft") mycroft-home))
+                        (substitute* "test/integrationtests/skills/test_all_skills.py"
+                          (("/opt/mycroft") mycroft-home))
+                        (substitute* "README.md"
+                          (("/opt/mycroft") mycroft-home))
+                        ;; Fix mimic binary path
+                        (substitute* "mycroft/tts/mimic_tts.py"
+                          (("bin_ = config.*") (string-append "bin_ = \""
+                                                              (assoc-ref
+                                                               inputs
+                                                               "mycroft-mimic")
+                                                              "/bin/mimic\"
+"))
+                          (("os.path.join\\(MYCROFT_ROOT_PATH.*") ""))
+                        ;; Fix sanity-check errors
+                        (substitute* "setup.py"
+                          (("client\\.ws") "client.client"))
+                        (substitute* "mycroft/client/text/text_client.py"
+                          (("\\.gui_server") "mycroft.client.text.gui_server"))
+                        (substitute* "mycroft/client/text/__main__.py"
+                          (("\\.text_client")
+                           "mycroft.client.text.text_client"))
+                        ;; Use newer version of pkg
+                        (setenv "MYCROFT_LOOSE_REQUIREMENTS" "1")
+                        (substitute* "requirements/requirements.txt"
+                          (("requests>=2.20.0,<2.26.0") "requests>=2.20.0")))))
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys
+                              #:rest args)
+                      (when tests?
+                        (setenv "HOME" "/tmp")
+                        (setenv "PYTHONPATH"
+                                (string-append "./build/lib:"
+                                               (or (getenv "PYTHONPATH") "")))
+                        (apply (assoc-ref %standard-phases
+                                          'check) args)))))))
+    (native-inputs (list python-pytest swig))
+    (inputs (list curl
+                  fann
+                  flac
+                  icu4c
+                  libffi
+                  libjpeg-turbo
+                  mpg123
+                  mycroft-mimic
+                  portaudio
+                  pocketsphinx
+                  pulseaudio
+                  screen))
+    (propagated-inputs (list python-adapt-parser
+                             python-dateutil
+                             python-fann2
+                             python-fasteners
+                             python-gtts
+                             python-inflection
+                             python-lingua-franca
+                             python-msk
+                             python-msm
+                             python-mycroft-messagebus-client
+                             python-padaos
+                             python-padatious
+                             python-petact
+                             python-pillow
+                             python-pocketsphinx
+                             python-precise-runner
+                             python-psutil
+                             python-pyaudio
+                             python-pyee
+                             python-pyserial
+                             python-pyxdg
+                             python-pyyaml
+                             python-requests
+                             python-requests-futures
+                             python-speech-recognition
+                             python-tornado-6
+                             python-websocket-client
+                             python-xdg))
+    (home-page "https://github.com/HelloChatterbox/HolmesIV")
+    (synopsis "Mycroft Core, the Mycroft Artificial Intelligence platform")
+    (description "This module provides a hackable voice assistant - Mycroft")
+    (license license:asl2.0)))
+
 (define-public pocketsphinx
   (package
     (name "pocketsphinx")
-- 
2.34.0
?