DecodableMatrixScaled Class Reference

#include <decodable-matrix.h>

Inheritance diagram for DecodableMatrixScaled:
Collaboration diagram for DecodableMatrixScaled:

Public Member Functions

 DecodableMatrixScaled (const Matrix< BaseFloat > &likes, BaseFloat scale)
 
virtual int32 NumFramesReady () const
 The call NumFramesReady() will return the number of frames currently available for this decodable object. More...
 
virtual bool IsLastFrame (int32 frame) const
 Returns true if this is the last frame. More...
 
virtual BaseFloat LogLikelihood (int32 frame, int32 index)
 Returns the log likelihood, which will be negated in the decoder. More...
 
virtual int32 NumIndices () const
 Returns the number of states in the acoustic model (they will be indexed one-based, i.e. More...
 
- Public Member Functions inherited from DecodableInterface
virtual ~DecodableInterface ()
 

Private Member Functions

 KALDI_DISALLOW_COPY_AND_ASSIGN (DecodableMatrixScaled)
 

Private Attributes

const Matrix< BaseFloat > & likes_
 
BaseFloat scale_
 

Detailed Description

Definition at line 212 of file decodable-matrix.h.

Constructor & Destructor Documentation

◆ DecodableMatrixScaled()

DecodableMatrixScaled ( const Matrix< BaseFloat > &  likes,
BaseFloat  scale 
)
inline

Definition at line 214 of file decodable-matrix.h.

215  :
216  likes_(likes), scale_(scale) { }
const Matrix< BaseFloat > & likes_

Member Function Documentation

◆ IsLastFrame()

virtual bool IsLastFrame ( int32  frame) const
inlinevirtual

Returns true if this is the last frame.

Frames are zero-based, so the first frame is zero. IsLastFrame(-1) will return false, unless the file is empty (which is a case that I'm not sure all the code will handle, so be careful). Caution: the behavior of this function in an online setting is being changed somewhat. In future it may return false in cases where we haven't yet decided to terminate decoding, but later true if we decide to terminate decoding. The plan in future is to rely more on NumFramesReady(), and in future, IsLastFrame() would always return false in an online-decoding setting, and would only return true in a decoding-from-matrix setting where we want to allow the last delta or LDA features to be flushed out for compatibility with the baseline setup.

Implements DecodableInterface.

Definition at line 220 of file decodable-matrix.h.

References KALDI_ASSERT, and DecodableMatrixScaledMapped::NumFramesReady().

220  {
221  KALDI_ASSERT(frame < NumFramesReady());
222  return (frame == NumFramesReady() - 1);
223  }
#define KALDI_ASSERT(cond)
Definition: kaldi-error.h:185
virtual int32 NumFramesReady() const
The call NumFramesReady() will return the number of frames currently available for this decodable obj...

◆ KALDI_DISALLOW_COPY_AND_ASSIGN()

KALDI_DISALLOW_COPY_AND_ASSIGN ( DecodableMatrixScaled  )
private

◆ LogLikelihood()

virtual BaseFloat LogLikelihood ( int32  frame,
int32  index 
)
inlinevirtual

Returns the log likelihood, which will be negated in the decoder.

The "frame" starts from zero. You should verify that NumFramesReady() > frame before calling this.

Implements DecodableInterface.

Definition at line 226 of file decodable-matrix.h.

References KALDI_ERR, DecodableMatrixScaledMapped::likes_, MatrixBase< Real >::NumCols(), MatrixBase< Real >::NumRows(), and DecodableMatrixScaledMapped::scale_.

226  {
227  if (index > likes_.NumCols() || index <= 0 ||
228  frame < 0 || frame >= likes_.NumRows())
229  KALDI_ERR << "Invalid (frame, index - 1) = ("
230  << frame << ", " << index - 1 << ") for matrix of size "
231  << likes_.NumRows() << " x " << likes_.NumCols();
232  return scale_ * likes_(frame, index - 1);
233  }
MatrixIndexT NumCols() const
Returns number of columns (or zero for empty matrix).
Definition: kaldi-matrix.h:67
const Matrix< BaseFloat > & likes_
#define KALDI_ERR
Definition: kaldi-error.h:147
MatrixIndexT NumRows() const
Returns number of rows (or zero for empty matrix).
Definition: kaldi-matrix.h:64

◆ NumFramesReady()

virtual int32 NumFramesReady ( ) const
inlinevirtual

The call NumFramesReady() will return the number of frames currently available for this decodable object.

This is for use in setups where you don't want the decoder to block while waiting for input. This is newly added as of Jan 2014, and I hope, going forward, to rely on this mechanism more than IsLastFrame to know when to stop decoding.

Reimplemented from DecodableInterface.

Definition at line 218 of file decodable-matrix.h.

References DecodableMatrixScaledMapped::likes_, and MatrixBase< Real >::NumRows().

218 { return likes_.NumRows(); }
const Matrix< BaseFloat > & likes_
MatrixIndexT NumRows() const
Returns number of rows (or zero for empty matrix).
Definition: kaldi-matrix.h:64

◆ NumIndices()

virtual int32 NumIndices ( ) const
inlinevirtual

Returns the number of states in the acoustic model (they will be indexed one-based, i.e.

from 1 to NumIndices(); this is for compatibility with OpenFst).

Implements DecodableInterface.

Definition at line 236 of file decodable-matrix.h.

References DecodableMatrixScaledMapped::likes_, and MatrixBase< Real >::NumCols().

236 { return likes_.NumCols(); }
MatrixIndexT NumCols() const
Returns number of columns (or zero for empty matrix).
Definition: kaldi-matrix.h:67
const Matrix< BaseFloat > & likes_

Member Data Documentation

◆ likes_

const Matrix<BaseFloat>& likes_
private

Definition at line 239 of file decodable-matrix.h.

◆ scale_

BaseFloat scale_
private

Definition at line 240 of file decodable-matrix.h.


The documentation for this class was generated from the following file: