PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO S UL
FACULDADE DE ENGENHARIA
CURSO DE ENGENHARIA ELÉTRICA
DISCIPLINA DE TRABALHO DE INTEGRAÇÃO
TÉCNICAS DE REDUÇÃO DE RUÍDO PARA ÁUDIO
CHRISTIAN INÁCIO VOGT
ORIENTADOR: DENIS FERNANDES
Porto Alegre, Novembro de 2006.
2
Dedicatória
Este trabalho é dedicado aos meus pais, Aristides e Leni, e aos meus irmãos, Felipe e Marqueli, pelo esforço e pelo amor sem medidas que sempre tiveram na minha formação pessoal e profissional.
3
Agradecimentos
À Deus por ter saúde, paciência, serenidade e discernimento perante os desafio e as tomadas de decisões. Ao Professor, Dr. Denis Fernandes, que me acolheu muito bem no difícil cargo de orientador. Obrigado pelos seus conselhos enquanto trabalhamos juntos. Foram importantes para a minha visão de mundo e para a minha formação como engenheiro. Aos colegas de curso e professores da PUCRS, pelo companheirismo e pela amizade durante todo esse caminho.
4
Resumo
O ruído de fundo é uma forma comum de degradação em todos sistemas de
armazenamento e gravações analógicas. No caso de sinais de áudio, geralmente percebido pelo
ouvinte como um “hiss”, esse tipo de ruído é composto por ruídos em circuitos elétricos, por
irregularidades na mídia de armazenamento e, além disso, pelo ruído presente no ambiente de
gravação. O ruído aleatório, geralmente, tem suas componentes espalhadas por todo o espectro
de freqüências de áudio, sendo que dessa forma torna-se inadequado um simples procedimento
de equalização.
No campo de processamento de voz, um grande número de técnicas tem sido
desenvolvido para a redução de ruído. Certamente, hoje os métodos mais populares para redução
de ruído em sinais de áudio são baseados na transformada de Fourier de tempo curto. O Short-
Time Spectral Attenuation (STSA) é um método de redução de ruído que, basicamente, consiste
em aplicar uma atenuação, que varia no tempo para cada quadro produzido pela transformada de
tempo curto. As técnicas STSA são não paramétricas e, geralmente, necessitam de pouco
conhecimento do sinal a ser processado. Além desses fatores, as técnicas citadas estão entre os
métodos mais populares para a melhoria de voz e seu uso tem sido largamente predominante
para a restauração de gravações musicais.
O objetivo deste trabalho é fazer, a partir de técnicas baseadas na STSA como a
Subtração Espectral e a MMSE, um estudo sobre algumas técnicas STSA, desenvolvendo
conhecimentos teóricos necessários para a implementação em um software capaz de restaurar
gravações fonográficas que apresentem ruídos de fundo "hiss".
5
Sumário
1. Introdução................................................................................................................................8 2. Restauração de Áudio............................................................................................................10
2.1. Uma breve História das Tecnologias de Gravação.......................................................10 2.2. Restauração Tradicional de Áudio ................................................................................10 2.3. Modelagem AR e ARMA .............................................................................................12
2.3.1. Definições Básicas ................................................................................................12 2.4. Tipos de Ruídos.............................................................................................................13
2.4.1. De-thumping..........................................................................................................14 2.4.2. De-clicking ............................................................................................................15 2.4.3. De-Hissing.............................................................................................................18
3. Short-Time Spectral Attenuation ..........................................................................................20 3.1. Introdução......................................................................................................................20 3.2. Considerações Históricas ..............................................................................................22 3.3. Short-time Spectral Attenuation (STSA) ......................................................................23
3.3.1. Transformada de tempo curto ...............................................................................23 3.3.2. Atenuação Espectral ..............................................................................................24 3.3.3. Análise Determinística ..........................................................................................26 3.3.4. Audibilidade do ruído na saída..............................................................................27 3.3.5. Sinal Transitório....................................................................................................28 3.3.6. Estimação de Ruído...............................................................................................29 3.3.7. Ruído musical........................................................................................................29 3.3.8. Soluções para o ruído musical...............................................................................30
3.4. Regras de Supressão......................................................................................................31 3.4.1. EMSR....................................................................................................................31 3.4.2. Subtração Espectral ...............................................................................................35
4. Projeto Restauração do Acervo de Gravações do Laboratório de Línguas da PUCRS ........36 4.1.1. Objetivos Gerais e Específicos..............................................................................36 4.1.2. Justificativa............................................................................................................37 4.1.3. O Laboratório de Línguas da PUCRS...................................................................37 4.1.4. Descrição do Material ...........................................................................................38 4.1.5. Identificação dos Problemas Encontrados.............................................................39
5. Desenvolvimento do Trabalho ..............................................................................................41 5.1. Algoritmo de Redução de Ruído...................................................................................41
5.1.1. Diagrama de blocos...............................................................................................42 5.1.2. Descrição do algoritmo .........................................................................................43
6. Resultados .............................................................................................................................46 7. Conclusões ............................................................................................................................51 8. Referências Bibliográficas ....................................................................................................52 9. Anexos...................................................................................................................................54
9.1. Programa MMSE.m ......................................................................................................54 9.1.1. MMSE ...................................................................................................................54
6
9.1.2. OverlapAdd ...........................................................................................................56 9.1.3. Segment.................................................................................................................57 9.1.4. VAD ......................................................................................................................57
9.2. Programa Subtração Espectral (SS.m) ..........................................................................59 9.2.1. SS ..........................................................................................................................59 9.2.2. OverlapAdd ...........................................................................................................60 9.2.3. Segment.................................................................................................................61 9.2.4. VAD ......................................................................................................................62
9.3. Programa gerador de ruído (noisegen.m)......................................................................63
7
Lista de Figura
Figura 2.1 – Exemplos de pulsos longos: (a) pulsos simples e (b) pulsos sobrepostos. 14
Figura 2.2 – Estágio de processamento de um modelo padrão para de-thumping. 15
Figura 2.3 – Modelo base para o método de-clicking. 16
Figura 2.4 – Sistema de redução de hiss baseado na técnica STSA. 18
Figura 3.1 – Hipótese básica para as técnicas STSA. 20
Figura 3.2 – Estrutura geral do método STSA. 21
Figura 3.3 – Ganho versus nível de sinal relativo. 25
Figura 3.4 – Restauração de um sinal senoidal dentro de ruído branco com potência
de 0dB.
26
Figura 3.5 – Diagrama de blocos do algoritmo original Ephraim and Malah 31
Figura 3.6 – Ganho EMSR versus Rprio, para diferentes valores de Rpost. 33
Figura 3.7 – As relações sinal-ruído Rpost e Rprio ao longo de sucessivos quadros. 34
Figura 6.1 – Arquivo ‘testesom.wav’ 47
Figura 6.2 – Arquivo ‘testesom10dB.wav’ 47
Figura 6.3 – Restauração por Subtração Espectral (‘testesom10dB_SS.wav’) 48
Figura 6.4 – Restauração por MMSE (testesom10dB_MMSE.wav’) 49
8
1. Introdução
A introdução ao Áudio Digital de alta qualidade com o Compact Disc (CD) e o
Digital Áudio tape (DAT) tem destacado uma consciência e uma expectativa geral sobre a
qualidade do som em todos os tipos de gravações. Isso, combinado com uma onda de interesse
em restaurar materiais históricos e antigos, vem conduzindo para um grande desenvolvimento
nas técnicas de restauração em função das gravações feitas em rolos analógicos no século XIX,
através de discos (78 rpm, LP, etc.), e em tecnologias de fita magnética, a qual é disponível
desde os anos 50. A redução de ruído, ocasionalmente, pode ser usada até em gravações digitais
contemporâneas, caso o ruído de fundo se torne muito presente.
A degradação de uma fonte de áudio é considerada como qualquer modificação
indesejada ao sinal de áudio, o qual ocorre como resultado do processo de gravação. Além disso,
o ruído pode ser introduzido por imperfeições no material, por transcrição para outra mídia ou,
até mesmo, pelo desgaste do uso da mídia.
Uma restauração ideal irá reconstruir a fonte de som original exatamente como
ela era antes. Claro que esse ideal, na prática, jamais será alcançado, pois os métodos somente
podem ser desenvolvidos de acordo com um critério de erro, baseado nas características
perceptuais do ouvido humano.
Técnicas de restauração analógica estão disponíveis, pelo menos, desde as fitas
magnéticas, em forma de edição manual para “clicks” e equalização de freqüências para o ruído
de fundo. Os redutores eletrônicos de “clicks” mais sofisticados eram baseados em filtros passa
alta, para detecção dos mesmos, e filtros passa baixa, para mascarar os seus efeitos. Nenhum
desses métodos era, suficientemente, sofisticado para apresentar um passo significante na
redução de ruído sem interferir com a qualidade do sinal base. Métodos digitais levaram em
conta um importante grau de flexibilidade em processamento e, portanto, um grande potencial
para a remoção de ruído, embora aplicações com métodos digitais inapropriados possam ser mais
desastrosos que o processamento analógico.
9
Aleatório, o ruído de fundo é uma forma comum de degradação em toda medida,
em todo armazenamento e em todos sistemas de gravações analógicas. No caso de sinais de
áudio, geralmente percebido pelo ouvinte como um “hiss”, esse tipo de ruído é composto por
ruídos em circuitos elétricos, por irregularidades na mídia de armazenamento e pelo ruído
presente no ambiente de gravação. O efeito combinado dessas fontes será generalizado como um
único processo, o qual talvez possa ser considerado como parte da performance original. O ruído
aleatório, geralmente, tem seus componentes espalhados por todo o espectro de freqüências do
áudio. Dessa forma, torna-se inadequado o simples procedimento de equalização.
As gravações em fitas analógicas demonstram características de ruído
estacionárias e, para a maioria das finalidades, ruído branco. As primeiras gravações em 78 rpm
e em cilindros demonstram características de ruído altamente não estacionárias, pois o ruído
pode variar, consideravelmente, em cada revolução do sistema de reprodução. Isso resulta na
característica “swishing” ou “assobio”, efeito associado com as primeiras gravações. Nas
gravações que também são afetadas por perturbações locais como “clicks” e ressonâncias de
baixas-freqüências, como padrão, é aconselhado restaurar esses efeitos previamente a qualquer
tratamento de ruído de fundo.
No campo de processamento de voz, um grande número de técnicas tem sido
desenvolvido para a redução de ruído. Certamente, hoje os métodos mais populares para redução
de ruído em sinais de áudio são baseados na transformada de Fourier de tempo curto. O Short-
Time Spectral Attenuation (STSA) é um método de redução de ruído que, basicamente, consiste
em aplicar uma atenuação, que varia no tempo para cada quadro produzido pela transformada de
tempo curto. As técnicas STSA são não paramétricas e, geralmente, necessitam de pouco
conhecimento do sinal a ser processado. Além desses fatores, as técnicas citadas estão entre os
métodos mais populares para a melhoria de voz e seu uso tem sido largamente predominante
para a restauração de gravações musicais.
O objetivo deste trabalho é fazer, a partir de técnicas baseadas na STSA, como a
subtração espectral e a MMSE, um estudo sobre algumas técnicas STSA, desenvolvendo
conhecimentos teóricos necessários para a implementação em um software capaz de restaurar
gravações fonográficas que apresentem ruídos de fundo "hiss". Esse software possívelmente terá
aplicabilidade no o Projeto para a Restauração do Acervo de Gravações do Laboratório de
Línguas da PUCRS.
10
2. Restauração de Áudio
2.1. Uma breve História das Tecnologias de
Gravação
A primeira gravação reproduzível da voz humana foi feita, em 1877, em uma
vitrola com cilindro de papel alumínio inventado por Thomas A. Edison. Desde então, foi
despendido muito esforço para encontrar melhores métodos de gravar e reproduzir sons. Na
década de 20, surgiu a primeira gravação elétrica e que, gradualmente, tomou conta de todas as
gravações acústicas. O desenvolvimento de computadores eletrônicos culminou na padronização
do CD (Compact Disc) como formato digital, em 1980. Hoje em dia, a tecnologia digital é
empregada em várias aplicações. Um exemplo disso é que ela pode ser usada para melhorar a
qualidade de modernas e antigas técnicas de gravações e reproduções.
2.2. Restauração Tradicional de Áudio
A restauração de áudio, basicamente, busca melhorar o som de gravações antigas.
O principal objetivo é reduzir os artefatos de ruído, os quais são usualmente introduzidos pelo
mecanismo de gravação e reprodução, preservando o som original da melhor maneira possível.
O primeiro passo em um típico procedimento de restauração de áudio consiste em
transferir o som de mídias velhas para o formato digital. Essa tarefa tem o objetivo de localizar a
mídia original ou a melhor cópia e, além disso, encontrar a melhor maneira ou o melhor
equipamento para reproduzir a determinada mídia, lidando com a carência usual de
padronizações associadas com equipamentos de gravação/reprodução obsoletos no mercado.
11
A transferência de uma mídia antiga para uma mais moderna, como, por exemplo,
os discos 78 RPM para os LPs, foi uma prática comum mesmo antes da era digital. A idéia era
usufruir das características aprimoradas dos sistemas mais avançados de gravação. Entre outros
interesses, essas vantagens relacionam-se com uma maior capacidade de armazenamento, tempo
de vida superior, fácil manejo e cuidados, fácil replicação do material, e imensa acessibilidade
para o público em geral. Até mesmo na era analógica, foram feitas tentativas para melhorar a
qualidade sonora de gravações antigas nos processos de transferência de som.
Como enfatizado anteriormente, a restauração de áudio passou por, simplesmente,
digitalizar o áudio analógico. Graças ao crescimento progressivo do poder computacional de
processadores digitais, mais sofisticados e potentes, algoritmos mais complexos se tornaram
possíveis na prática. Hoje em dia, a restauração de áudio é consumada por algoritmos de DSP
dedicados a reduzir ou anular ruídos e perturbações introduzidos nas mídias pelos sistemas
antigos de gravação/reprodução.
O tipo mais comum de degradação encontrado, associado às gravações antigas,
pode ser, a grosso modo, classificado em perturbações localizadas e globais. Ruídos de curtos
impulsos (clicks, crackles e pops) assim como pulsos longos de alta freqüência (thumps)
pertencem à classe de perturbações localizadas. Já as perturbações contínuas de fundo ou as
interferências, como o ruído da banda alta (hiss, buzz e hum), são, usualmente, classificadas
como perturbações globais.
Com as técnicas de DSP, é possível superar as limitações intrínsecas dos sistemas
de gravações antigas. Como resultado, a qualidade sonora do material restaurado pode ser
melhorada em relação à original.
Atualmente, as ferramentas existentes para restaurar áudio permitem automatizar
algumas tarefas, como, por exemplo, a remoção de clicks, que se torna trabalhosa se realizado
manualmente. De qualquer forma, alcançar resultados satisfatórios é absolutamente dependente
em guiar escolhas de parâmetros no processamento. Além disso, o range atual de métodos para
restauração, a priori, é relativo no que diz respeito ao conteúdo do sinal a ser restaurado. Então, a
necessidade de um diagnóstico particular é crucial na qualidade sonora final do áudio restaurado.
Parece lógico acreditar que, no futuro, as técnicas de restauração de áudio
poderão tirar proveito de informações intrínsecas agregadas ao som em processamento. A
inferência sobre o conteúdo do sinal e de mecanismos de percepção sonora, e, além disso,
critérios pscicoacústicos podem ser levados em conta nos procedimentos de restauração.
12
Recentemente, muitas pesquisas buscam encontrar formas para representar sinais
de áudio em uma organização estrutural, através de objetos sonoros. No futuro, pode-se prever a
possibilidade de realizar a restauração de áudio em uma estrutura baseada em objetos.
Analisando o conteúdo de gravações antigas, será possível obter dados mais apropriados para a
construção de um modelo de síntese sonora e, então, gerar um novo sinal de áudio sem ruído,
baseado nesse modelo. Claro, realizar restaurações de áudio através da re-síntese é,
particularmente, um desafio sobre o ponto de vista da engenharia. Além das particularidades
técnicas, sobre o ponto de vista subjetivo, executar a restauração de áudio, através de uma re-
síntese de áudio, baseada em objetos, possivelmente trará questões relativas à preservação da
integridade artística nos sinais reconstruídos. De qualquer forma, deve-se levar em consideração
que a restauração de áudio é sobre características não substituíveis. Assim, qualquer que seja o
resultado, baseado em objetos oferecidos no futuro, será formada, simplesmente, outra maneira
de ouvir gravações antigas.
2.3. Modelagem AR e ARMA
A natureza ressonante, associada com a maioria das vibrações sonoras, torna os
processos AR e ARMA ferramentas apropriadas para modelar pequenos pedaços de sinais de
áudio. De fato, os modelos AR e ARMA encontram utilidade em diversas aplicações de áudio,
tal como: codificação de voz e áudio, síntese de som, e análise espectral.
2.3.1. Definições Básicas
Um processo ARMA(p,q) de x(n) pode ser gerado filtrando-se ruído branco e(n)
através de um filtro invariante, causal, linear e estável com função de transferência
∑∑
=−
=−
+==
p
k
kk
q
k
kz
za
zb
zA
zBzH
1
0
1)(
)()( (1)
Considere um espectro de potência plano para a entrada, ou seja, 2)( ex zP σ= . A
saída resultante x(n) tem uma função de espectro de potência generalizada dada por
13
)/1()(
)/1()()(
**
**2
zAzA
zBzBzP ex σ= , (2)
onde o símbolo * representa o complexo conjugado. Para coeficientes reais, )(zPx tem 2p pólos e
2q zeros. O espectro de potência associado a um processo ARMA(p,q), o qual é alcançado com
)(zPx para jwez = , é dado por
2
22
|)(|
|)(|)(
jw
jw
ejw
xeA
eBeP σ= . (3)
No domínio tempo, um processo ARMA (p,q) de x(n) relaciona-se com a excitação e(n) através
da seguinte equação diferencial
∑∑==
−=−+q
kk
p
kk knebknxanx
01
).()()( (4)
Um processo AR é um caso particular de um processo ARMA quando q=0. Dessa forma, o filtro
assume a forma
∑ =
−+=
p
k
kk za
bzH
1
0
1)( . (5)
2.4. Tipos de Ruídos
A restauração de áudio digital ocorre depois do processo de transferência das
fontes analógicas para o domínio digital. Thumps, pops, clicks, crackles, e hiss são onomatopéias
comuns usadas para caracterizar o som produzido por ruídos que, freqüentemente, corrompem
gravações antigas. As seções seguintes analisam os procedimentos padrões para reduzir os ruídos
mais comuns, encontrados em gravações antigas.
14
2.4.1. De-thumping
Thumps são produzidos por pulsos longos que possuem baixas freqüências que
corrompem o sinal. Esses pulsos são produzidos pelo mecanismo de reprodução sobre uma
excitação anormal. Pode-se citar como exemplo a resposta de um aparelho que reproduz um
disco com grandes continuidades nas ranhuras. Exemplos na figura 3.1.
Além de técnicas rudes como filtragem por passa-altos, existem outros métodos,
com vários graus de sofisticação, para tratar dos pulsos longos. A concepção básica por trás
desses métodos é de que os pulsos longos são sempre de mesma amplitude. Desse modo, dado
um padrão do pulso corrompido, pode-se localizar outras ocorrências de pulsos, através de altos
valores entre coeficientes correlacionados, medidos entre o modelo padrão e o sinal corrompido.
Sendo assim, a supressão de ruído é realizada subtraindo-se o modelo, em amplitude, de partes
degradadas do sinal após uma sincronização temporal adequada.
O click de alta amplitude, que, normalmente, aparece no começo de um pulso
longo, deve ser removido por um algoritmo de-clicking (discutido na seção 2.4.2). A figura 3.2
mostra um diagrama de blocos que ilustra os estágios operacionais de um modelo padrão para o
método de-thumping. A principal limitação desse modelo é a insuficiência de robustez em
detectar e anular pulsos dinâmicos, que variam ao longo do tempo, ou pulsos que são
sobrepostos.
Figura 2.1 – Exemplos de pulsos longos: (a) pulsos simples e (b) pulsos sobrepostos
Na aproximação de um modelo fundamentado para a remoção de pulsos longos, o sinal
corrompido é modelado como uma mistura de dois processos distintos de AR. Dessa forma, a
15
restauração do sinal é consumada separando esses dois processos. Modelos AR de alta-ordem
são usados para ajustar a base dos sinais de áudio. Quanto ao pulso, são empregados modelos
AR de baixa-ordem, sendo que os clicks iniciais são incluídos como parte do pulso. A grande
desvantagem da aproximação por separação de AR é o fato desse método consumir um alto custo
computacional. (P. A. A. ESQUEF 2002) propôs um algoritmo para remoção de pulsos longos,
baseados em filtros não-lineares e polinomiais. Nesse método proposto, uma primeira análise da
forma de onda do pulso é obtida através de uma versão modificada de uma técnica de filtragem
chamada Two-pass Split Window (TPSW). O princípio proposto nesse filtro é suavizar o efeito
artificial do click inicial de alta amplitude.
Figura 2.2 – Estágio de processamento de um modelo padrão para de-thumping.
Na fase final, a qual deve ser a supressão do sinal corrompido, resultados relativos
ao método de ajuste polinomial são aplicados na estimativa de pulsos, baseados em TPSW. Para
se obter valores apropriados dos parâmetros em processamento, o desempenho de ambos os
métodos de redução de pulsos, TPSW e AR, são comparados. De qualquer forma, a
complexidade computacional do algoritmo TPSW é duas vezes menor que para o método AR.
2.4.2. De-clicking
Perturbações impulsivas, contaminando o sinal de áudio, são ouvidas como um
click. São, usualmente, causadas por pequenas imperfeições nas ranhuras de discos. Entre outras
causas, essas imperfeições podem ser ocasionadas devido à porosidade intrínseca do material do
16
disco, à partículas sólidas aderentes às ranhuras ou, até mesmo, à presença de arranhões
superficiais no disco.
Figura 2.3 – Modelo base para o método de-clicking.
Sistemas para remoção de clicks são usados até mesmo no domínio analógico. De
certa maneira, alguns argumentos usados nesses sistemas antigos foram empregados,
similarmente, mais tarde em sistemas digitais para remoção dos mesmos.
No modelo-base para redução de clicks em áudio, curtos quadros do sinal
fundamental x(n) são modelados como um processo AR de ordem p. Além disso, o mecanismo
de degradação supõe a seguinte forma aditiva:
)()()()( ndninxny += , (6)
onde o termo i(n)d(n) corresponde à componente de ruído, com i(n) sendo uma ordem binária
que indica a presença de ruído (i(n)=1).
O objetivo dos algoritmos de detecção de clicks é estimar a ordem i(n) que
minimiza a porcentagem de detecção de erro e falsos alarmes de clicks. No método de detecção
por AR, a magnitude da excitação do modelo AR, a qual é obtida por filtragem inversa, é
comparada com um limite adaptativo. Amostras com valores de magnitude, excedendo o limiar,
ponderam amostras corrompidas no sinal. Além disso, aperfeiçoamentos de detecção de clicks
podem ser alcançados usando-se um filtro combinado (Mached), com predição linear bi-lateral, e
esquemas bem elaborados.
A redução de ruído é alcançada substituindo as amostras corrompidas por outras
que parecem com o sinal base. É possível tornar essa substituição completamente satisfatória,
17
através de métodos de interpolação baseados em AR. A figura 2.3 descreve um diagrama de
blocos com os estágios operacionais de um modelo para de-clicking.
A redução de clicks em áudio pode também ser realizada, através de um sistema
Bayesiano estatístico. Na aproximação Bayesiana, modelos são usados tanto para o sinal
fundamental quanto para o processo de ruído. Além disso, a detecção e a supressão de clicks são
completas. Outros meios para redução de clicks englobam algoritmos de redes neurais e modelos
de técnicas de filtragem adaptativa.
Diversos tipos de aproximações são usados para tratar da reconstrução dos sinais
discretos no tempo, através de lacunas de amostras perdidas. Entre as técnicas disponíveis,
podem ser mencionadas as seguintes: reconstrução de banda limitada, interpolação modelada
senoidal, substituição da forma de onda, e interpolação AR.
Devido às limitações relacionadas aos sinais de áudio não estacionários, o método
de interpolação, baseado em AR, é, normalmente, adequado para a reconstrução, de modo
relativo, das partes de curta-duração (até aproximadamente 20ms) do sinal de áudio. A
interpolação acima de lacunas maiores talvez conduza a uma reconstrução pobre do sinal, o qual
é caracterizado por igualdades excessivas e pela queda de potência do sinal no meio da lacuna. A
maneira mais simples de burlar esse defeito é aumentando a ordem do modelo AR.
Em (S. J. GODSILL AND P. J. W. RAYNER 1998), foram comparadas as
performances (custo computacional versus desempenho) entre o esquema de interpolação e uma
versão modificada dele. Realizando a estimativa do modelo AR, nota-se que as performances são
computacionalmente mais caras do que quando são feitas de maneira convencional. De qualquer
forma, essa versão modificada pode ser direcionada para focar a realização do modelo no modo
de ressonância em baixa freqüência que mais se sobressai perceptualmente. Como conseqüência,
modelos superiores de lógica perceptual poderão ser alcançados. Resultados em simulações
mostram, em um certo nível de custo e para modelos de baixas ordens, que o método modificado
se apresenta melhor do que o método convencional. A qualidade perceptual dos sinais
reconstruídos é medida através da técnica de medida perceptual para áudio (PAQM).
Resumidamente, o PAQM é uma medida objetiva de distorção que leva em conta o fenômeno
pscicoacústico. O PAQM representa um indicador de desigualdade que é obtido por meio de uma
comparação entre a descrição de ouvido, em uma certa referência, e o sinal processado.
18
2.4.3. De-Hissing
A contaminação do sinal em função do acréscimo de ruído, em todas as
freqüências, é percebida como um hiss. A componente de ruído é, geralmente, causada por
ruídos de dimensões térmicas, ruídos de circuitos elétricos e pelas características intrínsecas da
mídia de armazenamento. Os discos de 78 RPM e gravações em fitas analógicas, normalmente,
associam-se com o ruído do tipo hiss. Para as fitas analógicas, no entanto, as características do
ruído são mais estacionárias do que nos discos.
A redução de hiss para áudio e voz tem sido alcançada através de meios distintos
entre si. Possivelmente, os mais simples e mais usados são através do método Short-time
Spectral Attenuation (STSA), o qual tem sua origem na remoção de ruído para voz. A concepção
fundamental por trás dos métodos STSA é que o ruído é gaussiano branco, de média zero e
descorrelacionado para o sinal base. Na prática, devido à não-estacionáridade de sinais de áudio
em geral, os métodos STSA empregam um bloco baseado no processo “sobrepõe e adiciona”
(overlap and add). Além disso, as transformações do tempo para a freqüência e vice versa são
realizadas por meio da Short-time Fourier Transform.
Nos métodos STSA, a redução de ruído é obtida subtraindo a densidade espectral
de potência estimada do ruído pela potência espectral do sinal corrompido (entrada). Essa
estratégia é conhecida como regra de subtração de potência do espectro. Outras regras de
supressão englobam subtração espectral de magnitude, EMSR e filtragem wiener. Todas essas
técnicas de supressão podem ser formuladas por meio de um filtro variante no tempo que atenua
o espectro de magnitude do sinal ruidoso, de acordo com o SNR medido em uma determinada
faixa de freqüência.
Figura 2.4 – Sistema de redução de hiss baseado na técnica STSA.
19
A figura 2.4 ilustra os típicos estágios do método para STSA. Um efeito colateral
típico dos métodos STSA é a presença do ruído de tom aleatório nos sinais processados.
Também conhecido como ruído musical, esse fenômeno é originado pelas características
randômicas do espectro de potência. Desse modo, em valores de freqüência randômicos, a
potência de algumas componentes de ruído não é suprimida, e, como resultado, escuta-se breves
estouros tonais.
Existem várias propostas para reduzir o fenômeno de ruído musical.
Possivelmente, a mais simples consiste em superestimar a potência espectral de ruído. Nesse
caso, a redução de ruído musical pode ser um acordo que satisfaça a perda de sinal,
especialmente no que se refere às altas freqüências. Outros modos de reduzir o ruído musical
envolvem o cálculo médio do espectro sobre quadros sucessivos e a aplicação de regras
heurísticas para o fator de atenuação espectral. Recentemente, surgiram alguns interesses em
associar o fenômeno psicoacústico às regras de supressão usadas nos métodos STSA.
A regra de supressão, proposta por Ephraim e Malah (EMSR), é conhecida por ser
efetiva na redução do ruído musical residual. A EMSR corresponde a melhor qualidade (do
ponto de vista de erro médio quadrático) para uma senóide coberta de ruído.
Apesar de estar entre a classe de técnicas não paramétricas para de-hissing, a
redução por wavelet tem recebido muitas atenções na literatura atual. Nesse método, o sinal
ruidoso é mapeado em uma representação multi-resolução de tempo e de freqüência, através da
transformada discreta de wavelet. Em tal representação, o sinal base (fundamental) é codificado
por alguns coeficientes de alta amplitude. Reciprocamente, o processo de ruído é representado
por um grande número de baixos coeficientes. Assim, o de-noising é completo, simplesmente,
por descartar esses coeficientes antes de transformar o sinal para o domínio original.
Além do que foi dito acima, é importante salientar que para as técnicas não
paramétricas são propostas aproximações mais sofisticadas para redução de hiss em áudio. Um
exemplo disso são as técnicas estatísticas que utilizam os modelos AR e ARMA e que são
desenvolvidas para tratamentos em comum para a grande banda e ruídos impulsivos. Métodos
híbridos que combinam técnicas não paramétricas e estratégias paramétricas também podem ser
encontrados com relevância na literatura.
20
3. Short-Time Spectral Attenuation
Este capítulo aborda a teoria geral das técnicas STSA para a restauração de
gravações musicais degradadas pelo ruído de fundo, mais conhecido como hiss.
3.1. Introdução
STSA (Short-time Spectral Attenuation) é uma técnica de redução de ruído de
fundo que consiste, basicamente, na aplicação de uma atenuação que varia com o tempo para o
espectro gerado pela STFT (Short-time Fourier Transform) do sinal ruidoso. As técnicas STSA
são não-paramétricas e, geralmente, necessitam de pouco conhecimento do sinal a ser
processado. Além disso, são classificadas entre os métodos mais populares para o
aprimoramento de voz e seu uso é largamente predominante para a restauração de gravações
musicais.
Figura 3.1 – Hipótese básica para as técnicas STSA.
A figura 3.1 mostra uma hipótese básica, comum para todas as técnicas de (STSA). É
suposto que o sinal de áudio original s[n] é corrompido por um sinal de ruído aditivo v[n].
O conhecimento em relação ao ruído é, normalmente, limitado ao fato de que ele
pode ser considerado como estacionário e, sendo assim, torna-se possível estimar sua densidade
espectral de potência.
21
Figura 3.2 - Estrutura geral do método STSA.
O primeiro passo consiste em analisar o sinal com um banco de filtros. Cada canal
do banco de filtros é atenuado (multiplicando por um ganho real, geralmente menor que 1) e,
então, o sinal das sub-bandas são repostos juntos para se obter o sinal restaurado. O ganho,
mutante no tempo, é determinado pela regra de supressão de ruído para cada canal e usa uma
estimativa da potência de ruído nesses canais. Os dois elementos que, realmente, caracterizam as
técnicas STSA são, particularmente, as características do banco de filtros e a regra de supressão.
Na maioria das técnicas STSA, a transformada de tempo curto utilizada é a STFT
(Short-time Fourier Transform) ou, de certa maneira, um banco de filtros uniforme que pode ser
implementado pela STFT.
Para projetar o banco de filtros, é necessário levar em consideração o fato de que
o sinal da sub-banda, às vezes, será fortemente modificado pelo processo de atenuação. De certa
maneira, quando essa atenuação é claramente desejável para se obter uma reconstrução perfeita,
torna-se importante evitar efeitos tal como o aliasing da banda espectral, o qual pode criar
distorções no sinal restaurado. Para a STFT, são obtidos resultados satisfatórios com uma taxa
amostragem de sub-banda duas ou três vezes maior que a amostragem crítica (J. S. LIM AND A.
V. OPPENHEIM, 1979).
22
3.2. Considerações Históricas
Historicamente, a técnica Short-time Spectral Attenuation (STSA) foi,
primeiramente, desenvolvida para a redução de ruído em voz, nos anos 70s [Lim and
Oppenheim, 1979, Boll 1991]. A aplicação da STSA para a restauração de gravações em áudio
veio, mais tarde, com técnicas que foram adaptadas, diretamente, das técnicas utilizadas para a
voz.
Quanto à fase do sistema, a opinião mais comum é que ela não precisa ser
modificada em função das propriedades do sistema auditivo humano. [LIM AND OPPENHEIM,
1979]. A confirmação de que o ouvido é “insensitivo à fase” foi enfatizado pela descoberta da
psicoacústica, somente para os casos de sons estacionários para a fase da transformada de
Fourier. Além disso, é conhecido que para a STFT, a variação de fase entre quadros sucessivos
da transformada pode causar distorções audíveis. De qualquer forma, deveria ser enfatizado que,
geralmente, não há uma condição de escolha para sustentar a fase original em função da falta de
hipóteses com respeito ao sinal desconhecido.
Até agora, as técnicas STSA são amplamente predominantes no campo de
restauração de voz e, além disso, são usadas, de modo especial, para a restauração de gravações
musicais. Uma das razões para a ampla aplicação das técnicas STSA é, certamente, o fato de que
elas correspondem a aproximações não paramétricas, as quais podem ser aplicadas a uma
enorme classe de sinais. Em contrapartida, considerando que a maioria das gravações musicais
contém, simultaneamente, várias fontes de som, é indesejável que alguns dos métodos, que
contam com conhecimentos específicos das propriedades do sinal de voz, possam ser
generalizados para restauração de áudio.
Outra razão para o sucesso das técnicas STSA, no campo de restauração de áudio,
pode ser o fato de elas possuírem uma interpretação muito intuitiva.
23
3.3. Short-time Spectral Attenuation (STSA)
Esta seção descreve os principais conceitos em torno da STSA.
3.3.1. Transformada de tempo curto
Nas técnicas STSA, a transformada de tempo curto utilizada é a Short-time
Fourier Transform (STFT). Em alguns sistemas é utilizado um banco de filtros uniforme, o qual
pode ser implementado pela STFT.
Análise da STFT:
∑+∞
−∞=
−⋅−=n
njk
kenxnpRhpX πφφ 2)()(),( (7)
Síntese da STFT:
∑ ∑+∞
−∞=
−
=
−=p
N
k
njk
kepYN
pRnfny1
0
2),(1
)()( πφφ (8)
Onde x(n) é o sinal em análise, no caso, o sinal já corrompido, ou seja, a entrada
pura com a soma do ruído h(n) e f(n) é chamada, respectivamente, de janela de análise e síntese,
utilizada para limitar o tamanho, ou seja, o número de amostras na hora de fazer a transformada.
Uma análise para esse tamanho será, mais tarde, discutida como parâmetro de projeto do
supressor de ruído. N é o tamanho da transformada discreta de Fourier. R é o tamanho do salto
(em amostras) entre quadros sucessivos. Nkk /=φ é a freqüência discreta k normalizada. (kφ é
um valor entre 0 e 1 e adota N valores discretos para k=1,..., N, onde N é o número de sub-
bandas). O ),( kpX φ é a STFT, com índice p, é a freqüência kφ . É possível notar que esse índice,
normalmente, refere-se a uma taxa de amostragem menor que a taxa inicial de amostragem do
sinal (para a STFT, o baixo fator de amostragem é igual ao tamanho de salto entre quadros
consecutivos da transformada). ),( kpY φ é o sinal processado e sua saída y(n) é a sua STFT
inversa. Por convenção, h(n) é zero para n > 0 e f(n) é zero para um n < 0.
24
3.3.2. Atenuação Espectral
O resultado de uma regra de supressão pode sempre ser representado como a
aplicação de um ganho real ),( kpG φ para cada bloco ),( kpX φ da STFT, para o sinal ruidoso.
Normalmente, esse ganho corresponde a uma atenuação, ou seja, seu valor está entre zero e um.
Para a maioria das regras de supressão, ),( kpG φ depende, unicamente, do nível de potência do
sinal ruidoso 2|),(| kpX φ e da estimativa de potência do ruído na freqüência kφ ,
}),({)(2
kk pVELd φφ = ou seja, o valor esperado para a potência do ruído puro. Como o ruído é
do tipo estacionário, a estimativa da potência de ruído não depende do índice p , pois ele não
varia no tempo.
A relação )(
),(),(
2
k
kk Ld
pXpQ
φφ
φ = (9) é chamada de nível relativo de sinal. Pode-
se notar que quando o ruído v[n] é descorrelacionado com o sinal s[n] desconhecido, tem-se
)(
}),({1)},({
2
k
kk Ld
pSEpQE
φφ
φ += (10), e sendo assim, o valor esperado para o nível relativo de
sinal será sempre maior do que um.
A regra de supressão por subtração de potência é definida por
),(
11),(
kk pQ
pGφ
φ −= , (11)
e a regra de supressão chamada de subtração wiener é definida por
),(
11),(
kk pQ
pGφ
φ −= . (12)
As duas regras de supressão mencionadas acima possuem o mesmo comportamento
( 1),( =kpG φ ) quando o nível relativo de sinal é muito alto ( 1),( >>kpQ φ ) e
0),(1),(
lim =→ k
k
pGpQ
φφ
. (13)
Para manter a generalidade dos resultados e simplificar os cálculos, as regras de
supressão de ruído poderão ser aproximadas por uma “regra ideal de supressão”, na qual o ganho
é
25
0 quando ck QpQ ≤),( φ e
1 quando ck QpQ ≥),( φ
onde cQ é o nível relativo de corte. cQ é definido como o nível de ),( kpQ φ quando o ganho
),( kpG φ é -3 dB. As regras de supressão ideais correspondentes as duas regras de supressão
precedentes são representadas pelas linhas pontilhadas na figura 4.3. Qc=3dB para a regra de
subtração de potência e Qc = 5dB para a regra de supressão Wiener. Em muitos casos, o nível de
ruído )( kLd φ é, artificialmente, superestimado, multiplicando-o por um fator α maior que um, e
sendo assim, ),( kpG φ é nulo para αφ ≤),( kpQ .
Figura 3.3 – Ganho versus nível de sinal relativo. As linhas contínuas correspondem ao método
por subtração de potência e a linha pontuada corresponde a subtração wiener. As duas linhas pontilhadas correspondem ao modelo ideal para ambas regras de supressão.
É importante lembrar que o ruído v[n] será considerado estacionário, aditivo, e
descorrelacionado.
26
3.3.3. Análise Determinística
Apesar de ser, particularmente, difícil analisar os resultados das técnicas STSA
em uma situação geral, torna-se, relativamente, simples quando é suposto que o sinal de entrada
desconhecido é um tom puro, ou melhor, uma combinação de distintos tons puros com
freqüências, suficientemente, espaçadas. Essa hipótese é viável desde que uma grande proporção
de sons instrumentais possa ser descrita, eficientemente, como uma soma de tons puros
modulados.
Figura 3.4 – Restauração de um sinal senoidal dentro de ruído branco com potência de
0dB. (a) Sinal ruidoso (as linhas pontilhadas descrevem a característica do banco de filtros); (b)
O sinal processado.
A STSA não reduz o ruído presente nas sub-bandas que contém as componentes dos
sinais. A figura 3.4 mostra uma ilustração desse feito para um sinal senoidal mergulhado em
ruído branco. Se o nível da senóide for bastante grande, os canais em que ela se encontra não são
atenuados, enquanto que os outros canais são fortemente atenuados. Como conseqüência, o sinal
27
de saída consiste em um sinal senoidal cercado por uma banda estreita de ruído filtrado. Se o
nível da senóide for muito baixo, todos os canais são fortemente atenuados e o sinal é cancelado
completamente.
Para um sinal senoidal de freqüência φ (o qual supostamente correspondente à
freqüência central de um dos filtros do banco de filtros), assumindo que a densidade espectral de
potência do ruído adicional é suficientemente aplainada, verifica-se que:
φφ
φWS
PspQE
v )(1)},({ += (14)
Ps é a potência da senóide, )(φvS a densidade espectral de potência do ruído na freqüência φ e
φW é a largura de banda do filtro sub-bandas centrado em volta da freqüência φ .
Como conseqüência, o número de componentes de sinais, que são cancelados por
engano pelo processo de restauração, aumenta com a largura de banda do banco de filtros de
análise. Embora pareça simples, esse resultado, apesar de tudo, expressa que a melhoria do sinal
pode ser mais eficiente se a largura do canal for otimizada de acordo com o que é permitido pela
hipótese estacionária.
Para a STFT, a largura de banda do banco de filtros é inversamente proporcional a
duração do frame short-time. O processamento pode anular componentes audíveis se a duração
do quadro da transformada for menor eu 40ms.
3.3.4. Audibilidade do ruído na saída
Quando as componentes do sinal não são canceladas, o sinal processado exibe
uma banda de ruído filtrado situada em volta da componente senoidal. É claro que esse
fenômeno, se audível, é um defeito importante do método porque isso causa um ruído
perturbador combinado com o sinal, mas esse não é o caso para o ruído de banda larga original.
Quanto aos resultados mencionados anteriormente em relação ao cancelamento do
sinal, o limite audível obtido deveria ser considerado somente como a ordem de grandeza
estimada em situações reais, desde que não se leve em conta o possível mascaramento mútuo
entre componentes de sinais diferentes, sendo que esse fenômeno deve prevalecer quando o nível
de ruído é muito baixo. Na prática, a duração do quadro da STFT deve ser longo o suficiente
28
para evitar gerar efeitos de modulação indesejados (banda audível do ruído em torno das
componentes de sinal). Além disso, para sinais de áudio, a duração do quadro da transformada
pode ser ajustado vantajosamente em grandes valores com relação àqueles usados em voz, que
diminuem o limite do cancelamento de sinal.
3.3.5. Sinal Transitório
Os resultados anteriores relacionam-se com porções fixas de sons. No entanto,
sabe-se que gravações musicais também apresentam diversos trechos transitórios (começo de
nota, percussão) que representam uma parte importante na avaliação subjetiva das características
dos sinais.
Assim como em outras técnicas que usam uma análise de sinais de curto tempo, é
possível observar, nos sinais gerados pelo processo de restauração, distorções específicas, que
ocorrem quando os sinais transitórios estão presentes. Nas técnicas STSA, essas distorções se
manifestam como uma distorção na forma de onda do sinal para sinais transitórios de baixo-
nível. Esse fenômeno é ampliado com o aumento da duração do quadro da transformada.
A análise de tais efeitos transitórios é dificultada pelo fato de não haver um
protótipo de sinal transitório. Os resultados obtidos em um caso simplista, como o brusco
começo de um tom puro, apresentam indicações de que a essa distorção, observada em partes
transitórias de sinais com baixa amplitude, se deve, principalmente, em função da modificação
do espectro do sinal pela regra de supressão. Já em aplicações em que a magnitude do espectro
do quadro não é modificada drasticamente, a distorção do sinal transitório é causada, na maioria
das vezes, por distorções na fase.
Como conseqüência, métodos que exploram a redundância da magnitude do
espectro do quadro para restaurar a fase correta não são eficientes para eliminar as distorções
transitórias causadas pela STSA.
29
3.3.6. Estimação de Ruído
A redução do ruído de fundo (hiss), usando métodos para canal único, requer uma
estimativa do ruído. Diversas aproximações são baseadas em detectores de atividade de voz
(VAD), no qual a estimativa do ruído é atualizada durante períodos de inatividade de voz. Nesse
caso, a precisão pode deteriorar-se com a perda da relação sinal ruído (SNR) e em ruídos não
estacionários.
A estimação do ruído de fundo é um parâmetro essencial do algoritmo de redução
de ruído. È uma tarefa desafiante, sendo que a estimativa tem de ser obtida a partir do sinal de
voz ruidoso. Uma aproximação comum é usar um detector de energia de voz, (VAD – Voice
Activity Detector) para identificar segmentos no tempo em que a fala está ausente, pois, dessa
forma, o sinal consiste somente de ruído de fundo (hiss). Estimativas da estatística do ruído são
atualizadas durante essas pausas na fala. Apesar da estimativa do ruído, baseada em VAD, ter a
vantagem do baixo custo computacional, ela sofre com dois problemas. Com a diminuição da
relação sinal ruído a detecção de pausas na fala não é mais uma tarefa trivial. Além disso,
enquanto o método trabalha, razoavelmente, bem em ambientes com ruído estacionário o
desempenho degrada em ambientes nos quais a estatística do ruído muda continuamente, o que é
normal na prática.
Para melhorar a eficácia do VAD binário (presença de voz e ausência), são
propostos VADs com decisões suaves, as quais determinam uma probabilidade da presença de
voz em cada segmento. Dessa forma, é possível atualizar a estatística do ruído, continuamente,
baseado na probabilidade de presença do ruído.
3.3.7. Ruído musical
Quando o ruído está presente, o nível de sinal relativo observado pode ter valores
altos. Desse modo é, praticamente, possível separar o ruído de componentes de baixo nível de
sinal com base no nível de sinal relativo. Como resultado, o cancelamento total do ruído pode
somente ser obtido ao custo de distorção das componentes de baixo nível.
Na maioria das técnicas STSA, o ruído que permanece depois do processamento
tem uma qualidade perturbante não natural, especialmente no contexto musical. Esse fenômeno
é, geralmente, referenciado como ruído musical ou ruído residual. O fenômeno do ruído musical
30
é uma conseqüência direta do fato de que o período estimado, usado para avaliar o nível de sinal
relativo, captura valores que são assintóticamente descorrelacionados, mesmo para trechos
vizinhos. Esse período, que é guardado para a transformada pertencente ao mesmo quadro em
análise, é complementado pelo fato de que os trechos de quadros sucessivos tenderão também a
ser descorrelacionados para quadros que não se sobrepõe no tempo.
Combinando essas duas propriedades, é facilmente verificado que a STSA
transforma o ruído de banda larga original em um sinal composto de tons passageiros com
freqüências distribuídas randomicamente. Além disso, com uma regra de supressão “padrão”,
que depende somente do nível de sinal relativo medido no frame corrente, esse fenômeno pode
ser somente eliminado sobreestimando rudemente o nível de sinal.
3.3.8. Soluções para o ruído musical
Diversas modificações empíricas são apresentadas como soluções para o ruído
musical. A primeira possibilidade consiste em tirar vantagem das características desse tipo de
ruído, mais, precisamente, da curta duração das componentes de ruído musical e da aparência
que o mesmo apresenta em uma sub-banda que é independente de outras sub-bandas. A principal
desvantagem desse tipo de aproximação é que, a partir do que é baseado nas propriedades
estatísticas médias, o ruído musical é reduzido, porém não é completamente eliminado.
Outra possibilidade é usar uma estimativa suavizada do nível de sinal relativo.
Limitações dessa aproximação incluem o fato de que ela pode gerar distorções no sinal,
particularmente durante transições em que a suavização temporal é usada.
Finalmente, há uma alternativa que cancela o ruído musical por trás de um nível
suficiente de ruído fixo. Uma maneira simples de proceder consiste em forçar o ganho
computado, que é aplicado sobre o limiar pré-selecionado. Além disso, é possível acabar com o
ruído musical utilizando a regra de supressão Ephraim and Malah, a qual será abordada no
próximo capítulo.
31
3.4. Regras de Supressão
Neste capítulo são abordadas as duas regras de supressão de ruído aplicadas neste
trabalho, a EMSR (Ephraim and Malah noise Supressio Rule) e a SS (Subtração Espectral).
3.4.1. EMSR
A técnica EMSR (Ephraim and Malah noise Supressio Rule) é um sistema para
melhorar os sinais de fala que possuem ruído. Além disso, é baseado na derivação de um
estimador ótimo de amplitude espectral de tempo curto (STSA – Short-time Spectral Amplitude),
o qual busca minimizar o erro médio quadrático (MMSE – Minimum Mean–Square Error) entre
a amplitude espectral de tempo curto (STSA) original e sua estimação.
De uma maneira em geral, o algoritmo EMSR tenta encontrar um compromisso
entre a quantidade de ruído a ser removida e as distorções introduzidas no sinal de voz devido ao
processamento realizado. Em outras palavras, ele realiza uma redução moderada do ruído de
fundo enquanto evita, completamente, o aparecimento do ruído musical.
O algoritmo original foi proposto por Ephraim e Malah pela primeira vez, em
1983. Neste trabalho, será focado somente o princípio original de EMSR desenvolvido, pois o
mecanismo responsável por eliminar o ruído é, basicamente, o mesmo em todas as regras de
supressão propostas. A fig 3.5 mostra o algoritmo em diagrama de blocos.
Figura 3.5 – Diagrama de blocos do algoritmo original Ephraim and Malah
32
Como já foi dito, o EMSR é um tipo de algoritmo de atenuação espectral de tempo curto.
Seu ganho espectral é dado como ),( wqG , isto é, varia com o espectro e o quadro, que é
aplicado sobre a magnitude de cada componente espectral ruidosa de tempo curto ),( wqY
A função ganho ),( wqG é dada por:
++⋅
+
+⋅=
Rpost
RprioRpostM
Rpost
Rprio
RpostwqG
11
11
1
2),(
π (15)
[ ]
+
+
−=22
)1(2
exp 10
θθθθθθ IIM (16)
onde 0I e 1I são as equações de Bessel modificadas.
A partir desse ganho, pode-se obter uma estimativa da magnitude ),(^
wqS da
componente espectral w da fala limpa no q-ésimo quadro. O ganho G(q,w) depende de dois
parâmetros, que são apresentados nas Equações a seguir.
1
)(
),(),(
2^
2
−=wD
wqYwqRpost (17)
onde 2^
)(wD é a potência estimada do ruído na freqüência w. O parâmetro Rpost é a
relação sinal-ruído a posteriori, computada do quadro de tempo curto atual q para cada
componente espectral w.
2^
2
)(
),1(),1(),()1(),(
wD
wqYwqGwqRpostwqRprio
−⋅−⋅+⋅−= µµ (18)
33
O parâmetro Rprio é a relação sinal-ruído a priori. Pode-se verificar que na
primeira parcela efetua-se uma ponderação de )1( µ− na relação sinal ruído do quadro atual,
Rpost. O fator ),1(),1( wqYwqG −⋅− é uma estimativa do espectro do sinal sem ruído do
quadro anterior. Dessa forma, tem-se, na segunda parcela da equação (18), a relação sinal-ruído
do quadro anterior, que é ponderada pelo parâmetro µ . Pode-se então compreender a razão da
denominação a priori, pois o cálculo de Rprio depende de uma estimativa do sinal limpo, a qual é
feita baseada em um quadro prévio, enquanto para a determinação de Rpost não necessita-se de
nenhum conhecimento prévio do sinal ruidoso no quadro atual.
A influência dos parâmetros Rpost e Rprio
O parâmetro Rprio, relação sinal-ruído a priori, é o parâmetro dominante no
cálculo do ganho. Como pode ser visto na figura 3.6, fortes atenuações são obtidas somente se
Rprio é baixa e baixas atenuações são obtidas somente se Rprio é alta.
Quando Rprio é baixo, Rpost atua como parâmetro de correção (como mostra o
lado esquerdo da figura 3.6). Quando Rprio é baixo Rpost é alto, o efeito é oposto ao
intuitivamente esperado e existe uma atenuação muito forte. Esse comportamento é
conseqüência do desacordo entre as relações sinal-ruído a priori e a posteriori, sendo muito útil
na eliminação do ruído residual.
Figura 3.6 – Ganho EMSR versus Rprio, para diferentes valores de Rpost.
34
Quando a relação sinal-ruído a posteriori, Rpost, fica abaixo ou próxima de 0db, Rprio
corresponde a uma versão altamente suavizada de Rpost, ao longo de sucessivos quadros.
Conseqüentemente, a variância de Rprio para cada freqüência é muito menor que a de Rpost, ao
longo de sucessivos quadros. Pode-se notar, no lado esquerdo da figura 3.7, como a curva de
Rprio é muito mais suave que a curva de Rpost.
Quando Rpost é muito maior que 0 dB, Rprio segue Rpost ao longo de suceissivos
quadros. Como pode ser visto no lado direito da figura 3.7, nos últimos 20 quadros, Rprio segue
Rpost com apenas um quadro de atraso.
Figura 3.7 – As relações sinal-ruído Rpost e Rprio ao longo de sucessivos quadros.
Curva de linha contínua: Rprio; Curva de linha pontilhada: Rpost. Nos primeiros 40 quadros o
sinal contém somente ruídos na freqüência escolhida e para os 2º quadros seguintes surge uma
componente com mais de 15dB de relação sinal-ruído na freqüência mostrada
Quando o nível do sinal é bem superior ao do ruído, como ocorre nos últimos 20
quadros da Figura 3.7, Rprio(q,w) não é mais uma versão suavizada da relação sinal-ruído e sim
uma versão atrasada de Rpost, o que é importante no caso de sinais não-estacionários.
35
3.4.2. Subtração Espectral
A subtração espectral é uma técnica muito mais simples do que a EMSR. Ela,
simplesmente, consiste em subtrair a amplitude do espectro do sinal ruidoso com a média da
estimação do ruído calculado para o mesmo quadro do sinal. Maiores descrições estão presentes
no próximo capítulo, que aborda o desenvolvimento do trabalho.
36
4. Projeto para a Restauração do Acervo de Gravações do Laboratório de Línguas da PUCRS
Neste capítulo, está descrito o Projeto para a Restauração do Acervo de Gravações do
Laboratório de Línguas da PUCRS, o qual já está em andamento. Este projeto faz parte do
programa de Bolsa/Pesquisa para Alunos da PUCRS, tendo como coordenador do projeto pela
FENG (Faculdade de Engenharia) o Prof. Dr. Denis Fernandes e pela FALE (Faculdade de
Letras), profª. Drª. Regina Ritter Lamprecht. A proposta de um software para a redução de ruído,
descrito no capítulo 5, deverá ser aplicado no contexto deste projeto.
4.1.1. Objetivos Gerais e Específicos
O presente projeto tem como objetivo específico a restauração do acervo de
gravações de áudio do Laboratório de Línguas da Faculdade de Letras (FALE) da PUCRS. Os
diversos cursos e registros atualmente armazenados em fitas de rolo, cassete e videocassete,
serão digitalizados e restaurados através de técnicas avançadas de processamento digital de
sinais. Os conteúdos serão armazenados em CDs e DVDs e poderão ser disponibilizados para
acesso on-line por parte da comunidade acadêmica.
Como objetivo geral, pode ser citado, sob o ponto de vista da Faculdade de
Engenharia (FENG), o aprofundamento do conhecimento sobre técnicas de restauração e
compressão digital de sinais de áudio, criando uma oportunidade para testar algoritmos originais
desenvolvidos na própria FENG. Já sob o ponto de vista do Laboratório de Línguas, cria-se uma
oportunidade para organizar, recuperar, preservar e disponibilizar o acervo do Laboratório de
Línguas em formas mais práticas para os usuários e criar ferramentas de ensino e estudo on-line
utilizando a Internet.
37
4.1.2. Justificativa
O acervo de gravações de áudio do Laboratório de Línguas da PUCRS foi
construído ao longo de anos através da aquisição de materiais didáticos de apoio e para utilização
em salas de aula. Com o passar do tempo, os métodos foram sendo renovados e o material antigo
passou a ser utilizado como material de apoio ou reforço no processo de aprendizagem. Existem,
porém, muitos materiais armazenados em fitas magnéticas que não foram mais editados ou
aperfeiçoados ou mesmo sem uma produção melhor e mais atual numa dada metodologia de
estudo e/ou abordagem de um dado assunto ou conteúdo. Nestes casos, é preciso um tratamento
altamente especializado para digitalização e recuperação do conteúdo das mídias do Laboratório.
Por outro lado, a possibilidade de disponibilizar material para estudo a distância
através da Internet por parte da Faculdade de Letras para utilização em seus cursos de graduação,
pós-graduação e extensão requer, além da digitalização e recuperação do material, sua
compactação de forma eficiente.
O estudo e desenvolvimento de técnicas de processamento digital de sinais, as
quais serão necessárias para recuperar e compactar o conteúdo do acervo do Laboratório de
Línguas, está vinculado à área de Telecomunicações e T&I do Programa de Pós-Graduação em
Engenharia Elétrica (PPGEE) da FENG, tratando-se de uma oportunidade ímpar para aplicação
prática de conhecimentos adquiridos e desenvolvimento de novas técnicas. O sucesso obtido na
aplicação destas novas técnicas pode também resultar em publicações de interesse do PPGEE.
4.1.3. O Laboratório de Línguas da PUCRS
A PUCRS foi pioneira no Rio Grande do Sul ao introduzir, em maio de 1968, seu
Laboratório de Línguas. Devido à intensa demanda por parte dos professores e grupos de alunos,
outro laboratório foi adquirido em 1984 e instalado numa sala contígua, onde funciona hoje o
Laboratório de Multimídia. O Laboratório de Línguas está vinculado à FALE, e dedica-se ao
ensino de línguas estrangeiras e vernáculas, à pesquisa e à prestação de serviços. É administrado,
desde sua fundação, por um diretor-coordenador nomeado pela direção da Faculdade. O
Laboratório de Línguas hoje é constituído por três laboratórios: um laboratório de línguas e dois
laboratórios computacionais. O laboratório de línguas é um espaço dedicado ao ensino de
fonética, estruturas lingüísticas, aquisição de vocabulário, entre tantas outras práticas
pedagógicas utilizadas no ensino de línguas estrangeiras. Suas instalações consistem de um
38
console de comandos com dois canais de distribuição de áudio, comunicação interativa com
modo de conferência e trinta cabines de gravação coletivas e sete individuais. Hoje, este sistema
conta com vários outros aparelhos anexados ao console para enriquecer e dinamizar os trabalhos.
No Laboratório de Línguas da PUCRS, assim com em qualquer laboratório de
ensino de línguas estrangeiras, é muito comum e de grande presteza no auxílio do ensino de
fonética, na aprendizagem de estruturas lingüísticas e aquisição do vocabulário da língua em
estudo, a existência de um acervo de áudio com programas específicos para estas modalidades de
ensino. O acervo do Laboratório de Línguas, composto de fitas magnéticas de áudio, fitas VHS,
CDs e mesmo DVDs, necessita de cuidados específicos para que se assegure a preservação das
informações registradas. No caso das fitas magnéticas, para preservação do acervo por um longo
tempo, faz-se necessária a construção e manutenção de ambientes especiais, com o devido
controle de temperatura e umidade, entre outros cuidados. Como não se dispõe de recursos para
criação destes ambientes especiais e é necessário conservar indefinidamente os registros, torna-
se relevante a transcrição periódica destes meios antigos para novos meios, não somente porque
os meios de armazenamento de informação são instáveis, mas também porque a tecnologia de
gravação se torna obsoleta (ex. fitas magnéticas de rolo).
4.1.4. Descrição do Material O material focalizado inicialmente neste trabalho é parte integrante do acervo de
fitas de áudio pertencente ao Laboratório de Línguas. Trata-se de fitas de rolo gravadas e
editadas em 1966. Este material foi selecionado para esta primeira etapa do processo de
restauração do acervo [1], pela importância que ainda hoje tem no ensino de fonética. Ele se
enquadra no caso dos bons programas em áudio antigos não mais editados. Trata-se de um curso
completo que ainda apresenta condições de recuperação.
Foram escolhidos, a princípio, dois cursos. Um deles é o Stress and Intonation -
Part 1 [2], composto por um livro com conteúdo dividido em 14 fitas de rolo com duração
aproximada de 20 minutos cada. Este curso tem a sua parte dois dividida em 16 fitas, a qual será
trabalhada em uma segunda etapa do projeto. O outro curso é o Consonants and Vowels [3],
composto por um livro e 24 fitas de rolo.
39
4.1.5. Identificação dos Problemas Encontrados
O estado das fitas é bastante precário, pois, além do envelhecimento natural
ocasionado pelo processo de deterioração dos materiais constituintes das mídias magnéticas, não
houve armazenamento adequado nos últimos dez anos. Sendo assim, o material hoje se encontra
em uma situação delicada no que tange seu manuseio, pois são necessários cuidados especiais na
reprodução ou corre-se o risco de danificá-lo de forma irreversível. Como as fitas estão
ressequidas e quebradiças, é muito freqüente haver emendas com fita adesiva, material
inadequado para essa finalidade, pois atende momentaneamente ao processo de reprodução, mas
acarreta uma série de problemas posteriores, tais como o corte de trechos da gravação quando as
emendas são colocadas de forma a cobrir também o lado da fita onde está depositado o material
magnético. Este problema ocorre com muita freqüência com o material por ora selecionado. No
caso de uma emenda mal feita, os efeitos podem ser piores, podendo ocorrer rompimento da fita
ou deformação, sem falar em possíveis danos ao equipamento de reprodução.
No caso das fitas ressequidas também existem problemas, pois elas tornam-se
quebradiças e é comum romperem-se durante a reprodução, obrigando assim a se introduzir mais
emendas, realimentando o processo de degradação da mídia. A degradação do aglutinante ou o
ressecamento da fita acabam por ocasionar falhas na tração exercida pelo gravador na hora da
reprodução, o que resulta na parada da reprodução ou na variação de rotação, gerando distorções
durante os trechos críticos.
Outro problema que implicou a depreciação do material está relacionado com as
diversas regravações feitas ao longo dos anos para conservação do conteúdo das fitas originais
do curso. Algumas fitas originais foram perdidas e substituídas por cópias, sendo que muitas das
cópias restantes são gravações de baixa qualidade. Algumas destas cópias foram gravadas a
partir do conteúdo armazenado em vinil (não mais existente), para recuperar trechos perdidos de
cópias em fitas de rolo, o que em parte solucionou o problema, mas, por outro lado, ocasionou
outros.
Em algumas fitas também é possível observar a deformação do substrato. Quando
isto acontece, o problema se dá geralmente ao longo de toda a gravação, prejudicando em muito
o processo de aquisição do sinal durante a digitalização. Como a fita não fica perfeitamente
aderente à cabeça de leitura do gravador, a reprodução fica comprometida.
40
Além de falhas e interrupção do sinal, devido a emendas mal feitas e por perda de
aglutinante e do material magnético em alguns trechos da fita, foi observado um elevado nível de
ruído de fundo e estalos do tipo click.
Outra dificuldade encontrada diz respeito aos gravadores de rolo existentes no
setor, não mais fabricados, sendo que alguns encontram-se em funcionamento precário,
necessitando de ajustes mecânicos, além de alguns problemas elétricos e eletrônicos.
41
5. Desenvolvimento do Trabalho
Neste capítulo é abordado o desenvolvimento do trabalho, como o funcionamento do
software desenvolvido.
Com o objetivo de restaurar gravações fonográficas que apresentem ruídos de fundo do
tipo "hiss", foi desenvolvido um algoritmo capaz de proporcionar tal feito. O uso de uma
ferramenta computacional adequada é parte fundamental no planejamento e no desenvolvimento
de qualquer tipo de projeto atualmente. Para tanto, a ferramenta escolhida para a implementação
do algoritmo foi o Matlab. Essa escolha se deve ao fato de que o Matlab já possui diversas
funções padrões, como, por exemplo, a FFT, necessária para a implementação do software, entre
outras. Dessa maneira o trabalho é simplesmente focado para o desenvolvimento da aplicação,
sem necessitar criar funções que fogem da finalidade deste projeto.
O desenvolvimento do trabalho é feito através da implementação de duas regras de
supressão diferentes: a MMSE e a Subtração Espectral. Ambas foram implementadas da mesma
maneira, usando os mesmos critérios de predição de ruído e tamanho de janela. Elas usam o
mesmo algoritmo, sendo que se diferenciam apenas no bloco referente à regra de supressão
utilizada.
Na próxima seção é apresentado um diagrama de blocos simplificado do software
implementado e, logo em seguida, a descrição sobre a finalidade de cada bloco dentro do
processo.
5.1. Algoritmo de Redução de Ruído
O algoritmo de redução de ruído consiste na lógica utilizada para suprimir o ruído.
Abaixo é apresentado o diagrama de blocos do algoritmo e, em seguida, uma descrição da lógica.
42
5.1.1. Diagrama de blocos
43
5.1.2. Descrição do algoritmo
Ao iniciar o programa, no bloco 1, a primeira função a ser executada é a função de leitura
do arquivo com ruído, descrita no matlab como ‘waveread’. Essa converte o arquivo inicial
corrompido com ruído de fundo no formato ‘wav’ para o formato ‘PCM’, o qual é descrito por
uma série de pulsos que representam as amostras do sinal corrompido. A amplitude é
normalizada com valores entre –1 e 1.
Em seguida, no bloco 2, é calculado o número de amostras dentro de uma janela de 25ms,
definida como padrão para esse algoritmo. Isso é feito multiplicando a freqüência de amostragem
pelo tamanho da janela no tempo. Esse valor é utilizado, mais tarde, para segmentar o sinal em
frames.
No Bloco 3, é calculado o NIS (Número inicial de segmentos com silêncio). Ao iniciar o
algoritmo, deve ser definido um valor inicial que possua apenas silêncio. Dessa forma é possível
fazer uma boa estimativa de ruído já para as primeiras amostras do sinal, tornando possível a
restauração já nas primeiras amostras. O grande problema é que sinais que não possuem um
período de silêncio ao iniciarem estão sujeitos a uma má estimação de ruído, o que pode
depreciar as primeiras amostras de voz. A fórmula utilizada para o cálculo do NIS é
)*/()*(( WSPWfsISfixNIS −= . IS é o período de silêncio inicial (padrão 0.25s), fs é a
freqüência de amostragem, W é o número de amostras dentro da janela, calculado no bloco 2, e
SP é o shift percentage entre os frames, definido como padrão de 40%, ou seja, 10ms,
considerando a janela de 25ms.
Após o cálculo do tamanho da janela no bloco 2 e o cálculo do NIS no bloco 3, pode ser
feito a segmentação do sinal. Isso é feito no bloco 4. A função que executa a segmentação está
definida como ‘segment’ e está descrita junto com o algoritmo STSA na seção de anexos. O
objetivo dessa função é transformar o sinal original em frames menores, nos quais o sinal pode
ser considerado estacionário.
No bloco 5, os frames no tempo são transformados para o domínio freqüência, através da
função FFT (Fast Fourier Transform) que já faz parte da biblioteca do Matlab.
No bloco 6, é calculado o espectrograma, através do módulo, sobre cada frame transformado em
freqüência. Já no bloco 7, é feito o cálculo do espectro de potência para os frames iniciais (NIS),
através da média do espectrograma desses quadros. Esse valor é utilizado para o primeiro frame
a ser restaurado.
44
No bloco 9, é inicializada a variável i=1, a qual é utilizada para um loop no qual é
calculado o ganho, seja no método MMSE ou no SS, para cada frame do sinal em que i é o
índice que indica o frame que está sendo calculado. Essa variável é comparada no bloco 17 com
o número de frames calculado no bloco 8. Caso i não seja igual ao número de frames, i é
incrementado e o processo de cálculo do ganho se repete, só que agora para o próximo frame,
que será i+1.
No bloco 10, é realizada uma análise para saber se o frame pertence ou não ao número
inicial de segmentos com silêncio (NIS). Se o frame estiver dentro do NIS, no bloco 11, o
algoritmo não calcula o VAD (Voice Activty Detection) e passa direto para o teste de presença de
voz. Como é suposto que os quadros que pertencem ao NIS não possuem presença de voz, logo é
feita a atualização da média do ruído. Caso o índice i seja maior que NIS, é realizado, no bloco
12, o cálculo do VAD. Como resultado, o VAD indica, no bloco 13, se o frame que está em
cálculo possui ou não presença de voz. Se o VAD chegar à conclusão de que o frame não
apresenta presença de voz, é feita, no bloco 14, uma atualização da média do ruído.
A atualização citada acima é realizada através da fórmula
)1/())(:,*( ++= tNoiseLenghiYNanttNoiseLenghN , na qual N é a média do ruído calculado
para o frame corrente. ‘Nant’ é a média referente ao ruído no frame anterior e ‘NoiseLenght’ é
um fator suavizante no cálculo do ruído. Se ‘Noiselenght’ for 0, a média do ruído será a média
do sinal Y(:,i) para o frame em cálculo. Quanto maior for o fator NoiseLenght maior é a
suavização no cálculo do ruído. Caso o VAD retorne indicando a presença de voz, não será feita
uma atualização para o cálculo do ruído e, sendo assim, será utilizado o ruído anterior para o
cálculo de ganho no frame em questão.
Após o cálculo da média de ruído para o frame, é feito, no bloco 15, o cálculo do ganho.
Esse irá atenuar ou não o sinal, em função da regra de supressão utilizada. Aqui o ganho pode ser
dividido em SS (Spectral Subtraction) ou em EMSR (Ephraim and Malah Supression Rule). Ao
fim do cálculo do ganho para cada quadro, obtém-se o sinal limpo multiplicando-se o ganho
calculado para cada frame com o sinal ruídoso de entrada para o mesmo frame, no bloco 16.
Obtendo a estimativa do sinal limpo para todos os frames do sinal original, o processo de
restauração está pronto para ser re-transformado para o domínio tempo, através da função IFFT,
descrito pelo bloco 19, pertencente à biblioteca padrão do Matlab. A partir daí, o arquivo de
áudio restaurado, no domínio tempo, deve ser convertido do padrão PCM para o padrão wav, ou
seja, deve ser utilizada a função inversa à aplicada no primeiro bloco. Isso pode ser feito através
45
da função ‘wavwrite’, pertencente a biblioteca padrão do Matlab. Agora sim, já é possível ter o
sinal de áudio restaurado.
46
6. Resultados
Para medir e comparar os resultados entre as duas regras de supressão de ruído, foram
testados vários trechos de arquivos de áudio durante este trabalho. Dentro dos resultados
apresentados, são citados apenas dois tipos de arquivos de ruído, o arquivo ‘testesom.wav’ e o
arquivo ‘amostra.wav’.
O arquivo ‘testesom.wav’ é um arquivo criado especificamente para fins de teste. A
partir dele, foram gerados dois novos arquivos, acrescentando-se ruído aleatório de maneira
controlada, para que um deles possua uma relação sinal ruído (SNR) de 25dB, arquivo
‘testesom25dB.wav’, e o outro uma relação sinal ruído de 10dB, arquivo ‘testesom10dB.wav’. O
algoritmo utilizado para gerar os arquivos com ruído controlado está junto aos anexos com o
nome de ‘noisegen’.
A restauração foi realizada a partir de dois arquivos ruidosos, ‘testesom25dB.wav’ e
‘testesom10dB.wav’, afim de reparar as perturbações causadas pelo ruído aleatório inserido no
arquivo original, ‘testesom.wav’. Dessa maneira, o resultado audível esperado deve ser o mais
próximo possível do sinal original, de modo que as distorções introduzidas pelo ruído aleatório
não sejam um fator tão relevante na qualidade do áudio restaurado. Para o arquivo corrompido
com SNR de 25dBs, ‘testesom25dB.wav’, foi feita a restauração a partir das técnicas de
Subtração Espectral e de MMSE, representados pelos arquivos ‘testesom25dB_SS.wav’ e
‘testesom25dB_MMSE.wav’ respectivamente. O mesmo procedimento foi usado para o arquivo
corrompido com SNR de 10dBs, gerando os arquivos restaurados ‘testesom10dB_SS.wav’ e
‘testesom10dB_MMSE.wav’, provenientes das técnicas de Subtração Espectral e MMSE,
respectivamente. Abaixo, a figura 6.1 mostra graficamente um trecho do sinal, ‘testesom.wav’.
47
Figura 6.1 – Arquivo ‘testesom.wav’.
Para fins comparativos entre as regras de supressão e para poder mostrar visualmente um
resultado da redução de ruído, foi escolhido o processo de redução de ruído para o sinal com
SNR de 10dB, já que ele apresenta resultados mais expressivos, o que torna mais simples a
visualização dos mesmos. A figura 6.2 é referente ao arquivo ‘testesom10dB.wav’, ou seja, o
arquivo original somado com o ruído aleatório controlado para obter SNR de 10dB.
Figura 6.2 – Arquivo ‘testesom10dB.wav’
Nota-se, claramente, na figura 6.2, o surgimento de ruído somado ao sinal original,
causando distorções por todo o espectro de freqüências. Esse ruído só poderá ser removido
48
usando técnicas específicas de processamento, como a STSA. Subjetivamente, o áudio se torna
muito desagradável do ponto de vista do ouvinte, o que torna certos trechos da fala,
praticamente, irreconhecíveis. É nessa ocasião que é executado o algoritmo desenvolvido neste
trabalho. A figura 6.3 mostra o sinal processado para a regra de supressão por Subtração
Espectral.
Figura 6.3 – Restauração por Subtração Espectral (‘testesom10dB_SS.wav’).
Apesar do fato de visualmente não ser possível tirar amplas conclusões a respeito da
restauração executada, nitidamente, o resultado é um sinal muito mais limpo e com
características bem próximas do sinal original. Percebe-se também que, no trecho inicial da fala,
na qual a amplitude do sinal é muito baixa, a técnica de Subtração Espectral, praticamente,
atenua todo o sinal original. Isso ocorre em função da estimativa de ruído do programa utilizar a
técnica VAD (Voice Activity Detection). Em trechos de amplitude muito baixa, a potência do
ruído pode ser muito maior que do sinal e, nesses casos, o nível do sinal está abaixo do limiar
pré-estabelecido no VAD. Isso faz com que o algoritmo interprete que aquele segmento é
composto somente por ruído branco, sendo assim, eliminando completamente o sinal nesse
trecho. Em função desse problema, é, praticamente, impossível trabalhar com objetos sonoros
em que a relação sinal-ruído é muito baixa. Na prática, uma SNR de 10dB foi possível de ser
executada, mas já mostra alguns trechos com deficiência, os quais não ocorreram com a SNR de
25dB.
Embora se torne evidente o cancelamento do ruído de fundo do tipo “hiss”, o grande
problema da regra de supressão por Subtração Espectral é o surgimento do ruído musical. Como
já foi explicado nos capítulos anteriores, o ruído musical surge em função da grande variação do
49
ganho entre quadros sucessivos do sinal, causados pela Subtração Espectral. Seu efeito audível
pode ser bastante irritante ao ouvido, uma vez que surge um som agudo ou “zumbido” em torno
da voz.
A regra de supressão criada por Ephraim e Malah, chamada de MMSE, chega a
resultados semelhantes à Subtração Espectral, mas a sua grande característica é ser muito eficaz
contra o ruído musical. Dessa maneira, o resultado ao ouvinte pode ser muito mais agradável, já
que não gera mais o ruído musical. Apesar disso, a regra de supressão MMSE não é tão eficaz na
eliminação do “hiss” quanto a Subtração Espectral. Isso ocorre em função do ganho proposto
pela técnica MMSE ter características mais suaves do que o proposto pela Subtração Espectral.
Desse modo, tem-se ganhos adjacentes entre os quadros com uma diferença menor, o que,
realmente, é bom para eliminar os artefatos do ruído musical. Entretanto, para alguns quadros,
esse ganho não condiz com o esperado. Por exemplo, considerando que para um quadro qualquer
do sinal, o ganho calculado pela Subtração Espectral deve ser 1, ou seja, não é atenuado, e para o
próximo quadro ele deveria ser 0, totalmente cancelado.
A MMSE faz com que os valores citados acima não sofram uma diferença tão grande
entre quadros consecutivos, o que pode não ser o conveniente, uma vez que aquele quadro em
que o ganho calculado pela Subtração Espectral deveria ser 0, ou seja, completamente atenuado.
Isso faz com que o arquivo restaurado pela MMSE ainda tenha uma pequena presença de ruído
do tipo “hiss”. Contudo, mesmo assim, a técnica MMSE parece ser, subjetivamente, melhor do
que a técnica de Subtração Espectral, para o caso do arquivo ‘testesom.wav’, por eliminar
completamente o efeito do ruído musical. A figura 6.4 mostra o sinal processado para a regra de
supressão MMSE.
Figura 6.4 – Restauração pela regra de supressão MMSE (‘testesom10dB_MMSE.wav’)
50
O sinal ‘amostra.wav’ foi tirado, diretamente, de um material do curso de línguas da
Faculdade de Letras da PUCRS, o qual estava armazenado em fitas analógicas. Esse sinal possui
uma presença de ruído do tipo “hiss” bastante significativa, ideal para por em prova a eficiência
do algoritmo para uma situação real. Realmente, os resultados, tanto para a regra de supressão
por Subtração Espectral quanto para a MMSE, foram bastante satisfatórios. Nesse experimento,
subjetivamente, a técnica por Subtração Espectral parece ter um desempenho melhor. Nessa
situação não surgiu o efeito do ruído musical. Isso se deve em função de que a relação sinal-
ruído desse áudio é, provavelmente, maior do que as feitas com as amostras anteriores, em que
eram de 25dB e 10dB, o que é, nitidamente, percebido.
51
7. Conclusões
A partir dos apontamentos feitos neste trabalho, pode-se concluir que as técnicas STSA
são, realmente, eficazes pois obtiveram resultados satisfatórios, utilizando baixos custos
computacionais, o que faz da STSA uma das técnicas mais utilizadas no campo de restaurações
fonográficas.
Comparando as duas regras de supressão utilizadas, não foi possível obter uma medida
objetiva entre o sinal original e o restaurado. Apesar de terem sido feitos testes para a medição
da relação sinal-ruído, os mesmos não conseguiram representar, objetivamente, uma medida que
se aproximasse da avaliação subjetiva, que serviu como referência de qualidade na comparação
das técnicas. Isso se deve ao fato de que o sinal restaurado é, fortemente, alterado, perdendo
componentes sem grandes expressões para o ouvido humano, mas que tornam essa medida
inapropriada para ser um conceito de qualidade.
Como o fato em questão neste trabalho foi a comparação entre duas regras de supressão
da STSA, Subtração Espectral e a MMSE, diversos parâmetros iniciais, como tamanho de janela
e salto entre quadros (shift percentage), não foram modificados. Da mesma maneira, o método
para a estimação de ruído utilizado foi o VAD, mas nada impede a utilização de outros
parâmetros.
A regra de supressão por Subtração Espectral, embora muito eficaz na redução de hiss,
pode acrescentar o inconveniente ruído musical ao objeto restaurado. De certa maneira, a MMSE
consegue fazer a restauração do áudio, eliminando, completamente os artefatos do ruído musical,
porém essa regra de supressão já mostra que não é tão eficiente quanto a Subtração Espectral no
que diz respeito à eliminação do hiss.
Portanto, é difícil afirmar qual das duas regras de supressão é, subjetivamente, a melhor.
Isso depende de fatores que vão desde o nível de ruído introduzido no sinal original até o gosto
pessoal que cada ouvinte tem.
52
8. Referências Bibliográficas
[1] CAPPÉ, OLIVIER. Evaluation of Short-Time Spectral Attenuation Techniques
for the Restoration of Musical Recordings. 3. ed. IEEE Transactions on speech and
audio processing., 1995.
[2] ESQUEF, PAULO A. A. Model-Based Analysis of Noisy Musical Recordings
with Application to Audio Restoration. Espoo, Finlandia 2004. Dissertação (Doutorado
em ciências da tecnologia) – Departamento de Engenharia Elétrica e Comunicações,
Helsinki University of Technology.
[3] GODSILL, SIMON; RAYNER, PETER; CAPPÉ, OLIVIER. Digital Áudio
Restoration. Paris; Cambridge: Kluwer Academic Publishers, 2002.
[4] J. S. LIM AND A. V. OPPENHEIM, “Enhancement and bandwidth compression
of noisy speech,” Proc. IEEE, vol. 67, no. 12, pp. 1586-1604, dec. 1979.
[5] P. A. A. ESQUEF, L.W. P. BISCAINHO, V. V¨ALIM AKI, AND M.
KARJALAINEN, “Removal f Long Pulses from Audio Signals Using Two-Pass Split-
Window
Filtering,” Munich, Germany, May 2002.
[6] S. J. GODSILL AND P. J. W. RAYNER, Digital Audio Restoration – A
Statistical
Model Based Approach. Springer-Verlag, London, UK, 1998.
[7] EPHRAIM, YARIV; MALAH, DAVID, Speech Enhancement Using a Minimum
Mean Square Error Short-Time Spectral Amplitude Estimator. IEEE Transactions on
speech and audio processing, vol. ASSP-32, No. 6, December 1984.
53
[8] WOLF, PATRICK J.; GODSILL, SIMON J., Perceptually Motivated
Approaches to Music Restoration. Cambridge, UK, 2001.
[9] CHIOVATO, ANDRÉ GODOI, Avaliação da Relação entre Qualidade
Perceptual de Fala e Taxa de Acerto de Sistemas de Reconhecimento de Fala em
Ambientes Ruidosos. Dezembro 2005.
54
9. Anexos
9.1. Programa MMSE.m
9.1.1. MMSE
function output=MMSE(signal,fs,IS)
%************************************************** **************************************
%Shor time Spectral Amplitude com metodo Minimum Mean Square Error para remoç~ao de ruido
%de fundo em voz. signal e a entrada, voz com ruido, fs eh a frequencia de amostragem e IS
%(opcional eh o tempo inicial com silencio. O valor padrao eh 0.25 assumindo que os primeiros
%0.25 segundos do sinal eh um periodo inativo de voz e sera utilizado para a estimativa inicial
%do ruido. A saida eh a estimativa do sinal limpo, sinal restaurado.
%Christian I. Vogt
%Ultima modificacao: 06/11/2006
%************************************************** **************************************
if (nargin<3 | isstruct(IS))% nargin - numero de entradas da funcao
IS=.25; %Silencio inicial ou parte com somente ruido em segundos
end
W=fix(.025*fs); %Comprimento da janela eh 25ms; fix - arredonda as casas decimais
SP=.4; %Shift percentage eh 40% (10ms) %O metodo Overlap-Add trabalha bem com esse valor(.4)
wnd=hamming(W);
pre_emph=0;
signal=filter([1 -pre_emph],1,signal);
NIS=fix((IS*fs-W)/(SP*W) +1);%Numero de segmentos iniciais com silencio
y=segment(signal,W,SP,wnd); % Esta funcao corta o sinal em frames
Y=fft(y);%transformada rapida de fourier
YPhase=angle(Y(1:fix(end/2)+1,:)); %Fase do sinal com ruido
Y=abs(Y(1:fix(end/2)+1,:));%Specrograma
numberOfFrames=size(Y,2); %Numero de frames do sinal de entrada
FreqResol=size(Y,1);
55
N=mean(Y(:,1:NIS)')'; %Media do espectro de potencia inicial de ruidoinitial Noise Power Spectrum mean
LambdaD=mean((Y(:,1:NIS)').^2)';%Variancia do espectro de potencia inicial
alpha=.99; %Este valor e um coeficeiente para aplainar o SNR a priori para o calculo do ganho final.
NoiseCounter=0; %Inicializacao em zero. Eh um contador utilizado para segmentos ruidosos consecutivos na funcao VAD.
NoiseLength=9;%Eh um fator de aplainamento para a atualizacao do ruido. Se for 0, eh a propria amostra de ruido.
G=ones(size(N));%Ganho inicial usado para calcular o primeiro valor da Relacao sinal ruido a priori
Gamma=G;
Gamma1p5=gamma(1.5); %Funcao gamma para 1.5 utilizada no ganho
X=zeros(size(Y)); % Initializacao X (memory allocation)
h=waitbar(0,'Wait...');
for i=1:numberOfFrames
%%%%%%%%%%%%%%%%VAD e estimativa de ruido (Inicio)
if i<=NIS % Se o frame esta entre os iniciais ignora o calculo do VAD, ou seja, eh ruido
SpeechFlag=0;
NoiseCounter=100;
else % Senao calcula VAD
[NoiseFlag, SpeechFlag, NoiseCounter, Dist]=vad(Y(:,i),N,NoiseCounter); %Magnitude Spectrum Distance VAD
end
if SpeechFlag==0 % Se n~ao ha voz atualiza os parametros de ru´ido.
N=(NoiseLength*N+Y(:,i))/(NoiseLength+1); %Atualiza e aplaina a media do ruido
LambdaD=(NoiseLength*LambdaD+(Y(:,i).^2))./(1+NoiseLength); % Atualiza e aplaina a variancia do ruido
end
%%%%%%%%%%%%%%%%%%%VAD e estimativa de ruido (Fim)
gammaNew=(Y(:,i).^2)./LambdaD; %postiriori SNR
xi=alpha*(G.^2).*Gamma+(1-alpha).*max(gammaNew-1,0); %Priori SNR
Gamma=gammaNew;
nu=Gamma.*xi./(1+xi); %Funcao usada no calculo do ganho
G=(Gamma1p5*sqrt(nu)./Gamma).*exp(-nu/2)...
.*((1+nu).*besseli(0,nu/2) +nu.*besseli(1,nu/2)); %MMSE Ganho
Indx=find(isnan(G) | isinf(G)); %As vezes o valor do ganho pode se tornar infinito
%os quais s~ao repostos pelo wiener
%O ganho nestes casos eh:
G(Indx)=xi(Indx)./(1+xi(Indx)); %Filtro de Wiener para valores fora da faixa
X(:,i)=G.*Y(:,i); %Obtem o novo valor limpo
waitbar(i/numberOfFrames,h,num2str(fix(100*i/numberOfFrames)));
end
56
close(h);
output=OverlapAdd2(X,YPhase,W,SP*W); %Sintese Overlap-add da voz
output=filter(1,[1 -pre_emph],output); %Desfaz o efeito da pre-enphasis
9.1.2. OverlapAdd
function ReconstructedSignal=OverlapAdd2(XNEW,yphase,windowLen,ShiftLen);
%Y=OverlapAdd(X,A,W,S);
%Y eh o sinal reconstruido do espectrograma. X eh a matriz
%em que cada coluna esta com um segmento da fft do sinal. A eh o angulo de fase
%do espectro o qual deve ter a mesma dimens~ao de X. Se n~ao for dada
%o angulo de fase de X eh usado o qual no caso de valores reais eh
%zero (assumindo que eh magnitude). W eh o comprimento da janela em segmentos no tempo.
%Se nao for dado o comprimento assume ser duas vezes maior que o comprimento da janela fft.
%S eh o comprimento do shift no processo de segmentacao. Y eh o sinal reconstruido no tempo
if nargin<2
yphase=angle(XNEW);
end
if nargin<3
windowLen=size(XNEW,1)*2;
end
if nargin<4
ShiftLen=windowLen/2;
end
if fix(ShiftLen)~=ShiftLen
ShiftLen=fix(ShiftLen);
disp('The shift length have to be an integer as it is the number of samples.')
disp(['shift length is fixed to ' num2str(ShiftLen)])
end
[FreqRes FrameNum]=size(XNEW);
Spec=XNEW.*exp(j*yphase);
if mod(windowLen,2) %se FreqResol eh impar
Spec=[Spec;flipud(conj(Spec(2:end,:)))];
else
Spec=[Spec;flipud(conj(Spec(2:end-1,:)))];
end
sig=zeros((FrameNum-1)*ShiftLen+windowLen,1);
weight=sig;
for i=1:FrameNum
start=(i-1)*ShiftLen+1;
spec=Spec(:,i);
57
sig(start:start+windowLen-1)=sig(start:start+windowLen-1)+real(ifft(spec,windowLen));
end
ReconstructedSignal=sig;
9.1.3. Segment
function Seg=segment(signal,W,SP,Window)
% SEGMENT corta o sinal em segmentos de janela overlapp
% A= SEGMENT(X,W,SP,WIN) retorna uma matriz na qual as colunas sao segmentadas
% em frames do sinal de entrada de uma dimensao, X. W eh o numero de amostras por janela
% o valor default eh W=256. SP eh o shift
% percentage, e o valor default eh SP=0.4. WIN eh a janela que eh multiplicada por
% cada segmento e seu comprimento deve ser W. A janela padrao eh hamming
if nargin<3
SP=.4;
end
if nargin<2
W=256;
end
if nargin<4
Window=hamming(W);
end
Window=Window(:); %torna um vetor de colunas
L=length(signal);
SP=fix(W.*SP);
N=fix((L-W)/SP +1); %numero de segmentos
Index=(repmat(1:W,N,1)+repmat((0:(N-1))'*SP,1,W))';
hw=repmat(Window,1,N);
Seg=signal(Index).*hw;
9.1.4. VAD
function [NoiseFlag, SpeechFlag, NoiseCounter, Dist]=vad(signal,noise,NoiseCounter,NoiseMargin,Hangover)
%[NOISEFLAG, SPEECHFLAG, NOISECOUNTER,
%DIST]=vad(SIGNAL,NOISE,NOISECOUNTER,NOISEMARGIN,HANGOVER)
%Spectral Distance Voice Activity Detector
%SIGNAL sao os frames do spectro de magnitude os quais sao rotulados como voz ou ruido.
%NOISE eh o formato do espectro de magnitude (estimativa)
%NOISECOUNTER eh o numero de frames com ruido consecutivos. NOISEMARGIN
58
%(default 3)eh o limiar da distancia espectral. HANGOVER ( default 8 )eh o numero de
%segmentos com ruido apos o reset do SPEECHFLAG. NOISEFLAG eh setado para um se o segmento eh rotuladocomo ruido.
%NOISECOUNTER retorna o numero de segmentos de ruido consecutivos, este valor eh resetado para zero
%quando um segmento de voz eh detectado. DIST eh a distancia espectral
if nargin<4
NoiseMargin=3;
end
if nargin<5
Hangover=8;
end
if nargin<3
NoiseCounter=0;
end
FreqResol=length(signal);
SpectralDist= 20*(log10(signal)-log10(noise));
SpectralDist(find(SpectralDist<0))=0;
Dist=mean(SpectralDist);
if (Dist < NoiseMargin)
NoiseFlag=1;
NoiseCounter=NoiseCounter+1;
else
NoiseFlag=0;
NoiseCounter=0;
end
% Detecta peridodos de somente ruido e atenua o sinal
if (NoiseCounter > Hangover)
SpeechFlag=0;
else
SpeechFlag=1;
end
59
9.2. Programa Subtração Espectral (SS.m)
9.2.1. SS
function output=SS(signal,fs,IS)
%************************************************** **************************************
%Subtraçao Espectral de Amplitude
%Signal eh o sinal ruidoso, fs eh a frequencia de amostragem e IS eh o periodo inicial
%ruidoso (somente ruido)em segundos. Como padrao eh 0.25 segundos.
%Christian I. Vogt
%Ultima modificacao: 06/11/2006
%************************************************** **************************************
if (nargin<3 | isstruct(IS))% nargin - numero de entradas da funcao
IS=.25; %Silencio inicial ou parte com somente ruido em segundos
end
W=fix(.025*fs); %Comprimento da janela eh 25ms; fix - arredonda as casas decimais
nfft=W;
SP=.4; %Shift percentage eh 40% (10ms) %O metodo Overlap-Add trabalha bem com esse valor(.4)
wnd=hamming(W);
NIS=fix((IS*fs-W)/(SP*W) +1);%Numero de segmentos iniciais com silencio
Gamma=1;%Magnitude Power (1 for magnitude spectral subtraction 2 for power spectrum subtraction)
y=segment(signal,W,SP,wnd); % Esta funcao corta o sinal em frames
Y=fft(y);%transformada rapida de fourier
YPhase=angle(Y(1:fix(end/2)+1,:)); %Fase do sinal com ruido
Y=abs(Y(1:fix(end/2)+1,:));%Specrograma
numberOfFrames=size(Y,2); %Numero de frames do sinal de entrada
FreqResol=size(Y,1);
N=mean(Y(:,1:NIS)')'; %Media do espectro de potencia inicial de ruidoinitial Noise Power Spectrum mean
NoiseCounter=0;%Inicializacao em zero. Eh um contador utilizado para segmentos ruidosos consecutivos na funcao VAD.
NoiseLength=9;%Eh um fator de aplainamento para a atualizacao do ruido. Se for 0, eh a propria amostra de ruido.
Beta=.03;%fator de atenuacao
YS=Y; %Y Media da magnitude
for i=2:(numberOfFrames-1)
YS(:,i)=(Y(:,i-1)+Y(:,i)+Y(:,i+1))/3;%faz a media com o frame anterior e o posterior.
end
for i=1:numberOfFrames
60
[NoiseFlag, SpeechFlag, NoiseCounter, Dist]=vad(Y(:,i).^(1/Gamma),N.^(1/Gamma),NoiseCounter); %Magnitude Spectrum Distance
VAD
if SpeechFlag==0
N=(NoiseLength*N+Y(:,i))/(NoiseLength+1); %Atualiza e aplaina a media do ruido
X(:,i)=Beta*Y(:,i);%caso o trecho for de ruido, entao atenua o sinal
else
D=YS(:,i)-N; % Specral Subtraction
X(:,i)=max(D,0);
end
end
output=OverlapAdd2(X.^(1/Gamma),YPhase,W,SP*W);
9.2.2. OverlapAdd
function ReconstructedSignal=OverlapAdd2(XNEW,yphase,windowLen,ShiftLen);
%Y=OverlapAdd(X,A,W,S);
%Y eh o sinal reconstruido do espectrograma. X eh a matriz
%em que cada coluna esta com um segmento da fft do sinal. A eh o angulo de fase
%do espectro o qual deve ter a mesma dimens~ao de X. Se n~ao for dada
%o angulo de fase de X eh usado o qual no caso de valores reais eh
%zero (assumindo que eh magnitude). W eh o comprimento da janela em segmentos no tempo.
%Se nao for dado o comprimento assume ser duas vezes maior que o comprimento da janela fft.
%S eh o comprimento do shift no processo de segmentacao. Y eh o sinal reconstruido no tempo
if nargin<2
yphase=angle(XNEW);
end
if nargin<3
windowLen=size(XNEW,1)*2;
end
if nargin<4
ShiftLen=windowLen/2;
end
if fix(ShiftLen)~=ShiftLen
ShiftLen=fix(ShiftLen);
disp('The shift length have to be an integer as it is the number of samples.')
disp(['shift length is fixed to ' num2str(ShiftLen)])
end
[FreqRes FrameNum]=size(XNEW);
Spec=XNEW.*exp(j*yphase);
if mod(windowLen,2) %se FreqResol eh impar
61
Spec=[Spec;flipud(conj(Spec(2:end,:)))];
else
Spec=[Spec;flipud(conj(Spec(2:end-1,:)))];
end
sig=zeros((FrameNum-1)*ShiftLen+windowLen,1);
weight=sig;
for i=1:FrameNum
start=(i-1)*ShiftLen+1;
spec=Spec(:,i);
sig(start:start+windowLen-1)=sig(start:start+windowLen-1)+real(ifft(spec,windowLen));
end
ReconstructedSignal=sig;
9.2.3. Segment
function Seg=segment(signal,W,SP,Window)
% SEGMENT corta o sinal em segmentos de janela overlapp
% A= SEGMENT(X,W,SP,WIN) retorna uma matriz na qual as colunas sao segmentadas
% em frames do sinal de entrada de uma dimensao, X. W eh o numero de amostras por janela
% o valor default eh W=256. SP eh o shift
% percentage, e o valor default eh SP=0.4. WIN eh a janela que eh multiplicada por
% cada segmento e seu comprimento deve ser W. A janela padrao eh hamming
if nargin<3
SP=.4;
end
if nargin<2
W=256;
end
if nargin<4
Window=hamming(W);
end
Window=Window(:); %torna um vetor de colunas
L=length(signal);
SP=fix(W.*SP);
N=fix((L-W)/SP +1); %numero de segmentos
Index=(repmat(1:W,N,1)+repmat((0:(N-1))'*SP,1,W))';
hw=repmat(Window,1,N);
Seg=signal(Index).*hw;
62
9.2.4. VAD
function [NoiseFlag, SpeechFlag, NoiseCounter, Dist]=vad(signal,noise,NoiseCounter,NoiseMargin,Hangover)
%[NOISEFLAG, SPEECHFLAG, NOISECOUNTER,
DIST]=vad(SIGNAL,NOISE,NOISECOUNTER,NOISEMARGIN,HANGOVER)
%Spectral Distance Voice Activity Detector
%SIGNAL sao os frames do spectro de magnitude os quais sao rotulados como voz ou ruido.
%NOISE eh o formato do espectro de magnitude (estimativa)
%NOISECOUNTER eh o numero de frames com ruido consecutivos. NOISEMARGIN
%(default 3)eh o limiar da distancia espectral. HANGOVER ( default 8 )eh o numero de
%segmentos com ruido apos o reset do SPEECHFLAG. NOISEFLAG eh setado para um se o segmento eh rotuladocomo ruido.
%NOISECOUNTER retorna o numero de segmentos de ruido consecutivos, este valor eh resetado para zero
%quando um segmento de voz eh detectado. DIST eh a distancia espectral
if nargin<4
NoiseMargin=3;
end
if nargin<5
Hangover=8;
end
if nargin<3
NoiseCounter=0;
end
FreqResol=length(signal);
SpectralDist= 20*(log10(signal)-log10(noise));
SpectralDist(find(SpectralDist<0))=0;
Dist=mean(SpectralDist);
if (Dist < NoiseMargin)
NoiseFlag=1;
NoiseCounter=NoiseCounter+1;
else
NoiseFlag=0;
NoiseCounter=0;
end
% Detecta peridodos de somente ruido e atenua o sinal
if (NoiseCounter > Hangover)
SpeechFlag=0;
else
SpeechFlag=1;
end
63
9.3. Programa gerador de ruído (noisegen.m)
%************************************************** *************************************************** *****
% PROGRAMA INSERÇÃO DE RUÍDO
%y(n) = audio com ruido
%s(n) = audio sem ruido
%r(n) = ruido
%
%Fs = frequencia do audio de entrada
%bits = quantizaçao
%
%************************************************** *************************************************** *****
%
[s,Fs,bits] = wavread('testesom');
%************************************************** *************************************************** *****
%calculo do S(RMS)
[n,m]=size(s); % tamanho da entrada
x=s;%para nao usar s
x=x.^2;
B = sum(x);
B=B/n;
SRMS=sqrt(B)
%************************************************** *************************************************** *****
%Calculo do R(RMS)
%Para isso precisa-se saber qual valor de sinal ruido, RSR, para encontrar RRMS
%Para 25db
%25=20*log(SRMS/RRMS);
RRMS=(SRMS/(10^(25/20)))% Aqui é especificado a quantidade de ruído desejado, neste caso, 25dB
%************************************************** *************************************************** *****
%Para gerar o valor do ruido
r=RRMS*randn(n,1); Gera amostras randomicas, que possuem média nula, multiplicadas pelo valor RMS
%esse valor será somado ao áudio original
%************************************************** *************************************************** *****
%funcao de teste. Desconsiderar
%Calculo do R(RMS) - deve dar 25db
%r=r.^2;
%B = sum(r);
%B=B/n;
%RRMS=sqrt(B)
%************************************************** *************************************************** *****
y=s+r; %soma do sinal original mais o ruido
wavwrite(y,Fs,'testesom25db');%grava o arquivo com ruido com o nome de testesom25db
Top Related