Exemplo n.º 1
0
	def convoluteWavs(self,wav):
		BLOCKSIZE = 1024				
		def preprocess():
			if self.audioData.shape[0] < wav.audioData.shape[0]:
				audioSize = self.audioData.shape[0]				
				if audioSize%BLOCKSIZE != 0:
					lastblock = self.audioData[(self.audioData.shape[0]-(self.audioData.shape[0]%BLOCKSIZE)):]
					temp = self.audioData[:(self.audioData.shape[0]-(self.audioData.shape[0]%BLOCKSIZE))]
					self.audioData = np.concatenate((temp,WavProcessing.pad(len(lastblock),lastblock,BLOCKSIZE)))
					resultConv = np.zeros((self.audioData.shape[0],2),dtype=np.int16)
			elif self.audioData.shape[0] >= wav.audioData.shape[0]:
				audioSize = wav.audioData.shape[0]
				if audioSize%BLOCKSIZE != 0:
					lastblock = wav.audioData[(wav.audioData.shape[0]-(wav.audioData.shape[0]%BLOCKSIZE)):]
					temp = wav.audioData[:(wav.audioData.shape[0]-(wav.audioData.shape[0]%BLOCKSIZE))]
					wav.audioData = np.concatenate((temp,WavProcessing.pad(len(lastblock),lastblock,BLOCKSIZE)))					
					resultConv = np.zeros((wav.audioData.shape[0],2),dtype=np.int16)
			return resultConv,Matrix.ceil(audioSize,BLOCKSIZE)
		
		resultConv, nblocks = preprocess()			
		for i in xrange(nblocks):
			start = BLOCKSIZE*i
			end = BLOCKSIZE*(i+1)
			conv = Convolution(Matrix(self.audioData[start:end,0].tolist(),0),Matrix(wav.audioData[start:end,0].tolist(),0),Convolution.CIRCULAR)
			resultConv[start:end] = conv.convolute()
		self.audioData = resultConv[:]
		conv._plot()
Exemplo n.º 2
0
    def convoluteWavs(self, wav):
        BLOCKSIZE = 1024

        def preprocess():
            if self.audioData.shape[0] < wav.audioData.shape[0]:
                audioSize = self.audioData.shape[0]
                if audioSize % BLOCKSIZE != 0:
                    lastblock = self.audioData[(
                        self.audioData.shape[0] -
                        (self.audioData.shape[0] % BLOCKSIZE)):]
                    temp = self.audioData[:(
                        self.audioData.shape[0] -
                        (self.audioData.shape[0] % BLOCKSIZE))]
                    self.audioData = np.concatenate(
                        (temp,
                         WavProcessing.pad(len(lastblock), lastblock,
                                           BLOCKSIZE)))
                    resultConv = np.zeros((self.audioData.shape[0], 2),
                                          dtype=np.int16)
            elif self.audioData.shape[0] >= wav.audioData.shape[0]:
                audioSize = wav.audioData.shape[0]
                if audioSize % BLOCKSIZE != 0:
                    lastblock = wav.audioData[(
                        wav.audioData.shape[0] -
                        (wav.audioData.shape[0] % BLOCKSIZE)):]
                    temp = wav.audioData[:(
                        wav.audioData.shape[0] -
                        (wav.audioData.shape[0] % BLOCKSIZE))]
                    wav.audioData = np.concatenate(
                        (temp,
                         WavProcessing.pad(len(lastblock), lastblock,
                                           BLOCKSIZE)))
                    resultConv = np.zeros((wav.audioData.shape[0], 2),
                                          dtype=np.int16)
            return resultConv, Matrix.ceil(audioSize, BLOCKSIZE)

        resultConv, nblocks = preprocess()
        for i in xrange(nblocks):
            start = BLOCKSIZE * i
            end = BLOCKSIZE * (i + 1)
            conv = Convolution(
                Matrix(self.audioData[start:end, 0].tolist(), 0),
                Matrix(wav.audioData[start:end, 0].tolist(), 0),
                Convolution.CIRCULAR)
            resultConv[start:end] = conv.convolute()
        self.audioData = resultConv[:]
        conv._plot()