예제 #1
0
  def test_prepare_tfrecord_no_f0_and_loudness(self):
    sample_rate = 16000
    prepare_tfrecord_lib.prepare_tfrecord(
        [self.wav_path],
        os.path.join(self.test_dir, 'output.tfrecord'),
        num_shards=2,
        sample_rate=sample_rate,
        frame_rate=None,
        window_secs=None)

    self.validate_outputs(1, {'audio': self.wav_secs * sample_rate})
예제 #2
0
 def test_prepare_tfrecord_at_indivisible_sample_rate_throws_error(
     self, sample_rate):
   frame_rate = 250
   with self.assertRaises(ValueError):
     prepare_tfrecord_lib.prepare_tfrecord([self.wav_path],
                                           os.path.join(
                                               self.test_dir,
                                               'output.tfrecord'),
                                           num_shards=2,
                                           sample_rate=sample_rate,
                                           frame_rate=frame_rate,
                                           window_secs=None)
예제 #3
0
def run():
    input_audio_paths = []
    for filepattern in FLAGS.input_audio_filepatterns:
        input_audio_paths.extend(tf.io.gfile.glob(filepattern))

    prepare_tfrecord(input_audio_paths,
                     FLAGS.output_tfrecord_path,
                     num_shards=FLAGS.num_shards,
                     sample_rate=FLAGS.sample_rate,
                     frame_rate=FLAGS.frame_rate,
                     window_secs=FLAGS.example_secs,
                     hop_secs=FLAGS.sliding_window_hop_secs,
                     pipeline_options=FLAGS.pipeline_options)
예제 #4
0
  def test_prepare_tfrecord_no_f0_and_loudness(self, sample_rate):
    prepare_tfrecord_lib.prepare_tfrecord(
        [self.wav_path],
        os.path.join(self.test_dir, 'output.tfrecord'),
        num_shards=2,
        sample_rate=sample_rate,
        frame_rate=None,
        window_secs=None)

    self.validate_outputs(
        1, {
            'audio': int(self.wav_secs * sample_rate),
            'audio_crepe': int(self.wav_secs * _CREPE_SAMPLE_RATE)
        })
예제 #5
0
def buildTFRecords(audio_input, output_tfrecord_path):
    logging.info("Building TFRecords")

    if not glob.glob(audio_input):
        raise ValueError('No audio files found. Please use the previous cell to '
                        'upload.')
    else:
        logging.info("found " + audio_input)

    input_audio_paths = []
    input_audio_paths.extend(tf.io.gfile.glob(audio_input))

    prepare_tfrecord(
        input_audio_paths,
        output_tfrecord_path,
        num_shards=10,
        pipeline_options='--runner=DirectRunner')
예제 #6
0
  def test_prepare_tfrecord_no_split(self, sample_rate):
    frame_rate = 250
    prepare_tfrecord_lib.prepare_tfrecord(
        [self.wav_path],
        os.path.join(self.test_dir, 'output.tfrecord'),
        num_shards=2,
        sample_rate=sample_rate,
        frame_rate=frame_rate,
        window_secs=None)

    expected_f0_and_loudness_length = int(self.wav_secs * frame_rate)
    self.validate_outputs(
        1, {
            'audio': int(self.wav_secs * sample_rate),
            'f0_hz': expected_f0_and_loudness_length,
            'f0_confidence': expected_f0_and_loudness_length,
            'loudness_db': expected_f0_and_loudness_length,
        })
예제 #7
0
  def test_prepare_tfrecord(self, sample_rate):
    frame_rate = 250
    window_secs = 1
    hop_secs = 0.5
    prepare_tfrecord_lib.prepare_tfrecord(
        [self.wav_path],
        os.path.join(self.test_dir, 'output.tfrecord'),
        num_shards=2,
        sample_rate=sample_rate,
        frame_rate=frame_rate,
        window_secs=window_secs,
        hop_secs=hop_secs)

    expected_f0_and_loudness_length = int(window_secs * frame_rate)
    self.validate_outputs(
        4, {
            'audio': window_secs * sample_rate,
            'f0_hz': expected_f0_and_loudness_length,
            'f0_confidence': expected_f0_and_loudness_length,
            'loudness_db': expected_f0_and_loudness_length,
        })
예제 #8
0
def run():
  input_audio_paths = []
  for filepattern in FLAGS.input_audio_filepatterns:
    input_audio_paths.extend(tf.io.gfile.glob(filepattern))

  midi_notes = None
  if FLAGS.midi_notes:
    notes = FLAGS.midi_notes.split(',')
    note_from = int(notes[0])
    note_to = int(notes[-1])
    midi_notes = list(range(note_from, note_to))

  # window_secs is equal to hop_secs, as we do not want overlapping windows
  prepare_tfrecord(
      input_audio_paths,
      FLAGS.output_tfrecord_path,
      num_shards=FLAGS.num_shards,
      sample_rate=FLAGS.sample_rate,
      frame_rate=FLAGS.frame_rate,
      window_secs=FLAGS.example_secs,
      hop_secs=FLAGS.example_secs,
      midi_notes=midi_notes,
      pipeline_options=FLAGS.pipeline_options)