1 pontos por GN⁺ 2025-03-25 | 1 comentários | Compartilhar no WhatsApp
  • Triforce implementa um beamformer adaptativo Minimum Variance Distortionless Response para o array de microfones dos notebooks Apple Silicon
  • Modelos compatíveis: MacBook Pro/Air com M1 ou superior
  • Os notebooks Apple Silicon acima têm microfones dispostos em triângulo ou em linha reta
  • A Apple tenta implementar um beamformer adaptativo no espaço do usuário para separar o sinal desejado do ruído de fundo
  • Sem beamforming, o array é sensível demais e omnidirecional demais para ser útil
  • Para uso prático fora do macOS, é necessário um beamformer
  • Lista de modelos compatíveis
    • MacBook Pro 13" (M1/M2)
    • MacBook Air 13" (M1/M2)
    • MacBook Pro 14" (M1 Pro/Max, M2 Pro/Max)
    • MacBook Pro 16" (M1 Pro/Max, M2 Pro/Max)
    • MacBook Air 15" (M2)

Gerenciando expectativas

  • É muito difícil encontrar literatura acessível sobre tópicos de DSP, especialmente beamforming adaptativo de banda larga
  • Este projeto é uma tentativa de beamformer baseada em conhecimento de matemática de engenharia de primeiro ano e em princípios obtidos de páginas da web e PDFs
  • No momento, não se deve esperar que ele supere a implementação da Apple
  • Patches para melhorias são sempre bem-vindos

Limitações conhecidas

  • O nalgebra não faz otimizações SIMD explícitas e depende da autovetorização do LLVM
  • O desempenho e a eficiência das rotinas de matemática matricial não são bons
  • Não realiza decomposição em banda larga por causa da carga computacional adicional
  • Sem suporte a SIMD/NEON, é lento demais para uso como plugin de áudio em tempo real
  • A saída só suporta mono
  • O processamento matricial adicional para simular saída estéreo é computacionalmente pesado demais

1 comentários

 
GN⁺ 2025-03-25
Comentários do Hacker News
  • Há 20 anos, havia um modelo conversível Toshiba Tablet PC com um array de microfones com formação de feixe. Era possível definir por software a direção da gravação

    • Isso era útil em aulas, pois dava para ajustar o feixe na direção do professor para gravar
    • Desde então, nunca mais vi esse tipo de recurso
  • Minha dissertação de mestrado inacabada era sobre usar os microfones de smartphones para localizar e separar alto-falantes em 3D

    • A taxa de amostragem varia um pouco entre dispositivos
    • As características espectrais dos microfones de consumo variam bastante
    • O som reflete por toda parte, especialmente em paredes de concreto
    • Um carro é parecido com uma câmara anecoica de fácil acesso
    • A transformada de Fourier de uma gaussiana é uma gaussiana, o que é útil para estimativa de frequência
  • Isso fez perceber quanto trabalho é necessário para rodar Linux em Macs com Apple Silicon

    • Os microfones integrados quase não são usados
    • Nem tudo na Apple é simples
  • Mesmo em hardware de notebook barato, é possível obter resultados surpreendentes com técnicas de DSP por software

    • O trabalho de áudio do Asahi também pode ser aplicado a notebooks comuns
    • Com o plugin de síntese de harmônicos graves Bankstown e EQ por convolução, obtém-se resultados impressionantes
  • Vale considerar o faer para otimização com SIMD

    • Minha experiência com a biblioteca pulp não foi boa, mas se o objetivo for principalmente acelerar operações de álgebra linear, deve funcionar bem
    • Há posts de blog e podcasts sobre SIMD em Rust planejados
  • Pergunta sobre o array de microfones dos notebooks Apple Silicon

    • Fico curioso se os modelos M2/M3 têm um array de microfones semelhante ou se apenas não foram testados
    • Também há dúvida sobre se isso é suportado no Linux e no macOS
  • Parece que a Apple adota uma abordagem complexa demais para microfones, assim como faz com os alto-falantes

    • Como usuário de MBP, fiquei impressionado com a implementação dos alto-falantes
    • Não sei além da disposição dos drivers, mas parece que estão usando truques para extrair desempenho de alto-falantes pequenos
  • Discussão geral sobre o relatório de progresso mais recente do Asahi Linux

    • Microfones PDM são muito omnidirecionais e sensíveis
    • A formação de feixe é necessária
    • O trabalho anterior com saída de áudio dos alto-falantes foi reutilizado para a entrada de microfone
    • Graças ao PipeWire e ao WirePlumber, foi simples conectar uma cadeia de DSP para os microfones
  • Seria bom se isso fosse implementado de forma que outros fabricantes também pudessem montar facilmente arrays de microfones