[英]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.