Записать выходной звук в PythonPython

Программы на Python
Ответить
Anonymous
 Записать выходной звук в Python

Сообщение Anonymous »

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

Код: Выделить всё

import pyaudio, wave, sys

chunk = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = sys.argv[1]

p = pyaudio.PyAudio()
channel_map = (0, 1)

stream_info = pyaudio.PaMacCoreStreamInfo(
flags = pyaudio.PaMacCoreStreamInfo.paMacCorePlayNice,
channel_map = channel_map)

stream = p.open(format = FORMAT,
rate = RATE,
input = True,
input_host_api_specific_stream_info = stream_info,
channels = CHANNELS)

all = []
for i in range(0, RATE / chunk * RECORD_SECONDS):
data = stream.read(chunk)
all.append(data)
stream.close()
p.terminate()

data = ''.join(all)
wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(data)
wf.close()
Проблема в том, что мне нужно подключить разъем для наушников к разъему для микрофона. я попробовал заменить эти строки:

Код: Выделить всё

input = True,
input_host_api_specific_stream_info = stream_info,
с помощью этих:

Код: Выделить всё

output = True,
output_host_api_specific_stream_info = stream_info,
но затем я получаю эту ошибку:


Traceback (последний вызов последний):

Файл "./test.py", строка 25, в

data =stream.read(chunk)

Файл "/Library/Python/2.5/site-packages/pyaudio.py", строка 562, в read

paCanNotReadFromAnOutputOnlyStream)

IOError: [Errno Not inputstream] -9975


есть ли способ создать экземпляр потока PyAudio, чтобы он входы с выхода компьютера, и мне не нужно подключать разъем для наушников к микрофону? есть ли лучший способ сделать это? я бы предпочел использовать приложение Python и избегать какао.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»