展开全部
用matlab根据lrc文件切割音频,适用于wav音频(一句歌词一个音频一个lrc)代码如下:32313133353236313431303231363533e78988e69d8331333337396237%clear
clc;clear all;
%用Import Data导入lrc文件,设置‘[’,']',':'为分隔符,出现三个矩阵,分别改名为minuate、second、lyric
[y,fs]=audioread('John Lennon - Oh My Love.wav');%根据歌曲名修改
for i=6:36 %根据歌词导出矩阵小修
min_start=minuate((i-1),1);
min_end=minuate(i,1);
sec_start=second((i-1),1);
sec_end=second(i,1);
time_start=min_start*60+sec_start;
time_end=min_end*60+sec_end;
Y2=y(((fs*time_start+1):fs*time_end),:); %根据lrc的时间剪切音频
Filename=sprintf('song%d.wav',i);%为音频命名
audiowrite(Filename,Y2,fs);%写出音频
lrc_name=sprintf('song%d.lrc',i);%对应音频,为lrc命名
fic=fopen(lrc_name,'a+');%对应音频,创建lrc
fprintf(fic,'[00:00.00]')
fprintf(fic,'%s',lyric{i-1,1})%写入带时间轴歌词
fclose(fic)%关闭lrc
end