<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_audio(self, tag, audio, sample_rate=44100, global_step=None):
 """Add audio data to the event file. Note: This function internally calls `asnumpy()` for MXNet `NDArray` inputs. Since `asnumpy()` is a blocking function call, this function would block the main thread till it returns. It may consequently affect the performance of async execution of the MXNet engine. Parameters tag : str Name for the `audio`. audio : MXNet `NDArray` or `numpy.ndarray` Audio data squeezable to a 1D tensor. The values of the tensor are in the range `[-1, 1]`. sample_rate : int Sample rate in Hz. global_step : int Global step value to record. """

        self._file_writer.add_summary(audio_summary(tag, audio, sample_rate=sample_rate),
                                      global_step)