如何将多个 mp3 文件合并为静音?
How to merge multiple mp3 files with silence on between?
当我尝试使用 pydub
和 glob
合并文件夹中的多个 .mp3 文件以遍历文件时,出现以下错误。
from pydub import AudioSegment
from os import getcwd
import glob
cwd = (getcwd()).replace(chr(92), '/')
export_path = f'{cwd}/result.mp3'
MP3_FILES = glob.glob(pathname=f'{cwd}/*.mp3', recursive=True)
silence = AudioSegment.silent(duration=15000)
count, lenght = 0, len(MP3_FILES)
for n, mp3_file in enumerate(MP3_FILES):
mp3_file = mp3_file.replace(chr(92), '/')
count += 1
if count == 1:
print(n, mp3_file)
audio1 = AudioSegment.from_mp3(mp3_file)
elif count == 2:
audio2 = AudioSegment.from_mp3(mp3_file)
elif count == 3:
res = audio1 + silence + audio2
print('Merging')
count = 0
if n+1 == lenght:
res.export(export_path, format='mp3')
print('\ndone!')
预期输出: 一个音频文件,原始音频之间有静音。
AUDIO_RESULT: audio1 silence audio2 silence audio3...
回溯:
[mp3 @ 0000021b440ec740] Failed to read frame size: Could not seek to 1026.
C:\Users\Acer\Documents file.mp3: Invalid argument
它说 - Invalid argument
这可能是由文件路径中使用的 space 引起的。
如果您使用命令行传递 file/folder 路径,路径字符串应在 引号("")
内传递
"C:\Users\Acer\Documents\Upwork\Shashank Rai\mp3 segmented delay speech.mp3"
然而,在 Windows OS 中,有时 C:\
会产生问题,因为一个单独的 \
用于特殊字符。你能用双 \
测试吗?
"C:\Users\Acer\..."
编辑 1:
你能测试一下吗 -
from pathlib import Path
cwd = Path.cwd()
MP3_FILES = list(cwd.rglob('*.mp3'))
...
...
当我尝试使用 pydub
和 glob
合并文件夹中的多个 .mp3 文件以遍历文件时,出现以下错误。
from pydub import AudioSegment
from os import getcwd
import glob
cwd = (getcwd()).replace(chr(92), '/')
export_path = f'{cwd}/result.mp3'
MP3_FILES = glob.glob(pathname=f'{cwd}/*.mp3', recursive=True)
silence = AudioSegment.silent(duration=15000)
count, lenght = 0, len(MP3_FILES)
for n, mp3_file in enumerate(MP3_FILES):
mp3_file = mp3_file.replace(chr(92), '/')
count += 1
if count == 1:
print(n, mp3_file)
audio1 = AudioSegment.from_mp3(mp3_file)
elif count == 2:
audio2 = AudioSegment.from_mp3(mp3_file)
elif count == 3:
res = audio1 + silence + audio2
print('Merging')
count = 0
if n+1 == lenght:
res.export(export_path, format='mp3')
print('\ndone!')
预期输出: 一个音频文件,原始音频之间有静音。
AUDIO_RESULT: audio1 silence audio2 silence audio3...
回溯:
[mp3 @ 0000021b440ec740] Failed to read frame size: Could not seek to 1026.
C:\Users\Acer\Documents file.mp3: Invalid argument
它说 - Invalid argument
这可能是由文件路径中使用的 space 引起的。
如果您使用命令行传递 file/folder 路径,路径字符串应在 引号("")
内传递"C:\Users\Acer\Documents\Upwork\Shashank Rai\mp3 segmented delay speech.mp3"
然而,在 Windows OS 中,有时 C:\
会产生问题,因为一个单独的 \
用于特殊字符。你能用双 \
测试吗?
"C:\Users\Acer\..."
编辑 1: 你能测试一下吗 -
from pathlib import Path
cwd = Path.cwd()
MP3_FILES = list(cwd.rglob('*.mp3'))
...
...