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})
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)
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)
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) })
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')
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, })
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, })
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)