TUTORIAL III – CONVERTENDO ARQUIVOS DE SOM PARA 8 BITS P/ USO C/ MÓDULO DE FALA – COM APLICATIVO ‘BTC SOUND ENCODER 3.0’ (REF288)

1

Aprenda a converter arquivos de som para uso em microcontroladores…

Este tutorial mostra como converter arquivos do tipo ‘.wav’ obtidos na internet ou obtidos a partir de programas ‘Text to Speech’ ou mesmo gravados em um PC, usando o programa ‘Btc Sound Encoder 3.0’. Nossos sinceros agradecimentos a RomanBlack por disponibilizar este excelente software com o objetivo de ajudar hobistas a colocarem sons em aplicações com microcontroladores. O Btc Sound Encoder foi idealizado para permitir que um microcontrolador possa reproduzir sons gravados em sua flash ou memória externa usando apenas 1 bit (1 ou 2 pinos de saída), reduzindo o tamanho do arquivo em 8 vezes para a mesma taxa de amostragem. O único inconveniente é que a qualidade é bem inferior comparada com sons de 8 bits. No entanto, pode-se obter resultados satisfatórios com amostragens acima de 40 Khz. Mas o objetivo deste tutorial é iniciar com algo mais simples, sem entrar no uso de sons a 1 bit. Nós iremos usar a facilidade do programa em converter frequências de amostragem do arquivo .wav original para qualquer outra frequência que queiramos, em 8 bits, mono. Vamos então iniciar o passo a passo:

1) Vá no site do RomanBlack e baixe o programa Btc Sound Encoder 3.0. Instale ele nos arquivos de programa ou outra pasta que você desejar. Crie um atalho na tela principal para facilitar. Nota: Segundo o autor, funciona apenas em sistema operacional Windows: Win95, Win98, WinXP e provavelmente no Vista. Abaixo mostra o atalho do programa na tela inicial.
tela1_windows

2) Clique no atalho para abrir o programa. Ele se parecerá com a figura abaixo:
tela2_btc_abrndo

3) Iremos agora abrir um arquivo de som do tipo .wav previamente obtido da internet, ou gravado com Audacity, ou obtido de outra forma. Para isto, clique em ‘File’/’Open Wav File’. Veja esta operação na figura abaixo:
tela3_abrindo_Wave

4) Para exemplo, abrimos o arquivo de som .wav ‘porta_fechada1’ colocado previamente na área de trabalho. Quando abrimos o arquivo de som com o Btc Sound Encoder 3.0 veremos o nome do arquivo, sua taxa de amostragem atual e o total de amostragens. Note que temos uma limitação do tamanho máximo do arquivo que pode ser aberto de 4.194.304 amostragens. Em 44 Khz permitirá aproximadamente 95 segundos de sons reproduzidos.
Na parte inferior podemos ver as curvas do sinal original. Clicando em ‘Play Orig Sound’ podemos conferir se o som que abrimos está correto para o que desejamos. Caso clique por curiosidade em ‘Play Btc Sound’ você ouvirá como ele ficaria se fosse usado o arquivo em 1 bit. Notará a diferença de qualidade bem nítida. Veja esta operação na figura abaixo:
tela4_arquivo_aberto

5) Vamos agora mudar a taxa de amostragem de 44Khz para 17530Hz do Modulo de Fala com pseudo_PWM, conforme mostrado no artigo ‘MÓDULO DE FALA C/ MENSAGEM PARA ‘MANTER PORTA FECHADA’ – C/ PIC 12F675 (REF281)’.

Clique em ‘Edit’. Abrirá várias opções:

A) Trim.Wav – Usado para cortar pedaços do arquivo no começo ou fim (eliminar pausas, por exemplo).

B) D Compress/Increase Vol.Wav – Permite aumentar o volume do som. O usuário escolhe quantos porcentos deseja aumentar. Cuidado: Sons com volume muito alto travará o pseudo_PWM e não funcionará.

C) Change .Wav Play Back Pitch – Muda a velocidade da reprodução.

D) Resample Wav – Permite trocar a taxa de amostragem do arquivo. Iremos clicar nesta opção.

Veja a figura abaixo:
tela5_resample

6) Após clicar em ‘Resample .Wav’ veremos uma tela para escolhermos a nova taxa de amostragem. Digite no box ‘Resample at this new freq’ o valor 17530. No box superior mostrará o valor original do arquivo. Após digitar o valor, clique em ‘Resample’. Veja este passo na figura abaixo:
tela6_dig_resample

7) Após clicar em ‘Resample’ abrirá uma nova tela pequena (textbox) com a confirmação da conversão para a nova taxa de amostragem. Será informado o novo tamanho que o arquivo tem com esta nova taxa de amostragem. A tela avisa para salvarmos o arquivo convertido, pois este será perdido ao fechar o programa Btc. Clique em ‘Done’ para avançar. Veja a figura abaixo:
tela7_resample_done

8) Iremos agora salvar o arquivo convertido. Clique em ‘File’ e depois na opção ‘Save as .Wav file’. Terá esta aparência conforme a figura abaixo:
tela8_salvando_wave17k

9) Veremos uma nova tela pedindo para escolher o local onde será salvo o arquivo (‘Salvar em’ – escolha a pasta por nome ou procure na clicando na seta). Também deverá dar um novo nome (‘Nome do Arquivo’). Eu costumo acrescentar um sufixo como ‘_17k’ para diferenciar do arquivo original. Mas poderá escolher qualquer novo nome. Mantenha o que está escrito em ‘Salvar como tipo’. Clique em ‘Salvar’. Veja este passo na figura abaixo:
tela9_local_salvo

