Base class for any multi-models predictor.
Module CuedSpeech.wherecue
Class BaseWhereModelPredictor
Description
Constructor
Create a hand transitions predictor.
Parameters
- version_number: (int) Version of the predictor system.
View Source
def __init__(self, *args):
"""Create a hand transitions predictor.
:param version_number: (int) Version of the predictor system.
"""
self._models = dict()
self._model = None
self._version = BaseWhereModelPredictor.DEFAULT_VERSION
Public functions
version_numbers
Return the whole list of supported version numbers.
View Source
def version_numbers(self) -> list:
"""Return the whole list of supported version numbers."""
return list(self._models.keys())
get_version_number
Return the version number of the selected predictor (int).
View Source
def get_version_number(self) -> int:
"""Return the version number of the selected predictor (int)."""
return self._version
set_version_number
Change the predictor version number.
Parameters
- version_number: (int) One of the supported versions.
Raises
- sppasKeyError: if invalid version number
- sppasTypeError: invalid type for given version_number
View Source
def set_version_number(self, version_number: int) -> None:
"""Change the predictor version number.
:param version_number: (int) One of the supported versions.
:raises: sppasKeyError: if invalid version number
:raises: sppasTypeError: invalid type for given version_number
"""
try:
v = int(version_number)
except ValueError:
raise sppasTypeError('int', str(type(version_number)))
authorized = self.version_numbers()
try:
if v not in authorized:
raise sppasKeyError(str(authorized), version_number)
except ValueError:
logging.error('{}: Invalid predictor version {}. Expected one of: {}'.format(self.__name__, version_number, authorized))
raise sppasKeyError(str(authorized), version_number)
self._version = v
self._model = self._models[self._version]()
vowel_codes
Return the list of vowel codes the class can predict.
View Source
def vowel_codes(self) -> tuple:
"""Return the list of vowel codes the class can predict.
"""
if self._model is None:
return ()
if hasattr(self._model, 'vowel_codes') is False:
return ()
return self._model.vowel_codes()
