V1.7a
- esses scripts estão o mais simples possível,
- quanto mais se tenta efeitos sonoros mirabolantes, mais fácil estragar o audio final.
DE FORMA ALGUMA ISSO já é UMA APLICAÇÃO PARA USUÁRIO FINAL!
- Para flexibilidade, separei em dois scripts.
- Os playbacks devem ser formato WAV de preferencia nao ADPCM Microsoft.
- Coloque os playback na mesma pasta, ex, “We_are_the_Champions.wav”
- Nunca grave sem fones de ouvido, pois não é para gravar a saída do playback no arquivo da voz.
- O arquivo de voz gravado passa por processos de transformação e filtros, que o timbre dos instrumentos não é válido para o algoritmo.
- o princípio de todo bom resultado é ajustar o volume do microfone
- volume de input mto alto vai distorcer sua voz
- gritar não é cantar, mas se quiser pode, só vai ficar ruim seu karaoke
- teste antes de pegar o jeito, o volume do microfone em si que resulta numa voz decente
- depois também ajuste o volume do playback se necessario, isso é outra fonte de empecilhos para um bom resultado
- quando você roda o script yeah.sh ele aciona o módulo de loopback do input,
- para q você ouça sua própria voz quando estiver gravando
- também para ajustar antes de gravar definitivamente, sua voz o microfone em função do volume do playback
para gravar você usa:
./yeah.sh We_are_the_Champions
(note que o comando recebe o nome da arquivo como parametro, mas sem extensao)
- imediatamente ele começa a tocar o playback gravando o input da placa em um arquivo
- Pressionar CTRL+C uma UNICA vez, interrompe a gravação e salva o q foi gravado.
O script automaticamente chama o go.sh — Este script executa o mix do input com o arquivo do playback e aplica os fitros. Assim que o ffmpeg terminar a pipeline, ele executa o mplayer para você ouvir a mazela que acabou de fazer 🙂
São dois scripts separados para ser bem fácil mudar se você quiser a programação para tentar adaptar. Rodando porventura
./go.sh We_are_the_Champions
assim ele nao grava de novo, apenas aplica novamente os filtros
O nome do produto final ficará “We_are_the_Champions_go.mp3”
Note que sempre que você rodar o ./yeah.sh você vai sobrescrever a gravação anterior
GO NUTS, ppl!
Requisitos de instalação
- sox – Swiss army knife of sound processing
- ffmpeg – Tools for transcoding, streaming and playing of multimedia files
- mplayer – movie player for Unix-like systems
- autotalent – pitch correction LADSPA plugin
- pulseaudio-utils – Command line tools for the PulseAudio sound server
- alsa-utils – Utilities for configuring and using ALSA
- Steve Harris LADSPA plugins
No Ubuntu instale esses pacotes e ele vai puxar as dependencias:
sudo apt install -y sox ffmpeg mplayer autotalent pulseaudio-utils alsa-utils swh-plugins;
explicação do comando da última versão
Este comando do FFmpeg é usado para aprimorar as vozes em um arquivo de áudio ${1}_voc.wav, processando-o com vários filtros e depois misturando-o com outro arquivo de áudio ${1}.wav. Aqui está uma explicação de cada parte do comando:
Arquivos de Entrada: -i ${1}_voc.wav -i ${1}.wav
${1}_voc.wav: O arquivo de entrada contendo as vozes.
${1}.wav: O arquivo de entrada contendo a música ou áudio de fundo.
Filtro Complexo:
Preprocessing with Autotalent:
Noise Reduction and Equalization:
adeclip: Remove clipping distortion from audio.
anlmdn: Apply noise reduction using a speech noise suppressor.
Autotalent Pitch Correction:
ladspa=tap_autotalent:plugin=autotalent: Correct pitch using Autotalent plugin.
Additional Processing:
afftdn: Adaptive Free-Form Time-Domain Noise Reduction.
Equalization: Adjust frequency response with three equalizer bands centered at 150 Hz, 800 Hz, and 5000 Hz.
Firequalizer: Apply additional gain adjustments to specific frequency bands.
Treble: Boost high-frequency content.
Enhancement with Effects:
Echo Effect:
aecho: Apply echo effect with the following parameters:
Delay Time: 0.8 seconds
Feedback Volume: 0.7
Number of Echoes: 300
Echo Decay: 0.05
Fast Lookahead Limiter:
ladspa=fast_lookahead_limiter_1913: Apply dynamic range compression to control peaks.
SC4 Compressor:
ladspa=sc4_1882: Apply dynamic range compression to further control peaks.
Masterization:
Loudness Normalization:
loudnorm: Normalize audio to -16 LUFS Integrated Loudness with an 11 LU Loudness Range and a True Peak of -1.5 dBFS.
Format Conversion:
aformat: Convert audio to floating-point format with a sample rate of 44100 Hz and stereo channel layout.
Resampling:
aresample: Resample audio using the SoX Resampler with high-quality settings.
Mixing:
amix: Mix the processed vocal and the original audio with a 40:60 weight ratio.
Usage:
To use this audio processing pipeline, replace ${1} with the input file name (without extension) and execute the provided ffmpeg command. The processed audio will be saved as ${1}_go.wav and played using the mplayer utility.
Saída: -ar 44100 ${1}_go.wav
Define a taxa de amostragem de áudio de saída como 44100 Hz e salva o resultado como ${1}_go.wav.
Reprodução: && mplayer ${1}_go.wav
Reproduz o arquivo de áudio resultante ${1}_go.wav usando mplayer após a execução do comando FFmpeg.
- Se os arquivos de áudio de entrada tiverem diferentes frequências de amostragem, é uma boa prática convertê-los para a mesma frequência antes de misturá-los, a fim de evitar distorções e outros problemas.
- Você pode fazer isso usando o filtro aresample do FFmpeg
- Essas são as operações realizadas no comando ffmpeg para processar o áudio vocal e instrumental.
- Cada filtro desempenha um papel específico na manipulação do áudio para alcançar o resultado desejado.
- Os filtros na ordem errada podem prejudicar muito a qualidade do resultado!!!!!