I have an error when I run my custom voice assistant program on Raspberry Pi 3B .This script is made from two programs from examples(assistant_library_demo.py and cloud_speech.py).Consequently the script does the both functions from those examples.
This is how the program code looks like:
import argparse
import locale
import logging
import RPi.GPIO as GPIO
from gpiozero import Servo
import signal
import sys
from google.assistant.library.event import EventType
from aiy.assistant import auth_helpers
from aiy.assistant.library import Assistant
from aiy.board import Board, Led
from aiy.cloudspeech import CloudSpeechClient
import aiy.voice.tts
def get_hints(language_code):
if language_code.startswith('en_'):
return ('turn on the light',
'turn off the light',
'blink the light',
'goodbye',
'repeat after me',
'lights on',
'lights off',
'minimum',
'middle',
'maximum')
return None
def locale_language():
language, _ = locale.getdefaultlocale()
return language
def process_event(led, event):
logging.basicConfig(level=logging.INFO)
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(24,GPIO.OUT)
servo = Servo(6)
parser = argparse.ArgumentParser(description='Assistant service example.')
parser.add_argument('--language', default=locale_language())
args = parser.parse_args()
logging.info('Initializing for language %s...', args.language)
hints = get_hints(args.language)
client = CloudSpeechClient()
logging.info(event)
text = client.recognize(language_code=args.language,hint_phrases=hints)
if 'lights on' in text:
GPIO.output(24,GPIO.HIGH)
elif 'lights off' in text:
GPIO.output(24,GPIO.LOW)
elif 'maximum' in text:
servo.max()
elif 'minimum' in text:
servo.min()
elif 'middle' in text:
servo.mid()
if event.type == EventType.ON_START_FINISHED:
led.state = Led.BEACON_DARK # Ready.
logging.info('Say "OK, Google" then speak, or press Ctrl+C to quit...')
elif event.type == EventType.ON_CONVERSATION_TURN_STARTED:
led.state = Led.ON # Listening.
elif event.type == EventType.ON_END_OF_UTTERANCE:
led.state = Led.PULSE_QUICK # Thinking.
elif (event.type == EventType.ON_CONVERSATION_TURN_FINISHED
or event.type == EventType.ON_CONVERSATION_TURN_TIMEOUT
or event.type == EventType.ON_NO_RESPONSE):
led.state = Led.BEACON_DARK
elif event.type == EventType.ON_ASSISTANT_ERROR and event.args and
event.args['is_fatal']:
main()
def main():
credentials = auth_helpers.get_assistant_credentials()
with Board() as board, Assistant(credentials) as assistant:
for event in assistant.start():
process_event(board.led, event)
if name == 'main':
main()
This is how error text looks like: The error text when i run the sketch from python shell:
Backend terminated (returncode: -11) Fatal Python error: Segmentation fault
Thread 0x580fe470 (most recent call first):
File "/usr/lib/python3.5/threading.py", line 297 in wait File "/usr/lib/python3.5/threading.py", line 549 in wait File "/opt/aiy/projects-python/src/aiy/board.py", line 208 in _run File "/usr/lib/python3.5/threading.py", line 862 in run File "/usr/lib/python3.5/threading.py", line 914 in _bootstrap_inner File "/usr/lib/python3.5/threading.py", line 882 in _bootstrap
Thread 0x76f66640 (most recent call first): File "/usr/local/lib/python3.5/dist-packages-linux-armv7l/google/assistant/library/assistant.py", line 114 in exit File "/opt/aiy/projects-python/src/examples/voice/myassistant.py", line 96 in main File "/opt/aiy/projects-python/src/examples/voice/myassistant.py", line 99 in File "/usr/lib/python3/dist-packages/thonny/backend.py", line 1232 in _execute_prepared_user_code File "/usr/lib/python3/dist-packages/thonny/backend.py", line 1158 in wrapper File "/usr/lib/python3/dist-packages/thonny/backend.py", line 1171 in wrapper File "/usr/lib/python3/dist-packages/thonny/backend.py", line 1219 in execute_source File "/usr/lib/python3/dist-packages/thonny/backend.py", line 853 in _execute_source File "/usr/lib/python3/dist-packages/thonny/backend.py", line 840 in _execute_file File "/usr/lib/python3/dist-packages/thonny/backend.py", line 400 in _cmd_Run File "/usr/lib/python3/dist-packages/thonny/backend.py", line 217 in handle_command File "/usr/lib/python3/dist-packages/thonny/backend.py", line 162 in mainloop File "/usr/lib/python3/dist-packages/thonny/backend_launcher.py", line 70 in Use 'Stop/Restart' to restart the backend ...
The error text when I run the sketch from terminal:
Segmentation fault
I tried to search for this error in the web, but it gave no actual results. I hope you will help me to solve this issue.