繁体   English   中英

将MP3转换为WAV

[英]Convert MP3 to WAV

我正在尝试将.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"])

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")

查看此链接是否无效

最后它如下工作

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM