Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mbrola: init at 3.3 #93401

Merged
merged 2 commits into from Feb 19, 2021
Merged

mbrola: init at 3.3 #93401

merged 2 commits into from Feb 19, 2021

Conversation

davidak
Copy link
Member

@davidak davidak commented Jul 18, 2020

Motivation for this change

espeak voices sound terrible. it might get a little better with mbrola

Closes #45580

Unsolved problems

espeak-ng don't find mbrola unless it's also installed. adding it as a dependency has not solved it

[davidak@ethmoid:~/code/nixpkgs]$ espeak -v mb/mb-de1 "ich mag züge"
mbrola: mbrola: No such file or directory
mbrowrap error: mbrola exited with status 1
Error: Could not load the specified mbrola voice file.

when i install mbrola, it don't finds the voices in /home/davidak/.nix-profile/share/mbrola. can we do anything about that except from waiting on upstream to solve it? numediart/MBROLA#23

[davidak@ethmoid:~/code/nixpkgs]$ espeak -v mb/mb-de1 "ich mag züge"
mbrola: FATAL ERROR : cannot find file /usr/share/mbrola/voices/de1 !
mbrowrap error: mbrola closed stderr and did not exit
Error: Could not load the specified mbrola voice file.

maybe @jtojnar has some idea?

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@symphorien
Copy link
Member

see also #45580

@jtojnar
Copy link
Contributor

jtojnar commented Jul 18, 2020

Yeah, the voices paths need to be solved in espeak, see the old PR.

@davidak
Copy link
Member Author

davidak commented Jul 18, 2020

It works now!

