gpt4 book ai didi

audio - 从 PyAudio 获取音量以在 Arduino 中使用

转载 作者:行者123 更新时间:2023-12-01 11:36:35 24 4
gpt4 key购买 nike

我想以尽可能少的延迟从笔记本电脑的音频输入(只是我的 Macbook 中的内置麦克风)向 Arduino 发送音量数据。

我发现使用 PyAudio 捕获音频输入并不难,但该模块的大多数示例将音频读数保存为 wav 或其他文件格式。我可以在将音量读入 PyAudio 时直接测量音量,还是需要将其保存到文件中并分析该文件?除了音量之外,我不关心音频中的任何其他数据。

非常感激。

最佳答案

您可以实时阅读该卷。为此,请设置记录但不保存数据,只需对其进行处理。在这里,我将使用 Python 包含的 audioop 模块获取每个 block 的 RMS 值。 (这个例子只是对 PyAudio 网页中记录演示的修改,以包含 audioop.rms 。)

import pyaudio
import wave
import audioop

CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"

p = pyaudio.PyAudio()

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

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
rms = audioop.rms(data, 2) # here's where you calculate the volume

stream.stop_stream()
stream.close()
p.terminate()

当然,如果你不喜欢 RMS,audioop 还有其他音量测量。

关于audio - 从 PyAudio 获取音量以在 Arduino 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26478315/

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