python-3.x - audioop.rms(fragment, width)中的fragment和width是什么意思

标签 python-3.x audio wav

我正在尝试用 python 分析一个 wav 文件并从 wav 中获取 rms 值。我正在使用 audioop.rms 从 wav 中获取值。我去做这个,我不知道fragment和width代表什么。我是 audioop 的新手,希望有人能解释一下。我也想知道在 python 中是否有更好的方法来执行此操作。

更新:我做了一些研究,发现 fragment 代表 wav 文件。我仍然需要弄清楚宽度是什么意思。

最佳答案

片段只是一大块数据。宽度是组织数据的字节大小。例如 8 位数据的宽度为 1,16 位数据的宽度为 2,依此类推。

```

import alsaaudio, audioop
self.input = alsaaudio.PCM(alsaaudio.PCM_CAPTURE,alsaaudio.PCM_NONBLOCK)
self.input.setchannels(1)
self.input.setrate(8000) 
self.input.setformat(alsaaudio.PCM_FORMAT_S16_LE)
self.input.setperiodsize(300)
length, data = self.input.read()
avg_i = audioop.avg(data,2)

``` 在示例中,我将 alsa 采集卡设置为使用 S16_LE 签名的 16 位 Little Endian,因此我必须将宽度设置为 2。因为片段只是 alsa 采集的数据。在您的情况下,wav 文件就是您的数据。

关于python-3.x - audioop.rms(fragment, width)中的fragment和width是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47253648/

相关文章:

audio - 实时声音路由...用另一个声音触发一个声音

python - 如何使用 openpyxl 仅解析工作簿中的特定工作表 - 或者如何忽略空工作表?

python - 根据字典中的另一个值从字典列表中检索一个值

java - 节拍器android应用程序AudioTrack releaseBuffer()错误

java - 获取计算机的音频输出

c# - 使用 NAudio 增加 WAV 文件的采样率导致 "static"

python - Tkinter 中的 Widgets 是类还是方法?

Python tkinter TreeView 列大小

android - 连接蓝牙设备时如何防止android选择Bluetooth A2DP路由

ios - iOS 是否支持 WAV 文件?