簡體   English   中英

在Raspberry Pi上使用PyAudio抑制音頻

[英]Stuttering audio with PyAudio on Raspberry Pi

我正在嘗試在兩個Raspberry Pi之間進行單工通信(一旦解決此問題,它將變為半雙工)。

一個通過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()

任何幫助將不勝感激!

我也面臨着類似的口吃問題。 這是因為流期間出現輸入溢出錯誤。 如果每次通信的塊大小都減小到512字節,那么按照我的經驗,通信就會順利進行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM