教授突然让研究一下鼾声识别的算法,讨教一下主要的思路

教授一时兴起,突然让我研究一下鼾声,用智能手机采集鼾声,然后分析鼾声,区分出正常鼾声和危险鼾声,我猜想可能会用到一些模式识别之类的知识,请问一下可能会牵涉到哪些方面的技术,有没有有类似经验的朋友。

阅读 10.3k
6 个回答

很有意思的命题,本质上仍然是经典的分类问题,设计方案借鉴一般的模式识别问题解决方案。

1. 鼾声数据的获取,尽可能的丰富,可能要费点功夫(亦或导师提供?很想知道你们如何区分是正常或不正常鼾声)。
2. 生成特征,声音的相关特征量是必须的了,除此还可以考虑年龄、性别、体质、区域、气候等等。
3. 提取选择特征,根据实际情况决定是否需要,本质上是特征矩阵的降维,降低样本的依赖性,提高分类效果。
4. 分类器设计,常见有Bayes决策、SVM、神经网络、决策树、Boosting等方法。

我的经验是算法性能严重依赖于特征,好的特征一般的分类器就能满足我们的需求;反之,再好的分类器也无能为力。

如果概率统计、最优化、矩阵论等数学知识非常熟悉的话,算法设计不是问题,具体可以参考以下书籍:
C.M.Bishop, Pattern Recognition and Machine Learning;
R.O.Duda, P.E.Hart & D.G.Stork, Pattern Classification;
边肇祺 & 张学工, 模式识别。

算法都不是难事,难得是要收集到足够的数据(正常和不正常的鼾声)进行分析和机器学习。

上面都说的是理论,我说点实际的建议:

首先要获得特征

  1. 鼾声的长度,和节奏
  2. 数字列表一段鼾声的傅立叶分析(也就是频谱)
  3. 数字列表既然有智能手机,还可以获取从加速度仪获得的振动信息

然后进行归类

  1. 先分成实验组和对照组,进行数据采集
  2. 进行归类时,一定要留出10%的样本作为测试
  3. 分类器设计@epsilon 同学已经说的很好了

其他建议

  1. 一定要对于数据进行处理找到比较明显的特征
  2. 用手机采集,数据用Matlab等工具进行处理,争取可视化,因为人脑还是比电脑更换的分类器,最后将完成的算法用于手机
  3. 可以当闹铃使——当人在潜层睡眠时打开闹铃,而不是不论睡眠情况如何,都定点打开闹铃

总不能通过猜测来采集样本...
样本很难采集啊,尤其是有危险的鼾声。说不定你每采集一个危险样本,就得挂一个人...-.-

我觉得这个问题可以去医院或者联系专业医生调研一下,、在电视里看到有的医院有睡眠诊断,打鼾时如果呼吸暂停等引发问题,我想第一个是他们有专业的经验,另外也有大量的样本。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