Scripting com Python
Como automatizar tarefas do Audacity usando scripts Python com mod-script-pipe.
O que você vai aprender
- Entender o mod-script-pipe
- Configurar o Audacity para scripting
- Escrever scripts Python básicos
- Automatizar tarefas repetitivas
- Integrar com fluxos de trabalho externos
Antes de começar
- Python 3 instalado
- Audacity 3.6+ instalado
- Familiaridade com linha de comando
O que é mod-script-pipe?🔗
O mod-script-pipe é um módulo do Audacity que permite controle externo via named pipes (sockets). Scripts Python (ou qualquer linguagem) podem enviar comandos ao Audacity e receber respostas.
📷 Fluxo: Python → named pipe → Audacity → processamento → resposta
script-pipe-flow.png
Configurando o Audacity🔗
Habilitar o mod-script-pipe🔗
Edit > Preferences...→Modules- Encontre mod-script-pipe
- Mude para New (ou Enabled)
- Reinicie o Audacity
O mod-script-pipe vem incluído no Audacity, mas pode estar desabilitado por padrão.
O Protocolo de Comunicação🔗
O script envia comandos como texto via named pipe:
- Windows:
\\.\pipe\ToSrvPipee\\.\pipe\FromSrvPipe - Linux/macOS:
/tmp/audacity_script_pipe.to.*e/tmp/audacity_script_pipe.from.*
Comandos são strings terminadas por newline.
Primeiro Script Python🔗
import sys
import os
if sys.platform == 'win32':
to_pipe = r'\\.\pipe\ToSrvPipe'
from_pipe = r'\\.\pipe\FromSrvPipe'
else:
to_pipe = os.path.expanduser('~/tmp/audacity_script_pipe.to.1000')
from_pipe = os.path.expanduser('~/tmp/audacity_script_pipe.from.1000')
def send_command(cmd):
with open(to_pipe, 'w') as f:
f.write(cmd + '\n')
f.flush()
def get_response():
with open(from_pipe, 'r') as f:
return f.readline().strip()
# Exemplo: criar novo projeto
send_command('New:')
print(get_response())
# Importar arquivo
send_command('Import2:Filename=/caminho/para/audio.wav')
print(get_response())Comandos Úteis🔗
| Comando | Descrição |
|---|---|
New: | Novo projeto |
Open:Filename=path | Abrir projeto |
Import2:Filename=path | Importar áudio |
Export:Filename=path | Exportar áudio |
Select:Start=0 End=10 | Selecionar trecho |
Silence: | Silenciar seleção |
Effect:Compressor:... | Aplicar efeito |
Play: | Reproduzir |
Stop: | Parar |
Exemplo: Processamento em Lote🔗
import os
# Lista de arquivos para processar
files = ['audio1.wav', 'audio2.wav', 'audio3.wav']
for f in files:
send_command(f'Import2:Filename={f}')
send_command('SelectAll:')
send_command('Effect:NoiseReduction:NoiseReduce=6')
send_command('Effect:Normalize:PeakLevel=-1')
output = f.replace('.wav', '_processed.wav')
send_command(f'Export:Filename={output}')
send_command('RemoveTracks:')
print(f'Processado: {f} → {output}')
📷 Script Python processando múltiplos arquivos via pipe
python-batch.png
Integrando com Outros Fluxos🔗
O scripting permite integrar o Audacity com:
- FFmpeg: converter formatos antes/depois
- Whisper: transcrever áudio automaticamente
- FFmpeg + Python: pipeline completo de processamento
- CI/CD: processamento automatizado em servidores
Erros comuns
- Audacity precisa estar aberto.
- Caminhos absolutos.
- Respostas assíncronas.
- Erros silenciosos.
Perguntas para reflexão
- Qual módulo permite scripting no Audacity?
- mod-script-pipe
- Como o Python se comunica com o Audacity?
- Named pipes
- Qual comando importa um arquivo?
- Import2:Filename=path
- O Audacity precisa estar aberto para scripting?
- Sim
Você aprendeu
- mod-script-pipe permite controle externo
- Comunicação via named pipes
- Python envia comandos como texto
- Útil para batch processing
- Audacity deve estar aberto
- Integre com FFmpeg, Whisper, etc.