def testFloatingPointSampleRateInvalid(self): with self.cached_session(): with self.assertRaises(TypeError): ffmpeg.encode_audio( [[0.0], [1.0]], file_format='wav', samples_per_second=12345.678)
def testZeroSampleRateInvalid(self): with self.cached_session() as sess: encode_op = ffmpeg.encode_audio( [[0.0], [1.0]], file_format='wav', samples_per_second=0) with six.assertRaisesRegex(self, Exception, 'must be positive'): sess.run(encode_op)
def testRoundTripWithPlaceholderSampleRate(self): with self.cached_session(): placeholder = array_ops.placeholder(dtypes.int32) audio_op = ffmpeg.decode_audio( self._contents, file_format='wav', samples_per_second=placeholder, channel_count=1) encode_op = ffmpeg.encode_audio( audio_op, file_format='wav', samples_per_second=placeholder) encoded_contents = encode_op.eval(feed_dict={placeholder: 10000}) self._compareWavFiles(self._contents, encoded_contents)
def testRoundTripWithPlaceholderSampleRate(self): with self.cached_session(): placeholder = array_ops.placeholder(dtypes.int32) audio_op = ffmpeg.decode_audio(self._contents, file_format='wav', samples_per_second=placeholder, channel_count=1) encode_op = ffmpeg.encode_audio(audio_op, file_format='wav', samples_per_second=placeholder) encoded_contents = encode_op.eval(feed_dict={placeholder: 10000}) self._compareWavFiles(self._contents, encoded_contents)
def testRoundTrip(self): """Reads a wav file, writes it, and compares them.""" with self.cached_session(): audio_op = ffmpeg.decode_audio( self._contents, file_format='wav', samples_per_second=10000, channel_count=1) encode_op = ffmpeg.encode_audio( audio_op, file_format='wav', samples_per_second=10000) encoded_contents = encode_op.eval() self._compareWavFiles(self._contents, encoded_contents)
def testRoundTrip(self): """Reads a wav file, writes it, and compares them.""" with self.test_session(): audio_op = ffmpeg.decode_audio(self._contents, file_format='wav', samples_per_second=10000, channel_count=1) encode_op = ffmpeg.encode_audio(audio_op, file_format='wav', samples_per_second=10000) encoded_contents = encode_op.eval() self._compareWavFiles(self._contents, encoded_contents)
def save_to_wav(audio_arr_ch1, audio_arr_ch2, sample_rate, original_song_ch1, original_song_ch2, idty, folder, sess): audio_arr_ch1 = irfft(np.hstack(np.hstack(audio_arr_ch1))) audio_arr_ch2 = irfft(np.hstack(np.hstack(audio_arr_ch2))) original_song_ch1 = irfft(np.hstack(np.hstack(original_song_ch1))) original_song_ch2 = irfft(np.hstack(np.hstack(original_song_ch2))) original_song = np.hstack(np.array((original_song_ch1, original_song_ch2)).T) audio_arr = np.hstack(np.array((audio_arr_ch1, audio_arr_ch2)).T) print(original_song) w = np.linspace(0, sample_rate, len(audio_arr)) w = w[0:len(audio_arr)] plt.figure(1) plt.plot(w, original_song) plt.savefig(str(folder) + '/original.png') plt.plot(w, audio_arr) plt.xlabel('sample') plt.ylabel('amplitude') plt.savefig(str(folder) + '/compressed' + str(idty) + '.png') plt.clf() cols = 2 rows = math.floor(len(audio_arr)/2) audio_arr = audio_arr.reshape(rows, cols) original_song = original_song.reshape(rows, cols) wav_encoder = ffmpeg.encode_audio( audio_arr, file_format='wav', samples_per_second=sample_rate) wav_encoder_orig = ffmpeg.encode_audio( original_song, file_format='wav', samples_per_second=sample_rate) wav_file = sess.run(wav_encoder) wav_orig = sess.run(wav_encoder_orig) open(str(folder)+'/out.wav', 'wb').write(wav_file) open(str(folder)+'/wav_orig.wav', 'wb').write(wav_orig)
def testRoundTrip(self): """Reads a wav file, writes it, and compares them.""" with self.test_session(): path = os.path.join( resource_loader.get_data_files_path(), 'testdata/mono_10khz.wav') with open(path, 'rb') as f: original_contents = f.read() audio_op = ffmpeg.decode_audio( original_contents, file_format='wav', samples_per_second=10000, channel_count=1) encode_op = ffmpeg.encode_audio( audio_op, file_format='wav', samples_per_second=10000) encoded_contents = encode_op.eval() self._compareWavFiles(original_contents, encoded_contents)
def testRoundTrip(self): """Fabricates some audio, creates a wav file, reverses it, and compares.""" with self.test_session(): path = os.path.join( resource_loader.get_data_files_path(), 'testdata/mono_10khz.wav') with open(path, 'r') as f: original_contents = f.read() audio_op = ffmpeg.decode_audio( original_contents, file_format='wav', samples_per_second=10000, channel_count=1) encode_op = ffmpeg.encode_audio( audio_op, file_format='wav', samples_per_second=10000) encoded_contents = encode_op.eval() self.assertEqual(original_contents, encoded_contents)
def testRoundTrip(self): """Fabricates some audio, creates a wav file, reverses it, and compares.""" with self.test_session(): path = os.path.join(resource_loader.get_data_files_path(), 'testdata/mono_10khz.wav') with open(path, 'r') as f: original_contents = f.read() audio_op = ffmpeg.decode_audio(original_contents, file_format='wav', samples_per_second=10000, channel_count=1) encode_op = ffmpeg.encode_audio(audio_op, file_format='wav', samples_per_second=10000) encoded_contents = encode_op.eval() self.assertEqual(original_contents, encoded_contents)
def testFloatingPointSampleRateInvalid(self): with self.test_session(): with self.assertRaises(TypeError): ffmpeg.encode_audio([[0.0], [1.0]], file_format='wav', samples_per_second=12345.678)
ch2_song[i:i + section_size] for i in range(0, len(ch2_song), section_size) ] ch1_song = add_overlap( ch1_song, params.overlap_section_size) # [[..], [..], ...] -> [...] ch2_song = add_overlap(ch2_song, params.overlap_section_size) # maps sigmoid [0,1] output to [-1,1] for .wav ch1_song = ((ch1_song * 2) - 1) ch2_song = ((ch2_song * 2) - 1) audio_arr = np.hstack(np.array((ch1_song, ch2_song)).T) cols = 2 rows = math.floor(len(audio_arr) / 2) audio_arr = audio_arr.reshape(rows, cols) wav_encoder = ffmpeg.encode_audio(audio_arr, file_format='wav', samples_per_second=sample_rate) wav_file = sess.run(wav_encoder) with open(f"{params.save_test_output_path_start}{file_number}.wav", 'wb') as f: f.write(wav_file) file_number += 1 print('all done')
#https://www.tensorflow.org/api_guides/python/contrib.ffmpeg import tensorflow as tf from tensorflow.contrib import ffmpeg audio_binary = tf.read_file('shibuya.mp3') waveform = ffmpeg.decode_audio(audio_binary, file_format='mp3', samples_per_second=44100, channel_count=2) uncompressed_binary = ffmpeg.encode_audio(waveform, file_format='wav', samples_per_second=44100) print(waveform) print(uncompressed_binary)