Criar um mesclador de áudio é um desafio empolgante para qualquer desenvolvedor interessado em trabalhar com processamento de sinais de áudio. Agora, imagine criar um mesclador de áudio que possa converter áudios mono em um áudio stereo dual channel usando a linguagem de programação Python. Isso é exatamente o que o projeto que eu estava envolvido exigia, e eu não poderia estar mais animado em compartilhar como consegui resolver esse desafio.
Neste artigo, vou compartilhar com você o processo que usei para criar um script Python capaz de transformar áudios mono em áudios stereo dual channel. Você aprenderá como o processamento de sinais de áudio funciona, as ferramentas Python necessárias para realizar essa conversão e como criar um código eficiente e fácil de usar para mesclar áudios em stereo dual channel. Então, vamos começar!
import os
from pydub import AudioSegment
# Especificando a pasta de entrada e de saída
input_folder = "temp"
output_folder = "audio"
# Verificando se a pasta de saída existe, se não existir, criá-la
if not os.path.exists(output_folder):
os.mkdir(output_folder)
# Percorre a pasta de entrada em busca de arquivos -in e mescla com o respectivo arquivo -out
for file in os.listdir(input_folder):
if file.endswith("-in.WAV"):
# Carregando os arquivos de áudio como objetos AudioSegment
audio1 = AudioSegment.from_wav(os.path.join(input_folder, file))
audio2 = AudioSegment.from_wav(os.path.join(input_folder, file.replace("-in.WAV", "-out.WAV")))
# Verificando se os dois arquivos têm o mesmo número de canais (stereo/mono)
if audio1.channels != audio2.channels:
raise ValueError("Os arquivos de entrada não têm o mesmo número de canais")
# Mesclando os dois arquivos de áudio em um único arquivo stereo
merged_audio = audio1.overlay(audio2)
# Salvando o arquivo de áudio mesclado como um arquivo WAV na pasta de saída
output_file = os.path.join(output_folder, file.replace("-in.WAV", ""))
merged_audio.export(output_file, format="wav")
# Excluindo os arquivos de entrada originais -in e -out da pasta audiofile_input
os.remove(os.path.join(input_folder, file))
os.remove(os.path.join(input_folder, file.replace("-in.WAV", "-out.WAV")))
# Imprimindo mensagem de sucesso
print("Arquivos", file, "e", file.replace("-in.WAV", "-out.WAV"), "mesclados com sucesso e salvo em", output_file)
Será necessário instalar algumas libs para que o pydub funcione, caso não tenha já instalado, mas isso o python vai avisar a vocês caso a caso quando tentar correr o codigo.
Até a proxima.