class_docstr: Implementation of the imperceptible attack against a speech recognition model.
  
  | Paper link: http://proceedings.mlr.press/v97/qin19a.html
docstr: Apply attack-specific checks.
code: def _check_params(self) -> None:
      """
      Apply attack-specific checks.
      """
      if self.eps <= 0:
          raise ValueError(
              "The perturbation max norm bound `eps` has to be positive."
          )
  
      if not isinstance(self.alpha, float):
          raise ValueError("The value of alpha must be of type float.")
      if self.alpha <= 0.0:
          raise ValueError("The value of alpha must be positive")
  
      if not isinstance(self.max_iter_1, int):
          raise ValueError(
              "The maximum number of iterations for stage 1 must be of type int."
          )
      if self.max_iter_1 <= 0:
          raise ValueError(
              "The maximum number of iterations for stage 1 must be greater than 0."
          )
  
      if not isinstance(self.max_iter_2, int):
          raise ValueError(
              "The maximum number of iterations for stage 2 must be of type int."
          )
      if self.max_iter_2 < 0:
          raise ValueError(
              "The maximum number of iterations for stage 2 must be non-negative."
          )
  
      if not isinstance(self.learning_rate_1, float):
          raise ValueError(
              "The learning rate for stage 1 must be of type float."
          )
      if self.learning_rate_1 <= 0.0:
          raise ValueError(
              "The learning rate for stage 1 must be greater than 0.0."
          )
  
      if not isinstance(self.learning_rate_2, float):
          raise ValueError(
              "The learning rate for stage 2 must be of type float."
          )
      if self.learning_rate_2 <= 0.0:
          raise ValueError(
              "The learning rate for stage 2 must be greater than 0.0."
          )
  
      if not isinstance(self.loss_theta_min, float):
          raise ValueError(
              "The loss_theta_min threshold must be of type float."
          )
  
      if not isinstance(self.decrease_factor_eps, float):
          raise ValueError(
              "The factor to decrease eps must be of type float."
          )
      if self.decrease_factor_eps <= 0.0:
          raise ValueError(
              "The factor to decrease eps must be greater than 0.0."
          )
  
      if not isinstance(self.num_iter_decrease_eps, int):
          raise ValueError(
              "The number of iterations must be of type int."
          )
      if self.num_iter_decrease_eps <= 0:
          raise ValueError(
              "The number of iterations must be greater than 0."
          )
  
      if not isinstance(self.num_iter_decrease_alpha, int):
          raise ValueError(
              "The number of iterations must be of type int."
          )
      if self.num_iter_decrease_alpha <= 0:
          raise ValueError(
              "The number of iterations must be greater than 0."
          )
  
      if not isinstance(self.increase_factor_alpha, float):
          raise ValueError(
              "The factor to increase alpha must be of type float."
          )
      if self.increase_factor_alpha <= 0.0:
          raise ValueError(
              "The factor to increase alpha must be greater than 0.0."
          )
  
      if not isinstance(self.num_iter_increase_alpha, int):
          raise ValueError(
              "The number of iterations must be of type int."
          )
      if self.num_iter_increase_alpha <= 0:
          raise ValueError(
              "The number of iterations must be greater than 0."
          )
  
      if not isinstance(self.decrease_factor_alpha, float):
          raise ValueError(
              "The factor to decrease alpha must be of type float."
          )
      if self.decrease_factor_alpha <= 0.0:
          raise ValueError(
              "The factor to decrease alpha must be greater than 0.0."
          )
  
      if self.batch_size <= 0:
          raise ValueError(
              "The batch size `batch_size` has to be positive."
          )
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  from typing import TYPE_CHECKING, Optional, Tuple, Union
  import numpy
  import scipy.signal
  from art.attacks.attack import EvasionAttack
  from art.estimators.estimator import BaseEstimator, LossGradientsMixin, NeuralNetworkMixin
  from art.estimators.pytorch import PyTorchEstimator
  from art.estimators.speech_recognition.speech_recognizer import SpeechRecognizerMixin
  from art.estimators.tensorflow import TensorFlowV2Estimator
  from art.utils import pad_sequence_input
label_desc: Use image node_id 12 for calling the ImperceptibleASR obj's underlying member method code with example usage: obj._check_params() without return types