TUTORIAL V – CONCATENANDO VÁRIOS ARQUIVOS DE SONS C/ PROGRAMA FRHED (REF311)

2

Crie um arquivo de som múltiplo para gravar memória Flash externas em projetos que necessitam reproduzir mensagens faladas…

Muitos dispositivos eletrônicos atualmente utilizam o recurso da comunicação por voz. Ao estacionar seu carro no shopping center com certeza lembrará da mensagem: “Aperte o botão, retire seu cartão e boas compras” (ou algo similar). Ao sair você escutará outra mensagem de agradecimento. Muitos se perguntam como poderiam também colocar vários sons em suas montagem usando microcontroladores e memórias flash de alta capacidade e depois reproduzir conforme o evento gerado. Afinal, os preços das memórias flash da família 25xx estão bem em conta, com a facilidade de usar poucos pinos para a comunicação com o microcontrolador.
Neste tutorial será apresentado como criar um arquivo de extensão “.bin” contendo quantos sons desejar, sendo a limitação apenas o tamanho da memória usada e da sua paciência. Gostaria de frisar que é o método que eu tenho usado com sucesso, mas talvez você conheça um método melhor, então continue usando o seu método, e se desejar, compartilhe o seu método conosco. Suas sugestões serão bem-vindas e muito apreciadas!
Será usado o programa FrHed, um editor de arquivos “.hex”. Caso conheça outros editores de arquivos “.hex” poderá usa-los também. O princípio é o mesmo. Deverá também estar de posse dos arquivos que irá concatenar (ajuntar) em uma sequência defina. Estes deverão ser do mesmo tipo e de igual frequência de amostragem. O programa que usará em seu microcontrolador deverá ser compatível para reproduzir a frequência de amostragem destes arquivos. Geralmente fica entre 8 kHz e 20 kHz para uso com microcontroladores. Caso use arquivos de sons com algum tipo de “encoder” então deverá escrever (ou usar uma biblioteca apropriada) o programa de “decoder” no microcontrolador.
Neste tutorial ajuntaremos 3 arquivos para formar apenas um.
Caso tenha duvidas de como obter ou criar estes prévios arquivos, veja os tutoriais anteriores:
TUTORIAL I – OBTENDO ARQUIVOS DE SONS “.WAV” A PARTIR DE PROGRAMAS ‘TEXT TO SPEECH’ (REF241)
TUTORIAL II – CONVERTENDO ARQUIVOS DE SOM PARA 8 BITS P/ USO C/ MÓDULO DE FALA – COM APLICATIVO ‘GOLDWAVE’ (REF282)
TUTORIAL III – CONVERTENDO ARQUIVOS DE SOM PARA 8 BITS P/ USO C/ MÓDULO DE FALA – COM APLICATIVO ‘BTC SOUND ENCODER 3.0’ (REF288)
TUTORIAL IV – COMO GRAVAR E REPRODUZIR SONS NA PRÓPRIA MEMÓRIA DE PROGRAMA (REF292)

Começaremos o passo a passo, com ajuda de algumas imagens para facilitar o entendimento do processo usado.

Passo 1) Abra o editor FrHed em sua tela do PC. Caso ainda não tenha poderá baixar gratuitamente no site http://frhed.sourceforge.net/pt/ e instalar na sua máquina.
Feito isto, iremos abrir o primeiro arquivo de som que queremos juntar com outros. Clique em “File” e depois em “Open…”. A tela se parecerá como abaixo:

Passo 2) Na caixa de diálogo que se abre, escolha qual arquivo deseja abrir (lembrando que deverá estar de posse dos arquivos de som já devidamente editados, prontos para a concatenação em uma pasta no seu PC). Você verá desta forma:

Passo 3) Ao abrir o arquivo verá como abaixo:

Passo 4) Usando o cursor vá até o final do arquivo que abrir e clique em cima do último byte. Você verá no pé da página, do lado esquerdo, o “Offset” com o endereço do último byte (o que você clicou em cima). Agora é hora de anotar o endereço inicial do arquivo aberto desta forma:
arq_som1 //som de telefone (p.ex)
início = 0x00
término= 0x1ce9a (ou o valor que indicar em seu arquivo)
Ainda no pé da página, a direita, verá o “Size” indicando o tamanho total do arquivo até agora.

