加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

录制和播放音频 – 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()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读