code: public void requestSpeak (SpeakService speakService, String message, byte mode)
      {
          if (speakService == null) {
              if (_place == null) {
                  return;
              }
              speakService = _place.speakService;
          }
  
          // make sure they can say what they want to say
          message = filter(message, null, true);
          if (message == null) {
              return;
          }
  
          // dispatch a speak request using the supplied speak service
          speakService.speak(message, mode);
      }
docs: Requests that a speak message with the specified mode be generated and delivered via the
  supplied speak service instance (which will be associated with a particular "speak
  object"). The message will first be validated by all registered {@link ChatFilter}s (and
  possibly vetoed) before being dispatched.
  
  @param speakService the speak service to use when generating the speak request or null if we
  should speak in the current "place".
  @param message the contents of the speak message.
  @param mode a speech mode that will be interpreted by the {@link ChatDisplay}
  implementations that eventually display this speak message.