Passo 5) Agora iremos juntar o arquivo de som 2. O programa precisa saber o ponto onde será introduzido o novo arquivo. Para isto, clique sobre o último byte do arquivo, pois queremos apenas unir arquivos. Depois usamos a opção “Insert File”. Clique primeiro em “File” e depois na opção “Insert File”. Veja abaixo:

Passo 6) Abrirá uma caixa de diálogo onde você deverá escolher o arquivo que deseja juntar, clicando nele e depois em “Abrir”. Veja isto na tela abaixo:

Passo 7) Ao abrir o segundo arquivo, você o verá na tela marcado com cor amarela. Não clique em nada por enquanto. Anote o valor do “Offset”, pois ele tem o endereço inicial e final deste arquivo que você está concatenando.
Ficará assim:
arq_som2 //som de explosão (ou o que faz o seu som)
início = 0x1ce9a
término = 0x39d34

Passo 7) Vá para o começo do arquivo usando o cursor da barra no lado direito da tela. A medida que rola para cima, verifique quando termina a marcação amarela. Atente para o primeiro byte marcado em amarelo. Do lado esquerdo será o último byte do arquivo anterior. Substitua ele pelo valor de parada, que no nosso caso será 22.

Passo 8) Para substituir, basta clicar em cima desta posição e digitar o valor 22. Nota importante: O método de parada por um valor específico de byte só funciona se ele nunca existir no arquivo de som. Certifique que isto seja verdade no arquivo que está concatenando. No uso de sons .wav unsigned geralmente nunca temos valores abaixo de 0x30. Em outros tipos de arquivos de som “.wav” como o “Signed”, temos valores que não permite o uso de byte de parada. Nestes casos, terá que usar acesso por endereço de início e endereço de término. Abaixo vemos esta modificação com a inclusão de um valor de parada:

Passo 9) Iremos juntar agora o terceiro arquivo. Clique em “File” e depois na opção “Insert File”. Veja abaixo este passo:

Passo 10) Vamos escolher qual o arquivo iremos concatenar, usando a caixa de diálogo que se abre. Clique no arquivo desejado e depois em “Salvar”. Veja esta operação abaixo:

Passo 11) O arquivo irá abrir e ficará marcado em amarelo. Anote o “Offset” que tem o endereço inicial e final deste novo arquivo. Não clique em nada ainda. Veja esta tela abaixo:

Passo 12) Use o cursor para rolar para cima no começo do arquivo, e localize o primeiro byte em amarelo. Altere o byte anterior (do lado esquerdo) para o valor de parada (0x22). Basta clicar sobre ele e digitar 22.

Passo 13) Confira se ele está correto e coincidindo com os endereços anotados. Veja abaixo a tela:

Passo 14) Usando o cursor role a imagem para baixo até o fim do arquivo. Coloque o byte de parada (0x22) neste último byte. Para isto basta clicar nele e digitar 22. Veja abaixo como ficou:

Passo 15) Caso tenha mais arquivos para juntar, continue repetindo o processo até aqui descrito. Mas neste exemplo, iremos encerrar aqui com os 3 arquivos. Vamos então salvar esta coleção em um só arquivo. Clique em “File”, depois em “Save as”. Veja este passo na figura abaixo:

Passo 16) Abrirá uma caixa de diálogo, onde você poderá escolher o local que deseja que seja salvo. Também deverá escolher um nome para seu novo arquivo. No exemplo aqui foi chamado de “arq_som_memoria_flash.bin”. Note que deverá colocar sempre a extensão “.bin” para ser aceito pelo programador de memórias flash. Veja este passo na figura abaixo:

Passo 17) Vamos até a pasta onde salvamos o arquivo. Iremos encontrar o arquivo com o nome que demos a ele, conferindo a extensão “.bin”. Colocando o cursor do mouse sobre o ícone da pasta irá abrir uma pequena caixa com alguns dados sobre o arquivo. podemos ver o tipo .bin e o tamanho total do arquivo. Esta informação é importante para escolher a memória flash apropriada. Ela deverá ter mais espaço de armazenamento do que o tamanho do arquivo. Veja abaixo esta tela:

