首页 > 其他分享 >语音处理加窗分帧

语音处理加窗分帧

时间:2023-04-28 11:57:23浏览次数:37  
标签:语音 frame 加窗 信号 分帧 frames 一帧

语音处理加窗分帧

一、分帧

语音数据和视频数据不同,本没有帧的概念,但是为了传输与存储,我们采集的音频数据都是一段一段
的。为了程序能够进行批量处理,会根据指定的长度(时间段或者采样数)进行分段,结构化为我们编程
的数据结构,这就是分帧。

二、帧移

由于我们常用的信号处理方法都要求信号是连续的,也就说必须是信号开始到结束,中间不能有断开。然
而我们进行采样或者分帧后数据都断开了,所以要在帧与帧之间保留重叠部分数据,以满足连续的要求,
这部分重叠数据就是帧移。

三、加窗

介绍帧移的时候我们说了,我们处理信号的方法都要求信号是连续条件,但是分帧处理的时候中间断开
了,为了满足条件我们就将分好的帧数据乘一段同长度的数据,这段数据就是窗函数整个周期内的数据,
从最小变化到最大,然后最小。

四、滤波

我们知道,我们处理的语音其实是一种声波,声波是一种物质波。滤波的字面意思理解为过滤一些不同频
率的波。根据傅里叶变换,我们知道任意波可以分解为几种正弦波和余弦波的叠加,从概率论的角度,滤
波即加权。 滤波的作用就是给不同的信号分量不同的权重。最简单的loss pass filter, 就是直接把低
频的信号给0权重,而给高频部分1权重。对于更复杂的滤波,比如维纳滤波, 则要根据信号的统计知识来
设计权重。

当允许信号中较高频率的成分通过滤波器时,这种滤波器叫做高通滤波器。
当允许信号中较低频率的成分通过滤波器时,这种滤波器叫做低通滤波器。
当只允许信号中某个频率范围内的成分通过滤波器时,这种滤波器叫做带通滤波器。
当不允许信号中某个频率范围内的成分通过滤波器时,这种滤波器叫做带阻滤波器。

五、降噪

从统计信号处理的角度,降噪可以看成滤波的一种。降噪的目的在于突出信号本身而抑制噪声影响。从这
个角度,降噪就是给信号一个高的权重而给噪声一个低的权重。维纳滤波就是一个典型的降噪滤波器。

六、合成

一��的语音处理过程,先分帧,再在频域分成各个子带处理,处理后转成时域,合成语声。从描述上看,
语音合成就是和分帧相反的过程,保证信号数据经过我们变换处理后能够回到原来的状态。把每帧各个子
带转换成时间序列后相互叠加合成为一帧数据。

七、具体理解

1、为什么要进行分帧加窗操作?

语音信号为非平稳信号,其统计属性是随着时间变化的,以汉语为例,一句话中包含很多生母和韵母,不同的拼音,发音的特点很明显是不一样的;但是,语音又具有但是平稳的属性,比如汉语里的一个声母或者韵母,往往只会持续几十到几百毫秒,这一个发音单元里,语音信号表现出明显的稳定性、规律性,在进行语音识别时,对于一句话识别的过程也是以较小的发音单元(音素、字、字节)为单位进行识别的,因此可以用滑动窗来提取短时片段,也即进行分帧加窗操作。

2、如何进行分帧加窗操作?

2.1 相关术语

帧长:一帧语音信号的长度,长度可以用多种方式表示,如果用时间表示,一帧信号通常取在15ms-30ms之间,经验值为25ms(论文上大多数人用)。帧长为25ms的一帧信号指的是时长有25毫秒的语音信号。也可以用信号的采样点数来表示,如果一个信号的采样率为16kHz,则一帧信号由 16kHz * 25ms = 400个采样点组成。

帧移:指的是每次分帧时移动的距离,以第一帧信号的起始点开始移动一个帧移,开始下一帧。同样也可以用两种方式表示,用时间表示,常设为10ms,用采样点表示,16kHz采样率的信号帧移一般为160个采样点。

加窗:分帧后每一帧的开始和结束都会出现间断,因此分割的帧越多,与原始信号的误差就越大,加窗就是为了解决这个问题,使成帧后的信号变得连续,并且每一帧都会表现出周期函数的特性。常见的窗函数有:矩形窗、汉明窗、汉宁窗等,在语音信号处理中,通常使用汉明窗,其公式如下:

img

2.2 分帧加窗的具体操作

首先要根据信号长度、帧移、帧长计算出该信号一共可以分的帧数,帧数的计算公式如下:
帧数 = (信号长度-帧长)➗帧移 +1
具体的分帧操作如下图所示:

img

加窗操作比较简单,仅需将分帧的每一帧信号一次与窗函数进行相乘即可,其中窗函数可以从numpy里直接调用。
在分帧操作时,会遇到最后剩下的信号长度不够一帧的情况,此时需要将对这一段信号进行补零操作,使之达到一帧的长度,或者可以直接将之抛弃,因为最后一帧处于句子最末尾部分,大部分为静音片段。

3 分帧加窗的代码实现

以下是实现分帧加窗的具体代码:

def enframe(signal, frame_len=frame_len, frame_shift=frame_shift, win=np.hamming(frame_len)):
    """
    calculate the number of frames: 
    frames = (num_samples -frame_len) / frame_shift +1
    """

    num_samples = signal.size
    num_frames = np.floor((num_samples - frame_len) / frame_shift)+1  

    # calculate the numbers of frames
    frames = np.zeros((int(num_frames),frame_len))   # (num_frames,frame_len)

    # Initialize an array for putting the frame signals into it
    for i in range(int(num_frames)):
        frames[i,:] = signal[i*frame_shift:i*frame_shift + frame_len]
        frames[i,:] = frames[i,:] * win

    return frames

其中需要注意以下几点:

  • ①signal代表经过预加重后的信号,frame_len为帧长,frame_shift为帧移。
  • ②np.hamming(frame_len)实现了汉明窗函数。
  • ③上面的代码中,如果计算出信号长为5.2帧,则取为5帧,因为最后一帧一般都是静音信号,可以省略。初始化一个存放帧信号的数组frames,然后依次将- signal信号里的数据按照分帧操作赋值给frames。
  • ④如果输入信号的采样率为16kHz,帧长为400个采样点,帧移为160个采样点,则经过分帧加窗后得到的数组的形状为(帧数行,帧长列)。

标签:语音,frame,加窗,信号,分帧,frames,一帧
From: https://www.cnblogs.com/yege/p/17361712.html

相关文章

  • 除螨仪语音方案芯片推荐:NV040D 家用8脚语音ic
    随着时代的发展,大家对于健康的重视程度越来越高,而螨虫这类生物对于特殊群体来说,可能会带来皮肤问题,甚至引发呼吸道疾病,困扰生活,由此,清除床上的螨虫就成为了一个较为刚性的需求。除螨仪也就随之被发明,通过拍打、紫外线照射、吸尘和一定温度实现除螨操作,保持床铺清洁。 NV040D除......
  • ios apns推送 离线锁屏语音播报
    一、背景公司正在研发的一款App,需要在进行消息推送时支持语音播报。具体要求:离线:App在用户未打开时,可收到消息推送锁屏:用户在设备锁屏状态下,仍可收到消息推送语音播报:收到消息推送时可同时进行语音播放苹果的APNs消息推送,支持在应用未打开及设备锁屏状态下收到推送。而......
  • 实现语音接口的调用
    科技讯飞开放平台需要要获取id等3个参数,请到迅飞开放平台:https://www.xfyun.cn/services/voicedictation进行语音接口的调用,我在网上找到了别人的讯飞id接口,自己的还是没有实现成功。放一部分的代码实现一下吧。<%--CreatedbyIntelliJIDEA.User:DELLDate:2023/4......
  • 储物柜语音方案设计,NV040C的应用
    智能储物柜又称之为自动存包柜、电子寄存柜、电子储物柜等,在我们日常生活中可以帮助购物者或娱乐休闲的人们保证财产的安全。智能储物柜已广泛应用于超市、百货店、学校、图书馆、娱乐场所、工厂、机关、医院、电影城、游泳馆、海滨浴场、地铁站、火车站、机场等一切公共场所。而......
  • PR语音转字幕转换插件Speech to Text for Premiere Pro
    在SpeechtoTextforPremierePro(PR语音转字幕转换插件中您可以使用以下各种格式转换:中文(PL/PRC)、英文、日语、韩语、意大利语、葡萄牙语、波兰语、法语、意大利语、荷兰语、英语、西班牙语等。如果您对中文、日语、韩语、葡萄牙语、法语、荷兰语等语言感兴趣,可以在这里找到......
  • 人工智能:语音合成技术介绍
    今天介绍给大家介绍语音合成相关的技术,希望对大家能有所帮助!1、语音合成概念介绍语音合成简单来说就是把文字信息转换为标准语音的过程,最终可以输出对应的音频文件。可以实现让机器像人类一样可以实时的说话。涉及的领域有声学、语言学、数字信号处理、计算机管理等方面的知识。2、......
  • 个人语音信息助理AIS构想
    随着Chat-GPT的出现,人们获取、使用信息,以及使用电子设备的方式有了更多可能,可以设计一种类似手机的硬件设备,结合AI技术,从根本上改变人们目前使用手机遇到的众多问题。AIS(AIviaSound)可理解为“通过语音实现的个人智能助理“。以下将该设备暂命名A。A设备硬件和目前手机硬件基......
  • 人工智能:语音识别技术介绍
    今天给大家介绍一下关于语音识别相关的知识,希望对大家有所帮助!1、什么是语音语音指的是人类通过发声器官发出来具有一定意义、用来沟通交流的声音。计算机中语音存储:以波形文件的方式存储,通过波形反映语音的变化,从而可以获取音强、音长等参数信息。音域参数:傅利叶谱、梅尔频率到谱......
  • EasyCVR视频融合平台语音对讲设备端异常的问题分析及解决
    EasyCVR平台属于综合性及融合性较强的视频平台,目前可支持多协议、多类型的海量设备接入与分发,具备视频监控直播、云端录像、录像的检索与回看、存储、智能告警、语音对讲、平台级联、跨系统支持、灵活网络环境配置等视频能力,在线下均有大量落地应用。我们在此前的文章中也介绍过......
  • EasyCVR视频融合平台语音对讲设备端异常的问题分析及解决
    EasyCVR平台属于综合性及融合性较强的视频平台,目前可支持多协议、多类型的海量设备接入与分发,具备视频监控直播、云端录像、录像的检索与回看、存储、智能告警、语音对讲、平台级联、跨系统支持、灵活网络环境配置等视频能力,在线下均有大量落地应用。我们在此前的文章中也介绍过关......