查看: 108|回复: 3|关注: 0

[已解决] 请教关于书中第二章开始分帧的问题

[复制链接]

新手

7 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
刚接触语音信号处理,有几个基础基础的问题想请教。第一个问题,第13页底下说y的长度是N,N是指整个声的持续时间么?第二个问题,13页中的overlap在有许多帧的情况下是指的总的重叠时间么?第三个问题,书中第14页提到了每一帧在数据y中开始的位置为  starindex=[0: (fn-1)]*inc+1,我的理解是这个公式就是计算第fn帧开始的时间,但是如果是计算时间为什么还要+ 1呢?我觉得我应该是理解错了。

和同学讨论后也没琢磨出来,所以想请教一下宋老师和各位前辈这几个问题。

论坛优秀回答者

17

主题

4885

帖子

1100

最佳答案
  • 关注者: 542
发表于 7 天前 | 显示全部楼层
1,N是指整个语音的长度,包括有话段与无话段。
2,overlap是指这一帧和紧邻的下一帧之间的重叠部分。LZ可以看一下13页的图2-1-3,图中标出了wlen和inc,overlap=wlen-inc。在书中wlen、inc和overlap都是指样点数。
3,因为MATLAB中数组下标不能为0,最小值为1。

新手

7 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
 楼主| 发表于 7 天前 | 显示全部楼层
songzy41 发表于 2018-11-7 09:59
1,N是指整个语音的长度,包括有话段与无话段。
2,overlap是指这一帧和紧邻的下一帧之间的重叠部分。LZ可 ...

对于13页的公式fn=(N-overlap)/inc,我的理解是整个语音的总长度N减去总的重叠时间,剩下的就是总的帧移,再除以单个帧移,就是帧数。但overlap如果只是两个帧之间的重叠部分感觉就说不通了。还有一个疑问就是既然starindex是指下标,那么直接用帧数作为下标表示第几帧不就好了,为什么还要乘以inc呢?烦请老师能不吝赐教

论坛优秀回答者

17

主题

4885

帖子

1100

最佳答案
  • 关注者: 542
发表于 7 天前 | 显示全部楼层 |此回复为最佳答案
GUETMAN 发表于 2018-11-7 10:45
对于13页的公式fn=(N-overlap)/inc,我的理解是整个语音的总长度N减去总的重叠时间,剩下的就是总的帧 ...

1,fn=(N-overlap)/inc+1,不是整个语音的总长度N减去总的重叠时间,而是整个语音的总长度N减去一帧的重叠时间。
2,看以下程序:
yseg= zeros(frameSize, frameCount);
for i=1:fn
   st artIndex = (i-1)*inc+1;
    yseg(:, i) = y(startIndexstartIndex+wlen-1));
end
分帧以后的yseg,第1个下标就是帧数,此时就能帧号来提又数椐。
在st artIndex中因为每一帧的起点相隔inc,所以要乘以inc。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表