class_docstr: Add a random signal-to-noise ratio noise or impulse response to clean speech, and
  write it to wavfile.
class_docstr_tok: ["Add","a","random","signal-to-noise","ratio","noise","or","impulse","response","to","clean","speech",",","and","write","it","to","wavfile","."]
docstr: Read a clean wav return a noisy wav.
  :param in_wavfile: clean wavfile path.
  :param out_wavfile: noisy wavfile path.
  :return: write wav opration.
docstr_tok: ["Read","a","clean","wav","return","a","noisy","wav",".",":","param","in_wavfile",":","clean","wavfile","path",".",":","param","out_wavfile",":","noisy","wavfile","path",".",":","return",":","write","wav","opration","."]
code: def call(self, in_wavfile, out_wavfile):
      """
      Read a clean wav return a noisy wav.
      :param in_wavfile: clean wavfile path.
      :param out_wavfile: noisy wavfile path.
      :return: write wav opration.
      """
  
      with tf.name_scope("add_noise_end_to_end"):
          input_data, sample_rate = self.read_wav(in_wavfile)
          noisy_data = self.add_noise(input_data, sample_rate) / 32768
          write_op = self.write_wav(
              out_wavfile, noisy_data, sample_rate
          )
  
      return write_op
  
file_path: delta/delta/data/frontend/add_noise_end_to_end.py
imports: import delta.compat
  from delta.utils.hparam import HParams
  from delta.data.frontend.read_wav import ReadWav
  from delta.data.frontend.add_rir_noise_aecres import Add_rir_noise_aecres
  from delta.data.frontend.write_wav import WriteWav
  from delta.data.frontend.base_frontend import BaseFrontend
label_desc: Use image node_id 3 for calling the AddNoiseEndToEnd obj's underlying member method code with example usage: obj.call(in_wavfile, out_wavfile) and returns: write_op