【发布时间】:2021-07-07 14:12:41
【问题描述】:
我需要它知道我的一个程序中的 .wav 文件有多长(及时)。
我知道我可以通过属性进入,但我不知道如何使用 python 访问它们。 我试图找到带有 os 和 pathlib 的命令,但我找不到可以为我提供声音文件时间或所有属性的命令。
【问题讨论】:
-
为什么不读取文件并除以每秒样本数?
标签: python
我需要它知道我的一个程序中的 .wav 文件有多长(及时)。
我知道我可以通过属性进入,但我不知道如何使用 python 访问它们。 我试图找到带有 os 和 pathlib 的命令,但我找不到可以为我提供声音文件时间或所有属性的命令。
【问题讨论】:
标签: python
这个问题类似这样:Get .wav file length or duration
您可以通过了解文件中的样本数以及采样率(每秒样本数)来找到 .wav 或 .mp3 的持续时间。从中找出持续时间(以秒为单位)的公式是:duration = (samples/sample_rate)。
我发现上述问题的解决方案之一特别简单且有用(Dave C 的回答)。虽然,首先您必须使用pip install soundfile 安装soundfile 模块,如果您不使用Anaconda,则必须安装numpy。完成此操作后,您可以简单地导入 soundfile 模块并使用其内置函数来查找采样率和采样数。
import soundfile as sf
f = sf.SoundFile('your_file.wav')
print('samples = {}'.format(len(f)))
print('sample rate = {}'.format(f.samplerate))
print('seconds = {}'.format(len(f) / f.samplerate))
【讨论】: