"Unknown value type" with customtts


#1

Hi there !
I’m a new user of snips because I’m interested on his ability to connect with jeedom.
I got it working quite easy with jeedom using default configuration.
As I wanted to improve the TTS part, I used Psycho script (SnipsSuperTTS, one script to rule them all) to use Google TTS instead of picotts. Everything works fine on snips.
However, when I try to load my assistant in jeedom, I have the following error :

Unknown value type: ["/etc/snips/snipsSuperTTS.sh"

As a result, I can’t launch Snips TTS form my scenarios : my assistant disapeared.
Is there something I have to change on my snips.toml ?
Thx


#2

Hi,

I had this also and if I remmeber well, it is was a permission problem. Probably that the user _snips can’t access/run the snipsSuperTTS.sh file.


#3

Made a chmod 777 on snipsSuperTTS.sh, still the same error :frowning:


#4

can you check tail -f /var/log/syslog and see if you get any errors?


#5

chmod 775 is enough for security reason :wink:


#6

Nothing interesting…
Jan 8 21:59:28 snips-salon systemd[1]: Started Session c3 of user pi.


#7

Hello:

Please try to load assistant with all TTS configs commented(In the /etc/snips.toml), once it’s loaded, then uncomment the lines as you did before.

[snips-tts]
## Choose one tts provider (defaults to picotts)
# provider = "picotts"
# provider = "makerstts"
# provider = "customtts"
## customtts specific configuration (here configured to use picotts)
# customtts = { command = ["pico2wave", "-w", "%%OUTPUT_FILE%%", "-l", "%%LANG%%", "%%TEXT%%"] }

#8

Finally ! I got it working !!
Thanks @coorfang, that was the solution !

However, I had to debug a little more.
When TTS was launched from the snips itslef, everything worked fine.
But I noticed that when TTS was launched from Jeedom plugin, the language code returned was different.

With TTS from snip, language code is “fr”
With TTS from jeedom, language code is “fr-FR”

On Psycho script, I had to add this workaround after line 127 :

if [[ $languageCode = "fr-FR-FR" ]]; then
   languageCode="fr-FR"
fi

(i know… awful scripting… but working :slight_smile:)