Greetings fellow raspberry pi fans! I use this code for AIY VOICE KIT google assistant. This kit uses a raspberry pi to run google assistant. So basicly you can build your own google home and control other raspbery pis or whatever will talk to python. I have it set up with the built in python demo so that when I push the button on top of the pi I am able to talk to google with a microphone. It's sort of like saying "OK google" with a button.
#!/usr/bin/env python3 # Copyright 2017 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """A demo of the Google Assistant GRPC recognizer.""" import subprocess import aiy.cloudspeech import argparse import locale import logging import signal import sys from aiy.assistant.grpc import AssistantServiceClientWithLed from aiy.board import Board def volume(string): value = int(string) if value < 0 or value > 100: raise argparse.ArgumentTypeError('Volume must be in [0...100] range.') return value def locale_language(): language, _ = locale.getdefaultlocale() return language def main(): logging.basicConfig(level=logging.DEBUG) signal.signal(signal.SIGTERM, lambda signum, frame: sys.exit(0)) parser = argparse.ArgumentParser(description='Assistant service example.') parser.add_argument('--language', default=locale_language()) parser.add_argument('--volume', type=volume, default=100) args = parser.parse_args() with Board() as board: assistant = AssistantServiceClientWithLed(board=board, volume_percentage=args.volume, language_code=args.language) while True: logging.info('Press button to start conversation...') board.button.wait_for_press() logging.info('Conversation started!') assistant.conversation() if __name__ == '__main__': main()
However, there is no way to power it off without being connected to a desktop. I want to modify the program so that if I hold down the button for ten seconds, it will shutdown. Can anyone help me?