Este projeto é um micro serviço em Go que processa arquivos de áudio para whatsapp, os converte para o formato opus e retorna tanto a duração do áudio quanto o arquivo convertido em base64. O serviço aceita arquivos de áudio enviados como form-data, base64 ou URL.
Antes de começar, você precisará ter os seguintes itens instalados:
- Go (versão 1.21 ou superior)
- Docker (para rodar o projeto em um container)
- FFmpeg (para processamento de áudio)
Clone este repositório em sua máquina local:
git clone https://github.com/EvolutionAPI/evolution-audio-converter.git
cd evolution-audio-converter
Instale as dependências do projeto:
go mod tidy
O serviço depende do FFmpeg para converter o áudio. Certifique-se de que o FFmpeg está instalado no seu sistema.
-
No Ubuntu:
sudo apt update sudo apt install ffmpeg
-
No MacOS (via Homebrew):
brew install ffmpeg
-
No Windows, baixe o FFmpeg aqui e adicione-o ao
PATH
do sistema.
Crie um arquivo .env
no diretório raiz do projeto com a seguinte configuração:
PORT=4040
API_KEY=sua_chave_api_secreta_aqui
Isso define a porta onde o serviço será executado.
Para rodar o serviço localmente, use o seguinte comando:
go run main.go
O servidor estará disponível em http://localhost:4040
.
Se preferir rodar o serviço em um container Docker, siga os passos abaixo:
-
Buildar a imagem Docker:
docker build -t audio-service .
-
Rodar o container:
docker run -p 4040:4040 --env-file=.env audio-service
Isso irá iniciar o container na porta especificada no arquivo
.env
.
Você pode enviar requisições POST
para o endpoint /process-audio
com um arquivo de áudio nos seguintes formatos:
- Form-data (para enviar arquivos)
- Base64 (para enviar o áudio codificado em base64)
- URL (para enviar o link do arquivo de áudio)
Todas as requisições devem incluir o cabeçalho apikey
com o valor da API_KEY
configurada no arquivo .env
.
curl -X POST -F "file=@caminho/do/audio.mp3" http://localhost:4040/process-audio \
-H "apikey: sua_chave_api_secreta_aqui"
curl -X POST -d "base64=$(base64 caminho/do/audio.mp3)" http://localhost:4040/process-audio \
-H "apikey: sua_chave_api_secreta_aqui"
curl -X POST -d "url=https://exemplo.com/caminho/para/audio.mp3" http://localhost:4040/process-audio \
-H "apikey: sua_chave_api_secreta_aqui"
A resposta será um JSON contendo a duração do áudio e o arquivo convertido em base64:
{
"duration": 120,
"audio": "UklGR... (base64 do arquivo)"
}
duration
: A duração do áudio em segundos.audio
: O arquivo de áudio convertido para o formato opus, codificado em base64.
Este projeto está sob a licença MIT.