uscita audio record pitone
-
20-09-2019 - |
Domanda
Voglio registrare programatically suono proveniente dal mio computer portatile in pitone. ho trovato PyAudio
e si avvicinò con il seguente programma che compie l'operazione:
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()
il problema è necessario collegare la presa delle cuffie alla presa microfono. ho provato sostituzione di queste linee:
input = True,
input_host_api_specific_stream_info = stream_info,
con questi:
output = True,
output_host_api_specific_stream_info = stream_info,
ma allora ottengo questo errore:
Traceback (chiamata più recente scorso):
File "./test.py", la linea 25, in
Dati = stream.read (pezzo)
File "/Library/Python/2.5/site-packages/pyaudio.py", la linea 562, in modalità di lettura
paCanNotReadFromAnOutputOnlyStream)
IOError: [Errno Non ingresso flusso] -9975
c'è un modo per creare un'istanza flusso PyAudio modo che ingressi dalla uscita del computer e non ho per collegare la presa cuffie al microfono? c'è un modo migliore per andare su questo? Preferirei attaccare w / un'applicazione python ed evitare di cacao.
Soluzione
È possibile installare Soundflower , che consente di creare dispositivi audio aggiuntivi e percorso audio tra loro. In questo modo è possibile definire il sistema di vostra uscita al dispositivo Soundflower e leggere l'audio da usando PyAudio.
Si può anche dare un'occhiata a PyJack , un client audio per Jack .
Altri suggerimenti
Purtroppo, non c'è nessun modo infallibile per farlo, ma Audio Hijack e Wiretap sono i migliori strumenti disponibili per questo.
posso dare una risposta non usando modo programmatico. Panel> Audio> Registrazione >> consentendo mix stereo. Questo ha bisogno di un supporto driver. Ho anche scoperto che questo rende il mio vero eco del suono. Almeno questo risolve il mio problema.