前面尝试过用torchaudio读取URL下载的音频,在这里,但是这要求较新版本(0.8.0)的torchaudio。如果要用到torch,那么torch的版本也要比较新(1.8.0),因为torch的版本跟torchaudio是有对应关系的。如果要用GPU,1.8.0的torch需要最低10.2版本的cuda,10.2版本的cuda又要求较高版本的显卡驱动。
由于升级torchaudio导致的改动比较大,所以想寻找更加便捷的方式,它就是soundfile。
安装
pip install PySoundFile
安装完试试执行import soundfile
,如果报错,大概意思是缺少sndfile库,那么还要安装libsndfile
。
在centos7下是这样安装的:yum install libsndfile
使用
import soundfile as sf
import requests
from io import BytesIO
url = "https://downsc.chinaz.net/Files/DownLoad/sound1/202111/14994.wav" # 音频的URL
req = requests.get(url) # 下载音频
bt = BytesIO(req.content) # req.content是bytes类型的数据,得通过BytesIO包装一下
audio = sf.read(bt)