Algumas dicas:
Uma vez que obteve o arquivo de som que usará para gravar a memória Flash seria interessante fazer e guardar um arquivo de texto contendo os nomes dos sons concatenados e seus endereços de acesso para uso do microcontrolador. Anote nele a frequência de amostragem usada, o tipo de .wav, número de bits (8 para microcontrolador, para poupar memória).
Por exemplo:
——————————————————————————————————————————————–
Arquivo múltiplo de sons para Super-buzina: //coloque aqui o nome do projeto que foi usado os sons
Origem dos sons:
Internet – Toques de celular engraçados. //coloque aqui onde conseguiu seus arquivos

Edição: //coloque aqui qual foi o programa que usou para editar, frequência de amostragem, etc.
Usado sons gravados/editados com Audacity e salvos como tipo “Outros arquivos sem compactação”, “cabeçalho” WAV(Microsoft), “codificação” unsigned 8 bits PCM, taxa de amostragem 8kHz (do arquivo e do projeto), mono.

quantidade de sons = 15
1) som de vaca início = 0x00 término = 0x1cf06
2) som do pica-pau início = 0x1cf07 término = 0x56789
3) som do grito início =0x5678a término = 0x9678a
…….
15) som do cavalo início =0xb677a término = 0xf8777
——————————————————————————————————————————————-
Coloque este arquivo junto com o arquivo principal em uma pasta com o nome do projeto que foi usado. Assim fica mais fácil usar estes sons em outros projetos. Note que se for perdida as informações de entrada e saída dos sons nele contido, o arquivo será completamente inútil, podendo ser deletado.
Grave a Flash que escolher com um programador apropriado. Caso tenha dificuldade de saber qual flash poderá usar, use a relação de flash que seu programador consegue programar e acesse a internet para obter informações a partir de seus datasheets. As flash da série 25xxx são do tipo SPI e as da série 24cxx são do tipo I2c.
Para acessar os sons da Flash necessitará de um microcontrolador rodando um programa gerador de sons por meio de PWM. Nas rotinas apropriadas, coloque os endereços iniciais e finais de acesso do som requerido pelo programa. Compile o programa e grave no microcontrolador escolhido pelo projeto. Uma vez tudo montado no protoboard, inicie testes e corrija as deficiências. Em alguns casos, poderá ter ocorrido algum erro grave na concatenação de arquivos, ou mesmo na edição dos arquivos individuais. Neste caso delete o arquivo e recomece do zero. Note que é um trabalho que exige paciência para ser feito de forma apropriada. Portanto, não fique chateado se seu primeiro arquivo não der muito certo. Continue tentando e aperfeiçoando até obter um bom resultado!
Neste blog já foi publicado vários projetos usando sons e mensagens faladas. Para treinar, poderá tentar alterar estes sons com arquivos de sua escolha. Note que o trabalho envolve editar os sons, concatenar, e gravar na flash. Também terá de alterar o programa do PIC com os novos endereços de acesso aos sons, e recompilar o programa. Então grave o PIC e monte tudo no protoboard para testes. Tenho certeza que ficará entretido por muitas horas!!!

Curiosidades:
O que é vitiligo?
Você se preocupa com o seu cabelo?
Hepatite B — uma assassina silenciosa
O vinho, a madeira e a arte da tanoaria
O segredo por trás das borbulhas
Matatu: o transporte colorido do Quênia

Outros assuntos:
Alergia alimentar e intolerância alimentar – Qual a diferença?
O fim do sofrimento está próximo
Como lidar com desastres naturais
Como se recuperar de abuso sexual
Por que continuar?
Como controlar o estresse

Vídeos:
As maravilhas da criação revelam a glória de Deus
As maravilhas da criação revelam a glória de Deus – Luzes e Cores
As maravilhas da criação revelam a glória de Deus – Água
As maravilhas da criação revelam a glória de Deus – O projeto da Vida
As maravilhas da criação revelam a glória de Deus – Padrões
As maravilhas da criação revelam a glória de Deus – Galeria de fotos de galáxias

Até o próximo artigo!

2