From 72b984bf487973634915c6fb42d259cdc13afcbb Mon Sep 17 00:00:00 2001 From: Gauthier Date: Thu, 17 Mar 2022 15:29:44 +0100 Subject: [PATCH] terminal out --- speak_broadcast.py | 20 ++++++++++++++++---- utterance/utils.py | 11 ++++++++--- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/speak_broadcast.py b/speak_broadcast.py index 240141a..a6045c0 100644 --- a/speak_broadcast.py +++ b/speak_broadcast.py @@ -4,12 +4,15 @@ import utterance.utils import utterance.osc import examine.metric +logging.basicConfig(level=logging.ERROR) + UTTERANCE_LEN = 16 #<--------------- these should be in config NUM_METRIC_GEN = 50 NUM_SAMPLE_VOICES = 3 broadcast = None metric = None exit = False +terminal = False def format_str(text) -> str: t = utterance.utils.clean(text) @@ -36,6 +39,10 @@ def utter_n_vectorise_distance(v, n, vec): results.append([d, t, v]) return results +def terminal_utterance(utterance): + if terminal: + print(utterance, end="") + def broadcast_utterance(v, utterance): global broadcast, exit @@ -43,6 +50,7 @@ def broadcast_utterance(v, utterance): text = v.name.upper() + ":\n" broadcast.utterance(text, v.channel) + terminal_utterance(text) time.sleep(2) frags = v.fragments(utterance) @@ -50,11 +58,14 @@ def broadcast_utterance(v, utterance): for f in frags: text += f broadcast.utterance(text, v.channel) + terminal_utterance(f) time.sleep(2) if exit: return broadcast.command('clear') + print("==========") + time.sleep(2) def find_candidates(v, uv_vec, voices, results): @@ -83,14 +94,13 @@ def signal_terminate(signum, frame): def main() -> int: - global broadcast, metric + global broadcast, metric, terminal p = argparse.ArgumentParser() p.add_argument("-c", "--config", type=str, default="voice.config.json", help="configuratin file") p.add_argument("-i", "--iterations", type=int, default=10, help="number of iterations") - args = p.parse_args() - - logging.basicConfig(level=logging.INFO) + p.add_argument("-t", "--terminal", action=argparse.BooleanOptionalAction, help="print to terminal") + args = p.parse_args() logging.info(f"INIT::loading config file - {args.config}") @@ -99,6 +109,8 @@ def main() -> int: logging.info(conf) + terminal = args.terminal + #--------------------# # VOICES #--------------------# diff --git a/utterance/utils.py b/utterance/utils.py index 76a9483..e59a34a 100644 --- a/utterance/utils.py +++ b/utterance/utils.py @@ -22,7 +22,9 @@ def fragments(utterance: str): frags = [] sentences = utterance.splitlines() - PUNCT_RE = regex.compile(r'(\p{Punctuation})') + PUNCT_RE = regex.compile(r'(\p{Punctuation})') + + skip_punctuation = ["'"] for s in sentences: sf = PUNCT_RE.split(s) @@ -36,8 +38,11 @@ def fragments(utterance: str): cum += k else: cum += k - frags.append(cum) - cum = "" + if k in skip_punctuation: + continue + else: + frags.append(cum) + cum = "" cum += '\n' frags.append(cum)