簡體   English   中英

更改音頻數據時出現噪音

[英]Noise while altering audio data

我正在用python播放音頻,我不明白為什么在執行這樣的代碼時為什么會聽到ouptut上的噪音:

import pyaudio  
import wave 
import numpy as np

f = wave.open('blabla.wav',"r")  
p = pyaudio.PyAudio()  
# open stream  
stream = p.open(format = p.get_format_from_width(f.getsampwidth()),  
                channels = f.getnchannels(),  
                rate = f.getframerate(),  
                output = True)  
float_array = np.fromstring(f.readframes(10000000), dtype=np.uint16).astype('float32')
output = 0.9 *  float_array
stream.write(output.astype('uint16').tostring())

當我乘以0.9我預計會稍微減弱信號。 但是輸出的噪音從何而來? 我什至不向初始數據添加任何內容!

基本上我想添加兩個信號:

   output signal =  0.5 * the origin one  + 0.5 * shifted origin one

但是我從這個過程中弄得一團糟,因為即使將原始數組相乘也會使信號幾乎聽起來像一團糟。

您能指出我做錯了什么以及如何制定公式嗎

   output signal =  0.5 * the origin one  + 0.5 * shifted origin one

工作對不對?

我認為16位PCM通常是帶符號的。 嘗試使用int16而不是uint16

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM