¿Qué significa un "vector" en un modelo oculto de Markov?

8

Sé que se utiliza un modelo oculto de Markov (HMM) en el reconocimiento de voz y lo entiendo hasta cierto punto. Sin embargo, lo que no sé es cómo la entrada (voz) se "transforma" en un vector que luego se usa en HMM.

¿Cómo se obtiene un vector de una entrada de sonido? ¿Es este vector legible por un humano?

Estúpido
fuente
99
¿Podría alguien explicarle al OP por qué fue rechazado? De esa manera puede editar su pregunta en algo que quizás sea más apropiado
Ivo Flipse
2
Según tengo entendido, los matemáticos usan el término "vector" para lo que la gente normal llamaría "una cadena de números". Ellos ven su archivo MP3 como una flecha que apunta a un punto específico de un "espacio de Hilbert", que tiene un número infinito de dimensiones ...
endolito
Supongo que está preguntando sobre MFCC. Está claramente dado en este Wiki Link en MFCC. en.wikipedia.org/wiki/Mel-frequency_cepstral_coefficient
Rajesh Dachiraju
Buen giro, yoda! La publicación original tenía varias deficiencias, pero creo que la forma actual no merece los votos negativos o los votos cerrados.
Kevin Vermeer
@rajesh: ¿por qué no pones esto en una respuesta ... hasta ahora no hay una buena
Peer Stritzinger

Respuestas:

8

La forma en que se realiza el reconocimiento de voz con HTK (o cualquier otra herramienta) es similar a la forma en que se realiza el reconocimiento de voz en el cerebro. Cuando escuche una palabra, que al instante se descomponen en sus constituyentes celulares y luego comparar los teléfonos con un "modelo" mentales interna de los teléfonos . Estos "modelos" se construyen a lo largo de años de escuchar el habla y le brindan la capacidad de distinguir entre oraciones de sonido similar como "Cómo destruir una bonita playa" y "Cómo reconocer el habla". El reconocimiento de voz con HTK o cualquier otro esquema basado en modelos funciona de manera similar. Aquí, en unos pocos pasos, así es como lo haces:

  1. Toma la señal de voz de entrada y la convierte en una representación vectorial de características.
  2. Tome una gran cantidad de oraciones y realice el paso 1 en cada una de ellas.
  3. Use los vectores de características en el paso 2 para construir un modelo estadístico para cada uno de los teléfonos / palabras en las oraciones (hay un número limitado de teléfonos / palabras en comparación con un número infinito de formas de decirlas, por lo que reduce las incógnitas modelando )
  4. Cuando llegue una nueva palabra, divídala en teléfonos y compárela con cada uno de los modelos conocidos. ¡La secuencia de teléfonos con mayor probabilidad gana!

Todos los pasos anteriores son críticos para completar con éxito cualquier tarea de reconocimiento de voz. Al descomponer un sonido en su vector de características, lo está llevando a un espacio modelo, dándole una representación que lo hace más adecuado para hacer un modelo fuera de otras representaciones (digamos la representación de amplitud de tiempo). La mayoría de estas representaciones se encuentran en la frecuencia o en el dominio de la frecuencia del tiempo. Una de las representaciones más populares es el MFCC (coeficiente cepstral de frecuencia de mel). En cierto modo, esta técnica imita la respuesta auditiva humana con un conjunto de filtros. Una señal de entrada se descompone con este conjunto de filtros que tienen un espaciado logarítmico de sus frecuencias centrales. Los coeficientes MFCC de cualquier oración (por ejemplo) se utilizan para modelar cada uno de los teléfonos de los que está hecha la oración. Como ejemplo, considere,

Oración: Hola. Descripción fonética: hh aa ey
Cuando introduce los coeficientes MFCC en HTK, asociará los coeficientes MFCC de una parte de la oración con hh, otra con aa y así sucesivamente. Cuando esto se repite muchas veces, los modelos para los teléfonos comienzan a formarse.

HTK usa la herramienta HCopypara convertir una oración de entrada en su representación vectorial de características. También hay muchos "sabores" en los MFCC (representaciones E_D_A o E_D_A_Z). Sería una buena idea leer la documentación HCopydentro del htkbook.

.mfcHTK escribe los coeficientes MFCC en un archivo con extensión . No es posible leer ese archivo usando ninguno de los editores de texto porque (creo) los coeficientes están escritos en binario. Sin Cembargo, puede intentar leer los archivos .

HTH.

Sriram
fuente
¿Quieres explicar el voto negativo?
Sriram
2
He votado en contra debido a múltiples razones. Carece de precisión. Es altamente inexacto y lleno de medias verdades. Mención innecesaria de herramientas y gadgets y métodos para usarlos, lo que no es relevante para la pregunta. En primer lugar, la pregunta en sí no está bien compuesta, y su respuesta no parece mencionar eso. Más allá hay un buen artículo de Wikipedia sobre MFCC que menciono mi comentario sobre la pregunta.
Rajesh Dachiraju
@Rajesh: gracias por los comentarios! Le he dado al OP un enlace a la página de MFCC en wikipedia si lo miras detenidamente. Si cree que esta respuesta es inexacta, resalte las inexactitudes para que podamos aprender. El simple voto negativo no equivale a una crítica constructiva, así que le animo a que haga uso gratuito del editbotón de la respuesta, o mejor aún, proporciónenos su propia respuesta. Y sí, si la pregunta en sí es inexacta, la respuesta también carecerá de precisión. Eso se ha discutido en la sección de comentarios.
Sriram
1
@Peer: No. Los teléfonos se modelan en una tarea de reconocimiento de voz, no los fonemas (en mi humilde opinión).
Sriram
2
Ah, ya veo ... desafortunada elección de un término técnico (realmente difícil de google ;-) He agregado un enlace al artículo de wikipedia para teléfonos
Peer Stritzinger
0

Cada ola se puede descomponer en la adición de muchas otras olas. Usando una transformada de Fourier, puede analizar una onda en sus componentes de frecuencia. La amplitud de estos componentes de frecuencia se puede usar como un vector. Aquí está la documentación sobre la clase Sphinx que hace esto y aquí hay una buena explicación visual de la transformación de Fourier.

Nate Glenn
fuente