Estou tentando criar uma espécie de robô no meu raspberry pi para responder minhas perguntas.
A princípio fiz para que só atendesse quando ouvisse seu nome, e funcionou bem. Mas agora estou adicionando conversas mais naturais e me deparei com um problema.
Sempre que o bot fala com o comando aplay, o comando arecord captura sua própria voz e envia para o bot processar. O bot não consegue distinguir entre minha voz e sua própria voz, então começa a falar consigo mesmo em loop (muito engraçado, devo acrescentar).
Fiz uma checagem no código do meu bot para verificar se o que foi ouvido era exatamente igual ao que foi dito (depois que converti para texto), mas isso não funciona muito bem (às vezes ele se entende com pequenas variações), e leva algum tempo extra de processamento apenas para descobrir isso, tempo em que meus próprios comandos não são processados porque ele está tentando descobrir se a voz que ouve é a dele.
Eu estou querendo saber se existe uma maneira de fazer uma instância de um registro ignorar o que uma instância de um jogo disse na mesma máquina. Acredito que uma solução de nível mais baixo seja definitivamente possível (estou pensando em como posso usar o skype sem fones de ouvido, por exemplo; não precisa usar reconhecimento de voz para saber que não deve dar um loop infinito na voz do meu amigo).
Estou procurando uma solução há algum tempo, mas não consigo encontrar nenhuma menção a esse problema (isso parece ser muito comum). Talvez eu simplesmente não saiba o nome dos fenômenos. Pensamentos?