【发布时间】:2019-09-27 11:12:53
【问题描述】:
我在字符串中有几个 int16 流,我希望它们相加(没有溢出)并将其作为 int16 字符串返回。后台正在将多个波形文件混合到一个流中。
decodeddata1 = numpy.fromstring(data, numpy.int16)
decodeddata2 = numpy.fromstring(data2, numpy.int16)
newdata = decodeddata1 + decodeddata2
return newdata.tostring()
有没有办法用 numpy 做到这一点,还是有另一个库?
在 python 中处理每个单个值太慢并导致卡顿。
最重要的是性能,因为此代码用于提供音频的回调方法中。
@编辑:
test input data:
a = np.int16([20000,20000,-20000,-20000])
b = np.int16([10000,20000,-10000,-20000])
print a + b --> [ 30000 -25536 -30000 25536]
但我想保持最高水平: [ 30000 40000 -30000 -40000]
【问题讨论】:
-
您能否提供一些示例输入和预期输出数据?
-
所以你想用剪裁求和?
-
但这没有多大意义,int16 的最大值是 32767,你不会有 40000 作为 int16
标签: python performance numpy audio wav