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.