如题
本人想移除MP3格式文件中的人物原声,保留背景音乐,请问如何实现?
望大虾指点方向。
本人想移除MP3格式文件中的人物原声,保留背景音乐,请问如何实现?
望大虾指点方向。
解决方案 »
- 如何转换成十六进制?
- "仓库入库单类型"程序实现方法(主从表),讨论!求解!
- 请教一个表较麻烦的界面的问题 !
- 我的Delphi 7一调Project/Options就报错
- 怎样求得不规则图形内的像素数?
- BDE如何消除访问数据库登陆提示框?
- 为什么时间字段上传到MSSQL数据库表中,时间值会有所改变?
- 1,DBGrid 中如何显示88.88%这种格式?2,count(..)/count(..)如何显示为float型?
- 这儿哪儿有数据结构的论坛呢?
- 可乐吧的台球程序使用什么作的?那个程序用术语叫做什么?用Delphi能做出来吗?
- Data Access面板里的ClientDataSet有BUG?急,在线等
- 请教cxGrid某列的properties属性设置为popupedit的问题,谢谢!
不过效果应该不会太好,因为普通的mp3声道都混在一起了,再剥离出来基本不可能。
一定要这么消音么,还是找个伴奏更好吧。
可以
但是
效果不好
很大一个程度取决于音频文件源,如果制作的时候做的一般你想消除就不太可能了有时候使用之后感觉只是人唱歌的声音小了而已
在一般立体声输出的音响中,如果你将 L 声道和 R 声道之间的公共地去掉,直接将 L 声道通过喇叭和 R 声道喇叭串联接起来,将会听到,人声消失了很多(如果不消失,说明此录音是单声道录音。)!这个就是立体声录制时候相位的原因。这个关键词是“相位”。
其次,人声的音域都是有个大概分布的,女声普遍介于3-4KHz之间,而男声稍低。根据这两个东西,进行技术处理。
这个其实是很复杂的东西。所以我说了上面的,等于没说。
高通滤波,下限截止到200Hz。
试试看吧
// Filter data through filter
static af_data_t* play(struct af_instance_s* af, af_data_t* data)
{
af_data_t* c = data; // Current working data
float* a = c->audio; // Audio data
int len = c->len/4; // Number of samples in current audio block
int nch = c->nch; // Number of channels
register int i; /*
FIXME1 add a low band pass filter to avoid suppressing
centered bass/drums
FIXME2 better calculated* attenuation factor
*/
for(i=0;i<len;i+=nch)
{
a[i] = (a[i] - a[i+1]) * 0.7;
a[i+1]=a[i];
}
return c;
}
使用预置效果:Vocal remover需要一个宿主软件才能打开。也就是说,Ultrafunk fx好比是VS2008的插件,需要装VS才能使用。宿主,我推荐FL Studio,上手快。目前最新版本是9.x但这仅仅适用于我在8楼所说的第二点。
假设我们能区分开,那么混音合成的文件我们就采取左右声道高频消音的办法;标准的多音轨合成,我们就直接从音频文件中提取想要的部分即可(解码音频文件,提取伴奏或人声部分)。用什么办法能区分开一个音频文件的合成形式呢?