如何在 python 中获取声音文件(.wav)的时间长度? [复制]

Posted

技术标签:

【中文标题】如何在 python 中获取声音文件(.wav)的时间长度? [复制]【英文标题】:How can I get the time lenght of a sound file (.wav) in python? [duplicate] 【发布时间】:2021-07-07 14:12:41 【问题描述】:

我需要它知道我的一个程序中的 .wav 文件有多长(及时)。

我知道我可以通过属性进入,但我不知道如何使用 python 访问它们。 我试图找到带有 os 和 pathlib 的命令,但我找不到可以为我提供声音文件时间或所有属性的命令。

【问题讨论】:

为什么不读取文件并除以每秒样本数? ***.com/questions/7833807/… 看看这个 【参考方案1】:

这个问题类似这样: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))

【讨论】:

以上是关于如何在 python 中获取声音文件(.wav)的时间长度? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何从内存中播放 Wav 声音样本

如何使用 python 连接两个 wav 文件?

如何在python中播放wav文件?

如何在 .wav 文件中查找特定声音的时间戳?

如何将声音字节转换为可以在变量中访问的 .wav 文件?

python语音录制声音和保存wav文件的库文件是啥