• Nenhum resultado encontrado

O estágio de análise é o responsável por introduzir a técnica do MPFO sobre o sinal de voz, a fim de se obter um espectro simplificado do sinal e reduzir a taxa de bits necessária para o codificação. A priori, o sistema identifica casos de mascaramento em cada uma das oitavas. O estágio descarta sinais que “não seriam audíveis” devido a este fenômeno auditivo e despreza, por completo, a fase do sinal. A escolha pelo particionamento do espectro em oitavas tem haver com as bandas críticas da audição, que também possuem larguras de banda não-uniformes. O intuito foi investigar o efeito das amostras de mascaramento sobre as mascaradas dentro de uma oitava. A Figura 26 exibe o diagrama detalhado do codificador do vocoder proposto.

Figura 26 – Diagrama de blocos detalhado do codificador proposto.

Sinal de entrada wav PRÉ-PROCESSAMENTO Segmentação (20 ms) Janelamento(Hamming) ANÁLISE FFT

N = 160 Divisão do espectroem 5 Oitavas MPFO

Retenção das amostras mascaradas e suas posições de ocorrência Gravação para o voz formato Concatenação de blocos com informações retidas

anteriormente Quantização e Codificação das amostras e posições Sinal Codificado voz

5.4.1

Características Psicoacústicas do Sistema Auditivo Humano

Como na maioria dos sistemas de codificação de voz eficientes, os vocoders aproveitam- se de certas propriedades auditivas do sistema auditivo humano para reduzir as taxas de bits. A técnica aqui proposta, além de tomar como base para sua implementação o mascaramento em frequência, aproveitou-se também da insensibilidade do ouvido humano em relação à fase do som.

5.4.1.1 Insensibilidade à Fase do Som

O ouvido humano apresenta mais uma característica peculiar em relação à sua percepção auditiva: praticamente não consegue distinguir diferenças em relação à fase de um sinal sonoro. O processo pode ser explicado examinando-se como um som se propaga por um ambiente. Qualquer som que se propaga e que chega aos nossos ouvidos atravessa diversos obstáculos e percorre caminhos distintos. Parte do som chega defasada das demais, mas tal diferença é minimamente sentida pelos ouvidos (OPPENHEIM; SCHAFER; BUCK, 1999). A informação na voz humana é principalmente concentrada nas amplitudes das frequências. Desta forma, diversos codificadores de voz desconsideram a fase do sinal no estágio de análise, considerando esta percepção como desprezível. Baseado nesse fato, o vocoder proposto descartará as características de fase do espectro, considerando apenas a amplitude das amostras.

5.4.2

Simplificação do Espectro Via MPFO

De posse dos sinais pré-processados, pode-se iniciar a etapa da análise propriamente dita do sinal. O procedimento é descrito a seguir.

Para cada segmento do sinal de voz janelado, aplica-se uma FFT de comprimento 160 (número de amostras contidas em um quadro de 20 ms de voz), obtendo-se sua representação no domínio frequencial. A partir daí, divide-se a região do espectro da magnitude do sinal em zonas de influência (oitavas). Devido a frequência mínima dos sinais de voz ser acima dos 300 Hz, a faixa de frequências entre 32 e 256 Hz não é considerada na análise, já que não possui informação prática. A primeira oitava utilizada corresponderá à faixa de frequências de 256 Hz–512 Hz, a segunda cobrindo a banda de 512 Hz–1024 Hz, e assim por diante. A quarta (última oitava) irá corresponder à faixa de 2048 Hz–4000 Hz (notando-se que em 4 kHz o espectro simétrico, produzido pela FFT, começa a se repetir). A Tabela 6 exibe essa divisão.

Como se está fazendo uso de uma taxa de amostragem de 8 kHz, cada amostra da magnitude do espectro corresponderá a uma amostra espectral múltipla de 50 Hz, sendo que a primeira amostra irá representar a componente DC de cada quadro de voz [6]. Como essa amostra tem pouca informação útil, já que representa apenas um offset do sinal, será prontamente desconsiderada da análise. Já que as raias espectrais caminham a passos de 50 Hz, a primeira oitava (de 256 Hz a 512 Hz), será representada pela amostras espectrais de 300, 350, 400, 450 e

Tabela 6 – Número de frequências estimadas pela DFT de comprimento 160 em cada oitava do espectro vocal. Oitavas (Hz) # amostras espectrais/oitava 256 - 512 5 512 - 1024 10 1024 - 2048 20 2048 - 4096 39 total 74

Fonte: Produzido pelo autor.

