python 归一化混音

wav音频文件要求:

单通道、S16_LE、采样率一致。

import scipy.io.wavfile as wav
import numpy as np

MAX = 2**15 - 1
MIN = -2**15

def mix(sr, ns, sigma=1.0):
    tmp = 0
    f = 1.0
    mix_audio = np.zeros((len(sr)), dtype=np.int16)
    for i, (s, n) in enumerate(zip(sr, ns)):
        tmp = s + n * sigma
        tmp *= f
        if tmp > MAX:
            f = MAX / tmp
            tmp = MAX            
        elif tmp < MIN:
            f = MIN / tmp
            tmp = MIN
        
        if f < 1:
            f += (1 - f) / 32.0

        mix_audio[i] = tmp
    return mix_audio



ns_fs, ns_audio = wav.read("pink_noise.wav")

sr_fs, sr_audio = wav.read("A11_100.wav")

print("ns_fs:", ns_fs)
print("sr_fs:", sr_fs)

ns_len = len(ns_audio)
sr_len = len(sr_audio)
print("ns_len:", ns_len)
print("sr_len:", sr_len)

ns_pad_audio = np.zeros((sr_len), dtype=np.int16)
ns_pad_audio[:sr_len] = ns_audio[:sr_len]

print("ns_audio:", ns_audio.shape)
print("sr_audio:", sr_audio.shape)
print("ns_pad_audio:", ns_pad_audio.shape)


mix_audio = mix(sr_audio, ns_audio, 0.1)
print("mix_audio", mix_audio)

wav.write("mix.wav", sr_fs, mix_audio)

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值