阈值是怎么在真实录音上测出来的
什么算作一次“呼气”,不是靠猜,而是从用户发来的真实声音样本里定出来的。这项工作是怎么做的。
阅读约 5 分钟
要让应用把一个声音算作呼气,那个声音必须比房间的安静高出一定的量。那么这个“一定的量”是从哪来的?
我们先靠猜,然后转向测量。
为什么从猜开始
加一种新呼吸法时,我们手上一份它的录音都没有。阈值是从相似的呼吸法那里搬来的:从嘴呼气的,用同一类里另一种嘴呼吸法的值;鼻腔的,用鼻腔那一类的。
那个猜测通常大致是对的,但不精确。
测量怎么做
从打开了匿名分享和声音样本分享的用户那里,会有练习的声音到达,每人每天最多十次。随每一次一起到的还有那次练习的报告和原始时间线:目标呼气原本预期在第几秒、应用在哪些时刻检测到了呼气,以及底噪是多少。
有了这两样,测量才成为可能。音频文件会被送进应用自己的检测代码——同样的代码、同样的算法——只是把阈值换掉。然后问:在哪个阈值下,捕捉到了多少次目标呼气,又出现了多少次误判?
如果捕捉数上升、误判没上升,就把阈值调低。如果两者都上升,就保持不动。
一个真实的例子
应用给底噪能低到多少设了一个下限:它防止阈值在非常安静的房间里变得过于灵敏。
在安静的房间里用平板练习时,这个下限可能让呼吸听不见:房间的底噪远低于下限。拿真实录音一看,下限就调低了:捕捉到的呼气多了,误判没有增加。
这样的修正靠猜是找不到的。没有那份录音,我们甚至不会知道问题存在。
如果房间在练习中变了
底噪在练习中也会重新测量。这也用同样的录音检验过:在叠加了空调嗡嗡声、说话声或关门声的录音里,呼气照样能被听到。
这是声音样本分享唯一的用途
发送过来的声音只为这一件事被听:测量呼吸检测的准确度。它不用于任何其他目的,不交给第三方,发送后会从你的设备上删除。
如果它是关着的,任何一次练习都不会录音。没有这项权限,应用照样完整地工作。
阈值会随时间更新
录音积累起来后,同样的扫描会再跑一遍,值也会更新。
所以应用的测量准确度,是跟着用它的人一起长起来的。