Formatting
parent
afbace91b1
commit
1f5e17ba0a
|
@ -11,14 +11,13 @@
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
import numpy as np
|
||||||
from abc import abstractmethod, ABCMeta
|
from abc import abstractmethod, ABCMeta
|
||||||
from importlib import import_module
|
from importlib import import_module
|
||||||
from os.path import splitext
|
from os.path import splitext
|
||||||
from typing import *
|
from typing import *
|
||||||
from typing import BinaryIO
|
from typing import BinaryIO
|
||||||
|
|
||||||
import numpy as np
|
|
||||||
|
|
||||||
from precise.model import load_precise_model
|
from precise.model import load_precise_model
|
||||||
from precise.params import inject_params
|
from precise.params import inject_params
|
||||||
from precise.util import buffer_to_audio
|
from precise.util import buffer_to_audio
|
||||||
|
|
|
@ -11,11 +11,12 @@
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
from math import floor
|
||||||
|
|
||||||
|
import attr
|
||||||
|
import json
|
||||||
from os.path import isfile
|
from os.path import isfile
|
||||||
|
|
||||||
import json
|
|
||||||
from math import floor
|
|
||||||
import attr
|
|
||||||
|
|
||||||
@attr.s(frozen=True)
|
@attr.s(frozen=True)
|
||||||
class ListenerParams:
|
class ListenerParams:
|
||||||
|
|
|
@ -12,11 +12,10 @@
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
import numpy as np
|
||||||
from typing import *
|
from typing import *
|
||||||
from typing import BinaryIO
|
from typing import BinaryIO
|
||||||
|
|
||||||
import numpy as np
|
|
||||||
|
|
||||||
from precise.params import pr
|
from precise.params import pr
|
||||||
from precise.util import audio_to_buffer
|
from precise.util import audio_to_buffer
|
||||||
|
|
||||||
|
|
|
@ -12,15 +12,14 @@
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
from prettyparse import create_parser
|
||||||
from random import randint
|
from random import randint
|
||||||
from threading import Event
|
from threading import Event
|
||||||
|
|
||||||
from prettyparse import create_parser
|
|
||||||
|
|
||||||
from precise.pocketsphinx.listener import PocketsphinxListener
|
from precise.pocketsphinx.listener import PocketsphinxListener
|
||||||
|
from precise.util import activate_notify
|
||||||
from precise_runner import PreciseRunner
|
from precise_runner import PreciseRunner
|
||||||
from precise_runner.runner import ListenerEngine
|
from precise_runner.runner import ListenerEngine
|
||||||
from precise.util import activate_notify
|
|
||||||
|
|
||||||
usage = '''
|
usage = '''
|
||||||
Run Pocketsphinx on microphone audio input
|
Run Pocketsphinx on microphone audio input
|
||||||
|
|
|
@ -13,9 +13,8 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
import wave
|
import wave
|
||||||
from subprocess import check_output, PIPE
|
|
||||||
|
|
||||||
from prettyparse import create_parser
|
from prettyparse import create_parser
|
||||||
|
from subprocess import check_output, PIPE
|
||||||
|
|
||||||
from precise.pocketsphinx.listener import PocketsphinxListener
|
from precise.pocketsphinx.listener import PocketsphinxListener
|
||||||
from precise.scripts.test import show_stats, Stats
|
from precise.scripts.test import show_stats, Stats
|
||||||
|
|
|
@ -12,15 +12,15 @@
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
import tty
|
|
||||||
import wave
|
|
||||||
from os.path import isfile
|
|
||||||
from select import select
|
from select import select
|
||||||
from sys import stdin
|
from sys import stdin
|
||||||
from termios import tcsetattr, tcgetattr, TCSADRAIN
|
from termios import tcsetattr, tcgetattr, TCSADRAIN
|
||||||
from prettyparse import create_parser
|
|
||||||
|
|
||||||
import pyaudio
|
import pyaudio
|
||||||
|
import tty
|
||||||
|
import wave
|
||||||
|
from os.path import isfile
|
||||||
|
from prettyparse import create_parser
|
||||||
|
|
||||||
usage = '''
|
usage = '''
|
||||||
Record audio samples for use with precise
|
Record audio samples for use with precise
|
||||||
|
@ -66,8 +66,8 @@ EXIT_KEY_CODE = 27
|
||||||
|
|
||||||
def record_until(p, should_return, args):
|
def record_until(p, should_return, args):
|
||||||
chunk_size = 1024
|
chunk_size = 1024
|
||||||
stream = p.open(format=p.get_format_from_width(args.width), channels=args.channels, rate=args.rate,
|
stream = p.open(format=p.get_format_from_width(args.width), channels=args.channels,
|
||||||
input=True, frames_per_buffer=chunk_size)
|
rate=args.rate, input=True, frames_per_buffer=chunk_size)
|
||||||
|
|
||||||
frames = []
|
frames = []
|
||||||
while not should_return():
|
while not should_return():
|
||||||
|
|
|
@ -15,9 +15,8 @@
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
import os
|
import os
|
||||||
from os.path import split, isfile
|
from os.path import split, isfile
|
||||||
from shutil import copyfile
|
|
||||||
|
|
||||||
from prettyparse import create_parser
|
from prettyparse import create_parser
|
||||||
|
from shutil import copyfile
|
||||||
|
|
||||||
usage = '''
|
usage = '''
|
||||||
Convert wake word model from Keras to TensorFlow
|
Convert wake word model from Keras to TensorFlow
|
||||||
|
|
|
@ -12,9 +12,9 @@
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
import os
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
import os
|
||||||
from prettyparse import create_parser
|
from prettyparse import create_parser
|
||||||
|
|
||||||
from precise import __version__
|
from precise import __version__
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
import json
|
import json
|
||||||
|
|
||||||
from os.path import isfile, isdir
|
from os.path import isfile, isdir
|
||||||
from prettyparse import create_parser
|
from prettyparse import create_parser
|
||||||
|
|
||||||
|
|
|
@ -12,13 +12,12 @@
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
import numpy as np
|
||||||
from os.path import join
|
from os.path import join
|
||||||
|
from prettyparse import create_parser
|
||||||
from random import randint
|
from random import randint
|
||||||
from threading import Event
|
from threading import Event
|
||||||
|
|
||||||
import numpy as np
|
|
||||||
from prettyparse import create_parser
|
|
||||||
|
|
||||||
from precise.network_runner import Listener
|
from precise.network_runner import Listener
|
||||||
from precise.util import save_audio, buffer_to_audio, activate_notify
|
from precise.util import save_audio, buffer_to_audio, activate_notify
|
||||||
from precise_runner import PreciseRunner
|
from precise_runner import PreciseRunner
|
||||||
|
@ -74,7 +73,8 @@ def main():
|
||||||
|
|
||||||
engine = ListenerEngine(listener, args.chunk_size)
|
engine = ListenerEngine(listener, args.chunk_size)
|
||||||
engine.get_prediction = get_prediction
|
engine.get_prediction = get_prediction
|
||||||
runner = PreciseRunner(engine, args.threshold, on_activation=on_activation, on_prediction=on_prediction)
|
runner = PreciseRunner(engine, args.threshold, on_activation=on_activation,
|
||||||
|
on_prediction=on_prediction)
|
||||||
runner.start()
|
runner.start()
|
||||||
Event().wait() # Wait forever
|
Event().wait() # Wait forever
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,6 @@ from collections import namedtuple
|
||||||
|
|
||||||
from prettyparse import create_parser
|
from prettyparse import create_parser
|
||||||
|
|
||||||
from precise.model import load_precise_model
|
|
||||||
from precise.network_runner import Listener
|
from precise.network_runner import Listener
|
||||||
from precise.params import inject_params
|
from precise.params import inject_params
|
||||||
from precise.train_data import TrainData
|
from precise.train_data import TrainData
|
||||||
|
|
|
@ -12,18 +12,16 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
import json
|
import json
|
||||||
|
import numpy as np
|
||||||
from argparse import ArgumentParser
|
from argparse import ArgumentParser
|
||||||
from contextlib import suppress
|
|
||||||
from glob import glob
|
from glob import glob
|
||||||
from hashlib import md5
|
from hashlib import md5
|
||||||
from os.path import join, isfile, dirname
|
from os.path import join, isfile
|
||||||
|
from prettyparse import add_to_parser
|
||||||
from typing import *
|
from typing import *
|
||||||
|
|
||||||
import numpy as np
|
|
||||||
from prettyparse import add_to_parser
|
|
||||||
|
|
||||||
from precise.util import find_wavs
|
from precise.util import find_wavs
|
||||||
from precise.vectorization import load_vector, vectorize_inhibit, vectorize
|
from precise.vectorization import load_vector, vectorize_inhibit
|
||||||
|
|
||||||
|
|
||||||
class TrainData:
|
class TrainData:
|
||||||
|
|
|
@ -11,10 +11,9 @@
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
from typing import *
|
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from os.path import join, dirname, abspath
|
from os.path import join, dirname, abspath
|
||||||
|
from typing import *
|
||||||
|
|
||||||
from precise.params import pr
|
from precise.params import pr
|
||||||
|
|
||||||
|
@ -55,6 +54,7 @@ def save_audio(filename: str, audio: np.ndarray):
|
||||||
save_audio = (audio * np.iinfo(np.int16).max).astype(np.int16)
|
save_audio = (audio * np.iinfo(np.int16).max).astype(np.int16)
|
||||||
wavio.write(filename, save_audio, pr.sample_rate, sampwidth=pr.sample_depth, scale='none')
|
wavio.write(filename, save_audio, pr.sample_rate, sampwidth=pr.sample_depth, scale='none')
|
||||||
|
|
||||||
|
|
||||||
def play_audio(filename: str):
|
def play_audio(filename: str):
|
||||||
"""
|
"""
|
||||||
Args:
|
Args:
|
||||||
|
@ -66,12 +66,14 @@ def play_audio(filename: str):
|
||||||
player = 'play' if platform.system() == 'Darwin' else 'aplay'
|
player = 'play' if platform.system() == 'Darwin' else 'aplay'
|
||||||
Popen([player, '-q', filename])
|
Popen([player, '-q', filename])
|
||||||
|
|
||||||
|
|
||||||
def activate_notify():
|
def activate_notify():
|
||||||
audio = 'data/activate.wav'
|
audio = 'data/activate.wav'
|
||||||
audio = abspath(dirname(abspath(__file__)) + '/../' + audio)
|
audio = abspath(dirname(abspath(__file__)) + '/../' + audio)
|
||||||
|
|
||||||
play_audio(audio)
|
play_audio(audio)
|
||||||
|
|
||||||
|
|
||||||
def glob_all(folder: str, filt: str) -> List[str]:
|
def glob_all(folder: str, filt: str) -> List[str]:
|
||||||
"""Recursive glob"""
|
"""Recursive glob"""
|
||||||
import os
|
import os
|
||||||
|
|
|
@ -12,10 +12,8 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
import hashlib
|
import hashlib
|
||||||
from typing import *
|
|
||||||
import json
|
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
from typing import *
|
||||||
|
|
||||||
from precise.params import pr
|
from precise.params import pr
|
||||||
from precise.util import load_audio
|
from precise.util import load_audio
|
||||||
|
|
Loading…
Reference in New Issue