Open zangetsudo opened 6 years ago
Hi,
Above looks a bit weird but it's hard to tell when the configure script is hand edited. It looks like something is up with the PCRE2 calls (used for utf8 regexes) I would test the following
/dependencies.sh --prefix="/opt/mimic/install"
./autogen.sh
mkdir build && cd build
PKG_CONFIG_PATH=/opt/mimic/install/lib/pkgconfig ../configure --prefix=/opt/mimic/install
make
make test
Setting the PKG_CONFIG_PATH variable should allow the configure script to automatically find the pcre2 install by the dependencies.sh sript
I applied a commit on mimic-core worth backporting for this issue. https://github.com/MycroftAI/mimic-core/commit/9ac3af579266a323dbfdd23762d42e6d67ebf886
In that commit I fixed some failures on the test you mention due to different line ending conventions in windows systems. Seeing your dos2unix usage I am suspicious they can be related. Åke, I have no time this next month, it would be great if you could port that commit here. Could you?
I'll give it a go tonight and we'll see :)
dos2unix is need because the above steps failed all the time. i really doubt your guys have tested it on Linux. buy the way, the output of minic is about 145M, is it possible to fit the embedded device by cutting it off?
zeehio, thx for your commit. but it's for mimic-core, not mimic.. is there any patch for the mimic??
I've ported it over and will create a PR after a couple of tests.
Linux is the main platform we're running on (at least it's my only) so it's being run extensively on Linux (mainly debian based distros)
If you want a smaller binary you should disable the precompilation of some voices. The single biggest voice is vid_gb_ap
so adding the --disable-vid_gb_ap
should reduce the binary size significantly. (Down to 34M)
hi, forslund, it's very nice you commented in time. there are a few people do this now days. i will check that and feed you back. the voice which come from mimic is very nice and thanks for your great project. one more question. how many languages does it support and will the binary(maybe 34M) after cut off can do the same thing as the bigger one exactly? i checked Chinese, but failed, i thank it related to the utf8 in the first post from you, though. will check it again after your patch comes up.
You can try the backport-zeehio-winfix
branch with the relevant changes backported https://github.com/MycroftAI/mimic/tree/backport-zeehio-winfix
I'll still have to examine why the windows crosscompile is broken on travis.
In this build only English is supported. We're moving on to a plugin based structure (designed by @zeehio) to make language integration more easy. That has support for Spanish (and French) in addition to English.
yep, i will give it a try so no Chinese is support? is it in schedule anyway??
We don't have a specific plan for language support, we will be adding languages as we (and by we
I mean mostly @zeehio since he's the one responsible for most of that work so far) go along and will accept language contributions from the community.
I'll try to separately answer most of the points in this issue:
mimic
binary and try the different voices. Once you have the voice you like, use configure flags to disable the other voices: ./configure --disable-voices-all --enable-*your_voice*
. For instance, you could do ./configure --disable-voices-all --enable-cmu_us_slt
. You can use ./configure --help
to see the commands to enable each voice. This will change when we move from the monolitic mimic
to the mimic-core+plugins
approach (we are in the transition).winbuild_shared
travis job could be disabled for now.@zeehio I'll go ahead and disable that test then and I'll look into the wine issue or disable that part of the test.
Using -O3 -march=native CFLAGS, --disable-voices-all --enable-cmu_us_slt configure options (x86_64), my binary is 6.1mb, strip'd it's down to 4.9mb.
On ubuntu, libpcre2-dev is needed to satisfy the configure check.
wow!! 4.9M. that's nice. i cannot believe it can be cut off from 145M to 4.9M i will try it anyway
Built fresh today from a pull of the repo. mimic = compiled version, mimic-openmp is the strip'd version.
eltocino@cranky:/opt/mimic$ ls -l mimic -rwxrwxr-x 1 eltocino eltocino 6257552 Oct 27 00:52 mimic eltocino@cranky:/opt/mimic$ ./mimic -lv Voices available: slt eltocino@cranky:/opt/mimic$ ls -l mimic-openmp -rwxrwxr-x 1 eltocino eltocino 5073936 Oct 27 00:53 mimic-openmp eltocino@cranky:/opt/mimic$ ./mimic-openmp -lv Voices available: slt eltocino@cranky:/opt/mimic$ time ./mimic-openmp -v slt -t "Now we are engaged in a great civil war, testing whether that nation, or any nation so conceived and so dedicated, can long endure. We are met on a great battle-field of that war. We have come to dedicate a portion of that field, as a final resting place for those who here gave their lives that that nation might live. It is altogether fitting and proper that we should do this." times faster than real-time: 0.990325 (20.230000 seconds of speech synthesized in 20.427628)
real 0m20.431s user 0m0.340s sys 0m0.024s
eltocino@cranky:/opt/mimic$ time ./mimic -v slt -t "Now we are engaged in a great civil war, testing whether that nation, or any nation so conceived and so dedicated, can long endure. We are met on a great battle-field of that war. We have come to dedicate a portion of that field, as a final resting place for those who here gave their lives that that nation might live. It is altogether fitting and proper that we should do this." times faster than real-time: 1.009409 (20.230000 seconds of speech synthesized in 20.041431)
real 0m20.046s user 0m0.352s sys 0m0.032s
I've just follow this steps on an Ubuntu 18.04
sudo apt-get install gcc make pkg-config automake libtool libasound2-dev
git clone https://github.com/MycroftAI/mimic.git
cd mimic
./dependencies.sh --prefix="/usr/local"
./autogen.sh
./configure --prefix="/usr/local"
make
make check
And on the last step I get the same error on _FAIL: unittests/stringtest:
make[3]: Entering directory '/tmp/mimic' PASS: unittests/hrg_test PASS: unittests/regex_test FAIL: unittests/string_test PASS: unittests/token_test PASS: unittests/voice_select PASS: unittests/wave_test PASS: unittests/lex_test PASS: unittests/lts_test PASS: unittests/nums_test ============================================================================ Testsuite summary for mimic 1.1.0.9000 ============================================================================ # TOTAL: 9 # PASS: 8 # SKIP: 0 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 ============================================================================ See ./test-suite.log Please report to https://github.com/MycroftAI/mimic/issues ============================================================================ Makefile:4695: recipe for target 'test-suite.log' failed make[3]: *** [test-suite.log] Error 1 make[3]: Leaving directory '/tmp/mimic' Makefile:4801: recipe for target 'check-TESTS' failed make[2]: *** [check-TESTS] Error 2 make[2]: Leaving directory '/tmp/mimic' Makefile:5095: recipe for target 'check-am' failed make[1]: *** [check-am] Error 2 make[1]: Leaving directory '/tmp/mimic' Makefile:4581: recipe for target 'check-recursive' failed make: *** [check-recursive] Error 1
The only "strange" things: On ./dependencies.sh --prefix="/usr/local"
I get
PCRE was successfully compiled. However, it could not be installed. The most likely cause is a lack of permissions. This script will try to run the installation with sudo asking your password.
and then amidst all the output:
libtool: warning: relinking 'libpcre2-posix.la'
There isn't any fix or workaround?
Reluctantly but yes, I did.
@forslund your solution works on Ubuntu 18.04
/dependencies.sh --prefix="/opt/mimic/install"
./autogen.sh
mkdir build && cd build
PKG_CONFIG_PATH=/opt/mimic/install/lib/pkgconfig ../configure --prefix=/opt/mimic/install
make
make test
first, run this in my ubuntu:
dos2unix dependencies.sh
autogen.sh : modify the last line:
&& autoconf
&& autoreconf -ivf
./autogen.sh
delete the lines in configure: from 12766 to 12775:
run the command below again:
open the Makefile in the root path, modify the below lines:
then the test failed with log which shows below:
please tell me if anything i can do.