1
我試圖在兩個Raspberry Pi之間做一個單工通信(當我解決此問題時,它將變爲半雙工)。在Raspberry Pi上用PyAudio口吃音頻
一個通過UDP協議發送音頻數據包,另一個接收這些數據包並通過它的默認音頻輸出設備播放它們。
我正在使用PyAudio庫。 我設法使溝通工作,但出來的聲音結結巴巴。 我使用的代碼如下:
客戶端(IP地址:192.168.1.40)
#!/usr/bin/env python
import pyaudio
import wave
import socket
p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paInt16,
channels=1,
input_device_index=2,
rate=44100,
input=True,
frames_per_buffer=8192)
print("Stream on.")
while True:
try:
data = stream.read(8192)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.connect(("192.168.1.30", 1000))
sock.send(data)
sock.close()
except KeyboardInterrupt:
print("Stream off.")
stream.stop_stream()
stream.close()
p.terminate()
服務器(IP地址:192.168.1.30)
#!/usr/bin/env python
import pyaudio
import wave
import socket
p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paInt16,
channels=1,
input_device_index=2,
rate=44100,
output=True,
frames_per_buffer=8192)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(('0.0.0.0', 1000))
while True:
try:
data = s.recv(8192)
if data:
stream.write(data)
except KeyboardInterrupt:
s.close()
print "Exiting code."
stream.stop_stream()
stream.close()
p.terminate()
任何幫助將不勝感激!
我以前也有類似的問題,一次發送更大的數據包,但增加了延遲,如果這不是一個問題,那可能是你最好的選擇 –
你好,謝謝你的建議。我試圖增加數據包大小,但沒有任何改變 – user2959923