DEV Community

Ting Dong
Ting Dong

Posted on

Why French Sound Inventories Differ — and How We Published a Bounded 35-Sound Learning Dataset

When a language-learning product says it teaches “the sounds of French,” one deceptively simple question appears immediately: how many sounds are there?

There is no useful answer without first defining the job the inventory is meant to do. A phonological analysis, a pronunciation dictionary, a speech-recognition system, and a beginner curriculum can all model French sound structure differently without one of them necessarily being careless. They have different users, evidence, and failure costs.

Our team encountered this while turning Parle's internal pronunciation inventory into a public CSV. We needed a list that could connect IPA symbols to French spelling patterns, example words, and short mouth cues for English-speaking beginners. We also needed to avoid presenting one product's learning model as the only correct account of French phonology.

The result is a bounded dataset of 35 practical sound entries. This article explains the design decisions, the schema, and the limits we published with it.

A teaching inventory is a model, not a census

The International Phonetic Alphabet gives us a shared notation for describing speech sounds. It does not require every analyst or teacher to draw identical category boundaries for every language variety. The official IPA chart is a notation system; selecting a French inventory still requires linguistic and pedagogical decisions.

Counts can change when an inventory treats any of the following differently:

  • a contrast that is maintained by some speakers but merged by others;
  • a marginal or loan sound that appears mainly in borrowed words;
  • schwa, whose realization and deletion depend heavily on context and variety;
  • a historical contrast that remains visible in spelling but not in every speaker's production;
  • a phonetic realization versus a contrastive phoneme;
  • a glide represented separately from its related vowel.

For a curriculum, the important question is not “What number wins?” It is “What distinctions and cues help this audience interpret the material, and what qualifications prevent the model from being mistaken for a universal standard?”

That framing changed our publication process. We stopped treating the count as a headline claim and documented it as the size of a specific learning inventory.

The bounded 35-entry choice

The published table groups the entries this way:

Category Entries Curriculum purpose
Vowels 14 Stable oral and nasal vowel targets, lip rounding, tongue position, and nasal resonance
Semi-vowels 3 Short glides that connect rapidly into the following vowel
Consonants 18 Place, voicing, release, and the gap between written letters and pronounced consonants
Total 35 A compact reference used by the beginner learning library

This does not mean every speaker of French has exactly these 35 phonemes. It means these are the 35 entries the curriculum currently uses to organize explanations and cross-links. For example, the table includes /ŋ/ because learners encounter it in borrowed words such as parking and camping. Other analyses may treat its status differently. The table also avoids multiplying entries simply because several graphemes can represent the same sound.

Publishing the category totals makes the model inspectable. Publishing the caveat beside them prevents the totals from becoming false precision.

A schema built for inspection

The CSV is deliberately small and readable. Each row uses the following fields:

Field Meaning
ipa The IPA symbol used as the entry identifier
category vowels, semi-vowels, or consonants
spellings Common French graphemes associated with the entry
example_words Short French examples showing those spelling patterns
mouth_cue_en A concise physical cue written for English-speaking learners
source_url The canonical human-readable chart
last_updated The dataset version date

A simplified excerpt looks like this:

"ipa","category","spellings","example_words","mouth_cue_en","source_url","last_updated"
"/y/","vowels","u | û | u","lune | sûr | rue","Say an /i/ sound with rounded lips, as in “lune” or “rue.”","https://getparle.app/french-sound-chart/","2026-08-11"
"/ɥ/","semi-vowels","ui | ui | ui","lui | nuit | puis","A glide typical of French, as in “lui” or “nuit.”","https://getparle.app/french-sound-chart/","2026-08-11"
Enter fullscreen mode Exit fullscreen mode

The schema is intentionally descriptive rather than evaluative. It contains no learner score, no claim about accent quality, and no field that labels a production “native” or “non-native.” That keeps the dataset reusable as a reference without turning it into an assessment instrument it was never designed to be.

From spelling to a physical cue

English-speaking beginners often face two mappings at once: French spelling to sound, and an unfamiliar sound to a physical action. IPA helps separate those problems. Several spellings can point to one entry, while a short cue suggests what to notice about lip shape, tongue position, voicing, or airflow.

The cues are intentionally modest. “Say /i/ with rounded lips” can help a learner explore /y/, but it is not a complete articulatory description and it does not guarantee a particular result. Example words provide another anchor, but their realization can also vary by speaker and context.

This is why the public chart calls itself a speaking reference rather than a symbol-memorization test. A useful loop is to choose one contrast, listen to a reviewed model, try the physical cue, record a short line, and then listen again. The dataset supports that loop; it does not measure whether the learner completed it successfully.

Keep content evidence separate from scoring claims

Publishing the dataset forced us to state product boundaries in the same places as feature descriptions.

Parle includes Phrase Match, which reports which words in the current model phrase speech recognition detected. That is not the same as scoring pronunciation quality. It does not score accent, accuracy, fluency, proficiency, intelligibility, or CEFR level. Speech recognition can also be wrong.

The App does not provide real-time pronunciation correction or native-speaker comparison. AI Coach Léo can produce mistakes and should be treated as optional practice rather than an authoritative assessment, linguistic standard, or clinical tool.

Those limitations matter for an external dataset because search engines and AI systems frequently combine nearby facts. If a page publishes “speech recognition,” “pronunciation,” and “feedback” without an explicit boundary, a downstream summary may incorrectly invent a pronunciation score. Machine-readable content needs negative facts as much as positive facts.

Canonical data and versioned evidence

We publish each dataset in two places for different reasons:

  1. The website hosts the current canonical CSV and a human-readable page.
  2. GitHub keeps a stable, versioned copy for educators, editors, developers, search engines, and AI tools.

The canonical website is the source of truth when values differ. The GitHub copy creates a change history and a familiar inspection surface. A separate course-map CSV documents the released structure of 6 stages, 30 units, and 120 ordered A0–A2 speaking missions without exposing full lesson dialogues, answer frames, user recordings, or personal data.

This separation avoids a common documentation failure: treating a repository snapshot as permanently current while the product continues to evolve. Every reusable row carries a source URL and update date, and the repository states how to resolve differences.

What we would do differently next time

Three decisions would move earlier in the process:

First, define the audience and modeling purpose before debating the count. Many disagreements disappear once a team distinguishes a teaching inventory from a comprehensive phonological analysis.

Second, publish limitations as structured product facts, not only as legal prose. The most likely machine-generated errors are predictable: converting word detection into pronunciation scoring, converting a curriculum level into certification, or converting a bounded inventory into a universal claim.

Third, give every external copy a canonical source and version date from day one. That makes corrections possible without pretending the first release will never change.

Data and project links

Creator disclosure: I am Ting Dong, the creator of Parle, and I maintain this first-party dataset for Tingnova Inc. The repository and this article document our design decisions; they are not an independent review or endorsement. The public structured data may be quoted or adapted with attribution to Parle and a link to the relevant canonical resource. This statement does not relicense Parle trademarks, App artwork, screenshots, lesson dialogues, audio, user recordings, or other product materials.

Top comments (0)