class hmmLis

Module HMM. More...

Definition#include <hmmLis.h>
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Members

Private Members


Detailed Description

Classe principale de l'algorithme hmm.

float fmin

Fréquence minimale d'analyse

float fmax

Fréquence maximale d'analyse

float df_abs

Variation maximale absolue de fréquence

float df_rel

Variation maximale relative de fréquence

param* gain_coefs

Poids des scores (frequence, amplitude, phase)

param* variances

Variances pour le calcul du score

param* add_coefs

Coefficients additifs pour le calcul du score

int window

Taille de la fenêtre d'analyse HMM

int maxNbPeaks

Nombre maximal de pics dans une trame

int maxNbOutput

Nombre maximal de partiels dans une trame

int maxNbViterbi

Nombre maximal de partiels détectés dans une fenêtre d'analyse HMM

float step

Pas de temps entre deux trames

float tmax

Marqueur de fin d'analyse

float tmin

Marqueur de début d'analyse

float SR

Fréquence d´échantillonage

int maxNbLines

Nombre maximal de lignes détectées dans une fenêtre d'analyse HMM

int maxNbLinks

Nombre maximal de lignes dans un fenêtre d'analyse HMM ayant au moins un pic en commun

float res_freq

Résolution fréquentielle pour algorithme de viterbi (cf lines::res_freq )

int nb_freq

Nombre de cellules fréquentielles pour algorithme de viterbi (cf lines::nb_freq )

char param_type

Choix entre détection de partiels ou de formants. Deux valeurs possibles: HMM_ADDITIVE et HMM_FORMANT.

tab_time * heaven

Structure de gestion du delai de deuil après mort d'un partiel et avant réutilisation de son index.

PmFormat pmMode

Drapeau indiquant le mode d'entrées/sorties de Pm: PM_BIN ou PM_SDIF.

typedef int (hmmLis::*READ_PARAM)
[private]

Type de fonction de lecture de partiels (cf hmmLis::read_additive_param et hmmLis::read_formant_param )

READ_PARAM read_param
[private]

Pointeur sur la fonction de lecture de pics choisie

PmPartialSet* bande
[private]

Tableau de PmPartialSet contenant les données à analyser

float* mean_freq
[private]

TODO

int* nombre_f
[private]

Tableau contenant le nombre de pics par trame

float* tmp_f
[private]

Tableau contenant les repères temporels des trames

int** Tviterbi
[private]

Tableau contenant les trajets de partiels correspondant à une fenêtre d'analyse HMM.

int** Toutput
[private]

Trajectoires de partiels indexées en fonction de leur état (Alive, Dead, ...)

partials* p
[private]

Tableaux d'index des partiels détectés (vivants,morts,...)

hmmLis ()

Constructeur effectue certaines allocations mémoire (p,heaven,gain_coefs,variances,mul_coefs) et initialise les variables

~hmmLis ()

Destructeur ne fait rien

void process ()

Procédure de calcul selectionne la fonction de lecture, alloue de la mémoire, initialise les données en mémoire puis rentre dans la boucle principale. Cette boucle principale est constituée essentiellement de deux appels de méthodes dans les classes lines et line_sets. le premier appel (lines::find_lines ) détecte les lignes de pics susceptibles de devenir des partiels

void ShiftMem ( PmPartialSet* bande, float* tmp_f, int* nombre_f, int window )
[private]

Décalage des tableaux en mémoire au changement de trame

Parameters:
bandetableau des pics
tmp_ftableau des repères temporels
nombre_ftableau du nombre de pics par trame
windowtaille de la fenêtre d'analyse

void Init (PmPartialSet* bande, int* nombre_f, float* tmp_f, partials* p)
[private]

Initializations diverses

Parameters:
bandetableau de pics
tmp_ftableau des repères temporels
nombre_ftableau du nombre de pics par trame
ptableaux des index de partiels

void AllocMem (int maxNbPeaks )
[private]

Allocation mémoire

Parameters:
maxNbPeaksnombre maximal de pics par trame

void DesallocMem ()
[private]

Désallocation mémoire

int read_additive_param (FILE* fp, PmPartialSet ps, PmFormat format_flag)
[private]

Lecture de trames de pics au format fmt(Pm) option partiels

Parameters:
fpfichier au format fmt(Pm)
pstableau de pics à remplir
format_flagformat du fichier à lire

int read_formant_param (FILE* fp, PmPartialSet ps, PmFormat format_flag)
[private]

Lecture de trames de pics au format fmt(Pm) option formants

Parameters:
fpfichier au format fmt(Pm)
pstableau de pics à remplir
format_flagformat du fichier à lire

void FillToutput (int optnbPart)
[private]

Mise à jour des données du tableau hmmLis::Toutput à partir du tableau hmmLis::Tviterbi

Parameters:
optnbPartnombre de partiels détectés dans la fenêtre d'analyse courante et contenus dans le tableau hmmLis::Tviterbi

void write_param ()
[private]

Sortie fichier des partiels détectés au format fmt(Pm)

void ShiftLines ()
[private]

Décalage des tableaux de lignes en fin de trame

void IncrHeavenTime ()
[private]

Mise à jour des temps de deuil après mort de partiels (cf tab_time )