Supergiovane / node-red-contrib-tts-ultimate

This node transforms a text into a speech audio. You can hear the voice natively through Sonos or external players.
MIT License
22 stars 5 forks source link

Error installing from node-red manage pallet Linux Debian Lunar (wanting to use ElevenLabs TTS), new install #72

Closed nospam2k closed 10 months ago

nospam2k commented 10 months ago

Salutation (i'll not respond to users that doesn’t wrote at least "Hello") Lol. Hello! I really want to use this node!!! ;) I really appreciate your help!

Describe the bug

It looks like the problem is it's looking for the engine but I don't know how to satisfy this using node-red Debian Lunar. I tried just installing elevenlabs-node to test and it just installed with nodejs but I think that is just using cloud based with API key. I am trying on my own, but I'm in the dark as I don't understand the integration having never used Eleven Labs TTS.

2023-08-24T16:48:46.186Z Install : node-red-contrib-tts-ultimate 2.0.3
2023-08-24T16:48:45.742Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --production --engine-strict node-red-contrib-tts-ultimate@2.0.3
2023-08-24T16:48:46.432Z [err] npm
2023-08-24T16:48:46.433Z [err]  WARN 
2023-08-24T16:48:46.433Z [err] config
2023-08-24T16:48:46.433Z [err]  production Use `--omit=dev` instead.
2023-08-24T16:48:51.979Z [err] npm
2023-08-24T16:48:51.979Z [err]  ERR! code EBADENGINE
2023-08-24T16:48:51.983Z [err] npm ERR! 
2023-08-24T16:48:51.983Z [err] engine Unsupported engine
2023-08-24T16:48:51.983Z [err] npm ERR!
2023-08-24T16:48:51.983Z [err]  engine Not compatible with your version of node/npm: http2@3.3.7
2023-08-24T16:48:51.983Z [err] npm ERR! notsup Not compatible with your version of node/npm: http2@3.3.7
2023-08-24T16:48:51.983Z [err] npm ERR! notsup Required: {"node":">=0.12.0 <9.0.0"}
2023-08-24T16:48:51.983Z [err] npm ERR! notsup Actual:   {"npm":"9.2.0"}
2023-08-24T16:48:51.986Z [err] 
2023-08-24T16:48:51.987Z [err] npm ERR! A complete log of this run can be found in:
2023-08-24T16:48:51.987Z [err] npm
2023-08-24T16:48:51.987Z [err]  ERR!     /home/david/.npm/_logs/2023-08-24T16_48_46_393Z-debug-0.log
2023-08-24T16:48:52.015Z rc=1

To Reproduce Steps to reproduce the behavior:

  1. Install from node-red manage pallet

Expected behavior Correct install

TTS-Ultimate Version

Are you running node-red behind homematic, docker or anything similar? no

Additional context I have not installed anything else, but I want to use ElevenLabs TTS. 2023-08-24T16_48_46_393Z-debug-0.log

Supergiovane commented 10 months ago

Hi Your node/npm are too old. Please update them first.

nospam2k commented 10 months ago

Thanks for the quick response, but here my versions:

npm: 9.2.0 node: v18.13.0

nospam2k commented 10 months ago

I'm using Bookworm not lunar. Latest LTS.

Supergiovane commented 10 months ago

This package is the culprit http2@3.3.7 It’s strange, i had no other issues by users. Tomorrow i’ll take a look!

nospam2k commented 10 months ago

Ok, thx!

Supergiovane commented 10 months ago

Hi the error is raised by the AWS Amazon Polly services, that uses an old http2 package, while http2 is now native in node.js Please install the latest node-red-contrib-tts-ultimate@2.0.4 and try again.

nospam2k commented 10 months ago

Thank you! BTW. In your description, you say it's possible to use ElevenLabs offline? Is this still the case as I don't see an option for that from the ElevenLabs site. I'm specifically interested an offline option using Debian bookworm headless. I didn't want to open this as a new issue but I can if you prefer.

Supergiovane commented 10 months ago

Once tts-ultimate download the voice file, you can work offline, because it caches the file for you automatically. This is valid for all voice engines.

nospam2k commented 10 months ago

From "Manage Pallet"

2023-08-25T14:59:20.370Z Install : node-red-contrib-tts-ultimate 2.0.4

2023-08-25T14:59:17.816Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --production --engine-strict node-red-contrib-tts-ultimate@2.0.4 2023-08-25T14:59:18.504Z [err] npm 2023-08-25T14:59:18.504Z [err] WARN 2023-08-25T14:59:18.504Z [err] config 2023-08-25T14:59:18.505Z [err] production Use --omit=dev instead. 2023-08-25T14:59:22.267Z [err] npm 2023-08-25T14:59:22.267Z [err] ERR! code EBADENGINE 2023-08-25T14:59:22.271Z [err] npm ERR! 2023-08-25T14:59:22.271Z [err] engine Unsupported engine 2023-08-25T14:59:22.271Z [err] npm ERR! engine Not compatible with your version of node/npm: http2@3.3.7 2023-08-25T14:59:22.272Z [err] npm 2023-08-25T14:59:22.272Z [err] ERR! notsup Not compatible with your version of node/npm: http2@3.3.7 2023-08-25T14:59:22.272Z [err] npm 2023-08-25T14:59:22.272Z [err] ERR! notsup Required: {"node":">=0.12.0 <9.0.0"} 2023-08-25T14:59:22.272Z [err] npm ERR! 2023-08-25T14:59:22.272Z [err] notsup Actual: {"npm":"9.2.0"} 2023-08-25T14:59:22.276Z [err] 2023-08-25T14:59:22.276Z [err] npm ERR! A complete log of this run can be found in: 2023-08-25T14:59:22.276Z [err] npm ERR! /home/david/.npm/_logs/2023-08-25T14_59_18_463Z-debug-0.log 2023-08-25T14:59:22.297Z rc=1

Supergiovane commented 10 months ago

I think your linux version is not supported. Try to manually cd into .node-red folder and install the node with the command npm install node-red-contrib-tts-ultimate

Supergiovane commented 10 months ago

And.. i need the complete log file

nospam2k commented 10 months ago

2023-08-25T14_59_18_463Z-debug-0.log

nospam2k commented 10 months ago

It looks like it installed, but...

npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'http2@3.3.7', npm WARN EBADENGINE required: { node: '>=0.12.0 <9.0.0' }, npm WARN EBADENGINE current: { node: 'v18.13.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. npm WARN deprecated formidable@1.2.2: Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau

nospam2k commented 10 months ago

I think your linux version is not supported. Try to manually cd into .node-red folder and install the node with the command npm install node-red-contrib-tts-ultimate

That would be very unfortunate since this is the latest LTS version of Debian Linux bookworm. It means that rPi will also be incompatible soon.

nospam2k commented 10 months ago

This as well from the sonos module, I know it's not your problem directly but just FYI:

npm audit

npm audit report

xml2js <0.5.0 Severity: moderate xml2js is vulnerable to prototype pollution - https://github.com/advisories/GHSA-776f-qx25-q3cc No fix available node_modules/sonos/node_modules/xml2js sonos Depends on vulnerable versions of xml2js node_modules/sonos node-red-contrib-tts-ultimate Depends on vulnerable versions of sonos node_modules/node-red-contrib-tts-ultimate

Supergiovane commented 10 months ago

What happens if you install another node? Try to install some other nodes for testing.

Supergiovane commented 10 months ago

Better to stay to a nodejs LTS 16.x for better compatibility. We developers don’t make changes so quickly, we work for free and on the free time.

nospam2k commented 10 months ago

I have several other nodes installed, all working fine. Email, basicauth, z-wave... I understand and appreciate your work and also understand how hard it is to keep up with breaking changes! Thanks for your feedback. It installed from command line, so I'm going to play with it. I don't use sonos or aws Polly so I may just fork your repo and strip those out. Thanks again!

Supergiovane commented 10 months ago

I will try to update all the dependencies, but most are breaking changes, so i need to rewrite the tts-ultimate code. Good to know you’re familiar with javascript!

nospam2k commented 10 months ago

I just had a quick test of Eleven Labs. So it seems that "offline" would mean that anything that was already tts'ed will be cached but new text still needs to be sent to cloud. Is that correct? I'm looking for a way to do offline tts of various text thrown at the node.

Supergiovane commented 10 months ago

Hi Yes, correct. You can use the Ownfile node. You can upload your audio file and play it offline. There is no quality TTS engine at this time, that works offline.

nospam2k commented 10 months ago

thx!