CN116007140B - 一种检测手指敲击声实现开关的方法 - Google Patents
一种检测手指敲击声实现开关的方法 Download PDFInfo
- Publication number
- CN116007140B CN116007140B CN202211636106.1A CN202211636106A CN116007140B CN 116007140 B CN116007140 B CN 116007140B CN 202211636106 A CN202211636106 A CN 202211636106A CN 116007140 B CN116007140 B CN 116007140B
- Authority
- CN
- China
- Prior art keywords
- knocking
- sound
- finger
- label
- neural network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Measurement Of Mechanical Vibrations Or Ultrasonic Waves (AREA)
Abstract
一种检测手指敲击声实现开关的方法,属于声音处理领域,包括:S1、声感区域划分;S2、数据采集;S3、数据标注;S5、神经网络模型设计和训练;S6、加载、编译手指敲击检测神经网络模型;S7、接收声音信号,模型对声音信号进行预判分类;S8、模型对分类后的声音信号的每帧识别结果进行解码,并且缓存解码序列;S9、解析序列,判断是否为有效敲击;若是,则启动被控目标物的开关操作;若否,则保持被控目标物的原有状态。本发明通过手指敲击被控目标物的声感区域实现开关控制,无需借用外部设备;通过手指敲击检测神经网络模型预判接收到声音信号为哪个标签,同时结合有效的解码、解析策略,不仅识别率很高,而且避免误触发。
Description
技术领域
本发明属于声音处理技术领域,具体涉及一种检测手指敲击声实现开关的方法。
背景技术
开关操作是人类进行人机交互最频繁使用的功能之一,最常见的交互方式是通过按钮、触摸屏幕或触控面板、遥控器或者手机APP万能遥控器。现在也有通过语音直接人机对话,也可以通过无线电波等多种信号,通过传感器接收超声波、红外或者激光等方式,实现开关控制。
由于遥控器、触摸屏或触控面板、按钮、手机APP都是外部设备,可能面临各种问题。例如遥控器需要电池或者可能一时半会找不到;触摸屏或触控面板有特定位置,可能手湿会失灵,或者接触面太小,在夜间不便操作;按键可能不卫生(尤其在疫情期间),也比较容易失灵;手机APP可能依赖网络,需要对准设备;语音控制在线需要网络,语音离线可能识别率不好。因此,有必要开发一种方式,不用借用外部设备,直接接触机器实现开关操作。
发明内容
鉴于现有技术的不足,本发明的目的在于提供一种检测手指敲击声实现开关的方法,其用神经网络模型分析是否为手指敲击信号声,简化和实现人机交互中的“开关功能”。
为实现上述目的,本发明采用如下技术方案:一种检测手指敲击声实现开关的方法,包括:
S1、声感区域划分:将被控目标物的外表面划分成若干个可供手指敲击的声感区域;
S2、数据采集:在被控目标物的内部安装麦克风,让多个敲击人分别多次手指敲击声感区域,通过麦克风采集静音、敲击的起始音、敲击的拖尾音和噪音;
S3、数据标注:将静音、敲击的起始音、敲击的拖尾音作为正样本数据进行标注,静音标注为第一标签,敲击的起始音标注为第二标签,敲击的拖尾音标注为第三标签;将噪音作为负样本数据进行标注,噪音标注为第四标签;标注后的正样本数据和负样本数据组成数据集合;
S4、数据集合加噪、特征提取、打乱、分割:将数据集合进行加噪、特征提取,得到带有标签数据的数据特征;将数据特征打乱后,分割成训练集、校验集、测试集;
S5、神经网络模型设计和训练:采用卷积神经网络模型,其损失函数采用多分类交叉熵损失函数;将训练集、校验集、测试集放入卷积神经网络模型中进行训练,得到手指敲击检测神经网络模型;
S6、加载、编译手指敲击检测神经网络模型;
S7、通过麦克风接收声音信号,由手指敲击检测神经网络模型对声音信号进行预判分类,分类为静音、敲击的起始音、敲击的拖尾音或噪音;
S8、由手指敲击检测神经网络模型对分类后的声音信号的每帧识别结果进行解码,并且缓存解码得到的序列;
S9、由解码器的后滤波器解析序列,判断是否为有效敲击;若是,则启动被控目标物的开关操作;若否,则保持被控目标物的原有状态。
优选地,步骤S2中的麦克风套设有硅胶套。
优选地,步骤S2中的手指敲击包含手指尖敲击、手指腹敲击和手指关节敲击。
优选地,步骤S2中的手指敲击的力度为每个敲击人按个人认为舒适的方式随意敲击。
优选地,步骤S2中的手指敲击的方式和次数为:
(1)手指尖敲击:每个敲击人在每个声感区域敲击M次,包含N次连续敲击两下和(M-N)次连续敲击三下;
(2)手指腹敲击:每个敲击人在每个声感区域敲击M次,包含N次连续敲击两下和(M-N)次连续敲击三下;
(3)手指关节敲击:每个敲击人在每个声感区域敲击M次,包含N次连续敲击两下和(M-N)次连续敲击三下。
优选地,所述连续敲击为相邻2次敲击的时间不超过200ms。
优选地,步骤S4中的特征提取采用均衡Fbank特征提取方法。
优选地,所述均衡Fbank特征提取方法的具体流程为:
(1)设原始的输入数据为x,圆周率为FPI,傅里叶变化点数为N,最高频为Max_freq,最低频为Min_freq,生成容器个数为M;
(2)生成抖动因子,具体如下:
用余弦函数把抖动因子限定在一个范围内,即d_feat = sqrt(-2 * log(d_) *cos(2*FPI* d_),其中d_为均值为0、方差为1的高斯分布;
抖动因子为dither = (d_feat * 2.0f) - 1.0f),其中f表示浮点数;
(3)原始数据加上抖动因子:x_D = x + dither;
(4)处理后的每400个点,即25ms,取均值,然后做规整,具体如下:
对x_D取均值:x_bar = mean(x_D);
减去直流分量,做规整,防止变化太大:x_f = x_D - x_bar;
(5)预加重:
第一个点,直流分量为x_pre(i) = x_f(i) * 0.05,其中i=0;
从第二个点直到后面的点,做差分:x_pre(i) = x_f(i) - x_f(i-1) *0.95,其中i=1,2,3,……,N;
(6)添加汉明窗,具体如下:
汉明窗的数值大小:ham = 0.54 - 0.46*cos((2FPI/(N-1)) * i),其中i=0,2,3,……,N;
数据加窗:x_H = x_pre * ham;
(7)N个点的短时傅里叶变换:
由时域变换到频域,即X_H = fft(x_H, N);
(8)取能量谱:
X_E = real(X_H) ^ 2 + imag(X_H) ^ 2;
(9)均衡生成对应的容器:
频谱带宽:SPAN_freq = (Max_freq- Min_freq);
平均容器大小:B_s = SPAN_freq /(M + 1);
对应点相乘:X_c =X_E* SPAN_freq[j * B_s:(j + 1)* B_s ],其中j=0,2,3,……,M;
(10)每个容器内的点相加求和,然后取自然对数,即得到均衡的Fbank:
Unibank[j] =Log(sum( X_c[j* B_s:(j + 1)* B_s ])),其中j=j=0,2,3,……,M。
优选地,步骤S9中的后滤波器的后滤波算法流程如下:
(1)把神经网络解码得到的序列以及对应的概率放入缓冲区A和A_PRO;
(2)分析缓冲区A和A_PROB,合并相同且相邻的类别,放入缓冲区B,且记录下连续相同类别的区间长度,放入缓冲区B_SPAN,且计算出区间长度内的均值概率放入B_PROB;
(3)根据缓冲区B、B_SPAN和B_PROB:如果是连续2-5帧的第二标签,把第二标签放入缓冲区C,如果是连续4-10帧的第三标签,把第三标签放入C,否则把第一标签放入缓冲区C,且把分别类别对应的概率放入C_PROB;
(4)对缓冲区C、C_PROB和B_SPAN进行二次解码,在缓冲区C里面找到相邻的第二标签和第三标签,且它们的概率分别超过设定的阀值,且敲击时长不超过27帧且含有两次或三次敲击声,判断为有效敲击,否则为无效敲击。
优选地,步骤S9中的有效敲击为2次或3次连续敲击。
与现有技术相比,本发明具有以下有益效果:通过手指敲击被控目标物的声感区域实现开关控制,无需借用外部设备,即可直接接触被控目标物实现开关操作;通过特殊的数据采集方式和标注方式、特征提取方式、神经网络模型学习和预判接收到声音信号为哪个标签(静音、起始音、拖尾音、噪音),同时结合有效的解码、解析策略,不仅对手指敲击声的识别率很高,而且避免不必要的误触发。
而如果用传统的信号处理算法,比如通过能量大小去检测手指敲击声,识别率差,拒识别也差(经常性误检出),如外面的敲击声、撞击声、装修声、破壁机声、墙壁敲打声、锤子打击声音都可能莫名触发开关功能。因为手指敲击被控目标物,声音有固体传播和空气传播,固体包含腔体内的各种材质,不同材质对声音的传播速度是不一样的,此时声场环境变得极其复杂,仅仅依靠单一信号属性,如能量大小等,远远不够。
附图说明
图1为本发明实施例的流程图。
图2为本发明实施例中的客厅立式空调的结构示意图。
图3为本发明实施例中的数据标注示意图。
图4为本发明实施例中的均衡Fbank特征提取与常规Fbank特征提取的对比图。
图5为本发明实施例中的均衡滤波具体过程图。
图6为本发明实施例中的后滤波算法流程图。
图中标记:11、声感区域;12、麦克风;13、空调触控面板;14、空调出风口。
具体实施方式
为了让本发明的上述特征和优点更明显易懂,下面特举实施例,并配合附图,作详细说明如下。
如图1所示,一种检测手指敲击声实现开关的方法,包括:
S1、声感区域划分:将被控目标物的外表面划分成若干个可供手指敲击的声感区域;
S2、数据采集:在被控目标物的内部安装麦克风(其数量为单个或者多个阵列分布),让多个敲击人分别多次手指敲击声感区域,通过麦克风采集静音、敲击的起始音、敲击的拖尾音和噪音;
S3、数据标注:将静音、敲击的起始音、敲击的拖尾音作为正样本数据进行标注,静音标注为第一标签,敲击的起始音标注为第二标签,敲击的拖尾音标注为第三标签;将噪音作为负样本数据进行标注,噪音标注为第四标签;标注后的正样本数据和负样本数据组成数据集合;
S4、数据集合加噪、特征提取、打乱、分割:将数据集合进行加噪、特征提取,得到带有标签数据的数据特征;将数据特征打乱后,(如按7:2:1的比例)分割成训练集、校验集、测试集;
S5、神经网络模型设计和训练:采用卷积神经网络模型,其损失函数采用多分类交叉熵损失函数;将训练集、校验集、测试集放入卷积神经网络模型中进行训练,得到手指敲击检测神经网络模型;
S6、加载、编译手指敲击检测神经网络模型;
S7、通过麦克风接收声音信号,由手指敲击检测神经网络模型对声音信号进行预判分类,分类为静音、敲击的起始音、敲击的拖尾音或噪音;
S8、由手指敲击检测神经网络模型对分类后的声音信号的每帧识别结果进行解码,并且缓存解码得到的序列;
S9、由解码器的后滤波器解析序列,判断是否为有效敲击;若是,则启动被控目标物的开关操作;若否,则保持被控目标物的原有状态。
其中,步骤S2中的麦克风可以套设有硅胶套,以确保声场稳定性,手指敲击声音通过被控目标物的壳体和内腔空气传播进入麦克风。
其中,步骤S2中的手指敲击包含手指尖敲击、手指腹敲击和手指关节敲击。
其中,步骤S2中的手指敲击的力度为每个敲击人按个人认为舒适的方式随意敲击。
其中,步骤S2中的手指敲击的方式和次数优选但不局限于为:
(1)手指尖敲击:每个敲击人在每个声感区域敲击M次,包含N次连续敲击两下和(M-N)次连续敲击三下;
(2)手指腹敲击:每个敲击人在每个声感区域敲击M次,包含N次连续敲击两下和(M-N)次连续敲击三下;
(3)手指关节敲击:每个敲击人在每个声感区域敲击M次,包含N次连续敲击两下和(M-N)次连续敲击三下。
其中,所述连续敲击为相邻2次敲击的时间优选但不局限于不超过200ms。
其中,步骤S4中的加噪优选但不局限于对正样本数据进行,而对负样本数据加噪或不加噪,对算法的抗噪性能基本没影响。
其中,步骤S4中的特征提取优选但不局限于采用均衡Fbank特征提取方法,如图4所示,常规的Fbank特征提取方法使用非线性三角滤波,而本发明的均衡Fbank特征提取方法则是线性的三角滤波,如图5所示,具体流程为:
(1)设原始的输入数据为x,圆周率为FPI,傅里叶变化点数为N,最高频为Max_freq,最低频为Min_freq,生成容器个数为M;
(2)生成抖动因子,具体如下:
用余弦函数把抖动因子限定在一个范围内,即d_feat = sqrt(-2 * log(d_) *cos(2*FPI* d_),其中d_为均值为0、方差为1的高斯分布;
抖动因子为dither = (d_feat * 2.0f) - 1.0f),其中f表示浮点数;
(3)原始数据加上抖动因子:x_D = x + dither;添加抖动因子类似于添加微噪声,可以增强鲁棒性;
(4)处理后的每400个点,即25ms,取均值,然后做规整,具体如下:
对x_D取均值:x_bar = mean(x_D);
减去直流分量,做规整,防止变化太大:x_f = x_D - x_bar;
(5)预加重:
第一个点,直流分量为x_pre(i) = x_f(i) * 0.05,其中i=0;
从第二个点直到后面的点,做差分:x_pre(i) = x_f(i) - x_f(i-1) *0.95,其中i=1,2,3,……,N;
(6)添加汉明窗,具体如下:
汉明窗的数值大小:ham = 0.54 - 0.46*cos((2FPI/(N-1)) * i),其中i=0,2,3,……,N;
数据加窗:x_H = x_pre * ham,可以防止频谱泄露;
(7)N个点的短时傅里叶变换:
由时域变换到频域,即X_H = fft(x_H, N);
(8)取能量谱:
X_E = real(X_H) ^ 2 + imag(X_H) ^ 2,其中real为频域点的实部,imag为频域点的虚部;
(9)均衡生成对应的容器:
频谱带宽:SPAN_freq = (Max_freq- Min_freq);
平均容器大小:B_s = SPAN_freq /(M + 1);
对应点相乘:X_c =X_E* SPAN_freq[j * B_s:(j + 1)* B_s ],其中j=0,2,3,……,M;
(10)每个容器内的点相加求和,然后取自然对数,取对数可以防止特征跳变太大,更可以观察出特征的规律,即得到均衡的Fbank:
Unibank[j] =Log(sum( X_c[j* B_s:(j + 1)* B_s ])),其中j=j=0,2,3,……,M。
虽然特征提取方式有很多种,如MFCC等,但是经过测试可知,本发明的均衡Fbank算法对于敲击声更有普适性。人发出语音能量主要集中在低频段,而高频的能量较少,充分考虑人的听觉特性和语音特性,故而诞生了Fbank,但是本发明的目的是为了提高敲击检测的识别率,而敲击声低频、中频和高频能量分布较为均匀,只要机器能识别即可,不需要考虑人的听感,所以设计了均衡的Fbank。这样提取特征有两点好处:(1)由于更加拟合敲击声的特性,识别率提升了;(2)在提取特征时候,均衡三角滤波的复杂度比常规的三角滤波低。
其中,步骤S9中的后滤波器的后滤波算法流程如下:
(1)把神经网络解码得到的序列以及对应的概率放入缓冲区A和A_PRO;
(2)分析缓冲区A和A_PROB,合并相同且相邻的类别,放入缓冲区B,且记录下连续相同类别的区间长度,放入缓冲区B_SPAN,且计算出区间长度内的均值概率放入B_PROB;
(3)根据缓冲区B、B_SPAN和B_PROB:如果是连续2-5帧的第二标签,把第二标签放入缓冲区C,如果是连续4-10帧的第三标签,把第三标签放入C,否则把第一标签放入缓冲区C,且把分别类别对应的概率放入C_PROB;
(4)对缓冲区C、C_PROB和B_SPAN进行二次解码,在缓冲区C里面找到相邻的第二标签和第三标签,且它们的概率分别超过设定的阀值,且敲击时长不超过27帧且含有两次或三次敲击声,判断为有效敲击,否则为无效敲击。
具体实施例:以客厅立式空调为例,描述本发明的实施例方案。
如图1~2所示,一种检测手指敲击声实现客厅立式空调开关的方法,包括:
S1、声感区域划分:将客厅立式空调的外表面划分成10个可供手指敲击的声感区域11,分别标记为A1、A2、A3、A4、A5、A6、A7、A8、A9、A10;
S2、数据采集:在客厅立式空调的内部安装单个麦克风12,麦克风12套设有硅胶套,让26个敲击人(男女各半)分别10次手指敲击声感区域11,通过麦克风12采集静音、敲击的起始音、敲击的拖尾音和噪音;
手指敲击包含手指尖敲击、手指腹敲击和手指关节敲击;
手指敲击的力度为每个敲击人按个人认为舒适的方式随意敲击;
手指敲击的方式和次数优选但不局限于为:
(1)手指尖敲击:每个敲击人在每个声感区域11敲击10次,包含5次连续敲击两下和5次连续敲击三下;
(2)手指腹敲击:每个敲击人在每个声感区域11敲击10次,包含5次连续敲击两下和5次连续敲击三下;
(3)手指关节敲击:每个敲击人在每个声感区域11敲击10次,包含5次连续敲击两下和5次连续敲击三下;
所述连续敲击为相邻2次敲击的时间不超过200ms;
S3、数据标注:将静音、敲击的起始音、敲击的拖尾音作为正样本数据进行标注,如图3所示,静音标注为0,敲击的起始音标注为1,敲击的拖尾音标注为2;通过常规的语音识别模型将噪音作为负样本数据进行标注,噪音标注为的3;标注后的正样本数据和负样本数据组成数据集合;其中,语音识别模型主要是确定噪声音频的时间长度进行标注,也可通过计算噪声音频的具体大小得到时间的长度,然后计算出一共有多少帧(语音学里面,音频时长的专业单位一般用帧表示),每帧都会打上噪声的标签3;
S4、数据集合加噪、特征提取、打乱、分割:将数据集合进行加噪、特征提取,得到带有标签数据的数据特征;将数据特征打乱后,按7:2:1的比例分割成训练集、校验集、测试集;其中,特征提取采用40维的上述均衡Fbank特征提取方法;
S5、神经网络模型设计和训练:采用卷积神经网络模型,其损失函数采用多分类交叉熵损失函数;将训练集、校验集、测试集放入卷积神经网络模型中进行训练,迭代30轮,得到手指敲击检测神经网络模型;
S6、加载、编译手指敲击检测神经网络模型;
S7、通过麦克风接收声音信号,由手指敲击检测神经网络模型对声音信号进行预判分类,分类为静音、敲击的起始音、敲击的拖尾音或噪音;
S8、由手指敲击检测神经网络模型对分类后的声音信号的每帧识别结果进行解码,并且缓存解码得到的序列,比如序列为000011112222111222000、0000111222000111222、0001112220000000033333等,具体可以根据敲击和标记等实际情况来设定;
S9、由通用后端解码器的后滤波器解析序列,判断是否为有效敲击,有效敲击为2次或3次连续敲击,其余为无效敲击,如一次或三次以上的敲击和非敲击声;若是(如序列为000011112222111222000、0000111222000111222等为有效敲击),则启动客厅立式空调的开关操作;若否(如序列为0001112220000000033333等为无效敲击),则保持客厅立式空调的原有状态。
由于数据标注采用特殊的标注方法,敲击声是由两个标签组合而成的(标签1 和标签2),所以仅仅依靠神经网络分类结果和常规的后滤波是无法做出正确的判断,需要加上特殊的后滤波。如图6所示,后滤波器的后滤波算法流程如下:
(1)把神经网络解码得到的序列以及对应的概率放入缓冲区A和A_PRO;
(2)分析缓冲区A和A_PROB,合并相同且相邻的类别,放入缓冲区B,且记录下连续相同类别的区间长度,放入缓冲区B_SPAN,且计算出区间长度内的均值概率放入B_PROB;
(3)根据缓冲区B、B_SPAN和B_PROB:如果是连续2-5帧的标签1,把标签1放入缓冲区C,如果是连续4-10帧的标签2,把标签2放入C,否则把标签0放入缓冲区C,且把分别类别对应的概率放入C_PROB;
(4)对缓冲区C、C_PROB和B_SPAN进行二次解码,在缓冲区C里面找到相邻的标签1和标签2,且它们的概率分别超过设定的阀值,且敲击时长不超过27帧且含有两次或三次敲击声,判断为有效敲击,否则为无效敲击。
在步骤S1中,声感区域11的定义是指产品设计的时候,允许敲击有效的区域。划分的声感区域11个数可以随目标机器外观而变化。
在步骤S2中,采集样本的人数、男女比例、敲击次数等都可以根据具体情况发生改变,上面的描述为实际实验过程中有效的数据量。
在步骤S3中,一般起始音为3-5帧,拖尾音为10-20帧,每帧为10ms,这个跟机器本身(如材质)和麦克风12安装的位置有直接的关系。负样本数据的噪音包含语音、音乐、电视新闻和各种其它噪声等。
实际测试时,编译成DSP烧入语音芯片板子,语音芯片的麦克风安装在客厅立式空调的上部内壁,测试结果如下表所示。
表1:测试结果
由上面的表1可知,在极端环境中,空调在客厅播放TV,信噪比很低的情况下,识别率依然很高,在外噪很强的情况下,误触发情况很罕见,达到使用标准。
从实验结果看,本发明将敲击声(一个目标类)分成敲击的起始音和敲击的拖尾音(两个子类),这样标注可以非常有效地提高解码算法的识别率和降低误唤醒。从算法层面分析,因为把敲击声(目标类)分成两个子类,神经网络学习得更加细致,敲击的拖尾音(子类别2)起到一个缓冲过度作用,可以有效地把目标类(子类别1)和噪声类(类别3,即非目标声或类似目标声)有效地区分开来。而如果采用现有常规标注,碰到类似于冲击波但非敲击的声音,会有很大概率的误唤醒。
以上所述,仅为本发明的较佳实施例,并非对本发明做任何形式上的限制,任何熟悉本领域的技术人员但凡未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做任何简单的修改、均等变化与修饰,皆应属本发明的涵盖范围。
Claims (10)
1.一种检测手指敲击声实现开关的方法,其特征在于,包括:
S1、声感区域划分:将被控目标物的外表面划分成若干个可供手指敲击的声感区域;
S2、数据采集:在被控目标物的内部安装麦克风,让多个敲击人分别多次手指敲击声感区域,通过麦克风采集静音、敲击的起始音、敲击的拖尾音和噪音;
S3、数据标注:将静音、敲击的起始音、敲击的拖尾音作为正样本数据进行标注,静音标注为第一标签,敲击的起始音标注为第二标签,敲击的拖尾音标注为第三标签;将噪音作为负样本数据进行标注,噪音标注为第四标签;标注后的正样本数据和负样本数据组成数据集合;
S4、数据集合加噪、特征提取、打乱、分割:将数据集合进行加噪、特征提取,得到带有标签数据的数据特征;将数据特征打乱后,分割成训练集、校验集、测试集;
S5、神经网络模型设计和训练:采用卷积神经网络模型,其损失函数采用多分类交叉熵损失函数;将训练集、校验集、测试集放入卷积神经网络模型中进行训练,得到手指敲击检测神经网络模型;
S6、加载、编译手指敲击检测神经网络模型;
S7、通过麦克风接收声音信号,由手指敲击检测神经网络模型对声音信号进行预判分类,分类为静音、敲击的起始音、敲击的拖尾音或噪音;
S8、由手指敲击检测神经网络模型对分类后的声音信号的每帧识别结果进行解码,并且缓存解码得到的序列;
S9、由解码器的后滤波器解析序列,判断是否为有效敲击;若是,则启动被控目标物的开关操作;若否,则保持被控目标物的原有状态。
2.根据权利要求1所述的一种检测手指敲击声实现开关的方法,其特征在于:步骤S2中的麦克风套设有硅胶套。
3.根据权利要求1所述的一种检测手指敲击声实现开关的方法,其特征在于:步骤S2中的手指敲击包含手指尖敲击、手指腹敲击和手指关节敲击。
4.根据权利要求1所述的一种检测手指敲击声实现开关的方法,其特征在于:步骤S2中的手指敲击的力度为每个敲击人按个人认为舒适的方式随意敲击。
5.根据权利要求1所述的一种检测手指敲击声实现开关的方法,其特征在于:步骤S2中的手指敲击的方式和次数为:
1)手指尖敲击:每个敲击人在每个声感区域敲击M次,包含N次连续敲击两下和(M-N)次连续敲击三下;
2)手指腹敲击:每个敲击人在每个声感区域敲击M次,包含N次连续敲击两下和(M-N)次连续敲击三下;
3)手指关节敲击:每个敲击人在每个声感区域敲击M次,包含N次连续敲击两下和(M-N)次连续敲击三下。
6.根据权利要求5所述的一种检测手指敲击声实现开关的方法,其特征在于:所述连续敲击为相邻2次敲击的时间不超过200ms。
7.根据权利要求1所述的一种检测手指敲击声实现开关的方法,其特征在于:步骤S4中的特征提取采用均衡Fbank特征提取方法。
8.根据权利要求7所述的一种检测手指敲击声实现开关的方法,其特征在于:所述均衡Fbank特征提取方法的具体流程为:
1)设原始的输入数据为x,圆周率为FPI,傅里叶变化点数为N,最高频为Max_freq,最低频为Min_freq,生成容器个数为M;
2)生成抖动因子,具体如下:
用余弦函数把抖动因子限定在一个范围内,即d_feat = sqrt(-2 * log(d_) * cos(2*FPI* d_),其中d_为均值为0、方差为1的高斯分布;
抖动因子为dither = (d_feat * 2.0f) - 1.0f),其中f表示浮点数;
3)原始数据加上抖动因子:x_D = x + dither;
4)处理后的每400个点,即25ms,取均值,然后做规整,具体如下:
对x_D取均值:x_bar = mean(x_D);
减去直流分量,做规整,防止变化太大:x_f = x_D - x_bar;
5)预加重:
第一个点,直流分量为x_pre(i) = x_f(i) * 0.05,其中i=0;
从第二个点直到后面的点,做差分:x_pre(i) = x_f(i) - x_f(i-1) *0.95,其中i=1,2,3,……,N;
6)添加汉明窗,具体如下:
汉明窗的数值大小:ham = 0.54 - 0.46*cos((2FPI/(N-1)) * i),其中i=0,2,3,……,N;
数据加窗:x_H = x_pre * ham;
7)N个点的短时傅里叶变换:
由时域变换到频域,即X_H = fft(x_H, N);
8)取能量谱:
X_E = real(X_H) ^ 2 + imag(X_H) ^ 2;
9)均衡生成对应的容器:
频谱带宽:SPAN_freq = (Max_freq- Min_freq);
平均容器大小:B_s = SPAN_freq /(M + 1);
对应点相乘:X_c =X_E* SPAN_freq[j * B_s:(j + 1)* B_s ],其中j=0,2,3,……,M;
10)每个容器内的点相加求和,然后取自然对数,即得到均衡的Fbank:
Unibank[j] =Log(sum( X_c[j* B_s:(j + 1)* B_s ])),其中j=j=0,2,3,……,M。
9.根据权利要求1所述的一种检测手指敲击声实现开关的方法,其特征在于:步骤S9中的后滤波器的后滤波算法流程如下:
1)把神经网络解码得到的序列以及对应的概率放入缓冲区A和A_PRO;
2)分析缓冲区A和A_PROB,合并相同且相邻的类别,放入缓冲区B,且记录下连续相同类别的区间长度,放入缓冲区B_SPAN,且计算出区间长度内的均值概率放入B_PROB;
3)根据缓冲区B、B_SPAN和B_PROB:如果是连续2-5帧的第二标签,把第二标签放入缓冲区C,如果是连续4-10帧的第三标签,把第三标签放入C,否则把第一标签放入缓冲区C,且把分别类别对应的概率放入C_PROB;
4)对缓冲区C、C_PROB和B_SPAN进行二次解码,在缓冲区C里面找到相邻的第二标签和第三标签,且它们的概率分别超过设定的阀值,且敲击时长不超过27帧且含有两次或三次敲击声,判断为有效敲击,否则为无效敲击。
10.根据权利要求1所述的一种检测手指敲击声实现开关的方法,其特征在于:步骤S9中的有效敲击为2次或3次连续敲击。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211636106.1A CN116007140B (zh) | 2022-12-20 | 2022-12-20 | 一种检测手指敲击声实现开关的方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211636106.1A CN116007140B (zh) | 2022-12-20 | 2022-12-20 | 一种检测手指敲击声实现开关的方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN116007140A CN116007140A (zh) | 2023-04-25 |
| CN116007140B true CN116007140B (zh) | 2025-05-16 |
Family
ID=86036490
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202211636106.1A Active CN116007140B (zh) | 2022-12-20 | 2022-12-20 | 一种检测手指敲击声实现开关的方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116007140B (zh) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112272019A (zh) * | 2020-10-22 | 2021-01-26 | 广东美的制冷设备有限公司 | 声控敲击开关的控制方法、装置、家用电器及存储介质 |
| CN114324580A (zh) * | 2021-12-03 | 2022-04-12 | 西安交通大学 | 一种结构缺陷的智能敲击检测方法及系统 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106128452A (zh) * | 2016-07-05 | 2016-11-16 | 深圳大学 | 利用声音信号检测键盘敲击内容的系统及方法 |
| TW201918866A (zh) * | 2017-11-03 | 2019-05-16 | 矽統科技股份有限公司 | 觸控面板上的敲擊事件的分類方法及系統,以及觸控面板產品 |
| CN113611286B (zh) * | 2021-10-08 | 2022-01-18 | 之江实验室 | 一种基于共性特征提取的跨语种语音情感识别方法和系统 |
-
2022
- 2022-12-20 CN CN202211636106.1A patent/CN116007140B/zh active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112272019A (zh) * | 2020-10-22 | 2021-01-26 | 广东美的制冷设备有限公司 | 声控敲击开关的控制方法、装置、家用电器及存储介质 |
| CN114324580A (zh) * | 2021-12-03 | 2022-04-12 | 西安交通大学 | 一种结构缺陷的智能敲击检测方法及系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN116007140A (zh) | 2023-04-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Zhou et al. | Hidden voice commands: Attacks and defenses on the VCS of autonomous driving cars | |
| CN110992932B (zh) | 一种自学习的语音控制方法、系统及存储介质 | |
| CN110097875B (zh) | 基于麦克风信号的语音交互唤醒电子设备、方法和介质 | |
| RU2376722C2 (ru) | Способ многосенсорного улучшения речи на мобильном ручном устройстве и мобильное ручное устройство | |
| Wang et al. | Robust environmental sound recognition for home automation | |
| CN111210021A (zh) | 一种音频信号处理方法、模型训练方法以及相关装置 | |
| CN110223711B (zh) | 基于麦克风信号的语音交互唤醒电子设备、方法和介质 | |
| CN103971681A (zh) | 一种语音识别方法及系统 | |
| CN107300971B (zh) | 基于骨传导振动信号传播的智能输入方法及系统 | |
| CN109671433A (zh) | 一种关键词的检测方法以及相关装置 | |
| US20110093261A1 (en) | System and method for voice recognition | |
| JPWO2011055410A1 (ja) | 音声認識装置 | |
| CN105938399B (zh) | 基于声学的智能设备的文本输入识别方法 | |
| CN104637489A (zh) | 声音信号处理的方法和装置 | |
| CN102194452A (zh) | 复杂背景噪声中的语音激活检测方法 | |
| CN109671185A (zh) | 一种门禁控制方法及装置 | |
| CN112700782A (zh) | 语音处理方法和电子设备 | |
| CN109754817B (zh) | 信号处理方法及终端设备 | |
| CN113192504A (zh) | 一种基于域适应的无声语音攻击检测方法 | |
| CN110111812A (zh) | 一种键盘击键内容的自适应识别方法和系统 | |
| KR102217292B1 (ko) | 적어도 하나의 의미론적 유닛의 집합을 음성을 이용하여 개선하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 | |
| CN110197663B (zh) | 一种控制方法、装置及电子设备 | |
| CN112185425A (zh) | 音频信号处理方法、装置、设备及存储介质 | |
| CN116007140B (zh) | 一种检测手指敲击声实现开关的方法 | |
| Wang et al. | HearASL: Your smartphone can hear American sign language |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |