Esempio n. 1
0
def main():
    '''
    TODO:   Idea we had: able to change to a different state by using 
            a specific hand gesture.
            E.g. when thumb and pinky touches together, we transition to state
            A, when thumb and ring finger touches together we transition
            to state B.
            This can *possibly* be done by always having two active listeners
            on the Leap controller. One is listening for "state change" gestures
            and the other one is the current active state's listener.
    '''

    # Create a sample listener and controller
    music_listener = MusicListener()
    # morse_listener = MorseListener()
    controller = Leap.Controller()

    # Have the sample listener receive events from the controller
    controller.add_listener(music_listener)
    # controller.add_listener(morse_listener)

    # Keep this process running until Enter is pressed
    print "Press Enter to quit..."
    try:
        sys.stdin.readline()
    except KeyboardInterrupt:
        pass
    finally:
        # Remove the sample listener when done
        controller.remove_listener(listener)
def train_char(training_char):
    controller = Leap.Controller()
    for t in range(NUM_SAMPLES):
        time.sleep(SAMPLE_DELAY)
        sample = get_hand_position(controller, True)
        while len(sample) != NUM_FEATURES:
            print "Please place only right hand in view"
            sample = get_hand_position(controller, True)
        print sample
        add_data(sign=training_char, **sample)
    print "Done training"
Esempio n. 3
0
def main():
    listener = GestureListener()
    controller = Leap.Controller()
    controller.add_listener(listener)
    try:
        sys.stdin.readline()
    except KeyboardInterrupt:
        pass
    finally:
        # Remove the sample listener when done
        controller.remove_listener(listener)
Esempio n. 4
0
def main():
    # Create a sample listener and controller
    listener = HandListener()
    controller = Leap.Controller()

    # Have the sample listener receive events from the controller
    controller.add_listener(listener)

    # Keep this process running until Enter is pressed
    print "Press Enter to quit..."
    sys.stdin.readline()

    # Remove the sample listener when done
    controller.remove_listener(listener)
Esempio n. 5
0
def guess(gLearner): 
    gesture_list = []
    listener = Listener() 
    controller = Leap.Controller(listener)
    while True: 
        letter = sys.stdin.readline()
        if letter[0]  == 'q': 
            print "Done recognizing"
            break
        if listener.recording: 
            print "Recognized ", gLearner.predict(listener.stop_recording())
            print "[Recognize] ",
        else: 
            print "Recording..."
            print "[Stop] ",
            listener.start_recording()
Esempio n. 6
0
def main():
    # Create a sample listener and controller
    listener = SampleListener()
    controller = Leap.Controller()

    # Have the sample listener receive events from the controller
    controller.add_listener(listener)

    # Keep this process running until Enter is pressed
    print "Press Enter to quit..."
    try:
        sys.stdin.readline()
    except KeyboardInterrupt:
        pass
    finally:
        # Remove the sample listener when done
        controller.remove_listener(listener)
def guess_char():
    global prev
    controller = Leap.Controller()
    controller.set_policy(Leap.Controller.POLICY_BACKGROUND_FRAMES)
    classes = clf.classes_
    probs = zip(
        classes,
        clf.predict_proba([
            v for k, v in get_hand_position(controller, True).iteritems()
        ])[0])
    alpha = max([score for sym, score in probs])
    most_probable = sorted([(sym, alpha * score + (1 - alpha))
                            for sym, score in probs],
                           key=lambda t: t[1],
                           reverse=True)
    print most_probable[:3]
    prev = most_probable[0][0]
    print prev
Esempio n. 8
0
def main():
    listener = MusicianListener()
    controller = Leap.Controller()

    controller.add_listener(listener)

    t1 = threading.Thread(target=play_music)
    t1.start()
    # Keep this process running until Enter is pressed
    print("Press Enter to quit...")
    try:
        sys.stdin.readline()
    except KeyboardInterrupt:
        pass
    finally:
        # all note off
        Flags.FINISH = True
        Flags.start_event.set()
        midiout.send_message([0xB0, 123, 0])
        controller.remove_listener(listener)
Esempio n. 9
0
def listen(gesture_list): 
    listener = Listener() 
    controller = Leap.Controller(listener) 

    print "- Press Enter to toggle recording" 
    print "- Press 'q' + Enter to quit"
    print "[Record]",
    while True: 
        letter = sys.stdin.readline()
        if letter[0]  == 'q': 
            print "Done recognizing gesture"
            break
        if listener.recording: 
            print "Stoping record" 
            print "[Record] ",
            gesture_list.append(listener.stop_recording())
        else: 
            print " ** Recording ** "
            print "[Stop] ",
            listener.start_recording()
Esempio n. 10
0
    def __init__(self):
        self.midi_interface = MidiInterface()
        self.recognizers = []
        self.controllers = []

        self.current_vol = 90
        self.stopped = False
        self.current_track = 1
        self.delay = 2.0
        self.track_count = 3
        self.tempo_count = 0

        self.track_updates = {'up': time.time(), 'down': time.time()}

        for g_name in AbletonController.supported_gestures.keys():
            callback = AbletonController.supported_gestures[g_name][0]
            recognizer = AbletonController.supported_gestures[g_name][1]

            r = recognizer(callback, self)
            self.recognizers.append(r)
            self.controllers.append(Leap.Controller(r))
            print "Initialized a recognizer for %s" % g_name
Esempio n. 11
0
 def __init__(self):
     self._controller = Leap.Controller()
     self._controller.set_policy(Leap.Controller.POLICY_BACKGROUND_FRAMES)
Esempio n. 12
0
from classifier import clf
from flask import Flask, render_template, jsonify, request, json
from hand_data import get_hand_position
from lib import Leap
import pickle
import random
import redis

app = Flask(__name__)

controller = Leap.Controller()
controller.set_policy(Leap.Controller.POLICY_BACKGROUND_FRAMES)

past_symbol = 'a'
prev_prediction = None

r = redis.StrictRedis(host='localhost', port=6379, db=0)


@app.route('/')
def home():
    return render_template('splash.html')


@app.route('/translate')
def translate():
    return render_template('ui.html')


# @app.route('/tutorial')
# def tutorial():
Esempio n. 13
0
bg = pygame.image.load(resource_path("assets\\background.png"))
finish_image = pygame.image.load(resource_path("assets\\finish_image.png"))
row_image = pygame.image.load(resource_path("assets\\row_selection.png"))
clock = pygame.time.Clock()
row1_Rect = [0, 44, 800, 100]
row2_Rect = [0, 189, 800, 100]
row3_Rect = [0, 334, 800, 100]

image_width = 100
white = (255, 255, 255)
black = (21, 21, 21)
green = (85, 107, 47)
red = (255, 0, 0)

# Leap Motion globals
controller = Leap.Controller()  # Physical controller
lastFrameID = 0

leftPointBuffer = 0
rightPointBuffer = 0
thumbPointBuffer = 0

# Tracks the order of the rows
row1_Order = [1, 2, 3, 4, 5, 6, 7]
row2_Order = [1, 2, 3, 4, 5, 6, 7]
row3_Order = [1, 2, 3, 4, 5, 6, 7]
combo = [5, 2, 7]
'''
=============================================================
Leap Motion Listener:
	- provided leap motion class to handle intialization, connection, and disconnection of the physical Leap Motion