2014-03-04 2 views
1

현재 pyaudio 및 numpy와 함께 python 3.3을 사용하고 있습니다. 필자는 pyaudio 웹 사이트에서 간단한 웨이브 파일을 재생하고 그 데이터를 기본 사운드 카드로 보내는 예제를 사용했습니다.numpy를 사용하여 파이 오디오에서 신호 진폭을 어떻게 변경할 수 있습니까?

이제 오디오 볼륨을 변경하고 싶지만 0.5를 곱하면 노이즈와 왜곡이 많이 발생합니다. 여기

는 코드 샘플이다

while data != '': 
decodeddata = numpy.fromstring(data, numpy.int16) 
newdata = (decodeddata * 0.5).astype(numpy.int16) 
stream.write(newdata.tostring()) 

data = wf.readframes(CHUNK) 

어떻게 파형을 파괴없이 어레이에 곱셈 또는 나눗셈 처리 하는가?

감사합니다,

답변

0

은 소스 파일의 비트 레이트 (24 비트) portaudio와 호환되지 것을 보였다. 16 비트 pcm 파일로 내 보낸 후 곱셈이 왜곡되지 않았습니다.

다른 형식이 지정된 파일에이 문제를 해결하려면 해당 비트 깊이를 확인하고 그에 따라 크기를 조정해야합니다.

+0

디코딩 된 데이터를 부동 소수점으로 변환하여 배열에 0.5를 곱한 다음 짧은 int로 다시 변환하려고 했습니까 ?? – ederwander

관련 문제