我有一个udp使用python的服务器,该服务器以原始格式(字节数组)连续接收来自客户端的语音数据包。如何在服务器端实时播放声音?有推荐的库或方法吗?
udp
如果需要,这是我非常简单的服务器代码(我对此表示怀疑)
import socket UDP_IP = "192.168.1.105" UDP_PORT = 5005 sock = socket.socket(socket.AF_INET, # Internet socket.SOCK_DGRAM) # UDP sock.bind((UDP_IP, UDP_PORT)) while True: data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes #what to do to stream the incoming voice packets?
PyAudio https://people.csail.mit.edu/hubert/pyaudio/
import pyaudio p = pyaudio.PyAudio() stream = p.open(format=pyaudio.paFloat32, channels=1, rate=44100, output=True) data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes while data != '': stream.write(data) data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes stream.stop_stream() stream.close() p.terminate()
有一种使用回调方法的方法可能会更好。