generate.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:aurora 作者: caretcaret 项目源码 文件源码
def generate_example(spec_filename, audio_filename):
  with open(spec_filename) as f:
    spec = json.load(f)

  spec_duration = (spec['audio_source']['end_time'] -
                   spec['audio_source']['start_time'])
  sample_duration = librosa.get_duration(filename=audio_filename)
  if not math.isclose(spec_duration, sample_duration):
    print("Warning: sample duration is {} but spec says {}".format(
        sample_duration, spec_duration))

  sample, sampling_rate = librosa.load(audio_filename, sr=44100)
  if sampling_rate != 44100:
    print("Warning: sampling rate is {}".format(sampling_rate))

  return tf.train.SequenceExample(
      context=tf.train.Features(feature={
          'data_source': tf.train.Feature(
              bytes_list=tf.train.BytesList(
                  value=[bytes(spec['data_source'], 'utf-8')])),
          'tonic': tf.train.Feature(
              int64_list=tf.train.Int64List(
                  value=[spec['key']['tonic']])),
          'mode': tf.train.Feature(
              int64_list=tf.train.Int64List(
                  value=[spec['key']['mode']])),
          'beats': tf.train.Feature(
              int64_list=tf.train.Int64List(
                  value=[spec['meter']['beats']])),
          'beats_per_measure': tf.train.Feature(
              int64_list=tf.train.Int64List(
                  value=[spec['meter']['beats_per_measure']])),
      }),
      feature_lists=tf.train.FeatureLists(feature_list={
          'audio': tf.train.FeatureList(
              feature=[tf.train.Feature(
                  float_list=tf.train.FloatList(value=sample.tolist()))]),
          'melody': tf.train.FeatureList(
              feature=[tf.train.Feature(
                  int64_list=tf.train.Int64List(value=[]))]),
          'harmony': tf.train.FeatureList(
              feature=[tf.train.Feature(
                  int64_list=tf.train.Int64List(value=[]))]),
  }))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号