Pular para o conteúdo principal

Microfone

Monitoramento de entrada de áudio ao vivo com visualizações de forma de onda em tempo real, medição de volume e diagnósticos detalhados do motor de áudio.

Painel de controle do Microfone com botão de gravação, informações do dispositivo ativo, seletor de dispositivo de entrada e o início dos Níveis de Volume.
Barra de status da forma de onda de áudio ao vivo, gráfico de Análise de Volume com seletor de intervalo de tempo e painel de Detalhes Técnicos.

Visão geral

A ferramenta Microfone transforma seu dispositivo em um monitor de áudio ao vivo. Ela captura áudio do dispositivo de entrada selecionado usando o AVAudioEngine da Apple, processa o buffer PCM em tempo real e apresenta os resultados por meio de múltiplos painéis de visualização: um medidor circular de amplitude, uma forma de onda de áudio bruta, um gráfico histórico de volume contínuo e um painel abrangente de detalhes técnicos. Você pode alternar entre todos os dispositivos de entrada de áudio disponíveis — microfone embutido, headsets Bluetooth (incluindo AirPods via HFP), microfones de headset com fio, interfaces de áudio USB, CarPlay e AirPlay — sem sair da ferramenta.

O monitoramento inicia automaticamente quando a ferramenta é aberta e a permissão para microfone foi concedida. A captura de áudio para automaticamente quando você sai da ferramenta ou o app entra em segundo plano, garantindo que não haja uso residual do microfone.

Sumário


Cabeçalho da Tela

No topo da tela, um cabeçalho exibe:

  • Título Monitor de Microfone.
  • Um indicador de status de gravação — um ponto colorido com um rótulo:
    • Ativo (verde) — o motor de áudio está rodando e capturando áudio.
    • Inativo (cinza) — o monitoramento está parado.
  • Uma contagem de dispositivos — o número de dispositivos de entrada de áudio atualmente disponíveis (ex.: "1 Dispositivo").

Painel de Controle do Microfone

O painel de controle do Microfone é o primeiro cartão na tela. Seu cabeçalho mostra um selo GRAVANDO ou EM ESPERA com um ponto vermelho pulsante quando está gravando.

Botão de Gravação

Um botão circular grande no centro do painel:

  • Ícone de microfone (azul) — toque para iniciar o monitoramento. O motor de áudio inicia, os dados da forma de onda começam a fluir e todos os painéis de visualização são ativados.
  • Ícone de parar (vermelho) — toque para parar o monitoramento. O motor de áudio é desmontado e as visualizações congelam.

Um rótulo abaixo do botão indica TOQUE PARA GRAVAR ou TOQUE PARA PARAR dependendo do estado atual.

Seção de Informações do Dispositivo

Abaixo do botão de gravação, o painel mostra informações sobre o dispositivo de entrada de áudio ativo:

  • Dispositivo — o nome do dispositivo de entrada ativo (ex.: "Microfone Embutido", "AirPods Pro" ou "Sem Microfone" quando nenhum é detectado).

  • Três cartões de status em uma grade:

    CartãoDescrição
    StatusAtivo (verde) ou Inativo (vermelho).
    TipoCategoria do dispositivo: Interno, Headset, Bluetooth, USB Audio, CarPlay, AirPlay ou Externo.
    QualidadeALTA QUALIDADE quando a taxa de amostragem é 48 kHz ou superior, PADRÃO caso contrário.
  • Dois cartões de especificações técnicas abaixo da grade:

    CartãoDescrição
    Taxa de AmostragemA taxa de amostragem da sessão de áudio ativa (ex.: "48.0 kHz").
    CanaisO número máximo de canais de entrada suportados pelo dispositivo.

Seletor de Dispositivo de Entrada de Áudio

