Spencer STT down?

I finally got around to building my Spencer (I got it as part of a package deal last summer) and none of the speech-related programs seem to be running. At first I thought it might be my WiFi, since the errors were all network-related.

But after some digging through SpeechToIntent.cpp, it would appear that Spencer is trying to reach https://spencer.circuitmess.com:8443/sti/speech - and that connection is timing out.

Is this a short-term problem? (Will spencer.circuitmess.com come back online?) Or is this functionality that has ceased working for the foreseeable future?

As a backup, is the code that is/was running on this host available for us to download and run elsewhere?

Thanks in advance!

Hey there!

I apologize for the issue. Spencer’s speech server froze up and our monitoring tool failed to raise an alarm. I restarted the server and your Spencer should now work as intended.

Feel free to contact us any time if you have any issues or questions,

Thanks, Filip! Spencer is working great now!

Out of curiosity - what tools do you use on Spencer’s speech server? Are they open-source? (My daughter is wondering if I can give Spencer another voice, for instance…)

Glad to hear that :slight_smile:

Spencer’s speech server is actually just a proxy forwarding Speech-to-Intent and Text-to-Speech requests to other services which actually do the processing. We use Wit.ai for STI and Google’s TTS for speech synthesis. Before forwarding, it anonymizes the request and strips it of any identifying information such as your IP address and geolocation.

The server software itself is a custom plugin for the Styx reverse proxy, and unfortunately isn’t open source. It also provides endpoints for obtaining the current weather information, time, and checking if there is a software update.

Spencer’s voice samples, used in the firmware, are actually all stored in a separate flash chip on the device. The Text-to-Speech functionality is only used in custom programs using the TTS functions of Spencer’s library, and in CircuitBlocks sketches using the “synthesize and say” block.

I’d advise against trying to change the data on the flash chip manually as it might brick the device if done unsuccessfully, but you can generate custom samples with a different voice by using the sentences.sh script located in the scripts directory of the Spencer-Firmware repository. You will only need to edit the script and insert your Google TTS API key. You’ll also find all the voice parameters which you can change in this script.

Happy tinkering!

1 Like

I have changed Spencer’s language to Slovenian. Check it out here https://github.com/matjaz/spencer-speech

1 Like