录制和播放音频 – Python
发布时间:2020-12-20 13:46:01 所属栏目:Python 来源:网络整理
导读:我将使用 python实现语音聊天.所以我看了几个例子,如何播放声音以及如何录制.在许多示例中,他们使用了pyAudio库. 我能够录制语音并能够将其保存在.wav文件中.我可以播放.wav文件.但我正在寻找5秒的录音,然后播放它.我不想将其保存到文件然后播放,这对语音聊
我将使用
python实现语音聊天.所以我看了几个例子,如何播放声音以及如何录制.在许多示例中,他们使用了pyAudio库.
我能够录制语音并能够将其保存在.wav文件中.我可以播放.wav文件.但我正在寻找5秒的录音,然后播放它.我不想将其保存到文件然后播放,这对语音聊天不利. 这是我的录音代码: p = pyaudio.PyAudio() stream = p.open(format=FORMAT,channels=1,rate=RATE,input=True,output=True,frames_per_buffer=CHUNK_SIZE) num_silent = 0 snd_started = False r = array('h') while 1: # little endian,signed short snd_data = array('h',stream.read(CHUNK_SIZE)) if byteorder == 'big': snd_data.byteswap() r.extend(snd_data) silent = is_silent(snd_data) if silent and snd_started: num_silent += 1 elif not silent and not snd_started: snd_started = True if snd_started and num_silent > 30: break 现在我想在不保存的情况下播放它.我不知道怎么做. 解决方法
浏览了
PyAudio Documentation之后,你已经得到了应有的全部内容,但你忘记的是该流是双工描述符.这意味着您可以从中读取以录制声音(就像您对stream.read所做的那样)并且您写入它以播放声音(使用stream.write).
因此,示例代码的最后几行应该是: # Play back collected sound. stream.write(r) # Cleanup the stream and stop PyAudio stream.stop_stream() stream.close() p.terminate() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |