In English, we have many words ending in or containing “gh”, but in some cases, the two letters are silent, while in others, it is pronounced as “f” . We have the words tough, rough, and draught, which pronounce "gh" as an "f" sound, while the words height, weight, through, drought, and many others do not pronounce the sound at all.

Are there any rules governing the pronunciations of these words? Or is the reason for this based in the origins of the words?

Edit: My question focuses specifically on the “gh” combination, not the pronunciation of “ough”. In my examples I gave words such as the words height and weight which contain “eigh”, not just words with “ough”.


Solution 1:

The question as posed has no answer, because it starts from an incorrect assumption.
Modern English has no "gh" sound. Middle English had one, but it was lost.

What that means is that the sounds changed, but the spelling didn't, since the spelling got fixed before the Early Modern English period (roughly, 1600-1800; after 1800 is Modern English). When a big sound change is happening, different things happen in different dialects, and then they all merge together, with different words coming from different dialects that made different changes.

While the [x] allophone of the ME /h/ phoneme (which was spelled "gh" in ME) was being lost, people started hearing [x] as a different voiceless fricative (like /f/ or /θ/ -- there are dialects of English still where trough is pronounced like troth instead of troff), or else they just stopped hearing it at all, so it was gone in the next generation's speech. But the spelling remained, to encourage people to question it.