A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Processamento de Áudio Digital

Apresentações semelhantes


Apresentação em tema: "Processamento de Áudio Digital"— Transcrição da apresentação:

1 Processamento de Áudio Digital
Tornou-se bastante popular nas 2 últimas décadas. Com o aumento dos sistemas multimédia e com o WWW as técnicas de processamento de áudio tornaram-se populares tal como filtragem, equalização, eliminação de ruído, compressão, adição de efeitos sonoros e sínteses. Já vimos técnicas de compressão áudio. Neste capitulo vamos referir um conjunto seleccionado de técnicas de processamento áudio. A profundidade é menor do que a da literatura disponível.

2 Créditos Acetatos do livro de Mrinal Mandal
Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer A. Publishers

3 Aplicações Com o aumento dos sistemas multimédia e do WWW, as técnicas de processamento de áudio tornaram-se populares. Filtragem Equalização Supressão de ruído Compressão Adição de efeitos sonoros Síntese Há uma larga gama de técnicas de processamento de áudio como filtragem, equalização, supressão de ruído, compressão, adição de efeitos sonoros e síntese. Já falamos da compressão….

4 Filtragem Áudio É o processo de selecção ou supressão certos componentes de frequência na quantidade desejada. A filtragem digital está no capitulo 5 do livro que foi omitido nas nossas aulas. O seguinte exemplo ilustra o efeito da filtragem digital num sinal de áudio.

5 Espectro de sinal áudio
Considere o sinal de áudio….e o seu espectro de amplitude. O sinal foi amostrado com a frequência de amostragem de com 8 bits de resolução. Foi observado que o sinal tem um aumento escarpado e um atraso gradual. A densidade espectral da potência mostra que o sinal tem componentes de frequência na gama Hz. Sinal áudio “bell.wav” Espectro de Frequência

6 Código MatLab : Exemplo 10.1-I
Reading the input audio data infile = 'F:\data\audio\bell.wav' ; % Name of the Input file [x, Fs, bits]=wavread(infile); % %Plotting the input signal plot([1:length(x)]/1000,128*x) ; title ('original speech signal') xlabel('Samples (x1000)'); ylabel('Sample Values'); print -dtiff plot.tiff %Calculating Power spectral density hann_wind = round(2048*0.8) ; [Px,F] = psd(x,2048,Fs,[],hann_wind); % power spectral density of the input signal plot(F/1000,10*log10(Px)) xlabel('Frequency (in KHz)'); ylabel('Power Spectral Density (in dB)');

7 Filtro Passa Baixo (Exemplo 10.1)
Filter Order Cut-off Frequency (in Hz) Folding Frequency (in Hz) filt_low = fir1(64, 4000/11025) ; % filt_low is a 64-tap filter with a normalized cut-off frequency %that corresponds to 4000 Hz for a sampling frequency of kHz. %The same filter would have a cut-off frequency of 8 kHz if the % sampling frequency is 44.1 kHz x_lpf = filter(filt_low,1,x) ; % x_lpf is the lowpass filtered audio signal A filtragem é realizada usando a função firl1 que é uma função genérica do Matlab para filtragem fir A função usa por defeito uma janela de Hamming.A frequência de corte é de 4KHz. Observe que a funçao firl aceita frequências normalizadas relativamente à frequência de amostragem. Trata-se dum filtro passa baixo de 64 impulsos com coeficientes reais e uma fase linear….

8 Ganho do Filtro e Saída Espectro do sinal Características de Ganho de
A densidade espectral da saída filtrada é mostrada do lado direito da figura….Pode-se observar que os componentes de alta frequência foram significativamente reduzidos… Características de Ganho de Frequência do Filtro Passa Baixo Espectro do sinal filtrado