O painel seletor de dispositivo lista todos os dispositivos de entrada de áudio disponíveis e permite alternar entre eles.

  • Microfone Embutido — sempre listado primeiro com o subtítulo “Microfone do dispositivo interno”. Selecionado por padrão quando nenhum dispositivo externo está conectado.
  • Dispositivos externos — listados abaixo do microfone embutido, cada um mostrando:
    • O nome do dispositivo (ex.: "AirPods Pro", "Microfone USB").

    • Um subtítulo descrevendo o tipo de conexão:

      Tipo de PortaSubtítulo
      Bluetooth A2DPBluetooth A2DP
      Bluetooth HFPBluetooth Hands-Free
      Bluetooth LEBluetooth LE
      Fones de ouvidoFones de ouvido
      Microfone de HeadsetMicrofone de Headset
      USB AudioUSB Audio
      OutroDispositivo Externo

Cada linha de dispositivo tem um indicador de botão de rádio (preenchido quando selecionado) e um ícone de marca de seleção para o dispositivo ativo. Tocar em um dispositivo diferente alterna a entrada de áudio. Enquanto o motor de áudio reconfigura, um indicador de carregamento aparece brevemente sobre a tela.

Quando um dispositivo é conectado ou desconectado (ex.: ao plugar AirPods), a lista atualiza automaticamente. A ferramenta seleciona automaticamente o melhor dispositivo disponível usando a ordem de prioridade: Bluetooth HFP primeiro, depois microfone de headset, depois microfone embutido.


Painel de Níveis de Volume

O painel de Níveis de Volume fornece uma visão detalhada em tempo real da amplitude atual do áudio.

Medidor Circular de Amplitude

Um medidor circular no centro do painel que se preenche proporcionalmente à amplitude atual (0–100%). O arco usa um gradiente angular do verde (baixo) passando por amarelo e laranja até vermelho (alto). A porcentagem da amplitude atual é exibida como um número grande no centro do medidor.

Barra de Volume

Abaixo do medidor, uma barra horizontal se preenche da esquerda para a direita com base na amplitude atual. A barra usa o mesmo gradiente verde a vermelho e inclui marcações de escala em 0%, 25%, 50%, 75% e 100%.

Métricas de Volume

Quatro cartões métricos são exibidos em uma grade 2x2:

MétricaDescrição
AtualA amplitude instantânea como porcentagem, codificada por cor conforme o nível (verde < 30%, amarelo < 60%, laranja < 85%, vermelho >= 85%).
PicoO valor máximo de amplitude no buffer histórico da forma de onda atual.
RMSO nível root-mean-square calculado a partir do histórico da forma de onda, representando a energia média do sinal.
dBFSA amplitude atual expressa em decibéis relativos à escala completa, calculada como 20 × log10(amplitude). Valores variam aproximadamente de -80 dB (silêncio) a 0 dB (escala completa).

Barra de Status de Volume

Na parte inferior do painel, uma barra de status mostra:

  • Qualidade do sinal — “SINAL FORTE” (verde) quando dBFS está acima de -20 dB, ou “SINAL MODERADO” (laranja) caso contrário.
  • Aviso de saturação — um rótulo vermelho “CLIPPING” com ícone de alerta aparece quando a amplitude ultrapassa 95%, indicando que o sinal de áudio pode estar distorcendo.

Painel de Forma de Onda de Áudio ao Vivo

O painel de Forma de Onda de Áudio ao Vivo exibe os dados brutos PCM do áudio como uma visualização em estilo osciloscópio em tempo real.

Visualização da Forma de Onda

A área principal mostra uma forma de onda rolante renderizada a partir das amostras brutas do buffer de áudio (até 1024 amostras por quadro). A forma de onda é desenhada em ciano sobre um fundo escuro com uma grade profissional sobreposta:

  • Grade — linhas de referência verticais e horizontais para alinhamento visual.
  • Linha central — uma linha ciana tracejada marcando o ponto de cruzamento zero.
  • Marcadores de escala em dB — rótulos na borda esquerda em +0 dB, -20 dB, -40 dB, -60 dB e -∞.
  • Efeito de brilho — um brilho radial sutil atrás da forma de onda que intensifica com a força do sinal.
  • Reflexo — uma cópia espelhada tênue da forma de onda abaixo da linha central para profundidade visual.

