【发布时间】:2017-07-24 07:49:41
【问题描述】:
我正在处理音频但卡住了。我有一个视频文件,我首先将其转换为 .wav 文件。实际上我只需要提取人声部分。我所做的是我能够删除人声部分,只删除背景声音。这意味着我现在有两个文件,一个是主文件,另一个是音乐文件,即 Karoake 文件。两者的文件采样率相同。我打算这样做是为了比较文件,只要主文件和卡拉OK文件在完全相同的时间,如果两者都相同,就会给出零。在这个过程中,我只能提取人声部分。我是 octave 和 matlab 的新手。我正在附上我迄今为止的工作。
[wave,fs]=wavread('music.wav');
[wave1,fs1]=wavread('sound.wav');
t=0:1/fs:(length(wave)-1)/fs;
t1=0:1/fs1:(length(wave1)-1)/fs1;
for x=0:length(wave)
if (wave{x}==wave1{x})
wave2{x}=wave{x}-wave1{x};
else
endif
endfor
for 循环显示错误。
编辑:好的,我问的问题实际上不是问题。我想要的是只提取音频文件的人声部分。
【问题讨论】:
-
错误是什么?
-
错误:不能用 { 索引矩阵
-
同样的问题:stackoverflow.com/questions/45207376/vocal-of-an-audio-file你不需要for循环只需计算差异:
wave2 = wave2 - wave;这当然假设music.wav和sound.wav的采样率和长度是一样的 -
顺便说一句,如果你想在 Octave 中做,为什么会有 python 标签?
-
@AtanuMandal 你不应该为每一个小小的“更新”创建一个新问题。差异很小,您甚至还没有回答上一个问题的 cmets 中的问题。
标签: python matlab audio signal-processing octave