Existem basicamente dois métodos para supressão de ruído
- Supressão de ruído usando Filtros de Wiener ou outros esquemas de estimativa e subtração. Para que isso pareça bom, é preciso muita otimização e capacidade mental. Para sua aplicação, esta provavelmente não é uma boa solução, já que os PCs não são construídos para processamento de áudio em tempo real, e os algoritmos envolvidos estão longe de ser triviais.
- Reprodução de ruído de fundo com inversão de fase e correção de latência junto com o sinal utilizável. Isso funciona muito bem para fones de ouvido, embora geralmente introduza algum borrão nos baixos. No entanto, isso também não funciona offline, pois precisa do sinal real de ruído de fundo do ambiente. E não é muito útil para PCs, já que eles introduzem muita latência de áudio. Você poderia tentar isso com um mínimo de kernel Linux em tempo real.
Com base em minhas experiências com processamento de áudio e várias técnicas de cancelamento de ruído, eu recomendaria alguns fones de ouvido com bom isolamento de som. Normalmente, isso resulta em um som melhor sem a necessidade de truques de processamento de sinal que não funcionem muito bem de qualquer maneira.