9 Código MatLab : Exemplo 10.1-II
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Lowpass Filtering lcutoff = 4000 ; % cutoff frequency in Hz wp = lcutoff/(Fs/2) ; % Normalized cutoff filt_low = fir1(64,wp) ; %Plotting the LPF frequency characteristics [L, w] = freqz(filt_low,1,512); LdB = 20*log10(abs(L)) ; plot((w/pi)*(Fs/2000), LdB), grid xlabel('Frequency (in KHz)') ylabel('Lowpass Filter Gain (in dB)'); print -dtiff plot.tiff %Lowpass filtering the audio signal x_lpf = filter(filt_low,1,x) ; x_lpf=x_lpf./max(0.1,max(abs(x_lpf))) ; % scale up the output wavwrite(x_lpf,Fs,8,'f:\bell1_lpf.wav'); % Write the output signal as a wav file % %Calculating Power spectral density hann_wind = round(1024*0.8) ; [Px_lpf,F] = psd(x_lpf,1024,Fs,[],hann_wind); % power spectral density of the lowpass output plot(F/1000,10*log10(Px_lpf)) xlabel('Frequency (in KHz)'); ylabel('PSD (in dB)');

10 Filtro Passa Banda Lower Cut-off Frequency (in Hz) Ordem do filtro
Upper Cut-off Frequency (in Hz) filt_bp = fir1(64,[ ]/11025) ; %Bandpass filtering the audio signal x_bpf = filter(filt_bp,1,x) ; As frequências de corte alta e baixa escolhidas são 4000 e 6000 Hz respectivamente. O filtro é de 64 implusos com coeficientes reais e uma fase linear.

11 Ganho do Filtro e Saída Características de Ganho de Espectro do sinal
A densidade espectral do sinal filtrado é mostrado na figura. A função MatLab completa e mostra a seguir está incluída no CD. Características de Ganho de Frequência do Filtro Passa Banda Espectro do sinal filtrado

12 Código MatLab : Exemplo 10.1-III
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Bandpass Filtering cutoff1 = 4000 ; % Low cutoff frequency cutoff2 = 7000 ; % Low cutoff frequency wp =[cutoff1 cutoff2]/(Fs/2) ; % Normalized cutoff filt_bp = fir1(64,wp) ; %Plotting the BPF frequency characteristics [B, w] = freqz(filt_bp,1,512); BdB = 20*log10(abs(B)) ; plot((w/pi)*(Fs/2000), BdB), grid xlabel('Frequency (in KHz)') ylabel('Bandpass Filter Gain (in dB)'); print -dtiff plot.tiff %Bandpass filtering the audio signal x_bpf = filter(filt_bp,1,x) ; % scale up the output x_bpf=x_bpf./max(0.1,max(abs(x_bpf))) ; % Write the output signal as a wav file wavwrite(x_bpf,Fs,8,'f:\bell1_bpf.wav'); % %Calculating Power spectral density hann_wind = round(1024*0.8) ; %power specttral density of the lowpass output [Px_bpf,F] = psd(x_bpf,1024,Fs,[],hann_wind); plot(F/1000,10*log10(Px_bpf)) xlabel('Frequency (in KHz)'); ylabel('PSD (in dB)');

13 Filtro Passa Alto Filter Order Cut-off Frequency (in Hz)
filt_high = fir1(64,4000/11025,’high’) ; %Highpass filtering the audio signal x_hpf = filter(filt_high,1,x) ;

14 Ganho do Filtro e Saída Espectro do sinal de saída
A frequência de corte escolhida é 4K. O filtro é de 64 impulsos com coeficientes reais e tem uma fase linear. Mostra-se acima quer o ganho do filtro como o espectro do sinal de saída filtrado. Características de Ganho de Frequência do filtro Passa Alto Espectro do sinal de saída

15 Código MatLab : Exemplo 10.1-IV
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Highpass Filtering %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% hcutoff = 4000 ; % cutoff frequency in Hz wp = hcutoff/(Fs/2) ; % Normalized cutoff filt_high = fir1(64,wp,'high') ; %Plotting the LPF frequency characteristics [H, w] = freqz(filt_high,1,512); HdB = 20*log10(abs(H)) ; plot((w/pi)*(Fs/2000), HdB), grid xlabel('Frequency (in KHz)') ylabel('Filter Gain (in dB)'); print -dtiff plot.tiff %Highpass filtering the audio signal x_hpf = filter(filt_high,1,x) ; % scale up the output x_hpf=x_hpf./max(0.1,max(abs(x_hpf))) ; % Write the output signal as a wav file wavwrite(x_hpf,Fs,8,'f:\bell1_hpf.wav'); %Calculating Power spectral density hann_wind = round(1024*0.8) ; %power specttral density of the lowpass output [Px_hpf,F] = psd(x_hpf,1024,Fs,[],hann_wind); plot(F/1000,10*log10(Px_hpf)) xlabel('Frequency (in KHz)'); ylabel('PSD (in dB)');

