我试图将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)
在我自己的独立脚本中。
还有什么可以检查的?
这个问题与 pydub 如何管理临时音频文件有关。Pydub目前有一个bug,它会多次打开一个临时文件,这在linux上是可行的,但在windows上会导致观察到的bug(也可能在mac os上,我还没有检查)。一个补救措施是 pip install simpleaudio
安装后,它将作为pydub的默认临时文件管理系统。