ope*_*guy 11 python windows pyaudio python-2.7
我有类似下面显示的代码来从麦克风获取音频:
import pyaudio
p = pyaudio.PyAudio()
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 1024*10
RECORD_SECONDS = 10
stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
    data = stream.read(CHUNK)
    send_via_socket(data) # function to send each frame to remote system
这段代码工作正常.但是每个数据 帧的大小为4kb.这意味着需要40kb的互联网数据才能发送1秒的音频数据.当我将10帧(1秒音频)保存到光盘并使用pdub模块将其转换为mp3时,它只有6kb的数据.如何在通过套接字发送之前将每个wav帧转换为mp3?(我只需要减小帧的大小以节省网络使用量).例如:
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
    data = stream.read(CHUNK)  # data =4kb
    mp3_frame = wav_to_mp3(data) # mp3_frame should be 1kb or less
    send_via_socket(mp3_frame) # function to send each frame to remote system
| 归档时间: | 
 | 
| 查看次数: | 1834 次 | 
| 最近记录: |