One common cause of dictation not working is that CTFMon is not running. This is a helper process used by the Text Services Framework to implement things like global compartments and the like.
If dictation is not working, try running this command from an elevated command prompt:
schtasks /Query /TN \Microsoft\Windows\TextServicesFramework\MsCtfMonitor
(all on one line)
You should get some output that looks like this:
TaskName Next Run Time Status
=================== ============= =======
MsCtfMonitor N/A Running
If the status doesn’t say ‘Running’, then you need to restart CTFMon like this:
schtasks /Run /TN \Microsoft\Windows\TextServicesFramework\MsCtfMonitor
Run the query again, and verify that the MsCtfMonitor task is running.
Once it is, restart Windows Speech Recognition, and dictation should work again.