
Package index
Launch the app
Run the bundled Shiny UI locally — same interface as the hosted version, no upload limits, recordings stay on your machine.
-
run_app() - Launch the Shinytone app locally
Normalisation
By-speaker semitone or z-score f0 normalisation, plus landmark-based time normalisation for multisyllabic words and auto-detection of time columns that are already on a [0, 1] scale.
-
normalise_f0() - Normalise f0 by speaker
-
normalise_time_landmarks() - Landmark-normalised time columns
-
normalise_time_token() - Whole-token 0-1 time normalisation
-
resolve_time_norm() - Per-token normalised time, honouring an already-normalised column
-
time_already_normalised() - Does a time column look already normalised to [0, 1]?
TextGrid landmarks
Read interval tiers from Praat TextGrids and attach per-frame segment labels and boundaries (e.g. syllables) to long-format f0 data, and keep only the frames inside chosen intervals (vowel, rhyme, or named labels).
-
tg_interval_tiers() - Interval-tier names across a set of TextGrids
-
assign_tier_landmarks() - Assign each time to its interval in a TextGrid interval tier
-
attach_landmarks() - Attach TextGrid landmark columns to a long-format f0 data frame
-
filter_interval_rows() - Keep only f0 frames that fall inside chosen TextGrid intervals
-
ipa_vowel_label() - Does an interval label denote a vowel (IPA)?
Voiced-region trimming and resampling
Trim each token to its voiced span, flag contours with gaps inside the measured region, measure how long each contour lasts (per token or per landmark segment), and resample every contour to N equidistant points for export or cross-token comparison.
-
trim_to_voiced() - Trim each token to its voiced region
-
flag_f0_gaps() - Flag tokens whose f0 has gaps inside the measured region
-
contour_duration() - Duration of each f0 contour
-
resample_f0_equal() - Resample each token's f0 contour to N equidistant points
Outlier and artefact inspection
Token-level outlier detection by speaker z-score and by speaker x tone level, plus sample-level pitch-tracking artefacts and a low-intensity check (Sundberg 1973, Steffman & Cole 2022).
-
inspect_f0() - Inspect f0 data for token-level outliers and sample-level jumps
-
flag_outliers() - Flag per-token f0 outliers using by-speaker z-scores
-
flag_level_outliers() - Flag tokens whose overall f0 level is unusual for their speaker and tone
-
flag_low_intensity() - Flag low-intensity f0 samples within tokens
-
flag_pitch_jumps() - Flag sample-to-sample f0 jumps within tokens
Contour clustering
Unsupervised grouping of tokens by f0-contour shape to discover candidate tone categories when the number of tones is unknown (Kaland 2023), with feature extraction and a choice of how many groups.
-
cluster_f0() - Cluster f0 contours into candidate tone categories
-
cluster_features() - Build per-token feature vectors for f0-contour clustering
-
choose_k_f0() - Diagnostics for choosing the number of clusters (candidate tones)
-
cluster_mdl() - Recompute MDL information cost for stored clusterings at a given bending
-
cluster_agreement() - Agreement between clusters and known tone labels
Sonification
Render an f0 contour as an audible waveform (pure tone, complex tone, or a source-filter synthesised vowel) so prototypical tones can be heard, not only seen.
-
sonify_f0() - Sonify an f0 contour
Curate tone labels
Re-label tone-category variants or exclude tokens, without overwriting the original labels.
-
apply_relabels() - Apply tone re-labels and exclusions to a long-format f0 table
Contour modelling
Token-level polynomial fits, mixed-effects growth-curve analysis, and GAMMs over tone contours, with AR1 correction and model-checking diagnostics.
-
fit_polynomial() - Fit Legendre polynomials to f0 contours, token by token
-
fit_gca() - Fit a Growth Curve Analysis (GCA) model to f0 contours
-
predict_gca() - Predict population-level f0 contours from a GCA fit
-
fit_gamm() - Fit a Generalised Additive Mixed Model (GAMM) to f0 contours
-
predict_gamm() - Predict population-level f0 smooth curves from a GAMM fit
-
diagnose_gamm() - Diagnose a fitted GAMM
Chao tone numerals
Convert mean or predicted contours into Chao tone numerals (reference-line, interval-based, robust FOR methods).
-
compute_mean_contour() - Compute the per-tone mean f0 contour from long-format data
-
contour_to_chao() - Convert per-tone contours to Chao tone numerals
-
classify_contour() - Classify a Chao tone numeral string as a shape
Bundled data
A small citation-tone corpus that ships with the package for examples, vignettes, and the Shiny app’s “Try with our sample data” button.
-
sample_f0 - Sample f0 contour dataset
-
shinytoneshinytone-package - shinytone: A Citation Tone Research Hub