0

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?

  • Comments are not the right place to elaborate your question. You should edit the question. – Ingo May 1 at 14:56
  • I wasn't online a while ago thank you for editing it – UNKNOWN May 1 at 15:48
  • Seems more to be a general programming question. Maybe you will get quicker better answers at stackoverflow.com ? – Ingo May 1 at 18:31
  • I don't think so, this AIY voice stuff is only for raspberry pi. – UNKNOWN May 1 at 18:42
  • If anyone can help that would be great. – UNKNOWN May 1 at 21:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.