Преобразование WAV-файла в 16-битную необработанную необработанную и прямую подпись без байтов без использования sox - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь преобразовать моноканальный 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 "()"

Любая помощь в этом будет высоко оценена. Спасибо!

...