2011-10-02 3 views
8

저는 파이썬에서 기본적인 오디오 믹싱을하고 싶습니다.어떻게 파이썬을 사용하여 오디오 파일을 혼합합니까?

예를 들면 : 나는 두 개의 mp3 파일을 가져와 함께 추가하고 하나의 mp3 파일을 반환하고 싶습니다. 다른 예 : 한 mp3 파일의 처음 10 초를 가져다가 다른 mp3 파일의 시작 부분에 추가하고 싶습니다.

이러한 작업을 수행하는 가장 좋은 방법은 무엇입니까? 나는 audioop와 같은 python 함수를 내장하고 싶지만 built in 함수를 사용하기 위해 좋은 튜토리얼이나 샘플 코드를 찾을 수 없다.

나는 문서를 살펴볼 것이지만 나는 꽤 혼란스럽고 이와 같은 일을하는 방법을 알 수 없다. 나는 파이썬 라이브러리가 mp3와 같은 것을 확신하지 못한다. 내가 본 물건의 대부분은 WAV 파일을 참조하는 것 같습니다. 그래서, 만약 그렇다면, 후속 질문은 조작과 다시 WAV로 mp3를 변환하는 쉬운 방법이있을 것이라고 생각합니까?

+0

을 거의 모든 경우에 당신이 처리하기 전에 WAV로 변환해야의 내가 생각할 수 있습니다. mp3는 압축 형식이므로 PCM 데이터를 조작하려면 먼저 압축을 풀어야합니다. –

+0

미안하지만 마지막 질문을 분명히해야합니다. "mp3를 WAV로 변환하고 파이썬으로 다시 ** 변환하는 쉬운 방법이 있습니까?" – user439299

답변

13

당신은 아주 쉽게 pydub를 사용하여이 작업을 수행 할 수 있습니다

from pydub import AudioSegment 

sound1 = AudioSegment.from_mp3("/path/to/file1.mp3") 
sound2 = AudioSegment.from_mp3("/path/to/file1.mp3") 

# mix sound2 with sound1, starting at 5000ms into sound1) 
output = sound1.overlay(sound2, position=5000) 

# save the result 
output.export("mixed_sounds.mp3", format="mp3") 
+0

이것은 이전 질문 및 답변이지만 여전히 관련이 있으며 여전히 작동합니다. 미래의 독자들을 위해 이것을 게시하십시오. –

1

python audiotools 프로젝트의 일부 코드를 확인할 수 있습니다. 일반적인 파이썬 패키지를 사용하는 명령 행 유틸리티 모음입니다. audiotools (trackcat)에 포함 된 유틸리티는 두 개 이상의 오디오 트랙을 만들 수 있습니다. 다른 (tracksplit)은 오디오 트랙을 분리 할 수 ​​있습니다 (.cue 파일 사용). 이들뿐만 아니라 포함 된 수많은 유틸리티는 mp3을 포함한 다양한 인코딩의 오디오 파일로 작업 할 수 있습니다.

0

과거에이 방법을 사용한 방법은 subprocess입니다. sox으로 전화하십시오.

예. subprocess.call(["sox", "in.1.mp3", "in.2.mp3", "out.mp3"])

관련 문제