From cc32959e29cf2337b7fd77d69627d80cbf491075 Mon Sep 17 00:00:00 2001 From: "Matthew D. Scholefield" Date: Thu, 22 Feb 2018 01:10:41 -0600 Subject: [PATCH] Remove system path modifications To run a script during development, instead ./setup.sh followed by precise- should be used This ensures all the proper paths are already setup (such as for PreciseRunner) --- precise/functions.py | 1 + precise/model.py | 1 + precise/network_runner.py | 4 ++-- precise/params.py | 2 +- precise/pocketsphinx/listener.py | 6 +++++- precise/pocketsphinx/scripts/record.py | 8 ++------ precise/pocketsphinx/scripts/test.py | 9 ++++++--- precise/scripts/convert.py | 6 +----- precise/scripts/eval.py | 9 +++------ precise/scripts/record.py | 15 ++++++--------- precise/scripts/stream.py | 7 ++----- precise/scripts/test.py | 8 ++------ precise/scripts/train.py | 7 +------ precise/scripts/train_incremental.py | 18 +++++++----------- precise/train_data.py | 2 -- precise/util.py | 1 + precise/vectorization.py | 4 ++-- runner/example.py | 9 ++------- runner/precise_runner/__init__.py | 2 +- runner/precise_runner/runner.py | 1 - runner/setup.py | 4 ++-- 21 files changed, 48 insertions(+), 76 deletions(-) diff --git a/precise/functions.py b/precise/functions.py index 6b2a2b4..ccdacb2 100644 --- a/precise/functions.py +++ b/precise/functions.py @@ -1,3 +1,4 @@ +# Copyright (c) 2017 Mycroft AI Inc. from typing import * diff --git a/precise/model.py b/precise/model.py index a0595a1..ed4af6f 100644 --- a/precise/model.py +++ b/precise/model.py @@ -1,3 +1,4 @@ +# Copyright (c) 2017 Mycroft AI Inc. from os.path import isfile from typing import * diff --git a/precise/network_runner.py b/precise/network_runner.py index 9ef000a..748746f 100644 --- a/precise/network_runner.py +++ b/precise/network_runner.py @@ -1,4 +1,3 @@ -# Python 3 # Copyright (c) 2017 Mycroft AI Inc. from abc import abstractmethod, ABCMeta from importlib import import_module @@ -8,9 +7,9 @@ from typing import BinaryIO import numpy as np -from precise.util import buffer_to_audio from precise.model import load_precise_model from precise.params import inject_params +from precise.util import buffer_to_audio class Runner(metaclass=ABCMeta): @@ -70,6 +69,7 @@ class KerasRunner(Runner): class Listener: """Listener that preprocesses audio into MFCC vectors and executes neural networks""" + def __init__(self, model_name: str, chunk_size: int = -1, runner_cls: type = None): self.window_audio = np.array([]) self.pr = inject_params(model_name) diff --git a/precise/params.py b/precise/params.py index d20b3f1..4758851 100644 --- a/precise/params.py +++ b/precise/params.py @@ -1,8 +1,8 @@ -# Python 3 # Copyright (c) 2017 Mycroft AI Inc. import json from collections import namedtuple from math import floor + import numpy as np diff --git a/precise/pocketsphinx/listener.py b/precise/pocketsphinx/listener.py index e20e538..5daeecd 100644 --- a/precise/pocketsphinx/listener.py +++ b/precise/pocketsphinx/listener.py @@ -1,13 +1,17 @@ +#!/usr/bin/env python3 +# Copyright (c) 2017 Mycroft AI Inc. from typing import * from typing import BinaryIO + import numpy as np -from precise.util import audio_to_buffer from precise.params import pr +from precise.util import audio_to_buffer class PocketsphinxListener: """Pocketsphinx listener implementation used for comparison with Precise""" + def __init__(self, key_phrase, dict_file, hmm_folder, threshold=1e-90, chunk_size=-1): from pocketsphinx import Decoder config = Decoder.default_config() diff --git a/precise/pocketsphinx/scripts/record.py b/precise/pocketsphinx/scripts/record.py index b28a9ec..929815d 100755 --- a/precise/pocketsphinx/scripts/record.py +++ b/precise/pocketsphinx/scripts/record.py @@ -1,13 +1,9 @@ #!/usr/bin/env python3 # Copyright (c) 2017 Mycroft AI Inc. - -import sys - -sys.path += ['.', 'runner'] # noqa - -from threading import Event from random import randint from subprocess import Popen +from threading import Event + from prettyparse import create_parser from precise.pocketsphinx.listener import PocketsphinxListener diff --git a/precise/pocketsphinx/scripts/test.py b/precise/pocketsphinx/scripts/test.py index 65ca7a6..3b401f3 100755 --- a/precise/pocketsphinx/scripts/test.py +++ b/precise/pocketsphinx/scripts/test.py @@ -2,13 +2,13 @@ # Copyright (c) 2017 Mycroft AI Inc. import wave from subprocess import check_output, PIPE + from prettyparse import create_parser from precise.pocketsphinx.listener import PocketsphinxListener from precise.scripts.test import show_stats from precise.train_data import TrainData - usage = ''' Test a dataset using Pocketsphinx @@ -35,7 +35,9 @@ usage = ''' def eval_file(filename) -> float: - transcription = check_output(['pocketsphinx_continuous', '-kws_threshold', '1e-20', '-keyphrase', 'hey my craft', '-infile', filename], stderr=PIPE) + transcription = check_output( + ['pocketsphinx_continuous', '-kws_threshold', '1e-20', '-keyphrase', 'hey my craft', + '-infile', filename], stderr=PIPE) return float(bool(transcription) and not transcription.isspace()) @@ -44,7 +46,8 @@ def main(): data = TrainData.from_both(args.db_file, args.db_folder, args.data_dir) print('Data:', data) - listener = PocketsphinxListener(args.key_phrase, args.dict_file, args.hmm_folder, args.threshold) + listener = PocketsphinxListener(args.key_phrase, args.dict_file, args.hmm_folder, + args.threshold) def run_test(filenames, name): print() diff --git a/precise/scripts/convert.py b/precise/scripts/convert.py index bd18e4d..37bc9b7 100755 --- a/precise/scripts/convert.py +++ b/precise/scripts/convert.py @@ -1,14 +1,10 @@ #!/usr/bin/env python3 # Attribution: This script was adapted from https://github.com/amir-abdi/keras_to_tensorflow # Copyright (c) 2017 Mycroft AI Inc. - -import sys - -sys.path += ['.'] # noqa - import os from os.path import split, isfile from shutil import copyfile + from prettyparse import create_parser usage = ''' diff --git a/precise/scripts/eval.py b/precise/scripts/eval.py index 2a923f7..c97cbcf 100755 --- a/precise/scripts/eval.py +++ b/precise/scripts/eval.py @@ -1,15 +1,12 @@ #!/usr/bin/env python3 # Copyright (c) 2017 Mycroft AI Inc. -import sys - -sys.path += ['.'] # noqa - import json -from precise.network_runner import Listener -from precise.scripts.test import show_stats from prettyparse import create_parser + +from precise.network_runner import Listener from precise.params import inject_params +from precise.scripts.test import show_stats from precise.train_data import TrainData usage = ''' diff --git a/precise/scripts/record.py b/precise/scripts/record.py index 99e74ea..8a6f45c 100755 --- a/precise/scripts/record.py +++ b/precise/scripts/record.py @@ -1,18 +1,15 @@ #!/usr/bin/env python3 # Copyright (c) 2017 Mycroft AI Inc. -import sys - -sys.path += ['.', 'runner'] # noqa - -from threading import Event -from random import randint from os.path import join +from random import randint from subprocess import Popen -from prettyparse import create_parser -import numpy as np +from threading import Event + +import numpy as np +from prettyparse import create_parser -from precise.util import save_audio, buffer_to_audio from precise.network_runner import Listener +from precise.util import save_audio, buffer_to_audio from precise_runner import PreciseRunner from precise_runner.runner import ListenerEngine diff --git a/precise/scripts/stream.py b/precise/scripts/stream.py index ff1d0ec..92db11a 100755 --- a/precise/scripts/stream.py +++ b/precise/scripts/stream.py @@ -1,15 +1,12 @@ #!/usr/bin/env python3 # Copyright (c) 2017 Mycroft AI Inc. - +import os import sys -sys.path += ['.'] # noqa - -import os from prettyparse import create_parser -from precise.network_runner import Listener from precise import __version__ +from precise.network_runner import Listener usage = ''' stdin should be a stream of raw int16 audio, written in diff --git a/precise/scripts/test.py b/precise/scripts/test.py index 9cdb51d..5c2b54f 100755 --- a/precise/scripts/test.py +++ b/precise/scripts/test.py @@ -1,13 +1,9 @@ #!/usr/bin/env python3 # Copyright (c) 2017 Mycroft AI Inc. - -import sys - -sys.path += ['.'] # noqa - from prettyparse import create_parser -from precise.params import inject_params + from precise.model import load_precise_model +from precise.params import inject_params from precise.train_data import TrainData usage = ''' diff --git a/precise/scripts/train.py b/precise/scripts/train.py index cee66f4..b7b2b07 100755 --- a/precise/scripts/train.py +++ b/precise/scripts/train.py @@ -1,15 +1,10 @@ #!/usr/bin/env python3 # Copyright (c) 2017 Mycroft AI Inc. - -import sys - -sys.path += ['.'] # noqa - from prettyparse import create_parser -from precise.train_data import TrainData from precise.model import create_model from precise.params import inject_params, save_params +from precise.train_data import TrainData usage = ''' Train a new model on a dataset diff --git a/precise/scripts/train_incremental.py b/precise/scripts/train_incremental.py index c7f180a..07a67b8 100755 --- a/precise/scripts/train_incremental.py +++ b/precise/scripts/train_incremental.py @@ -1,22 +1,18 @@ #!/usr/bin/env python3 # Copyright (c) 2017 Mycroft AI Inc. - -import sys - -sys.path += ['.'] # noqa +from glob import glob +from os import makedirs +from os.path import basename, splitext, isfile, join +from random import random +from typing import * import numpy as np -from os import makedirs -from random import random -from glob import glob -from os.path import basename, splitext, isfile, join -from typing import * from prettyparse import create_parser -from precise.train_data import TrainData -from precise.network_runner import Listener, KerasRunner from precise.model import create_model +from precise.network_runner import Listener, KerasRunner from precise.params import inject_params +from precise.train_data import TrainData from precise.util import load_audio, save_audio usage = ''' diff --git a/precise/train_data.py b/precise/train_data.py index f80be9a..bd4490c 100644 --- a/precise/train_data.py +++ b/precise/train_data.py @@ -1,6 +1,4 @@ -# Python 3 # Copyright (c) 2017 Mycroft AI Inc. - import json from argparse import ArgumentParser from hashlib import md5 diff --git a/precise/util.py b/precise/util.py index ff5a6f1..f11b435 100644 --- a/precise/util.py +++ b/precise/util.py @@ -1,3 +1,4 @@ +# Copyright (c) 2017 Mycroft AI Inc. from typing import * import numpy as np diff --git a/precise/vectorization.py b/precise/vectorization.py index 97f0e5e..776fcd9 100644 --- a/precise/vectorization.py +++ b/precise/vectorization.py @@ -1,10 +1,10 @@ +# Copyright (c) 2017 Mycroft AI Inc. from typing import * import numpy as np -from precise.util import load_audio from precise.params import pr - +from precise.util import load_audio inhibit_t = 0.4 inhibit_dist_t = 1.0 diff --git a/runner/example.py b/runner/example.py index bb9fe3d..690c3e5 100755 --- a/runner/example.py +++ b/runner/example.py @@ -1,10 +1,5 @@ #!/usr/bin/env python3 # Copyright (c) 2017 Mycroft AI Inc. - -import sys - -sys.path += ['.', 'runner'] # noqa - from argparse import ArgumentParser from subprocess import Popen from precise_runner import PreciseRunner, PreciseEngine @@ -23,10 +18,10 @@ def main(): Popen(['aplay', '-q', 'data/activate.wav']) engine = PreciseEngine('./precise/stream.py', args.model) - PreciseRunner(engine, on_prediction=on_prediction, on_activation=on_activation, trigger_level=0).start() + PreciseRunner(engine, on_prediction=on_prediction, on_activation=on_activation, + trigger_level=0).start() Event().wait() # Wait forever if __name__ == '__main__': main() - diff --git a/runner/precise_runner/__init__.py b/runner/precise_runner/__init__.py index e593016..3aef68f 100644 --- a/runner/precise_runner/__init__.py +++ b/runner/precise_runner/__init__.py @@ -1 +1 @@ -from .runner import PreciseRunner, PreciseEngine \ No newline at end of file +from .runner import PreciseRunner, PreciseEngine diff --git a/runner/precise_runner/runner.py b/runner/precise_runner/runner.py index 594d649..c5a79cd 100644 --- a/runner/precise_runner/runner.py +++ b/runner/precise_runner/runner.py @@ -1,6 +1,5 @@ # Python 2 + 3 # Copyright (c) 2017 Mycroft AI Inc. - import atexit from subprocess import PIPE, Popen from threading import Thread diff --git a/runner/setup.py b/runner/setup.py index bb3ffc2..0bf9210 100755 --- a/runner/setup.py +++ b/runner/setup.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 - +# Copyright (c) 2017 Mycroft AI Inc. from setuptools import setup, find_packages setup( @@ -15,7 +15,7 @@ setup( description='Wrapper to use Mycroft Precise Wake Word Listener', keywords='wakeword keyword wake word listener sound', url='http://github.com/MycroftAI/mycroft-precise', - + zip_safe=True, classifiers=[ 'Development Status :: 3 - Alpha',