Files
dhdfu 2e84e9382c well, that sucks. python now has a standard module called "sphinx". grumble. change everything to "cmusphinx"
git-svn-id: svn+ssh://svn.code.sf.net/p/cmusphinx/code/trunk/SphinxTrain@9613 94700074-3cef-4d97-a70e-9c8c206c02f5
2010-01-06 15:41:04 +00:00

49 lines
1.5 KiB
Python

# Copyright (c) 2006 Carnegie Mellon University
#
# You may copy and modify this freely under the same terms as
# Sphinx-III
"""Compute Sphinx-II 4-stream features.
This module provides a compute() function to compute 52-dimensional
4-stream features consisting of cepstra and their first and second
time derivatives, and the C0 values. This is the default feature type
used for PocketSphinx and Sphinx-II semi-continuous acoustic models.
"""
__author__ = "David Huggins-Daines <dhuggins@cs.cmu.edu>"
__version__ = "$Revision$"
from numpy import zeros, concatenate
def compute(mfcc):
"""Compute 52-dimensional 4-stream features consisting of cepstra
and their first and second time derivatives, and the C0 values."""
r, c = mfcc.shape
# Pad the features to compute dcep, ddcep
pad = concatenate((zeros((5,c)), mfcc, zeros((5,c))))
# Now create the output array
feat = (zeros((r, c-1),'d'),
zeros((r, (c-1)*2),'d'),
zeros((r, 3),'d'),
zeros((r, c-1),'d'))
# cep (without C0)
feat[0][:] = mfcc[:,1:]
# dcep = mfc[2] - mfc[-2] : mfc[4] - mfc[-4]
feat[1][:, 0:12] = (pad[7:-3,1:] - pad[3:-7,1:])
feat[1][:, 12:] = (pad[9:-1,1:] - pad[1:-9,1:])
# ddcep = (mfc[3] - mfc[-1]) - (mfc[1] - mfc[-3])
feat[3][:] = (pad[8:-2,1:] - pad[4:-6,1:]) - (pad[6:-4,1:] - pad[2:-8,1:])
# pow = C0,D0,DD0
feat[2][:,0] = mfcc[:,0]
feat[2][:,1] = (pad[7:-3,0] - pad[3:-7,0])
feat[2][:,2] = (pad[8:-2,0] - pad[4:-6,0]) - (pad[6:-4,0] - pad[2:-8,0])
return feat