I am trying to set up MaryTTS and I am running the docker run
command from the docs, but it never completes and I get the following error standard_init_linux.go:211: exec user process caused "exec format error"
. Any ideas how to fix?
What hardware / software are you trying?
RPi 3B+ with a matrix voice
MaryTTS docker is only available for amd64, so that is causing the error.
You cannot use it on a Pi.
Check this topic as well:
Can’t you just Start the precompiled jar file? That’s how I’ve done it yet on ubuntu. Gotta try to run the server standalone without docker on my pi tomorrow.
Whomp whomp , oh well, i’ll just have to stick with pico. thanks!
How does one go about that? The installation docs are surprisingly sparse in my research
I’ve downloaded marytts zip file. Unzip it and run the marytts-server
file as: ./marytts-server
Afterwards you’ll see the web UI at localhost:59125
Awesome! I’ll give it a try tonight. Thanks!
Tim
Is it working for you?
I’ve managed to move everything in a docker container. So in case someone wants to setup marytts as well in docker I’ll share my config:
At first create a dockerfile containing these lines:
Note: Label is as far as I know not mandatory.
FROM ubuntu:16.04
LABEL yourName <yourEmail>
RUN mkdir marytts && \
apt-get update && \
apt-get install -y unzip && \
apt-get install -y default-jre && \
apt-get install -y wget && \
apt-get clean
RUN wget https://github.com/marytts/marytts/releases/download/v5.2/marytts-installer-5.2.zip
RUN unzip marytts-installer-5.2.zip && \
rm marytts-installer-5.2.zip && \
cd marytts-installer-5.2
RUN chmod +x ./marytts
WORKDIR /marytts-installer-5.2
RUN ./marytts install:bits1-hsmm
CMD ["./marytts"]
EXPOSE 59125
configure the last RUN command as you like. I’m using a german voice so if you want a different one just change bits1-hsmm to any other voice tag (that’s what I used as basis for my configuration: MaryTTS voice tags)
Use a terminal to navigate into the folder which is containing the just created dockerfile.
Next run docker image build -t yourImageName:yourVersionNumber .
Next create a file called docker-compose.yml
and fill in following lines:
version: "3"
services:
marytts:
image: yourImageName:yourVersionNumber
ports:
- 59125:59125
restart: always
Adjust your image name and version number, save the file and navigate into the folder containing this file.
Run docker-compose up -d
This command will start the container we’ve just build and start maryTTS.
After some seconds or minutes, depending on your hardware you can navigate to localhost:59125
or if you’re just connected using ssh: IPADRESS_OF_YOUR_PI:59125
I hope it works out for everyone.
Have a good time and watch yourself in times of corona.
Is anyone using marytts and is having voice output? My docker image running like a charm but there is just no output from marytts.
curl http://192.168.0.2:59125/process?INPUT_TEXT=Es+ist+17+Uhr+48&INPUT_TYPE=TEXT&AUDIO=WAVE&OUTPUT_TYPE=AUDIO&LOCALE=de_DE&VOICE=bits1-hsmm | aplay
[1] 18575
[2] 18576
[3] 18577
[4] 18578
[5] 18579
ALSA lib pcm_hw.c:1903:(_snd_pcm_hw_open) card is not defined
aplay: main:828: audio open error: Invalid argument
[2] Done INPUT_TYPE=TEXT
[3] Done AUDIO=WAVE
[4]- Done OUTPUT_TYPE=AUDIO
[5]+ Done LOCALE=de_DE
I don’t get whats the problem. Respeaker USB Mic Array is working. Mic is fine and if I click the wake button I can hear the signal.
Is someone having similiar issues?
EDIT. by the way using espeak works fine. Output is coming from the headphone jack at the Respeaker USB Mic Array
Hello @Bozor ,
I’m not quite sure, but maybe access to the microphone / speaker from a docker container is limited. To allow Rhasspy to access my Jabra 510, the docker-compose is as follows (devices:…):
rhasspy:
image: "synesthesiam/rhasspy-server:latest"
container_name: Rhasspy
.. blabla
devices:
- "/dev/snd:/dev/snd"
Maybe this helps?
I’ll play around tomorrow. Thanks for the hint
Yeah, I’d orientate myself by the documentary for the Rhasspy Docker Container. Good success!
rhasspy:
image: "synesthesiam/rhasspy-server:latest"
restart: unless-stopped
volumes:
- "$HOME/.config/rhasspy/profiles:/profiles"
ports:
- "12101:12101"
devices:
- "/dev/snd:/dev/snd"
command: --user-profiles /profiles --profile en
I got this working by using @Bozor suggestion. But I don’t use it because my wife didn’t like the voice the best. Switched back to wavenet
Would you mind sharing your dockerfile and docker-compose file? My sound output is still not working
I’m using MarryTTs in docker on same machine as rhasspy with german voice:
Here are docker-compose files and relevant profiles.json entries
1.) If you are using different language than english, you have to add locale in rhassy profile.json
I use two german voices, located in same folder as docker-compose file
(voice-bits1-hsmm, voice-bits3-hsmm)
2.) --log-level ERROR reduces log entries
"text_to_speech": {
"marytts": {
"locale": "de",
"url": "http://10.2.254.1:59125",
"voice": "bits3-hsmm",
"effects": {
"effect_F0Add_selected": "on",
"effect_F0Add_parameters": "f0Add:30.0;"
}
},
rhasspy:
image: "synesthesiam/rhasspy-server:latest"
hostname: rhasspy-server
container_name: rhasspy-server
restart: unless-stopped
privileged: true
ports:
- "12101:12101"
volumes:
- "/opt/rhasspy/profiles:/profiles"
command: --user-profiles /profiles --profile de --log-level ERROR
marytts:
image: synesthesiam/marytts:5.2
container_name: marytts
hostname: marrytts-server
restart: unless-stopped
ports:
- "59125:59125"
volumes:
- "./marytts-5.2/lib/voice-bits1-hsmm-5.2.jar:/marytts/lib/voice-bits1-hsmm-5.2.jar"
- "./marytts-5.2/lib/voice-bits3-hsmm-5.2.jar:/marytts/lib/voice-bits3-hsmm-5.2.jar"
Thanks for the great instructions! With this information I have built my first docker container. And it works great almost right away!
The only issue was that in the manual of @Bozor the voice bits3-hsmm was used, I overlooked this in the beginning when I took over the Rhasspy configuration from @kaykoch With bits1-hsmm instead of bits3-hsmm it works great.
@Bozor: I did not use the option with:
devices:
- “/dev/snd:/dev/snd”
There were moments when I didn’t have voice output via Rhasspy, but this was a configuration problem.
Thanks for the information - I wanted to get away from pico tts for a long time and I am very happy with Mary.
@kaykoch Where did you download the voices
- voice bits1-hsmm-5.2.jar
- voice-bits3-hsmm-5.2.jar
Which one do you find better? Are there any other alternative german voices for MaryTTS?
First of all:
I used docker image
synesthesiam/marytts:5.2
as descriped here
Right now, I try to create my own docker image. Thanks @Bozor
In this description, there is also a script to download translation files.
If you only want to download German files:
First is female (used for my wakeword: COMPUTER)
Second is male (used for my wakeword JARVIS)
Create a folder (marytts-5.2) in your docker-compose folder, unzip the zip files in (xx.jar):
volumes:
- "./marytts-5.2/lib/voice-bits1-hsmm-5.2.jar:/marytts/lib/voice-bits1-hsmm-5.2.jar"
- "./marytts-5.2/lib/voice-bits3-hsmm-5.2.jar:/marytts/lib/voice-bits3-hsmm-5.2.jar"