16 Comparação dos sons Som original Saída de Filtro Passa Baixo
Saída de Filtro Passa Banda Saida de Filtro Passa Alto

17 Equalização de Áudio A equalização de áudio é um efeito que permite ao utilizador para controlar a resposta do sinal de saída. O utilizador pode enfatizar ou desemfatizar uma frequência seleccionada no sentido de mudar o som de saida. A quantidade em que a frequência seleccionada é emfatizada ou desenfatizada é geralmente indicada em decibéis (db). Quando o nível de controlo de um equalizador é colocado a 0 dB, não é se aplica nenhum efeito nas bandas seleccionadas. A equalização pode ser convenientemente feita usando um banco de filtros. Há basicamente dois tipos de sistemas de equalização: sistemas de controlo de tom e equalizadores gráficos.

18 Controlo de Tom O método do controlo de tom disponibiliza uma maneira simples e rápida de ajustar o som ao gosto dos ouvintes Os aparelhos de áudio tem normalmente dois botões de controlo designados como baixo e agudos (treble). Cada um desses botões controla um tipo especial de filtro designado como shelving filter. O botão de baixo controla um filtro de shelving passa baixo enquanto o botão de treble controla um filtro de shelving passa alto.

19 Filtros Shelving Passa Baixo Passa Alto Baixo Treble
Observe que os filtros Passa-Baixo, Passa Alto e Passa Banda normalmente tentam remover completamente os componentes na respectiva banda. Todavia os filtros de shelving não tentam remover completamente os componentes de frequência. Em vez disso as bandas seleccionadas são enfatizadas ou desenfatizadas.

20 Filtro Peaking Muitos sistemas de áudio têm um controlo médio (mid), para além do baixo e dos agudos Este controlo usa basicamente usa um filtro passa banda que aumenta ou corta na gama média de frequência

21 Equalizadores Gráficos
Os equalizadores gráficos são mais sofisticados que os de controlo de tom O sinal de entrada é passado tipicamente através de um banco de 5-7 filtros passa-banda A saída dos filtros é ponderada pelos factores de ganho correspondentes e adicionados para reconstruir o sinal. Os filtros são caracterizados pelas frequências de corte normalizadas. Por este facto, os mesmos filtros funcionam com frequências de amostragem diferentes. Os equalizadores gráficos são mais sofisticados que os sistemas de controlo de tom. O sinal de entrada é passado através de um banco de 5-7 filtros passa-banda como se mostra no próximo acetato.

22 Diagrama de um sistema equalizador
As saídas dos filtros é ponderada pelos correspondentes factores de ganho e adicionada para reco nstruir o sinal. Os filtros são caracterizados pelas frequências de corte normalizadas

23 Exemplo de Equalização (Ex-10.2)
Considere um sinal áudio test44k cuja forma de onda é mostrada abaixo. Considere o sinal de áudio test44K cuja forma de onda é mostrada na figura. A frequência de amostragem do sinal de áudio é de 44,1 KHz. Um equalizador de 5 bandas é desenhado com um banco de filtros. Sinal de áudio “test44k” Espectro de frequência

24 Frequências de corte dos Filtros Passa Banda
A frequência de amostragem do sinal de áudio é 44.1 KHz. Um equalizador de 5 bandas concebido com base num banco de filtros As frequências de corte dos 5 filtros passa-banda estão abaixos Observe que as frequências são escolhidas de acordo com espaçamento linear das oitavas o que é apropriado devido à sensibilidade do ouvido humano. Os filtros FIR de ordem 32 (33 impulsos) são implementados com a função firl do MatLab.

25 Ganho de resposta dos Filtros Passa Banda
Os filtros passa-banda podem ser facilmente concebidos com comandos MatLab Por exemplo o terceiro filtro pode ser concretizado com o comando bpf(3,:) = fir1(32, [ ]);

26 Energia Média nas diferentes bandas
Para o sinal original Embora o sinal de áudio test44k contenha cerca de 30 segundos de amostras áudio apenas os 18 primeiros segundos são considerados. O sinal de áudio é processado em blocos de amostras (3 segundos). Quando o sinal passa através dos filtros passa-banda, a energia das diferentes bandas é mostrada na tabela.