Um indicador AO VIVO com ponto verde pulsante e a contagem atual de amostras (ex.: “1024 amostras”) aparece no cabeçalho do painel.

Indicadores de Nível de Sinal

Na borda direita da área da forma de onda, um medidor vertical estilo LED de 10 segmentos acende proporcionalmente à força do sinal. Os segmentos são codificados por cor: verde (baixo), amarelo (moderado), laranja (alto), vermelho (muito alto).

Barra de Status da Forma de Onda

A barra inferior do painel exibe:

  • Sinal — a força do sinal RMS como porcentagem, codificada por cor (cinza < 20%, verde < 50%, laranja < 80%, vermelho >= 80%).
  • Pico — o valor máximo da amostra do buffer bruto atual.
  • Taxa de amostragem e profundidade de bits — exibidos à direita (ex.: “48kHz 24-bit”).

Painel de Análise de Volume

O painel de Análise de Volume exibe um gráfico histórico contínuo da amplitude do áudio ao longo do tempo, funcionando como um medidor de volume tradicional.

Seletor de Intervalo de Tempo

No cabeçalho do painel, um controle segmentado permite escolher o intervalo de tempo exibido no gráfico:

IntervaloAmostras
1s50
5s250
10s500

Gráfico de Volume

A área principal renderiza um gráfico preenchido da forma de onda do histórico de amplitude (até 60 pontos de dados no buffer contínuo). O gráfico usa um preenchimento com gradiente verde a vermelho baseado no nível de amplitude, com um efeito sutil de brilho e um reflexo espelhado abaixo.

Linhas de referência são desenhadas:

  • Uma grade detalhada com linhas principais a cada 50% e linhas secundárias a cada 10%.
  • Linhas de referência tracejadas em 25%, 50% e 75% de amplitude, codificadas por cor conforme o nível.
  • Uma escala percentual à esquerda (0%–100%).
  • Uma escala de tempo na parte inferior mostrando o intervalo de amostras.

Barras do Medidor VU

Na borda direita do gráfico, um medidor VU vertical de 20 segmentos se preenche de baixo para cima com base na amplitude atual. Os segmentos são codificados por cor: verde (0–50%), amarelo (50–75%), laranja (75–90%), vermelho (90–100%).

Barra de Estatísticas

Na parte inferior do painel, quatro estatísticas são exibidas lado a lado:

EstatísticaDescrição
MínA amplitude mínima no histórico atual da forma de onda (azul).
MáxA amplitude máxima no histórico atual (vermelho).
MédiaA amplitude média no buffer histórico (amarelo).
AgoraO valor de amplitude mais recente, codificado por cor conforme o nível.

Painel de Detalhes Técnicos

O painel de Detalhes Técnicos é um dashboard abrangente que expõe o estado completo do motor de áudio, sessão de áudio e configuração de hardware. Todos os valores são atualizados a cada 0,5 segundos enquanto o monitoramento está ativo.

Métricas de Desempenho

MétricaDescrição
Taxa de AmostragemA taxa de amostragem da sessão de áudio ativa (ex.: "48.0 kHz").
Tamanho do BufferO tamanho do buffer do motor de áudio em frames (ex.: 1024).
Latência de EntradaA latência de entrada reportada pela sessão de áudio, em milissegundos. Destacada quando ultrapassa 10 ms.
Buffer de I/OA duração do buffer de entrada/saída em milissegundos.

Níveis de Áudio

MétricaDescrição
Nível de PicoA amplitude de pico como porcentagem. Destacada em vermelho quando clipping é detectado (acima de 95%).
Nível RMSA amplitude root-mean-square como porcentagem.
dBFSDecibéis relativos à escala completa. Destacado em amarelo quando acima de -20 dB.
Qualidade do SinalDerivada da relação sinal-ruído: Excelente (SNR > 40 dB), Boa (SNR > 20 dB), Regular (SNR > 10 dB) ou Ruim.

Configuração do Dispositivo

MétricaDescrição
Rota AtualO nome do dispositivo de entrada de áudio atualmente ativo.
Canais de EntradaO número máximo de canais de entrada disponíveis.
Padrão PolarO padrão polar preferido da fonte de dados de entrada (ex.: Omnidirecional).

