Я пытаюсь записать данные на виртуальный аудиокабель с помощью 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
Программы на Python
1732824991
Anonymous
Я пытаюсь записать данные на виртуальный аудиокабель с помощью 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
Подробнее здесь: [url]https://stackoverflow.com/questions/77166903/writing-to-virtual-audio-cable-via-python-pyaudio-sounddevice[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия