I am used to פרעה being pronounced as "Paroh" as it has been for the last few parshot, but I noticed today that in Parshat Bo (Shemot 10:11) it is to be pronounced "Faroh". What causes this change? I assume it is a grammatical rule that I don't know. Is it because of some feature of the previous word: פני?
The letters בגד כפת have two versions, one with Dagesh and one without. It gets a Dagesh after a closed syllable, or in the beginning of a word.
In this instance, the previous word ends with an open syllable. Therefore the פ does not receive a Dagesh.
What of many instances where we see a word-initial פ receive a Dagesh where the previous word ended with an open syllable? The answer is that the above is a simplification. One also needs to look at trup, the cantillation marks. A trup symbol either is disjunctive and thus divides or is conjunctive and thus joins. The mercha symbol on פני in the preceding word is a conjunctive accent, so the open syllable prevents the Dagesh. Were it a disjunctive trup symbol, then the open syllable in פני would not affect the פ of פרעה.
About 4-5 years ago I had a conversation with a Baal Koreh about why the Bet on the word וַיַּ֥רְא בָּלָ֖ק was not a Vet. I did some research and retyped the answer and others in a short summary form. It's not extensive, but should suffice for all the exceptions. For more details, I would suggest כללי טעמי המקרא - פרק
In general, the “Pirate” letters - which are אהוי (ךָ/תָּ), will “steal” the Dagesh dot (the gold coin) from any of the בּגּדּ כּפּתּ letters. Example: הָֽיְתָ֥ה תֹ֨הוּ֙ (instead of תֹּהוּ). To help remember this rule, I call these Pirate letters since they say “AHOY”. Also since Pirates will only steal when on a word that has a “Servant” note on it, and not when the word has a “Ruler” type of note, since they are more fearful of stealing when a “Ruler” is around.
The following are 7 exceptions to this rule.
מַפִּיק - The last letter is a Hay with a Dot. Example: בְּצִדָּ֣הּ תָּשִׂ֑ים (Breisheet 6:17) / תַגְבִּ֤יהַּ כַּנֶּ֨שֶׁר֙ (Yirmiyahu 49:17)
מַפְסִיק - The נָגִינָה is part of the group of “Rulers” that will cause a pause. Example: וַיִּקְרָ֖א בְּשֵׁ֥ם(Breisheet 12:8)
דְחִיק - The two words are pressed together - connected with a Makaf (־). The first word ends in a: Patach / Kamatz Katan / or a Segol. The last letter is a Hay and one of the words has only one syllable. Example:מַה־בֶּ֗צַע (Breisheet 37:26)
אָתֵי מֵרַחִיק - Both words are מִלְעֵיל. The first word has its accent shifted to the beginning as a result of נָסוֹג אָחוֹר. The word ends with a Kamatz or a Segol and the final letter is a suffix תָּ/ךָ/ה and not part of the root. Example:עֹ֤שֶׂה פְּרִי֙ (Breisheet 6:17) / לָ֣מָּה זֶּה֩ (Breisheet 18:13)
מִכוּפְלִים - The second word is formed from doubled letters. Example: וְשַׂמְתִּ֤י כַּֽדְכֹד֙ (Yeshiyahu 54:12)
שְׁתֵּי אוֹתִיוֹת מִמוֹצָא אֶחָד - the first two letters of the second word are from the same phonetic group. Example: וְאִכָּֽבְדָ֤ה בְּפַרְעֹה֙ (Breisheet 6:17) In this example, if this were changed to a Vet, it would make the second word hard to read, since both a Vet and a Fay use the lips for pronunciation.
אַלֶף נָחָא אַחֵר שְׁבָא נָח - a א after a שְׁבָא נָח Example: וַיַּ֥רְא בָּלָ֖ק (Bamidbar 22:2)
C A שְׁבָא נָח can be divided into two categories: נָח נִרְאֶה / נָח נִסְתָּר Generally speaking - every letter should really have a vowel, therefore a נָח נִסְתָּר is where the Resting Sh’va is on a letter whose pronunciation is hiding (not sounded) and sometimes the letter itself if hiding.
נָח נִסְתָּר Examples: מִי - The Yood at the end should really be מִיְ וַיָּקָם - The Kamatz under the Yood should really be וַיְ יָאְ קָם
A נָח נִרְאֶה is where the letter is seen and pronounced. נָח נִרְאֶהExamples: אַבְרָהָם - The Mem at the end should really be אַבְרָהָםְ
A Yood י is only considered a נח נסתר when it comes after a צֵירֵי or a חִירִק.
Example: מִלִּפְנֵ֣י פַרְעֹ֔ה (Breisheet 47:10) / רוּחִ֤י בָֽאָדָם֙ (Breisheet 6:3) When a Yood comes after any other vowels, this rule will not work.