Tendo trabalhado extensivamente na formação de feixe adaptável, eu realmente evitava hackear algo por conta própria até ter alguma experiência. (Nota: Soluções profissionais com cerca de 60 canais custam cerca de 100k €. Com muitos canais, sua resolução espacial se torna muito melhor, mas você obtém apenas uma quantidade limitada de informações através de uma porta USB ...)
Para uma formação de feixe confiável, é essencial que todos os microfones usem a mesma base de tempo. A maneira mais fácil de conseguir isso é com uma placa de som USB externa com vários canais de entrada. Aqueles não são realmente baratos embora. Você já deu uma olhada no que pode ser encontrado no ebay?
Uma alternativa é sacrificar a base de tempo comum usando várias placas de som USB com, por exemplo, dois canais cada. No entanto, você precisará calibrar seu sistema de aquisição. Isso realmente não é tão difícil quanto parece:
Para calibrar, você configura sua matriz e produz um som curto (por exemplo, um crack / aplauso / etc.) A uma distância da matriz que é da ordem da extensão da matriz. Você então grava esse som e usa o Matlab ou similar para calcular a correlação cruzada entre o clap / crack / etc. nos diferentes canais. Isso fornecerá uma lista de compensações de tempo que você precisa aplicar aos seus canais para alinhá-las antes de alimentar os dados com o algoritmo de formação de feixe.
Para explorar a formação de feixe adaptável, este é provavelmente o caminho a menos, a menos que você possa fazer uma barganha em uma placa de som multicanal.
Editar 1
Esta edição é para responder às perguntas levantadas nos comentários.
A idéia básica de formação de feixe de atraso e soma é aplicar atrasos a diferentes canais de aquisição, de modo que os sons originados de um ponto no espaço se alinhem e "amplifiquem" quando o sinal dos diferentes canais for adicionado. Os sons oriundos de outras regiões do espaço não se alinham e, portanto, não são "amplificados".
O ponto no espaço para o qual os sons se alinham usando um certo conjunto de atrasos é chamado de foco da matriz do microfone (ou ponto focal). Na realidade, no entanto, o foco não é um ponto ideal, mas uma pequena (ish) (dependendo da matriz) região do espaço para a qual os sons se alinham bem. O tamanho dessa região é chamado de tamanho do ponto focal.
A geometria (tamanho, forma, etc) depende dos detalhes exatos da matriz: número de microfones, espaçamento entre microfones, conteúdo de frequência dos sinais de interesse. Veja, por exemplo, este artigo .
Para obter mais informações, procure textos sobre o foco em "matrizes faseadas" ou "matrizes lineares" em ultrassom. O feixe de luz pode ser usado na recepção (para amplificar sinais de um determinado ponto no espaço) ou na emissão (para criar um ponto "alto" em uma sala). Os princípios são idênticos: basta substituir "microfone" por "alto-falante" em seu pensamento.
Em relação ao procedimento de calibração: você está correto. O procedimento que descrevi é muito simplista. Só funciona bem se você puder criar o aplauso de calibração a uma distância muito maior do que a região do espaço em que está interessado. (Ou seja, para garantir uma onda simples)
Se isso não for possível, você deve levar em consideração a posição do aplauso. Nesse caso, o procedimento mais simples é corrigir os atrasos por correlação cruzada, conforme descrito, mas adicionar a curvatura da frente de onda ao sinal, aplicando um conjunto de atrasos "formação de feixe inverso" calculado com a posição da origem do aplaudir. (Ou seja, se você usar uma variável de profundidade + t0 (ou + z0) em seu algoritmo de formação de feixe "normal", precisará usar -t0 (ou -z0) para o algoritmo de formação de feixe inverso.)
Qual é o objetivo dessa calibração: elimina quaisquer erros devido às diferentes placas de som que iniciam sua gravação em momentos ligeiramente diferentes. Isso normalmente impediria que os sinais se alinhassem corretamente, mesmo com atrasos corretos e, assim, impediria o efeito de amplificação que você estava procurando.