在python中播放AudioSegment时被拒绝权限

问题描述 投票:0回答:1

我试图将mp3文件按静音分割成块,得到的结果是

  File "C:\Anaconda3\envs\py27\lib\site-packages\pydub\playback.py", line 71, in play
    _play_with_ffplay(audio_segment)
  File "C:\Anaconda3\envs\py27\lib\site-packages\pydub\playback.py", line 18, in _play_with_ffplay
    seg.export(f.name, "wav")
  File "C:\Anaconda3\envs\py27\lib\site-packages\pydub\audio_segment.py", line 780, in export
    out_f = _fd_or_path_or_tempfile(out_f, 'wb+')
  File "C:\Anaconda3\envs\py27\lib\site-packages\pydub\utils.py", line 57, in _fd_or_path_or_tempfile
    fd = open(fd, mode=mode)
IOError: [Errno 13] Permission denied: 'd:\\tmp\\tmpo5dfj5.wav'

当我想玩的时候

        audio = AudioSegment.from_mp3(lessonFilePath)
        chunks = split_on_silence(audio, min_silence_len=2000, silence_thresh=-16)
        ordinalAudio = 0
        chunk = chunks[ordinalAudio]
        play(chunk) # here it is rising

我有这个目录的访问权限,我可以执行

fd = open(fd, mode=mode)

在我自己的独立脚本中。

还有什么可以检查的?

python-2.7 audio permissions mp3 audiosegment
1个回答
1
投票

这个问题与 pydub 如何管理临时音频文件有关。Pydub目前有一个bug,它会多次打开一个临时文件,这在linux上是可行的,但在windows上会导致观察到的bug(也可能在mac os上,我还没有检查)。一个补救措施是 pip install simpleaudio 安装后,它将作为pydub的默认临时文件管理系统。

© www.soinside.com 2019 - 2024. All rights reserved.