def __init__(self, nb_sights=68):
"""Instantiate a vowel position's predictor.
:param nb_sights: (int) Number of face sights. Must match the one of FaceTwoDim().
:raises: NotImplementedError: given nb sights is not supported.
:raises: sppasTypeError: given nb sights is not of 'int' type.
"""
self._description = MSG_DESCRIPTION_BASE
self.__sights = None
self._f2 = FaceTwoDim()
try:
nb_sights = int(nb_sights)
except ValueError:
raise sppasTypeError(type(nb_sights), 'int')
nb_sights = int(nb_sights)
if nb_sights != self._f2.dim:
raise NotImplementedError('The support for vowel prediction with {:d} sights is not implemented yet. Expected {:d}.'.format(nb_sights, self._f2.dim))
self._vowels = dict()
self.__vowel_mapping = {'b': self._calculate_vowel_b, 'c': self._calculate_vowel_c, 'm': self._calculate_vowel_m, 's': self._calculate_vowel_s, 'sf': self._calculate_vowel_sf, 'sd': self._calculate_vowel_sd, 't': self._calculate_vowel_t, 'n': self._calculate_vowel_n}