def averageAcc(OSCaddress, OSCparams): global jerkData, orientation, lastJerk jerk = sum([abs(x) for x in OSCparams]) # ~ print("jerk", jerk) if jerk > jerkThreeshold : if jerkData is None : jerkData = [] jerkData.append(jerk) else : if jerkData and (datetime.now() - lastJerk).total_seconds()>debounce : jerk = max(jerkData) # ~ print("max ACC :", jerk) jerk = (jerk-jerkThreeshold)/(maxJerk-jerkThreeshold) # map to 0~1 corpusMix = getCorpusPercentages(jerk) markov.changeParameter({"potA":corpusMix[0]}) markov.changeParameter({"potB":corpusMix[1]}) markov.changeParameter({"potC":corpusMix[2]}) corpusMix = [int(c*100) for c in corpusMix] print("swing detected : %.02f -> low %i, mid %i, high %i" % (jerk*100,corpusMix[0], corpusMix[1], corpusMix[2] )) # ~ print("X:",OSCparams[0], " Y:", OSCparams[1], "Z:", OSCparams[2],"\n") # ~ markov.changeParameter({"start":True}) markov.generateText() jerkData = None lastJerk = datetime.now() else : return
def generate_post_body(sub='relationships', order=15, length=500): ''' generate a post body given a subreddit, sample length and title length''' text = body_string(sub) post = markov.generateText(text, order, length) return post + '...'
def generate_post_title(sub='relationships', order=6, length =120): ''' generate a post title given a subreddit, sample length and title length''' text = title_string(sub) post = markov.generateText(text, order, length) return post
audioFiles = glob.glob(audioFolder + "/*.wav") audioFiles += glob.glob(audioFolder + "/*.WAV") print("audio files availables :", audioFiles) wasButtonPressed = leds.readButton() shutdownTimer = None randomWavTimer = datetime.now() + timedelta(seconds=randomInterval) try: while True: if debug: selectedFile = audioFiles[random.randint( 0, len(audioFiles) - 1)] audio.play(selectedFile) print("playing random sample", selectedFile) time.sleep(10) markov.generateText(300) time.sleep(20) else: isButtonPressed = leds.readButton() if isButtonPressed: if not wasButtonPressed: # the button is pressed for the first time print("button is pushed") shutdownTimer = datetime.now() + timedelta( seconds=5 ) #if maintained 5sec, it will shut the pi down markov.generateText(300) elif shutdownTimer and datetime.now() > shutdownTimer: audio.isPlaying = False markov.readTextToSpeech(random.choice(byeMessages)) time.sleep(5) # exitCleanly(shutdown=True)
return bigram # Function to get the 2nd order conditional data from trigram_counts data def getTrigram(trigramFile): trigram = [] with open(trigramFile, "r") as fp: for i in list(fp): tmp = i.split() try: trigram.append((int(tmp[0]), int(tmp[1]), int(tmp[2]), pow(10, float(tmp[3])))) except: pass return trigram vocab = fileToWords(vocabFile) # Get all words from vocab.txt file unigram = getUnigram(unigramFile) # Get unigram probabilities from unigram.txt file bigram = getBigram(bigramFile) # Get bigram conditional probabilities from bigram.txt file trigram = getTrigram(trigramFile) # Get trigram conditional probabilities from trigram.txt file markov = markov.MarkovModel(vocab, unigram, bigram, trigram) markov.generateText()