Saltar para o conteúdo principal

Microfone

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

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

Visão geral

A ferramenta Microfone transforma o seu dispositivo num monitor de áudio ao vivo. Captura áudio do dispositivo de entrada selecionado usando o AVAudioEngine da Apple, processa o buffer PCM em tempo real e apresenta os resultados através de múltiplos painéis de visualização: um indicador circular de amplitude, uma forma de onda de áudio bruta, um gráfico histórico de volume em movimento e um painel abrangente de detalhes técnicos. Pode alternar entre todos os dispositivos de entrada de áudio disponíveis — microfone incorporado, auscultadores Bluetooth (incluindo AirPods via HFP), microfones de auscultadores com fio, interfaces de áudio USB, CarPlay e AirPlay — sem sair da ferramenta.

A monitorização inicia-se automaticamente quando a ferramenta é aberta e a permissão para o microfone foi concedida. A captura de áudio para automaticamente quando sai da ferramenta ou a aplicação entra em segundo plano, garantindo que não há uso persistente do microfone.

Índice


Cabeçalho do Ecrã

No topo do ecrã, um cabeçalho exibe:

  • O título Monitor de Microfone.
  • Um indicador de estado de gravação — um ponto colorido com uma etiqueta:
    • Ativo (verde) — o motor de áudio está a funcionar e a capturar áudio.
    • Inativo (cinzento) — a monitorização está parada.
  • Uma contagem de dispositivos — o número de dispositivos de entrada de áudio atualmente disponíveis (ex.: "1 Dispositivo").

Painel de Controlo do Microfone

O painel de Controlo do Microfone é o primeiro cartão no ecrã. O seu cabeçalho mostra um distintivo GRAVAÇÃO ou EM ESPERA com um ponto vermelho pulsante quando está a gravar.

Botão de Gravação

Um botão circular grande no centro do painel:

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

Uma etiqueta abaixo do botão indica TOQUE PARA GRAVAR ou TOQUE PARA PARAR dependendo do estado atual.

Secção de Informação do Dispositivo

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

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

  • Três cartões de estado numa grelha:

    CartãoDescrição
    EstadoAtivo (verde) ou Inativo (vermelho).
    TipoA categoria do dispositivo: Interno, Auscultadores, Bluetooth, Áudio USB, 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 grelha:

    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 Incorporado — listado sempre em primeiro lugar com o subtítulo "Microfone do dispositivo interno". Selecionado por defeito quando nenhum dispositivo externo está ligado.
  • Dispositivos externos — listados abaixo do microfone incorporado, cada um mostrando:
    • O nome do dispositivo (ex.: "AirPods Pro", "Microfone USB").

    • Um subtítulo que descreve o tipo de ligação:

      Tipo de PortaSubtítulo
      Bluetooth A2DPBluetooth A2DP
      Bluetooth HFPBluetooth Hands-Free
      Bluetooth LEBluetooth LE
      AuscultadoresAuscultadores
      Microfone de AuscultadoresMicrofone de Auscultadores
      Áudio USBÁudio USB
      OutroDispositivo Externo

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

Quando um dispositivo é ligado ou desligado (ex.: ligar AirPods), a lista atualiza-se automaticamente. A ferramenta seleciona automaticamente o melhor dispositivo disponível usando uma ordem de prioridade: Bluetooth HFP primeiro, depois microfone de auscultadores, depois microfone incorporado.


Painel de Níveis de Volume

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

Indicador Circular de Amplitude

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

Barra de Volume

Abaixo do indicador, uma barra horizontal preenche-se 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 numa grelha 2x2:

MétricaDescrição
AtualA amplitude instantânea em percentagem, 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 máxima, calculada como 20 × log10(amplitude). Valores variam aproximadamente de -80 dB (silêncio) a 0 dB (escala máxima).

Barra de Estado de Volume

Na parte inferior do painel, uma barra de estado 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 — uma etiqueta vermelha "SATURAÇÃO" com ícone de aviso aparece quando a amplitude ultrapassa 95%, indicando que o sinal de áudio pode estar a distorcer.

Painel de Forma de Onda de Áudio ao Vivo

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

Visualização da Forma de Onda

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

  • Grelha — linhas de referência verticais e horizontais para alinhamento visual.
  • Linha central — uma linha ciana tracejada que marca o ponto de cruzamento zero.
  • Marcadores de escala dB — etiquetas na borda esquerda em +0 dB, -20 dB, -40 dB, -60 dB e -∞.
  • Efeito de brilho — um brilho radial subtil 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 um 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 com 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 Estado da Forma de Onda

A barra inferior do painel exibe:

  • Sinal — a força RMS do sinal em percentagem, codificada por cor (cinzento < 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 — mostrados à direita (ex.: "48kHz 24-bit").

Painel de Análise de Volume

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

Seletor de Intervalo Temporal

No cabeçalho do painel, um controlo segmentado permite escolher o intervalo temporal 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 em movimento). O gráfico usa um preenchimento com gradiente verde a vermelho baseado no nível de amplitude, com um efeito de brilho subtil e um reflexo espelhado abaixo.

São desenhadas linhas de referência:

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

Barras do Medidor VU

Na borda direita do gráfico, um medidor VU vertical com 20 segmentos preenche-se 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 ao longo do 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 atualizam-se a cada 0,5 segundos enquanto a monitorização está ativa.

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 a latência excede 10 ms.
Buffer 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 em percentagem. Destacada a vermelho quando é detetada saturação (acima de 95%).
Nível RMSA amplitude root-mean-square em percentagem.
dBFSDecibéis relativos à escala máxima. Destacado a amarelo quando acima de -20 dB.
Qualidade do SinalDerivada da relação sinal-ruído: Excelente (SNR > 40 dB), Boa (SNR > 20 dB), Razoável (SNR > 10 dB) ou Fraca.

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
Estado do MotorA funcionar (verde) ou parado (vermelho).
CategoriaA categoria AVAudioSession ativa (ex.: PlayAndRecord).
ModoO modo da sessão de áudio ativo (ex.: VoiceChat).
OpçõesAs opções da categoria ativa (ex.: "BT • Mix").

