Quantização de vetores no processamento da fala explicações
-
20-09-2019 - |
Pergunta
Estou tendo problemas para determinar de Este artigo de pesquisa Exatamente como posso reproduzir o algoritmo de quantização de vetores padrão para determinar o idioma de uma entrada de fala não identificada, com base em um conjunto de dados de treinamento. Aqui estão algumas informações básicas:
Informações abstratasO reconhecimento de idiomas (por exemplo, japonês, inglês, alemão etc.) usando recursos acústicos é um problema importante e difícil para a tecnologia atual da fala. ... A base de dados de fala usada neste artigo contém 20 idiomas: 16 frases proferidas duas vezes por 4 homens e 4 fêmeas. A duração de cada frase é de cerca de 8 segundos. O primeiro algoritmo é baseado na técnica de quantização de vetores padrão (VQ). Cada idioma é caracterizado por seu próprio livro de código VQ, .
Algoritmos de reconhecimentoO primeiro algoritmo é baseado na técnica de quantização de vetores padrão (VQ). Cada idioma, k
, é caracterizado por seu próprio livro de código VQ, . Na fase de reconhecimento, o discurso de entrada é quantizado por e a distorção de quantização acumulada, D_K, é calculada. A linguagem que como a distorção mínima é reconhecida. CALCULANDO DISTORÇÃO VQ, várias medidas de distorção espectral de LPC são aplicadas ... Nesse caso, o WLR - menor proporção ponderada - Distância: http://tinyurl.com/yc52gcl.
Algoritmo VQ padrão:Um livro de código, ALT TEXTO http://tinyurl.com/y8csx6e, para cada idioma é gerado usando frases de treinamento. A distância acumulada para o vetor de entrada na frase, , é definido como: TEXTO ALT HTTP://tinyurl.com/ybynjc2
A distancia d
pode ser qualquer distância que corresponda aos recursos acústicos e deve ser a mesma usada para a geração do livro de códigos. Cada idioma é caracterizado por seu livro de código VQ, .
Minha pergunta é: como exatamente eu faço isso? Eu tenho um conjunto de 50 frases em inglês. No MATLAB, posso calcular facilmente o WLR para qualquer sinal. Mas, como faço para formular um livro de códigos, já que devo usar o WLR para "geração do livro de códigos" para o inglês. Também estou curioso sobre como comparar um livro de código VQ do tamanho 16 (que foi considerado o melhor tamanho), com um determinado sinal de entrada. Se alguém pudesse ajudar a destilar este artigo para mim, eu agradeceria muito.
Obrigado!
Solução
A segunda pergunta (compare o código de código com o sinal indicado) é mais fácil: para cada entrada de código de código v_k_j, você deve calcular a distância d com o sinal de entrada. O 'J' com menor distância 'd' será reportável à melhor entrada de livro de códigos. Como uma função de distância, você pode usar WLR
O Building Codebook (Trainig) é um pouco mais complicado. Você deve dividir suas frases aos vetores com lenght n (16) e depois usar algum algoritmo de cluster (como K-means) para agrupar esses vetores. Em seguida, encontre médio em cada cluster. Isso significa e será a entrada do livro de códigos. É uma coisa que vem à mente.
Outro algoritmo (acredito, será melhor) pode ser encontrado aqui. Além disso, dois algoritmos de treinamento simples são descritos em Wikipedia