python - 使用 python 降低音频剪辑的音量时出错

标签 python pydub

我尝试使用 pydub 降低或提高音频剪辑的音量。 但是当我这样做时,出现以下错误。

 c:/Users/KalyanDk/vsprojects/Games/playsound.py
C:\Users\KalyanDk\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pydub\utils.py:165: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
  warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
C:\Users\KalyanDk\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pydub\utils.py:179: RuntimeWarning: Couldn't find ffplay or avplay - defaulting to ffplay, but may not work
  warn("Couldn't find ffplay or avplay - defaulting to ffplay, but may not work", RuntimeWarning)
Traceback (most recent call last):
  File "c:/Users/KalyanDk/vsprojects/Games/playsound.py", line 12, in <module>
    play(louder_song)
  File "C:\Users\KalyanDk\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pydub\playback.py", line 71, in play
    _play_with_ffplay(audio_segment)
  File "C:\Users\KalyanDk\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pydub\playback.py", line 18, in _play_with_ffplay
    seg.export(f.name, "wav")
  File "C:\Users\KalyanDk\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pydub\audio_segment.py", line 780, in export
    out_f = _fd_or_path_or_tempfile(out_f, 'wb+')
  File "C:\Users\KalyanDk\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pydub\utils.py", line 57, in _fd_or_path_or_tempfile
    fd = open(fd, mode=mode)
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\KalyanDk\\AppData\\Local\\Temp\\tmposf_nhdb.wav'

我无法理解出了什么问题。这是我的代码

from pydub import AudioSegment
from pydub.playback import play

song = AudioSegment.from_wav("Bounce.wav")

louder_song = song + 6

quieter_song = song - 3

play(louder_song)

louder_song.export("Bounce.wav", format='wav')'''

音频文件位于当前 python 文件所在的同一文件夹中。

最佳答案

尝试安装 simpleaudio:pip install simpleaudio

Pydub 在整个程序中多次使用 NamedTemporaryFile,包括在 play() 方法中。 NamedTemporaryFile 处理基本文件操作的方式在跨平台上存在一些明显的不一致。我相信 simpleaudio 将绕过在 play() 方法中调用 NamedTemporaryFile 的代码,尽管我不清楚这是否解决了 pydub 中 NamedTemporaryFile 的所有实例的问题。 Simpleaudio 确实为我解决了这个问题 - 不需要配置,只需安装即可。

引用: https://github.com/jiaaro/pydub/issues/343

关于python - 使用 python 降低音频剪辑的音量时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60234768/

相关文章:

python - 如何检测字符串后缀并从列表中删除这些后缀元素? - Python

python - 为什么开罗会弄乱我的颜色?

python - Pydub 导出错误 - 手动选择编码器

python - Pydub 系统找不到指定的文件

python - 尝试在屏幕上调用多个 Sprite 会导致故障?

python - 使用 pyinstaller 编译时找不到 exe 文件

python - DRF 3 - 使用表创建多对多更新/创建序列化程序

python - pydub AudioSegment.export 正在锁定 smb 共享上的文件。无法删除该文件

python - Pydub from_mp3 给出 [Errno 2] No such file or directory

python - 如何在python中根据静音分割音频文件并重叠最后说2秒