我正在尝试将.mp3文件转换为.wav格式。当我在“命令提示符”中使用以下命令时,我可以获得所需的输出。它以.wav格式给我输出文件
sox "C:\Users\Desktop\Audio File\Call.mp3" --rate 16k --bits 16 --channels 1 "C:\Users\Mayank\Desktop\Audio File\Call.wav"
我尝试通过Python进行相同的操作。以下是该代码:
import subprocess
retcode = subprocess.call(['sox', 'C:\Users\Desktop\Audio File\Call.mp3',
'--rate 16k', '--bits 16', '--channels 1',
'C:\Users\Desktop\Audio File\Call.wav'])
这样做时我遇到了错误。我是python的新手,请让我知道如何实现:
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
我尝试使用双“ \”而不是“ \”,但出现错误
FileNotFoundError: [WinError 2] The system cannot find the file specified
我也尝试了以下所有选项。.所有这些选项都给出相同的错误“找不到指定的文件”。.
import subprocess
retcode = subprocess.call(['sox', "C:\\Users\\Desktop\\Audio File\\Call.mp3",
'--rate 16k', '--bits 16', '--channels 1',
"C:\\Users\\Desktop\\Audio File\\Call.wav"])
import subprocess
retcode = subprocess.call(['sox', r'C:\Users\Desktop\Audio File\Call.mp3',
'--rate 16k', '--bits 16', '--channels 1',
r'C:\Users\Desktop\Audio File\Call.wav'])
import subprocess
retcode = subprocess.call(['sox', "C:/Users/Mayank/Desktop/Audio File/Call.mp3",
'--rate 16k', '--bits 16', '--channels 1',
"C:/Users/Desktop/Audio File/Call.wav"])
答案 0 :(得分:1)
sox不支持mp3到wav的转换。 要将mp3转换为wav,可以使用以下命令。它将完美运行。
pip install pydub
apt-get install ffmpeg
从MP3到WAV的转换
from os import path
from pydub import AudioSegment
# files
src = "transcript.mp3"
dst = "test.wav"
# convert wav to mp3
sound = AudioSegment.from_mp3(src)
sound.export(dst, format="wav")
检查此link是否无效
答案 1 :(得分:0)
最后它的工作原理如下
import subprocess
sox = 'C:/Program Files (x86)/sox-14-4-2/sox.exe'
infile = 'C:/Users/Desktop/Audio File/Call.mp3'
outfile = 'C:/Users/Desktop/Audio File/Call.wav'
extra = '--rate 16k --bits 16 --channels 1'
command = """{0} "{1}" {2} "{3}" """.format(sox,infile,extra,outfile)
subprocess.call(command)