Here is a demonstration of the german voices. (it's still very bad)

https://peertube.social/videos/watch/285ff782-3b68-45b4-92e6-e2c17cb642e8

I'm not sure if it's OK to enable mbrola by default in espeak-ng, since it adds 648 MB to the closure. But without it it is not really usable. @aske any opinion?

I don't see a way to package the voices separately, since the path is hardcoded in the patch.

@davidak davidak marked this pull request as ready for review July 18, 2020 14:19
@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/prs-ready-for-review/3032/250

@SuperSandro2000 SuperSandro2000 mentioned this pull request Nov 29, 2020
9 tasks
@davidak
Copy link
Member Author

davidak commented Dec 7, 2020

I resolved the merge conflict.

@SuperSandro2000
Copy link
Member

Please do not merge master to resolve a merge conflict. This is the quick and dirty way but the proper way of rebasing and changing the line where the merge conflict is happening is required.

@davidak
Copy link
Member Author

davidak commented Dec 8, 2020

Sorry, didn't know GitHub does it that way. Will do it properly soon.

@davidak davidak force-pushed the mbrola branch 2 times, most recently from 82cbe12 to 76299a3 Compare December 8, 2020 16:02
@davidak
Copy link
Member Author

davidak commented Dec 8, 2020

Now it's properly rebased. I have also tested it again.

builder for '/nix/store/l5wz7zhwvbnzkqyc24cgx1sciickh8yh-chromium-unwrapped-89.0.4343.0.drv' failed with exit code 1; last 10 log lines:
  tar: chromium-89.0.4343.0/third_party/libphonenumber/dist/resources/geocoding/pt/244.txt: Cannot write: No space left on device
  tar: chromium-89.0.4343.0/third_party/libphonenumber/dist/resources/geocoding/pt/245.txt: Cannot write: No space left on device
  tar: chromium-89.0.4343.0/third_party/libphonenumber/dist/resources/geocoding/pt/351.txt: Cannot write: No space left on device
  tar: chromium-89.0.4343.0/third_party/libphonenumber/dist/resources/geocoding/pt/239.txt: Cannot write: No space left on device
  tar: chromium-89.0.4343.0/third_party/libphonenumber/dist/resources/geocoding/pt/55.txt: Cannot write: No space left on device
  tar: chromium-89.0.4343.0/third_party/libphonenumber/dist/resources/geocoding/de/32.txt: Cannot write: No space left on device
  tar: chromium-89.0.4343.0/third_party/libphonenumber/dist/resources/geocoding/de/49.txt: Cannot write: No space left on device
  tar: chromium-89.0.4343.0/third_party/libphonenumber/dist/resources/geocoding/de/41.txt: Cannot write: No space left on device
  tar: Exiting with failure status due to previous errors
  do not know how to unpack source archive /nix/store/3ywbdy67xqisia5k3i7y8f0l0dr2p3c9-chromium-89.0.4343.0.tar.xz
cannot build derivation '/nix/store/i3hqazyipf7hng1mkbdhbk4fnv5agw14-chromium-dev-89.0.4343.0.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/3728zpgs9viid2dphlyviczpk1j7nvdh-env.drv': 6 dependencies couldn't be built
[32 built (6 failed), 560 copied (7160.8 MiB), 3410.5 MiB DL]
error: build of '/nix/store/3728zpgs9viid2dphlyviczpk1j7nvdh-env.drv' failed
https://github.com/NixOS/nixpkgs/pull/93401
6 packages failed to build:
chromium chromiumBeta chromiumDev navit tts ungoogled-chromium

13 packages built:
dasher direwolf espeak gnome3.orca google-chrome google-chrome-beta google-chrome-dev mbrola pantheon.elementary-session-settings python37Packages.phonemizer python38Packages.phonemizer python39Packages.phonemizer speechd

@davidak
Copy link
Member Author

davidak commented Feb 17, 2021

I rebased and tested again.

@SuperSandro2000 can you merge quickly before it diverges again?

To test:

[davidak@gaming:~/code/nixpkgs]$ nix run -f /home/davidak/code/nixpkgs/ espeak

[davidak@gaming:~/code/nixpkgs]$ for i in {1..8}; do echo "mb/mb-de$i"; espeak -v mb/mb-de$i "Er hat übermächtige Käsefüße!"; done
mb/mb-de1
mb/mb-de2
mb/mb-de3
mb/mb-de4
mb/mb-de5
mb/mb-de6
mb/mb-de7
mb/mb-de8

You should hear different voices.

@davidak davidak force-pushed the mbrola branch 2 times, most recently from ea29f1f to 0faa2cd Compare February 18, 2021 05:46
@SuperSandro2000
Copy link
Member

This is a semi-automatic executed nixpkgs-review with nixpkgs-review-checks extension. It is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
If you have any questions or problems please reach out to SuperSandro2000 on IRC.

Result of nixpkgs-review pr 93401 run on x86_64-linux 1

1 package failed to build and already failed to build on hydra master:
  • navit: log was empty
3 packages failed to build and are new build failures:
  • chromium: log was empty
  • puppeteer-cli: log was empty
  • ungoogled-chromium: log was empty
13 packages built:
  • dasher
  • direwolf
  • espeak (espeak-ng)
  • orca (gnome3.orca)
  • google-chrome
  • google-chrome-beta
  • google-chrome-dev
  • mbrola
  • pantheon.elementary-session-settings
  • python37Packages.phonemizer
  • python38Packages.phonemizer
  • python39Packages.phonemizer
  • speechd

The following issues got detected with the above build packages.
Please fix at least the ones listed with your changed packages:

dasher:

gpl2 is a deprecated license, check if project uses gpl2Plus or gpl2Only and change meta.license accordingly.

Near pkgs/applications/accessibility/dasher/default.nix:50:5:

   |
50 |     license = lib.licenses.gpl2;
   |     ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/unclear-gpl.md

direwolf:

gpl2 is a deprecated license, check if project uses gpl2Plus or gpl2Only and change meta.license accordingly.

Near pkgs/applications/radio/direwolf/default.nix:44:5:

   |
44 |     license = licenses.gpl2;
   |     ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/unclear-gpl.md
perl is a build tool so it likely goes to nativeBuildInputs, not buildInputs.

Near pkgs/applications/radio/direwolf/default.nix:19:3:

   |
19 |   buildInputs = [
   |   ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/build-tools-in-build-inputs.md
Please add a comment on the line above, explaining the purpose of this patch.
Near pkgs/applications/radio/direwolf/default.nix:24:5:

   |
24 |     ./udev-fix.patch
   |     ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/missing-patch-comment.md
Unused argument: glibc.
Near pkgs/applications/radio/direwolf/default.nix:1:57:

  |
1 | { lib, stdenv, fetchFromGitHub, cmake, alsaLib, espeak, glibc, gpsd
  |                                                         ^
google-chrome-beta:

installPhase should probably contain runHook preInstall and runHook postInstall.

Near pkgs/applications/networking/browsers/google-chrome/default.nix:94:3:

   |
94 |   installPhase = ''
   |   ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/missing-phase-hooks.md

google-chrome-dev:

installPhase should probably contain runHook preInstall and runHook postInstall.

Near pkgs/applications/networking/browsers/google-chrome/default.nix:94:3:

   |
94 |   installPhase = ''
   |   ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/missing-phase-hooks.md

google-chrome:

installPhase should probably contain runHook preInstall and runHook postInstall.

Near pkgs/applications/networking/browsers/google-chrome/default.nix:94:3:

   |
94 |   installPhase = ''
   |   ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/missing-phase-hooks.md

mbrola:

Unused argument: autoconf.
Near pkgs/applications/audio/mbrola/default.nix:1:33:

  |
1 | { stdenv, lib, fetchFromGitHub, autoconf, automake, which, libtool, pkg-config }:
  |                                 ^

Unused argument: automake.
Near pkgs/applications/audio/mbrola/default.nix:1:43:

  |
1 | { stdenv, lib, fetchFromGitHub, autoconf, automake, which, libtool, pkg-config }:
  |                                           ^

Unused argument: which.
Near pkgs/applications/audio/mbrola/default.nix:1:53:

  |
1 | { stdenv, lib, fetchFromGitHub, autoconf, automake, which, libtool, pkg-config }:
  |                                                     ^

Unused argument: libtool.
Near pkgs/applications/audio/mbrola/default.nix:1:60:

  |
1 | { stdenv, lib, fetchFromGitHub, autoconf, automake, which, libtool, pkg-config }:
  |                                                            ^

Unused argument: pkg-config.
Near pkgs/applications/audio/mbrola/default.nix:1:69:

  |
1 | { stdenv, lib, fetchFromGitHub, autoconf, automake, which, libtool, pkg-config }:
  |                                                                     ^
navit:

gpl2 is a deprecated license, check if project uses gpl2Plus or gpl2Only and change meta.license accordingly.

Near pkgs/applications/misc/navit/default.nix:86:5:

   |
86 |     license = licenses.gpl2;
   |     ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/unclear-gpl.md
Package does not have a maintainer. Consider adding yourself?

Near pkgs/applications/misc/navit/default.nix:87:5:

   |
87 |     maintainers = [ ];
   |     ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/maintainers-missing.md
error: no-flags-spaces
cmakeFlags cannot contain spaces, please use cmakeFlagsArray in Bash.

Near pkgs/applications/misc/navit/default.nix:43:3:

   |
43 |   cmakeFlags = [
   |   ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/no-flags-spaces.md
Please add a comment on the line above, explaining the purpose of this patch.
Near pkgs/applications/misc/navit/default.nix:36:15:

   |
36 |   patches = [ ./CMakeLists.txt.patch ];
   |               ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/missing-patch-comment.md

orca:

Please add a comment on the line above, explaining the purpose of this patch.
Near pkgs/applications/misc/orca/default.nix:48:5:

   |
48 |     (substituteAll {
   |     ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/missing-patch-comment.md

pantheon.elementary-session-settings:

lgpl3 is a deprecated license, check if project uses lgpl3Plus or lgpl3Only and change meta.license accordingly.

Near pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix:159:5:

    |
159 |     license = licenses.lgpl3;
    |     ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/unclear-gpl.md
Unused argument: substituteAll.
Near pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix:4:3:

  |
4 | , substituteAll
  |   ^

Unused argument: at-spi2-core.
Near pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix:14:3:

   |
14 | , at-spi2-core
   |   ^
puppeteer-cli:

Package does not have a maintainer. Consider adding yourself?

Near pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix:359:7:

    |
359 |       meta = {
    |       ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/maintainers-missing.md
rsync is a build tool so it likely goes to nativeBuildInputs, not buildInputs.

Near pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix:292:7:

    |
292 |       buildInputs = [ yarn nodejs rsync ] ++ extraBuildInputs;
    |       ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/build-tools-in-build-inputs.md
yarn is a build tool so it likely goes to nativeBuildInputs, not buildInputs.

Near pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix:292:7:

    |
292 |       buildInputs = [ yarn nodejs rsync ] ++ extraBuildInputs;
    |       ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/build-tools-in-build-inputs.md
Unused argument: version.
Near pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix:67:5:

   |
67 |     version,
   |     ^
python37Packages.phonemizer:

Please add a comment on the line above, explaining the purpose of this patch.
Near pkgs/development/python-modules/phonemizer/default.nix:36:5:

   |
36 |     ./remove-intertwined-festival-test.patch
   |     ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/missing-patch-comment.md
Unused argument: python3Packages.
Near pkgs/development/python-modules/phonemizer/default.nix:5:3:

  |
5 | , python3Packages
  |   ^

Unused argument: pkgs.
Near pkgs/development/python-modules/phonemizer/default.nix:6:3:

  |
6 | , pkgs
  |   ^

Unused argument: pytestrunner.
Near pkgs/development/python-modules/phonemizer/default.nix:12:3:

   |
12 | , pytestrunner
   |   ^
python38Packages.phonemizer:

Please add a comment on the line above, explaining the purpose of this patch.
Near pkgs/development/python-modules/phonemizer/default.nix:36:5:

   |
36 |     ./remove-intertwined-festival-test.patch
   |     ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/missing-patch-comment.md
Unused argument: python3Packages.
Near pkgs/development/python-modules/phonemizer/default.nix:5:3:

  |
5 | , python3Packages
  |   ^

Unused argument: pkgs.
Near pkgs/development/python-modules/phonemizer/default.nix:6:3:

  |
6 | , pkgs
  |   ^

Unused argument: pytestrunner.
Near pkgs/development/python-modules/phonemizer/default.nix:12:3:

   |
12 | , pytestrunner
   |   ^
python39Packages.phonemizer:

Please add a comment on the line above, explaining the purpose of this patch.
Near pkgs/development/python-modules/phonemizer/default.nix:36:5:

   |
36 |     ./remove-intertwined-festival-test.patch
   |     ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/missing-patch-comment.md
Unused argument: python3Packages.
Near pkgs/development/python-modules/phonemizer/default.nix:5:3:

  |
5 | , python3Packages
  |   ^

Unused argument: pkgs.
Near pkgs/development/python-modules/phonemizer/default.nix:6:3:

  |
6 | , pkgs
  |   ^

Unused argument: pytestrunner.
Near pkgs/development/python-modules/phonemizer/default.nix:12:3:

   |
12 | , pytestrunner
   |   ^
speechd:

Please add a comment on the line above, explaining the purpose of this patch.
Near pkgs/development/libraries/speechd/default.nix:50:5:

   |
50 |     (substituteAll {
   |     ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/missing-patch-comment.md

davidak and others added 2 commits February 19, 2021 16:39
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
@jtojnar
Copy link
Contributor

jtojnar commented Feb 19, 2021

Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants