我有参与对话的演讲者及其开始和结束时间的矩阵......如下所示
segmentation_result=
start time end time
speaker1 1 1095
speaker2 10.95 20.67
speaker3 20.67 35.54
我想播放每个发言者的片段,new_seg是原始语音信号的列向量,如果我有时间我可以通过将该时间乘以Fs(16000)来计算片段的大小,其中第一个片段总是从1开始.i尝试了下面的代码
count=0;
for i=1:length(segmentation_result(:,1))
count=count+1;
if count==1
player=audioplay(new_seg(segmentation_result(1):segmentation_result(i,2)*Fs));
lay(player);
else
player=audioplay(new_seg(segmentation_result(i,1):segmentation_result(i,2)*Fs));
play(player);
end
end
但是那个玩家正在被覆盖......这就是为什么只有最后一个玩家正在玩...
我制作了new_seg语音信号的图形,其中x轴是时间,y-xis是new_seg data的振幅值。我已经在图表上显示了有扬声器变化点的垂直线。现在我想要那个垂直线应该自动从扬声器片段的开始时间移动到结束点,同时该片段也应该播放。
您的帮助将不胜感激..