1

我有参与对话的发言者数量及其开始和结束时间的矩阵..如下

segmentation_result=
            start time  end time  
 speaker1    1           1095 
 speaker2    10.95       20.67
 speaker3    20.67       35.54

我想播放每个说话者的片段,new_seg 是原始语音信号的列向量,如果我有时间我可以通过将该时间乘以 Fs(16000)来计算片段的大小,其中第一片段总是从 1 开始。我试过如下代码

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 数据的幅度值。我在图表上显示了有扬声器变化点的垂直线。现在我希望垂直线应该移动自动从扬声器片段的开始时间到结束点,同时该片段也应该播放。

您的帮助将不胜感激..

4

0 回答 0