Я пытаюсь записать данные на виртуальный аудиокабель с помощью Python. Пока мне все равно, какой модуль я использую, поэтому я попробовал PyAudio и Sounddevive. Я установил виртуальный кабель от VB-Audio. Он отображается в моем списке устройств. Проблемы возникают, когда я хочу инициализировать выходной поток с помощью кабеля. Выдается ошибка: OSError: [Errno -9998] Неверное количество каналов
Проверяю список устройств, индексы и количество каналов, у меня есть следующие варианты кабеля:3 Выход CABLE (VB-Audio Virtual, MME (2 входа, 0 выходов)
9 Вход CABLE (VB-Audio Virtual C, MME (0 входов, 2 выхода) выход)
9 входов CABLE (VB-Audio Virtual C, MME (0 входов, 2 выхода)
20 входов CABLE (виртуальный кабель VB-Audio), Windows DirectSound ( 0 входов, 2 выхода)
24 CABLE Вход (виртуальный кабель VB-Audio), Windows WASAPI (0 входов, 2 выхода)
28 CABLE Выход (Виртуальный кабель VB-Audio), Windows WASAPI (2 входа, 0 выходов)
35 Выход CABLE (VB-Audio Point), Windows WDM-KS (8 входов, 0 выходов)
Инстинктивно я хотел бы записать на вход CABLE, но почему-то на входах нет доступных входных каналов, и прямое использование выходного канала с правильным количеством каналов также вызывает ту же ошибку. Любая. идея о чем Я мог бы сделать?
import numpy as np
import soundcard as sc
import soundfile as sf
import sounddevice as sd
import pyaudio
# Initialize PyAudio
p = pyaudio.PyAudio()
buffer_size = 512
# set devices to in- and output from
mic_input_index = 1
input_sample_rate = int(sd.query_devices(mic_input_index)['default_samplerate'])
v_cable_output_index = 14
# Open an audio stream for input
input_stream = p.open(format=pyaudio.paInt16,
channels=2,
rate=input_sample_rate,
input=True,
frames_per_buffer=buffer_size,
input_device_index=mic_input_index)
# Open an audio stream for output (virtual audio device)
output_stream = p.open(format=pyaudio.paInt16,
channels=8,
rate=input_sample_rate,
output=True,
output_device_index=v_cable_output_index)
while True:
try:
# Read audio data
data = input_stream.read(buffer_size)
audio_array = np.frombuffer(data, dtype=np.int16)
processed_audio = audio_array
# Play the processed audio to the virtual audio device
output_stream.write(processed_audio.tobytes())
except KeyboardInterrupt:
break
Подробнее здесь: https://stackoverflow.com/questions/771 ... ounddevice
Запись на виртуальный аудиокабель через Python (PyAudio, Sounddevice) ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение