声音检测原理
应用监听的内容、判断方式,以及各项数字的含义。
Snore Timeline 把一整夜的原始音频变成带标签的事件。知道这些标签从何而来,您用起来才踏实,所以本页把整个流程走一遍。应用监听哪些声音,如何决定什么进入您的时间线,分贝数字和橙色波形颜色代表什么,以及嘈杂的房间为什么会改变结果。
应用分类的声音类型
应用不会把每一种噪音都当成鼾声。它把听到的声音分成六大类:
- 鼾声,主要事件。每一次都会带着音量落在时间线上。
- 喘息,急促的吸气,常常紧跟在呼吸中断之后。
- 咳嗽,单独计数,不会混进鼾声里。
- 梦话:说话声、低语声和喃喃自语。
- 笑声。人睡着了也会笑。
- 巨大声响,任何高过您房间背景噪音的声音,或者超过您设定水平的声音。这一点下文还会细说。
鼾声、喘息和咳嗽构成呼吸组。应用还会整夜跟踪您的呼吸。如果安静了大约 10 秒或更久,随后出现一个明显比这段静默更响的恢复声音,就会被标记为呼吸中断。呼吸中断页面把这些讲得更透。
那么应用怎么把鼾声和咳嗽分开?每一类声音都有自己的声学指纹。鼾声的能量大部分落在低频和中频,大约 50 Hz 到 3 kHz,这就把它和说话声、咳嗽声以及房间里的杂音区分开来。分类器在敲定标签之前,会同时看声音的形态和它的频率构成。大多数背景噪音根本拿不到标签。
它有时也会弄错。两种声音重叠,或者被子捂住了其中一种,事件就可能落进错误的类别。如果标签看着不对,回放那一刻,自己听一听。另外提醒一句,这一切都是供您自己参考的音频分析。应用不诊断睡眠呼吸暂停,也不诊断别的任何疾病。
实时分析,无采样间隔
有些应用靠采样省电。它们隔一阵醒来,听一小会儿,然后继续休眠,中间发生的一切就丢了。Snore Timeline 一直在听,用的是跑在手机本机上的 Apple Sound Analysis 框架。每种声音一发生就被处理,什么都不会上传。想知道这与其他打鼾应用相比如何,请看哪些打鼾应用会收集您的数据。
您会因此注意到两件事:
- 检测立刻开始。没有校准,也没有设置步骤。当晚的第一声鼾和第一百声算得一样。
- 时间线没有空洞。应用从不停止监听,所以一段安静就意味着房间当时确实安静,而这些安静段落又成了呼吸和睡眠阶段分析的养料。
这一切都在设备端运行。您的音频从不离开手机。隐私政策说明了这在实践中意味着什么。
实时检测还意味着应用可以在打鼾发生的当下做点什么。一旦确认打鼾,鼾声轻推就会用 iPhone 播放一段短提示音,或者通过 Apple Watch 轻点您的手腕,这往往足以让您翻个身。大多数追踪器只能在早上告诉您。
灵敏度与误报
并不是每种声音都能留下。只有当声音与某个类别匹配得足够强时,应用才会记下一个事件。正因如此,嘎吱作响的暖气片才不会把您的夜晚填满幻觉般的鼾声。
这道门槛有多严,由您用灵敏度设置来定。一共五档,极少、低、均衡、高、最高,默认是均衡。
- 极少只抓清晰响亮的鼾声,别的几乎一概不理。房间嘈杂时用它,或者同伴的鼾声老是触发检测器时用它。
- 最高连极微弱的鼾声也抓,代价是更多背景噪音和更多误报。
往哪边调,让时间线告诉您。一堆零散事件,回放却什么都没有?把灵敏度调低。录音里听得见、应用却漏掉的鼾声?调高。对大多数人来说,均衡是个不错的起点。
分贝与频率颜色
音量在应用各处都以 dB SPL 显示,刻度从约 28 dB(近乎无声)到 105 dB(响得刺耳)。把它当音量计来读。鼾声的粗略参考如下:
- 约 40 dB 以下:微弱鼾声
- 40 至 48 dB:轻微鼾声
- 48 至 56 dB:明显鼾声
- 56 dB 及以上:严重鼾声
每个片段都会有峰值和平均值两个数字。把它们当作个人参考。床头柜上的一部手机不是校准过的声级计。
应用知道当前用的是哪个麦克风,并会在手机播放音乐或播客等音频时校正读数。
每种声音都是多种频率的混合。频率就是空气振动的快慢,以赫兹(Hz)为单位。低音振动慢,高音振动快。点击播放,拖动滑块,看着音调升高时波形怎样变密:
把波形放到最大,每根柱子都会裂成叠起来的橙色深浅,显示那个声音的能量落在频率范围的哪一段:
- 深橙色:低频,约 50 至 250 Hz,鼾声的低沉隆隆声。
- 中橙色:中频,约 250 至 1500 Hz,泛音和元音。
- 亮橙色:高频,约 1500 至 8000 Hz,如"嘶"声中的齿擦音。
对呼吸而言,要紧的是亮色高频段。每次呼气都会带出一点微弱的嘶声,像轻轻的“嘶”,而这声嘶就落在高频段的上方。Snore Timeline 跟着它整夜追踪您的呼吸,呼吸中断检测和睡眠阶段估算都建立在这份追踪之上。手机放得太远或房间太吵会让这两项功能一起变弱,原因也在这里。嘶声很轻,所以它最先消失。
频率细节只出现在 1 秒柱子上,也就是实时视图往外一级。缩放级别再宽一些,柱子就是纯色的。整体波形怎么读,时间线与回放讲得更全。
把夜里安静的一段放到最大,找那些下方几乎空无一物的短促亮橙色。那就是您的呼吸。
巨大声响检测
鼾声和梦话,分类器自己就能处理。巨大声响检测是为其余一切准备的。只要声音越过一个音量阈值,无论最后查明它是什么,都会生成一个片段。这样就能捕捉分类器叫不出名字的噪音,比如轻得算不上语音的耳语梦话、磨牙声、翻身时的窸窣声,或者房间里发生的其他任何动静。
阈值有两种模式,在设置的阈值模式里选择:
- 自动,默认选项。应用在您录音时测量房间的背景噪音,并把阈值设在比它高 5 dB 的位置,这样普通房间里持续的嗡嗡声就不会触发它。背景水平取的是当晚安静时的底噪,也就是房间 90% 的时间都高于的那个音量,计入范围在 28 到 45 dB 之间。应用每分钟重新测量一次,所以风扇启动或窗户打开会抬高阈值,更安静的房间则会拉低它,而每一夜都从上一次测量的那晚接着开始。设置里会显示测得的水平、它来自哪一晚,以及它换算出的分贝值。
- 固定。一条由您自己拖动的 dB 滑杆,适合想让每晚都用同一条线的时候。如果您在自动出现之前就设过一个数值,那您现在仍然停在那个数值的固定模式上。
房间越安静,阈值就越低,捕捉到的也越多。一间 28 dB 的安静卧室,会把这条线定在 33 dB。
每个巨大声响片段都会显示它发生时的房间状况。卡片上标有房间的音量,例如34 dB 环境,片段详情里还会加上环境底噪和检测阈值,例如“自动:高于环境底噪 5 dB(触发时底噪为 34 dB)。”在加入这项功能之前录制的片段只显示底噪,没有阈值这一行。
有时您会看到某些明明是鼾声的东西被归进了巨大声响。这是因为背景噪音盖住了鼾声分类器所依赖的呼吸模式。它需要干净的信号才能把某个声音叫作鼾声,而一旦房间在静止状态下超过约 45 dB,就会有更多声音被记成巨大声响信号而不是鼾声。下一节讲怎么应对。
背景噪音对检测的影响
空调、风扇、交通噪音、音乐、雨声或海浪声这类稳定的背景噪音会被单独追踪,不会在您的时间线上生成鼾声事件。应用把它认作连续的环境噪音,所以一台嗡嗡响的空调本身不会把您的夜晚填满虚假鼾声。
稳定噪音真正让您付出的代价是遮蔽。噪声底层一高,轻微的呼吸声和微弱的鼾声就被淹没,分类器可用的材料也就少了。会发生两件事:
- 微弱的声音变得更难被检测到。
- 在静止状态下超过约 45 dB 的房间里,本来会算作鼾声的声音会挪进巨大声响类别。
想让分类更干净,能安静的地方就让它安静下来。常见的祸首是风扇和白噪音机、暖通空调和空气净化器、朝着马路开着的窗户,以及一直开着的电视或音箱。房间越安静,各方面的检测都越准。
噪音管不了的时候,比如在酒店房间,就将就现有条件: