VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2798|回复: 10

高手跟我一个音频合成的算法,谢谢

[复制链接]

2

主题

9

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-1-28 21:40:01 | 显示全部楼层 |阅读模式
我想写一个两个输入pin的Filter合成声音,问题是核心算法:把两个Sample
合成起来的算法。希望各位不吝赐教
回复

使用道具 举报

0

主题

15

帖子

12.00

积分

新手上路

Rank: 1

积分
12.00
发表于 2020-3-2 15:30:01 | 显示全部楼层
最简单的做法,加起来除2
回复

使用道具 举报

2

主题

9

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
 楼主| 发表于 2020-3-4 02:00:01 | 显示全部楼层
把两个音频DSample数据吗?
回复

使用道具 举报

0

主题

15

帖子

12.00

积分

新手上路

Rank: 1

积分
12.00
发表于 2020-3-7 21:15:01 | 显示全部楼层
恩!
不过如果采样率,采样精度不一样的话,可能还有点麻烦!
稍微要做点别的工作!
回复

使用道具 举报

2

主题

9

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
 楼主| 发表于 2020-3-22 22:30:02 | 显示全部楼层
呵呵,谢谢。我还想问问Sample中数据是怎么组织的。我想搞明白些,出错了好找原因啊
回复

使用道具 举报

2

主题

9

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
 楼主| 发表于 2020-3-26 14:15:01 | 显示全部楼层
我还没有搞明白内存块怎么加。有没有算法?来我一个吧,感激
回复

使用道具 举报

2

主题

9

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
 楼主| 发表于 2020-3-31 20:15:02 | 显示全部楼层
哦。这个问题我知道了。
但是采集到的数据类型为 : { 这个是音频采集的数据
             FWaveFormat.wFormatTag :=1;  
             FWaveFormat.nChannels :=2;     //mono
             FWaveFormat.nSamplesPerSec := 44100;
             FWaveFormat.nAvgBytesPerSec:= 176400;
             FWaveFormat.nBlockAlign:=4;
             FWaveFormat.wbitspersample := 16;
             FWaveFormat.cbSize :=0;    }  每一个Sample的大小176400/2,每一个采样点需要16位,那么这样计算我采集点的个数为:88200/2(声道)/16(位) ,不是整数什么原因
回复

使用道具 举报

0

主题

15

帖子

12.00

积分

新手上路

Rank: 1

积分
12.00
发表于 2020-4-2 09:30:01 | 显示全部楼层
16bits = 2 bytes
晕倒!
FWaveFormat.nAvgBytesPerSec:= 176400;
看清楚了,人家是bytes per second
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-5-11 22:15:01 | 显示全部楼层
a+b-a*b/(2^16)

这是一种算法。a,b代表两个sample.

算法很多,关键是保证叠加后不溢出即可
回复

使用道具 举报

2

主题

9

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
 楼主| 发表于 2020-5-15 15:00:02 | 显示全部楼层
谢谢哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表