pyaudio录音不写文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pyaudio录音不写文件相关的知识,希望对你有一定的参考价值。

pyaudio录音不写文件

可以使用pyaudio录音,但是不写入文件。可以使用pyaudio的stream类,把采集到的音频数据保存在内存中,然后进行处理。

示例代码如下:

```python
import pyaudio

# 定义音频参数
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100

# 创建pyaudio实例
p = pyaudio.PyAudio()

# 打开数据流
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)

# 从数据流中读取数据
data = stream.read(CHUNK)

# 关闭数据流
stream.stop_stream()
stream.close()

# 关闭pyaudio实例
p.terminate()

# 处理音频数据
参考技术A 第一:有没有增加耗时这个其实也不一定,第二:对于大的wav,文件降低了内存占用,以时间换取空间,第三:降低了系统耦合度和实现成本,提高定位和纠错效率。你会发现如果你改造成功内存方式,你的效率,用户体验会随着内存占用而下降,反而降低了系统的可用性。可用性是很重要的,大数据量和频繁操作下的稳定性。至于你说的实时语音识别我也做过即时通讯手机上的,类似微信,也都是录音录像完通过文件转换字节流发送的。

pyaudio 录制多个频道

【中文标题】pyaudio 录制多个频道【英文标题】:pyaudio recording multiple channels 【发布时间】:2021-09-15 14:32:42 【问题描述】:

我需要能够使用 Presonus 1810c (USB-C) 音频接口通过 ASIO 录制 3 通道麦克风输入声音。我可以通过 DAW 来完成,所以我知道硬件和驱动程序可以工作。不过,并非所有输入都显示在录音设备中,所以我不能用 pyaudio 来做到这一点。是否有其他方法可以获取未出现在列表中的此类设备?

这是我用来获取设备列表的代码:

info = p.get_host_api_info_by_index(0)
numdevices = info.get('deviceCount')
for i in range(0, numdevices):
    if (p.get_device_info_by_host_api_device_index(0, i).get('maxInputChannels')) > 0:
        n = p.get_device_info_by_host_api_device_index(0, i).get('name')
        print("Input Device id",i,"-", n.encode("utf8").decode("cp950", "ignore"))

【问题讨论】:

【参考方案1】:

所以我想我找到了解决方案。 sounddevice 包可以看到更多用于录制的设备

【讨论】:

以上是关于pyaudio录音不写文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 PyAudio 将多个图层添加到录音中

Python人工智能之路 - 第三篇 : PyAudio 实现录音 自动化交互实现问答

Python 调用pyaudio库录制以及播放wav音频文件

[python] 2python使用pyaudio进行录音,及其在python虚拟环境virtualenv中安装遇到的问题

用pyaudio做一个声控打开浏览器的小程序

无法用 pyaudio 录制多个波形(无默认输出设备)