Balabolka is a free and powerful text-to-speech program which can read the text from Office documents, PDF files, web pages and more. It uses Microsoft's Speech Platform and requires at least one Microsoft voice, but this shouldn't be a problem for most PCs. (If in doubt, launch Narrator.exe, or look for Narrator options in Control Panel's "Ease of Access Centre"; if Narrator can read text, Balabolka should be able to do so as well.)
At its simplest, you can just use the program to open and read a file. Supported formats include PDF, DOC, DOCX, AZW, AZW3, MOBI, PRC, DJVU, EPUB, HTML, TXT, RTF, RAR, ZIP and more. You're also able to tweak the narration speed, pitch and volume.
Just as with any other text-to-speech software, Balabolka regularly makes pronunciation errors. But unlike most of the competition, it also provides a way to fix them.
Click the "Panel of Dictionaries" toolbar button, and check "default_dic". Highlight any word which isn't pronounced correctly, right-click it and select "Pronunciation". Change the spelling in the "Like this" box to something which helps the program say that word correctly - replace Philadelphia with Phillaadellphia, say - and click "Add and Save". That word should now be spoken correctly.
Once everything is set up as you like, click File > Save Audio File to save the document as an MP3 or WAV.
Alternatively, click File > ID3 Tags, check "Set ID3 tags" and click Text > Add Text to MP3 Tags. The spoken text will be saved as tags within the MP3 file, then appear on playback, synchronised with the speech (just like song lyrics) as long as your media player supports that.