From 843b99a4f7ae0cff7297e6dff2f23f9826314c1b Mon Sep 17 00:00:00 2001 From: gauthiier Date: Sun, 13 Mar 2022 19:24:02 +0100 Subject: [PATCH] threaded --- speak_broadcast.py | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/speak_broadcast.py b/speak_broadcast.py index 8f26861..240141a 100644 --- a/speak_broadcast.py +++ b/speak_broadcast.py @@ -1,10 +1,10 @@ -import argparse, json, sys, time, random, logging, signal +import argparse, json, sys, time, random, logging, signal, threading import utterance.voice import utterance.utils import utterance.osc import examine.metric -UTTERANCE_LEN = 16 +UTTERANCE_LEN = 16 #<--------------- these should be in config NUM_METRIC_GEN = 50 NUM_SAMPLE_VOICES = 3 broadcast = None @@ -57,6 +57,24 @@ def broadcast_utterance(v, utterance): broadcast.command('clear') time.sleep(2) +def find_candidates(v, uv_vec, voices, results): + logging.info(f"LOOP::finding candidates") + + start = time.time() + candidates = random.sample(voices, NUM_SAMPLE_VOICES) + for c in candidates: + if exit: + break + if c == v: + continue + results += utter_n_vectorise_distance(c, NUM_METRIC_GEN, uv_vec) + + results.sort(key=lambda t: t[0], reverse=True) + + lapse = time.time() - start + logging.info(f"LOOP::done - {lapse} secs") + + def signal_terminate(signum, frame): global exit @@ -117,23 +135,14 @@ def main() -> int: while not exit: + results = [] + t = threading.Thread(target=find_candidates, args=[v, uv_vec, voices, results]) + t.start() + logging.info(f"LOOP::broadcasting {v.name}") broadcast_utterance(v, uv) - logging.info(f"LOOP::finding candidates") - start = time.time() - candidates = random.sample(voices, NUM_SAMPLE_VOICES) - results = [] - for c in candidates: - if exit: - break - if c == v: - continue - results += utter_n_vectorise_distance(c, NUM_METRIC_GEN, uv_vec) - - results.sort(key=lambda t: t[0], reverse=True) - lapse = time.time() - start - logging.info(f"LOOP::done - {lapse} secs") + t.join() # ok here we need to randomise maybe...?! # ([d, t, v])