27 VARIAÇÃO DO GANHO NAS DIFERENTES BANDAS
Para o sinal equalizado No sentido de mostrar o efeito de equalização, os ganhos (em dBs) das diferentes bandas são seleccionadas de acordo com a tabela. Observe que as bandas de alta frequência tem baixa energia e que a sensibilidade do ouvido é igualmente baixa nessas frequências. Portanto, foram seleccionados altos factores de ganho para essas bandas.

28 Áudio Filtrado Sinal original Sinal equalizado

29 MELHORAMENTO DO ÁUDIO

30 Porquê o Melhoramento? A qualidade do sinal pode ser degradado devido a várias razões Um sistema de produção de voz de baixa qualidade produz áudio de baixa qualidade. A presença de interferência de fundo pode causar a degradação da qualidade do áudio. O ruído de quantização introduzido durante a compressão é outra fonte de degradação. Os algoritmos de melhoramento de áudio podem ser usados para reduzir o ruído contido no sinal e melhorar a qualidade do sinal.

31 Diferentes técnicas Subtração Espectral : esta téncica suprime o ruído subtraindo um ruído estimado durante os períodos de silêncio. Filtro Wiener: minimiza o erro médio quadrático no processo de filtragem inversa e alisamento do ruído. Requer o conhecimento prévio das estatísticas de ruido e da voz. Cancelamento adaptativo de ruído: este método utiliza um filtro adaptativo que actua num sinal de referência para produzir uma estimativa do ruído. O ruído é então subtraído do sinal de entrada. É usado tipicamente o algoritmo LMS no processo de adaptação. Os pesos do filtro são ajustados para minimizar o quadrado da energia média da saída global.

32 Supressão de Ruído por Filtragem Digital
Se a componente de ruído tem um espectro estreito uma filtragem digital simples pode ser usada para eleminar os componentes de ruído. Noise spike

33 Filtragem do sinal de áudio
Ganho de Resposta do Filtro Espectro do sinal filtrado

34 Filtragem-2 Ganho de Resposta do Filtro Espectro do sinal de saída

35 Método de Subtração Espectral (SSM)
Se o ruído tem uma distribuição espetral estreita, a filtragem digital pode ser facilmente aplicada para suprimir esta componente de ruído. Contudo, se a componente de ruído tem um banda espectral grande, uma simples filtragem de supressão de banda pode não ser apropriada. O Método de subtracção espectral (SSM) é uma abordagem simples e eficaz para suprimir ruído de fundo estacionário. Este método é baseado no conceito que o espectro na frequência do sinal é espresso como a soma do espectro de voz e espectro do ruído. O processamento é feito inteiramente no domínio da frequência.

36 Princípios do SSM Considere um sinal de fala com ruído f(k). O sinal com ruído pode ser assumido com sendo um sinal sem ruído y(k) e um sinal de ruído n(k). Por outras palavras, f(k) = y(k) + n(k) Ou seja : y(k) = f(k) - n(k) Calculando a transformada de Fourier de ambos os lados, obtemos

37 Estimação do Sinal Se o espectro de ruído (tanto amplitude como fase) é conhecido com precisão, então o sinal livre de ruído pode ser obtido simplesmente subtraindo-o do sinal com ruído. Contudo, na prática, apenas se dispõe duma estimativa da amplitude espectro de ruído. No SSM, o espectro do sinal com ruído reduzido é estimado com: Onde é um parâmetro para expressar a quantidade de ruído Na prática assume-se que

38 Diagrama do SSM

39 Passos do SSM 3 passos principais:
O espectro de ruído é estimado quando o orador está em silêncio. -- Assuma que o espectro de ruído não mude rapidamente. O espectro de ruído é então subtraído do espectro de amplitude do sinal de entrada com ruído. Usando este novo espectro de amplitude, e espectro de fase do sinal com ruído original, o sinal de áudio no domínio de tempo é calculado usando a transformada inversa de Fourier.

