How does speech rate affect F0 contours and rhythm in professional Mandarin broadcast speech?
This pipeline analyses the prosodic consequences of rate variation in CCTV News Broadcast speech, covering F0 contour shape (via growth-curve models) and temporal rhythm metrics (via mixed-effects regression).
| Source | CCTV "News Broadcast" (Xinwen Lianbo) |
| Period | 2016--2024 |
| Speakers | 9 anchor speakers |
| Utterances | 1,295 |
| Syllables | ~65,500 |
| Rate conditions | Normal, Slow |
Each utterance is segmented at the syllable level with Praat TextGrids (ProsodyPro annotation).
wav + TextGrid
|
v
[extract_prosody.praat] Praat: syllable-level F0 (10-point normalised),
duration, tone label -> CSV
|
v
[build_database.py] SQLite: speakers / utterances / syllables / rhythm_metrics
| + z-score normalisation within speaker (normalize_f0.py)
v
[rate_effects.R] RSQLite -> lme4:
growth-curve F0 ~ poly(time, 2) * rate * tone
mean F0 and duration ~ rate * tone
+ ggplot2 contour figures
# 1. extract syllable features in Praat
# (open Praat, run scripts/extract_prosody.praat)
# 2. build SQLite database from CSV
python src/build_database.py data/syllable_features.csv -o data/corpus.db
# 3. z-score normalise F0 within speaker
python src/normalize_f0.py data/corpus.db
# 4. run statistical analysis
Rscript analysis/rate_effects.R- Slow speech rate flattens F0 contours: the quadratic time component interacts with rate for all four tones.
- Tone 3 (dipping) and Tone 4 (falling) show the largest rate-induced shape changes.
- Duration increases ~40% in slow speech; rhythm metrics (VarcoV, nPVI-V) show rate-dependent variability shifts.
Li, C., Mao, Z., & Li, S. (2024). Analysis of normal and slow speech rate on the F0 contour of tones in Mandarin broadcasting speech. Proc. ISCSLP 2024.
Mao, Z., Li, C., & Li, S. (2024). Speech rate influence on rhythm alterations in Mandarin. Proc. ISCSLP 2024.
Python >= 3.9: pip install -r requirements.txt
R: lme4, lmerTest, emmeans, RSQLite, ggplot2
Praat >= 6.1 (for TextGrid extraction)
Raw audio data is not included in this repository.