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

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

Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer.

Apresentações semelhantes


Apresentação em tema: "Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer."— Transcrição da apresentação:

1

2 Processamento de Áudio Digital

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

4 Aplicações Filtragem Equalização Supressão de ruído Compressão Adição de efeitos sonoros Síntese Com o aumento dos sistemas multimédia e do WWW, as técnicas de processamento de áudio tornaram-se populares.

5 Filtragem Áudio

6 Espectro de sinal áudio Sinal áudio bell.wavEspectro de Frequência

7 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)'); print -dtiff plot.tiff

8 Filtro Passa Baixo (Exemplo 10.1) 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 Filter Order Cut-off Frequency (in Hz) Folding Frequency (in Hz)

9 Ganho do Filtro e Saída Características de Ganho de Frequência do Filtro Passa Baixo Espectro do sinal filtrado

10 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)'); print -dtiff plot.tiff %

11 Filtro Passa Banda filt_bp = fir1(64,[ ]/11025) ; %Bandpass filtering the audio signal x_bpf = filter(filt_bp,1,x) ; Ordem do filtro Lower Cut-off Frequency (in Hz) Upper Cut-off Frequency (in Hz)

12 Ganho do Filtro e Saída Características de Ganho de Frequência do Filtro Passa Banda Espectro do sinal filtrado

13 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)'); print -dtiff plot.tiff

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

15 Ganho do Filtro e Saída Características de Ganho de Frequência do filtro Passa Alto Espectro do sinal de saída

16 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)'); print -dtiff plot.tiff %

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

18 Equalização de Áudio

19 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.

20 Filtros Shelving Passa Baixo Baixo Passa Alto Treble

21 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

22 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.

23 Diagrama de um sistema equalizador

24 Exemplo de Equalização (Ex-10.2) Considere um sinal áudio test44k cuja forma de onda é mostrada abaixo. Sinal de áudio test44kEspectro de frequência

25 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

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

27 Energia Média nas diferentes bandas Para o sinal original

28 VARIAÇÃO DO GANHO NAS DIFERENTES BANDAS Para o sinal equalizado

29 Áudio Filtrado Sinal originalSinal equalizado

30 MELHORAMENTO DO ÁUDIO

31 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.

32 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.

33 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

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

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

36 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.

37 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 Princípios do SSM

38 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

39 Diagrama do SSM

40 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.

41 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.

42 Os buracos no sinal de voz são usados para estimar espectro do sinal de ruído. Princípios da Estimação 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.

43 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.

44 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.

45 EDIÇÃO DE FICHEIROS MIDI

46 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.

47 Exemplo de ediçao de MIDI (# 10.5) Foi criado no exemplo 2.2 um pequeno ficheiro MIDI 4D D B 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.

48 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.

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

50 O ficheiro MIDI editado O novo ficheiro pode ser representado no formato hexadecimal da seguinte forma: 4D D B 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');

51 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 C FF 2F 00 (Track 2) 4D B C FF 2F 00

52 Explicação do código Quando a segunda pista é adicionada ao ficheiro, o formato é mudado para 0x02 (10 o 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.

53 Ferramentas áudio seleccionadas

54 Ferramentas de Edição MIDI


Carregar ppt "Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer."

Apresentações semelhantes


Anúncios Google