Google TTS - no voices, not work

Hello i got problem with google tts addon. I test it on version 2.5.0, 2.5.12. 3.0 every time problem with no voices:
openhab> bundle:list -s |grep voice
161 x Active x 80 x 2.5.0 x org.openhab.core.io.rest.voice
193 x Active x 80 x 2.5.0 x org.openhab.core.voice
370 x Active x 80 x 2.5.0.201903261051 x org.openhab.voice.googletts

openhab> bundle:list -s |grep google
23 x Active x 80 x 2.8.2.v20180104-1110 x com.google.gson
24 x Active x 80 x 18.0.0 x com.google.guava
25 x Active x 80 x 27.1.0.jre x com.google.guava
26 x Active x 80 x 1.0.1 x com.google.guava.failureaccess
27 x Active x 80 x 3.0.0.v201312141243 x com.google.inject
233 x Active x 80 x 2.20 x com.google.dagger
370 x Active x 80 x 2.5.0.201903261051 x org.openhab.voice.googletts

in logs:

2021-04-07 14:57:09.558 [ERROR] [rthome.io.console.ConsoleInterpreter] - An error occurred while executing the console command.

java.util.NoSuchElementException: null

at java.util.ArrayList$Itr.next(ArrayList.java:862) ~[?:1.8.0_252]

at org.eclipse.smarthome.core.voice.internal.VoiceManagerImpl.getPreferredVoice(VoiceManagerImpl.java:438) ~[?:?]

at org.eclipse.smarthome.core.voice.internal.VoiceConsoleCommandExtension.getDefaultVoice(VoiceConsoleCommandExtension.java:108) ~[?:?]

at org.eclipse.smarthome.core.voice.internal.VoiceConsoleCommandExtension.execute(VoiceConsoleCommandExtension.java:85) ~[?:?]

at org.eclipse.smarthome.io.console.ConsoleInterpreter.execute(ConsoleInterpreter.java:55) [bundleFile:?]

at org.eclipse.smarthome.io.console.karaf.internal.CommandWrapper.execute(CommandWrapper.java:78) [bundleFile:?]

at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:68) [bundleFile:4.2.7]

at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:86) [bundleFile:4.2.7]

at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:599) [bundleFile:4.2.7]

at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:526) [bundleFile:4.2.7]

at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:415) [bundleFile:4.2.7]

at org.apache.felix.gogo.runtime.Pipe.doCall(Pipe.java:416) [bundleFile:4.2.7]

at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:229) [bundleFile:4.2.7]

at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:59) [bundleFile:4.2.7]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_252]

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_252]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_252]

at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]

What version(s) of Java? 2.x & 3.x have different version requirements.

[15:23:35] root@openhab:/home/openhabian# java -version
openjdk version “1.8.0_252”
OpenJDK Runtime Environment (Zulu 8.46.0.225-CA-linux_aarch32hf) (build 1.8.0_252-b225)
OpenJDK Client VM (Zulu 8.46.0.225-CA-linux_aarch32hf) (build 25.252-b225, mixed mode, Evaluation)

openhab> smarthome:voice voices
An unexpected error occurred during execution.

OpenHAB 3.0.1 requires Java 11.
I also believe that setting up semantic modeling is recommended for TTS but that would not give the error you are seeing.

The error appears to be saying there is no default voice configured.

Bruce,

I have openhab 2.5.12. I change the version of bundle google tts.
smarthome:voice voices → command lists all of voices bundle - in my OH, view error :frowning:

openhab> smarthome:voice say hello

2021-04-07 22:36:36.673 [WARN ] [core.voice.internal.VoiceManagerImpl] - Error saying 'hello ': No TTS service can be found for voice plPLWavenetB

org.eclipse.smarthome.core.voice.TTSException: No TTS service can be found for voice plPLWavenetB

at org.eclipse.smarthome.core.voice.internal.VoiceManagerImpl.say(VoiceManagerImpl.java:201) [bundleFile:?]

at org.eclipse.smarthome.core.voice.internal.VoiceManagerImpl.say(VoiceManagerImpl.java:154) [bundleFile:?]

at org.eclipse.smarthome.core.voice.internal.VoiceConsoleCommandExtension.say(VoiceConsoleCommandExtension.java:152) [bundleFile:?]

at org.eclipse.smarthome.core.voice.internal.VoiceConsoleCommandExtension.execute(VoiceConsoleCommandExtension.java:71) [bundleFile:?]

at org.eclipse.smarthome.io.console.ConsoleInterpreter.execute(ConsoleInterpreter.java:55) [bundleFile:?]

at org.eclipse.smarthome.io.console.karaf.internal.CommandWrapper.execute(CommandWrapper.java:78) [bundleFile:?]

at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:68) [bundleFile:4.2.7]

at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:86) [bundleFile:4.2.7]

at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:599) [bundleFile:4.2.7]

at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:526) [bundleFile:4.2.7]

at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:415) [bundleFile:4.2.7]

at org.apache.felix.gogo.runtime.Pipe.doCall(Pipe.java:416) [bundleFile:4.2.7]

at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:229) [bundleFile:4.2.7]

at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:59) [bundleFile:4.2.7]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_252]

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_252]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_252]

at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]

I found problem - end of time free billing of my project in Google Cloud. I renew bilinig and all work fine!

1 Like

I had the same problem. Thanks for this update. I received several emails from Google informing me of a cloud account that is about to expire but sort of ignored it.
The billing account was stopped because my credit card expired. The account does not get billed but requires an active account.
The challenge was to enable the billing account. I had to create a new billing account and link it to my application.
Now Google speaks again and I am so happy. This Google TTS plays a big role in my automation.

Same here. It is sort of delicate with plenty reasons why i might break. Routing issues, network quirks, expired credit cards…

My question:
Is there a known way to test and determine if the TTS service is up and good from a rule?
I get so dependend on the house talking to me I wish it would immediately give me a message when the TTS starts to fail.

I could somehow parse the logs for "[WARN ] [core.voice.internal.VoiceManagerImpl] - Error saying " but there must be a better way.