Запись динамиков с помощью PyAudio

Я пытаюсь записать вывод из своих динамиков компьютера с помощью PyAudio. Я попытался изменить пример кода, приведенный в документации PyAudio, но он не работает. Вот мой код:

import pyaudio import wave CHUNK = 1024 FORMAT = pyaudio.paInt16 CHANNELS = 2 RATE = 44100 RECORD_SECONDS = 5 WAVE_OUTPUT_FILENAME = "output.wav" p = pyaudio.PyAudio() SPEAKERS = p.get_default_output_device_info()["hostApi"] #The part I have modified stream = p.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK, input_host_api_specific_stream_info=SPEAKERS) #The part I have modified print("* recording") frames = [] for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)): data = stream.read(CHUNK) frames.append(data) print("* done recording") stream.stop_stream() stream.close() p.terminate() wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb') wf.setnchannels(CHANNELS) wf.setsampwidth(p.get_sample_size(FORMAT)) wf.setframerate(RATE) wf.writeframes(b''.join(frames)) wf.close() 

Может ли кто-нибудь помочь мне, пожалуйста?

  • Преобразование многоканального файла PyAudio в массив NumPy
  • Вход PyAudio переполнен
  • как преобразовать волновой файл в амплитуду поплавка
  • python pyaudio с использованием многопроцессорности
  • Python pocketsphinx RequestError: отсутствует модуль PocketSphinx: убедитесь, что PocketSphinx настроен правильно
  • Как установить PyAudio в virtualenv на Mac OS X 10.7
  • Проблемы с установкой Python PyAudio (с помощью PortAudio)
  • PyAudio работает, но каждый раз выводит сообщения об ошибках
  • 2 Solutions collect form web for “Запись динамиков с помощью PyAudio”

    Если кто-то все еще спотыкается над этим, как я, я нашел вилку PyAudio для записи вывода на окна. https://github.com/intxcc/pyaudio_portaudio

    Объяснение:

    Официальная сборка PyAudio не может записать результат. НО с Windows Vista и выше был введен новый API, WASAPI, который включает возможность открытия потока на выходное устройство в режиме loopback. В этом режиме поток будет вести себя как входной поток, с возможностью записи исходящего аудиопотока.

    Чтобы установить режим, нужно установить специальный флаг (AUDCLNT_STREAMFLAGS_LOOPBACK, https://msdn.microsoft.com/de-de/library/windows/desktop/dd316551(v=vs.85).aspx ). Поскольку этот флаг не поддерживается в официальной сборке, необходимо отредактировать PortAudio, а также PyAudio, чтобы добавить поддержку loopback.

    Новая опция: «as_loopback» 🙁 true | false)

    Вы не можете записывать из выходного потока, как если бы он был введен. Для записи вам необходимо подключить PyAudio к устройству ввода , например, к микрофону. По крайней мере, это нормальный способ сделать что-то.

    Сначала попробуйте подключиться к микрофону и посмотрите, получаете ли вы что-нибудь. Если это сработает, попробуйте сделать что-то необычное.

    Как небольшое ускорение для ваших итераций, а не запись и просмотр файла, часто проще просто распечатать max для нескольких кусков, чтобы убедиться, что вы вводите данные. Обычно просто просматривая прокрутку чисел и сравнивая их со звуком, вы быстро оцениваете, правильно ли они связаны.

     import audioop mx = audioop.max(data, 2) print mx 
    Interesting Posts
    Python - лучший язык программирования в мире.