- Timestamp:
- May 10, 2016, 10:08:06 PM (9 years ago)
- Branches:
- feature/autosink, feature/cnn, feature/cnn_org, feature/constantq, feature/crepe, feature/crepe_org, feature/pitchshift, feature/pydocstrings, feature/timestretch, fix/ffmpeg5, master, pitchshift, sampler, timestretch, yinfft+
- Children:
- 0c6e3b0
- Parents:
- 8fb567c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
python/demos/demo_reading_speed.py
r8fb567c r1e4d90f 6 6 Compare the speed of several methods for reading and loading a sound file. 7 7 8 This file depends onthe following packages:8 Optionally, this file can make use of the following packages: 9 9 10 10 - audioread https://github.com/beetbox/audioread 11 - scipy https://scipy.org 11 12 - librosa https://github.com/bmcfee/librosa 12 13 - pydub https://github.com/jiaaro/pydub 13 14 15 Uncomment the function names below and send us your speed results! 16 14 17 """ 15 18 19 20 test_functions = [ 21 "read_file_aubio", 22 "load_file_aubio", 23 #"load_file_scipy", 24 #"load_file_scipy_mmap", 25 #"read_file_audioread", 26 #"load_file_librosa", 27 #"read_file_pydub", 28 #"load_file_pydub", 29 ] 30 31 16 32 import numpy as np 17 import aubio18 """19 import audioread20 import librosa21 import scipy.io.wavfile22 from pydub import AudioSegment23 """24 33 25 34 def read_file_audioread(filename): 35 import audioread 26 36 # taken from librosa.util.utils 27 37 def convert_buffer_to_float(buf, n_bytes = 2, dtype = np.float32): … … 43 53 44 54 def load_file_librosa(filename): 55 import librosa 45 56 y, sr = librosa.load(filename, sr = None) 46 57 #print y.mean(), y.shape … … 48 59 49 60 def load_file_scipy(filename): 61 import scipy.io.wavfile 50 62 sr, y = scipy.io.wavfile.read(filename) 51 63 y = y.astype('float32') / 32767 … … 54 66 55 67 def load_file_scipy_mmap(filename): 68 import scipy.io.wavfile 56 69 sr, y = scipy.io.wavfile.read(filename, mmap = True) 57 70 #print y.mean(), y.shape … … 59 72 60 73 def read_file_pydub(filename): 74 from pydub import AudioSegment 61 75 song = AudioSegment.from_file(filename) 62 76 song.get_array_of_samples() … … 64 78 65 79 def load_file_pydub(filename): 80 from pydub import AudioSegment 66 81 song = AudioSegment.from_file(filename) 67 82 y = np.asarray(song.get_array_of_samples(), dtype = 'float32') … … 70 85 71 86 def read_file_aubio(filename): 87 import aubio 72 88 f = aubio.source(filename, hop_size = 1024) 73 89 total_frames = 0 … … 79 95 80 96 def load_file_aubio(filename): 97 import aubio 81 98 f = aubio.source(filename, hop_size = 1024) 82 99 y = np.zeros(f.duration, dtype = aubio.float_type) … … 95 112 for i in range(10): 96 113 start = time.time() 97 total_frames, samplerate = function(filename) 114 try: 115 total_frames, samplerate = function(filename) 116 except ImportError as e: 117 print ("error: failed importing {:s}".format(e)) 118 return 98 119 elapsed = time.time() - start 99 120 #print ("{:5f} ".format(elapsed)), 100 121 times.append(elapsed) 122 101 123 #print 102 124 times = np.array(times) … … 112 134 filename = sys.argv[1] 113 135 114 functions = [ 115 read_file_aubio, 116 load_file_aubio, 117 #load_file_scipy, 118 #load_file_scipy_mmap, 119 #read_file_audioread, 120 #load_file_librosa, 121 #read_file_pydub, 122 #load_file_pydub, 123 ] 124 125 for f in functions: 126 test_speed(f, filename) 136 for f in test_functions: 137 test_speed(eval(f), filename)
Note: See TracChangeset
for help on using the changeset viewer.