Eu preciso juntar 2 arquivos audio wav em um só, utilizando java sound ou jmf.
um dos arquivos possui voz e o outro possui música, e eu preciso inserir o conteúdo do arquivo de música como fundo do arquivo de voz, fazendo uma espécie de mixagem.
E a mixagem precisa mesmo ser no seu software? Esse tipo de trabalho é mais fácil fazer em um software externo. Até porque, logo surgirão outros pedidos como baixar o volume de um dos arquivos, atrasar sua execução, etc.
Há outras opções para isso, como reproduzir os dois arquivos ao mesmo tempo, em threads separadas, em canais de áudio diferentes. O usuário ouvirá como se fossem dois arquivos mixados.
É possível misturar os dois arquivos. Mas não é uma tarefa muito trivial, principalmente se estiverem em formatos de áudio e taxas de amostragem diferentes.
M
marcio.gomes
ViniGodoy:
E a mixagem precisa mesmo ser no seu software? Esse tipo de trabalho é mais fácil fazer em um software externo. Até porque, logo surgirão outros pedidos como baixar o volume de um dos arquivos, atrasar sua execução, etc.
Há outras opções para isso, como reproduzir os dois arquivos ao mesmo tempo, em threads separadas, em canais de áudio diferentes. O usuário ouvirá como se fossem dois arquivos mixados.
É possível misturar os dois arquivos. Mas não é uma tarefa muito trivial, principalmente se estiverem em formatos de áudio e taxas de amostragem diferentes.
ViniGodoy muito obrigado pela resposta.
Eu já utilizei o audacity é uma ferramente muito boa.
Mas realmente eu preciso que seja gerado através da aplicação, os formatos de audio são os mesmos e as taxas também.
Se puder ajudar muito obrigado.
ViniGodoy
Se seus samples estão exatamente no mesmo formato, aí fica fácil.
Basta somar os dois samples do canal de áudio, truncando sempre no valor máximo da sua amostragem. Esses dados (o valor máximo e a quantidade de samples) você obtém da própria classe AudioFormat, do Java.
Se quiser diminuir/aumentar a altura do volume de um dos sons, basta multiplicar pelo pelo fator desejado (0 para sem som, 1 para igual ao som, 2 para o dobro da altura).
Procure por algoritmos de processamento de sinais digitais, que é exatamente o que você precisa. Provavelmente também deve haver APIs prontas para isso, mas confesso que nunca usei.