eheikes / tts

Tools to convert text to speech :books::speech_balloon:
Apache License 2.0
94 stars 19 forks source link

RESOURCE_EXHAUSTED: Received message larger than max (4380929 vs. 4194304) #40

Closed cybnex closed 11 months ago

cybnex commented 5 years ago

This worked great for me previously but now I'm getting this error for many files.

Thought maybe I could fix it by lowering the limits in the script ( maxCharacterCount: service === 'gcp' ? 5000 : 1500,) but that didn't help

tts-cli called with arguments {"_":["32tephi.txt","/Users/cybe/workhorse/AUDIO/Wavenet/32tephi.txt.wav"],"format":"pcm","speed":0.8,"service":"gcp","language":"en-US","voice":"en-GB-Wavenet-C"} +0ms tts-cli input: 32tephi.txt +2ms tts-cli output: /Users/cybe 32tephi.txt /workhorse/AUDIO/Wavenet/32tephi.txt.wav +0ms readText Reading from 32tephi.txt +0ms readText Finished reading (180139 bytes) +14ms chunkText Chunked into 215 text parts +0ms splitText Stripping whitespace +0ms generateSpeech Options: {"ffmpeg":"ffmpeg","format":"pcm","language":"en-US","limit":5,"region":"us-east-1","speed":0.8,"type":"text","voice":"en-GB-Wavenet-C"} +0ms snapdragon:compiler initializing /usr/local/lib/node_modules/tts-cli/node_modules/snapdragon/lib/compiler.js +0ms snapdragon:parser initializing /usr/local/lib/node_modules/tts-cli/node_modules/snapdragon/lib/parser.js +1ms snapdragon:compiler initializing /usr/local/lib/node_modules/tts-cli/node_modules/snapdragon/lib/compiler.js +19ms snapdragon:parser initializing /usr/local/lib/node_modules/tts-cli/node_modules/snapdragon/lib/parser.js +0ms snapdragon:compiler initializing /usr/local/lib/node_modules/tts-cli/node_modules/snapdragon/lib/compiler.js +6ms snapdragon:parser initializing /usr/local/lib/node_modules/tts-cli/node_modules/snapdragon/lib/parser.js +1ms snapdragon:compiler initializing /usr/local/lib/node_modules/tts-cli/node_modules/snapdragon/lib/compiler.js +3ms snapdragon:parser initializing /usr/local/lib/node_modules/tts-cli/node_modules/snapdragon/lib/parser.js +0ms snapdragon:compiler initializing /usr/local/lib/node_modules/tts-cli/node_modules/snapdragon/lib/compiler.js +2ms snapdragon:parser initializing /usr/local/lib/node_modules/tts-cli/node_modules/snapdragon/lib/parser.js +0ms snapdragon:compiler initializing /usr/local/lib/node_modules/tts-cli/node_modules/snapdragon/lib/compiler.js +3ms snapdragon:parser initializing /usr/local/lib/node_modules/tts-cli/node_modules/snapdragon/lib/parser.js +0ms snapdragon:compiler initializing /usr/local/lib/node_modules/tts-cli/node_modules/snapdragon/lib/compiler.js +5ms snapdragon:parser initializing /usr/local/lib/node_modules/tts-cli/node_modules/snapdragon/lib/parser.js +0ms create Creating Google Cloud TTS instance +0ms generateAll Requesting 215 audio segments, 5 at a time +0ms generate Making request to Google Cloud Platform +0ms generate Making request to Google Cloud Platform +0ms generate Making request to Google Cloud Platform +0ms generate Making request to Google Cloud Platform +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/0c42771c-449f-43a8-b10f-27ff0da6986f.wav +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/a4e76553-83f0-4cc7-aa38-bb705d26e0c5.wav +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/86c96f66-abf4-4eec-a6b6-9381420c441a.wav +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/26c4a4f5-e47e-409c-aede-1304cfd32f8f.wav +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/d172ee27-ee92-49fd-b1df-4725f0184e82.wav +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/c0cc2460-d445-46a5-91cc-8cd7ae0f3169.wav +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/66508a64-f82a-4c75-9c54-022616cb294f.wav +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/a11edb34-23df-41d4-a682-8f87f42acb23.wav +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/887ffa3f-e42c-4d1e-8a6c-3af494eab02a.wav +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/68d5b7ec-f496-4c79-a7f3-22090e3ccc0b.wav +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/bf825d0b-6454-4c3a-b06b-f334732bbb4f.wav +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/824173ca-3c95-41da-9280-11663483221f.wav +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/ad093c2a-6a61-4af4-a618-a9c1d33f52bc.wav +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/97dec93f-6e78-4ffa-a94e-bee538f4ee26.wav +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/a47548fe-049a-435f-97e1-37ed231c07ca.wav +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/a07412c4-215a-49c6-819f-033f3f8f0fe3.wav +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/f800a9c1-c6eb-46c3-865f-25f2bbac855d.wav +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/fd5b5139-8902-4351-b1a0-c01d8bd0dd03.wav +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/28ebd30b-7146-45c0-b86c-24dc79b7840c.wav +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/52b22c0e-c612-4b93-8e7b-1f373a277e5e.wav +0ms generate Making request to Google Cloud Platform +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/a90717b0-e8e5-4e76-b181-45f9ee402f95.wav +0ms generate Making request to Google Cloud Platform +0ms generate Error during request: 8 RESOURCE_EXHAUSTED: Received message larger than max (4380929 vs. 4194304) +0ms generateAll Requested all parts, with error Error: 8 RESOURCE_EXHAUSTED: Received message larger than max (4380929 vs. 4194304) +0ms Error: 8 RESOURCE_EXHAUSTED: Received message larger than max (4380929 vs. 4194304) at Object.exports.createStatusError (/usr/local/lib/node_modules/tts-cli/node_modules/grpc/src/common.js:91:15) at Object.onReceiveStatus (/usr/local/lib/node_modules/tts-cli/node_modules/grpc/src/client_interceptors.js:1204:28) at InterceptingListener._callNext (/usr/local/lib/node_modules/tts-cli/node_modules/grpc/src/client_interceptors.js:568:42) at InterceptingListener.onReceiveStatus (/usr/local/lib/node_modules/tts-cli/node_modules/grpc/src/client_interceptors.js:618:8) at callback (/usr/local/lib/node_modules/tts-cli/node_modules/grpc/src/client_interceptors.js:845:24) generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/ecc9afe1-e96d-4f5a-9be1-29f59065d81c.wav +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/626ba1b1-f174-4795-bf40-8e6efa000152.wav +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/35f61d31-a47a-4708-9524-850b8e8d7f0c.wav +0ms generate Writing audio content to /var/folders/v6/hs1cz6wd6px8spzv37rzk5c40000gn/T/4e947f66-7d54-4db6-a5e6-3f5b5b3dc2f3.wav +0ms

cybnex commented 5 years ago

--speed 0.8 seems to be the problem?

cybnex commented 5 years ago

or --type ssml? Are some of the sentences too long? I can't seem to figure it out...

eheikes commented 5 years ago

Hi @cybnex , normally with a response of "RESOURCE_EXHAUSTED" from Google Cloud, I would expect that you've gone over your quota or limit, however the message "Received message larger than max" is peculiar and could possibly point to a bug. I'll have to take a deeper dive to see if I can reproduce and pinpoint the problem, but some things you can try in the meantime:

eheikes commented 5 years ago

Google Cloud seems to have a built-in 4MB limit to the size of the audio file that is returned. Unfortunately, WAV/PCM files are quite large. If I request an MP3 format, or bump up the speed to 1.2, it completes successfully.

I'll see if I can improve the code to handle this better, but calculating file size from words is not an exact science.

cybnex commented 5 years ago

Ok, thank you. Mp3 seems to work. Too bad the sound quality is so much worse, why would they use mp3 and not a more modern codec?

eheikes commented 5 years ago

You could try --format ogg, which in Google Cloud uses the Opus codec and supposedly sounds better than MP3.