import numpy as np
from scipy.io.wavfile import write
data=np.random.uniform(-1,-1,44100)
scaled=np.int8(data/np.max(np.abs(data))*127)
write('test8.wav',44100,scaled)
을 내가 np.fromstring 사용하여 진폭을 변환 할 :
def tableau_ampli(filename) :
Monson = wave.open(filename,'r')
n = Monson.getnframes()
if Monson.getsampwidth() == 1 :
freq = np.fromstring(Monson.readframes(n),dtype=np.uint8)
print(freq)
for k in range(n):
if freq[k] > int(127) :
freq[k]=freq[k]-249
print(freq)
else :
freq = np.fromstring(Monson.readframes(n),dtype=np.uint16)
for k in range(len(freq)):
if freq[k]>32767 : # 32767 = [(2**16)/2]-1
freq[k]-=65536 # 65536 = 2**16
return(freq)
을하지만, 그것이 작동하지 않을 때 tableau_ampli ('test8.wav')를 실행합니다. 나는 문제가 생각
np.fromstring(Monson.readframes(n),dtype=np.uint8)
반환하기 때문에 : [129 129 129 ..., 129 129 129]
아닌 배열 또는 문자열입니다. 도움을받을 수 있습니까?
'[129 129 129 ..., 129 129 129]'는 지정한대로'uint8'의 배열입니다. – hpaulj
하지만 왜 편집 할 수 없습니까? I는 (N)의 범위에서 k에 대한 실행할 때 경우 주파수 [K]> INT (127) 주파수 [K] = 주파수 [K] -249 출력 (주파수) 그러나 I는 그것을 실행할 때 배열 ([129,129,129,129,129,129])이 작동합니다 :/ –
'tableau_ampli()'의 첫 줄에'wave' 란 무엇입니까? 이 스 니펫을 실행하려고하면 오류가 발생합니다. – Antimony