如何在python中播放实时音频同时不断录制?

马坦普

我想创建一个语音干扰器。它本质上是向你重复你刚才所说的话,但它是连续的。我试图使用 sounddevice 库并在播放的同时记录我所说的内容。然后我将其更改为最初记录我所说的内容,然后在录制新内容的同时播放它。但是,它并没有像我希望的那样运行。对其他图书馆有什么建议吗?或者如果有人看到我已经拥有的代码的建议。

它不是不断地向我播放,而是开始和停止。它以指定的持续时间间隔执行此操作。所以它将录制 500 毫秒,然后播放 500 毫秒,然后再次开始录制。想要的行为是 - 录制 500 毫秒,同时播放以 ms 延迟录制的音频。

import sounddevice as sd
import numpy as np

fs = 44100
sd.default.samplerate = fs
sd.default.channels = 2
#the above is to avoid having to specify arguments in every function call
duration = .5

myarray = sd.rec(int(duration*fs))
while(True):
    sd.wait()
    myarray = sd.playrec(myarray)
    sd.wait()
马蒂亚斯

https://stackoverflow.com/a/54569667转述我自己的答案

该功能sd.play()sd.rec()并且sd.playrec()不意味着要快速连续反复使用。在内部,他们每次创建一个sd.OutputStreamsd.InputStreamsd.Stream(分别)播放/录制音频数据并再次关闭流。由于打开和关闭流,会出现间隙。这是预期的。

对于连续播放,您可以通过创建单个流并在其上调用read()和/或write()方法来使用所谓的“阻塞模式”

或者,我通常更喜欢的是,您可以通过创建自定义“回调”函数并将其传递给创建时的流来使用所谓的“非阻塞模式”。在此回调函数中,您可以例如将输入数据写入queue.Queue并从同一队列读取输出数据。通过预先在队列中填充一定数量的零,您可以指定输入和输出之间的延迟时间。

您可以查看示例以了解如何使用回调函数和队列。

如果您需要更多帮助,请告诉我,然后我可以尝试提出一个具体的代码示例。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在移动浏览器中录制音频?

来自分类Dev

如何在Android中启动默认音频录制应用

来自分类Dev

我如何从ListView播放录制的音频文件

来自分类Dev

在IOS中重复播放音频会损坏录制

来自分类Dev

如何录制耳机中播放的Android音频

来自分类Dev

在AVPlayer中录制当前播放视频的流音频

来自分类Dev

如何在Android Wear上录制音频

来自分类Dev

如何同时播放多个音频文件

来自分类Dev

如何在Swift中以WAV格式录制音频?

来自分类Dev

如何同时录制视频和播放音频(快速教程)

来自分类Dev

如何使用Swift在iOS中同时录制和播放音频?

来自分类Dev

如何在榆木中播放音频

来自分类Dev

命令行音频-用于同时播放和录制的管道

来自分类Dev

播放python文件中的录制音频不起作用

来自分类Dev

如何在音频单元扩展(实时过程)中分配内存以播放音频文件?

来自分类Dev

如何在浏览器中播放实时视频?

来自分类Dev

命令行音频-用于同时播放和录制的管道

来自分类Dev

在星号中同时播放和录制

来自分类Dev

如何在Winrt中播放重叠的音频?

来自分类Dev

如何在使用耳机时同时录制Mic音频和扬声器

来自分类Dev

在AVPlayer中录制来自当前播放视频的流音频

来自分类Dev

如何在Raspbian上录制音频输出?

来自分类Dev

在Restcomm中播放音频时是否可以同时录制通话记录?

来自分类Dev

如何在听筒中播放网络音频

来自分类Dev

如何使用NAudio同时播放具有实时大小值的两个音频文件

来自分类Dev

如何在Android(Java)中录制音频并定位特定频率

来自分类Dev

如何在Brasero中录制包含曲目信息的音频CD?

来自分类Dev

在 python 中实时播放原始音频文件

来自分类Dev

如何通过kinect相机同时录制视频和音频

Related 相关文章

  1. 1

    如何在移动浏览器中录制音频?

  2. 2

    如何在Android中启动默认音频录制应用

  3. 3

    我如何从ListView播放录制的音频文件

  4. 4

    在IOS中重复播放音频会损坏录制

  5. 5

    如何录制耳机中播放的Android音频

  6. 6

    在AVPlayer中录制当前播放视频的流音频

  7. 7

    如何在Android Wear上录制音频

  8. 8

    如何同时播放多个音频文件

  9. 9

    如何在Swift中以WAV格式录制音频?

  10. 10

    如何同时录制视频和播放音频(快速教程)

  11. 11

    如何使用Swift在iOS中同时录制和播放音频?

  12. 12

    如何在榆木中播放音频

  13. 13

    命令行音频-用于同时播放和录制的管道

  14. 14

    播放python文件中的录制音频不起作用

  15. 15

    如何在音频单元扩展(实时过程)中分配内存以播放音频文件?

  16. 16

    如何在浏览器中播放实时视频?

  17. 17

    命令行音频-用于同时播放和录制的管道

  18. 18

    在星号中同时播放和录制

  19. 19

    如何在Winrt中播放重叠的音频?

  20. 20

    如何在使用耳机时同时录制Mic音频和扬声器

  21. 21

    在AVPlayer中录制来自当前播放视频的流音频

  22. 22

    如何在Raspbian上录制音频输出?

  23. 23

    在Restcomm中播放音频时是否可以同时录制通话记录?

  24. 24

    如何在听筒中播放网络音频

  25. 25

    如何使用NAudio同时播放具有实时大小值的两个音频文件

  26. 26

    如何在Android(Java)中录制音频并定位特定频率

  27. 27

    如何在Brasero中录制包含曲目信息的音频CD?

  28. 28

    在 python 中实时播放原始音频文件

  29. 29

    如何通过kinect相机同时录制视频和音频

热门标签

归档