Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions whisper-service/model_bases/buffer_audio_model_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from abc import abstractmethod
import numpy as np
import numpy.typing as npt
from utils.config_dict_contains import config_dict_contains_int
from utils.config_dict_contains import config_dict_contains_int, config_dict_contains_float
from utils.decode_wav import decode_wav
from utils.np_circular_buffer import NPCircularBuffer
from model_bases.transcription_model_base import TranscriptionModelBase
Expand All @@ -26,7 +26,7 @@ class BufferAudioModelBase(TranscriptionModelBase):
and process_segment() methods must be implemented.
'''
__slots__ = ['max_segment_samples', 'min_new_samples',
'num_last_processed_samples', 'num_purged_samples', 'buffer','silence_threshold']
'num_last_processed_samples', 'num_purged_samples', 'buffer', 'silence_threshold']
SAMPLE_RATE = 16_000

def __init__(self, ws, config):
Expand Down Expand Up @@ -71,6 +71,7 @@ def validate_config(config: dict) -> ImplementationModelConfig:
'max_segment_samples',
minimum=config['min_new_samples']
)
config_dict_contains_float(config, 'silence_threshold')
return config

def load_model(self) -> None:
Expand Down
1 change: 1 addition & 0 deletions whisper-service/model_bases/local_agree_model_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ def validate_config(config: dict) -> ImplementationModelConfig:
Returns:
config (TranscriptionModelConfig): Validated config object
'''
config = BufferAudioModelBase.validate_config(config)
config_dict_contains_int(config, 'local_agree_dim', minimum=1)
return config

Expand Down
30 changes: 30 additions & 0 deletions whisper-service/utils/config_dict_contains.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,36 @@ def config_dict_contains_int(config: dict, key: str, minimum=-sys.maxsize - 1, m
)


def config_dict_contains_float(
config: dict,
key: str,
minimum=-sys.maxsize - 1,
maximum=sys.maxsize
):
'''
Checks if config contains a property, key,
that is a float between minimum and maximum inclusive

Parameters:
config (dict) : Config dictionary
key (str) : Key to check in config dictionary
minimum (float): (Optional) minimum value key is allowed to be
maximum (int) : (Optional) maximum value key is allowed to be
'''
if key not in config:
raise ValueError(f'Config missing "{key}" property')
if not isinstance(config[key], float):
raise ValueError(f'"{key}" property of config must be a float')
if config[key] < minimum:
raise ValueError(
f'{key} property of config must be greater than or equal to {minimum}'
)
if config[key] > maximum:
raise ValueError(
f'{key} property of config must be less than or equal to {maximum}'
)


def config_dict_contains_str(config: dict, key: str, min_length=0, max_length=sys.maxsize):
'''
Checks if config contains a property, key,
Expand Down
Loading