首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python读取.sph文件

用Python读取.sph文件
EN

Stack Overflow用户
提问于 2015-05-26 05:05:03
回答 3查看 4.3K关注 0票数 6

我正在做一个项目,我需要从音频信号中提取Mel-倒谱频率系数(MFCC)。此过程的第一步是将音频文件读入Python。

我拥有的音频文件以.sph格式存储。我无法找到将这些文件直接读入Python的方法。我希望有采样率,和数据的NumPy数组,类似于wav读取的工作方式。

由于我要处理的音频文件是大的,我宁愿不转换为.wav格式阅读。请你提出一种可行的方法好吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-05-26 05:15:05

我反对转换为.wav文件,因为我认为这需要很长时间。情况并非如此。因此,使用SoX进行转换符合我的需要。

当在windows文件夹中运行时,以下脚本将该文件夹中的所有文件转换为.wav文件。

代码语言:javascript
复制
cd %~dp0
for %%a in (*.sph) do sox "%%~a" "%%~na.wav"
pause

之后,可以使用以下命令读取文件。

代码语言:javascript
复制
import scipy.io.wavfile as wav
(rate,sig) = wav.read("file.wav")
票数 6
EN

Stack Overflow用户

发布于 2020-12-25 09:20:16

基于本的回答,我能够用利布罗萨读取.sph文件,因为它可以读取audioreadffmpeg可以读取的所有内容。

代码语言:javascript
复制
import librosa
import librosa.display # You need this in librosa to be able to plot

import matplotlib.pyplot as plt

clip_dir = os.path.join("..","babel","LDC2016S10.sph") 
audio,sr = librosa.load(clip_dir,sr=16000) # audio is a numpy array

fig, ax = plt.subplots(figsize=(15,8))
librosa.display.waveplot(audio, sr=sr, ax=ax) 
ax.set(title="LDC2016S10.sph waveform")

票数 3
EN

Stack Overflow用户

发布于 2018-06-08 14:43:45

您可以通过audioread读取带有ffmpeg编解码器的sph文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30449860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档