code: public ServiceCall<AcousticModel> createAcousticModel(CreateAcousticModelOptions createAcousticModelOptions) {
      Validator.notNull(createAcousticModelOptions, "createAcousticModelOptions cannot be null");
      String[] pathSegments = { "v1/acoustic_customizations" };
      RequestBuilder builder = RequestBuilder.post(RequestBuilder.constructHttpUrl(getEndPoint(), pathSegments));
      Map<String, String> sdkHeaders = SdkCommon.getSdkHeaders("speech_to_text", "v1", "createAcousticModel");
      for (Entry<String, String> header : sdkHeaders.entrySet()) {
        builder.header(header.getKey(), header.getValue());
      }
      builder.header("Accept", "application/json");
      final JsonObject contentJson = new JsonObject();
      contentJson.addProperty("name", createAcousticModelOptions.name());
      contentJson.addProperty("base_model_name", createAcousticModelOptions.baseModelName());
      if (createAcousticModelOptions.description() != null) {
        contentJson.addProperty("description", createAcousticModelOptions.description());
      }
      builder.bodyJson(contentJson);
      return createServiceCall(builder.build(), ResponseConverterUtils.getObject(AcousticModel.class));
    }
docs: Create a custom acoustic model.
  
  Creates a new custom acoustic model for a specified base model. The custom acoustic model can be used only with the
  base model for which it is created. The model is owned by the instance of the service whose credentials are used to
  create it.
  
  **See also:** [Create a custom acoustic
  model](https://cloud.ibm.com/docs/services/speech-to-text/acoustic-create.html#createModel-acoustic).
  
  @param createAcousticModelOptions the {@link CreateAcousticModelOptions} containing the options for the call
  @return a {@link ServiceCall} with a response type of {@link AcousticModel}