Como alterar o volume de um áudio assinado PCM de 16 bits?


7

Sei que posso multiplicar amostras e depois cortar, mas o volume percebido não é linear para os seres humanos.

Você pode ajudar com uma fórmula.


Por que essa pergunta foi rebaixada? É claramente relevante para este fórum.
22812 Jim Clay

3
A questão não é formulada com muita clareza, nem gramaticalmente. Além disso, que tipo de não linearidade você deseja compensar: somente amplitude ou amplitude dependente da frequência?
30512 heltonbiker

Eu li este mini tutorial: ypass.net/blog/2010/01/… E esse cara usou a função tan para tornar o volume não linear, mas ele disse que esse não é o caminho perfeito. Então, pensei naquele fórum do DSP. Você entenderá o que quero dizer, mesmo que não seja gramaticalmente publicado.
Apocalypse

Eu acho que essa pergunta é muito concisa e muito clara. Quando você trabalha com áudio, entende instantaneamente o que significa @zgnilec. Essa é uma questão psicoacústica: a percepção do volume do áudio em humanos é não linear. Portanto, a pergunta é: "como você faz uma alteração no ganho de áudio que é percebida como linear?"
sebpiq

Uma faixa de -48dB a + 6dB produz 54dB em amplitude.
be999

Respostas:


12

A alteração do volume de um sinal de áudio deve ser feita aplicando um ganho (multiplicação) - e, opcionalmente, cortando se o seu sistema tiver um alcance dinâmico limitado. Isto é tão simples assim. A aplicação de uma função não linear a um sinal de áudio causará distorção e adicionará harmônicos, e você não deseja que isso aconteça - você deseja modificar a intensidade do sinal, não o timbre. [Para ser justo, existem processamentos não lineares projetados para alterar a intensidade percebida do sinal sem afetar o timbre, dentro de uma determinada restrição de faixa dinâmica (por exemplo, compressão multibanda), mas não parece que isso é o que você precisa .]

O ponto em que as curvas de não linearidade e de resposta sofisticada entram em cena é ao projetar uma interface do usuário - ao decidir sobre a relação entre a posição do controle (botão ou controle deslizante, seja em uma GUI ou como hardware físico) e o ganho aplicado ao sinal . É aqui que a percepção importa, porque os usuários esperam um mapeamento entre a posição do controle deslizante e sua percepção de volume. Observe que, mesmo que a relação entre a posição do controle de volume e o ganho aplicado ao sinal seja não linear, o processo de aplicação do ganho ao sinal é linear e a não linearidade seria indesejável!

Quando se trata de controles físicos de volume, por exemplo, em sistemas Hi-Fi ou reprodutores de áudio pessoais, a relação entre a posição do botão e a atenuação é mais próxima de uma curva exponencial, embora sua forma tenha sido alterada e restrita pelo processo de fabricação - às vezes é apenas dois ou três segmentos lineares. Você pode encontrar essas curvas nas fichas técnicas dos fabricantes (conicidade "A"). Os faders de console de mixagem geralmente têm sua resposta compactada, de modo que a metade superior de seu percurso cubra a faixa útil de -20 dB .. + 6dB.

No mundo do software - pelo menos para produção musical - é mais comum ter botões de volume / ganho calibrados em dB. Por exemplo, se você tiver um controle deslizante de volume de 100 pixels de -48dB a + 6dB, o ganho aplicado ao sinal será1048+54x10020.


quando x é 0 = 24, x = 100 fornece 3. Isso está correto? Preciso de mais tempo para entender isso: <
apocalypse

10 ** ((-48 + 54 * 0 / 100,0) / 20,0) = 0,004; 10 ** ((-48 + 54 * 100 / 100.0) / 20.0) = 1.995
pichenettes

Este é um expoente, não uma multiplicação. 10 ^, não 10 * #
pichenettes

De onde vêm os 54?
Ansis Māliņš
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.