Mycroft Community Forum

Upgraded ubuntu from 18.04 to 20.04, no more TTS

Hello, everybody. I hope you are well. I’m working on this now for several days and am not finding a solution. The problem is essentially the same as this one, but I am not achieving the fix with the same results.

Summary: After I upgraded from Ubuntu 18.04 to 20.04. I can wake Mycroft, and I even hear the wake chime. The speaker mutes. I look at the log file and can see all the time signatures that it’s trying to hear me. But there is no audible response.

I have tried these, without success…
30 sec + delay between wake word and recording
Picroft + rpi4 + Respeaker Mic Array v2.0 - Audio issues
Mycroft not responding to “pair my device”
Mycroft does not work in ubuntu 20.04
Mycroft not responding ubuntu 20.04

I have also tried some TTS and ALSA troubleshooting guides. Most of them tell me to do things that I don’t really know what they mean. (I honestly just learned what ALSA is.)

I’m more than a little beyond my comfort zone now of attempting fixes. If anybody has any ideas, I’m all ears.

Thank you!
Dan.

Hey, just to check, did you install Mycroft via the Git method, the alpha-release Snap or some other method?

From your message in the other thread, what happened when you tried to run Mycroft using Python3.8? Can you check what version of Python is being used in the virtual environment?

cd ~/mycroft-core
source .venv/bin/activate
python --version
deactivate

Mycroft works on 20.04 but I haven’t done an upgrade from 18.04 so there seems to be some issues there.

@gez-mycroft Thank you for the reply! :slightly_smiling_face:

Originally, with Ubuntu 18.04, I installed using git. This installation carried over into Ubuntu 20.04. I first tried solving the issue with downgrading python from 3.8 to 3.7.5.

I also tried uninstalling and reinstalling using snap. That presented the same issue. I uninstalled again and reinstalled using git, which is the current installation. (I’m trying my best to maintain a single variable per trial, other than maintaining python 3.7.5 throughout.)

I checked the virtual environment python version, and it is 3.7.5. (That never crossed my mind to check, which seems so obvious now!)

I thought about wiping everything with a fresh Ubuntu 20.04 installation. But I don’t like not knowing what’s causing this problem. Plus, I suppose, there’s no guarantee that a fresh install will actually fix it.

Dan.

Have you tried the audiotest? Can you check your default source in pulse audio?

Hi, @baconator. Thanks for the reply.

Have you tried the audiotest?

I’m not sure what the audiotest is. That sounds like something I should familiarize myself with. I did some searches that gave me results about different methods for testing audio. Which one in particular should I do?

I tried this one that had a bunch of different alsa+pulseaudio hardware and software diagnostics. It gave me information. And I’m not sure what to do with it.

Can you check your default source in pulse audio?

I ran $ pactl info and it returned Default Source: alsa_input.pci-0000_00_1f.3.analog-stereo. Is this useful?

In both cases, they’re only useful if you can tell.

pactl list sources short
should list the inputs, one should hopefully seem familiar.
If that’s not the one you have for default source you’d need to change it. Also check out the audio troubleshooting guide for more.

Thank you again. I used Mycroft Audio Troubleshooting for these actions.

I ran audiotest and I heard my voice playback. So according to the text output, mycroft can hear what I’m saying and should be able to act on it.

I ran pactl list sources short and got:

1 alsa_output.pci-0000_00_1f.3.analog-stereo.monitor module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
2 alsa_input.pci-0000_00_1f.3.analog-stereo module-alsa-card.c s16le 2ch 44100Hz SUSPENDED

I tried changing it using pactl set-default-source 1. This made mycroft not listen. So I changed it back to 2, and it’s listening again. Still no TTS, though. I tried to find a mimic troubleshooting guide. But I didn’t see one.

One thing I noticed is when I stop mycroft, I get some errors with stopping audio.

~/mycroft-core$ ./stop-mycroft.sh all
Stopping all mycroft-core services
Stopping skills (5430)…stopped.
Stopping audio (5729)…failed to stop.
Killing audio (5729)…killed.
Stopping speech (5774)…stopped.
Stopping enclosure (5793)…stopped.
Stopping messagebus.service (5379)…stopped.

Could this possibly be anything useful?
Does anybody know of a mimic troubleshooting guide?

Never wrote one. :o

Nothing interesting in the audio.log?

This seems relevent from audio.log

2020-10-16 19:48:26.221 | INFO | 4004 | mycroft.messagebus.load_config:load_message_bus_config:33 | Loading message bus configs
2020-10-16 19:48:26.337 | ERROR | 4004 | mycroft.tts.tts:create:529 | The TTS could not be loaded.
Traceback (most recent call last):
File “/home/dan/mycroft-core/mycroft/tts/mimic_tts.py”, line 187, in validate_connection
subprocess.call([BIN, ‘–version’])
File “/usr/local/lib/python3.7/subprocess.py”, line 339, in call
with Popen(*popenargs, **kwargs) as p:
File “/usr/local/lib/python3.7/subprocess.py”, line 800, in init
restore_signals, start_new_session)
File “/usr/local/lib/python3.7/subprocess.py”, line 1465, in _execute_child
executable = os.fsencode(executable)
File “/usr/local/lib/python3.7/os.py”, line 810, in fsencode
filename = fspath(filename) # Does type-checking of filename.
TypeError: expected str, bytes or os.PathLike object, not NoneType

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/home/dan/mycroft-core/mycroft/tts/tts.py”, line 519, in create
tts.validator.validate()
File “/home/dan/mycroft-core/mycroft/tts/tts.py”, line 435, in validate
self.validate_connection()
File “/home/dan/mycroft-core/mycroft/tts/mimic_tts.py”, line 189, in validate_connection
LOG.info("Failed to find mimic at: " + BIN)
TypeError: can only concatenate str (not “NoneType”) to str
2020-10-16 19:48:26.340 | ERROR | 4004 | main:on_error:34 | Audio service failed to launch (TypeError(‘can only concatenate str (not “NoneType”) to str’)).

These are the TTS settings in mycroft-core/mycroft/configuration/mycroft.conf

// Text to Speech parameters
// Override: REMOTE
“tts”: {
// Engine. Options: “mimic”, “google”, “marytts”, “fatts”, “espeak”,
// “spdsay”, “responsive_voice”, “yandex”, “polly”
“pulse_duck”: false,
“module”: “mimic”,
“polly”: {
“voice”: “Matthew”,
“region”: “us-east-1”,
“access_key_id”: “”,
“secret_access_key”: “”
},
“mimic”: {
“voice”: “ap”
},
“mimic2”: {
“lang”: “en-us”,
“url”: “https://mimic-api.mycroft.ai/synthesize?text=”,
“preloaded_cache”: “/opt/mycroft/preloaded_cache/Mimic2”
},
“espeak”: {
“lang”: “english-us”,
“voice”: “m1”
}
},

There does not appear to be a /etc/mycroft/mycroft.conf

.mycroft/mycroft.conf has…

{
“max_allowed_core_version”: 20.8
}

It’s not finding mimic2 or 1, it seems. Surprised there’s not another error message about mimic2.