def get_full_config(self): ans = [] # note: each value of self.descriptors is (descriptor, dim, # normalized-string, output-string). # by 'descriptor_final_string' we mean a string that can appear in # config-files, i.e. it contains the 'final' names of nodes. descriptor_final_string = self.descriptors['input']['final-string'] input_dim = self.descriptors['input']['dim'] output_dim = self.output_dim() transform_file = self.config['affine-transform-file'] idct_mat = common_lib.compute_idct_matrix( input_dim, output_dim, self.config['cepstral-lifter']) # append a zero column to the matrix, this is the bias of the fixed # affine component for n in range(0, output_dim): idct_mat[n].append(0) common_lib.write_kaldi_matrix(transform_file, idct_mat) # write the 'real' component to final.config line = 'component name={0} type=FixedAffineComponent matrix={1}'.format( self.name, transform_file) ans.append(('final', line)) # write a random version of the component, with the same dims, to ref.config line = 'component name={0} type=FixedAffineComponent input-dim={1} output-dim={2}'.format( self.name, input_dim, output_dim) ans.append(('ref', line)) # the component-node gets written to final.config and ref.config. line = 'component-node name={0} component={0} input={1}'.format( self.name, descriptor_final_string) ans.append(('final', line)) ans.append(('ref', line)) return ans
def convert_mfcc_to_fbank(feats): num_mel = np.shape(feats)[-1] idct_mat = common_lib.compute_idct_matrix(num_mel, num_mel, 22.0) idct_mat2 = np.transpose(idct_mat) fbank = feats.dot(idct_mat2) return fbank