This thing was made by me. It is coded in C#. If it doesn't work for you, you probably don't have the latest .NET installed.
It is a sapi speak window, it has no features. You type the text, you can tab to a box where you set the rate, and there is a tab to a button that speaks it. A hotkey to make it speak the message from anywhere in the program is ALT P. You cannot change the pitch because the speech synthesizer class I referenced literally doesn't let you, so I'd have to use tolk if I wanted to do anything fancier. I cannot for the life of me figure out how to get the list of installed voices into a combobox for you to select.
so your synth has a .GetInstalledVoices() method, I would like to populate the combo box with those voices that it finds. Problem is, the items collection only wants to take strings, not objects or methods. I don't know how to fix this. To be honest, I don't even know how I cobbled this thing together, because I cannot code.
Oh, and its fugly as hell, just so ya know, if a sighted person looks at this, they'll probably go blind, or die. What's more, its actually inaccessible to sighted people, OK, they might infer that the box is where you type the text, and the speak button makes it talk, but the rate control spinbox has no label with it, so yeah, they wouldn't know, even though the screen reader reports it because I told it to, it has no actual label.
I'm debating putting it up on github and seeing what people who actually know what they're doing make of it. My goal is to create an app that will allow the user to select from any installed SAPI voice on their system and use this to speak text. It should also have rate, pitch and volume sliders. Speaking of which, I couldn't find a slider in the toolbox, so I used the Spinbox instead. I guess you either have to make sliders yourself, or reference an assembly that has them in it, I have no idea. The fact that this thing works at all is a miracle. It also ought to be able to write to a wave file, which this speech class can actually do. I thought of programmatically clearing the text after each time it speaks, but I thought against it. It's easy enough to do, but you can just type over it.
To leave the thing, just ALT-F4 out of it. DO, not, show it to a sighted person, you may be charged with a capital crime.