10) Vá no local indicado para salvar o arquivo. Ao colocar o cursor do mouse sobre o arquivo que foi salvo poderemos ver algumas de suas propriedades. Veja a figura abaixo:
tela10_vendo_wave

Algumas considerações importantes:
1) O tamanho do arquivo obtido não poderá ser superior a 65536 amostragens, pois o módulo de fala usa uma 24c512 com esta capacidade. Caso o arquivo fique pouco maior, tente cortar espaços iniciais e finais de silêncio. Lembrando que com esta memória (24c512) permitirá apenas: 65536/17530 = 3,7 segundos de gravação.
2) Os arquivos .Wav tem nos bytes iniciais as informações de formatação. Estas ao serem reproduzidas geram um rápido ruído inicial. Poderá eliminar esta porção de código usando o programa editor de arquivos Hex chamado FrHed. Também poderá usar o PonyProg e fazer isto manualmente (demora muito).
3) O volume do arquivo de som não pode ser muito alto para não travar o pseudo_PWM do módulo de fala. Faça testes para ver qual nível funciona melhor.
4) O arquivo .Wav precisa ser salvo em arquivo hex padrão. O programa PonyProg permite fazer isto facilmente. Abra o arquivo salvo em formato .wav e salve como arquivo hex.

Vamos agora usar o programa FrHed para eliminar os dados de formatação.
1) Baixe o programa do site http://frhed.sourceforge.net/en/. Crie um atalho na área de trabalho. Deverá se parecer como a figura abaixo:
tela11_frHed
2) Clique em ‘File’/ ‘Open’ para abrir o arquivo.
A tela abaixo mostra esta operação:
tela12_FrHed_open
3) Após clicar em ‘File’/’Open’ abrirá uma tela para escolhermos o arquivo que será aberto e o local que ele está. Em seguida clique em ‘Abrir’.
A figura abaixo mostra isto:
tela12A_FrHed_open_file
4) Ao abrir o arquivo veremos apenas a informação em hexadecimal. Marque com o cursor do mouse as primeiras 2 linhas.
Veja este passo na figura abaixo:
tela13b_marcando_header
5)Em seguida, clique em ‘Edit’/’Cut’. Veja a figura abaixo:
tela13c_cut
6) Após clicar em ‘Edit’/’Cut’ irá abrir uma janela onde mostra o endereço ínicial e o final que será cortado do arquivo. Apenas clique em ‘Ok’. Veja a figura abaixo para ver esta operação:
tela13d_cut_tamanho
7) Feito a retirada dos bytes de formatação, o próximo passo é salvar o arquivo. Clique em ‘File’/ ‘Save as…’. Veja a figura abaixo:
tela13e_save.
8) Outra tela se abrirá, pedindo o local que será salvo e um nome para o arquivo. Se manter o mesmo nome, será perdido o arquivo original. Use outro nome que desejar. No exemplo foi usado o nome ‘porta_fechada1_modificada’. Veja a tela mencionada na figura abaixo:
tela13f_save_local

Já temos um arquivo sem os dados de formatação, em 8 bits, 17530 Hz, mono. Agora falta obtermos um arquivo .hex a partir deste arquivo. Para isto vamos usar o PonyProg2000.

1) Baixe o programa PonyProg2000 e instale em seu computador. Crie um atalho na área de serviço. Poderá obter a partir do site http://www.lancos.com/prog.html. Veja na figura abaixo como se parece na tela inicial:
tela13_Pony
2) Abra o arquivo que queremos converte-lo em hex, clicando em ‘File’/’Open Device File…’. A figura abaixo mostra este passo:
tela14a_open_Pony
3) Abrirá uma tela pedindo para escolher o local onde se encontra o arquivo e o nome do arquivo que deseja abrir. Digite o local e o nome. Importante: Mude o filtro (Arquivos do tipo) na parte inferior para ‘*’, senão o arquivo .WAV não será visto pelo PonyProg2000. Depois clique em ‘Abrir’. Veja este passo na figura abaixo:
tela14c_open_Pony2.
4) Ao clicar em ‘Ok’ veremos o arquivo aberto como mostra a figura abaixo:
tela14d_aberto_Pony
5) Vamos agora salvar este arquivo aberto no formato hex. Clique em ‘File’/’Save Device Files as…’.
Veja este passo na figura abaixo:
tela14e_save_as
6) Abrirá uma tela para escolher o local que será salvo e escolher um nome para o arquivo. Poderá usar o mesmo nome e na caixa inferior escolher a opção *.hex. Feito isto, clique em ‘Salvar’. Veja este passo na figura abaixo:
tela14f_save_as_hex
7) Uma vez salvo, podemos ir no local e obter o arquivo hex próprio para programar a EEprom 24c512.
Veja o arquivo gerado para o exemplo ‘porta_fechada1_modificada’. Foi salvo como arquivo hex, como podemos ver na figura abaixo:
tela14g_mostra_hex_gerado

Seguindo estes passos conseguimos obter um arquivo próprio para uso com o nosso módulo da fala com ajuda dos programas Btc Sound Encoder para converter a taxa de amostragem e tipo 8 bits, mono , o programa FrHed para cortar fora o dados de formatação do arquivo .WAV e programa PonyProg2000 para converter de .WAV para hex.

Até o próximo artigo!

1