Last active
January 27, 2019 18:12
-
-
Save Psychokiller1888/4b296b841b96a817914db200412f2533 to your computer and use it in GitHub Desktop.
A way to fallback to local services for Snips when your internet goes down
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
import socket | |
import subprocess | |
import time | |
RUNNING = False | |
ONLINE = True | |
def checkOnlineState(): | |
global ONLINE | |
try: | |
req = requests.get('http://clients3.google.com/generate_204') | |
if req.status_code != 204: | |
raise Exception | |
if not ONLINE: | |
subprocess.call(['/home/pi/offlineFallback/shell/switchOnlineState.sh', "1"]) | |
print('Internet is back, switching back to Amazon Polly voice and Google ASR') | |
return True | |
except OSError: | |
pass | |
if ONLINE: | |
subprocess.call(['/home/pi/offlineFallback/shell/switchOnlineState.sh', "0"]) | |
print('No more internet connection, falling back to PicoTTS and Snips ASR') | |
return False | |
def main(): | |
global RUNNING, ONLINE | |
subprocess.call(['/home/pi/offlineFallback/shell/switchOnlineState.sh', "1"]) | |
try: | |
while RUNNING: | |
ONLINE = checkOnlineState() | |
time.sleep(60) | |
except KeyboardInterrupt: | |
pass | |
exit(0) | |
if __name__ == '__main__': | |
RUNNING = True | |
main() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
state="$1" | |
if [[ "$1" -eq "1" ]]; then | |
sudo sed -i -e 's/provider = "picotts"/provider = "customtts"/' /etc/snips.toml | |
sudo systemctl stop snips-asr | |
sudo systemctl start snips-asr-google | |
else | |
sudo sed -i -e 's/provider = "customtts"/provider = "picotts"/' /etc/snips.toml | |
sudo systemctl stop snips-asr-google | |
sudo systemctl start snips-asr | |
fi | |
sudo systemctl restart snips-* |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment