[packman] mbrola für Leap 15.2 x86_64

Peter Stark Peter.Stark at storck.net
Sat Mar 13 08:08:41 CET 2021


Hi Luigi,

usually it is part of my home automation. Therefore I've extracted the
essential part into this test-script:

---<snip
echo "Simon says." \
        | pipefilt \
        | preproc /usr/share/mbrola/rules.lst
/usr/share/mbrola/hadifix.abk \
        | txt2pho -f \
        | mbrola -f 0.43 -t 1.2 -l 16000 -v 0.9
/usr/share/mbrola/de2/de2 - /tmp/simon_says.wav
ls -l /tmp/simon_says.wav
--->snap

When I run it, I do get a result. However it is basically an empty WAV file:
filer:~ # bash -x says.sh
+ echo 'Simon says.'
+ pipefilt
+ preproc /usr/share/mbrola/rules.lst /usr/share/mbrola/hadifix.abk
+ txt2pho -f
+ mbrola -f 0.43 -t 1.2 -l 16000 -v 0.9 /usr/share/mbrola/de2/de2 -
/tmp/simon_says.wav
+ ls -l /tmp/simon_says.wav
-rw-r--r-- 1 root root 44 Mar 13 07:55 /tmp/simon_says.wav

So I check the libs:
filer:~ # ldd $(which pipefilt)
        linux-vdso.so.1 (0x00007ffcf77f7000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fe6ffebc000)
        libm.so.6 => /lib64/libm.so.6 (0x00007fe6ffb84000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fe6ff96b000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fe6ff5b0000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fe700498000)
filer:~ # ldd $(which preproc)
        linux-vdso.so.1 (0x00007ffdf4bba000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f2ac3baa000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f2ac3872000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f2ac3659000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f2ac329e000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f2ac4192000)
filer:~ # ldd $(which txt2pho)
        linux-vdso.so.1 (0x00007ffccc6b4000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fa540872000)
        libm.so.6 => /lib64/libm.so.6 (0x00007fa54053a000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fa540321000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fa53ff66000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fa541041000)
filer:~ # ldd $(which mbrola)
        linux-vdso.so.1 (0x00007ffc003f4000)
        libm.so.6 => /lib64/libm.so.6 (0x00007efe59321000)
        libc.so.6 => /lib64/libc.so.6 (0x00007efe58f66000)
        /lib64/ld-linux-x86-64.so.2 (0x00007efe5986e000)

Next I check in each step between the pipes what the content is by
inserting a "tee .." and by that I figured that prepoc is the culprit.
So I changed it to:

filer:~ # bash -x says.sh
+ echo 'Simon says.'
+ pipefilt
+ strace -f -o /tmp/preproc.strace preproc /usr/share/mbrola/rules.lst
/usr/share/mbrola/hadifix.abk
says.sh: line 3:  8095 Done                    echo "Simon says."
      8096                       | pipefilt
      8097 Segmentation fault      (core dumped) | strace -f -o
/tmp/preproc.strace preproc /usr/share/mbrola/rules.lst
/usr/share/mbrola/hadifix.abk
filer:~ # ls -l /tmp/preproc.strace
-rw-r--r-- 1 root root 4024 Mar 13 08:00 /tmp/preproc.strace
filer:~ # tail /tmp/preproc.strace
8100  mprotect(0x7fe3723ea000, 45056, PROT_READ) = 0
8100  mprotect(0x564261052000, 4096, PROT_READ) = 0
8100  mprotect(0x7fe372620000, 4096, PROT_READ) = 0
8100  munmap(0x7fe3725fc000, 145989)    = 0
8100  brk(NULL)                         = 0x564262d47000
8100  brk(0x564262d68000)               = 0x564262d68000
8100  getpid()                          = 8100
8100  openat(AT_FDCWD, "/tmp/preproc8100.log", O_WRONLY|O_CREAT|O_TRUNC,
0666) = 3
8100  --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR,
si_addr=0x7fe3723fb8f4} ---
8100  +++ killed by SIGSEGV (core dumped) +++

Anyway, I think that it has already been fixed. However, the RPM
vanished somehow from the REPO. Or at least from the one I use:
filer:~ # zypper lr -u |grep -i pack
 9 | packman        | packman                   | Yes     | (r ) Yes  |
No      | http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_15.2/

Looking at the ARM REPO I can find a much higher version. And at some
time there must have been the newer one since I installed it this way on
another machine (at least as far as I can recall it). Though, I wouldn't
mind to get the most recent. However, I'm not sure about its maintenance
state.
I think that mbrola is the best text-2-speech there is for free, I know
of. If you can point me to a better one I'll be happy to try that. I've
tested e.g. "espeak" which either uses mbrola indirectly or sounds
really crappy (in German).

BTW: I have opened other bugs at SUSE bugzilla which where packman
related which they happily coordinated. But that's some years ago now.
Anyway thanks for your support.

best regards,
Peter


On 3/12/21 12:46 PM, Luigi Baldoni wrote:
> Sent: Thursday, March 11, 2021 at 5:09 PM
> From: "Peter Stark" <Peter.Stark at storck.net>
>> ich bin auf der Suche nach mbrola pm152.1.6 für Leap 15.2 (x86_64). Das
>> scheint es für ARM zu geben aber nicht für x86_64. Für diese Plattform
>> finde ich nur pm152.1.1 (bzw. src Paket mit 1.2). In der Version crasht
>> das "preproc" Tool.
>>
>> ...
>>
>> 11484 brk(0x5603ba735000)               = 0x5603ba735000
>> 11484 getpid()                          = 11484
>> 11484 openat(AT_FDCWD, "/tmp/preproc11484.log",
>> O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
>> 11484 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=NULL} ---
>> 11484 +++ killed by SIGSEGV (core dumped) +++
>>
>> Auf einer anderen Maschine finde ich die pm152.1.6 (von Euch) schon
>> installiert. Aber das Paket gibt es nicht im Online-Repo:
>> http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_15.2/
> Could you please supply exact instructions on how to reproduce it?
>
>> Ich habe bei SUSE einen Bug aufgemacht:
>> https://bugzilla.opensuse.org/show_bug.cgi?id=1183130
>>
>> Aber sie verweisen auf Euch. Wäre nett wenn Ihr das mbrola Paket mit der
>> aktuell Source für x86_64 auf Leap 15.2 bauen könntet. Danke!
> Since this is a packman package, I doubt that bug report will go anywhere.
>
> Regards
>

-- 
Mit freundlichem Gruß,
Peter Stark




More information about the Packman mailing list