500 Hz, a segunda oitava (512 Hz a 1024 Hz) pelas amostras de 550 Hz, 600, 650, 700,..., 1000 Hz, seguindo-se o mesmo raciocínio para as demais. Terminado esse procedimento inicial de divisão do espectro em oitavas e de descarte de amostras espectrais sem relevância, passa-se agora a buscar em cada oitava, em todas as quatro sub-bandas do sinal de voz, o ponto da FFT de maior magnitude, i.e., aquele que irá (potencialmente) mascarar os demais. Essa amostra espectral passará a ser o único representante dentro de cada oitava (por opção, para reduzir a complexidade). As demais serão desconsideradas, assumindo valor espectral nulo. O algoritmo guarda em que posição no espectro de frequências o tom de mascaramento ocorreu, procedimento útil para a correta remontagem do espectro pelo sintetizador. O total de 79 frequências oriundas da estimativa da DFT é reduzido para 4 sobreviventes em adição às suas 4 respectivas posições de ocorrência (retendo pouco mais do que 10% das componentes espectrais). Para cada quadro de voz, as amostras sobreviventes e as posições de ocorrência serão quantizadas e codificadas separadamente, sendo salvas no formato binário voz, cuja composição será explicada mais adiante. Os procedimentos de quantização e codificação serão vistos em seguida.

5.4.3

Quantização e Codificação dos Sinais de Voz

Na quantização dos quadros de voz utilizou-se o método mais comum de quantização, a quantização uniforme. Para simplificar a codificação binária, fez-se uso de um número de níveis coincidente com uma potência de 2, de modo a otimizar o número n de bits de codificação por amostra. A máxima excursão do sinal (no caso o tom de maior magnitude do espectro completo do sinal de voz) foi assim dividida em 256 intervalos de mesmo comprimento, sendo cada um deles representado por uma única palavra-código de 8 bits. Como não há amostras negativas a serem quantizadas, já que a magnitude do espectro não apresenta valores negativos, o quantizador utilizado não pode ser bipolar, sendo necessário uma reconfiguração apropriada dos níveis. Uma rotina do software de análise VocCod foi especificamente projetada para esse fim. A quantização das posições não foi necessária, visto que elas são números inteiros.

de voz, o algoritmo de alocação dos bits levou em consideração o comprimento da oitava. À medida que se diminui o número da oitava, reduz-se pela metade a faixa de frequências que ela cobre e, dessa forma, um menor número de bits é necessário para a adequada codificação das posições em que as amostras espectrais de mascaramento ocorreram. Essas posições, em oitavas sucessivas (caminhando no espectro em relação às altas frequências), necessitam de mais um bit pra a sua correta representação. Por exemplo, um tom de mascaramento que acorra na primeira oitava (256–512 Hz), tem 5 possíveis posições de ocorrência (posição 7 à posição 11), todas elas podendo ser completamente representadas por uma palavra-código de 4 bits. Já na oitava seguinte (512–1024 Hz) a posição máxima em que o tom de mascaramento pode ocorrer (21a– que corresponde a frequência de 1 kHz) pode ser codificada por um palavra-código de 5

bits. Nas duas oitavas subsequentes, as posições máximas são as posições 41 (descrita por uma palavra de 6 bits) e 80 (representada por uma palavra de 7 bits), respectivamente. Para os valores máximos das amplitudes das amostras espectrais de mascaramento são reservados 8 bits (1 byte) para a sua representação, já que foram escolhidos 256 níveis de quantização. O número de bits alocados para cada um desses parâmetros é mostrado na Tabela 7. Como já discutido antes, a fase do sinal não é considerada.

Tabela 7 – Alocação dos bits para um quadro de voz de 20 ms.

Oitava Parâmetro bits

1 amostra espectral de mascaramento 8 posição da amostra de mascaramento 4 2 amostra espectral de mascaramento 8 posição da amostra de mascaramento 5 3 amostra espectral de mascaramento 8 posição da amostra de mascaramento 6 4 amostra espectral de mascaramento 8 posição da amostra de mascaramento 7

total 54

Fonte: Produzido pelo autor.

Vê-se que para cada quadro de voz de 20 ms, são necessário apenas 54 bits (22 para as posições e 32 para os valores dos tons de mascaramento), levando a uma taxa de 54

20 × 10−3 bits/s

5.4.4

Formato Binário voz

A alocação dos bits para cada quadro de voz, sumarizada na Tabela 7, sugere que se pense numa representação binária de armazenamento. Foi então proposto o formato voz, que é constituído pela concatenação de todos os quadros codificados. O conceito de um quadro deste formato é apresentado na Figura 27.

Figura 27 – Ilustração da configuração de um quadro de 20 ms do formato binário voz

Oitava 1 1 byte 4 bits amostra espectral de mascaramento posição de ocorrência

Oitava 2 Oitava 3 Oitava 4

1 byte 1 byte 1 byte

amostra espectral de mascaramento posição de ocorrência amostra espectral de mascaramento posição de ocorrência amostra espectral de mascaramento posição de ocorrência Repete . . .

5 bits 6 bits 7 bits

Fonte: Produzido pelo autor.

Vê-se que os 54 bits são distribuídos em 4 sub-blocos (um para cada oitava utilizada) compostos pelo valor da amostra de mascaramento associada à sua respectiva posição no espectro. A concatenação de vários desses quadros forma o formato binário voz. Os arquivos de voz de entrada, antes no formato wav, são todos convertidos para esse novo padrão através do software de codificação VocCod.

O software de decodificação VocDec, que possui uma rotina de recomposição do espectro sintetizado projetada para reconhecer início e término de um novo quadro de 20 ms, consegue recuperar o sinal de voz sintetizado, transformando-o novamente para o formato wav. A seção seguinte aborda este processo.