跳到主要内容

麦克风

实时音频输入监控,配备实时波形可视化、音量计量和详细的音频引擎诊断功能。

麦克风控制面板,包含录音按钮、活动设备信息、输入设备选择器以及音量级别区域的开始部分。
实时音频波形状态栏、带时间范围选择器的音量分析图表以及技术细节面板。

概览

麦克风工具可将您的设备变成实时音频监控器。它使用 Apple 的 AVAudioEngine 从选定的输入设备捕获音频,实时处理 PCM 缓冲区,并通过多个可视化面板呈现结果:圆形振幅仪表、原始音频波形、滚动音量历史图表以及综合技术细节仪表板。您可以在所有可用的音频输入设备之间切换——内置麦克风、蓝牙耳机(包括通过 HFP 连接的 AirPods)、有线耳机麦克风、USB 音频接口、CarPlay 和 AirPlay——无需离开工具。

当工具打开且已授予麦克风权限时,监控会自动开始。当您离开工具或应用进入后台时,音频捕获会自动停止,确保不会持续占用麦克风。

目录


屏幕顶栏

屏幕顶部的标题栏显示:

  • 麦克风监控器标题。
  • 录音状态指示器——带标签的彩色圆点:
    • 活动(绿色)——音频引擎正在运行并捕获音频。
    • 非活动(灰色)——监控已停止。
  • 设备计数——当前可用的音频输入设备数量(例如"1 个设备")。

麦克风控制面板

麦克风控制面板是屏幕上的第一个卡片。其标题栏显示 RECORDING(录音中)或 STANDBY(待机)徽章,录音时会有闪烁的红点。

录音按钮

面板中央的大圆形按钮:

  • 麦克风图标(蓝色)——点击开始监控。音频引擎启动,波形数据开始流动,所有可视化面板激活。
  • 停止图标(红色)——点击停止监控。音频引擎关闭,可视化冻结。

按钮下方的标签根据当前状态显示 TAP TO RECORD(点击录音)或 TAP TO STOP(点击停止)。

设备信息区域

录音按钮下方,面板显示当前活动音频输入的信息:

  • 设备——活动输入设备的名称(例如"Built-in Microphone"、"AirPods Pro",或未检测到设备时显示"No Microphone")。

  • 网格中的三张状态卡片

    卡片描述
    状态活动(绿色)或非活动(红色)。
    类型设备类别:内置、耳机、蓝牙、USB 音频、CarPlay、AirPlay 或外部。
    质量当采样率为 48 kHz 或以上时显示 HIGH QUALITY(高质量),否则显示 STANDARD(标准)。
  • 网格下方的两张技术规格卡片

    卡片描述
    采样率活动音频会话采样率(例如"48.0 kHz")。
    声道设备支持的最大输入声道数。

音频输入设备选择器

设备选择器面板列出所有可用的音频输入设备,并允许您在它们之间切换。

  • 内置麦克风——始终列在第一位,副标题为"内置设备麦克风"。未连接外部设备时默认选中。
  • 外部设备——列在内置麦克风下方,每个设备显示:
    • 设备名称(例如"AirPods Pro"、"USB Microphone")。

    • 描述连接类型的副标题

      端口类型副标题
      Bluetooth A2DPBluetooth A2DP
      Bluetooth HFP蓝牙免提
      Bluetooth LEBluetooth LE
      Headphones耳机
      Headset Mic耳机麦克风
      USB AudioUSB 音频
      Other外部设备

每个设备行都有一个单选按钮指示器(选中时填充)和一个对勾图标表示活动设备。点击其他设备可切换音频输入。在音频引擎重新配置期间,屏幕上会短暂显示加载指示器。

当设备连接或断开(例如插入 AirPods)时,列表会自动更新。工具会按优先级顺序自动选择最佳可用设备:蓝牙 HFP 优先,然后是耳机麦克风,最后是内置麦克风。


音量级别面板