Estado da Sessão

MétricaDescrição
Status do MotorRodando (verde) ou Parado (vermelho).
CategoriaA categoria AVAudioSession ativa (ex.: PlayAndRecord).
ModoO modo da sessão de áudio ativa (ex.: VoiceChat).
OpçõesAs opções da categoria ativa (ex.: "BT • Mix").

Mudanças de Rota

Quando uma mudança de rota de áudio é detectada, esta seção aparece mostrando:

MétricaDescrição
Última MudançaO timestamp da mudança de rota mais recente.
MotivoO motivo da mudança: Novo Dispositivo Disponível, Dispositivo Desconectado, Categoria Alterada, Sobrescrição de Rota, Despertar do Sono, Sem Rota Adequada, Mudança de Configuração ou Desconhecido.

Informações do Sistema

MétricaDescrição
TimestampO horário atual do sistema.
AmostrasO número de amostras no buffer bruto da forma de onda atual.
Tempo de AtividadeO tempo de atividade do sistema em segundos.

Desempenho Adicional

MétricaDescrição
Latência de SaídaA latência de saída reportada pela sessão de áudio, em milissegundos.
Taxa PreferidaA taxa de amostragem preferida solicitada pela ferramenta.
Buffer PreferidoA duração preferida do buffer de I/O solicitada pela ferramenta, em milissegundos.
Canais PreferidosO número preferido de canais de entrada.

Detalhes do Motor

MétricaDescrição
Formato de EntradaA descrição completa AVAudioFormat do nó de entrada do motor de áudio (taxa de amostragem, canais, profundidade de bits, interleaving).
Formato de SaídaA descrição completa AVAudioFormat do nó de saída do motor de áudio.
Contagem de NósO número de nós conectados ao motor de áudio.
Máximo de FramesA contagem máxima de frames para renderização manual (exibida somente quando o motor está em modo de renderização manual).

Métricas de Qualidade

MétricaDescrição
Nível MédioA amplitude média no buffer histórico da forma de onda.
Faixa DinâmicaA diferença entre o nível de pico em dBFS e o nível de ruído (-60 dB referência), em dB.
Nível de RuídoO nível RMS expresso em dBFS, representando o nível de ruído de fundo.
Clipping“Sim” (vermelho, destacado) se a amplitude de pico ultrapassa 95%, “Não” (verde) caso contrário.

Detalhes do Estado da Sessão

MétricaDescrição
Sessão Ativa“Áudio em Segundo Plano” se outro áudio estiver tocando, “Ativa” caso contrário.
Dica de Áudio“Deve Silenciar” se o sistema recomenda silenciar áudio secundário, “Pode Misturar” caso contrário.

Detalhes de Hardware

MétricaDescrição
Máximo de Canais de SaídaO número máximo de canais de saída suportados.
Entrada DisponívelSe o hardware de entrada de áudio está disponível.
Ganho de EntradaO valor atual do ganho de entrada (se configurável), ou N/D.
Fonte de Dados de EntradaO nome da fonte de dados de entrada ativa (ex.: “Inferior”, “Frontal”, “Traseira”).
Volume do SistemaO volume atual de saída do sistema (0,00–1,00).

Informações do Formato da Sessão

A descrição bruta da fonte de dados de entrada ativa, fornecendo a string completa de detalhes em nível de sistema.


Aviso de Privacidade

Na parte inferior da tela, um aviso de privacidade com ícone de escudo informa que nenhum dado de áudio é armazenado, gravado ou transmitido — todo o processamento ocorre localmente no dispositivo em tempo real.


Permissões

  • Permissão para microfone — necessária para toda a funcionalidade. O prompt de permissão do sistema aparece automaticamente na primeira vez que o motor de áudio é inicializado.
  • Se a permissão não foi determinada, o Lirum exibe uma tela de permissão com um botão Conceder Acesso que dispara o prompt do sistema.
  • Se a permissão foi negada anteriormente, o Lirum exibe um botão Abrir Configurações para redirecionar ao app Ajustes do iOS, onde o usuário pode reativar o acesso ao microfone.

