VOX -- Sistema de Reconhecimento de Voz Baseado em Redes Neurais
Em 01998 tive a satisfação de participar do
projeto VOX, juntamente com Francisco Socal e Rafael de
Figueiredo e sob a orietação de Daniel
Hart. Como o título do trabalho sugere, nossa
idéia era desenvolver um método baseado em
redes neurais que permitisse realizar reconhecimento de
voz. Considero que nossos resultados foram muito bons:
utilizando um vocabulário bastante limitado (quatro
palavras) chegamos a obter taxas de reconhecimento em torno
de 80% com o sistema calibrado para um locutor
específico.
O VOX foi desenvolvido como trabalho de conclusão
do nosso curso técnico em eletrônica, na Fundação
Liberato.
Boa parte do que produzimos durante a
realização deste projeto está
disponibilizado abaixo.
- Relatório (PDF
zipado 210,9kB). O documento que relata o
desenvolvimento e os resultados que obtivemos.
- Fontes principais (ZIP
10,9kB). Todas as rotinas relacionadas a captura e
processamento do som e redes
neurais. São necessárias para
compilar os outros programas. O código
é C++ para Win32, mas as classes de redes
neurais utilizam a classe TFileStream da
biblioteca do C++ Builder, da Borland. É bem
fácil modificar estas rotinas para usar a
classe std::fstream da biblioteca
padrão do C++, mas eu não pretendo fazer
isso. E um aviso: este código está cheio
de técnicas de programação toscas
e vazamentos de memória. Não tente
usá-lo para aprender a programar.
- VOX -- programa
genérico (ZIP 170,9kB). Fontes (C++
Builder) e executável (Win32) de um programa
que permite coletar amostras para treinamento,
treinar a rede neural e testar o reconhecimento de
voz.
- Reconhecedor de
bandeiras (ZIP 152,5kB). Fontes (C++ Builder) e
executável (Win32) de um programa que
não tem nada a ver com reconhecimento de voz,
mas foi criado durante o projeto VOX como um
experimento com redes neurais. Identifica a que
país (Brasil, Argentina ou Japão)
pertence uma pequena bandeira desenhada pelo
usuário.
Tínhamos (e ainda temos) uma
apresentação do VOX controlada pela voz. Bem
interessante, mas pesada demais (algo em torno de 8MB).