How can I set quiet hours for OS X time announcements?
I would use applescript and iCal to schedule enabling and disabling this feature. On OSX Lion you'll need to have 2 scripts one to enable it and one to disable it. 

This is the script to enable save it somewhere in your home directory I called it time_announce_on.applescript : 

do shell script "defaults write ./com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs -dict TimeAnnouncementsEnabled -bool YES"


Then in iCal setup an appointment to recur every morning at the specified time you want to enable the announcements and have the alert 'run script' and load the above script. 

Then all you need to do is have the disable script which I called time_announce_off.applescript : 

do shell script "defaults write ./com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs -dict TimeAnnouncementsEnabled -bool NO"


Then setup another appointment in iCal for the time of night that you want to disable this and have it run the time_announce_off script. 

I tested this in Lion 10.7.3 and it works. For 10.6 I believe you just need to remove the ./ from the beginning of the com.apple.speech.synthesis.general.prefs (but I haven't tested this).