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录音不写文件的主要内容,如果未能解决你的问题,请参考以下文章
Python人工智能之路 - 第三篇 : PyAudio 实现录音 自动化交互实现问答
Python 调用pyaudio库录制以及播放wav音频文件
[python] 2python使用pyaudio进行录音,及其在python虚拟环境virtualenv中安装遇到的问题