Python Raise_子异常输出
我正在尝试让pydub将2个音频wav文件混合到一个wav文件中。这是我目前的代码:Python Raise_子异常输出,python,exception,audio,wav,pydub,Python,Exception,Audio,Wav,Pydub,我正在尝试让pydub将2个音频wav文件混合到一个wav文件中。这是我目前的代码: from pydub import AudioSegment sound1 = AudioSegment.from_wav("Test_1.wav") sound2 = AudioSegment.from_wav("Test_2.wav") # mix sound2 with sound1, starting at 5000ms into sound1) output = sound1.overlay(so
from pydub import AudioSegment
sound1 = AudioSegment.from_wav("Test_1.wav")
sound2 = AudioSegment.from_wav("Test_2.wav")
# mix sound2 with sound1, starting at 5000ms into sound1)
output = sound1.overlay(sound2, position=5000)
# save the result
output.export("mixed.wav", format="wav")
以下是准确的错误日志:
Traceback (most recent call last):
File "heterodyning.py", line 10, in <module>
output.export("mixed.wav", format = "wav")
File "build/bdist.linux-armv6l/egg/pydub/audio_segment.py", line 234, in export
File "/usr/lib/python2.7/subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
但是,无论出于何种原因,每当我尝试运行它时,它都会引发一个raise_child异常,并告诉我没有这样的文件或目录,这是指我告诉它导出的最后一行。我不知道为什么。谁能告诉我为什么会这样 您当前的工作目录是什么样子的?如果其中没有mixed.wav文件,则output.exportmixed.wav,format=wav将失败,因为它不知道将叠加的声音放在哪里。您可以通过以下方式在python中打开文件:
mixed_file = open("mixed.wav", "wb")
在导出到文件之前执行此操作
你应该以这样的方式结束:
mixed_file = open("mixed.wav", "wb")
output.export(mixed_file, format="wav")
我可以确认,目前,我的代码将生成mixed.wav文件,但它实际上不会将混合音频放入其中。在这里添加代码来打开文件不起作用,它给了我完全相同的错误。好的。在查看了“wave”python库之后,导入它可能会很有用。然后可以执行类似于mixed_file=wave.openmixed.wav、w和mixed_file的操作。writeframesoutput@PhilipR. 您应该将其作为二进制文件mixed_file=openmixed.wav,wb打开,并且需要将该文件传递到导出方法:output.exportmixed_file,format=wav@PhilipR. 我怀疑找不到的文件不是mixed.wav。由于错误是从子进程冒出来的,这可能意味着它正在尝试调用ffmpeg,而这就是找不到的文件。不应该使用ffmpeg,事实上,在导出wav时,甚至不应该进行任何子进程调用。不过,所有其他格式都使用ffmpeg。@Jiaaro如果是这种情况,那么如何修复它?如何使其不使用ffmpeg?