Detalhes Técnicos

  • A ferramenta usa AVAudioEngine com um tap de entrada no barramento 0 para capturar buffers de áudio PCM. Um tamanho de buffer de 1024 frames é usado.
  • A sessão de áudio é configurada com a categoria .playAndRecord e modo .voiceChat, com as opções .allowBluetooth e .mixWithOthers ativadas. Isso garante que dispositivos Bluetooth HFP (como AirPods) sejam detectáveis como fontes de entrada.
  • Uma duração preferida do buffer de I/O de 5 ms é solicitada para visualizações responsivas.
  • Para dispositivos não Bluetooth, uma taxa de amostragem preferida de 48 kHz é solicitada. Para dispositivos Bluetooth HFP, a taxa de amostragem é deixada para o sistema para evitar conflitos de formato.
  • A amplitude RMS é calculada a partir do buffer PCM usando a fórmula: sqrt(sum(sample^2) / count), depois escalada por um fator 5 e limitada ao intervalo [0, 1].
  • O dBFS (decibéis relativos à escala completa) é calculado como 20 * log10(amplitude).
  • Atualizações da forma de onda bruta são limitadas a 60 fps para evitar atualizações excessivas da interface.
  • O buffer histórico da forma de onda mantém até 60 pontos de dados, processados a partir do buffer de amplitude a cada frame do display link.
  • Um CADisplayLink rodando até 120 fps impulsiona as atualizações do histórico da forma de onda, calculando a média das amostras de amplitude coletadas entre frames.
  • Detalhes do motor de áudio são consultados a cada 0,5 segundos via timer.
  • Ao alternar dispositivos de entrada, o motor de áudio é completamente desmontado e recriado com uma nova sessão de áudio para garantir o formato correto. Uma sobreposição de carregamento é exibida durante a transição (tempo mínimo de exibição de 300 ms para UX suave, com timeout fallback de 2 segundos).
  • Tratamento de formato Bluetooth — para dispositivos Bluetooth, o tap é instalado com formato nil para deixar o sistema escolher o formato apropriado automaticamente, evitando erros de formato inválido que podem ocorrer com dispositivos HFP.
  • Mudanças de rota de áudio são observadas via AVAudioSession.routeChangeNotification. Quando um novo dispositivo aparece ou um dispositivo existente é removido, a ferramenta atualiza automaticamente a lista de dispositivos e, se estiver gravando, reinicia com o melhor dispositivo disponível. Mudanças de rota são limitadas (intervalo mínimo de 300 ms) para evitar loops de reinício.
  • Prioridade de seleção automática de dispositivo: Bluetooth HFP, microfone de headset, microfone embutido.
  • Quando a ferramenta desaparece ou o app entra em segundo plano, o motor de áudio é parado e a sessão de áudio é totalmente desativada (categoria alterada para .ambient e desativada com .notifyOthersOnDeactivation) para liberar o microfone e permitir que outros apps retomem a reprodução de áudio.

Notas e Limitações

  • A ferramenta monitora níveis de entrada de áudio ao vivo. Não grava, salva ou transmite nenhum dado de áudio.
  • Ao alternar dispositivos de entrada, o Lirum exibe brevemente um indicador de carregamento enquanto o motor de áudio reconfigura. Isso normalmente leva menos de um segundo.
  • Headsets Bluetooth e microfones USB podem reportar níveis de ganho e taxas de amostragem diferentes do microfone embutido.
  • Em dispositivos Bluetooth HFP (ex.: AirPods), a taxa de amostragem pode ser menor (ex.: 16 kHz ou 8 kHz) devido às limitações do Hands-Free Profile.
  • O indicador de clipping é acionado quando a amplitude ultrapassa 95% da escala completa. Clipping persistente pode indicar ganho de entrada muito alto ou fonte sonora muito próxima do microfone.
  • O monitoramento de áudio para automaticamente quando o app entra em segundo plano ou é minimizado, garantindo que não haja acesso residual ao microfone.