引自免费微信小程序:皆我百晓生
看起来你在尝试使用pydub
库将MP3文件转换为PCM格式,但在运行时遇到了警告。这个警告表明你的系统可能没有正确安装FFmpeg(ffprobe
是其一部分)或者avprobe
,这两个工具通常用于处理音频和视频文件。
为了解决这个问题,你需要确保你的系统上安装了FFmpeg。在CentOS 7上,可以按照以下步骤安装FFmpeg:
-
打开终端。
-
安装依赖包:
sudo yum install epel-release -y
-
添加多媒体存储库:
sudo yum-config-manager --add-repo http://download1.rpmfusion.org/free/el7/top/rpmfusion-free-release-7.noarch.rpm
sudo yum-config-manager --add-repo http://download1.rpmfusion.org/nonfree/el7/top/rpmfusion-nonfree-release-7.noarch.rpm
-
更新并安装FFmpeg:
sudo yum update -y
sudo yum install ffmpeg -y
-
验证安装:
ffmpeg -version
完成上述步骤后,你应该可以在Linux系统上使用ffprobe
,从而避免警告。然后再次运行你的Python代码,它应该能正常工作。
对于Mac电脑,你可以通过Homebrew进行安装。首先确保已经安装了Homebrew,如果没有,可以通过在终端执行以下命令来安装:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/main/install.sh)"
然后安装FFmpeg:
brew install ffmpeg
同样地,在Mac上验证安装:
ffmpeg -version
之后,再次运行你的Python代码,也应该能正常工作。
如果你仍然遇到问题,可能是由于pydub
库的问题。你可以尝试更新到最新版本,或者使用其他库,例如soundfile
来实现同样的功能。这是一个使用soundfile
的示例:
from pydub import AudioSegment
import soundfile as sf
# 使用pydub读取mp3文件
audio = AudioSegment.from_mp3(os.path.join(model_name_or_path, "statics/voice_file/voice.mp3"))
# 将音频数据提取出来
data = audio.get_array_of_samples()
frame_rate = audio.frame_rate
# 使用soundfile写入pcm文件
sf.write('output.pcm', data, frame_rate, 'PCM_16')
这段代码将从MP3文件中提取数据,并将其保存为pcm格式的文件。注意,这里我们使用的是16位的pcm格式,你可以根据需要调整。