40 Exemplo SSM (#10.4) Sinal de áudio “noisy_audio2 ” Espectro do sinal
Duração no tempo = 2.7 segundos A frequência de amostragem é 22,050 Hz. Há buracos na forma de onda da fala, que indica periodos de silêncio em que o ruído pode ser ouvido. O ruído é representada por uma gama larga de componentes de frequência.

41 Princípios da Estimação de Ruído
Os buracos no sinal de voz são usados para estimar espectro do sinal de ruído. Segmentar o sinal em pequenos quadros para obter pequenos segmentos do sinal em que não haja fala. Calcular o espectro de cada quadro São calculados os valores minimos dos componentes espectrais por cada bin de frequência nos quadros. O valor mínimo é usado para estimar o ruído A estimação acima pode ser considerada uma sub-aproximação do ruído. Portanto é multiplicado por um factor de escala para obter o espectro de ruído que é usado pelo SSM. Neste exemplo, podemos usar um factor de escala de 20.

42 Detalhes de Implementação do SSM
O código MATLAB para o processamento SSM está incluído no CD. O tamanho de quadro áudio é escolhido como 512. Há uma sobreposição de 50% entre dois blocos de áudio consecutivos. O valor de λ é colocado a A função de janela é derivada da janela de Hamming.

43 O Sinal melhorado com o SSM
O sinal melhorado tem reduzido de forma significativa os componentes de alta frequência na gama 2-5 kHz.

44 EDIÇÃO DE FICHEIROS MIDI

45 Edição de Áudio e MIDI Ao contrário do áudio digital, o MIDI é genericamente livre de ruído uma vez que é sintetizado. Portanto as técnicas de filtragem de ruído não são aplicáveis a ficheiros MIDI. Nesta secção, apresentamos alguns exemplos para ilustrar a criação e edição de ficheiros MIDI.

46 Exemplo de ediçao de MIDI (# 10.5)
Foi criado no exemplo 2.2 um pequeno ficheiro MIDI 4D D B 01 C A A FF 2F 00 O ficheiro MIDI gera a nota G3 tocada num piano eléctrico grande, com velocidade (que se relaciona com o volume) 100. Neste exemplo será criado um ficheiro MIDI que gera a nota E1 tocada num Piano Rhodes com a velocidade 68.

47 Edição do Ficheiro O terceiro byte na segunda linha (0x02) corresponde ao Electric Grand Piano (ver Tabela 2.9). -- No sentido de criar uma nota para o Rhodes Piano, o número de instrumento tem que ser mudado para 0x04. O sexto byte 0x43 gera a nota G3. -- No sentido de criar a nota E6, este byte deve ser mudado para 0x64 (ver a Tabel 10.4 para os equivalentes decimais para o número de notas para piano). A velocidade 100 é devida aos 7º e 10º bytes (0x64 cada ) na segunda linha -- Para criar o volume de 68, o 7º e o 10º bytes devem ser mudados para 0x44 em vez de 0x64.

48 Números para notas de Piano
As entradas estão expressas no formato decimal.

49 O ficheiro MIDI editado
O novo ficheiro pode ser representado no formato hexadecimal da seguinte forma: 4D D B 01 C A A FF 2F 00 O ficheiro MIDI pode ser criado usando o seguinte código MATLAB: data=hex2dbytes('4D D54726B C A A0000FF2F00'); fid=fopen('F:\ex10_5.mid','wb'); fwrite(fid,data); fclose('all');

50 Como adicionar uma segunda pista?
Pode ser útil sintetizar pistas com diferentes assinaturas de tempo e a tocar diferentes instrumentos simultaneamente: O código seguinte adiciona uma segunda pista ao código do exemplo anterior (Header chunk) 4D (Track 1) 4D B 01 C FF 2F 00 (Track 2) 4D B 01 C FF 2F 00

51 Explicação do código Quando a segunda pista é adicionada ao ficheiro, o formato é mudado para 0x02 (10o byte na primeira linha ) de forma que cada pista representa uma sequência independente. O número de pistas é também mudado para 02 (12º byte na primeira linha ). Foram mudados uns poucos tempos delta e notas para ilustrar sons diferentes. O Electric Grand Piano é tocado na primeira pista (0x02 na linha-3) e o Honky-Tonk Piano é tocado na segunda pista (0x03 na linha -5). Essas duas pistas podem ser tocadas simulatenamente se se mudar o tipo de formato para 0x01.

52 Ferramentas áudio seleccionadas

53 Ferramentas de Edição MIDI


Carregar ppt "Processamento de Áudio Digital"

Apresentações semelhantes


Anúncios Google