Miao Zhang

@mzhang89.bsky.social

Post-doc in phonetics at the Department of Computational Linguistics, University of Zurich. Interested in the phonetics-phonology and phonetics-prosody interfaces.

Work on Chinese tone/speech errors tends to show that speakers replace entire tones with different ones, e.g. tone /51/ instead of tone /213/. To me that has always meant a kind of holistic melody that is non-decomposable. That’s different from languages where contours are decomposable.

🤯 Phonetic Universal Uncovered! 🎤 We analyzed over 60,000 speakers across 75 languages and confirmed a universal phonetic bias: High vowels (like /i, u/) are consistently spoken with a slightly higher pitch (F0) than low vowels (/a/).

OSF

doi.org

🗣️Mozilla Common Voice users!🗣️ Important notice: the client ID does not always correspond to a single speaker ID! Every so often, a single client ID contains more than one speaker’s voice. Our #Interspeech2025 paper examines the extent of this problem and proposes a solution

Interspeech 2025 poster on Quantifying and reducing speaker heterogeneity within the Common Voice Corpus

When people talk about neutralization in phonology, it's very important to check some phonetic data. It's very probable that we either didn't perceive it or overinterpreted some variance as non-natives.

ggplot2 is turning 18! 🎂 For nearly two decades, it’s helped data scientists turn complex data into clear, beautiful insights. We’re throwing a birthday party at Data+AI Summit, with treats and limited-edition swag. Come celebrate with us and @hadley.nz! 📍 Posit Lounge (402) 📅 June 10, 6–8pm

Bild

In case people don't use it very often, or never knew its existence, glimpse() from dplyr is a much better function to use when you want to have a very rough look at your dataset than head() or summary().