音量级别面板提供当前音频振幅的详细实时视图。

圆形振幅仪表

面板中央的圆形仪表,根据当前振幅(0-100%)按比例填充。弧形使用从绿色(低)经黄色和橙色到红色(高)的角度渐变。当前振幅百分比以大数字显示在仪表中央。

音量条

仪表下方,一个水平条根据当前振幅从左向右填充。该条使用相同的绿到红渐变,并在 0%、25%、50%、75% 和 100% 处包含刻度标记。

音量指标

四张指标卡片以 2x2 网格显示:

指标描述
当前瞬时振幅百分比,按级别颜色编码(绿色 < 30%、黄色 < 60%、橙色 < 85%、红色 >= 85%)。
峰值当前波形历史缓冲区中的最高振幅值。
RMS从波形历史计算的均方根电平,代表平均信号能量。
dBFS当前振幅以相对于满量程的分贝表示,计算公式为 20 × log10(amplitude)。值范围约从 -80 dB(静音)到 0 dB(满量程)。

音量状态栏

面板底部的状态栏显示:

  • 信号质量——当 dBFS 高于 -20 dB 时显示"STRONG SIGNAL"(强信号,绿色),否则显示"MODERATE SIGNAL"(中等信号,橙色)。
  • 削波警告——当振幅超过 95% 时,会显示带警告图标的红色"CLIPPING"标签,表示音频信号可能正在失真。

实时音频波形面板

实时音频波形面板以实时示波器风格的可视化方式显示原始 PCM 音频数据。

波形可视化

主区域显示从原始音频缓冲区采样(每帧最多 1024 个采样)渲染的滚动波形。波形以青色绘制在深色背景上,并带有专业的网格覆盖层:

  • 网格——用于视觉对齐的垂直和水平参考线。
  • 中心线——标记过零点的虚线青色线。
  • dB 刻度标记——左边缘的标签,位于 +0 dB、-20 dB、-40 dB、-60 dB 和 -∞ 处。
  • 发光效果——波形后面的微妙径向发光,随信号强度增强。
  • 反射——中心线下方波形的淡镜像副本,增加视觉深度。

面板标题栏中显示带脉动绿点的 LIVE 指示器和当前采样计数(例如"1024 samples")。

信号电平指示器

在波形区域的右边缘,一个垂直的 10 段 LED 风格指示器根据信号强度按比例点亮。段按颜色编码:绿色(低)、黄色(中等)、橙色(高)、红色(非常高)。

波形状态栏

面板底部栏显示:

  • Signal——RMS 信号强度百分比,按颜色编码(灰色 < 20%、绿色 < 50%、橙色 < 80%、红色 >= 80%)。
  • Peak——当前原始缓冲区的峰值采样值。
  • 采样率和位深度——显示在右侧(例如"48kHz 24-bit")。

音量分析面板

音量分析面板显示音频振幅随时间变化的滚动历史图表,功能类似于传统音量表。

时间范围选择器

在面板标题栏中,分段控件让您选择图表中显示的时间范围:

范围采样数
1s50
5s250
10s500

音量图表

主区域渲染振幅历史(滚动缓冲区中最多 60 个数据点)的填充波形图表。图表根据振幅级别使用绿到红渐变填充,带有微妙的发光效果和下方的镜像反射。

绘制的参考线包括:

  • 详细网格,主线每 50%,次线每 10%。
  • 在 25%、50% 和 75% 振幅处的虚线参考线,按级别颜色编码。
  • 左侧的百分比刻度(0%–100%)。
  • 底部显示采样范围的时间刻度

VU 表条

在图表的右边缘,一个垂直的 20 段 VU 表根据当前振幅从下到上填充。段按颜色编码:绿色(0-50%)、黄色(50-75%)、橙色(75-90%)、红色(90-100%)。

统计栏

面板底部并排显示四个统计数据:

统计数据描述
Min当前波形历史中的最小振幅(蓝色)。
Max当前历史中的最大振幅(红色)。
Average历史缓冲区中的平均振幅(黄色)。
Now最新的振幅值,按级别颜色编码。

技术细节面板

技术细节面板是一个综合仪表板,展示音频引擎、音频会话和硬件配置的完整状态。监控活动期间,所有值每 0.5 秒更新一次。

性能指标

指标描述
Sample Rate活动音频会话采样率(例如"48.0 kHz")。
Buffer Size音频引擎缓冲区大小(以帧为单位,例如 1024)。
Input Latency音频会话报告的输入延迟(以毫秒为单位)。延迟超过 10 ms 时高亮显示。
IO BufferI/O 缓冲区持续时间(以毫秒为单位)。

音频电平

指标描述
Peak Level峰值振幅百分比。检测到削波(超过 95%)时以红色高亮显示。
RMS Level均方根振幅百分比。
dBFS相对于满量程的分贝。高于 -20 dB 时以黄色高亮显示。
Signal Quality根据信噪比得出:Excellent(优秀,SNR > 40 dB)、Good(良好,SNR > 20 dB)、Fair(一般,SNR > 10 dB)或 Poor(差)。

设备配置

指标描述
Current Route当前活动音频输入设备的名称。
Input Channels可用的最大输入声道数。
Polar Pattern输入数据源的首选极性模式(例如 Omnidirectional 全向)。

会话状态

指标描述
Engine StatusRunning(运行中,绿色)或 Stopped(已停止,红色)。
Category活动 AVAudioSession 类别(例如 PlayAndRecord)。
Mode活动音频会话模式(例如 VoiceChat)。
Options活动类别选项(例如"BT • Mix")。

路由变更

当检测到音频路由变更时,此区域会显示:

指标描述
Last Change最近一次路由变更的时间戳。
Reason变更原因:New Device Available(新设备可用)、Device Disconnected(设备断开)、Category Changed(类别更改)、Route Override(路由覆盖)、Wake From Sleep(从睡眠唤醒)、No Suitable Route(无合适路由)、Configuration Change(配置更改)或 Unknown(未知)。

系统信息

指标描述
Timestamp当前系统时间。
Samples当前原始波形缓冲区中的采样数。
Uptime系统运行时间(以秒为单位)。

附加性能

指标描述
Output Latency音频会话报告的输出延迟(以毫秒为单位)。
Preferred Rate工具请求的首选采样率。
Preferred Buffer工具请求的首选 I/O 缓冲区持续时间(以毫秒为单位)。
Preferred Channels首选输入声道数。

引擎详情

指标描述
Input Format音频引擎输入节点的完整 AVAudioFormat 描述(采样率、声道、位深度、交错方式)。
Output Format音频引擎输出节点的完整 AVAudioFormat 描述。
Node Count连接到音频引擎的节点数量。
Max Frames手动渲染最大帧数(仅在引擎处于手动渲染模式时显示)。

质量指标

指标描述
Average Level波形历史缓冲区中的平均振幅。
Dynamic Range峰值 dBFS 电平与噪底(-60 dB 参考)之间的差值(以 dB 为单位)。
Noise Floor以 dBFS 表示的 RMS 电平,代表背景噪声电平。
Clipping如果峰值振幅超过 95% 则显示"Yes"(红色,高亮),否则显示"No"(绿色)。

会话状态详情

指标描述
Session Active如果有其他音频正在播放则显示"Background Audio",否则显示"Active"。
Audio Hint如果系统建议静音次要音频则显示"Should Silence",否则显示"Can Mix"。

硬件详情

指标描述
Max Output Channels支持的最大输出声道数。
Input Available音频输入硬件是否可用。
Input Gain当前输入增益值(如果可设置),或 N/A。
Input Data Source活动输入数据源的名称(例如"Bottom"底部、"Front"前置、"Back"后置)。
System Volume当前系统输出音量(0.00–1.00)。

