gpt4 book ai didi

r - 使用R进行实时音频分析

转载 作者:行者123 更新时间:2023-12-03 07:36:03 26 4
gpt4 key购买 nike

是否可以使用R对通过计算机的麦克风记录的音频进行实时(或最小延迟)分析?

尽管R有一些完善的软件包,可以用来分析音频文件(例如seewave软件包)或记录声音(音频包),但我找不到如何实时访问麦克风数据的方法。

最终目标是分析记录信号的混频和幅度,如此处所示,使用Python:https://stackoverflow.com/a/40157297/4862822

如果我可以找到一些入门的话,将提供MWE作为编辑。

最佳答案

您可以使用audio包从计算机的麦克风实时异步填充缓冲区:https://cran.r-project.org/web/packages/audio/
尽管比较笨拙,但是它可以用于使用R进行实时音频分析。下面是一个示例,该示例在5秒钟内从麦克风记录到缓冲区中。每隔1秒,将前一秒记录的最大分贝满刻度(dB FS)输出到控制台。出于这个简单示例的目的,我只是使用Sys.sleep()暂停直到下一个间隔:

library(audio)

sample_rate <- 44100
seconds_to_record <- 5
num_channels <- 1
reporting_interval_seconds <- 1

# allocate buffer to record into
buffer <- rep(NA_real_, sample_rate * seconds_to_record)

# start recording into the buffer
rec <- record(buffer, sample_rate, num_channels)

for (reports in seq(reporting_interval_seconds, seconds_to_record, reporting_interval_seconds)){
Sys.sleep(reporting_interval_seconds)
analysis_samples <- (((reports - 1) * sample_rate) + 1) : (reports * sample_rate)
abs_max <- max(abs(buffer[analysis_samples]), na.rm = TRUE)
print(sprintf('Max Value = %2.3f dB FS', 20*log10(abs_max) ))
}

# play back the buffer
play(buffer)

关于r - 使用R进行实时音频分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61372684/

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