Esta dissertação descreve a implementação de um módulo de verificação do orador
baseado em Hidden Markov Models (HMM).
Entende-se por reconhecimento de orador a capacidade que um sistema tem para
identificar que orador disse um conjunto de palavras. Por outro lado, verificação do orador significa
averiguar se o pertenço orador pronunciou ou não determinado conjunto de palavras.
A verificação do orador vai ser usada com a finalidade de restringir o acesso a informação
confidencial (por exemplo relatórios médicos) em ambientes do tipo "mãos livres", ou ainda no
controlo de acessos a áreas reservadas. Ambas as aplicações requerem desempenho elevado do
reconhecedor, pelo que se optou pela implementação da modalidade "dependente do texto".
O módulo foi desenvolvido em C++ utilizando a ferramenta Microsoft Visual C++ 6.0. Esse
módulo foi introduzido numa plataforma de componentes de software da Microsoft designada por
Component Object Model (COM).
O módulo de verificação do orador realizado nesta dissertação foi criado no âmbito de um
projecto denominado Tecnovoz. O Tecnovoz é um projecto nacional de modernização da economia
com a referência PMDT 01/165, em que o objectivo principal é dotar sistemas comerciais com
facilidades de interface por voz.
O reconhecimento de padrões de fala, baseado em HMM de observações contínuas, é o
elemento fundamental no funcionamento de um sistema de verificação. Esse reconhecedor já se
encontrava implementado, contudo não estava adaptado para ser integrado numa aplicação que o
necessitasse.
Para modelar o processo de produção de fala foi usado o Linear Predictive Coding (LPC).
O LPC é uma ferramenta muito usada principalmente em processamento de sinais de áudio,
especialmente de fala. É conhecido que os parâmetros LPC não são muito imunes ao ruído, no
entanto é muito eficaz para fala limpa.
A grande vantagem da verificação do orador reside no facto de a performance do sistema
não se degradar significativamente com o aumento de utilizadores. Isto ocorre porque na
verificação existem apenas dois modelos em competição, o do pertenço orador e o dos restantes
utilizadores.
Tarefa 1: Estudo da utilização de Objectos COM em C++ na perspectiva do cliente e na perspectiva do servidor. Desenvolvimento de um protótipo genérico que disponibilize e utilize um objecto COM.
Calendarização: 1 de Novembro de 2006 a 1 de Fevereiro de 2007.
Tarefa 2: Estudo da SAPI 5.3 do Windows. Estabelecimento de uma "framework" adequada à substituição do reconhecedor de fala da SAPI por um verificador de locutor.
Calendarização: 2 de Fevereiro a 30 de Abril de 2007.
Tarefa 3: Adaptação de um reconhecedor de fala baseado em modelos de Markov para verificador de locutor também baseado em modelos de Markov. Implementação da facilidade de aumento do número de oradores.
Calendarização: 1 de Maio a 30 de Junho de 2007.
Tarefa 4: Disponibilização de uma API como um objecto COM para verificação do orador com base na junção das tarefas 2 e 3. Adaptação ao interface pré estabelecido em conjunto com os restantes consorciados do projecto TecnoVoz.
Calendarização: 1 de Julho a 30 de Setembro de 2007.
Tarefa 5: Inserção do protótipo desenvolvido no software do Promotor CPCHS. Testes.
Calendarização: 1 de Outubro a 31 de Outubro de 2007.