读书人

通过程序让电脑的声音放大N倍,该怎么解

发布时间: 2012-03-31 13:13:26 作者: rapoo

通过程序让电脑的声音放大N倍
我的本本声音非常小,但又不想用低音炮,前段时间在搜狐上看视频的时候,发现他们的网页播放器竟然可以将声音持续放大至500%以上,现在网上也有类似的软件,比如说“电脑扩音器”(我没用过,只听过介绍),现在想知道下C#能不能做到这种功能,以及用什么去实现,winform中的最好,请各位大虾赐教下子

[解决办法]
写程序修改你的输出数据,对输出到播放设备的数据放大

[解决办法]
这和硬件无关的,声音信号是一系列波形,只要把振幅放大就可以实现扩音。
因为程序里得到的是经过模数转换之后的数据,所以只要把数据乘上一定的系数就可以实现声音信号放大,其实很简单的,但是声音的放大有极限的,缩放的太厉害音质会明显变差,如果加上去噪之类的算法应该会好点。

[解决办法]
不是俺们扯偏,而是你不明白你要做的东西实际上有两种方式
1。直接放大波形-----这个效果有限
2。编写声卡驱动,直接使用驱动修改声卡输出功率

实际上我们提一个词,功放(功率放大器)你就明白了,问题的关键在声卡的功率上面
[解决办法]
直接放大波形的算法:

buff为声音数据,scale为缩放量

C/C++ code
void WaveScalse(short *buff,int len,int scale){    int i;    float floatdata;    for(i = 0;i < len; i++)    {        floatdata = buff[i]*scale;        if(floatdata <  -32767.5)        {            floatdata = -32768;        }        else if(floatdata > (FLOAT)32766.5)        {            floatdata = 32767;        }        buff[i] = (short)floatdata;    }    }
[解决办法]
LZ的这个想法应该可以实现,不想有些人说的 可以无限扩大,系统的最大音量厂商在出厂时候肯定给有限制的, LZ的想法有点像给CPU超频

读书人网 >C#

热点推荐