Я пытаюсь записать закодированный wav в tfrecord, а затем прочитать его. Я знаю, что могу написать wav как обычный тензор, но пытаюсь сэкономить место.
Я хотел бы сделать что-то вроде следующего, но не знаю, как заполнить эллипсы. В частности, я не знаю, следует ли мне сохранять как функцию int64 или функцию байтов.
def wav_feature(wav):
value = tf.audio.encode_wav(wav, 44100)
return tf.train.Feature(...)
example = tf.train.Example(features=tf.train.Features(feature={
'foo': wav_feature(wav),
}))
with tf.io.TFRecordWriter(outpath) as writer:
writer.write(example.SerializeToString())
# In parser
features = tf.io.parse_single_example(
serialized=proto,
features={'foo': tf.io.FixedLenFeature([], ...)})
decoded, sr = tf.audio.decode_wav(features['foo'])