[PATCH] gnu: Add julius.

  • Done
  • quality assurance status badge
Details
3 participants
  • Tobias Geerinckx-Rice
  • nly
  • Ricardo Wurmus
Owner
unassigned
Submitted by
nly
Severity
normal
N
(address . guix-patches@gnu.org)
3d5daf0540406554d3082f94fdc6079c@disroot.org
Julius is a speech recognition tool. Package uses a custom license.

From e01acf44822c57cf2af4678007ddd6a70b61ce1e Mon Sep 17 00:00:00 2001
From: Amar Singh <nly@disroot.org>
Date: Sun, 21 Apr 2019 19:37:37 +0530
Subject: [PATCH] gnu: Add julius.

* gnu/packages/speech.scm (julius): New variable.
---
gnu/packages/speech.scm | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)

Toggle diff (60 lines)
diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm
index 2d6c63e3f9..a99be8a0aa 100644
--- a/gnu/packages/speech.scm
+++ b/gnu/packages/speech.scm
@@ -33,9 +33,11 @@
#:use-module (gnu packages gcc)
#:use-module (gnu packages glib)
#:use-module (gnu packages linux)
+ #: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 sdl)
#:use-module (gnu packages textutils))
(define-public espeak
@@ -119,6 +121,43 @@ It is based on the eSpeak engine and supports spectral and Klatt formant
synthesis, and the ability to use MBROLA voices.")
(license license:gpl3+)))
+(define-public julius
+ (package
+ (name "julius")
+ (version "8c60cb8c")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/julius-speech/julius")
+ (commit version)))
+ (file-name
+ (git-file-name name version))
+ (sha256
+ (base32
+ "11qbp9kid251lx6li4fv1r6l0pixxcs1m00sax1z057bhcv4jc7a"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'check))))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("zlib" ,zlib)
+ ("sdl2" ,sdl2)
+ ("perl" ,perl)))
+ (home-page "https://github.com/julius-speech/")
+ (synopsis "Open-Source Large Vocabulary Continuous Speech
+Recognition Engine")
+ (description
+ "Julius is a high-performance, small-footprint large vocabulary continuous
+ speech recognition (LVCSR) decoder software for speech-related researchers and
+developers.")
+ (license
+ (license:non-copyleft "http://julius.osdn.jp/LICENSE.txt"
+ "Julius-Modified-BSD-4Clause"))))
+
(define-public mitlm
(package
(name "mitlm")
--
2.21.0
Attachment: file
T
T
Tobias Geerinckx-Rice wrote on 25 Apr 2019 05:29
(address . 35423@debbugs.gnu.org)
87tvem225s.fsf@nckx
nly,

Thanks for the patch! Unfortunately, the indentation's buggered.
How did you create/send it?

nly@disroot.org wrote:
Toggle quote (39 lines)
> Julius is a speech recognition tool. Package uses a custom
> license.
>
> From e01acf44822c57cf2af4678007ddd6a70b61ce1e Mon Sep 17
> 00:00:00 2001
> From: Amar Singh <nly@disroot.org>
> Date: Sun, 21 Apr 2019 19:37:37 +0530
> Subject: [PATCH] gnu: Add julius.
>
> * gnu/packages/speech.scm (julius): New variable.
> ---
> gnu/packages/speech.scm | 39
> +++++++++++++++++++++++++++++++++++++++
> 1 file changed, 39 insertions(+)
>
> diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm
> index 2d6c63e3f9..a99be8a0aa 100644
> --- a/gnu/packages/speech.scm
> +++ b/gnu/packages/speech.scm
> @@ -33,9 +33,11 @@
> #:use-module (gnu packages gcc)
> #:use-module (gnu packages glib)
> #:use-module (gnu packages linux)
> + #: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 sdl)
> #:use-module (gnu packages textutils))
> (define-public espeak
> @@ -119,6 +121,43 @@ It is based on the eSpeak engine and
> supports spectral and Klatt formant
> synthesis, and the ability to use MBROLA voices.")
> (license license:gpl3+)))
> +(define-public julius
> + (package
> + (name "julius")
> + (version "8c60cb8c")

Package versions must be monotonically increasing over time so
Guix (and users) can determine which is newer. Git commits
aren't.

We also prefer to package upstream releases whenever possible, and
I see there's a 4.5 release on GitHub. Would that do?

If not, can you use GIT-VERSION (with "4.5" as the first argument)
instead? Examples abound in (gnu packages).

Toggle quote (10 lines)
> + (source
> + (origin
> + (method git-fetch)
> + (uri
> + (git-reference
> + (url "https://github.com/julius-speech/julius")
> + (commit version)))
> + (file-name
> + (git-file-name name version))

This can remain unchanged even if you'd switch to GIT-VERSION.

Toggle quote (14 lines)
> + (sha256
> + (base32
> + "11qbp9kid251lx6li4fv1r6l0pixxcs1m00sax1z057bhcv4jc7a"))))
> + (build-system gnu-build-system)
> + (arguments
> + `(#:phases
> + (modify-phases %standard-phases
> + (delete 'check))))
> + (inputs
> + `(("alsa-lib" ,alsa-lib)
> + ("zlib" ,zlib)
> + ("sdl2" ,sdl2)
> + ("perl" ,perl)))

Nitpick: might as wel sort these before they go in.

Toggle quote (2 lines)
According to the README, the ‘official’ home page is just


Toggle quote (3 lines)
> + (synopsis "Open-Source Large Vocabulary Continuous Speech
> +Recognition Engine")

Everything in Guix is ‘Open Source’ (not a term we should be
promoting anyway :-) so we don't mention it in synopses or
descriptions.

I don't think the capitalisation is helpful (even if ‘LVCSR’ were
a common initialism, ‘Engine’ wouldn't be capitalised).

Toggle quote (7 lines)
> + (description
> + "Julius is a high-performance, small-footprint large
> vocabulary continuous
> + speech recognition (LVCSR) decoder software for speech-related
> researchers and
> +developers.")

Here you can use @acronym{LVCSR, large vocabulary continuous
speech recognition} if you like.

This description is awfully short. Since you're familiar with the
software, would you mind expanding it? You can re-use the most
relevant parts of the README or other documentation.

Toggle quote (4 lines)
> + (license
> + (license:non-copyleft "http://julius.osdn.jp/LICENSE.txt"
> + "Julius-Modified-BSD-4Clause"))))

Hmm. I'm not sure if clauses 3 and 5 could be problematic. Has
this licence been previously discussed elsewhere in the FSDG
world?

Thanks!

T G-R
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQT12iAyS4c9C3o4dnINsP+IT1VteQUCXMEpjwAKCRANsP+IT1Vt
eSOeAP0QyqgtKVPa5N7BYncAQXF8z20gDFZ4M8WDWXZJc4Ch0wD/ZMfolLLYqox0
slm/f6cKrjpND0rEMgodNHEsMauGMwk=
=A9q1
-----END PGP SIGNATURE-----

N
[PATCH] gnu: Add julius.
(address . 35423@debbugs.gnu.org)
52e174f4e91974bc416b9c465ae31d48@disroot.org
Toggle quote (45 lines)
> nly,

> Thanks for the patch! Unfortunately, the indentation's buggered.
> How did you create/send it?

> nly@disroot.org (mailto:nly@disroot.org) wrote:
> > Julius is a speech recognition tool. Package uses a custom
> > license.
> >
> > From e01acf44822c57cf2af4678007ddd6a70b61ce1e Mon Sep 17
> > 00:00:00 2001
> > From: Amar Singh <nly@disroot.org (mailto:nly@disroot.org)>
> > Date: Sun, 21 Apr 2019 19:37:37 +0530
> > Subject: [PATCH] gnu: Add julius.
> >
> > * gnu/packages/speech.scm (julius): New variable.
> > ---
> > gnu/packages/speech.scm | 39
> > +++++++++++++++++++++++++++++++++++++++
> > 1 file changed, 39 insertions(+)
> >
> > diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm
> > index 2d6c63e3f9..a99be8a0aa 100644
> > --- a/gnu/packages/speech.scm
> > +++ b/gnu/packages/speech.scm
> > @@ -33,9 +33,11 @@
> > #:use-module (gnu packages gcc)
> > #:use-module (gnu packages glib)
> > #:use-module (gnu packages linux)
> > + #: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 sdl)
> > #:use-module (gnu packages textutils))
> > (define-public espeak
> > @@ -119,6 +121,43 @@ It is based on the eSpeak engine and
> > supports spectral and Klatt formant
> > synthesis, and the ability to use MBROLA voices.")
> > (license license:gpl3+)))
> > +(define-public julius
> > + (package
> > + (name "julius")
> > + (version "8c60cb8c")

Web mail must've wrapped the text.

Toggle quote (22 lines)
> Package versions must be monotonically increasing over time so
> Guix (and users) can determine which is newer. Git commits
> aren't.

> We also prefer to package upstream releases whenever possible, and
> I see there's a 4.5 release on GitHub. Would that do?

> If not, can you use GIT-VERSION (with "4.5" as the first argument)
> instead? Examples abound in (gnu packages).

> > + (source
> > + (origin
> > + (method git-fetch)
> > + (uri
> > + (git-reference
> > + (url "https://github.com/julius-speech/julius (https://github.com/julius-speech/julius)")
> > + (commit version)))
> > + (file-name
> > + (git-file-name name version))

> This can remain unchanged even if you'd switch to GIT-VERSION.

Using git-version now, (git-version "4.5" "1" commit). The commit is indeed version 4.5.

Toggle quote (46 lines)
> > + (sha256
> > + (base32
> > + "11qbp9kid251lx6li4fv1r6l0pixxcs1m00sax1z057bhcv4jc7a"))))
> > + (build-system gnu-build-system)
> > + (arguments
> > + `(#:phases
> > + (modify-phases %standard-phases
> > + (delete 'check))))
> > + (inputs
> > + `(("alsa-lib" ,alsa-lib)
> > + ("zlib" ,zlib)
> > + ("sdl2" ,sdl2)
> > + ("perl" ,perl)))

> Nitpick: might as wel sort these before they go in.

> > + (home-page "https://github.com/julius-speech (https://github.com/julius-speech/)")

> According to the README, the ‘official’ home page is just

> https://github.com/julius-speech/julius (https://github.com/julius-speech/julius)

> > + (synopsis "Open-Source Large Vocabulary Continuous Speech
> > +Recognition Engine")

> Everything in Guix is ‘Open Source’ (not a term we should be
> promoting anyway :-) so we don't mention it in synopses or
> descriptions.

> I don't think the capitalisation is helpful (even if ‘LVCSR’ were
> a common initialism, ‘Engine’ wouldn't be capitalised).

> > + (description
> > + "Julius is a high-performance, small-footprint large
> > vocabulary continuous
> > + speech recognition (LVCSR) decoder software for speech-related
> > researchers and
> > +developers.")

> Here you can use @acronym{LVCSR, large vocabulary continuous
> speech recognition} if you like.

> This description is awfully short. Since you're familiar with the
> software, would you mind expanding it? You can re-use the most
> relevant parts of the README or other documentation.

Synopsis is lowercase now, Added one more sentence to description. Use
@(acronym ..) in description.

Toggle quote (12 lines)
> > + (license
> > + (license:non-copyleft "http://julius.osdn.jp/LICENSE.txt (http://julius.osdn.jp/LICENSE.txt)"
> > + "Julius-Modified-BSD-4Clause"))))

> Hmm. I'm not sure if clauses 3 and 5 could be problematic. Has
> this licence been previously discussed elsewhere in the FSDG
> world?
>
> Thanks!

> T G-R

Yes, Julius is free software as of Version 4.2.2. It's been discussed at
Fedora project: https://fedoraproject.org/wiki/Licensing/Julius(https://fedoraproject.org/wiki/Licensing/Julius)

See attachment for patch. Alternatively: http://nly.info.tm:9001/guix/gnu-add-julius.patch(http://nly.info.tm:9001/guix/gnu-add-julius.patch)

Cheers,
Amar Singh<nly@disroot.org (mailto:nly@disroot.org)>
Attachment: file
R
R
Ricardo Wurmus wrote on 6 May 2019 17:29
(address . nly@disroot.org)(address . 35423@debbugs.gnu.org)
87h8a7fvo2.fsf@elephly.net
The license says:

3. When you publish or present any results by using the Software, you
must explicitly mention your use of "Large Vocabulary Continuous
Speech Recognition Engine Julius".

This looks like a problem. Also see

Aside from this, I see that you delete the check phase. Could you
explain why?

--
Ricardo
N
(address . 35423@debbugs.gnu.org)
87pnovjvm0.fsf@disroot.org
May 6, 2019 9:00 PM, "Ricardo Wurmus" <rekado@elephly.net> wrote:

Toggle quote (9 lines)
> The license says:
>
> 3. When you publish or present any results by using the Software, you
> must explicitly mention your use of "Large Vocabulary Continuous
> Speech Recognition Engine Julius".
>
> This looks like a problem. Also see
> https://github.com/julius-speech/julius/issues/29.

Then let's close the bug?

Toggle quote (3 lines)
> Aside from this, I see that you delete the check phase. Could you
> explain why?

There are no tests in the project(Makefile).

Toggle quote (3 lines)
> --
> Ricardo

Thanks
R
R
Ricardo Wurmus wrote on 7 May 2019 07:02
(name . nly)(address . nly@disroot.org)(address . 35423-done@debbugs.gnu.org)
87zhnyeu27.fsf@elephly.net
Toggle quote (5 lines)
>> Aside from this, I see that you delete the check phase. Could you
>> explain why?
>
> There are no tests in the project(Makefile).

In that case please use #:tests? #f and add a comment that says that
there are no tests.

Toggle quote (11 lines)
>> The license says:
>>
>> 3. When you publish or present any results by using the Software, you
>> must explicitly mention your use of "Large Vocabulary Continuous
>> Speech Recognition Engine Julius".
>>
>> This looks like a problem. Also see
>> https://github.com/julius-speech/julius/issues/29.
>
> Then let's close the bug?

Unfortunately, it does look like this is an unenforcable usage
restriction that is incompatible with free software. I encourage you to
comment on that upstream issue. For now I’m closing this. Let’s hope
that soon this will become free software!

Despite this negative outcome I’d like to thank you for your work on
this!

--
Ricardo
Closed
?