gpt4 book ai didi

python - 使用 PyAudio 和 NumPy 同时录制和播放音频

转载 作者:行者123 更新时间:2023-12-02 22:15:29 41 4
gpt4 key购买 nike

目前我可以录制音频并将其保存为 NumPy 数组。我需要的是在录制音频后我希望能够再次录制但同时播放此 NumPy 数组

import pyaudio
import numpy

CHUNK = 1024
WIDTH = 2
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5

p = pyaudio.PyAudio()

stream = p.open(format=p.get_format_from_width(WIDTH),
channels=CHANNELS,
rate=RATE,
input=True,
output=True,
frames_per_buffer=CHUNK)

frames = []

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(numpy.fromstring(data, dtype=numpy.int16))

numpydata = numpy.hstack(frames)

stream.stop_stream()
stream.close()

p.terminate()

最佳答案

您可以使用线程。更多信息请查看官方文档here我不太了解录音和播放音频,所以我刚刚创建了一个适合您的模板。

这是我的例子:

from threading import Thread

def record():
#Put your recording function here
def play():
#Put your playing function here

Thread(target = record).start()
Thread(target = play).start()
#These two start the two functions at the same time. If you want to only run the play
#function after it runs the record function once, you could do something like this:

这是更好的一个:

from threading import Thread

def record():
#Put your recording function here
def play():
#Put your playing function here

while recorded!=True
Thread(target = record)
recorded=True

Thread(target = record).start()
Thread(target = play).start()

要重复第二个示例中的最后两行,您只需添加一个whilefor 循环即可。请随时在评论中提问。

关于python - 使用 PyAudio 和 NumPy 同时录制和播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54427251/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com