further refactoring to use has_timer_elapsed for speaker_controller