睡眠音频分割及识别问题(一)

问题描述

通过手机App的录音功能,获得用户一整夜的睡眠音频,对睡眠音频进行分割,并对睡眠阶段进行判定。
(1)假设条件一:用户在相对安静的环境下进行睡眠,背景音可能会出现风声、雨声、汽车噪音、空调声音等,背景音微弱;
(2)假设条件二:一个人睡眠,不考虑多人同时睡眠产生的音频;
(3)睡眠音频主要分割出鼾声、梦话及睡眠静音,手机App只保存鼾声和梦话音频片段;
(4)将睡眠阶段分为Deep Sleep, Light Sleep, REM Sleep, Awake,并绘制出如下波形图:
在这里插入图片描述

主要方案

目前采用了两套方案来实现,方案一利用语音分离技术,方案二利用语音编码技术。

方案一:语音分离技术

(1)对语音进行编码,目前主流的方法有: frequency-domain(基于频域的方法) or time-domain(基于时域的方法) methods;
(2)语音分离:构建算法获取分离的掩码矩阵(mask);
(3)对分离后的信息进行反编码,得到分离后的语音信息。
主流的语音分离技术有:TasNet, TasNet++等网络。

方案二:语音编码技术

(1)完成音频到向量的转换,1s的音频转换为96*64的向量;
(2)进行编码,目前采用的是VGG网络,后续可以尝试用其它网络来进行编码,编码过后1s的音频转为128的向量;
(3)设置3类标签,0类标签:鼾声,1类标签:梦话(使用Google的’Music’,‘Singing’,‘singing’,‘speech’,'speaking’这5个标签的数据作为梦话标签的训练集,Google原有100类样本),2类标签:其它(使用Google的其他标签的数据作为其他标签的训练集)。
(4)鼾声识别在测试集上有80%正确率(训练集比例2:1:1,2是鼾声样本,1是其他样本与梦话样本),梦话识别由于没有找到合适的数据集,目前识别效果不好,测试发现鼾声样本识别正确接近百分百,而梦话类与其他类识别准确只有2/3。

面临的问题

(1)把鼾声和梦话分离出来后,目前还不知道怎么将睡眠分为如下四个阶段:深度睡眠、浅度睡眠、REM期、清醒。我们查阅到REM期(快速动眼期)的定义为:快速眼动睡眠,眼球在此阶段时会快速移动。在这个阶段,大脑的神经元的活动与清醒的时候相同。多数在醒来后能够回忆的栩栩如生的梦都是在REM睡眠发生的。它是全部睡眠阶段中最浅的。但如何利用鼾声、梦话、静默阶段的统计数据来将睡眠定义为深度睡眠、浅度睡眠、REM期、清醒没有思路;
(2)目前的代码都是基于深度学习框架(如Tensorflow、Pytorch等),这些代码植入APP会导致安装包过大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507743.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

睡眠音频分割及识别问题(四)--YAMNet简介

简介 YAMNet模型是在 AudioSet 数据集(一个大型音频、视频数据集)上训练的音频事件分类器。 模型输入 该模型接收包含任意长度波形的float32一维张量或 NumPy数组,且满足范围[-1.0, 1.0]内的单声道16kHz样本。在内部,该算法将波…

对应oracle生成java对象,Java学习笔记(十三)——通过Netbeans开发环境生成oracle数据库中表的对应hibernate映射文件...

【前面的话】身体慢慢已经快好了,感觉真好,哈哈。这篇文章要通过Hibernate对数据库进行操作,而Netbeans可以直接通过数据库逆向生成对应的映射文件。基础文章,选择性阅读。【步骤】1、 在netbeans中选择服务,点击数据库…

qt如何实现backspace的功能_如何实现知识星球列表拖拽功能

本 篇讲解一下如何实现在知识星球中星球列表的拖拽,各位可能都知道,我创建了一个星球【Hi Android】,所以最近使用这个软件比较多,之前也写过关于这个软件如何生成分享卡的文章,就是那篇文章有小伙伴建议我写一个星球的…

睡眠音频分割及识别问题(五)--YAMNet进一步分析

简介 YAMNet 是一个经过预训练的深度网络,可基于 AudioSet-YouTube 语料库 预测 521 种音频事件类别,并采用Mobilenet_v1深度可分离卷积架构。 输入 模型训练所使用的音频特征计算方式如下: 所有音频均重采样为 16 kHz 单声道。 通过长度…

vb.net调用oracle存储过程,vbnet2008连接oracle增删改查学习笔记(经典crud_含存储过程).doc...

vbnet2008连接oracle增删改查学习笔记(经典crud_含存储过程).doc 我的VBNETORACLE增删改查学习笔记(本源码在VBNET2008下测试通过)学习VBNET有一段时间了,之前一直学习VB60。过度到NET后发现与之前所学习的有了相当大的变化。于是将编程经常用到的增删改查代码提炼出…

睡眠音频分割及识别问题(六)--输入输出及方案讨论

简介 2021年7月13日,我和我的三个研究生一起拜访了玉米树,和王总等一起针对睡眠音频分割及识别问题进行了深入的讨论,达成了如下共识。 输入 由于保存整个晚上的睡眠音频所需要的存储空间过大,目前拟采用每隔30分钟&#xff08…

睡眠音频分割及识别问题(七)--接口输入输出讨论

简介 关于接口输入输出的讨论。 输入 1、音频文件路径,类型为:字符串; 2、预测多标签类型的排名,前n名,类型为:整型。 处理 1、将输入的音频分割为多个以1s为时间单位的音频片段; 2、利用P…

dhcp工具_网络分析之DHCP服务闯入QinQ二层隧道引发故障

一、Wireshark显示过滤器和QinQ二层隧道简述1.本段主要简述什么是Wireshark显示过滤器。显示过滤器是在现有的数据包中通过过滤条件,筛选想要查看的对象,不会丢失数据包,只是为了增强用户阅读而将一部分数据包隐藏起来。在“应用显…

php redis存储位置,redis数据保存在哪里

redis的数据是存在内存里吗?首先要明白redis是一个数据库,redis是一个内存数据库,所有数据基本上都存在于内存当中,会定时以追加或者快照的方式刷新到硬盘中。 (推荐学习:Redis视频教程)由于redis是一个内存数据库&…

python 多条件 选择 算法_浅析Python中的多条件排序实现

多条件排序及itemgetter的应用曾经客户端的同事用as写一大堆代码来排序,在得知Python排序往往只需要一行,惊讶无比,遂对python产生浓厚的兴趣。 之前在做足球的积分榜的时候需要用到多条件排序,如果积分相同,则按净胜球…

推荐系统: 数据、问题与算法

网络的迅速发展带来了信息量的大幅增长,使得用户在面对大量信息时无法从中获得对自己真正有用的那部分信息,对信息的使用效率反而降低了,导致信息超载(information overload)问题。 解决信息超载问题一个非常有潜力的办…

睡眠音频分割及识别问题(八)--数据采集

问题 在采用PANN或者YAMNet框架进行学习的时候,没有梦话、磨牙等睡眠音频数据,在一些公开数据集上也没有找到(如果有哪位读者知道,麻烦给我在评论区留言,万分感谢)。 公开数据集包括: &#xf…

旋转矩阵公式生成器_坐标变换(8)—复特征值与旋转

1.共轭复特征值设是的实矩阵,假设是的特征值,为对应的特征向量,则同样是的特征值,而是对应的特征向量,所以,当是的实矩阵,它的复特征值以共轭复数对出现。2. rotation-scaling matrix假如,为实数…

睡眠音频分割及识别问题(九)--Android下的YAMNet

部署PANNs模型面临的问题 加载模型出错 在使用PANNs模型时,在PC端可以较好的运行,可是在Android端运行的时候,编译过程提示缺少libpytorch_jni.so文件,导致无法加载模型,无法预测。(如果有读者可以解决这个…

linux 打开上一级目录,linux开机启动过程、PATH、过滤一级目录、cd的参数、ls -lrt、命令切割日志...

第二波命令正向我方来袭 :开机启动过程、PATH、过滤一级目录、cd的参数、ls -lrt、命令切割日志1.1 linux开机启动过程1.1.1 开机自检(BIOS)-- MBR引导-- GRUB菜单--加载内核(kernel)--运行INIT进程--读取/etc/inittab配置文件--执行/etc/rc.sysinit脚本(初始化脚本…

睡眠音频分割及识别问题(十)--Java读取wav文件

简介 Waveform Audio File Format(WAVE,又或者是因为扩展名而被大众所知的 wav),是微软与 IBM公司所开发在个人电脑存储音频流的编码格式。 由于项目需要从 wav 文件中读取音频数据,现有许多框架的 API 文档参差不齐&…

python 开发板 i2s_[Craftor原创] I2S总线接口设计(Verilog)

本文有Craftor原创,转载请保留出处。 I2S是数字音频的接口,这里不用多说,请读者自己查阅相关资料。 本文中要设计的是FPGA与数字音频芯片的I2S接口时序。简单点说,就是通过FPGA向音频芯片写数据,通过的是I2S总线&#…

深度学习(1)--引言

表示学习(representation learning) 使用机器学习来发掘表示本身,而不仅仅把表示映射到输出。 表示学习算法的典型例子为自编码器(autoencoder)。自编码器由一个编码器(encoder)函数和一个解码器(decoder) 函数组合而成。 编码器:将输入数据转换为一种…

深度学习(2)--常见概率分布(1)

许多简单的概率分布在机器学习的众多领域中都非常有用,这个内容将分为两个部分来说明,第一个部分介绍伯努利分布、二项式分布、多项式分布及范畴分布,第二个部分介绍高斯分布、指数分布、Laplace分布、Dirac分布、经验分布及混合分布。 伯努…

gdb 调试_GDB调试指南-源码查看

前言我们在调试过程中难免要对照源码进行查看,如果已经开始了调试,而查看源码或者编辑源码却要另外打开一个窗口,那未免显得太麻烦。文本将会介绍如何在GDB调试模式下查看源码或对源码进行编辑。 准备工作为了说明后面的内容,我们…