OneTrack

OneTrack(self, maximum_formant, sound=None, samples=None, sampling_frequency=None, xmin=0.0, n_formants=4, window_length=0.025, time_step=0.002, pre_emphasis_from=50, smoother=Smoother(), loss_fun=Loss(), agg_fun=Agg())

A single formant track.

You can provide either

  • A parselmouth Sound object to the sound argument

xor

  • An array of audio samples to the samples argument
  • The sampling frequency to the sampling_frequency argument
  • Any optional time offset to the xmin argument.

If a Sound object is passed to sound, any values passed to samples, sampling_frequency and xmin are ignored.

Parameters

Name Type Description Default
sound pm.Sound A parselmouth.Sound object. None
samples np.ndarray A numpy array of audio samples. None
sampling_frequency float The audio sampling frequency. None
xmin float The time offset for the audio. Defaults to 0.0. 0.0
maximum_formant float max formant required
n_formants int The number of formants to track. Defaults to 4. 4
window_length float Window length of the formant analysis. Defaults to 0.025. 0.025
time_step float Time step of the formant analyusis window. Defaults to 0.002. 0.002
pre_emphasis_from float Pre-emphasis threshold. Defaults to 50. 50
smoother Smoother The smoother method to use. Defaults to Smoother(). Smoother()
loss_fun Loss The loss function to use. Defaults to Loss(). Loss()
agg_fun Agg The loss aggregation function to use. Defaults to Agg(). Agg()

Attributes

Name Type Description
maximum_formant float The max formant
time_domain np.array The time domain of the formant estimates
formants np.ndarray A (formants, time) array of values. The formants as initially estimated by praat-parselmouth
smoothed_formants np.ndarray The smoothed formant values, using the method passed to smoother.
parameters np.ndarray The smoothing parameters.
smooth_error float The error term between formants and smoothed formants.
file_name str The filename of the audio file, if set.
interval aligned_textgrid.SequenceInterval The textgrid interval of the sound, if set.
id str The interval id of the sound, if set.
group str The tier group name of the sound, if set.

Methods

Name Description
spectrogram This will plot the spectrogram and formant tracks
to_df Output either the formant values or the formant smoothing parameters as a polars dataframe

spectrogram

OneTrack.spectrogram(**kwargs)

This will plot the spectrogram and formant tracks of a single candidate track. If a file_name is provided, it will save the plot to disk.

Parameters

Name Type Description Default
formants int The number of formants to plot. Defaults to 3. required
maximum_frequency float The frequency range the spectrogram and formants will be plotted up to. Defaults to 3500. required
tracks bool Whether or not to plot the formant tracks. Defaults to True. If False, just the spectogram will be plotted. required
dynamic_range float A all spectrogram values below the dynamic range. will be plotted as white. Defaults to 60. required
figsize tuple[float, float] Width and height of the figure in inches. Defaults to (8,5). required
color_scale str A named matplotlib color scale for the spectrogram. Defaults to “Greys”. See here for more options. required
file_name Path | None If provided, how to save the spectrogram. If not provided (None) the plot will show interactively. Defaults to None. required
dpi float If the plot is being saved, its image resolution in dots per inch. Defaults to 100. required

to_df

OneTrack.to_df(output='formants')

Output either the formant values or the formant smoothing parameters as a polars dataframe

Parameters

Name Type Description Default
output Literal[‘formants’, ‘param’, ‘log_param’] Whether to output the formants or the smoothing parameters. Defaults to “formants”. 'formants'

Returns

Type Description
pl.DataFrame A polars.DataFrame