在python中实时播放原始音频文件

发布于 2021-01-29 16:46:40

我有一个udp使用python的服务器,该服务器以原始格式(字节数组)连续接收来自客户端的语音数据包。如何在服务器端实时播放声音?有推荐的库或方法吗?

如果需要,这是我非常简单的服务器代码(我对此表示怀疑)

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?
关注者
0
被浏览
139
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    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()
    

    有一种使用回调方法的方法可能会更好。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看