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

标签 python voip voice

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

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

关于python - 在python中实时播放原始音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46863134/

相关文章:

android - 在 Windows 上为 Android 构建 PJSIP?

python Pandas : transforming - moving values from diagonal

Python Pandas 茎叶图

python - 如何在 Python Logger 中设置日期时间固定值作为结果?

python - 在 Python 中出错继续下一步

ios7 每隔一小时从我的服务器以后台模式获取数据

php - 比通常的 phpagi 运行时间更长

android - 用于我的 Android 应用程序的 Amazon alexa API

android - 是否可以在通话过程中拦截语音数据?

c# - 使用 .Net 调用电话和留下语音消息?