Я пытаюсь преобразовать моноканальный wav-файл в 16-битный необработанный файл, в частности команду SOX, приведенную ниже: sox, изменяя переменные пути, и все, что нельзя сделать в установочном пакете. Итак, мне нужен код python, который может выполнять ту же задачу и может возвращать массив numpy необработанных данных.
В настоящее время я делаю это так:
import sounddevice as sd
from scipy.io.wavfile import write
fs = 44100 # Sample rate
seconds = 3 # Duration of recording
myrecording = sd.rec(int(seconds * fs), samplerate=fs, channels=1) #record as mono channeled
sd.wait() # Wait until recording is finished
write('output.wav', fs, myrecording) # Save as WAV file
from scipy.io.wavfile import read
import numpy as np
from pydub import AudioSegment
from pydub.utils import make_chunks
myaudio = AudioSegment.from_file("output.wav" , "wav")
chunk_length_ms = 1000 # pydub calculates in millisec
chunks = make_chunks(myaudio, chunk_length_ms) #Make chunks of one sec
#Convert chunks to raw audio data which you can then feed to HTTP stream
for i, chunk in enumerate(chunks):
raw_audio_data = chunk.raw_data
raw_audio_data=np.array(raw_audio_data)
raw_audio_data.shape # prints "()"
Любая помощь в этом будет высоко оценена. Спасибо!