实时录音分析库

rcaudio的Python项目详细描述


rcaudio:实时音频录制和分析库

简介

rcaudio是一个实时音频分析库,允许您通过麦克风简单地录制音频并进行分析。

它支持实时分析:

  • 原始音频数据
  • 音量
  • 节拍信息
  • DIY方法提取函数

对于中文文档:中文文档

安装

pip install rcaudio

用法

核心记录器

CoreRecorder用于获取原始数据。启动时,音频数据将存储在CoreRecorder.buffer中。

fromrcaudioimportCoreRecorderCR=CoreRecorder(time=10,#How much time to recordsr=1000#sample rate)CR.start()whileTrue:ifnotCR.buffer.empty():x=CR.buffer.get()print('*'*int(abs(x)))

简易录音机

在大多数情况下,我们使用SimpleRecorder。为了提高效率,应该只实例化一次SimpleRecorder

这个类可以注册几个Analyzer

当函数start()调用时,它将开始通过麦克风录制,并刷新所有Analyzer

分析仪

BaseAnalyzer扩展的所有类都可以注册到SimpleRecorder。例如VolumeAnalyzer可以得到麦克风的当前音量。

importtimefromrcaudioimportSimpleRecorder,VolumeAnalyzerSR=SimpleRecorder()VA=VolumeAnalyzer(rec_time=1)SR.register(VA)SR.start()whileTrue:print("VOLUME : ",VA.get_volume())time.sleep(1)

节拍分析器可以从音乐中预测节拍。(但是,会有一些延迟。)

SR=SimpleRecorder(sr=20000)BA=BeatAnalyzer(rec_time=15,initial_bpm=120,smooth_ratio=.8)SR.register(BA)SR.start()whileTrue:print(BA.block_until_next_beat())

特性分析器可用于生成所有用户定义的声学特性。只需重写data_process函数。(当前函数是zero-crossing rate的计算。

SR=SimpleRecorder(sr=1000)FA=FeatureAnalyzer(refresh_time=1)SR.register(FA)SR.start()cpos=0whileTrue:iflen(FA.result)>cpos:print(FA.result[cpos])cpos+=1time.sleep(.01)

一些注释

大多数功能的时间延迟约为1-2秒。我做了很多努力让beatanalyzer看起来像是实时的。然而,对于FeatureAnalyzer,如果特征提取功能与麦克风记录相比太慢,则延迟可能会变大。降低采样率是一个解决办法,但更好的办法是自己动手做一个分析仪。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将字符串转换为自定义对象   java如何从socket方法获取数据?   Java中的soap读取回车和新行   java在单击时替换图像   java推荐的使用RXJava执行异步任务的方法   java MySql连接器JDBC驱动程序不支持连接池吗?   java将活动堆栈清理到顶部   java计数用户输入的数量   java从webservice下载大文件导致应用程序性能问题   JavaLocalDate。EPOCH不可用   java如何在使用Selenium等待一定时间后,在页面无法加载(get(url))时自动刷新页面   java Calendar setLenient方法不允许检查年份字段的健全性   java Eclipse和intelliJ 安卓 SDK问题   java为什么我可以在没有super关键字的情况下调用父方法?   java iText的PDF格式不好