Alterações de Rota

Quando é detetada uma alteração na rota de áudio, esta secção aparece mostrando:

MétricaDescrição
Última AlteraçãoO timestamp da alteração de rota mais recente.
MotivoO motivo da alteração: Novo Dispositivo Disponível, Dispositivo Desligado, Categoria Alterada, Substituição de Rota, Acordar do Sono, Sem Rota Adequada, Alteração de Configuração ou Desconhecido.

Informação do Sistema

MétricaDescrição
TimestampA hora 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 do buffer I/O preferida 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 ligados ao motor de áudio.
Frames MáximosO número máximo de frames para renderização manual (mostrado apenas quando o motor está em modo de renderização manual).

Métricas de Qualidade

MétricaDescrição
Nível MédioA amplitude média ao longo do buffer histórico da forma de onda.
Intervalo DinâmicoA diferença entre o nível de pico dBFS e o ruído de fundo (-60 dB referência), em dB.
Ruído de FundoO nível RMS expresso em dBFS, representando o nível de ruído ambiente.
Saturação"Sim" (vermelho, destacado) se a amplitude de pico exceder 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 a tocar, "Ativa" caso contrário.
Sugestão de Áudio"Deve Silenciar" se o sistema recomendar silenciar áudio secundário, "Pode Misturar" caso contrário.

Detalhes de Hardware

MétricaDescrição
Máx. 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ção do Formato da Sessão

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


Aviso de Privacidade

Na parte inferior do ecrã, um aviso de privacidade com ícone de escudo indica 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 pedido de permissão do sistema aparece automaticamente na primeira inicialização do motor de áudio.
  • Se a permissão ainda não foi determinada, o Lirum mostra um ecrã de permissão com um botão Conceder Acesso que dispara o pedido do sistema.
  • Se a permissão foi previamente negada, o Lirum mostra um botão Abrir Definições para redirecionar para a app Definições do iOS onde o utilizador pode reativar o acesso ao microfone.

Detalhes Técnicos

  • A ferramenta usa AVAudioEngine com um tap de entrada no bus 0 para capturar buffers de áudio PCM. É usado um tamanho de buffer de 1024 frames.
  • A sessão de áudio é configurada com a categoria .playAndRecord e modo .voiceChat, com as opções .allowBluetooth e .mixWithOthers ativadas. Isto garante que dispositivos Bluetooth HFP (como AirPods) são detetáveis como fontes de entrada.
  • É solicitada uma duração preferida do buffer I/O de 5 ms para visualizações responsivas.
  • Para dispositivos não Bluetooth, é solicitada uma taxa de amostragem preferida de 48 kHz. Para dispositivos Bluetooth HFP, a taxa de amostragem é deixada ao 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 de 5 e limitada ao intervalo [0, 1].
  • O dBFS (decibéis relativos à escala máxima) é calculado como 20 * log10(amplitude).
  • As 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 em cada frame do display link.
  • Um CADisplayLink a até 120 fps conduz as atualizações do histórico da forma de onda ao calcular a média das amostras de amplitude recolhidas entre frames.
  • Os detalhes do motor de áudio são consultados a cada 0,5 segundos via temporizador.
  • Ao alternar dispositivos de entrada, o motor de áudio é completamente desligado e recriado com uma nova sessão de áudio para garantir o formato correto. É exibida uma sobreposição de carregamento durante a transição (tempo mínimo de exibição de 300 ms para UX suave, com timeout de fallback de 2 segundos).
  • Gestão de formato Bluetooth — para dispositivos Bluetooth, o tap é instalado com formato nil para permitir que o sistema escolha automaticamente o formato adequado, evitando erros de formato inválido que podem ocorrer com dispositivos HFP.
  • As alterações 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 a gravar, reinicia com o melhor dispositivo disponível. As alterações de rota são limitadas (intervalo mínimo de 300 ms) para evitar ciclos de reinício.
  • Prioridade de seleção automática de dispositivo: Bluetooth HFP, microfone de auscultadores, microfone incorporado.
  • Quando a ferramenta desaparece ou a app entra em segundo plano, o motor de áudio é parado e a sessão de áudio é totalmente desativada (alterada para categoria .ambient e desativada com .notifyOthersOnDeactivation) para libertar o microfone e permitir que outras apps retomem a reprodução de áudio.

Notas e Limitações

  • A ferramenta monitoriza níveis de entrada de áudio ao vivo. Não grava, guarda nem transmite qualquer dado de áudio.
  • Ao alternar dispositivos de entrada, o Lirum mostra brevemente um indicador de carregamento enquanto o motor de áudio se reconfigura. Isto normalmente demora menos de um segundo.
  • Auscultadores Bluetooth e microfones USB podem reportar níveis de ganho e taxas de amostragem diferentes do microfone incorporado.
  • Em dispositivos Bluetooth HFP (ex.: AirPods), a taxa de amostragem pode ser mais baixa (ex.: 16 kHz ou 8 kHz) devido às limitações do Hands-Free Profile.
  • O indicador de saturação é ativado quando a amplitude ultrapassa 95% da escala máxima. Saturação persistente pode indicar que o ganho de entrada está demasiado alto ou que a fonte sonora está demasiado próxima do microfone.
  • A monitorização de áudio para automaticamente quando a app entra em segundo plano ou é minimizada, garantindo que não há acesso persistente ao microfone.