# How to reestimate GMMs in a HMM-GMM

Context: Automatic Speech Recognition

I understand the training of a pure HMM with Baum-Welch:

Expectation step

• compute $\gamma_t(i) = P(q_t=i |O,\lambda)$ //p(passing state $i$ at frame $t$)
• compute $\xi_t(i,j) =P(q_t=i,q_{t+1}=j|O,\lambda)$ //p(transition state $i\rightarrow j$ in frames $t,t+1$)

Maximization step

• e.g. $b_i'(v_k)=\frac{\sum\limits_{t=1}^{T}P(q_t=i|O,\lambda)*\delta(o_t=v_k)}{\sum\limits_{t=1}^{T}P(q_t=i|O,\lambda)}$ //Emission probabilities

But our HMMs models the emission probabilities with GMMs.
The script just says in case of GMM do EM (and with NN do backpropagation)
But I don't see how that should work. EM for GMM needs feature vectors and not the information in with state we probably are right? So what is the new information for the GMMs?

For GMM-HMMs normally we don't actually run EM for GMM at every step, instead at the E step we estimate the latent variables for GMM and HMM together by using the "component-state occupation probability" $\gamma_t(i,m)$, which is the probability of occupying mixture component $m$ of sate $i$ at time $t$. Then at the M step the MLE for each Gaussian components can be solved directly.