【发布时间】:2019-03-11 03:50:31
【问题描述】:
我正在尝试将 .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"])
【问题讨论】:
-
使用正斜杠或原始字符串
''C:/Users/Desktop/Audio File/Call.mp3'',或转义反斜杠''C:\\Users\\Desktop\\Audio File\\Call.mp3''或r'C:\Users\Desktop\Audio File\Call.mp3','\U是 unicode 标识符,请投票关闭,因为这是一个错字。请注意,您还需要对输出路径执行相同的操作。关于您的第二个错误,该文件是否存在? -
我编辑了我的问题..我也尝试了所有这些选项..它们都给出了相同的错误。仍然无法纠正问题。 :(
-
问题:你为什么要这样做? MP3 是一种压缩格式,因此根据定义,音频质量不会有任何改善,只是文件更大。
-
我需要这个来将它提供给 google speech-2-text api....raw 格式.. .raw 也有同样的问题..
-
看起来在子进程中找不到“可执行文件” hp, ht, pid, tid = _winapi.CreateProcess(executable, args, # no special security None, None, int(not close_fds), creationflags, env, cwd, startupinfo)