Brazilian and European Portuguese Pronunciation: IPA Guide

← Back to Portuguese transcription ↑ All Languages

Table of Contents

About This Tool

This Portuguese transcription app uses the Wiktionary Portuguese Pronunciation Module (pt-pronunc, shipped here as lua_modules/pt-pron_wasm.lua) to generate phonetic and phonemic IPA transcriptions for Portuguese text. IPA (International Phonetic Alphabet) is a standardized system for transcribing speech sounds. Phonemic transcription represents the abstract sound system (phonemes), while phonetic transcription shows actual speech variations (allophones).

Unlike several other languages in this app, Portuguese is purely rule-based: there is no lexicon and no dictionary lookup. Every word is transcribed from its spelling by the Wiktionary module, which was designed for editors who type a respelling (for example cinêma) whenever the ordinary spelling does not determine the pronunciation. The consequence: where Portuguese spelling is genuinely ambiguous (most notably a stressed e or o, and the letter x), the engine refuses to guess and the app shows an error instead of a possibly wrong answer. See Important Note: Why You Might See an Error.

Dialects & Limitations

The app offers two dialect choices. Behind them, the app calls the module as window.pt_ipa.IPA(word, region) with region = "rio" for Brazil and region = "pt" for Portugal.

Profiles Inside the Module (Not All Selectable)

The module defines seven styles (export.all_styles). The older version of this page listed an eighth, npt (Northern Portugal); the code does not contain it.

