Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Raise_子异常输出_Python_Exception_Audio_Wav_Pydub - Fatal编程技术网

Python Raise_子异常输出

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

我正在尝试让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(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?