会话格式信息

活动输入数据源的原始描述,提供完整的系统级详细字符串。


隐私声明

屏幕底部有一个带盾牌图标的隐私声明,说明不会存储、录制或传输任何音频数据——所有处理都在设备上实时本地进行。


权限

  • 麦克风权限——所有功能都需要此权限。音频引擎首次初始化时会自动出现系统权限提示。
  • 如果权限尚未确定,Lirum 会显示一个带有 Grant Access(授予访问权限)按钮的权限屏幕,触发系统提示。
  • 如果权限之前被拒绝,Lirum 会显示 Open Settings(打开设置)按钮,重定向到 iOS 设置应用,用户可以在那里重新启用麦克风访问权限。

技术细节

  • 该工具使用 AVAudioEngine,在总线 0 上安装输入监听以捕获 PCM 音频缓冲区。使用 1024 帧的缓冲区大小。
  • 音频会话配置为 .playAndRecord 类别和 .voiceChat 模式,启用了 .allowBluetooth.mixWithOthers 选项。这确保蓝牙 HFP 设备(如 AirPods)可被发现为输入源。
  • 请求 5 ms 的首选 I/O 缓冲区持续时间,以实现响应式可视化。
  • 对于非蓝牙设备,请求 48 kHz 的首选采样率。对于蓝牙 HFP 设备,采样率由系统决定以避免格式冲突。
  • RMS 振幅使用公式从 PCM 缓冲区计算:sqrt(sum(sample^2) / count),然后乘以 5 的系数并限制在 [0, 1] 范围内。
  • dBFS(相对于满量程的分贝)计算公式为 20 * log10(amplitude)
  • 原始波形更新限制为 60 fps 以防止过多的 UI 更新。
  • 波形历史缓冲区最多保存 60 个数据点,在每个显示链接帧上从振幅缓冲区处理。
  • 以最高 120 fps 运行的 CADisplayLink 通过对帧之间收集的振幅采样取平均值来驱动波形历史更新。
  • 音频引擎详细信息每 0.5 秒通过定时器轮询一次。
  • 切换输入设备时,音频引擎会完全拆除并使用新的音频会话重新创建,以确保使用正确的格式。过渡期间会显示加载覆盖层(最少 300 ms 显示时间以确保流畅的用户体验,带有 2 秒超时回退)。
  • 蓝牙格式处理——对于蓝牙设备,监听安装时使用 nil 格式,让系统自动选择适当的格式,避免 HFP 设备可能出现的无效格式错误。
  • 音频路由变更通过 AVAudioSession.routeChangeNotification 观察。当新设备出现或现有设备被移除时,工具会自动更新设备列表,如果正在录音,则使用最佳可用设备重新启动。路由变更会被节流(最小 300 ms 间隔)以防止重启循环。
  • 设备自动选择优先级:蓝牙 HFP、耳机麦克风、内置麦克风。
  • 当工具消失或应用进入后台时,音频引擎会停止,音频会话会完全停用(切换到 .ambient 类别并使用 .notifyOthersOnDeactivation 停用),以释放麦克风并允许其他应用恢复音频播放。

注意事项与限制

  • 该工具监控实时音频输入电平。它不会录制、保存或传输任何音频数据。
  • 切换输入设备时,Lirum 会在音频引擎重新配置期间短暂显示加载指示器。这通常需要不到一秒钟。
  • 与内置麦克风相比,蓝牙耳机和 USB 麦克风可能报告不同的增益电平和采样率。
  • 在蓝牙 HFP 设备(例如 AirPods)上,由于免提配置文件的限制,采样率可能较低(例如 16 kHz 或 8 kHz)。
  • 当振幅超过满量程的 95% 时,削波指示器会触发。持续削波可能表示输入增益过高或声源距离麦克风太近。
  • 当应用进入后台或被最小化时,音频监控会自动停止,确保不会持续占用麦克风。