170 likes | 527 Views
Arquiteturas para reconhecimento de voz em sistemas embarcados. 2/18. Roteiro. Introdu
E N D
1. Arquiteturas para reconhecimento de voz em sistemas embarcados Luiz Sequeira Laurino
lslaurino@inf.ufrgs.br
Instituto de Informática - UFRGS
2. Arquiteturas para reconhecimento de voz em sistemas embarcados 2/18 Roteiro Introdução
Reconhecimento de voz
Algoritmo
Arquiteturas
Conclusões
Referências
3. Arquiteturas para reconhecimento de voz em sistemas embarcados 3/18 Introdução Crescimento no uso de sistemas embarcados (celulares, PDA’s, ...)
Necessidade de interface natural (gestos, reconhecimento de voz, ...)
Atendimento a certas restrições: performance (tempo real), área e consumo de potência
4. Arquiteturas para reconhecimento de voz em sistemas embarcados 4/18 Reconhecimento de voz Grande complexidade (sotaques, ambigüidade em palavras fora de contexto – “there” e “their”)
Necessidade de ser independente de interlocutor
Utilizar grandes “alfabetos” (2000 palavras, p. ex.)
5. Arquiteturas para reconhecimento de voz em sistemas embarcados 5/18 Algoritmo Tarefa tem grande demanda por memória e altas latências são verificadas
Processo de reconhecimento de voz pode ser dividido em 3 etapas:
Front end: transforma onda sonora em vários “feature vectors” (representa o sinal sonoro durante 10ms) através de operações DSP (conversões AD)
Cálculo Gaussiano
Hidden Markov Model (HMM)
6. Arquiteturas para reconhecimento de voz em sistemas embarcados 6/18 Cálculo Gaussiano Converte cada “feature vector” em um fonema
Dois fonemas seqüenciais (“senone”) são treinados e usados para avaliar a transição entre fonemas
A probabilidade aqui calculada é referente a transição de um estado para outro no HMM, para uma determinada entrada (fonema)
Em alguns casos, é realimentado pela terceira parte do algoritmo (probabilidade entre palavras)
7. Arquiteturas para reconhecimento de voz em sistemas embarcados 7/18 Hidden Markov Model (HMM) Caracteriza-se por um grafo dirigido onde os nós são os fonemas e para cada aresta há uma probabilidade associada (calculada pela etapa anterior) de transição entre fonemas
Busca no grafo que converte seqüências de fonemas em palavras
Busca possui uma heurística para reduzir tempo de processamento
Realimenta a etapa anterior
para as transições
entre palavras
8. Arquiteturas para reconhecimento de voz em sistemas embarcados 8/18 Algoritmo (2)
9. Arquiteturas para reconhecimento de voz em sistemas embarcados 9/18 Arquiteturas Tentam explorar paralelismo presente no algoritmo
Focam na fase do cálculo Gaussiano e busca sobre grafo (HMM), visto que juntas consomem 98% do processamento
Apresentadas, na maioria dos casos, como co-processadores que aceleram o processamento de reconhecimento de voz
10. Arquiteturas para reconhecimento de voz em sistemas embarcados 10/18 SMT e SMP Arquiteturas Simultaneous Multithreading (SMT) e Symmetric Multiprocessing (SMP) dispostas em um coprocessador
SMP-> aumenta performance, mas processador “em espera” (memória lenta)
SMT-> tolera delays no sistema (através da troca de contextos), mas necessitaria de um número muito grande de recursos
Solução é combinar as duas
11. Arquiteturas para reconhecimento de voz em sistemas embarcados 11/18 SMT e SMP (2) Composta por uma série de Elementos de Processamento (EP), um balanceador de carga dinâmico e locks globais
EP’s com baixo consumo de potência
Particionamento estático das tarefas para maximizar balanceamento de carga e uso do processador e minimizar custos com escalonamento
Cada EP é composto por um pipeline de 5 estágios(not-taken prediction), cache e um controle. Cada EP pode executar múltiplas threads
12. Arquiteturas para reconhecimento de voz em sistemas embarcados 12/18 SMT e SMP (3)
13. Arquiteturas para reconhecimento de voz em sistemas embarcados 13/18 ASP (Associative String Processor) Arquitetura para processamento paralelo
Homogêneo, tolerante a falhas e reconfigurável
Processamento associativo
Voltado para vocabulários restritos
14. Arquiteturas para reconhecimento de voz em sistemas embarcados 14/18 ASP (2)
15. Arquiteturas para reconhecimento de voz em sistemas embarcados 15/18 ASP (3) O algoritmo verifica a maior probabilidade para um determinado estado-destino
Tal verificação é feita em paralelo com todos os estados
Valor do estado-destino é determinado pela soma dos produtos entre os valores dos predecessores e suas probabilidades para este estado-destino
16. Arquiteturas para reconhecimento de voz em sistemas embarcados 16/18 Conclusões Arquiteturas bastante dependentes do modelo von Neumann
O desempenho de arquiteturas auxiliares para resolver esta tarefa mostrou-se bastante satisfatório
Ainda são necessárias otimizações nas memórias
Considerar vocabulários onde certas palavras têm maior probabilidade de ocorrer
17. Arquiteturas para reconhecimento de voz em sistemas embarcados 17/18 Referências Krishna, R.; Mahlke, S. e Austin, T. “Architectural optimizations for low-power, real-time speech recognition”. Proceedings of the 2003 international conference on Compilers, architectures and synthesis for embedded systems. ACM Press. 2003.
Hagen, A.; Connors, D. e Pellom, B. “The analysis and design of architecture systems for speech recognition on modern handheld-computing devices”. Proceedings of the 1st IEEE/ACM/IFIP international conference on Hardware/software codesign and system synthesis. ACM Press. 2003.
Mathew, B.; Davis, A. e Fang, Z. “A low-power accelerator for the SPHINX 3 speech recognition system”. Proceedings of the 2003 international conference on Compilers, architectures and synthesis for embedded systems. ACM Press. 2003.
18. Arquiteturas para reconhecimento de voz em sistemas embarcados 18/18 Referências (2) Anantharaman, T. e Bisiani, R. “A hardware accelerator for speech recognition algorithms”. Proceedings of the 13th annual international symposium on Computer architecture. IEEE Computer Society Press. 1986.
Krikelis, A. “Continuous speech recognition using na associative string processor”. IEEE Micro. 1989.
Lea, R. “ASP: a cost-effective parallel microcomputer”. IEEE Micro. 1988.