code: public static Key MACHINE_DETECTION(String introduction, Voice voice) {
  
        Map<String, String> map = new LinkedHashMap<String, String>();
        map.put("introduction", introduction);
        if (voice != null) {
          map.put("voice", voice.toString());
        }
  
        return createKey("machineDetection", map);
      }
docs: <p>
  If introduction is set, Tropo plays the TTS string using voice or plays the
  audio file if a URL is defined (same behavior as say) during this wait.
  Tropo will not return until introduction is done playing, even if it has
  determined a human voice or machine response before the introduction is
  complete.
  </p>
  <p>
  For the most accurate results, the "introduction" should be long enough to
  give Tropo time to detect a human or machine. The longer the introduction,
  the more time we have to determine how the call was answered. If the
  introduction is long enough to play until the voicemail "beep" plays, Tropo
  will have the most accurate detection. It takes a minimum of four seconds
  to determine if a call was answered by a human or machine, so introductions
  four seconds or shorter will always return HUMAN.
  </p>