code: def main(record_time, audio_sample_rate, audio_sample_width,
           audio_iter_size, audio_block_size, audio_flush_size):
      
      end_time = time.time() + record_time
      audio_device = SoundDeviceStream(sample_rate=audio_sample_rate,
                                       sample_width=audio_sample_width,
                                       block_size=audio_block_size,
                                       flush_size=audio_flush_size)
      stream = ConversationStream(source=audio_device,
                                  sink=audio_device,
                                  iter_size=audio_iter_size,
                                  sample_width=audio_sample_width)
      samples = []
      logging.basicConfig(level=logging.INFO)
      logging.info('Starting audio test.')
  
      stream.start_recording()
      logging.info('Recording samples.')
      while time.time() < end_time:
          samples.append(stream.read(audio_block_size))
      logging.info('Finished recording.')
      stream.stop_recording()
  
      stream.start_playback()
      logging.info('Playing back samples.')
      while len(samples):
          stream.write(samples.pop(0))
      logging.info('Finished playback.')
      stream.stop_playback()
  
      logging.info('audio test completed.')
      stream.close()
docs: Helper command to test audio stream processing.
  
      - Record 5 seconds of 16-bit samples at 16khz.
      - Playback the recorded samples.