Mikrofon aufnahme live am Pc abspielen (Megafon)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Checker_2005
User
Beiträge: 5
Registriert: Montag 22. Februar 2021, 16:12

Hallo, ich versuche vergeblich eine art Megafon zu programmieren. Es soll wie folgt funktionieren: Ich spreche in mein Mikrofon und bekomme es sofort auf meinen Kopfhörern wiedergegeben. Mein Code sieht bisher so aus:

Code: Alles auswählen

import pyaudio
import socket
import sys

FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
CHUNK = 1024

port = 12345

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect(("localhost", port))
audio = pyaudio.PyAudio()
stream = audio.open(format=FORMAT, channels=CHANNELS, rate=RATE, output=True, frames_per_buffer=CHUNK)

try:
    while True:
        data = s.recv(CHUNK)
        stream.write(data)
except KeyboardInterrupt:
    pass

print('Exit')
s.close()
stream.close()
audio.terminate()
Ich bekomme immer folgenden fehler:
ConnectionRefusedError: [WinError 10061] Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte
Wie kann ich das audio welches ich aufnehme auch sofort auf meinem Pc abspielen? Würde mich über Hilfe freuen :D
(Das audio soll auf meinen Pc gestreamt werden)
LG aus Baden-Würtemberg
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@Checker_2005,

auf meinem System funktioniert das so:

Code: Alles auswählen

import pyaudio

FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
CHUNK = 1024

audio = pyaudio.PyAudio()

in_stream = audio.open(
    format=FORMAT,
    channels=CHANNELS,
    rate=RATE,
    input=True,
    frames_per_buffer=CHUNK
)

out_stream = audio.open(
    format=FORMAT,
    channels=CHANNELS,
    rate=RATE,
    output=True,
    frames_per_buffer=CHUNK
)


while True:
    data = in_stream.read(CHUNK)
    out_stream.write(data)
Sirius3
User
Beiträge: 18270
Registriert: Sonntag 21. Oktober 2012, 17:20

Offensichtlich lauscht niemand am Port 12345. Welcher Server sollte denn da laufen?

Du öffnest den Socket und schließt in gleich wieder, willst ihn aber später noch benutzen. Das geht schief.
Checker_2005
User
Beiträge: 5
Registriert: Montag 22. Februar 2021, 16:12

Danke für die schnelle Antwort. @rogerb dein Code funktioniert. Weiß jemand von auch zufällig auch wie man ein audio Signal umkehren kann (invert)?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Checker_2005 hat geschrieben: Freitag 3. September 2021, 09:58 Danke für die schnelle Antwort. @rogerb dein Code funktioniert. Weiß jemand von auch zufällig auch wie man ein audio Signal umkehren kann (invert)?
Mal -1 nehmen.
Checker_2005
User
Beiträge: 5
Registriert: Montag 22. Februar 2021, 16:12

Danke 😁
Antworten