Как получить данные канала в PyAudio - PullRequest
1 голос
/ 07 июля 2019

Я хочу получить данные левого и правого каналов из звуковых данных в PyAudio.У меня есть массив формы 1D и я не знаю, какие из них с каналов

Я пытался изменить первую половину данных на ноль.У меня тишинаЯ пытался изменить каждое второе число на ноль.У меня тишинаВ документации я видел, что у PyAudio есть параметр «output_channels».Я думаю, что у него более одного выходного канала.

import pyaudio
import numpy as np
CHUNK = 102
WIDTH = 2
#CHUNK = 10404
#RATE = 192000
CHANNELS = 2
RATE = 44100
p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(WIDTH),
            channels=CHANNELS,
            rate=RATE,
            input=True,
            output=True,
            frames_per_buffer=CHUNK)
frames_per_buffer = 44100
data=[]
n=0
a=np.zeros(CHUNK*CHANNELS*WIDTH)
for i in range(1000):
    data.append(stream.read(CHUNK))
    for m in range(CHUNK):
        a[m]=data[0][m]
    s_0=[]
    for m in range(int(CHUNK*CHANNELS*WIDTH)):
        s_0.append(int(data[0][m]))
    a=np.asarray(s_0)
    a=a.reshape(int(CHUNK*WIDTH), 2)
    a_T = np.transpose(a)
    a_T[1][:] = 0
    a = np.transpose(a_T)
    a = a.reshape(CHUNK*CHANNELS*WIDTH)
    s_2=[]
    for m in range(CHUNK*CHANNELS*WIDTH):
        s_2.append(int(a[m]))
    sound=[bytes(s_2)]
    stream.write(sound.pop(0), CHUNK)
    data=[]
print('s_0')
s_0[0:20]
print('s_2')
s_2[0:20]

Звук не воспроизводится, если я изменяю данные

...