Pronunciation is mostly precisely expressed through IPA, the International Phonetic Alphabet used by linguistics. However, it's probably a pretty likely that most people reading this don't already known IPA (though if you're planning extensive language work, it's a great idea to do so as it provides a precise way to learn the pronunciation of a language.) Most of the pronunciations, thus, will be explained in terms of both IPA and approximating them in standard English.
If some letter isn't mentioned in the course of this article, then just assume that it is pronounced the same as in English. The two languages have a lot in common!
All that being said, it is very difficult to pick up subtle differences in pronunciation on an entirely written guide. The best way to learn pronunciation is, as always, by working with native speakers. This should be considered an imperfect substitute for this, and not a complete alternative. All else failing, try to find recordings of French speakers saying words and see how they line up with the spelling of the words.
French has many dialects, with many variants on pronunciation, from Sub-Saharan Africa to the individual neighbourhoods of Paris. So how can there be a single way to pronounce French?
The “standard” dialect is Parisien, that is, from Paris. This is the one that will be described in this article. However, if you're traveling somewhere other than Paris, then expect to hear something a little bit different from what you'll be reading about in this article. Most French speakers can at least understand the Parisien dialect, however, so don't fret.
Also, keep in mind that these are general rules, as it it impossible to not have exceptions in a language! There will be situations were these simply won't apply and you'll have the memorize the pronunciation as learned from a native speaker.
Probably the most difficult—and most important—thing to master in French are the vowels, so we'll cover that first.
Vowels may be modified by a number of accents. The accent grave, à, acts to shorten the sound of the vowel. This is most common over a. The accent aigu, é, acts to lengthen the vowel and make it sound more open, for example été or répété. This is most common over e. The circonflex doesn't strictly modify the sound, and is there primarily for etymological reasons. It is found mostly over o and a.
The vowels are divided into two main types: hard vowels and soft vowels. The hard vowels consist of a and o. The soft vowels consist of u, i, and e.
From here, a vast array of vowel sounds emerge which, frankly, there is not space to describe in this here article. Try just pronouncing vowels and vowel clusters in the English manner, as they are largely quite similar, but with the following rules to guide you:
Vowels may be nasal, which means, well, they're made to sound more nasal. While this may seem really obvious, especially if you're familiar with the usual caricaturization of the language being one that is entirely nasalized, it may also be difficult for English speakers to approximate and recognize for themselves. For nasalized syllables like en, dans, sans, on, un, brun, or hein, try integrating a vaguely grunt-like quality into the pronunciation. You've probably picked up a pattern by now: most of these vowels or vowel clusters end with an n. Use that as a marker to guide whether you nasalize the syllable or not.
Certain situations call for the syllable, and specifically the vowel, to be lengthened. This is almost always in cases where that particular syllable is stressed to give it that extra emphasis.
Another distinctive feature of French is the schwa, known as the mute e or the muet e. It is a highly unstable feature of French, sometimes making the /ə/ sound, sometimes merging with other sounds, or sometimes simply not pronounced at all. As an e at the end of a words, it tends to simply be ignored, such as in porte or table. It may also be pronounced when it is represented by an é or ée at the end of a word, such as with past participles. In one syllable words, it is often the only real sound, such as in ce, de, or que.
For vowel clusters, the trema accent plays an important role. The trema is generally placed on the second vowel of a cluster, and acts to force the two vowels to be pronounced distinct from each other. Think of the Anglicized word noël.
However, not all vowel clusters have tremas, as is obvious from many of the above examples. In such situations, the glide plays an important role. This is not represented by any particular symbol, but it sounds something like our English y sound being placed between the vowels, though not quite as conspicuous. In such vowel clusters, is, ous and other long sounds dominate, while the shorter sounds like the mute e are left unstressed. Examples are nier, louer and tuer.