Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Coordenação de Pós-graduação em Informática Proposta de Dissertação de Mestrado Desenvolvimento de um Sistema de Verificação Automática da Identidade Vocal de Locutores para Dispositivos Embarcados Mestrando Fabrício Gutemberg Lélis de Melo Orientadores Joseana Macêdo Fechine Elmar Uwe Kurt Melcher Campina Grande julho 2009
Resumo O ser humano procura utilizar a tecnologia da informação e comunicação onde quer que esteja. Para tanto, estão sendo utilizados com maior frequência dispositivos com tamanho reduzido que proporcionam portabilidade. Surge, portanto, a necessidade de tornar esses dispositivos cada vez mais seguros e de fácil uso. Uma possível solução para alcançar esse objetivo consiste na utilização da voz como forma de autenticação, com vistas a reconhecer que é realmente o dono quem está usando um dado equipamento. Assim sendo, torna-se imperativo o desenvolvimento de um sistema que seja capaz de reconhecer um usuário a partir da sua voz e que também possibilite a sua utilização em dispositivos portáteis. A voz é uma forma segura de autenticação, pois contém características únicas de um dado ser humano, possibilitando distinguir uma pessoa de outra. Porém, um desafio consiste em aplicar as técnicas de Processamento Digital de Sinais de Voz em sistemas embarcados com restrições associadas aos recursos computacionais (memória, poder de processamento, dentre outros). Diante do exposto, o objetivo da proposta consiste no desenvolvimento de um sistema para reconhecimento automático da identidade de locutores em sistemas embarcados.
Sumário 1. Introdução...4 2. Objetivo da proposta...10 2.1 Objetivo Principal...10 2.2 Objetivos Específicos...10 3. Relevância da Proposta...11 4. Metodologia...13 5. Cronograma...17 6. Referências Bibliográficas...18
1. Introdução O ser humano sempre buscou meios de comunicação que facilitassem a interação com a máquina. Em função disto e do crescente desenvolvimento tecnológico de hardware para o processamento digital de sinais, o meio de comunicação mais adequado seria a fala humana [Rabiner 1978, Vieira 1989, Doddington 1985, Fagundes 1993]. A fala é um dos meios de comunicação mais utilizados pelo homem e que o distingue dos demais seres humanos, permitindo-lhe a troca de idéias, expressão de opiniões ou revelação do seu pensamento. A possibilidade de permitir a interação homem-máquina por meio da voz torna essa interação mais fácil e produtiva [Rabiner 1978, Doddington 1985, Vieira 1989, Fagundes 1993], uma vez que além de ser a forma mais natural de comunicação humana, oferece a vantagem de deixar mãos e os olhos dos usuários disponíveis para outras tarefas. Aliado a esta vantagem, a maioria das pessoas consegue atingir facilmente a taxa de 200 palavras por minuto quando estão falando, enquanto poucas conseguem digitar em um teclado, mais de 60 palavras por minuto [Maciel 2007]. Os primeiros trabalhos descrevendo máquinas que conseguiam reconhecer algumas palavras datam de 1952 [Davis 1952]. Nos anos 60, devido às descobertas de certas propriedades da voz, surgiu uma grande quantidade de trabalhos sobre o assunto [Koenig 1946, Rabiner 1978], devido também às facilidades oferecidas pelo computadores digitais. Em seguida, observou-se a necessidade de criar máquinas que não apenas fossem capazes de reconhecer o que estava sendo dito, como também conseguissem responder ao que lhes era perguntado. Com o crescente interesse por softwares e equipamentos que compreendam, reconheçam e simulem a voz humana, pesquisas têm sido realizadas na área de Processamento Digital de Sinais de Voz (PDSV), buscando o desenvolvimento de técnicas que possibilitem a construção de padrões quer permitam modelar, de forma eficiente, a fala, as características vocais únicas de cada locutor, bem como a produção da voz sintetizada [Vieira 1989, Campbell 1997, Maciel 2007]. O avanço tecnológico na área de PDSV permitiu o desenvolvimento de sistemas que utilizam a comunicação vocal homem-máquina, os quais podem ser divididos em três grandes áreas [O'shaughnessy 1999]: 4
1.Sistema de Resposta Vocal; 2.Sistema de Reconhecimento de voz; 3.Sistema de Reconhecimento de locutor. Sistemas de resposta vocal, ou sistemas de síntese de voz, são projetados para responder a um pedido de informação utilizando mensagens faladas. Para gerar a saída acústica para um vocabulário de várias centenas de palavras, torna-se necessário usar elementos de texto armazenados digitalmente, consistindo de frases, palavras, fonemas ou certos parâmetros chave (codificação paramétrica), que podem ser concatenados para formar a saída desejada [Rabiner 1978]. O sistema de reconhecimento de voz pode ser subdividido em um grande número de subáreas, dependendo de alguns fatores, tais como: tamanho do vocabulário, população dos locutores, etc. A tarefa básica do sistema de reconhecimento de voz é reconhecer uma determinada elocução de uma sentença ou entender um texto falado [Rabiner 1978, Benzeghiba 2003]. Sistemas de reconhecimento de fala podem ser utilizados em diversas situações, das quais se destacam: atendimento telefônico automatizado, acesso a menu de equipamentos eletrônicos, transcrição de sentenças pronunciadas para um arquivo texto. Em relação aos Sistemas de Reconhecimento de Locutor (ou identidade vocal), estes podem ser subdivididos em duas categorias: Verificação de Locutor ou Identificação de Locutor [Rabiner 1978]. O primeiro determina se a voz é mesmo da pessoa que alega possuí-la, enquanto que o segundo deve ser capaz de identificar quem é o locutor. A utilidade desses sistemas é muito grande podendo ser utilizado para controle de ambientes restritos e na área de criminalística com o mesmo propósito que é dado às impressões digitais [Rabiner 1978, Campbell 1997]. A autenticação vocal está baseada na unicidade vocal pertencente a cada pessoa. Sendo assim, ela pode ser utilizada para identificar alguém. Uma vantagem que pode ser destacada dessa técnica, quando comparada com um exame de fundo de olho, impressões digitais e assinaturas, se refere à sua facilidade de utilização em sistemas onde se exige o reconhecimento à distância; por exemplo transações bancárias por telefone. E, ainda, a voz não pode ser perdida nem tampouco esquecida [Doddington 1985]. Uma dificuldade encontrada nesse tipo de sistema é a existência de fatores que podem interferir no reconhecimento do locutor, tais como: estado emocional ou de saúde do locutor, ruído no ambiente, variação da posição do microfone, dentre outros [Rabiner 1978]. 5
A seguir, será dado a ênfase ao sistema de reconhecimento automático da identidade vocal de locutores, dado que este é o foco do trabalho ora proposto. Os sistemas de reconhecimento de identidade vocal visam solucionar um problema de reconhecimento de padrões de voz e, portanto consistem de duas fases [O'shaughnessy 1999]: treinamento e reconhecimento, conforme Figura 1. Sentenças de Treinamento Pré-processamento Extração de Características Fase de Treinamento Geração de Padrões de Referência Padrões de Referência Sentenças de Teste Pré-processamento Extração de Características Fase de Teste Geração de Padrões de Teste Comparação Reconhecimento Figura 1 Diagrama de um Sistema de Reconhecimento de Padrões [Dias 2006]. Na fase de treinamento, é obtido um conjunto de padrões de referência a partir de sentenças fornecidas pelos locutores (palavras ou frases), as quais são atribuídos rótulos que identificam cada locutor. Na fase de reconhecimento (verificação ou identificação), são obtidos padrões de teste, que são comparados com todos os padrões de referência obtidos na etapa de treinamento e, em seguida, utilizando-se uma regra de decisão, é identificado o padrão de referência mais semelhante ao padrão de entrada desconhecido. A etapa de pré-processamento é responsável por extrair do sinal de voz os dados relevantes e menosprezar a informação redundante, com a finalidade de repassar a informação útil para a etapa seguinte. Este processo é composto por: aquisição, pré-ênfase, detecção de início e fim, separação em frames e janelamento [Rabiner 1978, Furui 1981]. A definição de um bom conjunto de características é um processo complexo e essencial para que se obtenha bons resultados quanto ao reconhecimento de padrões. A análise por predição linear, análise LPC (Linear Prediction Coding), é uma 6
das técnicas mais utilizadas para estimar parâmetros básicos da voz que irão compor o conjunto de características [Rabiner 1978, Costa 1994, Chengalvarayan 1999]. A partir desta análise, são gerados os coeficientes LPC que irão compor o conjunto de características. Além desses coeficientes, outros podem ser obtidos a partir de uma derivação dessa técnica. Como exemplo [Furui 1981, Mammone 1996]: coeficientes LPC Cepestrais, Cepestrais Ponderados, Delta Cepestrais, Delta Cepestrais Ponderados, Mel Cepestrais, dentre outros. Durante a fase de treinamento, com base nas características extraídas, são gerados padrões de referência, os quais serão comparados com o padrão de teste na fase de reconhecimento. Dentre as principais técnicas utilizadas para a esta fase, destacam-se: elas destacam-se: Quantização Vetorial (QV) [Madeiro 1999, Nakamura 2001], Redes Neurais [Benzeghiba 2002, Amudha 2008], Modelos de Markov Escondidos (HMM) [Rabiner 1989, Fechine 2000, Benzeghiba 2002, Amudha 2007], Árvores de Decisão [Navratil 2003]. Ainda é possível utilizar essas técnicas de forma combinada. Convém lembrar que as etapas de pré-processamento e extração de características das fases de treinamento e reconhecimento devem ser equivalentes, para que seja possível realizar uma comparação correta entre o padrão testado e o(s) padrão(ões) já conhecido(s) pelo sistema [Dias 2006]. Em [Fauve 2007], é realizado um levantamento do estado da arte no contexto de sistemas de verificação de locutor independente de texto, em relação ao desempenho. Nesse trabalho, são apresentadas melhorias que foram implementadas entre os anos de 2004 e 2007. a partir da utilização de Support Vector Machine (SVM) [Campbell 2006], uma abordagem alternativa à Guassian Mixture Models (GMM), estratégia de classificação amplamente utilizada,. Outra solução apresentada consiste no uso de Factor Analysis (FA) [Kenny 2005]. Outra abordagem consiste na utilização de algoritmos genéticos para implementação de um sistema robusto para verificação de locutor, confirme o apresentado por [Day 2006], que utiliza programação genética para verificação de locutor. Características usadas como específicas para os indivíduos irão prover a solução mais robusta. Isto permite que soluções sejam adaptadas para diferentes ambientes e não deixem o processo com um único conjunto de solução, combinações de características podem ser selecionadas de forma inerente para um bom 7
desempenho individual. Esse sistema pode ser facilmente atualizado para incluir novas funcionalidades, com impacto mínimo quanto à evolução e ao processo de classificação. Para o desenvolvimento de um sistema embarcado para reconhecimento automático da identidade vocal de locutores, torna-se importante destacar que esse tipo de sistema é desenvolvido a partir da combinação de hardware e software, e algumas vezes peças mecânicas, desenvolvidas para realizar uma função específica [Barr 1999, Francia 2001]. Com a implementação em hardware, o objetivo é conseguir maior eficiência e rapidez na execução de determinadas tarefas e, a partir do software, tenta-se reduzir o tempo de desenvolvimento e aumentar a flexibilidade do sistema [Dias 2006]. Em relação à implementação em hardware de um sistema embarcado, diferentes abordagens podem ser seguidas. Quando a aplicação requer um grande número de exemplares por exemplo, o mercado de consumo, a abordagem mais recomendada é o uso de um SoC (System-On-a-Chip sistema em um única pastilha) [Carro 2003]. A arquitetura de hardware de um SoC pode ser constituída por blocos dedicados denominados de IP-Core (Intellectual Property Core 1 ), esses blocos de hardware executam tarefas específicas e são definidos de modo a permitir seu reuso em diferentes sistemas [Moraes 2004]. Além dos IP-Core, um SoC pode conter memórias, processadores e interfaces para periféricos. A comunicação entre os IP- Core de um SoC específico pode ser feita por um simples barramento ou chegar até uma rede complexa (NoC network-on-chip) [De Micheli 2002]. Para o desenvolvimento em pequena escala de produção ou de protótipos, a implementação mais recomendada é em FPGA (Field Programable Gate Array), ou a partir de sistemas baseados em famílias de microprocessadores [Carro 2003]. A principal vantagem desta abordagem reside na possibilidade de fácil modificação da estrutura do hardware do sistema por meio de um processo denominado de reconfiguração, o que permite o desenvolvimento incremental, correção de erros de projeto, além da adição de novas funções de hardware [Moraes 2004]. Para implementar o hardware de um sistema embarcado, linguagens de descrição hardware (HDL Hardware Description Language) podem ser utilizadas para realizar a descrição dos circuitos eletrônicos. Essas linguagens permitem 8 1 Blocos de hardware que executam tarefas específicas e são definidos de modo a permitir seu reuso em diferentes sistemas [Moraes 2004].
descrever a forma como os circuitos operam, possibilitando a simulação dos circuitos antes mesmo de sua fabricação. Além deste fato, as HDL apresentam sintaxe e semântica que permitem inserir informações para expressar o comportamento do sistema ao longo do tempo (timed), descrevendo, portanto, o comportamento do hardware. Porém, essas linguagens não são apropriadas para descrições de software e especificações funcionais de alto nível [Carro 2003]. O projeto de sistemas embarcados é bastante complexo devido a certas exigências, a exemplo de mobilidade, limite de consumo de potência, baixa disponibilidade de memória, necessidade de segurança e confiabilidade, possibilidade de funcionamento em uma rede de comunicação, e o curto tempo de projeto, Tais exigências tornam essa área de pesquisa bastante abrangente [Wolf 2001, Carro 2003]. A junção do reuso de plataformas e componentes integráveis em SoC (ou IP- Core) com a automação de projetos em software e sua integração com os projetos de hardware tem sido a principal meta a ser alcançada para a diminuição de tempo total de projeto, sem que isso venha a significar perda na qualidade do sistema. Com a chegada da tecnologia pessoal, as máquinas se inserem em quase todas as atividades do cotidiano das pessoas, sejam essas máquinas computadores, eletrodomésticos, dispositivos portáteis, etc. Assim sendo, nada melhor do que dotálas com a capacidade de percepção e compreensão da voz humana, que é uma forma mais, natural e eficaz do ser humano expressar seus pensamentos [Dias 2006]. Tendo em vista o vigente interesse pelo desenvolvimento de aplicações em PDSV para sistemas embarcados, devido a sua portabilidade, por apresentar tamanho de área reduzido, ótimo desempenho quando comparado com dispositivos maiores, reuso de IP-Core e o grande interesse do mercado por dispositivos cada vez menores, tornase clara a importância da implementação de sistemas que venham atender a estas necessidades. 9
2. Objetivo da proposta 2.1 Objetivo Principal O objetivo principal deste trabalho é o desenvolvimento de um sistema embarcado para Verificação Automática da Identidade Vocal de Locutores, a ser utilizado para acesso restrito de usuários em um ambiente. 2.2 Objetivos Específicos Estudar técnicas que permitam a otimização dos recursos disponíveis para o sistema (capacidade de processamento, armazenamento e etc.). Como um sistema embarcado apresenta certas limitações, é preciso que os recursos alocados sejam utilizados de maneira eficiente garantindo assim a otimização da sua implantação.embarcado. Realizar uma análise o desempenho do IP-Core. Como a meta deste trabalho é o desenvolvimento de um IP-Core, com a finalidade de ser um sistema de verificação de locutor, é preciso garantir que métricas alcanças por esse sistema estejam em conformidade com as exigências do projeto. Realizar um estudo comparativo com implementações já desenvolvidas. Após a obtenção dos resultados da análise de desempenho, estes deverão ser comparados com possíveis implementações já existentes o mais próximas possível do objetivo deste trabalho. Desenvolver um sistema que apresente resultados em tempo real. Esta característica é muito importante para o tipo de dispositivo que o sistema será implementado. 10
3. Relevância da Proposta Este trabalho visa o desenvolvimento de um sistema capaz de fazer a verificação de locutor para equipamentos com poucos recursos disponíveis. A partir da revisão bibliográfica realizada, foi possível observar a existência de poucos trabalhos relacionados à verificação de locutor para sistemas embarcados. No entanto, esses trabalhos tendem a ser mais numerosos em virtude da venda crescente de dispositivos portáteis. No trabalho de [Hossain 2007], foi desenvolvido um sistema de identificação de locutor independente de texto, em tempo real. Foi utilizada a técnica de Backpropagation Neural Network (BNP). O sistema identificou corretamente 96% dos locutores, usando menos de um segundo das amostras de teste para cada locutor. Em [Kenny 2007], é apresentada uma abordagem baseada em arquivos para verificação de locutores, no qual a estratégia da máxima verossimilhança é o critério utilizado para treinamento do sistema. Nessa abordagem houve uma redução de 30% nas taxas de erro, equal error rate (EER) e detection cost function (DCF). Em [Campbell 2007], o objetivo do trabalho é a introdução de uma linguagem de modelagem alternativa de alto nível para verificação de locutor. O treinamento é levado a efeito a partir de Máquinas de Suporte Vetorial (SVM Support Vector Machine). No trabalho de [Chen 2008], é apresentado um sistema de verificação de locutor em tempo real, que utiliza GMM (Gaussian Mixture Model), combinado com UBM (Universal Background Model), para obtenção dos padrões representativos da fala dos locutores e MFCC (Mel Frequency Cepstrum Coefficient) para realizar a extração de característica dos locutores. A plataforma utilizada para implementar o sistema foi um PDA (Personal Digital Assistant). Outro trabalho também realizado no contexto de sistemas embarcados para verificação de locutor foi o apresentado por [Tydlitát 2007]. A principal diferença deste trabalho em relação ao anterior consiste na utilização de MAP (Maximum A-Posteriori) combinado com GMM, em substituição a UBM. Em [Sududhi 2008], é apresentado um sistema embarcado denominado Remote Voice Control and Security System (RVCS). Neste trabalho, é realizado tanto o reconhecimento de fala quanto o reconhecimento de locutor. Para o último, é 11
utilizada a QV (Quantização Vetorial) para construção dos padrões e MFCC para extração das características da fala dos locutores A finalidade deste trabalho é construir um sistema que possibilite a um operador cadastrado (verificação de locutor) enviar comandos (reconhecimento de fala) para um equipamento, de forma que este possa realizar as tarefas solicitadas pelo operador. O protótipo do sistema foi implementado num kit TMS320C6713. Diante do exposto, observa-se a relevância do desenvolvimento de um sistema para reconhecimento automático da identidade vocal de locutores. Destaca-se também, que este projeto está inserido no âmbito das pesquisas do projeto Brazil-IP [BRAZIL-IP 2009], no qual está sendo desenvolvida uma metodologia de verificação denominada Brazil-IP Verification Metodology (BVM), que consiste em uma nova abordagem da metodologia VeriSC [Da Silva 2007] para SystemVerilog, a qual é utilizada na verificação funcional 2 de projetos em hardware. Dessa forma, essa metodologia será utilizada ao longo das fases de construção do sistema. Assim sendo, o projeto proporcionará também uma contribuição importante, validação da BVM. 4. Metodologia A metodologia a ser empregada nesse trabalho constituíra em estudo, especificação, verificação, desenvolvimento e implementação de um IP-Core que terá a funcionalidade de verificar de forma automática a identidade vocal de locutores. Essa metodologia estará apoiada em 2 pilares: No processo de desenvolvimento de IP-Core denominado de ipprocess [Lima 2005]. O ipprocess é um processo de desenvolvimento para Soft IP com prototipagem em FPGA; E na metodologia BVM. O ipprocess servirá como norma para a geração de toda documentação necessária para o acompanhamento do projeto, por meio dos templates que estão disponíveis no site do processo [IPPROCESS 2009]. BVM servirá de suporte para a etapa de verificação funcional do projeto. Portanto, na etapa de verificação, os blocos que formarão o IP-Core serão validados conforme a metodologia BVM. 2 Verificação funcional é um processo usado para demonstrar que o objetivo do projeto é preservado em sua implementação [Bergeron 2003]. 12
Para garantir o sucesso dessa metodologia, a execução do trabalho será dividida nas seguintes etapas: 1. Especificação dos blocos quer irão compor o IP-Core; Um documento que contém a especificação das funcionalidades de cada bloco que fará parte do IP-Core (Figura 2) será redigido. Tal documentação seguirá as normas do ipprocess. Esta parte do trabalho será realizada em conjunto com a equipe do Brazil-IP da UFCG. Dados de treinamento Fase de Treinamento DV PE JAN CALP CP CVLP Dados de Reconhecimento MEMO Amostra Limiar DV PE JAN CALP Fase de Reconhecimento CVLP TD Saída da Hipótese DV Detector de Voz PE Pré-Ênfase JAN - Janelamento CALP Codificação por Análise da Predição Linear CVLP Coeficientes do Vetor da Predição Linear CP Casador de Padrões TD Tomador de Decisão MEMO Memória Flash Figura 2. Arquitetura proposta para o sistema Os módulos da arquitetura proposta podem ser caracterizados como segue. 13
DV (Detector de Voz) - Este módulo é responsável por eliminar partes do sinal de voz que não tenham informação relevante. Como exemplo, ruído do ambiente ou silêncio presentes durante a fala do locutor. PE (Pré-Ênfase) - A proposta deste módulo é a atenuação das componentes de baixa frequência do sinal. JAN (Janelamento) este bloco é responsável pela divisão do sinal de voz em segmentos, selecionados por uma janela, de forma a garantir a estacionariedade do sinal de voz a ser analisado. CALP (Codificação por Análise via Predição Linear) Aqui serão gerados os coeficientes CVLP (Coeficientes do Vetor da Análise por Predição Linear). Estes coeficientes, em número de 12, serão únicos para cada locutor. CP (Casador de Padrões) A função principal deste bloco é calcular quão próximos estão os padrões do vetor de teste e do vetor de treinamento gerados no bloco anterior.. TD (Tomador de Decisão) - Este módulo realiza uma decisão binária baseada na taxa de casamento obtida no CP. 2. Verificação funcional dos blocos; Esta etapa constituirá em verificar as funcionalidades dos blocos e garantir que estão funcionando de acordo com a especificação. Esta parte do projeto consumirá grande esforço (algo em torno de 70%) do tempo total de desenvolvimento. Desta forma, é fortemente recomendado utilizar ferramentas que possibilitem a geração rápida e eficiente de um ambiente de simulação [Da Silva 2007]; Nesta etapa, será gerada a documentação que conterá o plano de verificação. O plano deverá conter os tipos de estímulos que devem ser gerados, ou seja, a faixa de valores a serem aceitos e faixa de valores a serem rejeitados. Também deverá ser gerado o plano de cobertura, cuja finalidade é determinar os parâmetros de medição para o progresso da cobertura. Esses documentos também seguirão as normas de documentação do ipprocess; 14
A ferramenta a ser utilizada no auxílio do processo de geração do ambiente de simulação é denominada etbc [Pessoa 2007], a qual realizará a geração automática do ambiente de simulação (testbech), incluindo nível de transação, cobertura dirigida, checagem automática e construção de estímulos randômicos; Esta etapa também será realizada em conjunto com a equipe do Brazil- IP da UFCG. 3. Implementação do módulos em SystemVerilog RTL; Após a verificação e validação dos módulos, ocorrerá a implementação das funcionalidades do sistema. Esta implementação será realizada em SystemVerilog RTL. Esta será a última etapa realizada em conjunto com a equipe do Brazil- IP. A equipe Brazil-IP realizará a prototipação em silício, um dos objetivos do projeto Brazil-IP. 4. Medição e análise da eficiência da implementação em FPGA; Esta etapa constituirá na realização de medições de desempenho e de custos de implementação do IP-Core; As métricas utilizadas serão: Tempo: ciclos de relógio e frequência de clock; Recursos lógicos: número de portas lógicas e elementos lógicos; Consumo de energia: número de acessos à memória, frequência de clock e chaveamento de sinais. 5. Análise dos resultados obtidos; 6. Elaboração/Submissão de artigos para eventos nacionais e internacionais; 7. Elaboração da redação da Dissertação de Mestrado; 8. Defesa da Dissertação de Mestrado. 15
5. Cronograma A seguir, no Quadro 1 é apresentado o cronograma previsto para a realização das etapas apresentadas na seção anterior. Quadro 1: Cronograma de atividades. Atividades Meses Jun /09 Jul /09 Ago /09 Set /09 Out /09 Nov /09 Dez /09 Jan /10 Fev /10 Mar /10 Abr /10 Mai /10 1. Especificação dos módulos x x 2. Verificação funcional dos módulos x x x x 3. Implementação do módulos em SystemVerilog RTL x x 4. Medição e análise da eficiência da implementação em FPGA x x 5. Comparação dos resultados da análise com a literatura x x 6.Elaboração/Submiss ão de artigos para eventos nacionais e internacionais x 7. Elaboração da redação da Dissertação de Mestrado x 8. Defesa da Dissertação de Mestrado x
17
6. Referências Bibliográficas [Barr 1999] BARR, M. Programming Embedded Systems in C and C++. Sebastopol. CA, O'Reilly & Associates, 1999. [Benzeghiba 2002] BENZEGHIBA, M. F., BOULARD, H., User-customized password speaker verification based on HMM/ANN and GMM models. Proceedings of the Seventh International Conference on Spoken Language Processing (ICSLP 2002), p. 1325-1328, 2002. [Benzeghiba 2003] BENZEGHIBA, M. F., BOULARD, H., On the Combination of Speech and Speaker Recognition. IDIAP-RR 19, IDIAP Dalle Molle Institute for Perceptual Artificial Intelligence, ftp://ftp.idiap.ch/pub/reports/2003/rr03-19.pdf, 2003. [Bergeron 2003] Bergeron, Janick. Writing Testbenches: Functional Verification of HDL Models, Second Edition. Kluwer Academic Publishers, Norwell, MA, USA, 2003. [Brazil-IP 2009] Brazil-IP, Programa para Formação de Talentos em Projetos de Microeletrônica. Disponível em: http://www.brazilip.org.br/. Acesso em: 05/07/2009. [Campbell 1997] CAMPBELL, J. P., Speaker Recognition: A Tutorial. Proceeedings of the IEEE, v. 85, 1997. [Campbell 2006] CAMPBELL, W., Campbell, J., Reynolds, D., Singer, E., Torres-Carrasquillo, P., Support vector machines for speaker and language recognition, Comput. Speech Lang., vol. 20, pp. 210 229, 2006. [Carro 2003] CARRO, L.; WAGNER, F. R. Sistemas Computacionais Embarcados. In: JAI'03 XXII Jornadas de Atualização em Informática, 2003, Campinas. [Chengalvarayan 1999] Chengalvarayan, R. Hierarchical Subband Linear Predictive Cepstral (HSLPC) Features for HMM-based Speech Recognition. International Conference on Acoustics, and Signal Processing (ICASSP99), 1999. [Costa 1994] Costa, W. C. de A. Reconhecimento de Fala Utilizando Modelos de Markov Escondidos (HMM s) de Densidades Contínuas. Universidade Federal da Paraíba Dissertação
de Mestrado, Junho 1994. [Da Silva 2007] Da SILVA, K. R. G., Uma Metodologia de Verificação Funcional para Circuitos Digitais, 121 f. Dissertação (Doutorado em Engenharia Elétrica) Universidade Federal de Campina Grande, Campina Grande, 2007. [Davis 1952] DAVIS, K. H., Automatic Recognition of Spoken Digitis. Journal of the Acoustical Society of America, v. 24, n. 6, p. 637-642, 1952. [Day 2006] DAY P., NANDI A. K., Robust Text-Independent Speaker Verification Using Genetic Programming, 2006 IEEE 1558-7916 [De Micheli 2002] DE MICHELI, G. e BENINI, L., Networks-on-Chip: A New Paradigm for Systems-on-Chip Design. DATE 02 Design, Automation and Test in Europe, Paris, França, Mar. 2002. Proceedings, IEEE Computer Society Press, 2002. [Deller 1993] DELLER Jr. R., PROAKIS, J. G., and HANSEN, J. H. L., Discrete-time Processing of Speech Signals, Macmillan Publishing Co., 1993. [Dias 2006] DIAS, D., Desenvolvimento de um IP Core de Préprocessamento Digital de Sinais de Voz para Aplicação em Sistema Embutidos, 108 f. Dissertação (Mestrado em Ciência da Computação) Universidade Federal de Campina Grande, Campina Grande, 2006. [Doddington 1985] DODDINGTON, G. R., Speaker Recognition Identifying People by their Voices. Proceedings of the IEEE, v. 73, n. 11, p. 1651-1664, nov. 1985. [Fagundes 1993] FAGUNDES, R. D. R., ALENS, N., Reconhecimento de Voz, Linguagem Contínua, Usando Modelos de Markov. In: 11º SIMPÓSIO BRASILEIRO DE TELECOMUNICAÇÕES,1993. [Fauve 2007] FAUVE B. G. B., MATROUF D., SCHEFFER N., BONASTRE J., MASON J. S. D., State-of-the-Art Performance in Text-Independent Speaker Verification Through Open-Source Software, IEEE 1558-7916, 2007., 2007
[Fechine 2000] FECHINE, J. M., Reconhecimento automático de identidade vocal utilizando modelagem híbrida: Paramétrica e Estatística. 2000. 212 f. Tese (Doutorado em Engenharia Elétrica) Universidade Federal de Campina Grande, Campina Grande, 2000. [Francia 2001] FRANCIA, G. A., Embedded Systems Programming. The Journal of Computing in Small Colleges, v. 17, n. 2, p. 204-210, Proceedings of the 15th Annual CCSC Southeastern Conference, 2001. dez. 2001. [Furui 1981] FURUI, S., Cepstral Analysis Technique for Automatic Speaker Verification. IEEE Transactions on Acoustics, Speech and Signal Processing Magazine, v. 29, 1981. [IPPROCESS] Disponível em: http://www.lincs.org.br/ipprocess/, acessado em 05/07/2009. [Kenny 2005] KENNY, P., Boulianne, G., Ouellet, P. and Dumouchel, P., Factor analysis simplified, in Proc. ICASSP, pp. 637 640, 2005. [Kenny 2007] KENNY, P., Boulianne, G., Ouellet, P. and Dumouchel, P., Speaker and Session Variability in GMM-Based Speaker Verification, in IEEE transactions on audio, speech, and language processing, vol. 15, no. 4, 2007. [Koenig 1946] KOENIG, W. The Sound Spectrograph. Journal of the Acoustical Society of America, v. 17, p. 19-49, 1946. [Lima 2005] LIMA, M., AZIZ, A., ALVES, D., LIRA, P., SCHWAMBACH, V., BARROS, E., ipprocess: Using a Process to Teach IP-core Development, IEEE, 0-7695-2374-9/05, 2005. 2005,. [Maciel 2007] MACIEL, A.M.A., Investigação de um ambiente de processamento de voz utilizando VoiceXML, 83 f. Dissertação (Mestrado em Ciência da Computação) Universidade Federal de Pernambuco, Recife, 2007. [Madeiro 1999] MADEIRO, F., VILAR, R. M., FECHINE, J. M., AGUIAR NETO, B. G., A Self Organizing Algorithm for Vector Quantizer Design Applied to Signal Processing, International Journal of Neural Systems, v. 9, 1999.
[Mammone 1996] MAMMONE, R. J., ZHANG, X., RAMACHANDRAN, R. P., Robust Speaker Recognition A Feature-Based Approach. IEEE Signal Processing Magazine, v. 13, 1996. [Moraes 2004] MORAES, F., CALAZANS, N. MOLLER, L. BRIAO, E., CARVALHO, E. Dynamic and Partial Reconfiguration in FPGA SoCs: Requirements Tools and a Case Study. In: ROSENSTIEL, Wolfgang. Reconfigurable Computing. New York, USA. 2004. [Navratil 2003] NAVRATIL, J., Jin, Q., Andrews, W., Campbell, J., Phonetic speaker recognition using maximum-likelihood binary-decision tree models, in Proc. ICASSP, Hong Kong, 2003. [O'shaughnessy 1999] O'SHAUGHNESSY, D., Speech Communications: Human and Machine, Wiley-IEEE Press, 1999. [Paula 2000] PAULA FILHO, W. P., Multimídia: Conceitos e Aplicações, JC Editora, 2000. [Pessoa 2007] PESSOA, I.M., Geração Semi-Automática de Testbenches para Circuitos Digitais Integrados. 52 f. Dissertação (Mestrado em Ciência da Computação) Universidade Federal de Campina Grande, Campina Grande, 2007. 2007. [Rabiner 1978] RABINER, L. R., SCHAFER, R. W., Digital processing of speech signals. New Jersey: Prentice Hall, 1978. [Vieira 1989] VIEIRA, M. N., Módulo frontal para um sistema de reconhecimento automático de voz. 1989 Dissertação Universidade de Campinas, Campinas, 1989. [Wolf 2001] WOLF, W. Computers as Components. McGraw-Hill, 2001.