Code Group What it does in the module Used by this app?
gbr Brazil General Brazilian: coda s stays s/z; phonetic strong r is h/ɦ No
rio Brazil Rio de Janeiro (Carioca): coda s is ʃ/ʒ; phonetic strong r is χ/ʁ Yes (the "Brazil" option)
sp Brazil São Paulo (Paulistano): coda r stays a tap ɾ No
sbr Brazil Southern Brazil: no raising of final e/o, coda r is ɻ, no nasalization of a stressed vowel before m/n/nh No
gpt Portugal General Portugal: ei lowered to ɐj No (the app's "Portugal" is plain pt)
cpt Portugal Central Portugal outside Lisbon (no rules of its own in this version) No (but identical in output to the app's "Portugal")
spt Portugal Southern Portugal: ei and ou become monophthongs No

Limitations

Phonemic vs Phonetic

On this page /slashes/ mark a phonemic transcription and [square brackets] a phonetic one; the app itself prints the bare IPA without either symbol.

Both forms are produced by the same code path, only with a phonetic flag. The phonetic form differs from the phonemic form in exactly these ways:

Dialect Difference in the phonetic form Phonemic Phonetic
Brazil Second part of a diphthong is a short glide ɪ̯/ʊ̯ instead of j/w mau /ˈmaw/ mau [ˈmaʊ̯]
Brazil Strong r is χ (or ʁ before a voiced consonant) instead of ʁ rato /ˈʁa.tu/ rato [ˈχa.tu]
Brazil Non-initial nh is a nasal glide j̃ instead of ɲ banho /ˈbɐ̃.ɲu/ banho [ˈbɐ̃.j̃u]
Brazil Unstressed i/u before another vowel are lax ɪ/ʊ ciúme /siˈũ.mi/ ciúme [sɪˈũ.mi]
Portugal Voiced stops b d g become fricatives β ð ɣ (except in the contexts described under Voiced Stops in Portugal) cidade /siˈda.d(ɨ)/ cidade [siˈða.ð(ɨ)]
Portugal Coda l is dark ɫ instead of l animal /ɐ.niˈmal/ animal [ɐ.niˈmaɫ]

Important Note: Why You Might See an Error

This transcription engine is designed not to guess. Because Portuguese spelling is not always perfectly phonetic, the engine will intentionally refuse to transcribe a word when the spelling leaves a sound undetermined. To fix this, you need to provide a "respelling" in the input box that clarifies the intended sound. The two most common reasons are described below.

1. Ambiguous Stressed Vowels (e and o)

This is the most common cause of errors. In Portuguese, a stressed e or o can be open (ɛ, ɔ) or closed (e, o), but standard spelling often does not use an accent mark to show which. There is no default: the engine does not pick one.

Example: The word governo has stress on the e, but the engine cannot know whether it is open or closed, so it fails: governo (error). The same happens for ele (error), hoje (error), mesa (error) and saber (error).

Solution: Add an accent mark to the stressed vowel to specify its quality.

When no accent is needed. The engine fills in the vowel quality by itself in several situations, so you only need to mark the cases that remain: a stressed e/o that is nasal (homem /ˈõ.mẽj̃/, tempo /ˈtẽ.pu/), part of a diphthong (leite /ˈlej.t͡ʃi/, pouco /ˈpo(w).ku/), in the endings -dor/-tor/-sor and -oso/-osa (invasor /ĩ.vaˈzoʁ/, gostoso /ɡoʃˈto.zu/, gostosa /ɡoʃˈtɔ.zɐ/), or in a hiatus (boa /ˈbo.ɐ/). A stressed a never needs a mark. See Open and Closed e / o.

Internally the error text is "Stressed e or o not occurring nasalized or in a diphthong must be marked for quality using é/ê or ó/ô". The app does not display that text; see below.

2. The Irregular Letter x

The letter x has several possible pronunciations (ʃ, z, ks, s), and in many positions the engine cannot reliably choose. It resolves x only in the cases listed in The Letter x (initial, final, after ai/ei/oi/ou/en, and before a consonant after e) and fails everywhere else.

Example: The engine fails on exame (error), táxi (error) and lixo (error), but succeeds on caixa /ˈkaj.ʃɐ/ (because x after ai is always ʃ) and on enxame /ẽˈʃɐ̃.mi/. The older version of this page listed caixa as a failing example; it does not fail.

Solution: Replace the x with its phonetic equivalent in the input.

The internal error text is "x must be respelled z, sh, cs, ss or similar".

3. What the App Shows When It Fails

When the module raises an error, the app catches it and returns your input word unchanged, marked with the error style (the word appears as plain, untranscribed text instead of IPA). The explanatory message above is written only to the browser's developer console. Nothing else on the line is affected: every other word is still transcribed.

4. What You Can (and Cannot) Type

Before transcription the app removes everything that is not a letter, a combining accent, an apostrophe or a hyphen. This matters for respellings, because the module has an extended respelling notation that therefore cannot be used in this app:

You type Works in the app? Notes
Accents á é í ó ú â ê ô ã õ ç ü Yes Precomposed and combining accents are both accepted. Capital letters are lowercased automatically.
Letter substitutions: z, sh, cs, ss, h Yes For example marh forces a final r to stay pronounced without parentheses (see R Sounds).
Hyphen - Yes Splits a word into components; each component gets its own stress and earlier ones become secondary stress: guarda-chuva /ˌɡwaʁ.dɐˈʃu.vɐ/.
Apostrophe ' Yes Becomes a tie mark: d'água /ˈd‿a.ɡwɐ/.
Grave accent / macron (à, ō) Portugal only In the module these mean "explicitly unstressed open / closed vowel" for Portugal only. In Brazil they are deleted, so sòlo fails in Brazil (stressed o unmarked) but gives sòlo /sɔ.lu/ in Portugal.
Dot ., ^, *, +, :, #, comma, digits, ?, ! No These are stripped before the engine sees them, so the module's syllable-forcing dot, optional-vowel markers (e^, i^) and component markers (+, :) are unavailable. ri.o becomes rio.

Quick Reference (Glossary)

Phoneme
The smallest unit of sound in a language that distinguishes meaning (e.g., /p/ vs. /b/ in "pata" vs. "bata").
Allophone
A variant pronunciation of a phoneme that doesn't change meaning (e.g., b vs. β in Portugal).
Respelling
An alternative spelling you type to tell the engine how a word is pronounced, for example govêrno for governo or ezame for exame. The module was built around respellings.
Open / Closed Vowel
Portuguese distinguishes open ɛ ɔ from closed e o in stressed syllables. Spelling marks them with an acute (é, ó) and a circumflex (ê, ô).
Oxytone / Paroxytone
A word stressed on its last syllable (feliz /feˈliʃ/) or on its second-to-last syllable (casa /ˈka.zɐ/).
Vowel Reduction
Weakening of unstressed vowels. In Portugal it is strong (e to ɨ, a to ɐ, o to u); in Brazil it is mostly limited to the word end (final e to i, o to u).
Schwa-like Vowel ɨ
A close central unrounded vowel; in this module the reduced form of unstressed e in Portugal. It is often dropped, which the output shows as (ɨ).
Nasal Vowel
A vowel pronounced with air also passing through the nose, marked with a tilde: ɐ̃ ẽ ĩ õ ũ. Spelled with ã/õ or with m/n after the vowel.
Nasal Diphthong
A nasal vowel followed by a nasal glide: ɐ̃w̃ (ão), ɐ̃j̃ (ãe), õj̃ (õe), ẽj̃ (-em).
Diphthong / Glide
A vowel plus a short non-syllabic j or w (written i/u) in the same syllable, e.g. pai /ˈpaj/, mau /ˈmaw/.
Hiatus
Two vowels in adjacent syllables with no consonant between them, e.g. saída /saˈi.dɐ/. In some contexts the second vowel may be pronounced as a glide.
Palatalization
Shift of a sound towards the hard palate; in Brazil t/d before i become t͡ʃ/d͡ʒ.
Affricate / Tie Bar
A stop released as a fricative, written with a tie bar over the two symbols: t͡ʃ, d͡ʒ.
Tap
A single quick tongue-tip flap, ɾ, as in the middle of caro /ˈka.ɾu/.
Strong R
The "rr" sound, ʁ in the phonemic form, as in carro /ˈka.ʁu/. In Rio it is phonetically the voiceless uvular fricative χ.
Chiado
The "hushing" pronunciation of syllable-final s/z as ʃ/ʒ, typical of Rio and of Portugal.
Velarized L
The dark ɫ that Portugal uses for coda l in the phonetic form; Brazil vocalizes it to w.
Fricativized Stop
In Portugal's phonetic form, b d g between vowels are pronounced β ð ɣ.
Epenthesis
Insertion of a sound. The Brazilian output inserts an optional (j) after a stressed vowel before final s/z, e.g. faz /ˈfa(j)ʃ/. (Epenthetic i inside consonant clusters is not inserted automatically.)
Coda / Onset
The final consonant(s) / initial consonant(s) of a syllable.
Syllable Boundary
The marker . placed between syllables in the output.
Primary / Secondary Stress
Marked ˈ and ˌ before the stressed syllable. Only the last stressed syllable of a word keeps primary stress; earlier ones (for example in compounds, prefixes and -mente adverbs) are downgraded to secondary.
Unstressed Word (Clitic)
A short word that carries no stress of its own: articles, many prepositions and object pronouns (o, a, de, que, me, se ...). The module has fixed lists of them and treats them with or without vowel reduction.
Optional Sound
A sound shown in parentheses, e.g. (j), (ɨ), (ʁ): it may or may not be pronounced.
NFD
Unicode Normalization Form Decomposed: letters with accents are split into base letter plus combining accent for processing (except ç and ü, which are re-composed).

How to Read IPA Symbols

This section lists the IPA symbols that the engine actually emits for the "Brazil" (Rio) and "Portugal" options and gives approximate English equivalents where possible. Examples are real engine output; the column or note says which dialect and form each one comes from.

Vowel Symbols

IPA Example English Approximation Notes
a pá /ˈpa/ "father" Open front vowel; the only quality of a stressed a without special context
ɐ casa /ˈka.zɐ/ "sofa" (last vowel) Near-open central vowel; unstressed final -a in Brazil; in Portugal also unstressed a anywhere and stressed a before m/n/nh: cama /ˈkɐ.mɐ/
e pê /ˈpe/ "say" (without glide) Closed e (spelled ê, or automatically in nasal and diphthong contexts)
ɛ pé /ˈpɛ/ "bed" Open e (spelled é)
i pi /ˈpi/ "see" Also the Brazilian reduction of unstressed final -e: cidade /siˈda.d͡ʒi/
ɨ pela /pɨ.lɐ/ No English equivalent Portugal only: reduced unstressed e, often optional (ɨ) at the word end
o pô /ˈpo/ "go" (without glide) Closed o (spelled ô, or automatic)
ɔ pó /ˈpɔ/ "thought" (UK) Open o (spelled ó)
u pu /ˈpu/ "food" Also the reduction of unstressed final -o: bonito /boˈni.tu/; in Portugal also unstressed o elsewhere: bonito /buˈni.tu/
ɐ̃ lã /ˈlɐ̃/ Nasalized "sofa" Nasal ã, an/am before a consonant
ẽ tempo /ˈtẽ.pu/ Nasalized "say" Nasal e before m/n
ĩ sim /ˈsĩ/ Nasalized "see" Nasal i
õ bom /ˈbõ/ Nasalized "go" Nasal o, õ
ũ mundo /ˈmũ.du/ Nasalized "food" Nasal u
ɛ̃, ɔ̃ ténis /ˈtɛ̃.niʃ/, hónra /ˈɔ̃.ʁɐ/ Nasalized "bed", "thought" An acute accent makes the stressed vowel open: before m/n in the same syllable (both dialects, e.g. hónra) or in the next syllable (Brazil only, e.g. ténis)
ɪ, ʊ ciúme [sɪˈũ.mi], juízo [ʒʊˈi.zu] "sit", "put" Brazil, phonetic form only: i/u in hiatus before a vowel
j, w pai /ˈpaj/, mau /ˈmaw/ "yes", "wow" Glides forming diphthongs; Brazil's phonetic form uses ɪ̯, ʊ̯ instead: pai [ˈpaɪ̯], mau [ˈmaʊ̯]
j̃, w̃ mãe /ˈmɐ̃j̃/, pão /ˈpɐ̃w̃/ Nasal glides Second part of nasal diphthongs

Consonant Symbols

IPA Example English Approximation Notes
p b t d k ɡ pato /ˈpa.tu/, bato /ˈba.tu/, tato /ˈta.tu/, dado /ˈda.du/, cato /ˈka.tu/, gato /ˈɡa.tu/ "spin", "bin", "stun", "dune", "skin", "go" Plain stops, unaspirated. The engine prints ɡ (U+0261). Brazil replaces t, d before i by affricates
f v s z fato /ˈfa.tu/, vaca /ˈva.kɐ/, sapo /ˈsa.pu/, casa /ˈka.zɐ/ "fat", "van", "sap", "zoo" As in English
ʃ chuva /ˈʃu.vɐ/ "ship" Spelled ch, x; also coda s in Rio and Portugal: pasta /ˈpaʃ.tɐ/
ʒ júri /ˈʒu.ɾi/ "measure" Spelled j, g before e/i; also coda z/s before a voiced consonant: asma /ˈaʒ.mɐ/
t͡ʃ, d͡ʒ tia /ˈt͡ʃi.ɐ/, dia /ˈd͡ʒi.ɐ/ "cheese", "judge" Brazil only (before i); dj gives d͡ʒ in both dialects: djézz /ˈd͡ʒɛʃ/
m n mapa /ˈma.pɐ/, nada /ˈna.dɐ/ "map", "nap" Coda m/n after a vowel nasalize the vowel instead and are not pronounced
ɲ ninho /ˈnĩ.ɲu/ "canyon", Spanish ñ Spelled nh; Brazil's phonetic form shows j̃ inside words: ninho [ˈnĩ.j̃u]
l lá /ˈla/ "leaf" Onset l; coda l is w in Brazil and l (phonetic ɫ) in Portugal
ʎ filho /ˈfi.ʎu/ "million" (Italian gli) Spelled lh
ɫ animal [ɐ.niˈmaɫ] "full" (dark l) Portugal, phonetic form only, coda l
ɾ caro /ˈka.ɾu/ "butter" (American flap) Tap; also coda r in Portugal: pórta /ˈpɔɾ.tɐ/
ʁ carro /ˈka.ʁu/ French r Strong r; in Brazil's phonetic form it is χ except before a voiced consonant: carro [ˈka.χu], bórdo [ˈbɔʁ.du]
χ rato [ˈχa.tu] Scottish "loch", but further back in the throat Brazil, phonetic form only (the Rio realization of strong r)
β ð ɣ sabêr [sɐˈβeɾ], cidade [siˈða.ð(ɨ)], órgão [ˈɔɾ.ɣɐ̃w̃] Spanish haber, cada, lago Portugal, phonetic form only: fricative b d g
k s (from x) clímax /ˈklĩ.maks/ "mix" Final x gives ks

Diacritical Marks

Symbol Name Meaning Example
ˈ Primary stress Main emphasis; placed at the start of the stressed syllable cidade /siˈda.d͡ʒi/
ˌ Secondary stress Weaker emphasis (compounds, prefixes, -mente, -zinho) rapidamente /ʁaˌpi.daˈmẽ.t͡ʃi/
. Syllable boundary Separates syllables saída /saˈi.dɐ/
̃ Tilde (nasalization) Vowel or glide is nasal irmão /iʁˈmɐ̃w̃/
̯ Non-syllabic Glide (Brazil, phonetic form) pai [ˈpaɪ̯]
͡ Tie bar Affricate (single unit) dia /ˈd͡ʒi.ɐ/
( ) Parentheses Optional sound peixe /ˈpe(j).ʃi/, peixe /ˈpej.ʃ(ɨ)/
‿ Tie Linked words (from an apostrophe) d'água /ˈd‿a.ɡwɐ/

Interactive Features

Multiple Pronunciation Variants

The module itself can return several pronunciations for one input, each labelled with a qualifier. For example, in Brazil the initial es- before a consonant can be i or e, initial em-/en- can be careful ẽ or natural ĩ, hiatus i/u can be a full vowel or a glide ("faster pronunciation"), and in Portugal -sC clusters have "careful" and "natural" forms.

The app displays only the first variant: the handler returns result[0]. For example, estar /iʃˈta(ʁ)/ shows the i-variant; the e-variant is not reachable. Likewise criança /kɾiˈɐ̃.sɐ/ shows the full-vowel variant, never the glide one.

Portuguese Pronunciation Guide

This guide explains the pronunciation rules that the engine implements. Portuguese spelling is fairly regular once you know where the stress falls and how open or closed the stressed vowel is, which is exactly the information the engine asks you to supply when it cannot determine it. Brazil and Portugal differ most in vowel reduction, nasality and a handful of consonants; the sections below show both side by side.

Spelling, Accent Marks and Respelling

In Portuguese the written accents do two jobs at once: they mark which syllable is stressed and they fix the vowel quality. The engine reads them in the same way, so you should put an accent only on the stressed vowel.

Mark Effect in the engine Example
Acute á é ó Stressed open vowel (a ɛ ɔ) pára /ˈpa.ɾɐ/, pé /ˈpɛ/
Circumflex â ê ô Stressed closed vowel (ɐ e o) pâra /ˈpɐ.ɾɐ/, pê /ˈpe/
Tilde ã õ Nasal vowel; the last tilde syllable receives stress unless an accent says otherwise irmão /iʁˈmɐ̃w̃/, manhã /mɐ̃ˈɲɐ̃/
Cedilla ç s ça /ˈsa/
Diaeresis ü Silent diacritic: ü is read as u (pronounced after g/q) agüentar /a.ɡwẽˈta(ʁ)/
Grave à / macron ō Portugal only: explicitly unstressed open / closed vowel. Deleted in Brazil sòlo /sɔ.lu/, pōlo /po.lu/
Letters z, sh, cs, ss, h Respelling devices for x, final r, and so on ezame /eˈzɐ̃.mi/, marh /ˈmaʁ/

The module is case-insensitive: capitals are lowercased first, so names like Maria /maˈɾi.ɐ/ need no special treatment. Letters that are not part of Portuguese spelling pass through unchanged (for example w and k), which is why loanwords usually need a respelling, as explained under Common Issues.

Stress Patterns

Word stress is assigned after syllable division, in this order (the first rule that applies wins):

  1. An acute or circumflex accent marks the stressed syllable: lápis /ˈla.piʃ/, café /kaˈfɛ/, você /voˈse/.
  2. A tilde without an accent: the last syllable that contains a tilde is stressed: irmão /iʁˈmɐ̃w̃/, manhã /mɐ̃ˈɲɐ̃/, pão-de-ló /ˌpɐ̃w̃.d͡ʒiˈlɔ/ (the last component keeps primary stress).
  3. The default rule:
    • Words ending in -a, -e, -o (with or without -s), -am, -em, -ens or -ans are stressed on the second-to-last syllable (paroxytone): casa /ˈka.zɐ/, cidade /siˈda.d͡ʒi/, pastas /ˈpaʃ.tɐʃ/, cantam /ˈkɐ̃.tɐ̃w̃/, item /ˈi.tẽj̃/.
    • All other words are stressed on the last syllable (oxytone): feliz /feˈliʃ/, azul /aˈzuw/, cantar /kɐ̃ˈta(ʁ)/, jardim /ʒaʁˈd͡ʒĩ/, tatu /taˈtu/, aqui /aˈki/, algum /awˈɡũ/.

The default rule assumes the dictionary stress for regular words only: anything that breaks it (for example órgão, lápis, bênção) is written with an accent in standard orthography and the engine trusts that accent.

-mente, -zinho and Hyphenated Components

Unstressed Words (Clitics)

Short function words have no stress of their own. The module keeps three fixed lists:

List Words Brazil Portugal
Reduced in both dialects o, os, me, te, se, lhe(s), nos, vos, mo(s), to(s), lho(s), lo(s), no, vo, que, e, de, do, dos, por, pelo(s), pela(s) que /ki/, de /d͡ʒi/, o /u/ que /k(ɨ)/, de /d(ɨ)/, o /u/
Reduced in Portugal only a, as, ma(s), ta(s), lha(s), la(s), na(s), da(s) da /da/, a /a/ da /dɐ/, a /ɐ/
Never reduced um, uns, meu, teu, seu (and plurals), ou, ao, aos, à, às, em, com meu /mew/, ao /aw/, um /ũ/ meu /mew/, ao /aw/, um /ũ/

Two special pronunciations are hard-coded: ao(s) is read as au(s) (aw) and por as pur: por /puʁ/.

Open and Closed e / o

A stressed e or o must end up as one of e ɛ or o ɔ. The engine determines the quality in this order and raises the error described above if none applies:

Situation Result Examples
Written é / ó Open ɛ ɔ féra /ˈfɛ.ɾɐ/, avó /aˈvɔ/
Written ê / ô Closed e o fêra /ˈfe.ɾɐ/, avô /aˈvo/
Stressed vowel + m / n / nh in the next syllable (ano, cena, sono, banho) Circumflexed automatically: closed (and, in Brazil, nasalized) cena /ˈsẽ.nɐ/ / cena /ˈse.nɐ/; sono /ˈsõ.nu/ / sono /ˈso.nu/
Nasal vowel with a tilde or m/n in the same syllable Closed tempo /ˈtẽ.pu/, homem /ˈõ.mẽj̃/
ei, eu, oi, ou Closed first element (êi, êu, ôi, ôu) leite /ˈlej.t͡ʃi/, boi /ˈboj/, pouco /ˈpo(w).ku/
ai, au Becomes ái, áu, always a pai /ˈpaj/, fauna /ˈfaw.nɐ/
Stressed o in -dor, -tor, -sor (and feminine/plural) Closed o cantor /kɐ̃ˈtoʁ/, invasor /ĩ.vaˈzoʁ/, ganhadora /ɡɐ̃.ɲaˈdo.ɾɐ/, autores /awˈto.ɾiʃ/
Stressed o in -oso Closed o gostoso /ɡoʃˈto.zu/
Stressed o in -osa, -osos, -osas Open ɔ gostosa /ɡoʃˈtɔ.zɐ/, gostosos /ɡoʃˈtɔ.zuʃ/
Stressed o in hiatus Closed o boa /ˈbo.ɐ/, voo /ˈvo.u/
Anything else Error: the word must be respelled with é/ê/ó/ô ele (error), governo (error), amor (error)

The acute accent on final -em/-ens (além, também, parabéns) does not open the vowel: the module turns it into a circumflex: parabéns /pa.ɾaˈbẽj̃ʃ/.

Unstressed Vowels and Vowel Reduction

This is where the two dialects differ most. Unstressed a, e, o without an accent become:

Position Brazil (Rio) Portugal
Final -a(s) ɐ: casas /ˈka.zɐʃ/ ɐ: casas /ˈka.zɐʃ/
Final -e(s) i: cidade /siˈda.d͡ʒi/ (ɨ), optional: cidade /siˈda.d(ɨ)/
Final -o(s) u: bonito /boˈni.tu/ u: bonito /buˈni.tu/
Other unstressed a Stays a: sapato /saˈpa.tu/ ɐ: sapato /sɐˈpa.tu/
Other unstressed e Stays e: frequente /fɾeˈkẽ.t͡ʃi/ ɨ: frequente /fɾɨˈkẽ.t(ɨ)/
Other unstressed o Stays o: professor /pɾo.feˈsoʁ/ u: professor /pɾu.fɨˈsoɾ/
Initial unstressed e e: elefante /e.leˈfɐ̃.t͡ʃi/ i: elefante /i.lɨˈfɐ̃.t(ɨ)/
Initial unstressed o in a word that contains another vowel o: obrigado /o.bɾiˈɡa.du/ ɔ: obrigado /ɔ.bɾiˈɡa.du/
Initial es- + consonant i (first variant): estar /iʃˈta(ʁ)/ (i): estar /(i)ʃˈtaɾ/
Unstressed vowel before coda l Unchanged; l becomes w: alface /awˈfa.si/ Opened to a, ɛ, o: alface /alˈfa.s(ɨ)/, solteiro /solˈtej.ɾu/
Final unstressed -r (dólar, líder) Preceding a becomes ɐ, others stay: dólar /ˈdɔ.lɐʁ/, líder /ˈli.deʁ/ Preceding vowel is opened: dólar /ˈdɔ.laɾ/, líder /ˈli.dɛɾ/
Final unstressed -ar (açúcar) ɐ: açúcar /aˈsu.kɐʁ/ a: açúcar /ɐˈsu.kaɾ/
Unstressed ie (hiatus) Full vowels, with hiatus: série /ˈsɛ.ɾi.i/ Glide + open e: série /ˈsɛ.ɾjɛ/

The final e in Portugal is shown in parentheses because it can be dropped in connected speech. The module also removes it before a following vowel, but since the app transcribes one word at a time you will only see the optional form.

Nasal Vowels and Nasal Diphthongs

Nasality is derived from spelling in a fixed order:

  1. Final unstressed -am (third-person plural verbs) is treated like -ão: cantam /ˈkɐ̃.tɐ̃w̃/, falam /ˈfa.lɐ̃w̃/.
  2. In Portugal a final -n is a real n and the unstressed vowel before it is open: hífen /ˈi.fɛn/ (compare Brazil hífen /ˈi.fẽj̃/).
  3. A vowel followed by m or n in the same syllable is nasalized and the consonant is not pronounced: tempo /ˈtẽ.pu/, lindo /ˈlĩ.du/, compra /ˈkõ.pɾɐ/, mundo /ˈmũ.du/.
  4. A non-high vowel nasalized this way gets a circumflex (closed): canto /ˈkɐ̃.tu/, tempo /ˈtẽ.pu/.
  5. In Brazil a stressed vowel before m/n in the next syllable is also nasalized: cama /ˈkɐ̃.mɐ/ ano /ˈɐ̃.nu/; all vowels before nh are nasalized and, in the phonetic form, nh becomes j̃: banho /ˈbɐ̃.ɲu/ banho [ˈbɐ̃.j̃u]. Portugal only closes the vowel: cama /ˈkɐ.mɐ/, banho /ˈbɐ.ɲu/.
  6. ão, ãe, õe, and -ui in muit- are nasal diphthongs ending in a nasal glide: pão /ˈpɐ̃w̃/, mãe /ˈmɐ̃j̃/, põe /ˈpõj̃/, muito /ˈmũj̃.tu/, limões /liˈmõj̃ʃ/.
  7. Final -em and -ens are ẽj̃(s): bem /ˈbẽj̃/, homem /ˈõ.mẽj̃/, parabéns /pa.ɾaˈbẽj̃ʃ/.
  8. In Portugal a circumflex on final -em (vêm, têm, mantêm) signals the special double nasal ending: têm /ˈtẽj̃.ẽj̃/ versus têm /ˈtẽj̃/; and põem gets a hiatus: põem /ˈpõj̃.ẽj̃/ versus põem /ˈpõj̃/.
  9. In Brazil an initial unstressed em-/en- before a consonant is ẽ (careful variant, shown) or ĩ: enxame /ẽˈʃɐ̃.mi/.

Oral Diphthongs

The glides j and w arise from i and u after a, e, o in the same syllable (see Syllable Division for when a diphthong splits). The first vowel is automatically closed for e/o and always a for a (see Open and Closed e / o).

Spelling Brazil Portugal Note
ai, au pai /ˈpaj/, mau /ˈmaw/ pai /ˈpaj/, mau /ˈmaw/ Same in both
ei leite /ˈlej.t͡ʃi/ beijo /ˈbej.ʒu/ In Brazil ei before r, j, g, x gets an optional glide: beijo /ˈbe(j).ʒu/; in Portugal it is a plain diphthong (in the unselectable gpt profile it would be lowered)
eu, oi ateu /aˈtew/, boi /ˈboj/ ateu /ɐˈtew/, boi /ˈboj/ Same in both
ou pouco /ˈpo(w).ku/ pouco /ˈpo(w).ku/ The glide is optional in both: o(w)
iu, ui viu /ˈviw/, fui /ˈfuj/ viu /ˈviw/, fui /ˈfuj/ Final -iu(s), -ui(s) stay a single syllable

In Brazil's phonetic form the glides are ɪ̯ and ʊ̯: pai [ˈpaɪ̯], pouco [ˈpo(ʊ̯).ku].

Hiatus and Glides

Two adjacent vowels are normally split into two syllables. The dialects then treat an unstressed i/u/e/o before the second vowel differently:

Word Brazil (phonemic) Portugal (phonemic) What happens
teatro teatro /teˈa.tɾu/ teatro /ˈtja.tɾu/ Portugal turns unstressed e./i. or o./u. before a vowel into a glide, merging the syllables; Brazil keeps the hiatus
gíria gíria /ˈʒi.ɾi.ɐ/ gíria /ˈʒi.ɾjɐ/ Same rule at the end of a word
ciência ciência /siˈẽ.si.ɐ/ ciência /ˈsjẽ.sjɐ/ The same, after a consonant and before a stressed vowel
saída saída /saˈi.dɐ/ saída /sɐˈi.dɐ/ A stressed i/u always keeps its hiatus
proteína proteína /pɾo.teˈĩ.nɐ/ proteína /pɾu.tɐˈi.nɐ/ Portugal only: e before an i in hiatus becomes a-like (ɐ)
iate iate /ˈja.t͡ʃi/ iate /ˈja.t(ɨ)/ Initial i + vowel is a glide j, unless the i is stressed: ia /ˈi.ɐ/
juízo juízo /ʒuˈi.zu/ juízo /ˈʒwi.zu/ Brazil keeps u.i; Portugal glides after an unstressed u

Brazilian -io with a stressed i (rio, tio, frio, vazio, navio) has two pronunciations in the module, a hiatus and a glide. The app shows the first: rio /ˈʁi.u/. Typing the glide spelling gives the second: riu /ˈʁiw/.

t / d Before i (Brazil)

In Brazil, t and d before a high front vowel (i, a final e that has been raised to i, a glide y, a nasal ĩ) become the affricates t͡ʃ and d͡ʒ. Raising happens first, which is why a final -te/-de is palatalized as well. Portugal never palatalizes.

Word Brazil Portugal
tia, dia tia /ˈt͡ʃi.ɐ/, dia /ˈd͡ʒi.ɐ/ tia /ˈti.ɐ/, dia /ˈdi.ɐ/
cidade (raised final e) cidade /siˈda.d͡ʒi/ cidade /siˈda.d(ɨ)/
jardim (nasal i) jardim /ʒaʁˈd͡ʒĩ/ jardim /ʒɐɾˈdĩ/
de, te (clitics) de /d͡ʒi/, te /t͡ʃi/ de /d(ɨ)/, te /t(ɨ)/
adjetivo (written dj) adjetivo /ad.ʒeˈt͡ʃi.vu/ adjetivo /ɐ.d͡ʒɨˈti.vu/

S and Z

A word-initial s followed by a consonant is not shushed: spray /ˈspɾaj/, slide /ˈsli.d͡ʒi/.

R Sounds

L Sounds

c, g, q, h, ch, lh, nh and Double Letters

Spelling Rule Example
c before e, i; ç s cinêma /siˈnẽ.mɐ/, ça /ˈsa/
c, k, q elsewhere k cato /ˈka.tu/, kilo /ˈki.lu/
qu before e, i k (u silent) quilo /ˈki.lu/
qu before a, o; gu before a, o; ü kw, ɡw quatro /ˈkwa.tɾu/, água /ˈa.ɡwɐ/, agüentar /a.ɡwẽˈta(ʁ)/
g before e, i; j ʒ gêlo /ˈʒe.lu/, júri /ˈʒu.ɾi/
gu before e, i ɡ (u silent) guitarra /ɡiˈta.ʁɐ/
Initial h Silent humano /uˈmɐ̃.nu/
ch, sh ʃ chuva /ˈʃu.vɐ/, lisho /ˈli.ʃu/
lh ʎ filho /ˈfi.ʎu/
nh ɲ; Brazilian phonetic non-initial j̃ ninho /ˈnĩ.ɲu/, ninho [ˈnĩ.j̃u], nhaca [ˈɲa.kɐ]
ng before a consonant other than h, l, r Brazil: n (g silent); Portugal: g is pronounced parking /paʁˈkĩ/, parking /pɐɾˈkĩɡ/
y between non-vowels i Itamaraty /i.ta.ma.ɾaˈt͡ʃi/
w Passes through as w whisky /wiʃˈki/

Doubled Letters

Before syllable division every doubled consonant is reduced to one letter, with four exceptions: rr becomes ʁ, ss stays a voiceless s that never takes the Brazilian epenthetic glide of a single final s (compare nós /ˈnɔ(j)ʃ/ with nóss /ˈnɔʃ/), and mm/nn become a plain m/n that is not nasalizing, so they can be used to prevent nasalization: compare ano /ˈɐ̃.nu/ with ánno /ˈã.nu/. Other double letters reduce: pizza /ˈpi.zɐ/ (zz is just z, see Common Issues).

The Letter x

The engine resolves x only in the following cases (checked in this order). In every other position it raises the error "x must be respelled z, sh, cs, ss or similar".

Context Result Examples
Word-initial x ʃ xícara /ˈʃi.ka.ɾɐ/, xadrêz /ʃaˈdɾe(j)ʃ/
Word-final x ks; the unstressed vowel before it is opened clímax /ˈklĩ.maks/, córtex /ˈkɔʁ.tɛks/, xérox /ˈʃɛ.ɾɔks/
x after ai, ei, oi, ou, en ʃ caixa /ˈkaj.ʃɐ/, peixe /ˈpe(j).ʃi/, troixa /ˈtɾoj.ʃɐ/, frouxo /ˈfɾo(w).ʃu/, enxame /ẽˈʃɐ̃.mi/
ex + consonant Brazil s, Portugal ejʃ excelente /e.seˈlẽ.t͡ʃi/ / excelente /ejʃ.sɨˈlẽ.t(ɨ)/, êxtase /ˈeʃ.ta.zi/ / êxtase /ˈejʃ.tɐ.z(ɨ)/
Anything else Error: respell with z, cs, sh or ss exame (error), táxi (error), lixo (error), próximo (error)

Voiced Stops in Portugal (Phonetic Form)

Only the phonetic form of Portugal fricativizes voiced stops: b, d, g become β, ð, ɣ everywhere except at the start of the word, after a nasal vowel, and (for d) after l. Brazil never does this.

Context Portugal phonetic Brazil phonetic
Between vowels sabêr [sɐˈβeɾ], cidade [siˈða.ð(ɨ)] sabêr [saˈbe(χ)], cidade [siˈda.d͡ʒi]
Word-initial: stop dado [ˈda.ðu] dado [ˈda.du]
After a nasal vowel: stop mundo [ˈmũ.du] mundo [ˈmũ.du]
d after l: stop caldo [ˈkaɫ.du] caldo [ˈkaʊ̯.du]

Syllable Division

Syllables are divided before stress is assigned, because stress counts syllables. The rules:

Comprehensive Spelling-to-IPA Mapping

This section provides a mapping of Portuguese spelling (orthography) to pronunciation (IPA) for both app options. The tables reflect the rules the transcription engine actually applies, and every example is real engine output (phonemic form unless the column says phonetic). Remember that a stressed e/o needs an accent unless one of the automatic rules in Open and Closed e / o applies, so several examples below are written with an accent.

1. Vowel Letters

Letter Context Brazil (Rio) phonemic Portugal phonemic
a Stressed (default) pá /ˈpa/ pá /ˈpa/
Stressed, written â pâra /ˈpɐ.ɾɐ/ pâra /ˈpɐ.ɾɐ/
Stressed before m/n/nh in the next syllable cama /ˈkɐ̃.mɐ/ cama /ˈkɐ.mɐ/
Unstressed, final casa /ˈka.zɐ/ casa /ˈka.zɐ/
Unstressed, other sapato /saˈpa.tu/ sapato /sɐˈpa.tu/
e Stressed, written é pé /ˈpɛ/ pé /ˈpɛ/
Stressed, written ê pê /ˈpe/ pê /ˈpe/
Unstressed, final dôce /ˈdo.si/ dôce /ˈdo.s(ɨ)/
Unstressed, initial elefante /e.leˈfɐ̃.t͡ʃi/ elefante /i.lɨˈfɐ̃.t(ɨ)/
Unstressed, other frequente /fɾeˈkẽ.t͡ʃi/ frequente /fɾɨˈkẽ.t(ɨ)/
Before x + consonant (ex-) excelente /e.seˈlẽ.t͡ʃi/ excelente /ejʃ.sɨˈlẽ.t(ɨ)/
i Stressed or unstressed pi /ˈpi/, feliz /feˈliʃ/ pi /ˈpi/, feliz /fɨˈliʃ/
o Stressed, written ó pó /ˈpɔ/ pó /ˈpɔ/
Stressed, written ô pô /ˈpo/ pô /ˈpo/
Unstressed, final bonito /boˈni.tu/ bonito /buˈni.tu/
Unstressed, initial (word contains another vowel) obrigado /o.bɾiˈɡa.du/ obrigado /ɔ.bɾiˈɡa.du/
Unstressed, other professor /pɾo.feˈsoʁ/ professor /pɾu.fɨˈsoɾ/
u Vowel pu /ˈpu/, tatu /taˈtu/ pu /ˈpu/, tatu /tɐˈtu/
Silent after q/g before e/i; ü pronounced quilo /ˈki.lu/, agüentar /a.ɡwẽˈta(ʁ)/ quilo /ˈki.lu/, agüentar /ɐ.ɡwẽˈtaɾ/
y Between non-vowels Itamaraty /i.ta.ma.ɾaˈt͡ʃi/ Itamaraty /i.tɐ.mɐ.ɾɐˈti/

2. Nasal Vowels and Nasal Diphthongs

Spelling Brazil (Rio) phonemic Portugal phonemic Rule
ã lã /ˈlɐ̃/ lã /ˈlɐ̃/ Tilde: nasal ɐ̃, stressed if last tilde syllable
an / am + consonant canto /ˈkɐ̃.tu/ canto /ˈkɐ̃.tu/ Vowel + m/n in one syllable nasalizes; the consonant is silent
en / em + consonant tempo /ˈtẽ.pu/ tempo /ˈtẽ.pu/ Closed nasal ẽ
in / im lindo /ˈlĩ.du/ lindo /ˈlĩ.du/ ĩ
on / om compra /ˈkõ.pɾɐ/ compra /ˈkõ.pɾɐ/ õ
un / um mundo /ˈmũ.du/ mundo /ˈmũ.du/ ũ
ão mão /ˈmɐ̃w̃/ mão /ˈmɐ̃w̃/ Nasal diphthong ɐ̃w̃
-am (unstressed, verbs) cantam /ˈkɐ̃.tɐ̃w̃/ cantam /ˈkɐ̃.tɐ̃w̃/ Same as -ão
ãe mãe /ˈmɐ̃j̃/ mãe /ˈmɐ̃j̃/ ɐ̃j̃
õe põe /ˈpõj̃/ põe /ˈpõj̃/ õj̃
-em / -ens (final) bem /ˈbẽj̃/, homens /ˈõ.mẽj̃ʃ/ bem /ˈbẽj̃/, homens /ˈo.mẽj̃ʃ/ ẽj̃(ʃ)
-êm (Portugal) têm /ˈtẽj̃/ têm /ˈtẽj̃.ẽj̃/ Doubled nasal ending in Portugal only
muit- muito /ˈmũj̃.tu/ muito /ˈmũj̃.tu/ Hard-coded nasal ũj̃
Vowel + m/n across a syllable ano /ˈɐ̃.nu/ ano /ˈɐ.nu/ Brazil nasalizes the stressed vowel; Portugal does not
Vowel + nh unha /ˈũ.ɲɐ/ unha /ˈu.ɲɐ/ Brazil nasalizes any vowel before nh
Acute + nasal ténis /ˈtɛ̃.niʃ/ ténis /ˈtɛ.niʃ/ Open vowel; nasalized in Brazil only

3. Oral Diphthongs

Spelling Brazil (Rio) phonemic Portugal phonemic Rule
ai pai /ˈpaj/ pai /ˈpaj/ aj
au mau /ˈmaw/ mau /ˈmaw/ aw
ei leite /ˈlej.t͡ʃi/ leite /ˈlej.t(ɨ)/ Closed e + glide; optional glide before r/j/g/x in Brazil: cadeira /kaˈde(j).ɾɐ/
eu ateu /aˈtew/ ateu /ɐˈtew/ ew
oi boi /ˈboj/ boi /ˈboj/ oj
ou pouco /ˈpo(w).ku/ pouco /ˈpo(w).ku/ o(w), optional glide
iu / ui viu /ˈviw/, fui /ˈfuj/ viu /ˈviw/, fui /ˈfuj/ iw, uj
éi, éu, ói papéis /paˈpɛjʃ/, céu /ˈsɛw/, herói /eˈɾɔj/ papéis /pɐˈpɛjʃ/, céu /ˈsɛw/, herói /iˈɾɔj/ Open first element

4. Consonant Letters

Letter Rule Brazil (Rio) phonemic Portugal phonemic
c s before e, i; k elsewhere cinêma /siˈnẽ.mɐ/, cato /ˈka.tu/ cinêma /siˈne.mɐ/, cato /ˈka.tu/
ç ça /ˈsa/ ça /ˈsa/
d d; Brazil d͡ʒ before i dado /ˈda.du/, dia /ˈd͡ʒi.ɐ/ dado /ˈda.du/, dia /ˈdi.ɐ/
g ʒ before e, i; ɡ elsewhere gêlo /ˈʒe.lu/, gato /ˈɡa.tu/ gêlo /ˈʒe.lu/, gato /ˈɡa.tu/
gu before e, i: ɡ; before a, o: ɡw guitarra /ɡiˈta.ʁɐ/, água /ˈa.ɡwɐ/ guitarra /ɡiˈta.ʁɐ/, água /ˈa.ɡwɐ/
h Silent humano /uˈmɐ̃.nu/ humano /uˈmɐ.nu/
b, f, k, p, v As in English: b f k p v bato /ˈba.tu/, fato /ˈfa.tu/, kilo /ˈki.lu/, pato /ˈpa.tu/, vaca /ˈva.kɐ/ bato /ˈba.tu/, fato /ˈfa.tu/, kilo /ˈki.lu/, pato /ˈpa.tu/, vaca /ˈva.kɐ/
j ʒ júri /ˈʒu.ɾi/ júri /ˈʒu.ɾi/
l See table 6 lá /ˈla/ lá /ˈla/
m, n m, n as onset; nasalize a preceding vowel as coda mapa /ˈma.pɐ/, nada /ˈna.dɐ/ mapa /ˈma.pɐ/, nada /ˈna.dɐ/
q k / kw quilo /ˈki.lu/, quatro /ˈkwa.tɾu/ quilo /ˈki.lu/, quatro /ˈkwa.tɾu/
r See table 6 caro /ˈka.ɾu/ caro /ˈka.ɾu/
s See table 6 sapo /ˈsa.pu/ sapo /ˈsa.pu/
t t; Brazil t͡ʃ before i tato /ˈta.tu/, tia /ˈt͡ʃi.ɐ/ tato /ˈta.tu/, tia /ˈti.ɐ/
w w (not respelled by the module) whisky /wiʃˈki/ whisky /wiʃˈki/
x See table 7 xícara /ˈʃi.ka.ɾɐ/ xícara /ˈʃi.kɐ.ɾɐ/
z z; final s then ʃ zêro /ˈze.ɾu/, luz /ˈlu(j)ʃ/ zêro /ˈze.ɾu/, luz /ˈluʃ/

5. Digraphs and Doubled Letters

Spelling IPA Brazil (Rio) phonemic Portugal phonemic
ch ʃ chuva /ˈʃu.vɐ/ chuva /ˈʃu.vɐ/
sh ʃ lisho /ˈli.ʃu/ lisho /ˈli.ʃu/
lh ʎ filho /ˈfi.ʎu/ filho /ˈfi.ʎu/
nh ɲ ninho /ˈnĩ.ɲu/ ninho /ˈni.ɲu/
qu k / kw quilo /ˈki.lu/, quatro /ˈkwa.tɾu/ quilo /ˈki.lu/, quatro /ˈkwa.tɾu/
rr ʁ carro /ˈka.ʁu/ carro /ˈka.ʁu/
ss s passa /ˈpa.sɐ/ passa /ˈpa.sɐ/
sc, sç before e, i s (Rio) / ʃs (Portugal, first variant) crescêr /kɾeˈse(ʁ)/ crescêr /kɾɨʃˈseɾ/
mm, nn Plain m, n without nasalizing the vowel ánno /ˈã.nu/ ánno /ˈa.nu/
Other doubles (zz, tt, ...) Single consonant pizza /ˈpi.zɐ/ pizza /ˈpi.zɐ/
ng before a consonant Brazil n; Portugal keeps ɡ parking /paʁˈkĩ/ parking /pɐɾˈkĩɡ/
dj d͡ʒ (separate from the t/d palatalization rule) djézz /ˈd͡ʒɛ(j)ʃ/ djézz /ˈd͡ʒɛʃ/
ps, gn, pn (clusters) Kept as written; no epenthetic vowel psi /ˈpsi/, gnu /ˈɡnu/ psi /ˈpsi/, gnu /ˈɡnu/

6. Context-Dependent s, z, r, l

These letters change dramatically with position, and their phonetic forms differ more than anything else, so all four columns are given.

Letter Context Brazil (Rio) phonemic Brazil (Rio) phonetic Portugal phonemic Portugal phonetic
s Initial / ss sapo /ˈsa.pu/ sapo [ˈsa.pu] sapo /ˈsa.pu/ sapo [ˈsa.pu]
Between vowels casa /ˈka.zɐ/ casa [ˈka.zɐ] casa /ˈka.zɐ/ casa [ˈka.zɐ]
Before a voiceless consonant pasta /ˈpaʃ.tɐ/ pasta [ˈpaʃ.tɐ] pasta /ˈpaʃ.tɐ/ pasta [ˈpaʃ.tɐ]
Before a voiced consonant asma /ˈaʒ.mɐ/ asma [ˈaʒ.mɐ] asma /ˈaʒ.mɐ/ asma [ˈaʒ.mɐ]
Word-final casas /ˈka.zɐʃ/ casas [ˈka.zɐʃ] casas /ˈka.zɐʃ/ casas [ˈka.zɐʃ]
z Between vowels azul /aˈzuw/ azul [aˈzuʊ̯] azul /ɐˈzul/ azul [ɐˈzuɫ]
Word-final, stressed vowel (epenthetic (j) in Brazil) luz /ˈlu(j)ʃ/ luz [ˈlu(ɪ̯)ʃ] luz /ˈluʃ/ luz [ˈluʃ]
r Initial / after n, l, s rato /ˈʁa.tu/ rato [ˈχa.tu] rato /ˈʁa.tu/ rato [ˈʁa.tu]
Between vowels caro /ˈka.ɾu/ caro [ˈka.ɾu] caro /ˈka.ɾu/ caro [ˈka.ɾu]
In a cluster after a consonant prato /ˈpɾa.tu/ prato [ˈpɾa.tu] prato /ˈpɾa.tu/ prato [ˈpɾa.tu]
Coda before a consonant pórta /ˈpɔʁ.tɐ/ pórta [ˈpɔχ.tɐ] pórta /ˈpɔɾ.tɐ/ pórta [ˈpɔɾ.tɐ]
Final after stressed a, e, i falar /faˈla(ʁ)/ falar [faˈla(χ)] falar /fɐˈlaɾ/ falar [fɐˈlaɾ]
l Onset lá /ˈla/ lá [ˈla] lá /ˈla/ lá [ˈla]
Coda before a consonant caldo /ˈkaw.du/ caldo [ˈkaʊ̯.du] caldo /ˈkal.du/ caldo [ˈkaɫ.du]
Word-final animal /a.niˈmaw/ animal [a.niˈmaʊ̯] animal /ɐ.niˈmal/ animal [ɐ.niˈmaɫ]

7. The Letter x

Position Typed Brazil (Rio) phonemic Portugal phonemic Note
Initial xícara xícara /ˈʃi.ka.ɾɐ/ xícara /ˈʃi.kɐ.ɾɐ/ ʃ
After ai/ei/oi/ou/en caixa caixa /ˈkaj.ʃɐ/ caixa /ˈkaj.ʃɐ/ ʃ
Final córtex córtex /ˈkɔʁ.tɛks/ córtex /ˈkɔɾ.tɛks/ ks
ex + consonant têxtil têxtil /ˈteʃ.t͡ʃiw/ têxtil /ˈtejʃ.til/ Brazil s, Portugal ejʃ
Between vowels (needs respelling) exame → ezame ezame /eˈzɐ̃.mi/ ezame /iˈzɐ.m(ɨ)/ z
Between vowels (needs respelling) táxi → tácsi tácsi /ˈtak.si/ tácsi /ˈta.ksi/ ks
Between vowels (needs respelling) lixo → lisho lisho /ˈli.ʃu/ lisho /ˈli.ʃu/ ʃ
Between vowels (needs respelling) próximo → próssimo próssimo /ˈpɾɔ.si.mu/ próssimo /ˈpɾɔ.si.mu/ s

8. Full Dialect Comparison (Quick Reference)

Side-by-side comparison of the features that distinguish the app's two options, in both forms.

Feature Brazil (Rio) Portugal
Phonemic Phonetic Phonemic Phonetic
Coda s (chiado) pastas /ˈpaʃ.tɐʃ/ pastas [ˈpaʃ.tɐʃ] pastas /ˈpaʃ.tɐʃ/ pastas [ˈpaʃ.tɐʃ]
Coda r before voiced consonant bórdo /ˈbɔʁ.du/ bórdo [ˈbɔʁ.du] bórdo /ˈbɔɾ.du/ bórdo [ˈbɔɾ.ðu]
Final r (infinitive) cantar /kɐ̃ˈta(ʁ)/ cantar [kɐ̃ˈta(χ)] cantar /kɐ̃ˈtaɾ/ cantar [kɐ̃ˈtaɾ]
t before i tia /ˈt͡ʃi.ɐ/ tia [ˈt͡ʃi.ɐ] tia /ˈti.ɐ/ tia [ˈti.ɐ]
Coda l sól /ˈsɔw/ sól [ˈsɔʊ̯] sól /ˈsɔl/ sól [ˈsɔɫ]
Final unstressed -o bonito /boˈni.tu/ bonito [boˈni.tu] bonito /buˈni.tu/ bonito [buˈni.tu]
Unstressed a / e sapato /saˈpa.tu/ sapato [saˈpa.tu] sapato /sɐˈpa.tu/ sapato [sɐˈpa.tu]
Initial unstressed e elefante /e.leˈfɐ̃.t͡ʃi/ elefante [e.leˈfɐ̃.t͡ʃi] elefante /i.lɨˈfɐ̃.t(ɨ)/ elefante [i.lɨˈfɐ̃.t(ɨ)]
Initial unstressed o obrigado /o.bɾiˈɡa.du/ obrigado [o.bɾiˈɡa.du] obrigado /ɔ.bɾiˈɡa.du/ obrigado [ɔ.βɾiˈɣa.ðu]
Vowel before coda l alface /awˈfa.si/ alface [aʊ̯ˈfa.si] alface /alˈfa.s(ɨ)/ alface [aɫˈfa.s(ɨ)]
Stressed a before nasal consonant cama /ˈkɐ̃.mɐ/ cama [ˈkɐ̃.mɐ] cama /ˈkɐ.mɐ/ cama [ˈkɐ.mɐ]
nh banho /ˈbɐ̃.ɲu/ banho [ˈbɐ̃.j̃u] banho /ˈbɐ.ɲu/ banho [ˈbɐ.ɲu]
Diphthong ei beijo /ˈbe(j).ʒu/ beijo [ˈbe(ɪ̯).ʒu] beijo /ˈbej.ʒu/ beijo [ˈbej.ʒu]
Nasal diphthong ão mão /ˈmɐ̃w̃/ mão [ˈmɐ̃ʊ̯̃] mão /ˈmɐ̃w̃/ mão [ˈmɐ̃w̃]
Final -em homem /ˈõ.mẽj̃/ homem [ˈõ.mẽɪ̯̃] homem /ˈo.mẽj̃/ homem [ˈo.mẽj̃]
Doubled nasal -êm vêm /ˈvẽj̃/ vêm [ˈvẽɪ̯̃] vêm /ˈvẽj̃.ẽj̃/ vêm [ˈvẽj̃.ẽj̃]
Hiatus before a vowel teatro /teˈa.tɾu/ teatro [teˈa.tɾu] teatro /ˈtja.tɾu/ teatro [ˈtja.tɾu]
Epenthetic (j) before final s/z luz /ˈlu(j)ʃ/ luz [ˈlu(ɪ̯)ʃ] luz /ˈluʃ/ luz [ˈluʃ]
Consonant cluster division ritmo /ˈʁit.mu/ ritmo [ˈχit.mu] ritmo /ˈʁi.tmu/ ritmo [ˈʁi.tmu]
ng before a consonant parking /paʁˈkĩ/ parking [paχˈkĩ] parking /pɐɾˈkĩɡ/ parking [pɐɾˈkĩɡ]
Voiced stops between vowels sabêr /saˈbe(ʁ)/ sabêr [saˈbe(χ)] sabêr /sɐˈbeɾ/ sabêr [sɐˈβeɾ]
ex + consonant excelente /e.seˈlẽ.t͡ʃi/ excelente [e.seˈlẽ.t͡ʃi] excelente /ejʃ.sɨˈlẽ.t(ɨ)/ excelente [ejʃ.sɨˈlẽ.t(ɨ)]

Using the Tool: Practical Notes

Should I choose Brazil or Portugal?

Choose Brazil for Rio de Janeiro pronunciation and Portugal for a generic European transcription. Other regional accents, such as São Paulo or southern Brazil, are not selectable; see Dialects & Limitations and the comparison in Full Dialect Comparison.

What is the difference between the Phonemic and Phonetic forms?

The phonemic form is the broad transcription; the phonetic form adds a short list of allophonic rules. For Brazil it changes the strong r, as in rato /ˈʁa.tu/ against [ˈχa.tu]; for Portugal it turns b, d, g into fricatives, as in cidade /siˈda.d(ɨ)/ against [siˈða.ð(ɨ)]. See Phonemic vs Phonetic.

Why does a word come back unchanged, and how do I respell it?

The engine refuses a stressed e or o whose quality is not marked, and most uses of x. Mark the stressed vowel with é/ê or ó/ô: governo is returned unchanged, but govêrno gives /ɡoˈveʁ.nu/ in Brazil and /ɡuˈveɾ.nu/ in Portugal. Replace x by its sound, for example exame as ezame. A few regular words, such as Brazilian rio, fail because of a module bug; all of this is explained in Why You Might See an Error. Open in the converter

Why can the output differ from a dictionary?

The tool has no lexicon: each word is transcribed from its spelling alone, one space-separated word at a time. Loanwords and irregular spellings therefore need a respelling, for example pizza gives /ˈpi.zɐ/ while pítsa gives /ˈpit.sɐ/ in Brazil. See Common Issues & Limitations.

Implementation Details (for Developers)

The transcription is produced by lua_modules/pt-pron_wasm.lua, a copy of the Wiktionary module pt-pronunc. The app only calls export.IPA(text, style), which returns a list of {phonemic, phonetic, qualifiers} objects; the handler in scripts/utils.js takes the first object and the field named after the selected form:

const region = langStyle === "Brazil" ? "rio" : "pt";
const result = window.pt_ipa.IPA(cleanText, region);
return result?.[0]?.[langForm.toLowerCase()];

The stages below follow the order of the code. Stages 1 to 5 run once in export.IPA (headings 1 to 5 below); stages 6 to 23 run twice inside one_term_ipa (once for the phonemic and once for the phonetic output, controlled by the phonetic flag); stage 24 expands variants and stage 25 cleans up. (The list and the headings use the same numbers; stages 2 and 3, and stages 4 and 5, share a table.) Each table shows the relevant rule and a real engine output for each dialect (phonemic form unless the column says otherwise).

  1. Canonicalization (export.IPA): app-side cleaning, lowercase, NFD, accent validation.
  2. Word splitting, prefixes and unstressed words (stages 2 and 3 in one table below).
  3. Unstressed-word marking with DOTOVER/DOTUNDER and substitutions.
  4. Boundary markers for apostrophes, hyphens and word edges.
  5. Dialect-specific accents (grave and macron).
  6. The letter x (first step of one_term_ipa).
  7. h combinations and initial h.
  8. c, g, q, gu, qu, ü, ng, y.
  9. Doubled letters and muit-.
  10. Syllable division.
  11. Stress assignment (accent_word).
  12. Hiatus and glide formation.
  13. Vowel placeholders and nasalization.
  14. Nasal and oral diphthongs.
  15. Special open/closed o rules.
  16. Unstressed vowels.
  17. Final vowel qualities and the e/o error check.
  18. Epenthetic glide, s/z voicing and shibilants.
  19. R sounds.
  20. Profile-specific diphthong rules.
  21. Stops: palatalization (Brazil), fricativization (Portugal, phonetic).
  22. Glides, ou, coda l, nh and optional final ɨ.
  23. Symbol clean-up.
  24. Variant expansion (call_one_term_ipa).
  25. Finalization (finalize_ipa).

Internal Notation (Intermediate Forms)

During processing the module uses placeholder symbols that are not part of the final IPA. Capital letters (and a few capitalized IPA letters) remember where a sound came from, so that later rules can decide its final quality. All of them are gone by the time the result is returned.

Symbol Name Purpose Stage
A E O Undetermined vowels Written a/e/o whose quality is not yet known; resolved to a ɐ e ɛ ɨ i o ɔ u 13 to 17
Ẽ Initial en-/em- Brazilian ẽ (careful) or ĩ (natural) 13, 24
I, Ɨ Epenthetic i Epenthetic or deleted i; also Brazilian e/i from initial esC- and Portuguese (i) 16, 24
Ì Ù, Ú Optional glides Hiatus i/u that may be a glide; Ú is stressed final -io in Brazil 12, 24
Ɔ Open/closed o Portuguese o or ɔ before coda l 16, 24
W, L Regional w; final -le Optional w after closed o in hiatus; word-final -le in Portugal 17, 22, 24
X, S, N, M, Y Letter memories Final x; ss; nn; mm; Brazilian epenthetic glide 6, 9, 18
ʧ ʤ Palatalized t/d Unitary affricates, converted to t͡ʃ d͡ʒ at the end 21, 23
combining marks DOTOVER, DOTUNDER, LINEUNDER Forced reduction, explicit unstressed full vowel, secondary stress 3, 11
#, ## Word and utterance boundary Allows "word end" rules to work inside components 4
PSEUDOCONS, PREFIX_MARKER, SYLDIV, TEMP1 Private-use characters Edges of vowel-final prefixes, prefix flag, user syllable divider, temporary guard 4 to 25

1. Canonicalization

Rule Example Input Output (Brazil) Output (Portugal) Description
Lowercase everything Maria Maria /maˈɾi.ɐ/ Maria /mɐˈɾi.ɐ/ Capitals are accepted and ignored
NFD; keep ç, ü composed; sort accents (quality, then stress, then tilde) ação ação /aˈsɐ̃w̃/ ação /ɐˈsɐ̃w̃/ reorder_accents makes accent order irrelevant
Reject circumflex, grave or macron on anything but a/e/o cîa cîa (error) cîa (error) Error "Only a/e/o can be followed by circumflex, grave or macron"; also raised for two quality marks or two stress marks on one vowel

2. and 3. Word Splitting, Prefixes and Unstressed Words

The text is split at spaces and hyphens. A word that ends with a hyphen and has no accent is a prefix; it and the words in unstressed_words (plus, in Portugal, unstressed_full_vowel_words_brazil) receive a DOTOVER (forced vowel reduction). Words in unstressed_full_vowel_words (and, in Brazil, unstressed_full_vowel_words_brazil) receive a DOTUNDER (unstressed but not reduced). unstressed_pronunciation_substitution then rewrites ao(s), à(s) and por.

Rule Example Input Output (Brazil) Output (Portugal) Description
Reduced clitic (both) de de /d͡ʒi/ de /d(ɨ)/ No stress, final e reduced
Clitic reduced in Portugal only da da /da/ da /dɐ/ Brazil keeps full a
Never reduced meu meu /mew/ meu /mew/ No stress mark, full vowels
Substitution ao, por ao /aw/, por /puʁ/ ao /aw/, por /puɾ/ ao read as au, por as pur
Prefix with trailing hyphen anti- anti- /ɐ̃.t͡ʃi/ anti- /ɐ̃.ti/ Unstressed prefix; PSEUDOCONS and PREFIX_MARKER are attached

4. and 5. Boundary Markers and Dialect-Specific Accents

Rule Example Input Output (Brazil) Output (Portugal) Description
Apostrophe becomes the tie ‿ (syllable-transparent) d'água d'água /ˈd‿a.ɡwɐ/ d'água /ˈd‿a.ɡwɐ/ Words are wrapped in # boundaries, the whole text in ##
Hyphen becomes a component boundary guarda-chuva guarda-chuva /ˌɡwaʁ.dɐˈʃu.vɐ/ guarda-chuva /ˌɡwaɾ.dɐˈʃu.vɐ/ Both sides get #; each component is stressed separately
Brazil: delete grave/macron. Portugal: grave becomes acute + DOTUNDER, macron becomes circumflex + DOTUNDER sòlo Error sòlo /sɔ.lu/ In Brazil the vowel is left stressed and unmarked, so the e/o check of stage 17 fails; in Portugal it is an explicitly unstressed open vowel

6. The Letter x

Rule Example Input Output (Brazil) Output (Portugal) Description
#x → #ʃ xícara xícara /ˈʃi.ka.ɾɐ/ xícara /ˈʃi.kɐ.ɾɐ/ Initial x (also after a component boundary)
x# → X# (later ks) córtex córtex /ˈkɔʁ.tɛks/ córtex /ˈkɔɾ.tɛks/ Unstressed a/e/o before X is opened at stage 16
(ai|ei|oi|ou|en)x → ...ʃ caixa caixa /ˈkaj.ʃɐ/ caixa /ˈkaj.ʃɐ/ Other diphthongs before x (e.g. au, eu) fall through to the error
ex + C: Brazil → es + C; Portugal → eis + C excelente excelente /e.seˈlẽ.t͡ʃi/ excelente /ejʃ.sɨˈlẽ.t(ɨ)/ Not applied to other vowels; exs becomes isç in Portugal
Any remaining x exame exame (error) exame (error) Error "x must be respelled z, sh, cs, ss or similar"

7. h Combinations and Initial h

Rule Example Input Output (Brazil) Output (Portugal) Description
(s|c)h → ʃ chuva chuva /ˈʃu.vɐ/ chuva /ˈʃu.vɐ/ Done before syllabification so the consonant stays with the h
nh → ɲ, lh → ʎ ninho, filho ninho /ˈnĩ.ɲu/, filho /ˈfi.ʎu/ ninho /ˈni.ɲu/, filho /ˈfi.ʎu/ Brazil's later nasalization and phonetic j̃ apply to ɲ
Initial h removed humano humano /uˈmɐ̃.nu/ humano /uˈmɐ.nu/ Any other h is deleted at the very end (stage 23)

8. c, g, q, gu, qu, ü, ng, y

Rule Example Input Output (Brazil) Output (Portugal) Description
c + front vowel → ç; g + front vowel → j cinêma, gêlo cinêma /siˈnẽ.mɐ/, gêlo /ˈʒe.lu/ cinêma /siˈne.mɐ/, gêlo /ˈʒe.lu/ Front vowels: e ɛ ɨ i and glides
gu/qu + front vowel → g/k guitarra, quilo guitarra /ɡiˈta.ʁɐ/, quilo /ˈki.lu/ guitarra /ɡiˈta.ʁɐ/, quilo /ˈki.lu/ The u is silent
ng + consonant: Brazil → n, Portugal → ngh parking parking /paʁˈkĩ/ parking /pɐɾˈkĩɡ/ Not before a vowel, h, l or r
ü → u; (g|q)u + vowel → (g|q)w; remaining c, q → k agüentar, quatro agüentar /a.ɡwẽˈta(ʁ)/, quatro /ˈkwa.tɾu/ agüentar /ɐ.ɡwẽˈtaɾ/, quatro /ˈkwa.tɾu/ w is a glide consonant here
y between non-vowels → i Itamaraty Itamaraty /i.ta.ma.ɾaˈt͡ʃi/ Itamaraty /i.tɐ.mɐ.ɾɐˈti/ Other uses of y are left to the glide rules

9. Doubled Letters and muit-

Rule Example Input Output (Brazil) Output (Portugal) Description
rr → ʁ carro carro /ˈka.ʁu/ carro /ˈka.ʁu/ A single unit, so it cannot be split by syllabification
nn → N, mm → M (→ plain n, m) ánno ánno /ˈã.nu/ ánno /ˈa.nu/ Prevents nasalization of the preceding vowel
ss → S (later s or ç) passa, nóss passa /ˈpa.sɐ/, nóss /ˈnɔʃ/ passa /ˈpa.sɐ/, nóss /ˈnɔʃ/ Final S behaves like s but blocks the epenthetic glide
(C)(C) with identical consonants → one pizza pizza /ˈpi.zɐ/ pizza /ˈpi.zɐ/ Applies to every other double consonant
#mu(stress)it → mũit muito muito /ˈmũj̃.tu/ muito /ˈmũj̃.tu/ Done before t/d palatalization

10. Syllable Division

Rules, applied in this order: (a) divide before the last consonant between vowels (plus any following glide) and move the division left over a stop + l/r onset; (b) Portugal also keeps "improper" clusters (pt, bv, mn, ...) together, whereas Brazil divides between them (and handles adj- specially); (c) divide a/e/o + i/u before m, n, l, r, nh; (d) protect final -ui(s), -iu(s), the diphthongs aeo + unstressed i/u and the nasal diphthongs ão, ãe, õe, ũi; (e) divide every other vowel sequence.

Rule Example Input Output (Brazil) Output (Portugal) Description
Stop + l/r is an onset prato prato /ˈpɾa.tu/ prato /ˈpɾa.tu/ Not divided
Improper clusters (dialect difference) ritmo ritmo /ˈʁit.mu/ ritmo /ˈʁi.tmu/ Brazil: t.m; Portugal: .tm
Diphthong protected saudade saudade /sawˈda.d͡ʒi/ saudade /sawˈda.d(ɨ)/ au stays one syllable
Diphthong divided before r sair sair /saˈi(ʁ)/ sair /sɐˈiɾ/ a.i in hiatus
Other vowel sequences divided saída saída /saˈi.dɐ/ saída /sɐˈi.dɐ/ Accented í blocks the diphthong rule

11. Stress Assignment (accent_word)

First, an acute or circumflex on a vowel becomes a primary stress mark (ˈ); a line-under becomes secondary stress. Then accent_word is run on each word (and component) that has no primary stress: it looks for a tilde syllable (last one wins); otherwise it stresses the next-to-last syllable when the word ends in [aeo]s?, [ae]m or [ae]ns, else the last syllable; it never stresses an epenthetic I or a vowel-less syllable. -mente and -zinho/-zinha(s) are first split off as separate components.

Rule Example Input Output (Brazil) Output (Portugal) Description
Accent → stress café café /kaˈfɛ/ café /kɐˈfɛ/ Acute/circumflex mark both stress and quality
Last tilde syllable irmão irmão /iʁˈmɐ̃w̃/ irmão /iɾˈmɐ̃w̃/ Tilde stress before the default rule
Next-to-last cidade cidade /siˈda.d͡ʒi/ cidade /siˈda.d(ɨ)/ Ends in e
Last azul azul /aˈzuw/ azul /ɐˈzul/ Ends in l
-mente / -zinho split rapidamente rapidamente /ʁaˌpi.daˈmẽ.t͡ʃi/ rapidamente /ʁɐˌpi.dɐˈmẽ.t(ɨ)/ Both components stressed; the first one is demoted at stage 25

12. Hiatus and Glide Formation

Rule Example Input Output (Brazil) Output (Portugal) Description
#i.V → #yV unless the i is stressed or the dot was typed iate iate /ˈja.t͡ʃi/ iate /ˈja.t(ɨ)/ Both dialects
Brazil: unstressed i./u. → optional glide (Ì, Ù); Portugal: e./i./o./u. before a vowel → glide teatro teatro /teˈa.tɾu/ teatro /ˈtja.tɾu/ The shown variant keeps the hiatus in Brazil
Portugal only: e.i → a.i (except after re-) proteína proteína /pɾo.teˈĩ.nɐ/ proteína /pɾu.tɐˈi.nɐ/ Portuguese ɐ
Stressed i + final o in Brazil → Ú rio rio /ˈʁi.u/ rio /ˈʁi.u/ Two variants i.u / iw are generated at stage 24; the app shows the first

13. Vowel Placeholders and Nasalization

Every a, e, o becomes A, E, O (undetermined). Then, in order:

  1. Final unstressed Am becomes Ão.
  2. Portugal: final n becomes a true n and opens the preceding E/O.
  3. põem: Brazil drops the m; Portugal inserts a hiatus. Portugal's circumflex -êm becomes a double nasal glide sequence. An acute on final -em/-ens is turned into a circumflex.
  4. Vowel + m/n in one syllable becomes a tilde; a non-high vowel gets a circumflex.
  5. A primary-stressed vowel before m/n/nh across a syllable boundary is circumflexed (both dialects) and nasalized in Brazil (except sbr); every vowel before nh is nasalized in Brazil.
  6. Brazil: initial unstressed êm-/ên- + consonant becomes Ẽ.
Rule Example Input Output (Brazil) Output (Portugal) Description
-am → -ão cantam cantam /ˈkɐ̃.tɐ̃w̃/ cantam /ˈkɐ̃.tɐ̃w̃/ Unstressed final
V + m/n (same syllable) → V~ lindo lindo /ˈlĩ.du/ lindo /ˈlĩ.du/ Consonant disappears
Stressed V + m/n (next syllable) cama cama /ˈkɐ̃.mɐ/ cama /ˈkɐ.mɐ/ Brazil nasalizes; both close the vowel
Portugal final n hífen hífen /ˈi.fẽj̃/ hífen /ˈi.fɛn/ Portugal: true n, open vowel
Circumflex on final -em (Portugal) têm têm /ˈtẽj̃/ têm /ˈtẽj̃.ẽj̃/ Doubled nasal diphthong in Portugal only
Initial en-/em- + consonant (Brazil) enxame enxame /ẽˈʃɐ̃.mi/ enxame /ẽˈʃɐ.m(ɨ)/ Careful variant shown first

14. Nasal and Oral Diphthongs

Rule Example Input Output (Brazil) Output (Portugal) Description
à + O → ã + nasal w; à + E → nasal j; Õ + E → nasal j; ũ + i → nasal j mão, mãe, põe mão /ˈmɐ̃w̃/, mãe /ˈmɐ̃j̃/, põe /ˈpõj̃/ mão /ˈmɐ̃w̃/, mãe /ˈmɐ̃j̃/, põe /ˈpõj̃/ The second letter becomes a glide
Final nasal e (-em, -ens) → ẽ + nasal j bem, homens bem /ˈbẽj̃/, homens /ˈõ.mẽj̃ʃ/ bem /ˈbẽj̃/, homens /ˈo.mẽj̃ʃ/ Regardless of stress
E/O + i/u/y/w → ê/ô leite, boi leite /ˈlej.t͡ʃi/, boi /ˈboj/ leite /ˈlej.t(ɨ)/, boi /ˈboj/ No accent needed in a diphthong
A + i/u/y/w → á pai, mau pai /ˈpaj/, mau /ˈmaw/ pai /ˈpaj/, mau /ˈmaw/ Always a

15. Special Open/Closed o

Rule Example Input Output (Brazil) Output (Portugal) Description
[dtsS]O ˈ r# (and -ra, -res, -ras) → closed o invasor, ganhadora invasor /ĩ.vaˈzoʁ/, ganhadora /ɡɐ̃.ɲaˈdo.ɾɐ/ invasor /ĩ.vɐˈzoɾ/, ganhadora /ɡɐ.ɲɐˈdo.ɾɐ/ -dor, -tor, -sor and their feminine and plural forms
Oˈ.sO# → closed gostoso gostoso /ɡoʃˈto.zu/ gostoso /ɡuʃˈto.zu/ Masculine -oso
Oˈ.s[OA]s?# → open ɔ gostosa, gostosos gostosa /ɡoʃˈtɔ.zɐ/, gostosos /ɡoʃˈtɔ.zuʃ/ gostosa /ɡuʃˈtɔ.zɐ/, gostosos /ɡuʃˈtɔ.zuʃ/ Feminine and plural: open
Stressed O in hiatus → closed o boa boa /ˈbo.ɐ/ boa /ˈbo.ɐ/ In Portugal an optional regional w is generated at stage 24

16. Unstressed Vowels

Rule Example Input Output (Brazil) Output (Portugal) Description
Before final X: unstressed a/e/o opened clímax clímax /ˈklĩ.maks/ clímax /ˈkli.maks/ X is then replaced by ks
Brazil: final unstressed e/o/a → i/u/ɐ (not in sbr) dôce, bonito dôce /ˈdo.si/, bonito /boˈni.tu/ dôce /ˈdo.s(ɨ)/, bonito /buˈni.tu/ Remaining unstressed vowels become a/e/o
Brazil: initial #Es + C → I (i or e) estar estar /iʃˈta(ʁ)/ estar /(i)ʃˈtaɾ/ Portugal: initial #Es → (i)
Portugal: [AEO] before final r or coda l → open dólar, alface dólar /ˈdɔ.lɐʁ/, alface /awˈfa.si/ dólar /ˈdɔ.laɾ/, alface /alˈfa.s(ɨ)/ The o before l becomes Ɔ (o/ɔ, first variant o)
Portugal: initial E → i; initial O → ɔ if the word contains another vowel; others → ɐ ɨ u elefante, obrigado elefante /e.leˈfɐ̃.t͡ʃi/, obrigado /o.bɾiˈɡa.du/ elefante /i.lɨˈfɐ̃.t(ɨ)/, obrigado /ɔ.bɾiˈɡa.du/ Unstressed ie becomes jɛ

17. Final Vowel Qualities and the Error Check

Remaining A becomes a; a quality mark turns A/E/O into a ɐ / ɛ e / ɔ o (acute / circumflex); quality marks on i/u are ignored. Any E or O that is still undetermined triggers the error "Stressed e or o not occurring nasalized or in a diphthong must be marked for quality using é/ê or ó/ô".

Rule Example Input Output (Brazil) Output (Portugal) Description
A + acute → a, A + circumflex → ɐ pára, pâra pára /ˈpa.ɾɐ/, pâra /ˈpɐ.ɾɐ/ pára /ˈpa.ɾɐ/, pâra /ˈpɐ.ɾɐ/ Only stress marks fix the quality
E/O + acute → ɛ/ɔ; + circumflex → e/o féra, fêra féra /ˈfɛ.ɾɐ/, fêra /ˈfe.ɾɐ/ féra /ˈfɛ.ɾɐ/, fêra /ˈfe.ɾɐ/ Open or closed
E or O still unresolved governo governo (error) governo (error) The error raised from one_term_ipa is caught by the app

18. Epenthetic Glide, s/z and Shibilants

Rule Example Input Output (Brazil) Output (Portugal) Description
Brazil: V ˈ + final s/z → V ˈ Y s/z (not after i) luz luz /ˈlu(j)ʃ/ luz /ˈluʃ/ Y later becomes (j)
S# → s#, S → ç; z# → s# passa passa /ˈpa.sɐ/ passa /ˈpa.sɐ/ The ss spelling blocks voicing and epenthesis
trans + V → z; s between vowels or before a voiced consonant → z; z before voiceless → s transar, casa transar /tɾɐ̃ˈza(ʁ)/, casa /ˈka.zɐ/ transar /tɾɐ̃ˈzaɾ/, casa /ˈka.zɐ/ Not after a nasal vowel before a vowel (e.g. pensar)
Rio and Portugal: s/z before a consonant or at the end → ʃ/ʒ (not word-initial) pasta, asma pasta /ˈpaʃ.tɐ/, asma /ˈaʒ.mɐ/ pasta /ˈpaʃ.tɐ/, asma /ˈaʒ.mɐ/ Other Brazilian styles skip this rule
Identical sibilants merge; Rio also merges ʃ+s nascêr nascêr /naˈse(ʁ)/ nascêr /nɐʃˈseɾ/ Portugal keeps ʃs as the "careful" first variant (stage 24)

19. R Sounds

Rule Example Input Output (Brazil, phonetic) Output (Portugal, phonetic) Description
Initial r, or after ~ l s z ʃ ʒ → ʁ honra honra [ˈõ.χɐ] honra [ˈõ.ʁɐ] Brazil phonetic: ʁ becomes χ
Brazil: stressed [aɛei] + final r → optional (ʁ); other coda r → ʁ cantar, pórta cantar [kɐ̃ˈta(χ)], pórta [ˈpɔχ.tɐ] cantar [kɐ̃ˈtaɾ], pórta [ˈpɔɾ.tɐ] Other Brazilian styles use ɾ (sp) or ɻ (sbr)
Phonetic Rio: ʁ before voiced consonant stays ʁ, otherwise χ bórdo bórdo [ˈbɔʁ.du] bórdo [ˈbɔɾ.ðu] Other Brazilian styles: ɦ / h
All other r → ɾ caro caro [ˈka.ɾu] caro [ˈka.ɾu] Including Portugal coda r

20. Profile-Specific Diphthong Rules

Brazil: eir, eij, eig, eix receive an optional (j). The following branches are selected by exact style name and therefore never run in this app, because the app passes pt for Portugal: spt deletes the glide of ei and ou; gpt lowers e/ɛ before i, before j, and before other palatals to ɐ.

Rule Example Input Output (Brazil) Output (Portugal) Description
Brazil: e(i) before r/j/g/x → e(j) beijo, cadeira beijo /ˈbe(j).ʒu/, cadeira /kaˈde(j).ɾɐ/ beijo /ˈbej.ʒu/, cadeira /kɐˈdej.ɾɐ/ Portugal (pt) keeps a normal diphthong

21. Stops: Palatalization and Fricativization

Rule Example Input Output (Brazil, phonemic) Output (Portugal, phonetic) Description
Brazil: [td] + i/Ì/y/Ɨ → ʧ/ʤ tia, cidade tia /ˈt͡ʃi.ɐ/, cidade /siˈda.d͡ʒi/ tia [ˈti.ɐ], cidade [siˈða.ð(ɨ)] Runs after the final vowel qualities, so raised final e is included
Portugal, phonetic only: [bdg] → [βðɣ], then back to stops at ## start, after a nasal, and ld sabêr, mundo sabêr /saˈbe(ʁ)/, mundo /ˈmũ.du/ sabêr [sɐˈβeɾ], mundo [ˈmũ.du] No fricativization in Brazil

22. Glides, ou, Coda l, nh and Optional ɨ

Rule Example Input Output (Brazil, phonetic) Output (Portugal, phonetic) Description
ou → o(w) pouco pouco [ˈpo(ʊ̯).ku] pouco [ˈpo(w).ku] Done before coda l, so ol stays ow
Coda l: Brazil → w; Portugal phonetic → ɫ animal animal [a.niˈmaʊ̯] animal [ɐ.niˈmaɫ] Portugal phonemic keeps l
Second element of a diphthong: i/j → j or ɪ̯; u/w → w or ʊ̯ (phonetic Brazil) pai pai [ˈpaɪ̯] pai [ˈpaj] Y → (j) in Brazil
Brazil phonetic: non-initial ɲ → j̃ banho banho [ˈbɐ̃.j̃u] banho [ˈbɐ.ɲu] Not in sbr; initial nh is unchanged: nhaca [ˈɲa.kɐ]
Portugal: final ɨ is optional, and elided before a vowel tarde tarde [ˈtaʁ.d͡ʒi] tarde [ˈtaɾ.ð(ɨ)] Output (ɨ); for final -le the word is split into two variants (see stage 24)

23. Symbol Clean-Up

g is replaced with the IPA ɡ (U+0261); ʧ ʤ and tʃ dʒ become t͡ʃ d͡ʒ; every h is deleted (the temporary capital H used for Brazilian strong r is lowercased first).

Rule Example Input Output (Brazil) Output (Portugal) Description
g → ɡ; ʤ → d͡ʒ gato, dia gato /ˈɡa.tu/, dia /ˈd͡ʒi.ɐ/ gato /ˈɡa.tu/, dia /ˈdi.ɐ/ Proper IPA characters

24. Variant Expansion (call_one_term_ipa)

The phonemic and phonetic outputs are computed first. Then flatmap_and_sub_post splits every output that contains an undecided symbol into two variants, each with a qualifier. The app only displays the first variant.

Dialect Symbol First variant (shown) Second variant (not shown) Example (first variant)
Brazil Ẽ (initial en-/em-) ẽ (careful) ĩ (natural) enxame /ẽˈʃɐ̃.mi/
Brazil I (initial es-) i e estar /iʃˈta(ʁ)/
Brazil Ú (stressed final -io) .u w / ʊ̯ Bug: crashes, see Common Issues
Brazil and Portugal Ì / Ù (hiatus i/u) Full vowel Glide ("faster pronunciation") criança /kɾiˈɐ̃.sɐ/
Portugal ʃ + s, ʒ + z Both kept ("careful") Only the first ("natural") nascêr /nɐʃˈseɾ/
Portugal Ɔ (o before l) o ɔ solteiro /solˈtej.ɾu/
Portugal W (o in hiatus) No glide w ("regional") boa /ˈbo.ɐ/
Portugal L (final -le) With a full ɨ in its own syllable Without it (one syllable fewer), ending in coda l / ɫ Bug: crashes, see Common Issues

25. Finalization (finalize_ipa)

Rule Example Input Output (Brazil, phonetic) Output (Portugal, phonetic) Description
Brazil phonetic: i/u + syllable dot + vowel → ɪ/ʊ ciúme ciúme [sɪˈũ.mi] ciúme [ˈsju.m(ɨ)] Only after the glide variants have been expanded
Move ˈ/ˌ to the start of the syllable; drop the dot before it saída saída [saˈi.dɐ] saída [sɐˈi.ðɐ] Stress marks sit on the vowel until this point
All but the last primary stress of a word become secondary; stress in prefixes becomes secondary guarda-chuva guarda-chuva [ˌɡwaʁ.dɐˈʃu.vɐ] guarda-chuva [ˌɡwaɾ.ðɐˈʃu.vɐ] Compounds, -mente and -zinho
Remove #, _, PSEUDOCONS, PREFIX_MARKER; recompose to NFC d'água d'água [ˈd‿a.ɡwɐ] d'água [ˈd‿a.ɣwɐ] Output is ready for the app

Phonetic Transcription Process

There is no separate "apply phonetic rules" pass for Portuguese: one_term_ipa runs twice and the phonetic flag changes only the rules below.

Rule Example Description
Brazil: ʁ → χ (ʁ before a voiced consonant) carro [ˈka.χu] Rio's voiceless uvular fricative
Brazil: diphthong glides j, w → ɪ̯, ʊ̯ pai [ˈpaɪ̯] Short vowel-like glides
Brazil: non-initial ɲ → j̃ (not sbr) banho [ˈbɐ̃.j̃u] Nasal glide
Brazil: hiatus i/u → ɪ/ʊ viúva [vɪˈu.vɐ] Lax vowels
Portugal: b d g → β ð ɣ (with exceptions) obrigado [ɔ.βɾiˈɣa.ðu] Fricativization, see stage 21
Portugal: coda l → ɫ animal [ɐ.niˈmaɫ] Dark l

Common Issues & Limitations

Known Transcription Problems

This table shows known issues where the automatic transcription fails or is wrong. "System Output" for a word that fails means the word is returned unchanged in the error style (see What the App Shows When It Fails).

Input System Output Correct IPA Cause What to Do
governo, hoje, Europa Error in both dialects: governo (error), hoje (error), Europa (error) Brazil: govêrno /ɡoˈveʁ.nu/, hóje /ˈɔ.ʒi/, Európa /ewˈɾɔ.pɐ/
Portugal: govêrno /ɡuˈveɾ.nu/, hóje /ˈɔ.ʒ(ɨ)/, Európa /ewˈɾɔ.pɐ/
Stressed e/o without é/ê/ó/ô and not in a rule context Accent the stressed vowel (ê closed, é open)
exame, táxi, lixo Error in both dialects: exame (error), táxi (error), lixo (error) Brazil: ezame /eˈzɐ̃.mi/, tácsi /ˈtak.si/, lisho /ˈli.ʃu/
Portugal: ezame /iˈzɐ.m(ɨ)/, tácsi /ˈta.ksi/, lisho /ˈli.ʃu/
x between vowels is ambiguous Respell with z, cs, sh or ss
ritmo, advogado (Brazil) ritmo /ˈʁit.mu/, advogado /ad.voˈɡa.du/ Real Brazilian speech inserts an epenthetic i inside these clusters (described in words: after the first consonant, e.g. rit-i-mo) The module only inserts it from the respelling notation i^/i*, which the app's input cleaning strips Not possible in this app; the output is a simplification
shopping Brazil: shopping /ʃoˈpĩ/
Portugal: shopping /ʃuˈpĩɡ/
Brazil: shópping /ˈʃɔ.pĩ/
Portugal: shópping /ˈʃɔ.pĩɡ/
Default stress goes on the last syllable of a word ending in a consonant, and Portugal keeps the g of -ng Mark the stress yourself: shópping
pizza Brazil: pizza /ˈpi.zɐ/
Portugal: pizza /ˈpi.zɐ/
The usual pronunciation has ts: Brazil pítsa /ˈpit.sɐ/, Portugal pítsa /ˈpi.tsɐ/ Doubled letters reduce to one, so zz is just z Respell the loanword phonetically: pítsa
jazz Brazil: jazz /ˈʒa(j)ʃ/
Portugal: jazz /ˈʒaʃ/
Brazil: djézz /ˈd͡ʒɛ(j)ʃ/
Portugal: djézz /ˈd͡ʒɛʃ/
English loanword spelled with j and a Respell: djézz
whisky Brazil: whisky /wiʃˈki/
Portugal: whisky /wiʃˈki/
Brazil: uísque /uˈiʃ.ki/
Portugal: uísque /ˈwiʃ.k(ɨ)/
Final-syllable default stress and wh passes through as w Respell with an accent on the stressed syllable
internet Error in both dialects: internet (error) Brazil: internét /ĩ.teʁˈnɛt/
Portugal: internét /ĩ.tɨɾˈnɛt/
Last syllable is stressed by default and its e is unmarked Add the accent: internét
adjetivo (Portugal) Phonemic adjetivo /ɐ.d͡ʒɨˈti.vu/
Phonetic adjetivo [ɐ.ðʒɨˈti.vu]
The two forms disagree: the phonemic form has a tie-barred affricate d͡ʒ, the phonetic form separates it into ð + ʒ (described in words; no respelling avoids it) The fricativization rule of stage 21 also applies to the d of written dj Treat the phonemic form as the reference, or check an external source
email Brazil: email /e.maˈiw/
Portugal: email /i.mɐˈil/
Brazil: imêiu /iˈme.iw/
Portugal: imêiu /iˈme.iw/
Last syllable stressed by default (as for any word ending in l), and e, a are read as in Portuguese Respell the loanword: imêiu
os + amigos typed with a space os /uʃ/, amigos /aˈmi.ɡuʃ/ In connected speech the final s of os is voiced before a vowel; this cannot be reproduced (described in words) The app transcribes each space-separated word separately, so cross-word rules never apply Not possible in this app

Other Limitations

Help pages for other languages in this tool:


For technical issues or suggestions, please visit our GitHub repository.