Estou recebendo amostras de PCM por fluxo, que é um canal, 8000 amostras por segundo. Eu descobri uma maneira de descobrir a sonoridade calculando a 'força' do sinal adicionando valor abs a cada 1000 amostras seguintes e depois dividindo pela contagem de amostras que é 1000. Funciona um pouco bem, mas às vezes meus cálculos estão ficando loucos, minha soma do absoluto os valores das amostras parecem aumentar constantemente e atingir valores ridículos ... então acho que estou fazendo algo errado lá. O engraçado é que, quando os cálculos estão ficando loucos, tudo volta ao normal quando eu pressiono 'dispositivo de entrada de som' com a mão;)
De qualquer forma. Minha pergunta é: como calcular corretamente o volume do conjunto de amostras PCM?
Respostas:
Para medir a energia (que está intimamente relacionada, mas não é a mesma que "volume"), calcule o RMS (Root-Mean-Square).
Você pode fazer isso em qualquer tamanho de bloco de amostras. Você pode fazer isso em todas as amostras de uma só vez para obter uma energia média ou dividir o conjunto de amostras em pedaços para ver como a energia muda com o tempo.
Existem também métodos mais sofisticados que levam em conta as peculiaridades do corpo e do cérebro. Você pode encontrar mais informações sobre isso aqui .
fonte
Não sou especialista e não tenho certeza do que você está tentando alcançar, mas parece que você cometeu um erro de programação em algum lugar. Você poderia nos mostrar o código?
Quando você diz volume, significa como definido aqui ? Nesse caso, você precisa prestar contas ao ouvinte.
Se você está interessado apenas em energia, talvez o RMS seja uma escolha melhor ou quadrados médios.
fonte